We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
Add type hints to humanize.py
Add type hints to `src/toil/lib/humanize.py` so it can be checked under mypy during linting.

Refers to #3568.

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


--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `src/toil/lib/humanize.py`
Content:
```
1 # Used by cactus; now a wrapper and not used in Toil.
2 # TODO: Remove from cactus and then remove from Toil.
3 #   See https://github.com/DataBiosphere/toil/pull/3529#discussion_r611735988
4 
5 # http://code.activestate.com/recipes/578019-bytes-to-human-human-to-bytes-converter/
6 import logging
7 from typing import Optional, SupportsInt
8 from toil.lib.conversions import bytes2human as b2h, human2bytes as h2b
9 
10 """
11 Bytes-to-human / human-to-bytes converter.
12 Based on: http://goo.gl/kTQMs
13 Working with Python 2.x and 3.x.
14 
15 Author: Giampaolo Rodola' <g.rodola [AT] gmail [DOT] com>
16 License: MIT
17 """
18 
19 logger = logging.getLogger(__name__)
20 
21 
22 def bytes2human(n: SupportsInt, fmt: Optional[str] = None, symbols: Optional[str] = None) -> str:
23     """
24     Convert n bytes into a human readable string based on format.
25     symbols can be either "customary", "customary_ext", "iec" or "iec_ext",
26     see: http://goo.gl/kTQMs
27     """
28     logger.warning('Deprecated toil method.  Please use "toil.lib.conversions.bytes2human()" instead."')
29     return b2h(n)
30 
31 
32 def human2bytes(s):
33     """
34     Attempts to guess the string format based on default symbols
35     set and return the corresponding bytes as an integer.
36 
37     When unable to recognize the format ValueError is raised.
38     """
39     logger.warning('Deprecated toil method.  Please use "toil.lib.conversions.human2bytes()" instead."')
40     return h2b(s)
41
```

