We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
mitmproxy depends on `pkg_resources` at runtime but does not specify `install_requires=setuptools`
#### Problem Description
A clear and concise description of what the bug is.

https://github.com/mitmproxy/mitmproxy/blob/0ca458fd6475ee48728147f3b529467a75e912a4/mitmproxy/contrib/kaitaistruct/exif.py#L7

the `pkg_resources` module is provided by `setuptools`

installation into a minimal environment (for example, bazel) will break without also needing to specify `setuptools`

mitmproxy should depend on `setuptools`


#### Steps to reproduce the behavior:

1. simulate a minimal environment:

```
virtualenv venv
venv/bin/pip install mitmproxy
venv/bin/pip uninstall setuptools
venv/bin/pip install mitmproxy  # make sure we actually have its deps even after uninstalling
```

2. run `mitmproxy --help`

```console
$ venv/bin/mitmproxy --help
Traceback (most recent call last):
  File "venv/bin/mitmproxy", line 5, in <module>
    from mitmproxy.tools.main import mitmproxy
  File "/tmp/y/venv/lib/python3.8/site-packages/mitmproxy/tools/main.py", line 8, in <module>
    from mitmproxy import exceptions, master
  File "/tmp/y/venv/lib/python3.8/site-packages/mitmproxy/master.py", line 10, in <module>
    from mitmproxy import eventsequence
  File "/tmp/y/venv/lib/python3.8/site-packages/mitmproxy/eventsequence.py", line 8, in <module>
    from mitmproxy.proxy import layers
  File "/tmp/y/venv/lib/python3.8/site-packages/mitmproxy/proxy/layers/__init__.py", line 1, in <module>
    from . import modes
  File "/tmp/y/venv/lib/python3.8/site-packages/mitmproxy/proxy/layers/modes.py", line 9, in <module>
    from mitmproxy.proxy.layers import tls
  File "/tmp/y/venv/lib/python3.8/site-packages/mitmproxy/proxy/layers/tls.py", line 8, in <module>
    from mitmproxy.net import tls as net_tls
  File "/tmp/y/venv/lib/python3.8/site-packages/mitmproxy/net/tls.py", line 18, in <module>
    from mitmproxy.contrib.kaitaistruct import tls_client_hello
  File "/tmp/y/venv/lib/python3.8/site-packages/mitmproxy/contrib/kaitaistruct/tls_client_hello.py", line 7, in <module>
    from pkg_resources import parse_version
ModuleNotFoundError: No module named 'pkg_resources'
```

#### System Information
Paste the output of "mitmproxy --version" here.

```console
$ venv/bin/mitmproxy --version
Traceback (most recent call last):
  File "venv/bin/mitmproxy", line 5, in <module>
    from mitmproxy.tools.main import mitmproxy
  File "/tmp/y/venv/lib/python3.8/site-packages/mitmproxy/tools/main.py", line 8, in <module>
    from mitmproxy import exceptions, master
  File "/tmp/y/venv/lib/python3.8/site-packages/mitmproxy/master.py", line 10, in <module>
    from mitmproxy import eventsequence
  File "/tmp/y/venv/lib/python3.8/site-packages/mitmproxy/eventsequence.py", line 8, in <module>
    from mitmproxy.proxy import layers
  File "/tmp/y/venv/lib/python3.8/site-packages/mitmproxy/proxy/layers/__init__.py", line 1, in <module>
    from . import modes
  File "/tmp/y/venv/lib/python3.8/site-packages/mitmproxy/proxy/layers/modes.py", line 9, in <module>
    from mitmproxy.proxy.layers import tls
  File "/tmp/y/venv/lib/python3.8/site-packages/mitmproxy/proxy/layers/tls.py", line 8, in <module>
    from mitmproxy.net import tls as net_tls
  File "/tmp/y/venv/lib/python3.8/site-packages/mitmproxy/net/tls.py", line 18, in <module>
    from mitmproxy.contrib.kaitaistruct import tls_client_hello
  File "/tmp/y/venv/lib/python3.8/site-packages/mitmproxy/contrib/kaitaistruct/tls_client_hello.py", line 7, in <module>
    from pkg_resources import parse_version
ModuleNotFoundError: No module named 'pkg_resources'
```

