We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
Move the metadata into setup.cfg
https://github.com/gvalkov/setuptools-py2cfg can be helpful.

--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `setup.py`
Content:
```
1 # Copyright 1999-2020 Alibaba Group Holding Ltd.
2 #
3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
6 #
7 #      http://www.apache.org/licenses/LICENSE-2.0
8 #
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
14 
15 import os
16 import platform
17 import re
18 import sys
19 from setuptools import setup, find_packages, Extension
20 from distutils.sysconfig import get_config_var
21 from distutils.version import LooseVersion
22 
23 import numpy as np
24 from Cython.Build import cythonize
25 
26 try:
27     import distutils.ccompiler
28     if sys.platform != 'win32':
29         from numpy.distutils.ccompiler import CCompiler_compile
30         distutils.ccompiler.CCompiler.compile = CCompiler_compile
31 except ImportError:
32     pass
33 
34 # From https://github.com/pandas-dev/pandas/pull/24274:
35 # For mac, ensure extensions are built for macos 10.9 when compiling on a
36 # 10.9 system or above, overriding distuitls behaviour which is to target
37 # the version that python was built for. This may be overridden by setting
38 # MACOSX_DEPLOYMENT_TARGET before calling setup.py
39 if sys.platform == 'darwin':
40     if 'MACOSX_DEPLOYMENT_TARGET' not in os.environ:
41         current_system = LooseVersion(platform.mac_ver()[0])
42         python_target = LooseVersion(
43             get_config_var('MACOSX_DEPLOYMENT_TARGET'))
44         if python_target < '10.9' and current_system >= '10.9':
45             os.environ['MACOSX_DEPLOYMENT_TARGET'] = '10.9'
46 
47 
48 repo_root = os.path.dirname(os.path.abspath(__file__))
49 
50 
51 def execfile(fname, globs, locs=None):
52     locs = locs or globs
53     exec(compile(open(fname).read(), fname, "exec"), globs, locs)
54 
55 
56 version_file_path = os.path.join(repo_root, 'mars', '_version.py')
57 version_ns = {'__file__': version_file_path}
58 execfile(version_file_path, version_ns)
59 version = version_ns['__version__']
60 # check version vs tag
61 if os.environ.get('GIT_TAG') and re.search(r'v\d', os.environ['GIT_TAG']) \
62         and os.environ['GIT_TAG'] != 'v' + version:
63     raise ValueError('Tag %r does not match source version %r'
64                      % (os.environ['GIT_TAG'], version))
65 
66 requirements = []
67 with open(os.path.join(repo_root, 'requirements.txt'), 'r') as f:
68     requirements.extend(f.read().splitlines())
69 
70 extra_requirements = []
71 with open(os.path.join(repo_root, 'requirements-extra.txt'), 'r') as f:
72     extra_requirements.extend(f.read().splitlines())
73 
74 dev_requirements = []
75 with open(os.path.join(repo_root, 'requirements-dev.txt'), 'r') as f:
76     dev_requirements.extend(f.read().splitlines())
77 
78 vineyard_requirements = []
79 with open(os.path.join(repo_root, 'requirements-vineyard.txt'), 'r') as f:
80     vineyard_requirements.extend(f.read().splitlines())
81 
82 long_description = None
83 if os.path.exists(os.path.join(repo_root, 'README.rst')):
84     with open(os.path.join(repo_root, 'README.rst'), encoding='utf-8') as f:
85         long_description = f.read()
86 
87 
88 if os.path.exists(os.path.join(repo_root, '.git')):
89     git_info = version_ns['get_git_info']()
90     if git_info:
91         with open(os.path.join(repo_root, 'mars', '.git-branch'), 'w') as git_file:
92             git_file.write(' '.join(git_info))
93 
94 cythonize_kw = dict(language_level=sys.version_info[0])
95 cy_extension_kw = dict()
96 if os.environ.get('CYTHON_TRACE'):
97     cy_extension_kw['define_macros'] = [('CYTHON_TRACE_NOGIL', '1'), ('CYTHON_TRACE', '1')]
98     cythonize_kw['compiler_directives'] = {'linetrace': True}
99 
100 if 'MSC' in sys.version:
101     extra_compile_args = ['/Ot', '/I' + os.path.join(repo_root, 'misc')]
102     cy_extension_kw['extra_compile_args'] = extra_compile_args
103 else:
104     extra_compile_args = ['-O3']
105     cy_extension_kw['extra_compile_args'] = extra_compile_args
106 
107 
108 def _discover_pyx():
109     exts = dict()
110     for root, _, files in os.walk(os.path.join(repo_root, 'mars')):
111         for fn in files:
112             if not fn.endswith('.pyx'):
113                 continue
114             full_fn = os.path.relpath(os.path.join(root, fn), repo_root)
115             mod_name = full_fn.replace('.pyx', '').replace(os.path.sep, '.')
116             exts[mod_name] = Extension(mod_name, [full_fn], **cy_extension_kw)
117     return exts
118 
119 
120 cy_extension_kw['include_dirs'] = [np.get_include()]
121 extensions_dict = _discover_pyx()
122 cy_extensions = list(extensions_dict.values())
123 
124 extensions = cythonize(cy_extensions, **cythonize_kw) + \
125     [Extension('mars.lib.mmh3', ['mars/lib/mmh3_src/mmh3module.cpp', 'mars/lib/mmh3_src/MurmurHash3.cpp'])]
126 
127 
128 setup_options = dict(
129     name='pymars',
130     version=version,
131     description='MARS: a tensor-based unified framework for large-scale data computation.',
132     long_description=long_description,
133     long_description_content_type='text/x-rst',
134     author='Qin Xuye',
135     author_email='qin@qinxuye.me',
136     maintainer='Qin Xuye',
137     maintainer_email='qin@qinxuye.me',
138     url='http://github.com/mars-project/mars',
139     license='Apache License 2.0',
140     classifiers=[
141         'Operating System :: OS Independent',
142         'Programming Language :: Python',
143         'Programming Language :: Python :: 3',
144         'Programming Language :: Python :: 3.6',
145         'Programming Language :: Python :: 3.7',
146         'Programming Language :: Python :: 3.8',
147         'Programming Language :: Python :: Implementation :: CPython',
148         'Topic :: Software Development :: Libraries',
149     ],
150     packages=find_packages(exclude=('*.tests.*', '*.tests')),
151     include_package_data=True,
152     entry_points={'console_scripts': [
153         'mars-scheduler = mars.scheduler.__main__:main',
154         'mars-worker = mars.worker.__main__:main',
155         'mars-web = mars.web.__main__:main',
156     ]},
157     python_requires='>=3.6',
158     install_requires=requirements,
159     ext_modules=extensions,
160     extras_require={
161         'distributed': extra_requirements,
162         'dev': extra_requirements + dev_requirements,
163         'vineyard': vineyard_requirements,
164     }
165 )
166 setup(**setup_options)
167
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/setup.py b/setup.py
--- a/setup.py
+++ b/setup.py
@@ -16,7 +16,7 @@
 import platform
 import re
 import sys
-from setuptools import setup, find_packages, Extension
+from setuptools import setup, Extension
 from distutils.sysconfig import get_config_var
 from distutils.version import LooseVersion
 
@@ -63,27 +63,6 @@
     raise ValueError('Tag %r does not match source version %r'
                      % (os.environ['GIT_TAG'], version))
 
-requirements = []
-with open(os.path.join(repo_root, 'requirements.txt'), 'r') as f:
-    requirements.extend(f.read().splitlines())
-
-extra_requirements = []
-with open(os.path.join(repo_root, 'requirements-extra.txt'), 'r') as f:
-    extra_requirements.extend(f.read().splitlines())
-
-dev_requirements = []
-with open(os.path.join(repo_root, 'requirements-dev.txt'), 'r') as f:
-    dev_requirements.extend(f.read().splitlines())
-
-vineyard_requirements = []
-with open(os.path.join(repo_root, 'requirements-vineyard.txt'), 'r') as f:
-    vineyard_requirements.extend(f.read().splitlines())
-
-long_description = None
-if os.path.exists(os.path.join(repo_root, 'README.rst')):
-    with open(os.path.join(repo_root, 'README.rst'), encoding='utf-8') as f:
-        long_description = f.read()
-
 
 if os.path.exists(os.path.join(repo_root, '.git')):
     git_info = version_ns['get_git_info']()
@@ -126,41 +105,7 @@
 
 
 setup_options = dict(
-    name='pymars',
     version=version,
-    description='MARS: a tensor-based unified framework for large-scale data computation.',
-    long_description=long_description,
-    long_description_content_type='text/x-rst',
-    author='Qin Xuye',
-    author_email='qin@qinxuye.me',
-    maintainer='Qin Xuye',
-    maintainer_email='qin@qinxuye.me',
-    url='http://github.com/mars-project/mars',
-    license='Apache License 2.0',
-    classifiers=[
-        'Operating System :: OS Independent',
-        'Programming Language :: Python',
-        'Programming Language :: Python :: 3',
-        'Programming Language :: Python :: 3.6',
-        'Programming Language :: Python :: 3.7',
-        'Programming Language :: Python :: 3.8',
-        'Programming Language :: Python :: Implementation :: CPython',
-        'Topic :: Software Development :: Libraries',
-    ],
-    packages=find_packages(exclude=('*.tests.*', '*.tests')),
-    include_package_data=True,
-    entry_points={'console_scripts': [
-        'mars-scheduler = mars.scheduler.__main__:main',
-        'mars-worker = mars.worker.__main__:main',
-        'mars-web = mars.web.__main__:main',
-    ]},
-    python_requires='>=3.6',
-    install_requires=requirements,
     ext_modules=extensions,
-    extras_require={
-        'distributed': extra_requirements,
-        'dev': extra_requirements + dev_requirements,
-        'vineyard': vineyard_requirements,
-    }
 )
 setup(**setup_options)

{"golden_diff": "diff --git a/setup.py b/setup.py\n--- a/setup.py\n+++ b/setup.py\n@@ -16,7 +16,7 @@\n import platform\n import re\n import sys\n-from setuptools import setup, find_packages, Extension\n+from setuptools import setup, Extension\n from distutils.sysconfig import get_config_var\n from distutils.version import LooseVersion\n \n@@ -63,27 +63,6 @@\n     raise ValueError('Tag %r does not match source version %r'\n                      % (os.environ['GIT_TAG'], version))\n \n-requirements = []\n-with open(os.path.join(repo_root, 'requirements.txt'), 'r') as f:\n-    requirements.extend(f.read().splitlines())\n-\n-extra_requirements = []\n-with open(os.path.join(repo_root, 'requirements-extra.txt'), 'r') as f:\n-    extra_requirements.extend(f.read().splitlines())\n-\n-dev_requirements = []\n-with open(os.path.join(repo_root, 'requirements-dev.txt'), 'r') as f:\n-    dev_requirements.extend(f.read().splitlines())\n-\n-vineyard_requirements = []\n-with open(os.path.join(repo_root, 'requirements-vineyard.txt'), 'r') as f:\n-    vineyard_requirements.extend(f.read().splitlines())\n-\n-long_description = None\n-if os.path.exists(os.path.join(repo_root, 'README.rst')):\n-    with open(os.path.join(repo_root, 'README.rst'), encoding='utf-8') as f:\n-        long_description = f.read()\n-\n \n if os.path.exists(os.path.join(repo_root, '.git')):\n     git_info = version_ns['get_git_info']()\n@@ -126,41 +105,7 @@\n \n \n setup_options = dict(\n-    name='pymars',\n     version=version,\n-    description='MARS: a tensor-based unified framework for large-scale data computation.',\n-    long_description=long_description,\n-    long_description_content_type='text/x-rst',\n-    author='Qin Xuye',\n-    author_email='qin@qinxuye.me',\n-    maintainer='Qin Xuye',\n-    maintainer_email='qin@qinxuye.me',\n-    url='http://github.com/mars-project/mars',\n-    license='Apache License 2.0',\n-    classifiers=[\n-        'Operating System :: OS Independent',\n-        'Programming Language :: Python',\n-        'Programming Language :: Python :: 3',\n-        'Programming Language :: Python :: 3.6',\n-        'Programming Language :: Python :: 3.7',\n-        'Programming Language :: Python :: 3.8',\n-        'Programming Language :: Python :: Implementation :: CPython',\n-        'Topic :: Software Development :: Libraries',\n-    ],\n-    packages=find_packages(exclude=('*.tests.*', '*.tests')),\n-    include_package_data=True,\n-    entry_points={'console_scripts': [\n-        'mars-scheduler = mars.scheduler.__main__:main',\n-        'mars-worker = mars.worker.__main__:main',\n-        'mars-web = mars.web.__main__:main',\n-    ]},\n-    python_requires='>=3.6',\n-    install_requires=requirements,\n     ext_modules=extensions,\n-    extras_require={\n-        'distributed': extra_requirements,\n-        'dev': extra_requirements + dev_requirements,\n-        'vineyard': vineyard_requirements,\n-    }\n )\n setup(**setup_options)\n", "issue": "Move the metadata into setup.cfg\nhttps://github.com/gvalkov/setuptools-py2cfg can be helpful.\n", "before_files": [{"content": "# Copyright 1999-2020 Alibaba Group Holding Ltd.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#      http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nimport os\nimport platform\nimport re\nimport sys\nfrom setuptools import setup, find_packages, Extension\nfrom distutils.sysconfig import get_config_var\nfrom distutils.version import LooseVersion\n\nimport numpy as np\nfrom Cython.Build import cythonize\n\ntry:\n    import distutils.ccompiler\n    if sys.platform != 'win32':\n        from numpy.distutils.ccompiler import CCompiler_compile\n        distutils.ccompiler.CCompiler.compile = CCompiler_compile\nexcept ImportError:\n    pass\n\n# From https://github.com/pandas-dev/pandas/pull/24274:\n# For mac, ensure extensions are built for macos 10.9 when compiling on a\n# 10.9 system or above, overriding distuitls behaviour which is to target\n# the version that python was built for. This may be overridden by setting\n# MACOSX_DEPLOYMENT_TARGET before calling setup.py\nif sys.platform == 'darwin':\n    if 'MACOSX_DEPLOYMENT_TARGET' not in os.environ:\n        current_system = LooseVersion(platform.mac_ver()[0])\n        python_target = LooseVersion(\n            get_config_var('MACOSX_DEPLOYMENT_TARGET'))\n        if python_target < '10.9' and current_system >= '10.9':\n            os.environ['MACOSX_DEPLOYMENT_TARGET'] = '10.9'\n\n\nrepo_root = os.path.dirname(os.path.abspath(__file__))\n\n\ndef execfile(fname, globs, locs=None):\n    locs = locs or globs\n    exec(compile(open(fname).read(), fname, \"exec\"), globs, locs)\n\n\nversion_file_path = os.path.join(repo_root, 'mars', '_version.py')\nversion_ns = {'__file__': version_file_path}\nexecfile(version_file_path, version_ns)\nversion = version_ns['__version__']\n# check version vs tag\nif os.environ.get('GIT_TAG') and re.search(r'v\\d', os.environ['GIT_TAG']) \\\n        and os.environ['GIT_TAG'] != 'v' + version:\n    raise ValueError('Tag %r does not match source version %r'\n                     % (os.environ['GIT_TAG'], version))\n\nrequirements = []\nwith open(os.path.join(repo_root, 'requirements.txt'), 'r') as f:\n    requirements.extend(f.read().splitlines())\n\nextra_requirements = []\nwith open(os.path.join(repo_root, 'requirements-extra.txt'), 'r') as f:\n    extra_requirements.extend(f.read().splitlines())\n\ndev_requirements = []\nwith open(os.path.join(repo_root, 'requirements-dev.txt'), 'r') as f:\n    dev_requirements.extend(f.read().splitlines())\n\nvineyard_requirements = []\nwith open(os.path.join(repo_root, 'requirements-vineyard.txt'), 'r') as f:\n    vineyard_requirements.extend(f.read().splitlines())\n\nlong_description = None\nif os.path.exists(os.path.join(repo_root, 'README.rst')):\n    with open(os.path.join(repo_root, 'README.rst'), encoding='utf-8') as f:\n        long_description = f.read()\n\n\nif os.path.exists(os.path.join(repo_root, '.git')):\n    git_info = version_ns['get_git_info']()\n    if git_info:\n        with open(os.path.join(repo_root, 'mars', '.git-branch'), 'w') as git_file:\n            git_file.write(' '.join(git_info))\n\ncythonize_kw = dict(language_level=sys.version_info[0])\ncy_extension_kw = dict()\nif os.environ.get('CYTHON_TRACE'):\n    cy_extension_kw['define_macros'] = [('CYTHON_TRACE_NOGIL', '1'), ('CYTHON_TRACE', '1')]\n    cythonize_kw['compiler_directives'] = {'linetrace': True}\n\nif 'MSC' in sys.version:\n    extra_compile_args = ['/Ot', '/I' + os.path.join(repo_root, 'misc')]\n    cy_extension_kw['extra_compile_args'] = extra_compile_args\nelse:\n    extra_compile_args = ['-O3']\n    cy_extension_kw['extra_compile_args'] = extra_compile_args\n\n\ndef _discover_pyx():\n    exts = dict()\n    for root, _, files in os.walk(os.path.join(repo_root, 'mars')):\n        for fn in files:\n            if not fn.endswith('.pyx'):\n                continue\n            full_fn = os.path.relpath(os.path.join(root, fn), repo_root)\n            mod_name = full_fn.replace('.pyx', '').replace(os.path.sep, '.')\n            exts[mod_name] = Extension(mod_name, [full_fn], **cy_extension_kw)\n    return exts\n\n\ncy_extension_kw['include_dirs'] = [np.get_include()]\nextensions_dict = _discover_pyx()\ncy_extensions = list(extensions_dict.values())\n\nextensions = cythonize(cy_extensions, **cythonize_kw) + \\\n    [Extension('mars.lib.mmh3', ['mars/lib/mmh3_src/mmh3module.cpp', 'mars/lib/mmh3_src/MurmurHash3.cpp'])]\n\n\nsetup_options = dict(\n    name='pymars',\n    version=version,\n    description='MARS: a tensor-based unified framework for large-scale data computation.',\n    long_description=long_description,\n    long_description_content_type='text/x-rst',\n    author='Qin Xuye',\n    author_email='qin@qinxuye.me',\n    maintainer='Qin Xuye',\n    maintainer_email='qin@qinxuye.me',\n    url='http://github.com/mars-project/mars',\n    license='Apache License 2.0',\n    classifiers=[\n        'Operating System :: OS Independent',\n        'Programming Language :: Python',\n        'Programming Language :: Python :: 3',\n        'Programming Language :: Python :: 3.6',\n        'Programming Language :: Python :: 3.7',\n        'Programming Language :: Python :: 3.8',\n        'Programming Language :: Python :: Implementation :: CPython',\n        'Topic :: Software Development :: Libraries',\n    ],\n    packages=find_packages(exclude=('*.tests.*', '*.tests')),\n    include_package_data=True,\n    entry_points={'console_scripts': [\n        'mars-scheduler = mars.scheduler.__main__:main',\n        'mars-worker = mars.worker.__main__:main',\n        'mars-web = mars.web.__main__:main',\n    ]},\n    python_requires='>=3.6',\n    install_requires=requirements,\n    ext_modules=extensions,\n    extras_require={\n        'distributed': extra_requirements,\n        'dev': extra_requirements + dev_requirements,\n        'vineyard': vineyard_requirements,\n    }\n)\nsetup(**setup_options)\n", "path": "setup.py"}], "after_files": [{"content": "# Copyright 1999-2020 Alibaba Group Holding Ltd.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#      http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nimport os\nimport platform\nimport re\nimport sys\nfrom setuptools import setup, Extension\nfrom distutils.sysconfig import get_config_var\nfrom distutils.version import LooseVersion\n\nimport numpy as np\nfrom Cython.Build import cythonize\n\ntry:\n    import distutils.ccompiler\n    if sys.platform != 'win32':\n        from numpy.distutils.ccompiler import CCompiler_compile\n        distutils.ccompiler.CCompiler.compile = CCompiler_compile\nexcept ImportError:\n    pass\n\n# From https://github.com/pandas-dev/pandas/pull/24274:\n# For mac, ensure extensions are built for macos 10.9 when compiling on a\n# 10.9 system or above, overriding distuitls behaviour which is to target\n# the version that python was built for. This may be overridden by setting\n# MACOSX_DEPLOYMENT_TARGET before calling setup.py\nif sys.platform == 'darwin':\n    if 'MACOSX_DEPLOYMENT_TARGET' not in os.environ:\n        current_system = LooseVersion(platform.mac_ver()[0])\n        python_target = LooseVersion(\n            get_config_var('MACOSX_DEPLOYMENT_TARGET'))\n        if python_target < '10.9' and current_system >= '10.9':\n            os.environ['MACOSX_DEPLOYMENT_TARGET'] = '10.9'\n\n\nrepo_root = os.path.dirname(os.path.abspath(__file__))\n\n\ndef execfile(fname, globs, locs=None):\n    locs = locs or globs\n    exec(compile(open(fname).read(), fname, \"exec\"), globs, locs)\n\n\nversion_file_path = os.path.join(repo_root, 'mars', '_version.py')\nversion_ns = {'__file__': version_file_path}\nexecfile(version_file_path, version_ns)\nversion = version_ns['__version__']\n# check version vs tag\nif os.environ.get('GIT_TAG') and re.search(r'v\\d', os.environ['GIT_TAG']) \\\n        and os.environ['GIT_TAG'] != 'v' + version:\n    raise ValueError('Tag %r does not match source version %r'\n                     % (os.environ['GIT_TAG'], version))\n\n\nif os.path.exists(os.path.join(repo_root, '.git')):\n    git_info = version_ns['get_git_info']()\n    if git_info:\n        with open(os.path.join(repo_root, 'mars', '.git-branch'), 'w') as git_file:\n            git_file.write(' '.join(git_info))\n\ncythonize_kw = dict(language_level=sys.version_info[0])\ncy_extension_kw = dict()\nif os.environ.get('CYTHON_TRACE'):\n    cy_extension_kw['define_macros'] = [('CYTHON_TRACE_NOGIL', '1'), ('CYTHON_TRACE', '1')]\n    cythonize_kw['compiler_directives'] = {'linetrace': True}\n\nif 'MSC' in sys.version:\n    extra_compile_args = ['/Ot', '/I' + os.path.join(repo_root, 'misc')]\n    cy_extension_kw['extra_compile_args'] = extra_compile_args\nelse:\n    extra_compile_args = ['-O3']\n    cy_extension_kw['extra_compile_args'] = extra_compile_args\n\n\ndef _discover_pyx():\n    exts = dict()\n    for root, _, files in os.walk(os.path.join(repo_root, 'mars')):\n        for fn in files:\n            if not fn.endswith('.pyx'):\n                continue\n            full_fn = os.path.relpath(os.path.join(root, fn), repo_root)\n            mod_name = full_fn.replace('.pyx', '').replace(os.path.sep, '.')\n            exts[mod_name] = Extension(mod_name, [full_fn], **cy_extension_kw)\n    return exts\n\n\ncy_extension_kw['include_dirs'] = [np.get_include()]\nextensions_dict = _discover_pyx()\ncy_extensions = list(extensions_dict.values())\n\nextensions = cythonize(cy_extensions, **cythonize_kw) + \\\n    [Extension('mars.lib.mmh3', ['mars/lib/mmh3_src/mmh3module.cpp', 'mars/lib/mmh3_src/MurmurHash3.cpp'])]\n\n\nsetup_options = dict(\n    version=version,\n    ext_modules=extensions,\n)\nsetup(**setup_options)\n", "path": "setup.py"}]}