Path: `contrib/admin/mypy-with-ignore.py`
Content:
```
1 #!/usr/bin/env python3
2 """
3 Runs mypy and ignores files that do not yet have passing type hints.
4 
5 Does not type check test files (any path including "src/toil/test").
6 """
7 import os
8 import subprocess
9 import sys
10 
11 os.environ['MYPYPATH'] = 'contrib/typeshed'
12 pkg_root = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..'))  # noqa
13 sys.path.insert(0, pkg_root)  # noqa
14 
15 from src.toil.lib.resources import glob  # type: ignore
16 
17 
18 def main():
19     all_files_to_check = []
20     for d in ['dashboard', 'docker', 'docs', 'src']:
21         all_files_to_check += glob(glob_pattern='*.py', directoryname=os.path.join(pkg_root, d))
22 
23     # TODO: Remove these paths as typing is added and mypy conflicts are addressed
24     ignore_paths = [os.path.abspath(f) for f in [
25         'docker/Dockerfile.py',
26         'docs/conf.py',
27         'docs/vendor/sphinxcontrib/fulltoc.py',
28         'docs/vendor/sphinxcontrib/__init__.py',
29         'src/toil/job.py',
30         'src/toil/leader.py',
31         'src/toil/common.py',
32         'src/toil/worker.py',
33         'src/toil/toilState.py',
34         'src/toil/__init__.py',
35         'src/toil/resource.py',
36         'src/toil/deferred.py',
37         'src/toil/version.py',
38         'src/toil/wdl/utils.py',
39         'src/toil/wdl/wdl_types.py',
40         'src/toil/wdl/wdl_synthesis.py',
41         'src/toil/wdl/wdl_analysis.py',
42         'src/toil/wdl/wdl_functions.py',
43         'src/toil/wdl/toilwdl.py',
44         'src/toil/wdl/versions/draft2.py',
45         'src/toil/wdl/versions/v1.py',
46         'src/toil/wdl/versions/dev.py',
47         'src/toil/provisioners/clusterScaler.py',
48         'src/toil/provisioners/abstractProvisioner.py',
49         'src/toil/provisioners/gceProvisioner.py',
50         'src/toil/provisioners/__init__.py',
51         'src/toil/provisioners/node.py',
52         'src/toil/provisioners/aws/boto2Context.py',
53         'src/toil/provisioners/aws/awsProvisioner.py',
54         'src/toil/provisioners/aws/__init__.py',
55         'src/toil/batchSystems/slurm.py',
56         'src/toil/batchSystems/gridengine.py',
57         'src/toil/batchSystems/singleMachine.py',
58         'src/toil/batchSystems/abstractBatchSystem.py',
59         'src/toil/batchSystems/parasol.py',
60         'src/toil/batchSystems/kubernetes.py',
61         'src/toil/batchSystems/torque.py',
62         'src/toil/batchSystems/options.py',
63         'src/toil/batchSystems/registry.py',
64         'src/toil/batchSystems/lsf.py',
65         'src/toil/batchSystems/__init__.py',
66         'src/toil/batchSystems/abstractGridEngineBatchSystem.py',
67         'src/toil/batchSystems/lsfHelper.py',
68         'src/toil/batchSystems/htcondor.py',
69         'src/toil/batchSystems/mesos/batchSystem.py',
70         'src/toil/batchSystems/mesos/executor.py',
71         'src/toil/batchSystems/mesos/conftest.py',
72         'src/toil/batchSystems/mesos/__init__.py',
73         'src/toil/batchSystems/mesos/test/__init__.py',
74         'src/toil/cwl/conftest.py',
75         'src/toil/cwl/__init__.py',
76         'src/toil/cwl/cwltoil.py',
77         'src/toil/fileStores/cachingFileStore.py',
78         'src/toil/fileStores/abstractFileStore.py',
79         'src/toil/fileStores/nonCachingFileStore.py',
80         'src/toil/fileStores/__init__.py',
81         'src/toil/jobStores/utils.py',
82         'src/toil/jobStores/conftest.py',
83         'src/toil/jobStores/fileJobStore.py',
84         'src/toil/jobStores/__init__.py',
85         'src/toil/jobStores/googleJobStore.py',
86         'src/toil/jobStores/aws/utils.py',
87         'src/toil/jobStores/aws/jobStore.py',
88         'src/toil/jobStores/aws/__init__.py',
89         'src/toil/utils/__init__.py',
90         'src/toil/lib/memoize.py',
91         'src/toil/lib/throttle.py',
92         'src/toil/lib/humanize.py',
93         'src/toil/lib/iterables.py',
94         'src/toil/lib/bioio.py',
95         'src/toil/lib/ec2.py',
96         'src/toil/lib/expando.py',
97         'src/toil/lib/exceptions.py',
98         'src/toil/lib/__init__.py',
99         'src/toil/lib/generatedEC2Lists.py',
100         'src/toil/lib/retry.py',
101         'src/toil/lib/objects.py',
102         'src/toil/lib/io.py',
103         'src/toil/lib/docker.py',
104         'src/toil/lib/encryption/_dummy.py',
105         'src/toil/lib/encryption/conftest.py',
106         'src/toil/lib/encryption/__init__.py',
107         'src/toil/lib/aws/utils.py',
108         'src/toil/lib/aws/__init__.py'
109     ]]
110 
111     filtered_files_to_check = []
112     for file_path in all_files_to_check:
113         if file_path not in ignore_paths and 'src/toil/test' not in file_path:
114             filtered_files_to_check.append(file_path)
115     # follow-imports type checks pypi projects we don't control, so we skip it; why is this their default?
116     args = ['mypy', '--follow-imports=skip'] + filtered_files_to_check
117     p = subprocess.run(args=args, stdout=subprocess.PIPE)
118     result = p.stdout.decode()
119     print(result)
120     if 'Success: no issues found' not in result:
121         exit(1)
122 
123 
124 if __name__ == '__main__':
125     main()
126
```
--- 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/contrib/admin/mypy-with-ignore.py b/contrib/admin/mypy-with-ignore.py
--- a/contrib/admin/mypy-with-ignore.py
+++ b/contrib/admin/mypy-with-ignore.py
@@ -89,7 +89,6 @@
         'src/toil/utils/__init__.py',
         'src/toil/lib/memoize.py',
         'src/toil/lib/throttle.py',
