We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
pip install cwltool fails due to broken psutil version
Hello,
It looks like the latest release of psutil is broken, and the version is not bounded in the cwltool requirements;
```
[mdb@h-0000 kegg-cwl]$ pip install cwltool==1.0.20181217162649
Collecting cwltool==1.0.20181217162649
  Cache entry deserialization failed, entry ignored
  Downloading https://files.pythonhosted.org/packages/9f/ab/d2c672e36133346b7fede41312e4b8da31cba331bfb2c02a4e6f2ed3d565/cwltool-1.0.20181217162649-py2.py3-none-any.whl (628kB)
    100% |████████████████████████████████| 634kB 2.2MB/s 
Collecting bagit>=1.6.4 (from cwltool==1.0.20181217162649)
  Cache entry deserialization failed, entry ignored
Requirement already satisfied (use --upgrade to upgrade): setuptools in /usr/lib/python2.7/site-packages (from cwltool==1.0.20181217162649)
Collecting prov==1.5.1 (from cwltool==1.0.20181217162649)
  Cache entry deserialization failed, entry ignored
  Cache entry deserialization failed, entry ignored
  Downloading https://files.pythonhosted.org/packages/8e/fb/2c4c618185be2bda327f9dacd16b3122cc938809f19df7be840595d0e584/prov-1.5.1-py2.py3-none-any.whl (426kB)
    100% |████████████████████████████████| 430kB 3.3MB/s 
Collecting mypy-extensions (from cwltool==1.0.20181217162649)
  Cache entry deserialization failed, entry ignored
  Cache entry deserialization failed, entry ignored
  Downloading https://files.pythonhosted.org/packages/4d/72/8d54e2b296631b9b14961d583e56e90d9d7fba8a240d5ce7f1113cc5e887/mypy_extensions-0.4.1-py2.py3-none-any.whl
Requirement already satisfied (use --upgrade to upgrade): typing>=3.5.3; python_version < "3.6" in /usr/lib/python2.7/site-packages (from cwltool==1.0.20181217162649)
Requirement already satisfied (use --upgrade to upgrade): rdflib<4.3.0,>=4.2.2 in /usr/lib/python2.7/site-packages (from cwltool==1.0.20181217162649)
Collecting ruamel.yaml<=0.15.77,>=0.12.4 (from cwltool==1.0.20181217162649)
  Cache entry deserialization failed, entry ignored
  Cache entry deserialization failed, entry ignored
  Downloading https://files.pythonhosted.org/packages/9a/f3/96df89eb8fd542dcb7bfdaecd79c7642c6d272b122dc2e96d237fa57fcd1/ruamel.yaml-0.15.77-cp27-cp27mu-manylinux1_x86_64.whl (609kB)
    100% |████████████████████████████████| 614kB 2.2MB/s 
Collecting psutil (from cwltool==1.0.20181217162649)
  Cache entry deserialization failed, entry ignored
Exception:
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/pip/basecommand.py", line 215, in main
    status = self.run(options, args)
  File "/usr/lib/python2.7/site-packages/pip/commands/install.py", line 307, in run
    requirement_set.prepare_files(finder)
  File "/usr/lib/python2.7/site-packages/pip/req/req_set.py", line 370, in prepare_files
    ignore_dependencies=self.ignore_dependencies))
  File "/usr/lib/python2.7/site-packages/pip/req/req_set.py", line 587, in _prepare_file
    session=self.session, hashes=hashes)
  File "/usr/lib/python2.7/site-packages/pip/download.py", line 798, in unpack_url
    unpack_file_url(link, location, download_dir, hashes=hashes)
  File "/usr/lib/python2.7/site-packages/pip/download.py", line 705, in unpack_file_url
    unpack_file(from_path, location, content_type, link)
  File "/usr/lib/python2.7/site-packages/pip/utils/__init__.py", line 599, in unpack_file
    flatten=not filename.endswith('.whl')
  File "/usr/lib/python2.7/site-packages/pip/utils/__init__.py", line 484, in unzip_file
    zip = zipfile.ZipFile(zipfp, allowZip64=True)
  File "/usr/lib64/python2.7/zipfile.py", line 766, in __init__
    self._RealGetContents()
  File "/usr/lib64/python2.7/zipfile.py", line 807, in _RealGetContents
    raise BadZipfile, "File is not a zip file"
BadZipfile: File is not a zip file
```

