We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
Update psutil version
`psutil` is pinned to version 3.0.1, which causes dependency conflicts with other packages like `dask`, which requires version >=5.0. All `psutil` calls are in **src/toil/batchSystems/mesos/executor.py** and I confirmed that on the latest version (5.6.3), every `psutil` call works the same:

```
In [1]: import psutil

In [2]: psutil.cpu_percent()
Out[2]: 8.9

In [3]: psutil.cpu_count()
Out[3]: 8

In [4]: psutil.virtual_memory()
Out[4]: svmem(total=17179869184, available=5836066816, percent=66.0, used=9086025728, free=72404992, active=5766565888, inactive=5725958144, wired=3319459840)

In [5]: psutil.__version__
Out[5]: '5.6.3'
```

Happy to file a PR if that's helpful.

┆Issue is synchronized with this [Jira Task](https://ucsc-cgl.atlassian.net/browse/TOIL-414)
┆Issue Number: TOIL-414


--- 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 (C) 2015-2016 Regents of the University of California
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 from setuptools import find_packages, setup
16 import sys
17 
18 def runSetup():
19     """
20     Calls setup(). This function exists so the setup() invocation preceded more internal
21     functionality. The `version` module is imported dynamically by importVersion() below.
22     """
23     boto = 'boto==2.48.0'
24     boto3 = 'boto3>=1.7.50, <2.0'
25     futures = 'futures==3.1.1'
26     pycryptodome = 'pycryptodome==3.5.1'
27     pymesos = 'pymesos==0.3.7'
28     psutil = 'psutil==3.0.1'
29     azureCosmosdbTable = 'azure-cosmosdb-table==0.37.1'
30     azureAnsible = 'ansible[azure]==2.5.0a1'
31     azureStorage = 'azure-storage==0.35.1'
32     secretstorage = 'secretstorage<3'
33     pynacl = 'pynacl==1.1.2'
34     gcs = 'google-cloud-storage==1.6.0'
35     gcs_oauth2_boto_plugin = 'gcs_oauth2_boto_plugin==1.14'
36     apacheLibcloud = 'apache-libcloud==2.2.1'
37     cwltool = 'cwltool==1.0.20190815141648'
38     schemaSalad = 'schema-salad<5,>=4.5.20190815125611'
39     galaxyLib = 'galaxy-lib==18.9.2'
40     htcondor = 'htcondor>=8.6.0'
41     dill = 'dill==0.2.7.1'
42     six = 'six>=1.10.0'
43     future = 'future'
44     requests = 'requests>=2, <3'
45     docker = 'docker==2.5.1'
46     subprocess32 = 'subprocess32<=3.5.2'
47     dateutil = 'python-dateutil'
48     addict = 'addict<=2.2.0'
49     sphinx = 'sphinx==1.7.5'
50     pathlib2 = 'pathlib2==2.3.2'
51 
52     core_reqs = [
53         dill,
54         six,
55         future,
56         requests,
57         docker,
58         dateutil,
59         psutil,
60         subprocess32,
61         addict,
62         sphinx,
63         pathlib2]
64 
65     mesos_reqs = [
66         pymesos,
67         psutil]
68     aws_reqs = [
69         boto,
70         boto3,
71         futures,
72         pycryptodome]
73     azure_reqs = [
74         azureCosmosdbTable,
75         secretstorage,
76         azureAnsible,
77         azureStorage]
78     encryption_reqs = [
79         pynacl]
80     google_reqs = [
81         gcs_oauth2_boto_plugin,  # is this being used??
82         apacheLibcloud,
83         gcs]
84     cwl_reqs = [
85         cwltool,
86         schemaSalad,
87         galaxyLib]
88     wdl_reqs = []
89     htcondor_reqs = [
90         htcondor]
91 
92     # htcondor is not supported by apple
93     # this is tricky to conditionally support in 'all' due
94     # to how wheels work, so it is not included in all and
95     # must be explicitly installed as an extra
96     all_reqs = \
97         mesos_reqs + \
98         aws_reqs + \
99         azure_reqs + \
100         encryption_reqs + \
101         google_reqs + \
102         cwl_reqs
103 
104     # remove the subprocess32 backport if not python2
105     if not sys.version_info[0] == 2:
106         core_reqs.remove(subprocess32)
107 
108     setup(
109         name='toil',
110         version=version.distVersion,
111         description='Pipeline management software for clusters.',
112         author='Benedict Paten',
113         author_email='benedict@soe.usc.edu',
114         url="https://github.com/BD2KGenomics/toil",
115         classifiers=[
116           'Development Status :: 5 - Production/Stable',
117           'Environment :: Console',
118           'Intended Audience :: Developers',
119           'Intended Audience :: Science/Research',
120           'Intended Audience :: Healthcare Industry',
121           'License :: OSI Approved :: Apache Software License',
122           'Natural Language :: English',
123           'Operating System :: MacOS :: MacOS X',
124           'Operating System :: POSIX',
125           'Operating System :: POSIX :: Linux',
126           'Programming Language :: Python :: 2.7',
127           'Programming Language :: Python :: 3.5',
128           'Programming Language :: Python :: 3.6',
129           'Topic :: Scientific/Engineering',
130           'Topic :: Scientific/Engineering :: Bio-Informatics',
131           'Topic :: Scientific/Engineering :: Astronomy',
132           'Topic :: Scientific/Engineering :: Atmospheric Science',
133           'Topic :: Scientific/Engineering :: Information Analysis',
134           'Topic :: Scientific/Engineering :: Medical Science Apps.',
135           'Topic :: System :: Distributed Computing',
136           'Topic :: Utilities'],
137         license="Apache License v2.0",
138         install_requires=core_reqs,
139         extras_require={
140             'mesos': mesos_reqs,
141             'aws': aws_reqs,
142             'azure': azure_reqs,
143             'encryption': encryption_reqs,
144             'google': google_reqs,
145             'cwl': cwl_reqs,
146             'wdl': wdl_reqs,
147             'htcondor:sys_platform!="darwin"': htcondor_reqs,
148             'all': all_reqs},
149         package_dir={'': 'src'},
150         packages=find_packages(where='src',
151                                # Note that we intentionally include the top-level `test` package for
152                                # functionality like the @experimental and @integrative decoratorss:
153                                exclude=['*.test.*']),
154         package_data = {
155             '': ['*.yml', 'contrib/azure_rm.py', 'cloud-config'],
156         },
157         # Unfortunately, the names of the entry points are hard-coded elsewhere in the code base so
158         # you can't just change them here. Luckily, most of them are pretty unique strings, and thus
159         # easy to search for.
160         entry_points={
161             'console_scripts': [
162                 'toil = toil.utils.toilMain:main',
163                 '_toil_worker = toil.worker:main',
164                 'cwltoil = toil.cwl.cwltoil:main [cwl]',
165                 'toil-cwl-runner = toil.cwl.cwltoil:main [cwl]',
166                 'toil-wdl-runner = toil.wdl.toilwdl:main',
167                 '_toil_mesos_executor = toil.batchSystems.mesos.executor:main [mesos]']})
168 
169 
170 def importVersion():
171     """
172     Load and return the module object for src/toil/version.py, generating it from the template if
173     required.
174     """
175     import imp
176     try:
177         # Attempt to load the template first. It only exists in a working copy cloned via git.
178         import version_template
179     except ImportError:
180         # If loading the template fails we must be in a unpacked source distribution and
181         # src/toil/version.py will already exist.
182         pass
183     else:
184         # Use the template to generate src/toil/version.py
185         import os
186         import errno
187         from tempfile import NamedTemporaryFile
188 
189         new = version_template.expand_()
190         try:
191             with open('src/toil/version.py') as f:
192                 old = f.read()
193         except IOError as e:
194             if e.errno == errno.ENOENT:
195                 old = None
196             else:
197                 raise
198 
199         if old != new:
200             with NamedTemporaryFile(mode='w',dir='src/toil', prefix='version.py.', delete=False) as f:
201                 f.write(new)
202             os.rename(f.name, 'src/toil/version.py')
203     # Unfortunately, we can't use a straight import here because that would also load the stuff
204     # defined in src/toil/__init__.py which imports modules from external dependencies that may
205     # yet to be installed when setup.py is invoked.
206     return imp.load_source('toil.version', 'src/toil/version.py')
207 
208 
209 version = importVersion()
210 runSetup()
211
```
--- 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
@@ -25,7 +25,7 @@
     futures = 'futures==3.1.1'
     pycryptodome = 'pycryptodome==3.5.1'
     pymesos = 'pymesos==0.3.7'
-    psutil = 'psutil==3.0.1'
+    psutil = 'psutil >= 3.0.1, <6'
     azureCosmosdbTable = 'azure-cosmosdb-table==0.37.1'
     azureAnsible = 'ansible[azure]==2.5.0a1'
     azureStorage = 'azure-storage==0.35.1'

{"golden_diff": "diff --git a/setup.py b/setup.py\n--- a/setup.py\n+++ b/setup.py\n@@ -25,7 +25,7 @@\n     futures = 'futures==3.1.1'\n     pycryptodome = 'pycryptodome==3.5.1'\n     pymesos = 'pymesos==0.3.7'\n-    psutil = 'psutil==3.0.1'\n+    psutil = 'psutil >= 3.0.1, <6'\n     azureCosmosdbTable = 'azure-cosmosdb-table==0.37.1'\n     azureAnsible = 'ansible[azure]==2.5.0a1'\n     azureStorage = 'azure-storage==0.35.1'\n", "issue": "Update psutil version\n`psutil` is pinned to version 3.0.1, which causes dependency conflicts with other packages like `dask`, which requires version >=5.0. All `psutil` calls are in **src/toil/batchSystems/mesos/executor.py** and I confirmed that on the latest version (5.6.3), every `psutil` call works the same:\n\n```\nIn [1]: import psutil\n\nIn [2]: psutil.cpu_percent()\nOut[2]: 8.9\n\nIn [3]: psutil.cpu_count()\nOut[3]: 8\n\nIn [4]: psutil.virtual_memory()\nOut[4]: svmem(total=17179869184, available=5836066816, percent=66.0, used=9086025728, free=72404992, active=5766565888, inactive=5725958144, wired=3319459840)\n\nIn [5]: psutil.__version__\nOut[5]: '5.6.3'\n```\n\nHappy to file a PR if that's helpful.\n\n\u2506Issue is synchronized with this [Jira Task](https://ucsc-cgl.atlassian.net/browse/TOIL-414)\n\u2506Issue Number: TOIL-414\n\n", "before_files": [{"content": "# Copyright (C) 2015-2016 Regents of the University of California\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\nfrom setuptools import find_packages, setup\nimport sys\n\ndef runSetup():\n    \"\"\"\n    Calls setup(). This function exists so the setup() invocation preceded more internal\n    functionality. The `version` module is imported dynamically by importVersion() below.\n    \"\"\"\n    boto = 'boto==2.48.0'\n    boto3 = 'boto3>=1.7.50, <2.0'\n    futures = 'futures==3.1.1'\n    pycryptodome = 'pycryptodome==3.5.1'\n    pymesos = 'pymesos==0.3.7'\n    psutil = 'psutil==3.0.1'\n    azureCosmosdbTable = 'azure-cosmosdb-table==0.37.1'\n    azureAnsible = 'ansible[azure]==2.5.0a1'\n    azureStorage = 'azure-storage==0.35.1'\n    secretstorage = 'secretstorage<3'\n    pynacl = 'pynacl==1.1.2'\n    gcs = 'google-cloud-storage==1.6.0'\n    gcs_oauth2_boto_plugin = 'gcs_oauth2_boto_plugin==1.14'\n    apacheLibcloud = 'apache-libcloud==2.2.1'\n    cwltool = 'cwltool==1.0.20190815141648'\n    schemaSalad = 'schema-salad<5,>=4.5.20190815125611'\n    galaxyLib = 'galaxy-lib==18.9.2'\n    htcondor = 'htcondor>=8.6.0'\n    dill = 'dill==0.2.7.1'\n    six = 'six>=1.10.0'\n    future = 'future'\n    requests = 'requests>=2, <3'\n    docker = 'docker==2.5.1'\n    subprocess32 = 'subprocess32<=3.5.2'\n    dateutil = 'python-dateutil'\n    addict = 'addict<=2.2.0'\n    sphinx = 'sphinx==1.7.5'\n    pathlib2 = 'pathlib2==2.3.2'\n\n    core_reqs = [\n        dill,\n        six,\n        future,\n        requests,\n        docker,\n        dateutil,\n        psutil,\n        subprocess32,\n        addict,\n        sphinx,\n        pathlib2]\n\n    mesos_reqs = [\n        pymesos,\n        psutil]\n    aws_reqs = [\n        boto,\n        boto3,\n        futures,\n        pycryptodome]\n    azure_reqs = [\n        azureCosmosdbTable,\n        secretstorage,\n        azureAnsible,\n        azureStorage]\n    encryption_reqs = [\n        pynacl]\n    google_reqs = [\n        gcs_oauth2_boto_plugin,  # is this being used??\n        apacheLibcloud,\n        gcs]\n    cwl_reqs = [\n        cwltool,\n        schemaSalad,\n        galaxyLib]\n    wdl_reqs = []\n    htcondor_reqs = [\n        htcondor]\n\n    # htcondor is not supported by apple\n    # this is tricky to conditionally support in 'all' due\n    # to how wheels work, so it is not included in all and\n    # must be explicitly installed as an extra\n    all_reqs = \\\n        mesos_reqs + \\\n        aws_reqs + \\\n        azure_reqs + \\\n        encryption_reqs + \\\n        google_reqs + \\\n        cwl_reqs\n\n    # remove the subprocess32 backport if not python2\n    if not sys.version_info[0] == 2:\n        core_reqs.remove(subprocess32)\n\n    setup(\n        name='toil',\n        version=version.distVersion,\n        description='Pipeline management software for clusters.',\n        author='Benedict Paten',\n        author_email='benedict@soe.usc.edu',\n        url=\"https://github.com/BD2KGenomics/toil\",\n        classifiers=[\n          'Development Status :: 5 - Production/Stable',\n          'Environment :: Console',\n          'Intended Audience :: Developers',\n          'Intended Audience :: Science/Research',\n          'Intended Audience :: Healthcare Industry',\n          'License :: OSI Approved :: Apache Software License',\n          'Natural Language :: English',\n          'Operating System :: MacOS :: MacOS X',\n          'Operating System :: POSIX',\n          'Operating System :: POSIX :: Linux',\n          'Programming Language :: Python :: 2.7',\n          'Programming Language :: Python :: 3.5',\n          'Programming Language :: Python :: 3.6',\n          'Topic :: Scientific/Engineering',\n          'Topic :: Scientific/Engineering :: Bio-Informatics',\n          'Topic :: Scientific/Engineering :: Astronomy',\n          'Topic :: Scientific/Engineering :: Atmospheric Science',\n          'Topic :: Scientific/Engineering :: Information Analysis',\n          'Topic :: Scientific/Engineering :: Medical Science Apps.',\n          'Topic :: System :: Distributed Computing',\n          'Topic :: Utilities'],\n        license=\"Apache License v2.0\",\n        install_requires=core_reqs,\n        extras_require={\n            'mesos': mesos_reqs,\n            'aws': aws_reqs,\n            'azure': azure_reqs,\n            'encryption': encryption_reqs,\n            'google': google_reqs,\n            'cwl': cwl_reqs,\n            'wdl': wdl_reqs,\n            'htcondor:sys_platform!=\"darwin\"': htcondor_reqs,\n            'all': all_reqs},\n        package_dir={'': 'src'},\n        packages=find_packages(where='src',\n                               # Note that we intentionally include the top-level `test` package for\n                               # functionality like the @experimental and @integrative decoratorss:\n                               exclude=['*.test.*']),\n        package_data = {\n            '': ['*.yml', 'contrib/azure_rm.py', 'cloud-config'],\n        },\n        # Unfortunately, the names of the entry points are hard-coded elsewhere in the code base so\n        # you can't just change them here. Luckily, most of them are pretty unique strings, and thus\n        # easy to search for.\n        entry_points={\n            'console_scripts': [\n                'toil = toil.utils.toilMain:main',\n                '_toil_worker = toil.worker:main',\n                'cwltoil = toil.cwl.cwltoil:main [cwl]',\n                'toil-cwl-runner = toil.cwl.cwltoil:main [cwl]',\n                'toil-wdl-runner = toil.wdl.toilwdl:main',\n                '_toil_mesos_executor = toil.batchSystems.mesos.executor:main [mesos]']})\n\n\ndef importVersion():\n    \"\"\"\n    Load and return the module object for src/toil/version.py, generating it from the template if\n    required.\n    \"\"\"\n    import imp\n    try:\n        # Attempt to load the template first. It only exists in a working copy cloned via git.\n        import version_template\n    except ImportError:\n        # If loading the template fails we must be in a unpacked source distribution and\n        # src/toil/version.py will already exist.\n        pass\n    else:\n        # Use the template to generate src/toil/version.py\n        import os\n        import errno\n        from tempfile import NamedTemporaryFile\n\n        new = version_template.expand_()\n        try:\n            with open('src/toil/version.py') as f:\n                old = f.read()\n        except IOError as e:\n            if e.errno == errno.ENOENT:\n                old = None\n            else:\n                raise\n\n        if old != new:\n            with NamedTemporaryFile(mode='w',dir='src/toil', prefix='version.py.', delete=False) as f:\n                f.write(new)\n            os.rename(f.name, 'src/toil/version.py')\n    # Unfortunately, we can't use a straight import here because that would also load the stuff\n    # defined in src/toil/__init__.py which imports modules from external dependencies that may\n    # yet to be installed when setup.py is invoked.\n    return imp.load_source('toil.version', 'src/toil/version.py')\n\n\nversion = importVersion()\nrunSetup()\n", "path": "setup.py"}], "after_files": [{"content": "# Copyright (C) 2015-2016 Regents of the University of California\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\nfrom setuptools import find_packages, setup\nimport sys\n\ndef runSetup():\n    \"\"\"\n    Calls setup(). This function exists so the setup() invocation preceded more internal\n    functionality. The `version` module is imported dynamically by importVersion() below.\n    \"\"\"\n    boto = 'boto==2.48.0'\n    boto3 = 'boto3>=1.7.50, <2.0'\n    futures = 'futures==3.1.1'\n    pycryptodome = 'pycryptodome==3.5.1'\n    pymesos = 'pymesos==0.3.7'\n    psutil = 'psutil >= 3.0.1, <6'\n    azureCosmosdbTable = 'azure-cosmosdb-table==0.37.1'\n    azureAnsible = 'ansible[azure]==2.5.0a1'\n    azureStorage = 'azure-storage==0.35.1'\n    secretstorage = 'secretstorage<3'\n    pynacl = 'pynacl==1.1.2'\n    gcs = 'google-cloud-storage==1.6.0'\n    gcs_oauth2_boto_plugin = 'gcs_oauth2_boto_plugin==1.14'\n    apacheLibcloud = 'apache-libcloud==2.2.1'\n    cwltool = 'cwltool==1.0.20190815141648'\n    schemaSalad = 'schema-salad<5,>=4.5.20190815125611'\n    galaxyLib = 'galaxy-lib==18.9.2'\n    htcondor = 'htcondor>=8.6.0'\n    dill = 'dill==0.2.7.1'\n    six = 'six>=1.10.0'\n    future = 'future'\n    requests = 'requests>=2, <3'\n    docker = 'docker==2.5.1'\n    subprocess32 = 'subprocess32<=3.5.2'\n    dateutil = 'python-dateutil'\n    addict = 'addict<=2.2.0'\n    sphinx = 'sphinx==1.7.5'\n    pathlib2 = 'pathlib2==2.3.2'\n\n    core_reqs = [\n        dill,\n        six,\n        future,\n        requests,\n        docker,\n        dateutil,\n        psutil,\n        subprocess32,\n        addict,\n        sphinx,\n        pathlib2]\n\n    mesos_reqs = [\n        pymesos,\n        psutil]\n    aws_reqs = [\n        boto,\n        boto3,\n        futures,\n        pycryptodome]\n    azure_reqs = [\n        azureCosmosdbTable,\n        secretstorage,\n        azureAnsible,\n        azureStorage]\n    encryption_reqs = [\n        pynacl]\n    google_reqs = [\n        gcs_oauth2_boto_plugin,  # is this being used??\n        apacheLibcloud,\n        gcs]\n    cwl_reqs = [\n        cwltool,\n        schemaSalad,\n        galaxyLib]\n    wdl_reqs = []\n    htcondor_reqs = [\n        htcondor]\n\n    # htcondor is not supported by apple\n    # this is tricky to conditionally support in 'all' due\n    # to how wheels work, so it is not included in all and\n    # must be explicitly installed as an extra\n    all_reqs = \\\n        mesos_reqs + \\\n        aws_reqs + \\\n        azure_reqs + \\\n        encryption_reqs + \\\n        google_reqs + \\\n        cwl_reqs\n\n    # remove the subprocess32 backport if not python2\n    if not sys.version_info[0] == 2:\n        core_reqs.remove(subprocess32)\n\n    setup(\n        name='toil',\n        version=version.distVersion,\n        description='Pipeline management software for clusters.',\n        author='Benedict Paten',\n        author_email='benedict@soe.usc.edu',\n        url=\"https://github.com/BD2KGenomics/toil\",\n        classifiers=[\n          'Development Status :: 5 - Production/Stable',\n          'Environment :: Console',\n          'Intended Audience :: Developers',\n          'Intended Audience :: Science/Research',\n          'Intended Audience :: Healthcare Industry',\n          'License :: OSI Approved :: Apache Software License',\n          'Natural Language :: English',\n          'Operating System :: MacOS :: MacOS X',\n          'Operating System :: POSIX',\n          'Operating System :: POSIX :: Linux',\n          'Programming Language :: Python :: 2.7',\n          'Programming Language :: Python :: 3.5',\n          'Programming Language :: Python :: 3.6',\n          'Topic :: Scientific/Engineering',\n          'Topic :: Scientific/Engineering :: Bio-Informatics',\n          'Topic :: Scientific/Engineering :: Astronomy',\n          'Topic :: Scientific/Engineering :: Atmospheric Science',\n          'Topic :: Scientific/Engineering :: Information Analysis',\n          'Topic :: Scientific/Engineering :: Medical Science Apps.',\n          'Topic :: System :: Distributed Computing',\n          'Topic :: Utilities'],\n        license=\"Apache License v2.0\",\n        install_requires=core_reqs,\n        extras_require={\n            'mesos': mesos_reqs,\n            'aws': aws_reqs,\n            'azure': azure_reqs,\n            'encryption': encryption_reqs,\n            'google': google_reqs,\n            'cwl': cwl_reqs,\n            'wdl': wdl_reqs,\n            'htcondor:sys_platform!=\"darwin\"': htcondor_reqs,\n            'all': all_reqs},\n        package_dir={'': 'src'},\n        packages=find_packages(where='src',\n                               # Note that we intentionally include the top-level `test` package for\n                               # functionality like the @experimental and @integrative decoratorss:\n                               exclude=['*.test.*']),\n        package_data = {\n            '': ['*.yml', 'contrib/azure_rm.py', 'cloud-config'],\n        },\n        # Unfortunately, the names of the entry points are hard-coded elsewhere in the code base so\n        # you can't just change them here. Luckily, most of them are pretty unique strings, and thus\n        # easy to search for.\n        entry_points={\n            'console_scripts': [\n                'toil = toil.utils.toilMain:main',\n                '_toil_worker = toil.worker:main',\n                'cwltoil = toil.cwl.cwltoil:main [cwl]',\n                'toil-cwl-runner = toil.cwl.cwltoil:main [cwl]',\n                'toil-wdl-runner = toil.wdl.toilwdl:main',\n                '_toil_mesos_executor = toil.batchSystems.mesos.executor:main [mesos]']})\n\n\ndef importVersion():\n    \"\"\"\n    Load and return the module object for src/toil/version.py, generating it from the template if\n    required.\n    \"\"\"\n    import imp\n    try:\n        # Attempt to load the template first. It only exists in a working copy cloned via git.\n        import version_template\n    except ImportError:\n        # If loading the template fails we must be in a unpacked source distribution and\n        # src/toil/version.py will already exist.\n        pass\n    else:\n        # Use the template to generate src/toil/version.py\n        import os\n        import errno\n        from tempfile import NamedTemporaryFile\n\n        new = version_template.expand_()\n        try:\n            with open('src/toil/version.py') as f:\n                old = f.read()\n        except IOError as e:\n            if e.errno == errno.ENOENT:\n                old = None\n            else:\n                raise\n\n        if old != new:\n            with NamedTemporaryFile(mode='w',dir='src/toil', prefix='version.py.', delete=False) as f:\n                f.write(new)\n            os.rename(f.name, 'src/toil/version.py')\n    # Unfortunately, we can't use a straight import here because that would also load the stuff\n    # defined in src/toil/__init__.py which imports modules from external dependencies that may\n    # yet to be installed when setup.py is invoked.\n    return imp.load_source('toil.version', 'src/toil/version.py')\n\n\nversion = importVersion()\nrunSetup()\n", "path": "setup.py"}]}