-        'src/toil/lib/humanize.py',
         'src/toil/lib/iterables.py',
         'src/toil/lib/bioio.py',
         'src/toil/lib/ec2.py',
diff --git a/src/toil/lib/humanize.py b/src/toil/lib/humanize.py
--- a/src/toil/lib/humanize.py
+++ b/src/toil/lib/humanize.py
@@ -4,7 +4,7 @@
 
 # http://code.activestate.com/recipes/578019-bytes-to-human-human-to-bytes-converter/
 import logging
-from typing import Optional, SupportsInt
+from typing import SupportsInt
 from toil.lib.conversions import bytes2human as b2h, human2bytes as h2b
 
 """
@@ -19,17 +19,15 @@
 logger = logging.getLogger(__name__)
 
 
-def bytes2human(n: SupportsInt, fmt: Optional[str] = None, symbols: Optional[str] = None) -> str:
+def bytes2human(n: SupportsInt) -> str:
     """
-    Convert n bytes into a human readable string based on format.
-    symbols can be either "customary", "customary_ext", "iec" or "iec_ext",
-    see: http://goo.gl/kTQMs
+    Convert n bytes into a human readable string.
     """
     logger.warning('Deprecated toil method.  Please use "toil.lib.conversions.bytes2human()" instead."')
     return b2h(n)
 
 
-def human2bytes(s):
+def human2bytes(s: str) -> int:
     """
     Attempts to guess the string format based on default symbols
     set and return the corresponding bytes as an integer.