--- 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 import os
2 import re
3 from codecs import open
4 
5 from setuptools import find_packages, setup
6 
7 # Based on https://github.com/pypa/sampleproject/blob/main/setup.py
8 # and https://python-packaging-user-guide.readthedocs.org/
9 
10 here = os.path.abspath(os.path.dirname(__file__))
11 
12 with open(os.path.join(here, 'README.md'), encoding='utf-8') as f:
13     long_description = f.read()
14 long_description_content_type = "text/markdown"
15 
16 with open(os.path.join(here, "mitmproxy", "version.py")) as f:
17     match = re.search(r'VERSION = "(.+?)"', f.read())
18     assert match
19     VERSION = match.group(1)
20 
21 setup(
22     name="mitmproxy",
23     version=VERSION,
24     description="An interactive, SSL/TLS-capable intercepting proxy for HTTP/1, HTTP/2, and WebSockets.",
25     long_description=long_description,
26     long_description_content_type=long_description_content_type,
27     url="http://mitmproxy.org",
28     author="Aldo Cortesi",
29     author_email="aldo@corte.si",
30     license="MIT",
31     classifiers=[
32         "License :: OSI Approved :: MIT License",
33         "Development Status :: 5 - Production/Stable",
34         "Environment :: Console :: Curses",
35         "Operating System :: MacOS",
36         "Operating System :: POSIX",
37         "Operating System :: Microsoft :: Windows",
38         "Programming Language :: Python :: 3 :: Only",
39         "Programming Language :: Python :: 3.8",
40         "Programming Language :: Python :: 3.9",
41         "Programming Language :: Python :: 3.10",
42         "Programming Language :: Python :: Implementation :: CPython",
43         "Topic :: Security",
44         "Topic :: Internet :: WWW/HTTP",
45         "Topic :: Internet :: Proxy Servers",
46         "Topic :: System :: Networking :: Monitoring",
47         "Topic :: Software Development :: Testing",
48         "Typing :: Typed",
49     ],
50     project_urls={
51         'Documentation': 'https://docs.mitmproxy.org/stable/',
52         'Source': 'https://github.com/mitmproxy/mitmproxy/',
53         'Tracker': 'https://github.com/mitmproxy/mitmproxy/issues',
54     },
55     packages=find_packages(include=[
56         "mitmproxy", "mitmproxy.*",
57     ]),
58     include_package_data=True,
59     entry_points={
60         'console_scripts': [
61             "mitmproxy = mitmproxy.tools.main:mitmproxy",
62             "mitmdump = mitmproxy.tools.main:mitmdump",
63             "mitmweb = mitmproxy.tools.main:mitmweb",
64         ]
65     },
66     python_requires='>=3.8',
67     # https://packaging.python.org/en/latest/requirements/#install-requires
68     # It is not considered best practice to use install_requires to pin dependencies to specific versions.
69     install_requires=[
70         "asgiref>=3.2.10,<3.5",
71         "blinker>=1.4, <1.5",
72         "Brotli>=1.0,<1.1",
73         "certifi>=2019.9.11",  # no semver here - this should always be on the last release!
74         "click>=7.0,<8.1",
75         "cryptography>=3.3,<3.5",
76         "flask>=1.1.1,<2.1",
77         "h11>=0.11,<0.13",
78         "h2>=4.1,<5",
79         "hyperframe>=6.0,<7",
80         "kaitaistruct>=0.7,<0.10",
81         "ldap3>=2.8,<2.10",
82         "msgpack>=1.0.0, <1.1.0",
83         "passlib>=1.6.5, <1.8",
84         "protobuf>=3.14,<3.19",
85         "pyOpenSSL>=21.0,<21.1",
86         "pyparsing>=2.4.2,<2.5",
87         "pyperclip>=1.6.0,<1.9",
88         "ruamel.yaml>=0.16,<0.17.17",
89         "sortedcontainers>=2.3,<2.5",
90         "tornado>=6.1,<7",
91         "urwid>=2.1.1,<2.2",
92         "wsproto>=1.0,<1.1",
93         "publicsuffix2>=2.20190812,<3",
94         "zstandard>=0.11,<0.16",
95     ],
96     extras_require={
97         ':sys_platform == "win32"': [
98             "pydivert>=2.0.3,<2.2",
99         ],
100         'dev': [
101             "hypothesis>=5.8,<7",
102             "parver>=0.1,<2.0",
103             "pdoc>=4.0.0",
104             "pyinstaller==4.5.1",
105             "pytest-asyncio>=0.10.0,<0.16,!=0.14",
106             "pytest-cov>=2.7.1,<3",
107             "pytest-timeout>=1.3.3,<2",
108             "pytest-xdist>=2.1.0,<3",
109             "pytest>=6.1.0,<7",
110             "requests>=2.9.1,<3",
111             "tox>=3.5,<4",
112             "wheel>=0.36.2,<0.38",
113             "coverage==5.5",  # workaround issue with import errors introduced in 5.6b1/6.0
114         ],
115     }
116 )
117
```
--- 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
@@ -86,6 +86,8 @@
         "pyparsing>=2.4.2,<2.5",
         "pyperclip>=1.6.0,<1.9",
         "ruamel.yaml>=0.16,<0.17.17",
+        # Kaitai parsers depend on setuptools, remove once https://github.com/kaitai-io/kaitai_struct_python_runtime/issues/62 is fixed
+        "setuptools",
         "sortedcontainers>=2.3,<2.5",
         "tornado>=6.1,<7",
         "urwid>=2.1.1,<2.2",

{"golden_diff": "diff --git a/setup.py b/setup.py\n--- a/setup.py\n+++ b/setup.py\n@@ -86,6 +86,8 @@\n         \"pyparsing>=2.4.2,<2.5\",\n         \"pyperclip>=1.6.0,<1.9\",\n         \"ruamel.yaml>=0.16,<0.17.17\",\n+        # Kaitai parsers depend on setuptools, remove once https://github.com/kaitai-io/kaitai_struct_python_runtime/issues/62 is fixed\n+        \"setuptools\",\n         \"sortedcontainers>=2.3,<2.5\",\n         \"tornado>=6.1,<7\",\n         \"urwid>=2.1.1,<2.2\",\n", "issue": "mitmproxy depends on `pkg_resources` at runtime but does not specify `install_requires=setuptools`\n#### Problem Description\r\nA clear and concise description of what the bug is.\r\n\r\nhttps://github.com/mitmproxy/mitmproxy/blob/0ca458fd6475ee48728147f3b529467a75e912a4/mitmproxy/contrib/kaitaistruct/exif.py#L7\r\n\r\nthe `pkg_resources` module is provided by `setuptools`\r\n\r\ninstallation into a minimal environment (for example, bazel) will break without also needing to specify `setuptools`\r\n\r\nmitmproxy should depend on `setuptools`\r\n\r\n\r\n#### Steps to reproduce the behavior:\r\n\r\n1. simulate a minimal environment:\r\n\r\n```\r\nvirtualenv venv\r\nvenv/bin/pip install mitmproxy\r\nvenv/bin/pip uninstall setuptools\r\nvenv/bin/pip install mitmproxy  # make sure we actually have its deps even after uninstalling\r\n```\r\n\r\n2. run `mitmproxy --help`\r\n\r\n```console\r\n$ venv/bin/mitmproxy --help\r\nTraceback (most recent call last):\r\n  File \"venv/bin/mitmproxy\", line 5, in <module>\r\n    from mitmproxy.tools.main import mitmproxy\r\n  File \"/tmp/y/venv/lib/python3.8/site-packages/mitmproxy/tools/main.py\", line 8, in <module>\r\n    from mitmproxy import exceptions, master\r\n  File \"/tmp/y/venv/lib/python3.8/site-packages/mitmproxy/master.py\", line 10, in <module>\r\n    from mitmproxy import eventsequence\r\n  File \"/tmp/y/venv/lib/python3.8/site-packages/mitmproxy/eventsequence.py\", line 8, in <module>\r\n    from mitmproxy.proxy import layers\r\n  File \"/tmp/y/venv/lib/python3.8/site-packages/mitmproxy/proxy/layers/__init__.py\", line 1, in <module>\r\n    from . import modes\r\n  File \"/tmp/y/venv/lib/python3.8/site-packages/mitmproxy/proxy/layers/modes.py\", line 9, in <module>\r\n    from mitmproxy.proxy.layers import tls\r\n  File \"/tmp/y/venv/lib/python3.8/site-packages/mitmproxy/proxy/layers/tls.py\", line 8, in <module>\r\n    from mitmproxy.net import tls as net_tls\r\n  File \"/tmp/y/venv/lib/python3.8/site-packages/mitmproxy/net/tls.py\", line 18, in <module>\r\n    from mitmproxy.contrib.kaitaistruct import tls_client_hello\r\n  File \"/tmp/y/venv/lib/python3.8/site-packages/mitmproxy/contrib/kaitaistruct/tls_client_hello.py\", line 7, in <module>\r\n    from pkg_resources import parse_version\r\nModuleNotFoundError: No module named 'pkg_resources'\r\n```\r\n\r\n#### System Information\r\nPaste the output of \"mitmproxy --version\" here.\r\n\r\n```console\r\n$ venv/bin/mitmproxy --version\r\nTraceback (most recent call last):\r\n  File \"venv/bin/mitmproxy\", line 5, in <module>\r\n    from mitmproxy.tools.main import mitmproxy\r\n  File \"/tmp/y/venv/lib/python3.8/site-packages/mitmproxy/tools/main.py\", line 8, in <module>\r\n    from mitmproxy import exceptions, master\r\n  File \"/tmp/y/venv/lib/python3.8/site-packages/mitmproxy/master.py\", line 10, in <module>\r\n    from mitmproxy import eventsequence\r\n  File \"/tmp/y/venv/lib/python3.8/site-packages/mitmproxy/eventsequence.py\", line 8, in <module>\r\n    from mitmproxy.proxy import layers\r\n  File \"/tmp/y/venv/lib/python3.8/site-packages/mitmproxy/proxy/layers/__init__.py\", line 1, in <module>\r\n    from . import modes\r\n  File \"/tmp/y/venv/lib/python3.8/site-packages/mitmproxy/proxy/layers/modes.py\", line 9, in <module>\r\n    from mitmproxy.proxy.layers import tls\r\n  File \"/tmp/y/venv/lib/python3.8/site-packages/mitmproxy/proxy/layers/tls.py\", line 8, in <module>\r\n    from mitmproxy.net import tls as net_tls\r\n  File \"/tmp/y/venv/lib/python3.8/site-packages/mitmproxy/net/tls.py\", line 18, in <module>\r\n    from mitmproxy.contrib.kaitaistruct import tls_client_hello\r\n  File \"/tmp/y/venv/lib/python3.8/site-packages/mitmproxy/contrib/kaitaistruct/tls_client_hello.py\", line 7, in <module>\r\n    from pkg_resources import parse_version\r\nModuleNotFoundError: No module named 'pkg_resources'\r\n```\n", "before_files": [{"content": "import os\nimport re\nfrom codecs import open\n\nfrom setuptools import find_packages, setup\n\n# Based on https://github.com/pypa/sampleproject/blob/main/setup.py\n# and https://python-packaging-user-guide.readthedocs.org/\n\nhere = os.path.abspath(os.path.dirname(__file__))\n\nwith open(os.path.join(here, 'README.md'), encoding='utf-8') as f:\n    long_description = f.read()\nlong_description_content_type = \"text/markdown\"\n\nwith open(os.path.join(here, \"mitmproxy\", \"version.py\")) as f:\n    match = re.search(r'VERSION = \"(.+?)\"', f.read())\n    assert match\n    VERSION = match.group(1)\n\nsetup(\n    name=\"mitmproxy\",\n    version=VERSION,\n    description=\"An interactive, SSL/TLS-capable intercepting proxy for HTTP/1, HTTP/2, and WebSockets.\",\n    long_description=long_description,\n    long_description_content_type=long_description_content_type,\n    url=\"http://mitmproxy.org\",\n    author=\"Aldo Cortesi\",\n    author_email=\"aldo@corte.si\",\n    license=\"MIT\",\n    classifiers=[\n        \"License :: OSI Approved :: MIT License\",\n        \"Development Status :: 5 - Production/Stable\",\n        \"Environment :: Console :: Curses\",\n        \"Operating System :: MacOS\",\n        \"Operating System :: POSIX\",\n        \"Operating System :: Microsoft :: Windows\",\n        \"Programming Language :: Python :: 3 :: Only\",\n        \"Programming Language :: Python :: 3.8\",\n        \"Programming Language :: Python :: 3.9\",\n        \"Programming Language :: Python :: 3.10\",\n        \"Programming Language :: Python :: Implementation :: CPython\",\n        \"Topic :: Security\",\n        \"Topic :: Internet :: WWW/HTTP\",\n        \"Topic :: Internet :: Proxy Servers\",\n        \"Topic :: System :: Networking :: Monitoring\",\n        \"Topic :: Software Development :: Testing\",\n        \"Typing :: Typed\",\n    ],\n    project_urls={\n        'Documentation': 'https://docs.mitmproxy.org/stable/',\n        'Source': 'https://github.com/mitmproxy/mitmproxy/',\n        'Tracker': 'https://github.com/mitmproxy/mitmproxy/issues',\n    },\n    packages=find_packages(include=[\n        \"mitmproxy\", \"mitmproxy.*\",\n    ]),\n    include_package_data=True,\n    entry_points={\n        'console_scripts': [\n            \"mitmproxy = mitmproxy.tools.main:mitmproxy\",\n            \"mitmdump = mitmproxy.tools.main:mitmdump\",\n            \"mitmweb = mitmproxy.tools.main:mitmweb\",\n        ]\n    },\n    python_requires='>=3.8',\n    # https://packaging.python.org/en/latest/requirements/#install-requires\n    # It is not considered best practice to use install_requires to pin dependencies to specific versions.\n    install_requires=[\n        \"asgiref>=3.2.10,<3.5\",\n        \"blinker>=1.4, <1.5\",\n        \"Brotli>=1.0,<1.1\",\n        \"certifi>=2019.9.11\",  # no semver here - this should always be on the last release!\n        \"click>=7.0,<8.1\",\n        \"cryptography>=3.3,<3.5\",\n        \"flask>=1.1.1,<2.1\",\n        \"h11>=0.11,<0.13\",\n        \"h2>=4.1,<5\",\n        \"hyperframe>=6.0,<7\",\n        \"kaitaistruct>=0.7,<0.10\",\n        \"ldap3>=2.8,<2.10\",\n        \"msgpack>=1.0.0, <1.1.0\",\n        \"passlib>=1.6.5, <1.8\",\n        \"protobuf>=3.14,<3.19\",\n        \"pyOpenSSL>=21.0,<21.1\",\n        \"pyparsing>=2.4.2,<2.5\",\n        \"pyperclip>=1.6.0,<1.9\",\n        \"ruamel.yaml>=0.16,<0.17.17\",\n        \"sortedcontainers>=2.3,<2.5\",\n        \"tornado>=6.1,<7\",\n        \"urwid>=2.1.1,<2.2\",\n        \"wsproto>=1.0,<1.1\",\n        \"publicsuffix2>=2.20190812,<3\",\n        \"zstandard>=0.11,<0.16\",\n    ],\n    extras_require={\n        ':sys_platform == \"win32\"': [\n            \"pydivert>=2.0.3,<2.2\",\n        ],\n        'dev': [\n            \"hypothesis>=5.8,<7\",\n            \"parver>=0.1,<2.0\",\n            \"pdoc>=4.0.0\",\n            \"pyinstaller==4.5.1\",\n            \"pytest-asyncio>=0.10.0,<0.16,!=0.14\",\n            \"pytest-cov>=2.7.1,<3\",\n            \"pytest-timeout>=1.3.3,<2\",\n            \"pytest-xdist>=2.1.0,<3\",\n            \"pytest>=6.1.0,<7\",\n            \"requests>=2.9.1,<3\",\n            \"tox>=3.5,<4\",\n            \"wheel>=0.36.2,<0.38\",\n            \"coverage==5.5\",  # workaround issue with import errors introduced in 5.6b1/6.0\n        ],\n    }\n)\n", "path": "setup.py"}], "after_files": [{"content": "import os\nimport re\nfrom codecs import open\n\nfrom setuptools import find_packages, setup\n\n# Based on https://github.com/pypa/sampleproject/blob/main/setup.py\n# and https://python-packaging-user-guide.readthedocs.org/\n\nhere = os.path.abspath(os.path.dirname(__file__))\n\nwith open(os.path.join(here, 'README.md'), encoding='utf-8') as f:\n    long_description = f.read()\nlong_description_content_type = \"text/markdown\"\n\nwith open(os.path.join(here, \"mitmproxy\", \"version.py\")) as f:\n    match = re.search(r'VERSION = \"(.+?)\"', f.read())\n    assert match\n    VERSION = match.group(1)\n\nsetup(\n    name=\"mitmproxy\",\n    version=VERSION,\n    description=\"An interactive, SSL/TLS-capable intercepting proxy for HTTP/1, HTTP/2, and WebSockets.\",\n    long_description=long_description,\n    long_description_content_type=long_description_content_type,\n    url=\"http://mitmproxy.org\",\n    author=\"Aldo Cortesi\",\n    author_email=\"aldo@corte.si\",\n    license=\"MIT\",\n    classifiers=[\n        \"License :: OSI Approved :: MIT License\",\n        \"Development Status :: 5 - Production/Stable\",\n        \"Environment :: Console :: Curses\",\n        \"Operating System :: MacOS\",\n        \"Operating System :: POSIX\",\n        \"Operating System :: Microsoft :: Windows\",\n        \"Programming Language :: Python :: 3 :: Only\",\n        \"Programming Language :: Python :: 3.8\",\n        \"Programming Language :: Python :: 3.9\",\n        \"Programming Language :: Python :: 3.10\",\n        \"Programming Language :: Python :: Implementation :: CPython\",\n        \"Topic :: Security\",\n        \"Topic :: Internet :: WWW/HTTP\",\n        \"Topic :: Internet :: Proxy Servers\",\n        \"Topic :: System :: Networking :: Monitoring\",\n        \"Topic :: Software Development :: Testing\",\n        \"Typing :: Typed\",\n    ],\n    project_urls={\n        'Documentation': 'https://docs.mitmproxy.org/stable/',\n        'Source': 'https://github.com/mitmproxy/mitmproxy/',\n        'Tracker': 'https://github.com/mitmproxy/mitmproxy/issues',\n    },\n    packages=find_packages(include=[\n        \"mitmproxy\", \"mitmproxy.*\",\n    ]),\n    include_package_data=True,\n    entry_points={\n        'console_scripts': [\n            \"mitmproxy = mitmproxy.tools.main:mitmproxy\",\n            \"mitmdump = mitmproxy.tools.main:mitmdump\",\n            \"mitmweb = mitmproxy.tools.main:mitmweb\",\n        ]\n    },\n    python_requires='>=3.8',\n    # https://packaging.python.org/en/latest/requirements/#install-requires\n    # It is not considered best practice to use install_requires to pin dependencies to specific versions.\n    install_requires=[\n        \"asgiref>=3.2.10,<3.5\",\n        \"blinker>=1.4, <1.5\",\n        \"Brotli>=1.0,<1.1\",\n        \"certifi>=2019.9.11\",  # no semver here - this should always be on the last release!\n        \"click>=7.0,<8.1\",\n        \"cryptography>=3.3,<3.5\",\n        \"flask>=1.1.1,<2.1\",\n        \"h11>=0.11,<0.13\",\n        \"h2>=4.1,<5\",\n        \"hyperframe>=6.0,<7\",\n        \"kaitaistruct>=0.7,<0.10\",\n        \"ldap3>=2.8,<2.10\",\n        \"msgpack>=1.0.0, <1.1.0\",\n        \"passlib>=1.6.5, <1.8\",\n        \"protobuf>=3.14,<3.19\",\n        \"pyOpenSSL>=21.0,<21.1\",\n        \"pyparsing>=2.4.2,<2.5\",\n        \"pyperclip>=1.6.0,<1.9\",\n        \"ruamel.yaml>=0.16,<0.17.17\",\n        # Kaitai parsers depend on setuptools, remove once https://github.com/kaitai-io/kaitai_struct_python_runtime/issues/62 is fixed\n        \"setuptools\",\n        \"sortedcontainers>=2.3,<2.5\",\n        \"tornado>=6.1,<7\",\n        \"urwid>=2.1.1,<2.2\",\n        \"wsproto>=1.0,<1.1\",\n        \"publicsuffix2>=2.20190812,<3\",\n        \"zstandard>=0.11,<0.16\",\n    ],\n    extras_require={\n        ':sys_platform == \"win32\"': [\n            \"pydivert>=2.0.3,<2.2\",\n        ],\n        'dev': [\n            \"hypothesis>=5.8,<7\",\n            \"parver>=0.1,<2.0\",\n            \"pdoc>=4.0.0\",\n            \"pyinstaller==4.5.1\",\n            \"pytest-asyncio>=0.10.0,<0.16,!=0.14\",\n            \"pytest-cov>=2.7.1,<3\",\n            \"pytest-timeout>=1.3.3,<2\",\n            \"pytest-xdist>=2.1.0,<3\",\n            \"pytest>=6.1.0,<7\",\n            \"requests>=2.9.1,<3\",\n            \"tox>=3.5,<4\",\n            \"wheel>=0.36.2,<0.38\",\n            \"coverage==5.5\",  # workaround issue with import errors introduced in 5.6b1/6.0\n        ],\n    }\n)\n", "path": "setup.py"}]}