def get_ext_modules(use_cython=USE_CYTHON):
    
    global cmdclass
    python_header_dir = get_python_header_dir()

    if use_cython:
        try:
            from Cython.Distutils import build_ext
        except __HOLE__:
            stderr.write('\"cython\" is not installed. Forcing \"USE_CYTHON\" '
                         'to \"False\" in order to install.\n')
            use_cython = False

    if use_cython:
        ext_modules = [Extension('src.features',
                                 ['src/features.pyx'],
                                 include_dirs=[python_header_dir]),
                       Extension('src.experiments',
                                 ['src/experiments.pyx'],
                                 include_dirs=[python_header_dir]),
                       Extension('src.datasets',
                                 ['src/datasets.pyx'],
                                 include_dirs=[python_header_dir]),
                       Extension('src.mongodb',
                                 ['src/mongodb.pyx'],
                                 include_dirs=[python_header_dir])]
        cmdclass.update({'build_ext': build_ext})
        return ext_modules

    ext_modules = [Extension('src.features',
                             ['src/features.c'],
                             include_dirs=[python_header_dir]),
                   Extension('src.experiments',
                             ['src/experiments.pyx'],
                             include_dirs=[python_header_dir]),
                   Extension('src.datasets',
                             ['src/datasets.c'],
                             include_dirs=[python_header_dir]),
                   Extension('src.mongodb',
                             ['src/mongodb.c'],
                             include_dirs=[python_header_dir])]
    return ext_modules
dataset/ETHPy150Open mulhod/reviewer_experience_prediction/setup.py/get_ext_modules