{"golden_diff": "diff --git a/contrib/admin/mypy-with-ignore.py b/contrib/admin/mypy-with-ignore.py\n--- a/contrib/admin/mypy-with-ignore.py\n+++ b/contrib/admin/mypy-with-ignore.py\n@@ -89,7 +89,6 @@\n         'src/toil/utils/__init__.py',\n         'src/toil/lib/memoize.py',\n         'src/toil/lib/throttle.py',\n-        'src/toil/lib/humanize.py',\n         'src/toil/lib/iterables.py',\n         'src/toil/lib/bioio.py',\n         'src/toil/lib/ec2.py',\ndiff --git a/src/toil/lib/humanize.py b/src/toil/lib/humanize.py\n--- a/src/toil/lib/humanize.py\n+++ b/src/toil/lib/humanize.py\n@@ -4,7 +4,7 @@\n \n # http://code.activestate.com/recipes/578019-bytes-to-human-human-to-bytes-converter/\n import logging\n-from typing import Optional, SupportsInt\n+from typing import SupportsInt\n from toil.lib.conversions import bytes2human as b2h, human2bytes as h2b\n \n \"\"\"\n@@ -19,17 +19,15 @@\n logger = logging.getLogger(__name__)\n \n \n-def bytes2human(n: SupportsInt, fmt: Optional[str] = None, symbols: Optional[str] = None) -> str:\n+def bytes2human(n: SupportsInt) -> str:\n     \"\"\"\n-    Convert n bytes into a human readable string based on format.\n-    symbols can be either \"customary\", \"customary_ext\", \"iec\" or \"iec_ext\",\n-    see: http://goo.gl/kTQMs\n+    Convert n bytes into a human readable string.\n     \"\"\"\n     logger.warning('Deprecated toil method.  Please use \"toil.lib.conversions.bytes2human()\" instead.\"')\n     return b2h(n)\n \n \n-def human2bytes(s):\n+def human2bytes(s: str) -> int:\n     \"\"\"\n     Attempts to guess the string format based on default symbols\n     set and return the corresponding bytes as an integer.\n", "issue": "Add type hints to humanize.py\nAdd type hints to `src/toil/lib/humanize.py` so it can be checked under mypy during linting.\n\nRefers to #3568.\n\n\u2506Issue is synchronized with this [Jira Task](https://ucsc-cgl.atlassian.net/browse/TOIL-946)\n\u2506Issue Number: TOIL-946\n\n", "before_files": [{"content": "# Used by cactus; now a wrapper and not used in Toil.\n# TODO: Remove from cactus and then remove from Toil.\n#   See https://github.com/DataBiosphere/toil/pull/3529#discussion_r611735988\n\n# http://code.activestate.com/recipes/578019-bytes-to-human-human-to-bytes-converter/\nimport logging\nfrom typing import Optional, SupportsInt\nfrom toil.lib.conversions import bytes2human as b2h, human2bytes as h2b\n\n\"\"\"\nBytes-to-human / human-to-bytes converter.\nBased on: http://goo.gl/kTQMs\nWorking with Python 2.x and 3.x.\n\nAuthor: Giampaolo Rodola' <g.rodola [AT] gmail [DOT] com>\nLicense: MIT\n\"\"\"\n\nlogger = logging.getLogger(__name__)\n\n\ndef bytes2human(n: SupportsInt, fmt: Optional[str] = None, symbols: Optional[str] = None) -> str:\n    \"\"\"\n    Convert n bytes into a human readable string based on format.\n    symbols can be either \"customary\", \"customary_ext\", \"iec\" or \"iec_ext\",\n    see: http://goo.gl/kTQMs\n    \"\"\"\n    logger.warning('Deprecated toil method.  Please use \"toil.lib.conversions.bytes2human()\" instead.\"')\n    return b2h(n)\n\n\ndef human2bytes(s):\n    \"\"\"\n    Attempts to guess the string format based on default symbols\n    set and return the corresponding bytes as an integer.\n\n    When unable to recognize the format ValueError is raised.\n    \"\"\"\n    logger.warning('Deprecated toil method.  Please use \"toil.lib.conversions.human2bytes()\" instead.\"')\n    return h2b(s)\n", "path": "src/toil/lib/humanize.py"}, {"content": "#!/usr/bin/env python3\n\"\"\"\nRuns mypy and ignores files that do not yet have passing type hints.\n\nDoes not type check test files (any path including \"src/toil/test\").\n\"\"\"\nimport os\nimport subprocess\nimport sys\n\nos.environ['MYPYPATH'] = 'contrib/typeshed'\npkg_root = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..'))  # noqa\nsys.path.insert(0, pkg_root)  # noqa\n\nfrom src.toil.lib.resources import glob  # type: ignore\n\n\ndef main():\n    all_files_to_check = []\n    for d in ['dashboard', 'docker', 'docs', 'src']:\n        all_files_to_check += glob(glob_pattern='*.py', directoryname=os.path.join(pkg_root, d))\n\n    # TODO: Remove these paths as typing is added and mypy conflicts are addressed\n    ignore_paths = [os.path.abspath(f) for f in [\n        'docker/Dockerfile.py',\n        'docs/conf.py',\n        'docs/vendor/sphinxcontrib/fulltoc.py',\n        'docs/vendor/sphinxcontrib/__init__.py',\n        'src/toil/job.py',\n        'src/toil/leader.py',\n        'src/toil/common.py',\n        'src/toil/worker.py',\n        'src/toil/toilState.py',\n        'src/toil/__init__.py',\n        'src/toil/resource.py',\n        'src/toil/deferred.py',\n        'src/toil/version.py',\n        'src/toil/wdl/utils.py',\n        'src/toil/wdl/wdl_types.py',\n        'src/toil/wdl/wdl_synthesis.py',\n        'src/toil/wdl/wdl_analysis.py',\n        'src/toil/wdl/wdl_functions.py',\n        'src/toil/wdl/toilwdl.py',\n        'src/toil/wdl/versions/draft2.py',\n        'src/toil/wdl/versions/v1.py',\n        'src/toil/wdl/versions/dev.py',\n        'src/toil/provisioners/clusterScaler.py',\n        'src/toil/provisioners/abstractProvisioner.py',\n        'src/toil/provisioners/gceProvisioner.py',\n        'src/toil/provisioners/__init__.py',\n        'src/toil/provisioners/node.py',\n        'src/toil/provisioners/aws/boto2Context.py',\n        'src/toil/provisioners/aws/awsProvisioner.py',\n        'src/toil/provisioners/aws/__init__.py',\n        'src/toil/batchSystems/slurm.py',\n        'src/toil/batchSystems/gridengine.py',\n        'src/toil/batchSystems/singleMachine.py',\n        'src/toil/batchSystems/abstractBatchSystem.py',\n        'src/toil/batchSystems/parasol.py',\n        'src/toil/batchSystems/kubernetes.py',\n        'src/toil/batchSystems/torque.py',\n        'src/toil/batchSystems/options.py',\n        'src/toil/batchSystems/registry.py',\n        'src/toil/batchSystems/lsf.py',\n        'src/toil/batchSystems/__init__.py',\n        'src/toil/batchSystems/abstractGridEngineBatchSystem.py',\n        'src/toil/batchSystems/lsfHelper.py',\n        'src/toil/batchSystems/htcondor.py',\n        'src/toil/batchSystems/mesos/batchSystem.py',\n        'src/toil/batchSystems/mesos/executor.py',\n        'src/toil/batchSystems/mesos/conftest.py',\n        'src/toil/batchSystems/mesos/__init__.py',\n        'src/toil/batchSystems/mesos/test/__init__.py',\n        'src/toil/cwl/conftest.py',\n        'src/toil/cwl/__init__.py',\n        'src/toil/cwl/cwltoil.py',\n        'src/toil/fileStores/cachingFileStore.py',\n        'src/toil/fileStores/abstractFileStore.py',\n        'src/toil/fileStores/nonCachingFileStore.py',\n        'src/toil/fileStores/__init__.py',\n        'src/toil/jobStores/utils.py',\n        'src/toil/jobStores/conftest.py',\n        'src/toil/jobStores/fileJobStore.py',\n        'src/toil/jobStores/__init__.py',\n        'src/toil/jobStores/googleJobStore.py',\n        'src/toil/jobStores/aws/utils.py',\n        'src/toil/jobStores/aws/jobStore.py',\n        'src/toil/jobStores/aws/__init__.py',\n        'src/toil/utils/__init__.py',\n        'src/toil/lib/memoize.py',\n        'src/toil/lib/throttle.py',\n        'src/toil/lib/humanize.py',\n        'src/toil/lib/iterables.py',\n        'src/toil/lib/bioio.py',\n        'src/toil/lib/ec2.py',\n        'src/toil/lib/expando.py',\n        'src/toil/lib/exceptions.py',\n        'src/toil/lib/__init__.py',\n        'src/toil/lib/generatedEC2Lists.py',\n        'src/toil/lib/retry.py',\n        'src/toil/lib/objects.py',\n        'src/toil/lib/io.py',\n        'src/toil/lib/docker.py',\n        'src/toil/lib/encryption/_dummy.py',\n        'src/toil/lib/encryption/conftest.py',\n        'src/toil/lib/encryption/__init__.py',\n        'src/toil/lib/aws/utils.py',\n        'src/toil/lib/aws/__init__.py'\n    ]]\n\n    filtered_files_to_check = []\n    for file_path in all_files_to_check:\n        if file_path not in ignore_paths and 'src/toil/test' not in file_path:\n            filtered_files_to_check.append(file_path)\n    # follow-imports type checks pypi projects we don't control, so we skip it; why is this their default?\n    args = ['mypy', '--follow-imports=skip'] + filtered_files_to_check\n    p = subprocess.run(args=args, stdout=subprocess.PIPE)\n    result = p.stdout.decode()\n    print(result)\n    if 'Success: no issues found' not in result:\n        exit(1)\n\n\nif __name__ == '__main__':\n    main()\n", "path": "contrib/admin/mypy-with-ignore.py"}], "after_files": [{"content": "# Used by cactus; now a wrapper and not used in Toil.\n# TODO: Remove from cactus and then remove from Toil.\n#   See https://github.com/DataBiosphere/toil/pull/3529#discussion_r611735988\n\n# http://code.activestate.com/recipes/578019-bytes-to-human-human-to-bytes-converter/\nimport logging\nfrom typing import SupportsInt\nfrom toil.lib.conversions import bytes2human as b2h, human2bytes as h2b\n\n\"\"\"\nBytes-to-human / human-to-bytes converter.\nBased on: http://goo.gl/kTQMs\nWorking with Python 2.x and 3.x.\n\nAuthor: Giampaolo Rodola' <g.rodola [AT] gmail [DOT] com>\nLicense: MIT\n\"\"\"\n\nlogger = logging.getLogger(__name__)\n\n\ndef bytes2human(n: SupportsInt) -> str:\n    \"\"\"\n    Convert n bytes into a human readable string.\n    \"\"\"\n    logger.warning('Deprecated toil method.  Please use \"toil.lib.conversions.bytes2human()\" instead.\"')\n    return b2h(n)\n\n\ndef human2bytes(s: str) -> int:\n    \"\"\"\n    Attempts to guess the string format based on default symbols\n    set and return the corresponding bytes as an integer.\n\n    When unable to recognize the format ValueError is raised.\n    \"\"\"\n    logger.warning('Deprecated toil method.  Please use \"toil.lib.conversions.human2bytes()\" instead.\"')\n    return h2b(s)\n", "path": "src/toil/lib/humanize.py"}, {"content": "#!/usr/bin/env python3\n\"\"\"\nRuns mypy and ignores files that do not yet have passing type hints.\n\nDoes not type check test files (any path including \"src/toil/test\").\n\"\"\"\nimport os\nimport subprocess\nimport sys\n\nos.environ['MYPYPATH'] = 'contrib/typeshed'\npkg_root = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..'))  # noqa\nsys.path.insert(0, pkg_root)  # noqa\n\nfrom src.toil.lib.resources import glob  # type: ignore\n\n\ndef main():\n    all_files_to_check = []\n    for d in ['dashboard', 'docker', 'docs', 'src']:\n        all_files_to_check += glob(glob_pattern='*.py', directoryname=os.path.join(pkg_root, d))\n\n    # TODO: Remove these paths as typing is added and mypy conflicts are addressed\n    ignore_paths = [os.path.abspath(f) for f in [\n        'docker/Dockerfile.py',\n        'docs/conf.py',\n        'docs/vendor/sphinxcontrib/fulltoc.py',\n        'docs/vendor/sphinxcontrib/__init__.py',\n        'src/toil/job.py',\n        'src/toil/leader.py',\n        'src/toil/common.py',\n        'src/toil/worker.py',\n        'src/toil/toilState.py',\n        'src/toil/__init__.py',\n        'src/toil/resource.py',\n        'src/toil/deferred.py',\n        'src/toil/version.py',\n        'src/toil/wdl/utils.py',\n        'src/toil/wdl/wdl_types.py',\n        'src/toil/wdl/wdl_synthesis.py',\n        'src/toil/wdl/wdl_analysis.py',\n        'src/toil/wdl/wdl_functions.py',\n        'src/toil/wdl/toilwdl.py',\n        'src/toil/wdl/versions/draft2.py',\n        'src/toil/wdl/versions/v1.py',\n        'src/toil/wdl/versions/dev.py',\n        'src/toil/provisioners/clusterScaler.py',\n        'src/toil/provisioners/abstractProvisioner.py',\n        'src/toil/provisioners/gceProvisioner.py',\n        'src/toil/provisioners/__init__.py',\n        'src/toil/provisioners/node.py',\n        'src/toil/provisioners/aws/boto2Context.py',\n        'src/toil/provisioners/aws/awsProvisioner.py',\n        'src/toil/provisioners/aws/__init__.py',\n        'src/toil/batchSystems/slurm.py',\n        'src/toil/batchSystems/gridengine.py',\n        'src/toil/batchSystems/singleMachine.py',\n        'src/toil/batchSystems/abstractBatchSystem.py',\n        'src/toil/batchSystems/parasol.py',\n        'src/toil/batchSystems/kubernetes.py',\n        'src/toil/batchSystems/torque.py',\n        'src/toil/batchSystems/options.py',\n        'src/toil/batchSystems/registry.py',\n        'src/toil/batchSystems/lsf.py',\n        'src/toil/batchSystems/__init__.py',\n        'src/toil/batchSystems/abstractGridEngineBatchSystem.py',\n        'src/toil/batchSystems/lsfHelper.py',\n        'src/toil/batchSystems/htcondor.py',\n        'src/toil/batchSystems/mesos/batchSystem.py',\n        'src/toil/batchSystems/mesos/executor.py',\n        'src/toil/batchSystems/mesos/conftest.py',\n        'src/toil/batchSystems/mesos/__init__.py',\n        'src/toil/batchSystems/mesos/test/__init__.py',\n        'src/toil/cwl/conftest.py',\n        'src/toil/cwl/__init__.py',\n        'src/toil/cwl/cwltoil.py',\n        'src/toil/fileStores/cachingFileStore.py',\n        'src/toil/fileStores/abstractFileStore.py',\n        'src/toil/fileStores/nonCachingFileStore.py',\n        'src/toil/fileStores/__init__.py',\n        'src/toil/jobStores/utils.py',\n        'src/toil/jobStores/conftest.py',\n        'src/toil/jobStores/fileJobStore.py',\n        'src/toil/jobStores/__init__.py',\n        'src/toil/jobStores/googleJobStore.py',\n        'src/toil/jobStores/aws/utils.py',\n        'src/toil/jobStores/aws/jobStore.py',\n        'src/toil/jobStores/aws/__init__.py',\n        'src/toil/utils/__init__.py',\n        'src/toil/lib/memoize.py',\n        'src/toil/lib/throttle.py',\n        'src/toil/lib/iterables.py',\n        'src/toil/lib/bioio.py',\n        'src/toil/lib/ec2.py',\n        'src/toil/lib/expando.py',\n        'src/toil/lib/exceptions.py',\n        'src/toil/lib/__init__.py',\n        'src/toil/lib/generatedEC2Lists.py',\n        'src/toil/lib/retry.py',\n        'src/toil/lib/objects.py',\n        'src/toil/lib/io.py',\n        'src/toil/lib/docker.py',\n        'src/toil/lib/encryption/_dummy.py',\n        'src/toil/lib/encryption/conftest.py',\n        'src/toil/lib/encryption/__init__.py',\n        'src/toil/lib/aws/utils.py',\n        'src/toil/lib/aws/__init__.py'\n    ]]\n\n    filtered_files_to_check = []\n    for file_path in all_files_to_check:\n        if file_path not in ignore_paths and 'src/toil/test' not in file_path:\n            filtered_files_to_check.append(file_path)\n    # follow-imports type checks pypi projects we don't control, so we skip it; why is this their default?\n    args = ['mypy', '--follow-imports=skip'] + filtered_files_to_check\n    p = subprocess.run(args=args, stdout=subprocess.PIPE)\n    result = p.stdout.decode()\n    print(result)\n    if 'Success: no issues found' not in result:\n        exit(1)\n\n\nif __name__ == '__main__':\n    main()\n", "path": "contrib/admin/mypy-with-ignore.py"}]}