A possible fix is to install `pip install psutil==5.6.1` prior to install cwltool.

--- 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 #!/usr/bin/env python3
2 """Setup for the reference implementation of the CWL standards."""
3 import os
4 import sys
5 import warnings
6 
7 import setuptools.command.egg_info as egg_info_cmd
8 from setuptools import setup
9 
10 if os.name == "nt":
11     warnings.warn(
12         "The CWL reference runner (cwltool) no longer supports running "
13         "CWL workflows natively on MS Windows as its previous MS Windows "
14         "support was incomplete and untested. Instead, please see "
15         "https://pypi.org/project/cwltool/#ms-windows-users "
16         "for instructions on running cwltool via "
17         "Windows Subsystem for Linux 2 (WSL2). If don't need to execute "
18         "CWL documents, then you can ignore this warning, but please "
19         "consider migrating to https://pypi.org/project/cwl-utils/ "
20         "for your CWL document processing needs."
21     )
22 
23 SETUP_DIR = os.path.dirname(__file__)
24 README = os.path.join(SETUP_DIR, "README.rst")
25 
26 try:
27     import gittaggers
28 
29     Tagger = gittaggers.EggInfoFromGit
30 except ImportError:
31     Tagger = egg_info_cmd.egg_info
32 
33 NEEDS_PYTEST = {"pytest", "test", "ptr"}.intersection(sys.argv)
34 PYTEST_RUNNER = ["pytest-runner", "pytest-cov"] if NEEDS_PYTEST else []
35 USE_MYPYC = False
36 # To compile with mypyc, a mypyc checkout must be present on the PYTHONPATH
37 if len(sys.argv) > 1 and sys.argv[1] == "--use-mypyc":
38     sys.argv.pop(1)
39     USE_MYPYC = True
40 if os.getenv("CWLTOOL_USE_MYPYC", None) == "1":
41     USE_MYPYC = True
42 
43 if USE_MYPYC:
44     mypyc_targets = [
45         "cwltool/argparser.py",
46         "cwltool/builder.py",
47         "cwltool/checker.py",
48         "cwltool/command_line_tool.py",
49         # "cwltool/context.py",  # monkeypatching
50         "cwltool/cwlrdf.py",
51         "cwltool/docker_id.py",
52         "cwltool/docker.py",
53         "cwltool/udocker.py",
54         "cwltool/errors.py",
55         "cwltool/executors.py",
56         "cwltool/expression.py",
57         "cwltool/factory.py",
58         "cwltool/flatten.py",
59         # "cwltool/__init__.py",
60         "cwltool/job.py",
61         "cwltool/load_tool.py",
62         # "cwltool/loghandler.py",  # so we can monkeypatch the logger from tests
63         # "cwltool/__main__.py",
64         "cwltool/main.py",
65         "cwltool/mutation.py",
66         "cwltool/pack.py",
67         # "cwltool/pathmapper.py",  # class PathMapper needs to be subclassable
68         "cwltool/process.py",
69         "cwltool/procgenerator.py",
70         # "cwltool/provenance.py",  # WritableBag is having issues
71         "cwltool/resolver.py",
72         # "cwltool/sandboxjs.py",  # probably not speed critical, tests need to mock components
73         "cwltool/secrets.py",
74         "cwltool/singularity.py",
75         "cwltool/software_requirements.py",
76         "cwltool/stdfsaccess.py",
77         "cwltool/subgraph.py",
78         "cwltool/update.py",
79         "cwltool/utils.py",
80         "cwltool/validate_js.py",
81         "cwltool/workflow.py",
82     ]
83 
84     from mypyc.build import mypycify
85 
86     opt_level = os.getenv("MYPYC_OPT_LEVEL", "3")
87     ext_modules = mypycify(mypyc_targets, opt_level=opt_level)
88 else:
89     ext_modules = []
90 
91 setup(
92     name="cwltool",
93     version="3.1",
94     description="Common workflow language reference implementation",
95     long_description=open(README).read(),
96     long_description_content_type="text/x-rst",
97     author="Common workflow language working group",
98     author_email="common-workflow-language@googlegroups.com",
99     url="https://github.com/common-workflow-language/cwltool",
100     download_url="https://github.com/common-workflow-language/cwltool",
101     ext_modules=ext_modules,
102     # platforms='',  # empty as is conveyed by the classifier below
103     # license='',  # empty as is conveyed by the classifier below
104     packages=["cwltool", "cwltool.tests"],
105     package_dir={"cwltool.tests": "tests"},
106     include_package_data=True,
107     install_requires=[
108         "setuptools",
109         "requests >= 2.6.1",  # >= 2.6.1 to workaround
110         # https://github.com/ionrock/cachecontrol/issues/137
111         "ruamel.yaml >= 0.12.4, < 0.17.10",
112         "rdflib >= 4.2.2, < 5.1.0",
113         "shellescape >= 3.4.1, < 3.9",
114         # 7.1.20210518142926 or later required due to
115         # https://github.com/common-workflow-language/schema_salad/issues/385
116         "schema-salad >= 7.1.20210518142926, < 8",
117         "mypy-extensions",
118         "psutil",
119         "prov == 1.5.1",
120         "bagit >= 1.6.4",
121         "typing-extensions",
122         "coloredlogs",
123         "pydot >= 1.4.1",
124         "argcomplete",
125     ],
126     extras_require={
127         "deps": ["galaxy-tool-util >= 21.1.0"],
128         "docs": [
129             "sphinx >= 2.2",
130             "sphinx-rtd-theme",
131             "sphinx-autoapi",
132             "sphinx-autodoc-typehints",
133             "typed_ast;python_version<'3.8'",
134         ],
135     },
136     python_requires=">=3.6, <4",
137     setup_requires=PYTEST_RUNNER,
138     test_suite="tests",
139     tests_require=[
140         "pytest >= 6.2, < 6.3",
141         "mock >= 2.0.0",
142         "pytest-mock >= 1.10.0",
143         "arcp >= 0.2.0",
144         "rdflib-jsonld >= 0.4.0",
145     ],
146     entry_points={"console_scripts": ["cwltool=cwltool.main:run"]},
147     zip_safe=True,
148     cmdclass={"egg_info": Tagger},
149     classifiers=[
150         "Development Status :: 5 - Production/Stable",
151         "Environment :: Console",
152         "Intended Audience :: Developers",
153         "Intended Audience :: Science/Research",
154         "Intended Audience :: Healthcare Industry",
155         "License :: OSI Approved :: Apache Software License",
156         "Natural Language :: English",
157         "Operating System :: MacOS :: MacOS X",
158         "Operating System :: POSIX",
159         "Operating System :: POSIX :: Linux",
160         "Programming Language :: Python :: 3",
161         "Programming Language :: Python :: 3.6",
162         "Programming Language :: Python :: 3.7",
163         "Programming Language :: Python :: 3.8",
164         "Programming Language :: Python :: 3.9",
165         "Topic :: Scientific/Engineering",
166         "Topic :: Scientific/Engineering :: Bio-Informatics",
167         "Topic :: Scientific/Engineering :: Astronomy",
168         "Topic :: Scientific/Engineering :: Atmospheric Science",
169         "Topic :: Scientific/Engineering :: Information Analysis",
170         "Topic :: Scientific/Engineering :: Medical Science Apps.",
171         "Topic :: System :: Distributed Computing",
172         "Topic :: Utilities",
173     ],
174 )
175
```
--- 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
@@ -115,7 +115,7 @@
         # https://github.com/common-workflow-language/schema_salad/issues/385
         "schema-salad >= 7.1.20210518142926, < 8",
         "mypy-extensions",
-        "psutil",
+        "psutil != 5.6.1",
         "prov == 1.5.1",
         "bagit >= 1.6.4",
         "typing-extensions",

{"golden_diff": "diff --git a/setup.py b/setup.py\n--- a/setup.py\n+++ b/setup.py\n@@ -115,7 +115,7 @@\n         # https://github.com/common-workflow-language/schema_salad/issues/385\n         \"schema-salad >= 7.1.20210518142926, < 8\",\n         \"mypy-extensions\",\n-        \"psutil\",\n+        \"psutil != 5.6.1\",\n         \"prov == 1.5.1\",\n         \"bagit >= 1.6.4\",\n         \"typing-extensions\",\n", "issue": "pip install cwltool fails due to broken psutil version\nHello,\r\nIt looks like the latest release of psutil is broken, and the version is not bounded in the cwltool requirements;\r\n```\r\n[mdb@h-0000 kegg-cwl]$ pip install cwltool==1.0.20181217162649\r\nCollecting cwltool==1.0.20181217162649\r\n  Cache entry deserialization failed, entry ignored\r\n  Downloading https://files.pythonhosted.org/packages/9f/ab/d2c672e36133346b7fede41312e4b8da31cba331bfb2c02a4e6f2ed3d565/cwltool-1.0.20181217162649-py2.py3-none-any.whl (628kB)\r\n    100% |\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 634kB 2.2MB/s \r\nCollecting bagit>=1.6.4 (from cwltool==1.0.20181217162649)\r\n  Cache entry deserialization failed, entry ignored\r\nRequirement already satisfied (use --upgrade to upgrade): setuptools in /usr/lib/python2.7/site-packages (from cwltool==1.0.20181217162649)\r\nCollecting prov==1.5.1 (from cwltool==1.0.20181217162649)\r\n  Cache entry deserialization failed, entry ignored\r\n  Cache entry deserialization failed, entry ignored\r\n  Downloading https://files.pythonhosted.org/packages/8e/fb/2c4c618185be2bda327f9dacd16b3122cc938809f19df7be840595d0e584/prov-1.5.1-py2.py3-none-any.whl (426kB)\r\n    100% |\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 430kB 3.3MB/s \r\nCollecting mypy-extensions (from cwltool==1.0.20181217162649)\r\n  Cache entry deserialization failed, entry ignored\r\n  Cache entry deserialization failed, entry ignored\r\n  Downloading https://files.pythonhosted.org/packages/4d/72/8d54e2b296631b9b14961d583e56e90d9d7fba8a240d5ce7f1113cc5e887/mypy_extensions-0.4.1-py2.py3-none-any.whl\r\nRequirement already satisfied (use --upgrade to upgrade): typing>=3.5.3; python_version < \"3.6\" in /usr/lib/python2.7/site-packages (from cwltool==1.0.20181217162649)\r\nRequirement already satisfied (use --upgrade to upgrade): rdflib<4.3.0,>=4.2.2 in /usr/lib/python2.7/site-packages (from cwltool==1.0.20181217162649)\r\nCollecting ruamel.yaml<=0.15.77,>=0.12.4 (from cwltool==1.0.20181217162649)\r\n  Cache entry deserialization failed, entry ignored\r\n  Cache entry deserialization failed, entry ignored\r\n  Downloading https://files.pythonhosted.org/packages/9a/f3/96df89eb8fd542dcb7bfdaecd79c7642c6d272b122dc2e96d237fa57fcd1/ruamel.yaml-0.15.77-cp27-cp27mu-manylinux1_x86_64.whl (609kB)\r\n    100% |\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 614kB 2.2MB/s \r\nCollecting psutil (from cwltool==1.0.20181217162649)\r\n  Cache entry deserialization failed, entry ignored\r\nException:\r\nTraceback (most recent call last):\r\n  File \"/usr/lib/python2.7/site-packages/pip/basecommand.py\", line 215, in main\r\n    status = self.run(options, args)\r\n  File \"/usr/lib/python2.7/site-packages/pip/commands/install.py\", line 307, in run\r\n    requirement_set.prepare_files(finder)\r\n  File \"/usr/lib/python2.7/site-packages/pip/req/req_set.py\", line 370, in prepare_files\r\n    ignore_dependencies=self.ignore_dependencies))\r\n  File \"/usr/lib/python2.7/site-packages/pip/req/req_set.py\", line 587, in _prepare_file\r\n    session=self.session, hashes=hashes)\r\n  File \"/usr/lib/python2.7/site-packages/pip/download.py\", line 798, in unpack_url\r\n    unpack_file_url(link, location, download_dir, hashes=hashes)\r\n  File \"/usr/lib/python2.7/site-packages/pip/download.py\", line 705, in unpack_file_url\r\n    unpack_file(from_path, location, content_type, link)\r\n  File \"/usr/lib/python2.7/site-packages/pip/utils/__init__.py\", line 599, in unpack_file\r\n    flatten=not filename.endswith('.whl')\r\n  File \"/usr/lib/python2.7/site-packages/pip/utils/__init__.py\", line 484, in unzip_file\r\n    zip = zipfile.ZipFile(zipfp, allowZip64=True)\r\n  File \"/usr/lib64/python2.7/zipfile.py\", line 766, in __init__\r\n    self._RealGetContents()\r\n  File \"/usr/lib64/python2.7/zipfile.py\", line 807, in _RealGetContents\r\n    raise BadZipfile, \"File is not a zip file\"\r\nBadZipfile: File is not a zip file\r\n```\r\n\r\nA possible fix is to install `pip install psutil==5.6.1` prior to install cwltool.\n", "before_files": [{"content": "#!/usr/bin/env python3\n\"\"\"Setup for the reference implementation of the CWL standards.\"\"\"\nimport os\nimport sys\nimport warnings\n\nimport setuptools.command.egg_info as egg_info_cmd\nfrom setuptools import setup\n\nif os.name == \"nt\":\n    warnings.warn(\n        \"The CWL reference runner (cwltool) no longer supports running \"\n        \"CWL workflows natively on MS Windows as its previous MS Windows \"\n        \"support was incomplete and untested. Instead, please see \"\n        \"https://pypi.org/project/cwltool/#ms-windows-users \"\n        \"for instructions on running cwltool via \"\n        \"Windows Subsystem for Linux 2 (WSL2). If don't need to execute \"\n        \"CWL documents, then you can ignore this warning, but please \"\n        \"consider migrating to https://pypi.org/project/cwl-utils/ \"\n        \"for your CWL document processing needs.\"\n    )\n\nSETUP_DIR = os.path.dirname(__file__)\nREADME = os.path.join(SETUP_DIR, \"README.rst\")\n\ntry:\n    import gittaggers\n\n    Tagger = gittaggers.EggInfoFromGit\nexcept ImportError:\n    Tagger = egg_info_cmd.egg_info\n\nNEEDS_PYTEST = {\"pytest\", \"test\", \"ptr\"}.intersection(sys.argv)\nPYTEST_RUNNER = [\"pytest-runner\", \"pytest-cov\"] if NEEDS_PYTEST else []\nUSE_MYPYC = False\n# To compile with mypyc, a mypyc checkout must be present on the PYTHONPATH\nif len(sys.argv) > 1 and sys.argv[1] == \"--use-mypyc\":\n    sys.argv.pop(1)\n    USE_MYPYC = True\nif os.getenv(\"CWLTOOL_USE_MYPYC\", None) == \"1\":\n    USE_MYPYC = True\n\nif USE_MYPYC:\n    mypyc_targets = [\n        \"cwltool/argparser.py\",\n        \"cwltool/builder.py\",\n        \"cwltool/checker.py\",\n        \"cwltool/command_line_tool.py\",\n        # \"cwltool/context.py\",  # monkeypatching\n        \"cwltool/cwlrdf.py\",\n        \"cwltool/docker_id.py\",\n        \"cwltool/docker.py\",\n        \"cwltool/udocker.py\",\n        \"cwltool/errors.py\",\n        \"cwltool/executors.py\",\n        \"cwltool/expression.py\",\n        \"cwltool/factory.py\",\n        \"cwltool/flatten.py\",\n        # \"cwltool/__init__.py\",\n        \"cwltool/job.py\",\n        \"cwltool/load_tool.py\",\n        # \"cwltool/loghandler.py\",  # so we can monkeypatch the logger from tests\n        # \"cwltool/__main__.py\",\n        \"cwltool/main.py\",\n        \"cwltool/mutation.py\",\n        \"cwltool/pack.py\",\n        # \"cwltool/pathmapper.py\",  # class PathMapper needs to be subclassable\n        \"cwltool/process.py\",\n        \"cwltool/procgenerator.py\",\n        # \"cwltool/provenance.py\",  # WritableBag is having issues\n        \"cwltool/resolver.py\",\n        # \"cwltool/sandboxjs.py\",  # probably not speed critical, tests need to mock components\n        \"cwltool/secrets.py\",\n        \"cwltool/singularity.py\",\n        \"cwltool/software_requirements.py\",\n        \"cwltool/stdfsaccess.py\",\n        \"cwltool/subgraph.py\",\n        \"cwltool/update.py\",\n        \"cwltool/utils.py\",\n        \"cwltool/validate_js.py\",\n        \"cwltool/workflow.py\",\n    ]\n\n    from mypyc.build import mypycify\n\n    opt_level = os.getenv(\"MYPYC_OPT_LEVEL\", \"3\")\n    ext_modules = mypycify(mypyc_targets, opt_level=opt_level)\nelse:\n    ext_modules = []\n\nsetup(\n    name=\"cwltool\",\n    version=\"3.1\",\n    description=\"Common workflow language reference implementation\",\n    long_description=open(README).read(),\n    long_description_content_type=\"text/x-rst\",\n    author=\"Common workflow language working group\",\n    author_email=\"common-workflow-language@googlegroups.com\",\n    url=\"https://github.com/common-workflow-language/cwltool\",\n    download_url=\"https://github.com/common-workflow-language/cwltool\",\n    ext_modules=ext_modules,\n    # platforms='',  # empty as is conveyed by the classifier below\n    # license='',  # empty as is conveyed by the classifier below\n    packages=[\"cwltool\", \"cwltool.tests\"],\n    package_dir={\"cwltool.tests\": \"tests\"},\n    include_package_data=True,\n    install_requires=[\n        \"setuptools\",\n        \"requests >= 2.6.1\",  # >= 2.6.1 to workaround\n        # https://github.com/ionrock/cachecontrol/issues/137\n        \"ruamel.yaml >= 0.12.4, < 0.17.10\",\n        \"rdflib >= 4.2.2, < 5.1.0\",\n        \"shellescape >= 3.4.1, < 3.9\",\n        # 7.1.20210518142926 or later required due to\n        # https://github.com/common-workflow-language/schema_salad/issues/385\n        \"schema-salad >= 7.1.20210518142926, < 8\",\n        \"mypy-extensions\",\n        \"psutil\",\n        \"prov == 1.5.1\",\n        \"bagit >= 1.6.4\",\n        \"typing-extensions\",\n        \"coloredlogs\",\n        \"pydot >= 1.4.1\",\n        \"argcomplete\",\n    ],\n    extras_require={\n        \"deps\": [\"galaxy-tool-util >= 21.1.0\"],\n        \"docs\": [\n            \"sphinx >= 2.2\",\n            \"sphinx-rtd-theme\",\n            \"sphinx-autoapi\",\n            \"sphinx-autodoc-typehints\",\n            \"typed_ast;python_version<'3.8'\",\n        ],\n    },\n    python_requires=\">=3.6, <4\",\n    setup_requires=PYTEST_RUNNER,\n    test_suite=\"tests\",\n    tests_require=[\n        \"pytest >= 6.2, < 6.3\",\n        \"mock >= 2.0.0\",\n        \"pytest-mock >= 1.10.0\",\n        \"arcp >= 0.2.0\",\n        \"rdflib-jsonld >= 0.4.0\",\n    ],\n    entry_points={\"console_scripts\": [\"cwltool=cwltool.main:run\"]},\n    zip_safe=True,\n    cmdclass={\"egg_info\": Tagger},\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 :: 3\",\n        \"Programming Language :: Python :: 3.6\",\n        \"Programming Language :: Python :: 3.7\",\n        \"Programming Language :: Python :: 3.8\",\n        \"Programming Language :: Python :: 3.9\",\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    ],\n)\n", "path": "setup.py"}], "after_files": [{"content": "#!/usr/bin/env python3\n\"\"\"Setup for the reference implementation of the CWL standards.\"\"\"\nimport os\nimport sys\nimport warnings\n\nimport setuptools.command.egg_info as egg_info_cmd\nfrom setuptools import setup\n\nif os.name == \"nt\":\n    warnings.warn(\n        \"The CWL reference runner (cwltool) no longer supports running \"\n        \"CWL workflows natively on MS Windows as its previous MS Windows \"\n        \"support was incomplete and untested. Instead, please see \"\n        \"https://pypi.org/project/cwltool/#ms-windows-users \"\n        \"for instructions on running cwltool via \"\n        \"Windows Subsystem for Linux 2 (WSL2). If don't need to execute \"\n        \"CWL documents, then you can ignore this warning, but please \"\n        \"consider migrating to https://pypi.org/project/cwl-utils/ \"\n        \"for your CWL document processing needs.\"\n    )\n\nSETUP_DIR = os.path.dirname(__file__)\nREADME = os.path.join(SETUP_DIR, \"README.rst\")\n\ntry:\n    import gittaggers\n\n    Tagger = gittaggers.EggInfoFromGit\nexcept ImportError:\n    Tagger = egg_info_cmd.egg_info\n\nNEEDS_PYTEST = {\"pytest\", \"test\", \"ptr\"}.intersection(sys.argv)\nPYTEST_RUNNER = [\"pytest-runner\", \"pytest-cov\"] if NEEDS_PYTEST else []\nUSE_MYPYC = False\n# To compile with mypyc, a mypyc checkout must be present on the PYTHONPATH\nif len(sys.argv) > 1 and sys.argv[1] == \"--use-mypyc\":\n    sys.argv.pop(1)\n    USE_MYPYC = True\nif os.getenv(\"CWLTOOL_USE_MYPYC\", None) == \"1\":\n    USE_MYPYC = True\n\nif USE_MYPYC:\n    mypyc_targets = [\n        \"cwltool/argparser.py\",\n        \"cwltool/builder.py\",\n        \"cwltool/checker.py\",\n        \"cwltool/command_line_tool.py\",\n        # \"cwltool/context.py\",  # monkeypatching\n        \"cwltool/cwlrdf.py\",\n        \"cwltool/docker_id.py\",\n        \"cwltool/docker.py\",\n        \"cwltool/udocker.py\",\n        \"cwltool/errors.py\",\n        \"cwltool/executors.py\",\n        \"cwltool/expression.py\",\n        \"cwltool/factory.py\",\n        \"cwltool/flatten.py\",\n        # \"cwltool/__init__.py\",\n        \"cwltool/job.py\",\n        \"cwltool/load_tool.py\",\n        # \"cwltool/loghandler.py\",  # so we can monkeypatch the logger from tests\n        # \"cwltool/__main__.py\",\n        \"cwltool/main.py\",\n        \"cwltool/mutation.py\",\n        \"cwltool/pack.py\",\n        # \"cwltool/pathmapper.py\",  # class PathMapper needs to be subclassable\n        \"cwltool/process.py\",\n        \"cwltool/procgenerator.py\",\n        # \"cwltool/provenance.py\",  # WritableBag is having issues\n        \"cwltool/resolver.py\",\n        # \"cwltool/sandboxjs.py\",  # probably not speed critical, tests need to mock components\n        \"cwltool/secrets.py\",\n        \"cwltool/singularity.py\",\n        \"cwltool/software_requirements.py\",\n        \"cwltool/stdfsaccess.py\",\n        \"cwltool/subgraph.py\",\n        \"cwltool/update.py\",\n        \"cwltool/utils.py\",\n        \"cwltool/validate_js.py\",\n        \"cwltool/workflow.py\",\n    ]\n\n    from mypyc.build import mypycify\n\n    opt_level = os.getenv(\"MYPYC_OPT_LEVEL\", \"3\")\n    ext_modules = mypycify(mypyc_targets, opt_level=opt_level)\nelse:\n    ext_modules = []\n\nsetup(\n    name=\"cwltool\",\n    version=\"3.1\",\n    description=\"Common workflow language reference implementation\",\n    long_description=open(README).read(),\n    long_description_content_type=\"text/x-rst\",\n    author=\"Common workflow language working group\",\n    author_email=\"common-workflow-language@googlegroups.com\",\n    url=\"https://github.com/common-workflow-language/cwltool\",\n    download_url=\"https://github.com/common-workflow-language/cwltool\",\n    ext_modules=ext_modules,\n    # platforms='',  # empty as is conveyed by the classifier below\n    # license='',  # empty as is conveyed by the classifier below\n    packages=[\"cwltool\", \"cwltool.tests\"],\n    package_dir={\"cwltool.tests\": \"tests\"},\n    include_package_data=True,\n    install_requires=[\n        \"setuptools\",\n        \"requests >= 2.6.1\",  # >= 2.6.1 to workaround\n        # https://github.com/ionrock/cachecontrol/issues/137\n        \"ruamel.yaml >= 0.12.4, < 0.17.10\",\n        \"rdflib >= 4.2.2, < 5.1.0\",\n        \"shellescape >= 3.4.1, < 3.9\",\n        # 7.1.20210518142926 or later required due to\n        # https://github.com/common-workflow-language/schema_salad/issues/385\n        \"schema-salad >= 7.1.20210518142926, < 8\",\n        \"mypy-extensions\",\n        \"psutil != 5.6.1\",\n        \"prov == 1.5.1\",\n        \"bagit >= 1.6.4\",\n        \"typing-extensions\",\n        \"coloredlogs\",\n        \"pydot >= 1.4.1\",\n        \"argcomplete\",\n    ],\n    extras_require={\n        \"deps\": [\"galaxy-tool-util >= 21.1.0\"],\n        \"docs\": [\n            \"sphinx >= 2.2\",\n            \"sphinx-rtd-theme\",\n            \"sphinx-autoapi\",\n            \"sphinx-autodoc-typehints\",\n            \"typed_ast;python_version<'3.8'\",\n        ],\n    },\n    python_requires=\">=3.6, <4\",\n    setup_requires=PYTEST_RUNNER,\n    test_suite=\"tests\",\n    tests_require=[\n        \"pytest >= 6.2, < 6.3\",\n        \"mock >= 2.0.0\",\n        \"pytest-mock >= 1.10.0\",\n        \"arcp >= 0.2.0\",\n        \"rdflib-jsonld >= 0.4.0\",\n    ],\n    entry_points={\"console_scripts\": [\"cwltool=cwltool.main:run\"]},\n    zip_safe=True,\n    cmdclass={\"egg_info\": Tagger},\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 :: 3\",\n        \"Programming Language :: Python :: 3.6\",\n        \"Programming Language :: Python :: 3.7\",\n        \"Programming Language :: Python :: 3.8\",\n        \"Programming Language :: Python :: 3.9\",\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    ],\n)\n", "path": "setup.py"}]}