summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason R. Coombs <jaraco@jaraco.com>2023-01-13 09:43:13 -0500
committerJason R. Coombs <jaraco@jaraco.com>2023-01-13 09:43:13 -0500
commitd24c9afce13f8ea9c4602d1efb54f0ffe0c3de3e (patch)
tree6711213c6d58bd70a6cc64b97af8f88d4e0bb461
parent583836fd4110a03ac45a0e26ae58f54046de124b (diff)
downloadpython-setuptools-git-d24c9afce13f8ea9c4602d1efb54f0ffe0c3de3e.tar.gz
Update vendored transitive dependencies.
-rw-r--r--pkg_resources/_vendor/appdirs-1.4.3.dist-info/RECORD2
-rw-r--r--pkg_resources/_vendor/importlib_resources-5.4.0.dist-info/RECORD56
-rw-r--r--pkg_resources/_vendor/jaraco.context-4.1.1.dist-info/RECORD8
-rw-r--r--pkg_resources/_vendor/jaraco.context-4.2.0.dist-info/INSTALLER (renamed from pkg_resources/_vendor/jaraco.context-4.1.1.dist-info/INSTALLER)0
-rw-r--r--pkg_resources/_vendor/jaraco.context-4.2.0.dist-info/LICENSE (renamed from pkg_resources/_vendor/jaraco.context-4.1.1.dist-info/LICENSE)0
-rw-r--r--pkg_resources/_vendor/jaraco.context-4.2.0.dist-info/METADATA (renamed from setuptools/_vendor/jaraco.context-4.1.1.dist-info/METADATA)41
-rw-r--r--pkg_resources/_vendor/jaraco.context-4.2.0.dist-info/RECORD8
-rw-r--r--pkg_resources/_vendor/jaraco.context-4.2.0.dist-info/WHEEL (renamed from pkg_resources/_vendor/jaraco.context-4.1.1.dist-info/WHEEL)2
-rw-r--r--pkg_resources/_vendor/jaraco.context-4.2.0.dist-info/top_level.txt (renamed from pkg_resources/_vendor/jaraco.context-4.1.1.dist-info/top_level.txt)0
-rw-r--r--pkg_resources/_vendor/jaraco.functools-3.5.0.dist-info/RECORD8
-rw-r--r--pkg_resources/_vendor/jaraco.functools-3.5.2.dist-info/INSTALLER (renamed from pkg_resources/_vendor/jaraco.functools-3.5.0.dist-info/INSTALLER)0
-rw-r--r--pkg_resources/_vendor/jaraco.functools-3.5.2.dist-info/LICENSE (renamed from pkg_resources/_vendor/jaraco.functools-3.5.0.dist-info/LICENSE)0
-rw-r--r--pkg_resources/_vendor/jaraco.functools-3.5.2.dist-info/METADATA (renamed from pkg_resources/_vendor/jaraco.functools-3.5.0.dist-info/METADATA)33
-rw-r--r--pkg_resources/_vendor/jaraco.functools-3.5.2.dist-info/RECORD8
-rw-r--r--pkg_resources/_vendor/jaraco.functools-3.5.2.dist-info/WHEEL (renamed from pkg_resources/_vendor/jaraco.functools-3.5.0.dist-info/WHEEL)2
-rw-r--r--pkg_resources/_vendor/jaraco.functools-3.5.2.dist-info/top_level.txt (renamed from pkg_resources/_vendor/jaraco.functools-3.5.0.dist-info/top_level.txt)0
-rw-r--r--pkg_resources/_vendor/jaraco.text-3.7.0.dist-info/RECORD2
-rw-r--r--pkg_resources/_vendor/jaraco/context.py40
-rw-r--r--pkg_resources/_vendor/more_itertools-8.12.0.dist-info/RECORD16
-rw-r--r--pkg_resources/_vendor/more_itertools-8.12.0.dist-info/top_level.txt1
-rw-r--r--pkg_resources/_vendor/more_itertools-9.0.0.dist-info/INSTALLER (renamed from pkg_resources/_vendor/more_itertools-8.12.0.dist-info/INSTALLER)0
-rw-r--r--pkg_resources/_vendor/more_itertools-9.0.0.dist-info/LICENSE (renamed from pkg_resources/_vendor/more_itertools-8.12.0.dist-info/LICENSE)0
-rw-r--r--pkg_resources/_vendor/more_itertools-9.0.0.dist-info/METADATA (renamed from pkg_resources/_vendor/more_itertools-8.12.0.dist-info/METADATA)324
-rw-r--r--pkg_resources/_vendor/more_itertools-9.0.0.dist-info/RECORD15
-rw-r--r--pkg_resources/_vendor/more_itertools-9.0.0.dist-info/WHEEL (renamed from pkg_resources/_vendor/pyparsing-3.0.8.dist-info/WHEEL)2
-rw-r--r--pkg_resources/_vendor/more_itertools/__init__.py4
-rwxr-xr-x[-rw-r--r--]pkg_resources/_vendor/more_itertools/more.py224
-rw-r--r--pkg_resources/_vendor/more_itertools/more.pyi36
-rw-r--r--pkg_resources/_vendor/more_itertools/recipes.py175
-rw-r--r--pkg_resources/_vendor/more_itertools/recipes.pyi26
-rw-r--r--pkg_resources/_vendor/packaging-21.3.dist-info/RECORD22
-rw-r--r--pkg_resources/_vendor/pyparsing-3.0.8.dist-info/LICENSE18
-rw-r--r--pkg_resources/_vendor/pyparsing-3.0.8.dist-info/METADATA105
-rw-r--r--pkg_resources/_vendor/pyparsing-3.0.8.dist-info/RECORD30
-rw-r--r--pkg_resources/_vendor/pyparsing-3.0.8.dist-info/REQUESTED0
-rw-r--r--pkg_resources/_vendor/pyparsing-3.0.9.dist-info/RECORD58
-rw-r--r--pkg_resources/_vendor/zipp-3.7.0.dist-info/RECORD2
-rw-r--r--setuptools/_vendor/importlib_metadata-4.11.1.dist-info/RECORD16
-rw-r--r--setuptools/_vendor/importlib_resources-5.4.0.dist-info/RECORD56
-rw-r--r--setuptools/_vendor/jaraco.context-4.1.1.dist-info/RECORD8
-rw-r--r--setuptools/_vendor/jaraco.context-4.2.0.dist-info/INSTALLER (renamed from pkg_resources/_vendor/pyparsing-3.0.8.dist-info/INSTALLER)0
-rw-r--r--setuptools/_vendor/jaraco.context-4.2.0.dist-info/LICENSE (renamed from setuptools/_vendor/jaraco.context-4.1.1.dist-info/LICENSE)0
-rw-r--r--setuptools/_vendor/jaraco.context-4.2.0.dist-info/METADATA (renamed from pkg_resources/_vendor/jaraco.context-4.1.1.dist-info/METADATA)41
-rw-r--r--setuptools/_vendor/jaraco.context-4.2.0.dist-info/RECORD8
-rw-r--r--setuptools/_vendor/jaraco.context-4.2.0.dist-info/WHEEL (renamed from pkg_resources/_vendor/more_itertools-8.12.0.dist-info/WHEEL)2
-rw-r--r--setuptools/_vendor/jaraco.context-4.2.0.dist-info/top_level.txt (renamed from setuptools/_vendor/jaraco.context-4.1.1.dist-info/top_level.txt)0
-rw-r--r--setuptools/_vendor/jaraco.functools-3.5.0.dist-info/INSTALLER1
-rw-r--r--setuptools/_vendor/jaraco.functools-3.5.0.dist-info/RECORD8
-rw-r--r--setuptools/_vendor/jaraco.functools-3.5.0.dist-info/WHEEL5
-rw-r--r--setuptools/_vendor/jaraco.functools-3.5.2.dist-info/INSTALLER (renamed from setuptools/_vendor/jaraco.context-4.1.1.dist-info/INSTALLER)0
-rw-r--r--setuptools/_vendor/jaraco.functools-3.5.2.dist-info/LICENSE (renamed from setuptools/_vendor/jaraco.functools-3.5.0.dist-info/LICENSE)0
-rw-r--r--setuptools/_vendor/jaraco.functools-3.5.2.dist-info/METADATA (renamed from setuptools/_vendor/jaraco.functools-3.5.0.dist-info/METADATA)33
-rw-r--r--setuptools/_vendor/jaraco.functools-3.5.2.dist-info/RECORD8
-rw-r--r--setuptools/_vendor/jaraco.functools-3.5.2.dist-info/WHEEL (renamed from setuptools/_vendor/jaraco.context-4.1.1.dist-info/WHEEL)2
-rw-r--r--setuptools/_vendor/jaraco.functools-3.5.2.dist-info/top_level.txt (renamed from setuptools/_vendor/jaraco.functools-3.5.0.dist-info/top_level.txt)0
-rw-r--r--setuptools/_vendor/jaraco.text-3.7.0.dist-info/RECORD2
-rw-r--r--setuptools/_vendor/jaraco/context.py40
-rw-r--r--setuptools/_vendor/more_itertools-8.8.0.dist-info/RECORD6
-rw-r--r--setuptools/_vendor/ordered_set-3.1.1.dist-info/METADATA2
-rw-r--r--setuptools/_vendor/ordered_set-3.1.1.dist-info/RECORD6
-rw-r--r--setuptools/_vendor/ordered_set-3.1.1.dist-info/WHEEL2
-rw-r--r--setuptools/_vendor/packaging-21.3.dist-info/RECORD22
-rw-r--r--setuptools/_vendor/pyparsing-3.0.9.dist-info/RECORD58
-rw-r--r--setuptools/_vendor/tomli-2.0.1.dist-info/RECORD30
-rw-r--r--setuptools/_vendor/typing_extensions-4.0.1.dist-info/RECORD2
-rw-r--r--setuptools/_vendor/zipp-3.7.0.dist-info/RECORD2
66 files changed, 756 insertions, 872 deletions
diff --git a/pkg_resources/_vendor/appdirs-1.4.3.dist-info/RECORD b/pkg_resources/_vendor/appdirs-1.4.3.dist-info/RECORD
index 3f45ff59..f8da4f6f 100644
--- a/pkg_resources/_vendor/appdirs-1.4.3.dist-info/RECORD
+++ b/pkg_resources/_vendor/appdirs-1.4.3.dist-info/RECORD
@@ -1,4 +1,4 @@
-__pycache__/appdirs.cpython-310.pyc,,
+__pycache__/appdirs.cpython-311.pyc,,
appdirs-1.4.3.dist-info/DESCRIPTION.rst,sha256=77Fe8OIOLSjDSNdLiL5xywMKO-AGE42rdXkqKo4Ee-k,7531
appdirs-1.4.3.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
appdirs-1.4.3.dist-info/METADATA,sha256=3IFw6jTfImdOqsCb2GYvVR157tL7KEzfRAszn382csk,8773
diff --git a/pkg_resources/_vendor/importlib_resources-5.4.0.dist-info/RECORD b/pkg_resources/_vendor/importlib_resources-5.4.0.dist-info/RECORD
index 7a68a2f2..7f579ddb 100644
--- a/pkg_resources/_vendor/importlib_resources-5.4.0.dist-info/RECORD
+++ b/pkg_resources/_vendor/importlib_resources-5.4.0.dist-info/RECORD
@@ -6,15 +6,15 @@ importlib_resources-5.4.0.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeR
importlib_resources-5.4.0.dist-info/WHEEL,sha256=ewwEueio1C2XeHTvT17n8dZUJgOvyCWCt0WVNLClP9o,92
importlib_resources-5.4.0.dist-info/top_level.txt,sha256=fHIjHU1GZwAjvcydpmUnUrTnbvdiWjG4OEVZK8by0TQ,20
importlib_resources/__init__.py,sha256=zuA0lbRgtVVCcAztM0z5LuBiOCV9L_3qtI6mW2p5xAg,525
-importlib_resources/__pycache__/__init__.cpython-310.pyc,,
-importlib_resources/__pycache__/_adapters.cpython-310.pyc,,
-importlib_resources/__pycache__/_common.cpython-310.pyc,,
-importlib_resources/__pycache__/_compat.cpython-310.pyc,,
-importlib_resources/__pycache__/_itertools.cpython-310.pyc,,
-importlib_resources/__pycache__/_legacy.cpython-310.pyc,,
-importlib_resources/__pycache__/abc.cpython-310.pyc,,
-importlib_resources/__pycache__/readers.cpython-310.pyc,,
-importlib_resources/__pycache__/simple.cpython-310.pyc,,
+importlib_resources/__pycache__/__init__.cpython-311.pyc,,
+importlib_resources/__pycache__/_adapters.cpython-311.pyc,,
+importlib_resources/__pycache__/_common.cpython-311.pyc,,
+importlib_resources/__pycache__/_compat.cpython-311.pyc,,
+importlib_resources/__pycache__/_itertools.cpython-311.pyc,,
+importlib_resources/__pycache__/_legacy.cpython-311.pyc,,
+importlib_resources/__pycache__/abc.cpython-311.pyc,,
+importlib_resources/__pycache__/readers.cpython-311.pyc,,
+importlib_resources/__pycache__/simple.cpython-311.pyc,,
importlib_resources/_adapters.py,sha256=o51tP2hpVtohP33gSYyAkGNpLfYDBqxxYsadyiRZi1E,4504
importlib_resources/_common.py,sha256=iIxAaQhotSh6TLLUEfL_ynU2fzEeyHMz9JcL46mUhLg,2741
importlib_resources/_compat.py,sha256=3LpkIfeN9x4oXjRea5TxZP5VYhPlzuVRhGe-hEv-S0s,2704
@@ -25,34 +25,34 @@ importlib_resources/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,
importlib_resources/readers.py,sha256=_9QLGQ5AzrED3PY8S2Zf8V6yLR0-nqqYqtQmgleDJzY,3566
importlib_resources/simple.py,sha256=xt0qhXbwt3bZ86zuaaKbTiE9A0mDbwu0saRjUq_pcY0,2836
importlib_resources/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
-importlib_resources/tests/__pycache__/__init__.cpython-310.pyc,,
-importlib_resources/tests/__pycache__/_compat.cpython-310.pyc,,
-importlib_resources/tests/__pycache__/test_compatibilty_files.cpython-310.pyc,,
-importlib_resources/tests/__pycache__/test_contents.cpython-310.pyc,,
-importlib_resources/tests/__pycache__/test_files.cpython-310.pyc,,
-importlib_resources/tests/__pycache__/test_open.cpython-310.pyc,,
-importlib_resources/tests/__pycache__/test_path.cpython-310.pyc,,
-importlib_resources/tests/__pycache__/test_read.cpython-310.pyc,,
-importlib_resources/tests/__pycache__/test_reader.cpython-310.pyc,,
-importlib_resources/tests/__pycache__/test_resource.cpython-310.pyc,,
-importlib_resources/tests/__pycache__/update-zips.cpython-310.pyc,,
-importlib_resources/tests/__pycache__/util.cpython-310.pyc,,
+importlib_resources/tests/__pycache__/__init__.cpython-311.pyc,,
+importlib_resources/tests/__pycache__/_compat.cpython-311.pyc,,
+importlib_resources/tests/__pycache__/test_compatibilty_files.cpython-311.pyc,,
+importlib_resources/tests/__pycache__/test_contents.cpython-311.pyc,,
+importlib_resources/tests/__pycache__/test_files.cpython-311.pyc,,
+importlib_resources/tests/__pycache__/test_open.cpython-311.pyc,,
+importlib_resources/tests/__pycache__/test_path.cpython-311.pyc,,
+importlib_resources/tests/__pycache__/test_read.cpython-311.pyc,,
+importlib_resources/tests/__pycache__/test_reader.cpython-311.pyc,,
+importlib_resources/tests/__pycache__/test_resource.cpython-311.pyc,,
+importlib_resources/tests/__pycache__/update-zips.cpython-311.pyc,,
+importlib_resources/tests/__pycache__/util.cpython-311.pyc,,
importlib_resources/tests/_compat.py,sha256=QGI_4p0DXybypoYvw0kr3jfQqvls3p8u4wy4Wvf0Z_o,435
importlib_resources/tests/data01/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
-importlib_resources/tests/data01/__pycache__/__init__.cpython-310.pyc,,
+importlib_resources/tests/data01/__pycache__/__init__.cpython-311.pyc,,
importlib_resources/tests/data01/binary.file,sha256=BU7ewdAhH2JP7Qy8qdT5QAsOSRxDdCryxbCr6_DJkNg,4
importlib_resources/tests/data01/subdirectory/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
-importlib_resources/tests/data01/subdirectory/__pycache__/__init__.cpython-310.pyc,,
+importlib_resources/tests/data01/subdirectory/__pycache__/__init__.cpython-311.pyc,,
importlib_resources/tests/data01/subdirectory/binary.file,sha256=BU7ewdAhH2JP7Qy8qdT5QAsOSRxDdCryxbCr6_DJkNg,4
importlib_resources/tests/data01/utf-16.file,sha256=t5q9qhxX0rYqItBOM8D3ylwG-RHrnOYteTLtQr6sF7g,44
importlib_resources/tests/data01/utf-8.file,sha256=kwWgYG4yQ-ZF2X_WA66EjYPmxJRn-w8aSOiS9e8tKYY,20
importlib_resources/tests/data02/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
-importlib_resources/tests/data02/__pycache__/__init__.cpython-310.pyc,,
+importlib_resources/tests/data02/__pycache__/__init__.cpython-311.pyc,,
importlib_resources/tests/data02/one/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
-importlib_resources/tests/data02/one/__pycache__/__init__.cpython-310.pyc,,
+importlib_resources/tests/data02/one/__pycache__/__init__.cpython-311.pyc,,
importlib_resources/tests/data02/one/resource1.txt,sha256=10flKac7c-XXFzJ3t-AB5MJjlBy__dSZvPE_dOm2q6U,13
importlib_resources/tests/data02/two/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
-importlib_resources/tests/data02/two/__pycache__/__init__.cpython-310.pyc,,
+importlib_resources/tests/data02/two/__pycache__/__init__.cpython-311.pyc,,
importlib_resources/tests/data02/two/resource2.txt,sha256=lt2jbN3TMn9QiFKM832X39bU_62UptDdUkoYzkvEbl0,13
importlib_resources/tests/namespacedata01/binary.file,sha256=BU7ewdAhH2JP7Qy8qdT5QAsOSRxDdCryxbCr6_DJkNg,4
importlib_resources/tests/namespacedata01/utf-16.file,sha256=t5q9qhxX0rYqItBOM8D3ylwG-RHrnOYteTLtQr6sF7g,44
@@ -68,8 +68,8 @@ importlib_resources/tests/test_resource.py,sha256=DqfLNc9kaN5obqxU8kn0sRUWMf9Myg
importlib_resources/tests/update-zips.py,sha256=x3iJVqWnMM5qp4Oob2Pl3o6Yi03sUjEv_5Wf-UCg3ps,1415
importlib_resources/tests/util.py,sha256=X1j-0C96pu3_tmtJuLhzfBfcfMenOphDLkxtCt5j7t4,5309
importlib_resources/tests/zipdata01/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
-importlib_resources/tests/zipdata01/__pycache__/__init__.cpython-310.pyc,,
+importlib_resources/tests/zipdata01/__pycache__/__init__.cpython-311.pyc,,
importlib_resources/tests/zipdata01/ziptestdata.zip,sha256=z5Of4dsv3T0t-46B0MsVhxlhsPGMz28aUhJDWpj3_oY,876
importlib_resources/tests/zipdata02/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
-importlib_resources/tests/zipdata02/__pycache__/__init__.cpython-310.pyc,,
+importlib_resources/tests/zipdata02/__pycache__/__init__.cpython-311.pyc,,
importlib_resources/tests/zipdata02/ziptestdata.zip,sha256=ydI-_j-xgQ7tDxqBp9cjOqXBGxUp6ZBbwVJu6Xj-nrY,698
diff --git a/pkg_resources/_vendor/jaraco.context-4.1.1.dist-info/RECORD b/pkg_resources/_vendor/jaraco.context-4.1.1.dist-info/RECORD
deleted file mode 100644
index f40d48c7..00000000
--- a/pkg_resources/_vendor/jaraco.context-4.1.1.dist-info/RECORD
+++ /dev/null
@@ -1,8 +0,0 @@
-jaraco.context-4.1.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
-jaraco.context-4.1.1.dist-info/LICENSE,sha256=2z8CRrH5J48VhFuZ_sR4uLUG63ZIeZNyL4xuJUKF-vg,1050
-jaraco.context-4.1.1.dist-info/METADATA,sha256=bvqDGCk6Z7TkohUqr5XZm19SbF9mVxrtXjN6uF_BAMQ,2031
-jaraco.context-4.1.1.dist-info/RECORD,,
-jaraco.context-4.1.1.dist-info/WHEEL,sha256=ewwEueio1C2XeHTvT17n8dZUJgOvyCWCt0WVNLClP9o,92
-jaraco.context-4.1.1.dist-info/top_level.txt,sha256=0JnN3LfXH4LIRfXL-QFOGCJzQWZO3ELx4R1d_louoQM,7
-jaraco/__pycache__/context.cpython-310.pyc,,
-jaraco/context.py,sha256=7X1tpCLc5EN45iWGzGcsH0Unx62REIkvtRvglj0SiUA,5420
diff --git a/pkg_resources/_vendor/jaraco.context-4.1.1.dist-info/INSTALLER b/pkg_resources/_vendor/jaraco.context-4.2.0.dist-info/INSTALLER
index a1b589e3..a1b589e3 100644
--- a/pkg_resources/_vendor/jaraco.context-4.1.1.dist-info/INSTALLER
+++ b/pkg_resources/_vendor/jaraco.context-4.2.0.dist-info/INSTALLER
diff --git a/pkg_resources/_vendor/jaraco.context-4.1.1.dist-info/LICENSE b/pkg_resources/_vendor/jaraco.context-4.2.0.dist-info/LICENSE
index 353924be..353924be 100644
--- a/pkg_resources/_vendor/jaraco.context-4.1.1.dist-info/LICENSE
+++ b/pkg_resources/_vendor/jaraco.context-4.2.0.dist-info/LICENSE
diff --git a/setuptools/_vendor/jaraco.context-4.1.1.dist-info/METADATA b/pkg_resources/_vendor/jaraco.context-4.2.0.dist-info/METADATA
index 908711b7..34d372e7 100644
--- a/setuptools/_vendor/jaraco.context-4.1.1.dist-info/METADATA
+++ b/pkg_resources/_vendor/jaraco.context-4.2.0.dist-info/METADATA
@@ -1,39 +1,37 @@
Metadata-Version: 2.1
Name: jaraco.context
-Version: 4.1.1
+Version: 4.2.0
Summary: Context managers by jaraco
Home-page: https://github.com/jaraco/jaraco.context
Author: Jason R. Coombs
Author-email: jaraco@jaraco.com
-License: UNKNOWN
-Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
-Requires-Python: >=3.6
+Requires-Python: >=3.7
License-File: LICENSE
Provides-Extra: docs
-Requires-Dist: sphinx ; extra == 'docs'
-Requires-Dist: jaraco.packaging (>=8.2) ; extra == 'docs'
+Requires-Dist: sphinx (>=3.5) ; extra == 'docs'
+Requires-Dist: jaraco.packaging (>=9) ; extra == 'docs'
Requires-Dist: rst.linker (>=1.9) ; extra == 'docs'
+Requires-Dist: furo ; extra == 'docs'
+Requires-Dist: jaraco.tidelift (>=1.4) ; extra == 'docs'
Provides-Extra: testing
Requires-Dist: pytest (>=6) ; extra == 'testing'
Requires-Dist: pytest-checkdocs (>=2.4) ; extra == 'testing'
Requires-Dist: pytest-flake8 ; extra == 'testing'
+Requires-Dist: flake8 (<5) ; extra == 'testing'
Requires-Dist: pytest-cov ; extra == 'testing'
-Requires-Dist: pytest-enabler (>=1.0.1) ; extra == 'testing'
+Requires-Dist: pytest-enabler (>=1.3) ; extra == 'testing'
Requires-Dist: pytest-black (>=0.3.7) ; (platform_python_implementation != "PyPy") and extra == 'testing'
-Requires-Dist: pytest-mypy ; (platform_python_implementation != "PyPy") and extra == 'testing'
+Requires-Dist: pytest-mypy (>=0.9.1) ; (platform_python_implementation != "PyPy") and extra == 'testing'
.. image:: https://img.shields.io/pypi/v/jaraco.context.svg
- :target: `PyPI link`_
+ :target: https://pypi.org/project/jaraco.context
.. image:: https://img.shields.io/pypi/pyversions/jaraco.context.svg
- :target: `PyPI link`_
-
-.. _PyPI link: https://pypi.org/project/jaraco.context
.. image:: https://github.com/jaraco/jaraco.context/workflows/tests/badge.svg
:target: https://github.com/jaraco/jaraco.context/actions?query=workflow%3A%22tests%22
@@ -46,7 +44,24 @@ Requires-Dist: pytest-mypy ; (platform_python_implementation != "PyPy") and extr
.. image:: https://readthedocs.org/projects/jaracocontext/badge/?version=latest
:target: https://jaracocontext.readthedocs.io/en/latest/?badge=latest
-.. image:: https://img.shields.io/badge/skeleton-2021-informational
+.. image:: https://img.shields.io/badge/skeleton-2022-informational
:target: https://blog.jaraco.com/skeleton
+.. image:: https://tidelift.com/badges/package/pypi/jaraco.context
+ :target: https://tidelift.com/subscription/pkg/pypi-jaraco.context?utm_source=pypi-jaraco.context&utm_medium=readme
+
+For Enterprise
+==============
+
+Available as part of the Tidelift Subscription.
+
+This project and the maintainers of thousands of other packages are working with Tidelift to deliver one enterprise subscription that covers all of the open source you use.
+
+`Learn more <https://tidelift.com/subscription/pkg/pypi-jaraco.context?utm_source=pypi-jaraco.context&utm_medium=referral&utm_campaign=github>`_.
+
+Security Contact
+================
+To report a security vulnerability, please use the
+`Tidelift security contact <https://tidelift.com/security>`_.
+Tidelift will coordinate the fix and disclosure.
diff --git a/pkg_resources/_vendor/jaraco.context-4.2.0.dist-info/RECORD b/pkg_resources/_vendor/jaraco.context-4.2.0.dist-info/RECORD
new file mode 100644
index 00000000..a34ec80e
--- /dev/null
+++ b/pkg_resources/_vendor/jaraco.context-4.2.0.dist-info/RECORD
@@ -0,0 +1,8 @@
+jaraco.context-4.2.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
+jaraco.context-4.2.0.dist-info/LICENSE,sha256=2z8CRrH5J48VhFuZ_sR4uLUG63ZIeZNyL4xuJUKF-vg,1050
+jaraco.context-4.2.0.dist-info/METADATA,sha256=6gWxpGoBWTzl4e8J1HisvNsL79YB4t1DG7ziQj-0k9Y,2883
+jaraco.context-4.2.0.dist-info/RECORD,,
+jaraco.context-4.2.0.dist-info/WHEEL,sha256=2wepM1nk4DS4eFpYrW1TTqPcoGNfHhhO_i5m4cOimbo,92
+jaraco.context-4.2.0.dist-info/top_level.txt,sha256=0JnN3LfXH4LIRfXL-QFOGCJzQWZO3ELx4R1d_louoQM,7
+jaraco/__pycache__/context.cpython-311.pyc,,
+jaraco/context.py,sha256=NvdB7ArVCDrhtexOnOwSv4ScDuueGbf9LRiOSCqPn6Y,6488
diff --git a/pkg_resources/_vendor/jaraco.context-4.1.1.dist-info/WHEEL b/pkg_resources/_vendor/jaraco.context-4.2.0.dist-info/WHEEL
index 5bad85fd..57e3d840 100644
--- a/pkg_resources/_vendor/jaraco.context-4.1.1.dist-info/WHEEL
+++ b/pkg_resources/_vendor/jaraco.context-4.2.0.dist-info/WHEEL
@@ -1,5 +1,5 @@
Wheel-Version: 1.0
-Generator: bdist_wheel (0.37.0)
+Generator: bdist_wheel (0.38.4)
Root-Is-Purelib: true
Tag: py3-none-any
diff --git a/pkg_resources/_vendor/jaraco.context-4.1.1.dist-info/top_level.txt b/pkg_resources/_vendor/jaraco.context-4.2.0.dist-info/top_level.txt
index f6205a5f..f6205a5f 100644
--- a/pkg_resources/_vendor/jaraco.context-4.1.1.dist-info/top_level.txt
+++ b/pkg_resources/_vendor/jaraco.context-4.2.0.dist-info/top_level.txt
diff --git a/pkg_resources/_vendor/jaraco.functools-3.5.0.dist-info/RECORD b/pkg_resources/_vendor/jaraco.functools-3.5.0.dist-info/RECORD
deleted file mode 100644
index fbda3d1f..00000000
--- a/pkg_resources/_vendor/jaraco.functools-3.5.0.dist-info/RECORD
+++ /dev/null
@@ -1,8 +0,0 @@
-jaraco.functools-3.5.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
-jaraco.functools-3.5.0.dist-info/LICENSE,sha256=2z8CRrH5J48VhFuZ_sR4uLUG63ZIeZNyL4xuJUKF-vg,1050
-jaraco.functools-3.5.0.dist-info/METADATA,sha256=cE9C7u9bo_GjLAuw4nML67a25kUaPDiHn4j03lG4jd0,2276
-jaraco.functools-3.5.0.dist-info/RECORD,,
-jaraco.functools-3.5.0.dist-info/WHEEL,sha256=ewwEueio1C2XeHTvT17n8dZUJgOvyCWCt0WVNLClP9o,92
-jaraco.functools-3.5.0.dist-info/top_level.txt,sha256=0JnN3LfXH4LIRfXL-QFOGCJzQWZO3ELx4R1d_louoQM,7
-jaraco/__pycache__/functools.cpython-310.pyc,,
-jaraco/functools.py,sha256=PtEHbXZstgVJrwje4GvJOsz5pEbgslOcgEn2EJNpr2c,13494
diff --git a/pkg_resources/_vendor/jaraco.functools-3.5.0.dist-info/INSTALLER b/pkg_resources/_vendor/jaraco.functools-3.5.2.dist-info/INSTALLER
index a1b589e3..a1b589e3 100644
--- a/pkg_resources/_vendor/jaraco.functools-3.5.0.dist-info/INSTALLER
+++ b/pkg_resources/_vendor/jaraco.functools-3.5.2.dist-info/INSTALLER
diff --git a/pkg_resources/_vendor/jaraco.functools-3.5.0.dist-info/LICENSE b/pkg_resources/_vendor/jaraco.functools-3.5.2.dist-info/LICENSE
index 353924be..353924be 100644
--- a/pkg_resources/_vendor/jaraco.functools-3.5.0.dist-info/LICENSE
+++ b/pkg_resources/_vendor/jaraco.functools-3.5.2.dist-info/LICENSE
diff --git a/pkg_resources/_vendor/jaraco.functools-3.5.0.dist-info/METADATA b/pkg_resources/_vendor/jaraco.functools-3.5.2.dist-info/METADATA
index 12dfbdd0..fa8f0211 100644
--- a/pkg_resources/_vendor/jaraco.functools-3.5.0.dist-info/METADATA
+++ b/pkg_resources/_vendor/jaraco.functools-3.5.2.dist-info/METADATA
@@ -1,12 +1,10 @@
Metadata-Version: 2.1
Name: jaraco.functools
-Version: 3.5.0
+Version: 3.5.2
Summary: Functools like those found in stdlib
Home-page: https://github.com/jaraco/jaraco.functools
Author: Jason R. Coombs
Author-email: jaraco@jaraco.com
-License: UNKNOWN
-Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
@@ -16,18 +14,20 @@ Requires-Python: >=3.7
License-File: LICENSE
Requires-Dist: more-itertools
Provides-Extra: docs
-Requires-Dist: sphinx ; extra == 'docs'
-Requires-Dist: jaraco.packaging (>=8.2) ; extra == 'docs'
+Requires-Dist: sphinx (>=3.5) ; extra == 'docs'
+Requires-Dist: jaraco.packaging (>=9) ; extra == 'docs'
Requires-Dist: rst.linker (>=1.9) ; extra == 'docs'
+Requires-Dist: jaraco.tidelift (>=1.4) ; extra == 'docs'
Provides-Extra: testing
Requires-Dist: pytest (>=6) ; extra == 'testing'
Requires-Dist: pytest-checkdocs (>=2.4) ; extra == 'testing'
Requires-Dist: pytest-flake8 ; extra == 'testing'
+Requires-Dist: flake8 (<5) ; extra == 'testing'
Requires-Dist: pytest-cov ; extra == 'testing'
-Requires-Dist: pytest-enabler (>=1.0.1) ; extra == 'testing'
+Requires-Dist: pytest-enabler (>=1.3) ; extra == 'testing'
Requires-Dist: jaraco.classes ; extra == 'testing'
Requires-Dist: pytest-black (>=0.3.7) ; (platform_python_implementation != "PyPy") and extra == 'testing'
-Requires-Dist: pytest-mypy ; (platform_python_implementation != "PyPy") and extra == 'testing'
+Requires-Dist: pytest-mypy (>=0.9.1) ; (platform_python_implementation != "PyPy") and extra == 'testing'
.. image:: https://img.shields.io/pypi/v/jaraco.functools.svg
:target: `PyPI link`_
@@ -50,9 +50,26 @@ Requires-Dist: pytest-mypy ; (platform_python_implementation != "PyPy") and extr
.. image:: https://readthedocs.org/projects/jaracofunctools/badge/?version=latest
:target: https://jaracofunctools.readthedocs.io/en/latest/?badge=latest
-.. image:: https://img.shields.io/badge/skeleton-2021-informational
+.. image:: https://img.shields.io/badge/skeleton-2022-informational
:target: https://blog.jaraco.com/skeleton
+.. image:: https://tidelift.com/badges/package/pypi/jaraco.functools
+ :target: https://tidelift.com/subscription/pkg/pypi-jaraco.functools?utm_source=pypi-jaraco.functools&utm_medium=readme
+
Additional functools in the spirit of stdlib's functools.
+For Enterprise
+==============
+
+Available as part of the Tidelift Subscription.
+
+This project and the maintainers of thousands of other packages are working with Tidelift to deliver one enterprise subscription that covers all of the open source you use.
+
+`Learn more <https://tidelift.com/subscription/pkg/pypi-jaraco.functools?utm_source=pypi-jaraco.functools&utm_medium=referral&utm_campaign=github>`_.
+
+Security Contact
+================
+To report a security vulnerability, please use the
+`Tidelift security contact <https://tidelift.com/security>`_.
+Tidelift will coordinate the fix and disclosure.
diff --git a/pkg_resources/_vendor/jaraco.functools-3.5.2.dist-info/RECORD b/pkg_resources/_vendor/jaraco.functools-3.5.2.dist-info/RECORD
new file mode 100644
index 00000000..127b8267
--- /dev/null
+++ b/pkg_resources/_vendor/jaraco.functools-3.5.2.dist-info/RECORD
@@ -0,0 +1,8 @@
+jaraco.functools-3.5.2.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
+jaraco.functools-3.5.2.dist-info/LICENSE,sha256=2z8CRrH5J48VhFuZ_sR4uLUG63ZIeZNyL4xuJUKF-vg,1050
+jaraco.functools-3.5.2.dist-info/METADATA,sha256=ZIViwS4ZOmaWwA5ArwZ_xXQGR9WDnUSzx-0MO5kGPi8,3154
+jaraco.functools-3.5.2.dist-info/RECORD,,
+jaraco.functools-3.5.2.dist-info/WHEEL,sha256=G16H4A3IeoQmnOrYV4ueZGKSjhipXx8zc8nu9FGlvMA,92
+jaraco.functools-3.5.2.dist-info/top_level.txt,sha256=0JnN3LfXH4LIRfXL-QFOGCJzQWZO3ELx4R1d_louoQM,7
+jaraco/__pycache__/functools.cpython-311.pyc,,
+jaraco/functools.py,sha256=PtEHbXZstgVJrwje4GvJOsz5pEbgslOcgEn2EJNpr2c,13494
diff --git a/pkg_resources/_vendor/jaraco.functools-3.5.0.dist-info/WHEEL b/pkg_resources/_vendor/jaraco.functools-3.5.2.dist-info/WHEEL
index 5bad85fd..becc9a66 100644
--- a/pkg_resources/_vendor/jaraco.functools-3.5.0.dist-info/WHEEL
+++ b/pkg_resources/_vendor/jaraco.functools-3.5.2.dist-info/WHEEL
@@ -1,5 +1,5 @@
Wheel-Version: 1.0
-Generator: bdist_wheel (0.37.0)
+Generator: bdist_wheel (0.37.1)
Root-Is-Purelib: true
Tag: py3-none-any
diff --git a/pkg_resources/_vendor/jaraco.functools-3.5.0.dist-info/top_level.txt b/pkg_resources/_vendor/jaraco.functools-3.5.2.dist-info/top_level.txt
index f6205a5f..f6205a5f 100644
--- a/pkg_resources/_vendor/jaraco.functools-3.5.0.dist-info/top_level.txt
+++ b/pkg_resources/_vendor/jaraco.functools-3.5.2.dist-info/top_level.txt
diff --git a/pkg_resources/_vendor/jaraco.text-3.7.0.dist-info/RECORD b/pkg_resources/_vendor/jaraco.text-3.7.0.dist-info/RECORD
index 916ad7d3..dd471b07 100644
--- a/pkg_resources/_vendor/jaraco.text-3.7.0.dist-info/RECORD
+++ b/pkg_resources/_vendor/jaraco.text-3.7.0.dist-info/RECORD
@@ -7,4 +7,4 @@ jaraco.text-3.7.0.dist-info/WHEEL,sha256=G16H4A3IeoQmnOrYV4ueZGKSjhipXx8zc8nu9FG
jaraco.text-3.7.0.dist-info/top_level.txt,sha256=0JnN3LfXH4LIRfXL-QFOGCJzQWZO3ELx4R1d_louoQM,7
jaraco/text/Lorem ipsum.txt,sha256=N_7c_79zxOufBY9HZ3yzMgOkNv-TkOTTio4BydrSjgs,1335
jaraco/text/__init__.py,sha256=I56MW2ZFwPrYXIxzqxMBe2A1t-T4uZBgEgAKe9-JoqM,15538
-jaraco/text/__pycache__/__init__.cpython-310.pyc,,
+jaraco/text/__pycache__/__init__.cpython-311.pyc,,
diff --git a/pkg_resources/_vendor/jaraco/context.py b/pkg_resources/_vendor/jaraco/context.py
index 87a4e3dc..818f16f3 100644
--- a/pkg_resources/_vendor/jaraco/context.py
+++ b/pkg_resources/_vendor/jaraco/context.py
@@ -211,3 +211,43 @@ class suppress(contextlib.suppress, contextlib.ContextDecorator):
... {}['']
>>> key_error()
"""
+
+
+class on_interrupt(contextlib.ContextDecorator):
+ """
+ Replace a KeyboardInterrupt with SystemExit(1)
+
+ >>> def do_interrupt():
+ ... raise KeyboardInterrupt()
+ >>> on_interrupt('error')(do_interrupt)()
+ Traceback (most recent call last):
+ ...
+ SystemExit: 1
+ >>> on_interrupt('error', code=255)(do_interrupt)()
+ Traceback (most recent call last):
+ ...
+ SystemExit: 255
+ >>> on_interrupt('suppress')(do_interrupt)()
+ >>> with __import__('pytest').raises(KeyboardInterrupt):
+ ... on_interrupt('ignore')(do_interrupt)()
+ """
+
+ def __init__(
+ self,
+ action='error',
+ # py3.7 compat
+ # /,
+ code=1,
+ ):
+ self.action = action
+ self.code = code
+
+ def __enter__(self):
+ return self
+
+ def __exit__(self, exctype, excinst, exctb):
+ if exctype is not KeyboardInterrupt or self.action == 'ignore':
+ return
+ elif self.action == 'error':
+ raise SystemExit(self.code) from excinst
+ return self.action == 'suppress'
diff --git a/pkg_resources/_vendor/more_itertools-8.12.0.dist-info/RECORD b/pkg_resources/_vendor/more_itertools-8.12.0.dist-info/RECORD
deleted file mode 100644
index 44847291..00000000
--- a/pkg_resources/_vendor/more_itertools-8.12.0.dist-info/RECORD
+++ /dev/null
@@ -1,16 +0,0 @@
-more_itertools-8.12.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
-more_itertools-8.12.0.dist-info/LICENSE,sha256=CfHIyelBrz5YTVlkHqm4fYPAyw_QB-te85Gn4mQ8GkY,1053
-more_itertools-8.12.0.dist-info/METADATA,sha256=QCCEcisEPr7iSfBIKCukhP-FbG9ehMK8tDIliZ3FBDc,39405
-more_itertools-8.12.0.dist-info/RECORD,,
-more_itertools-8.12.0.dist-info/WHEEL,sha256=ewwEueio1C2XeHTvT17n8dZUJgOvyCWCt0WVNLClP9o,92
-more_itertools-8.12.0.dist-info/top_level.txt,sha256=fAuqRXu9LPhxdB9ujJowcFOu1rZ8wzSpOW9_jlKis6M,15
-more_itertools/__init__.py,sha256=ZQYu_9H6stSG7viUgT32TFqslqcZwq82kWRZooKiI8Y,83
-more_itertools/__init__.pyi,sha256=5B3eTzON1BBuOLob1vCflyEb2lSd6usXQQ-Cv-hXkeA,43
-more_itertools/__pycache__/__init__.cpython-310.pyc,,
-more_itertools/__pycache__/more.cpython-310.pyc,,
-more_itertools/__pycache__/recipes.cpython-310.pyc,,
-more_itertools/more.py,sha256=jSrvV9BK-XKa4x7MPPp9yWYRDtRgR5h7yryEqHMU4mg,132578
-more_itertools/more.pyi,sha256=kWOkRKx0V8ZwC1D2j0c0DUfy56dazzpmRcm5ZuY_aqo,20006
-more_itertools/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
-more_itertools/recipes.py,sha256=N6aCDwoIPvE-aiqpGU-nbFwqiM3X8MKRcxBM84naW88,18410
-more_itertools/recipes.pyi,sha256=Lx3vb0p_vY7rF8MQuguvOcVaS9qd1WRL8JO_qVo7hiY,3925
diff --git a/pkg_resources/_vendor/more_itertools-8.12.0.dist-info/top_level.txt b/pkg_resources/_vendor/more_itertools-8.12.0.dist-info/top_level.txt
deleted file mode 100644
index a5035bef..00000000
--- a/pkg_resources/_vendor/more_itertools-8.12.0.dist-info/top_level.txt
+++ /dev/null
@@ -1 +0,0 @@
-more_itertools
diff --git a/pkg_resources/_vendor/more_itertools-8.12.0.dist-info/INSTALLER b/pkg_resources/_vendor/more_itertools-9.0.0.dist-info/INSTALLER
index a1b589e3..a1b589e3 100644
--- a/pkg_resources/_vendor/more_itertools-8.12.0.dist-info/INSTALLER
+++ b/pkg_resources/_vendor/more_itertools-9.0.0.dist-info/INSTALLER
diff --git a/pkg_resources/_vendor/more_itertools-8.12.0.dist-info/LICENSE b/pkg_resources/_vendor/more_itertools-9.0.0.dist-info/LICENSE
index 0a523bec..0a523bec 100644
--- a/pkg_resources/_vendor/more_itertools-8.12.0.dist-info/LICENSE
+++ b/pkg_resources/_vendor/more_itertools-9.0.0.dist-info/LICENSE
diff --git a/pkg_resources/_vendor/more_itertools-8.12.0.dist-info/METADATA b/pkg_resources/_vendor/more_itertools-9.0.0.dist-info/METADATA
index 9efacdd7..bd988923 100644
--- a/pkg_resources/_vendor/more_itertools-8.12.0.dist-info/METADATA
+++ b/pkg_resources/_vendor/more_itertools-9.0.0.dist-info/METADATA
@@ -1,29 +1,26 @@
Metadata-Version: 2.1
Name: more-itertools
-Version: 8.12.0
+Version: 9.0.0
Summary: More routines for operating on iterables, beyond itertools
-Home-page: https://github.com/more-itertools/more-itertools
-Author: Erik Rose
-Author-email: erikrose@grinchcentral.com
-License: MIT
-Keywords: itertools,iterator,iteration,filter,peek,peekable,collate,chunk,chunked
-Platform: UNKNOWN
+Keywords: itertools,iterator,iteration,filter,peek,peekable,chunk,chunked
+Author-email: Erik Rose <erikrose@grinchcentral.com>
+Requires-Python: >=3.7
+Description-Content-Type: text/x-rst
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Natural Language :: English
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
+Classifier: Programming Language :: Python :: 3.10
+Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Software Development :: Libraries
-Requires-Python: >=3.5
-Description-Content-Type: text/x-rst
-License-File: LICENSE
+Project-URL: Homepage, https://github.com/more-itertools/more-itertools
==============
More Itertools
@@ -40,7 +37,9 @@ Python iterables.
+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Grouping | `chunked <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.chunked>`_, |
| | `ichunked <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.ichunked>`_, |
+| | `chunked_even <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.chunked_even>`_, |
| | `sliced <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.sliced>`_, |
+| | `constrained_batches <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.constrained_batches>`_, |
| | `distribute <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.distribute>`_, |
| | `divide <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.divide>`_, |
| | `split_at <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.split_at>`_, |
@@ -50,6 +49,7 @@ Python iterables.
| | `split_when <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.split_when>`_, |
| | `bucket <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.bucket>`_, |
| | `unzip <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.unzip>`_, |
+| | `batched <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.batched>`_, |
| | `grouper <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.grouper>`_, |
| | `partition <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.partition>`_ |
+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
@@ -64,11 +64,13 @@ Python iterables.
| | `windowed_complete <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.windowed_complete>`_, |
| | `pairwise <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.pairwise>`_, |
| | `triplewise <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.triplewise>`_, |
-| | `sliding_window <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.sliding_window>`_ |
+| | `sliding_window <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.sliding_window>`_, |
+| | `subslices <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.subslices>`_ |
+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Augmenting | `count_cycle <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.count_cycle>`_, |
| | `intersperse <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.intersperse>`_, |
| | `padded <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.padded>`_, |
+| | `repeat_each <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.repeat_each>`_, |
| | `mark_ends <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.mark_ends>`_, |
| | `repeat_last <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.repeat_last>`_, |
| | `adjacent <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.adjacent>`_, |
@@ -103,7 +105,8 @@ Python iterables.
| | `all_unique <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.all_unique>`_, |
| | `minmax <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.minmax>`_, |
| | `first_true <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.first_true>`_, |
-| | `quantify <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.quantify>`_ |
+| | `quantify <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.quantify>`_, |
+| | `iequals <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.iequals>`_ |
+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Selecting | `islice_extended <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.islice_extended>`_, |
| | `first <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.first>`_, |
@@ -125,7 +128,8 @@ Python iterables.
| | `unique_everseen <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertoo ls.unique_everseen>`_, |
| | `unique_justseen <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.unique_justseen>`_, |
| | `duplicates_everseen <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.duplicates_everseen>`_, |
-| | `duplicates_justseen <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.duplicates_justseen>`_ |
+| | `duplicates_justseen <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.duplicates_justseen>`_, |
+| | `longest_common_prefix <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.longest_common_prefix>`_ |
+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Combinatorics | `distinct_permutations <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.distinct_permutations>`_, |
| | `distinct_combinations <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.distinct_combinations>`_, |
@@ -161,9 +165,12 @@ Python iterables.
| | `make_decorator <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.make_decorator>`_, |
| | `SequenceView <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.SequenceView>`_, |
| | `time_limited <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.time_limited>`_, |
+| | `map_if <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.map_if>`_, |
| | `consume <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.consume>`_, |
| | `tabulate <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.tabulate>`_, |
| | `repeatfunc <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.repeatfunc>`_ |
+| | `polynomial_from_roots <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.polynomial_from_roots>`_ |
+| | `sieve <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.sieve>`_ |
+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
@@ -230,292 +237,5 @@ repository. Thanks for contributing!
Version History
===============
-
- :noindex:
-
-8.12.0
-------
-
-* Bug fixes
- * Some documentation issues were fixed (thanks to Masynchin, spookylukey, astrojuanlu, and stephengmatthews)
- * Python 3.5 support was temporarily restored (thanks to mattbonnell)
-
-8.11.0
-------
-
-* New functions
- * The before_and_after, sliding_window, and triplewise recipes from the Python 3.10 docs were added
- * duplicates_everseen and duplicates_justseen (thanks to OrBin and DavidPratt512)
- * minmax (thanks to Ricocotam, MSeifert04, and ruancomelli)
- * strictly_n (thanks to hwalinga and NotWearingPants)
- * unique_in_window
-
-* Changes to existing functions
- * groupby_transform had its type stub improved (thanks to mjk4 and ruancomelli)
- * is_sorted now accepts a ``strict`` parameter (thanks to Dutcho and ruancomelli)
- * zip_broadcast was updated to fix a bug (thanks to kalekundert)
-
-8.10.0
-------
-
-* Changes to existing functions
- * The type stub for iter_except was improved (thanks to MarcinKonowalczyk)
-
-* Other changes:
- * Type stubs now ship with the source release (thanks to saaketp)
- * The Sphinx docs were improved (thanks to MarcinKonowalczyk)
-
-8.9.0
------
-
-* New functions
- * interleave_evenly (thanks to mbugert)
- * repeat_each (thanks to FinalSh4re)
- * chunked_even (thanks to valtron)
- * map_if (thanks to sassbalint)
- * zip_broadcast (thanks to kalekundert)
-
-* Changes to existing functions
- * The type stub for chunked was improved (thanks to PhilMacKay)
- * The type stubs for zip_equal and `zip_offset` were improved (thanks to maffoo)
- * Building Sphinx docs locally was improved (thanks to MarcinKonowalczyk)
-
-8.8.0
------
-
-* New functions
- * countable (thanks to krzysieq)
-
-* Changes to existing functions
- * split_before was updated to handle empy collections (thanks to TiunovNN)
- * unique_everseen got a performance boost (thanks to Numerlor)
- * The type hint for value_chain was corrected (thanks to vr2262)
-
-8.7.0
------
-
-* New functions
- * convolve (from the Python itertools docs)
- * product_index, combination_index, and permutation_index (thanks to N8Brooks)
- * value_chain (thanks to jenstroeger)
-
-* Changes to existing functions
- * distinct_combinations now uses a non-recursive algorithm (thanks to knutdrand)
- * pad_none is now the preferred name for padnone, though the latter remains available.
- * pairwise will now use the Python standard library implementation on Python 3.10+
- * sort_together now accepts a ``key`` argument (thanks to brianmaissy)
- * seekable now has a ``peek`` method, and can indicate whether the iterator it's wrapping is exhausted (thanks to gsakkis)
- * time_limited can now indicate whether its iterator has expired (thanks to roysmith)
- * The implementation of unique_everseen was improved (thanks to plammens)
-
-* Other changes:
- * Various documentation updates (thanks to cthoyt, Evantm, and cyphase)
-
-8.6.0
------
-
-* New itertools
- * all_unique (thanks to brianmaissy)
- * nth_product and nth_permutation (thanks to N8Brooks)
-
-* Changes to existing itertools
- * chunked and sliced now accept a ``strict`` parameter (thanks to shlomif and jtwool)
-
-* Other changes
- * Python 3.5 has reached its end of life and is no longer supported.
- * Python 3.9 is officially supported.
- * Various documentation fixes (thanks to timgates42)
-
-8.5.0
------
-
-* New itertools
- * windowed_complete (thanks to MarcinKonowalczyk)
-
-* Changes to existing itertools:
- * The is_sorted implementation was improved (thanks to cool-RR)
- * The groupby_transform now accepts a ``reducefunc`` parameter.
- * The last implementation was improved (thanks to brianmaissy)
-
-* Other changes
- * Various documentation fixes (thanks to craigrosie, samuelstjean, PiCT0)
- * The tests for distinct_combinations were improved (thanks to Minabsapi)
- * Automated tests now run on GitHub Actions. All commits now check:
- * That unit tests pass
- * That the examples in docstrings work
- * That test coverage remains high (using `coverage`)
- * For linting errors (using `flake8`)
- * For consistent style (using `black`)
- * That the type stubs work (using `mypy`)
- * That the docs build correctly (using `sphinx`)
- * That packages build correctly (using `twine`)
-
-8.4.0
------
-
-* New itertools
- * mark_ends (thanks to kalekundert)
- * is_sorted
-
-* Changes to existing itertools:
- * islice_extended can now be used with real slices (thanks to cool-RR)
- * The implementations for filter_except and map_except were improved (thanks to SergBobrovsky)
-
-* Other changes
- * Automated tests now enforce code style (using `black <https://github.com/psf/black>`__)
- * The various signatures of islice_extended and numeric_range now appear in the docs (thanks to dsfulf)
- * The test configuration for mypy was updated (thanks to blueyed)
-
-
-8.3.0
------
-
-* New itertools
- * zip_equal (thanks to frankier and alexmojaki)
-
-* Changes to existing itertools:
- * split_at, split_before, split_after, and split_when all got a ``maxsplit`` paramter (thanks to jferard and ilai-deutel)
- * split_at now accepts a ``keep_separator`` parameter (thanks to jferard)
- * distinct_permutations can now generate ``r``-length permutations (thanks to SergBobrovsky and ilai-deutel)
- * The windowed implementation was improved (thanks to SergBobrovsky)
- * The spy implementation was improved (thanks to has2k1)
-
-* Other changes
- * Type stubs are now tested with ``stubtest`` (thanks to ilai-deutel)
- * Tests now run with ``python -m unittest`` instead of ``python setup.py test`` (thanks to jdufresne)
-
-8.2.0
------
-
-* Bug fixes
- * The .pyi files for typing were updated. (thanks to blueyed and ilai-deutel)
-
-* Changes to existing itertools:
- * numeric_range now behaves more like the built-in range. (thanks to jferard)
- * bucket now allows for enumerating keys. (thanks to alexchandel)
- * sliced now should now work for numpy arrays. (thanks to sswingle)
- * seekable now has a ``maxlen`` parameter.
-
-8.1.0
------
-
-* Bug fixes
- * partition works with ``pred=None`` again. (thanks to MSeifert04)
-
-* New itertools
- * sample (thanks to tommyod)
- * nth_or_last (thanks to d-ryzhikov)
-
-* Changes to existing itertools:
- * The implementation for divide was improved. (thanks to jferard)
-
-8.0.2
------
-
-* Bug fixes
- * The type stub files are now part of the wheel distribution (thanks to keisheiled)
-
-8.0.1
------
-
-* Bug fixes
- * The type stub files now work for functions imported from the
- root package (thanks to keisheiled)
-
-8.0.0
------
-
-* New itertools and other additions
- * This library now ships type hints for use with mypy.
- (thanks to ilai-deutel for the implementation, and to gabbard and fmagin for assistance)
- * split_when (thanks to jferard)
- * repeat_last (thanks to d-ryzhikov)
-
-* Changes to existing itertools:
- * The implementation for set_partitions was improved. (thanks to jferard)
- * partition was optimized for expensive predicates. (thanks to stevecj)
- * unique_everseen and groupby_transform were re-factored. (thanks to SergBobrovsky)
- * The implementation for difference was improved. (thanks to Jabbey92)
-
-* Other changes
- * Python 3.4 has reached its end of life and is no longer supported.
- * Python 3.8 is officially supported. (thanks to jdufresne)
- * The ``collate`` function has been deprecated.
- It raises a ``DeprecationWarning`` if used, and will be removed in a future release.
- * one and only now provide more informative error messages. (thanks to gabbard)
- * Unit tests were moved outside of the main package (thanks to jdufresne)
- * Various documentation fixes (thanks to kriomant, gabbard, jdufresne)
-
-
-7.2.0
------
-
-* New itertools
- * distinct_combinations
- * set_partitions (thanks to kbarrett)
- * filter_except
- * map_except
-
-7.1.0
------
-
-* New itertools
- * ichunked (thanks davebelais and youtux)
- * only (thanks jaraco)
-
-* Changes to existing itertools:
- * numeric_range now supports ranges specified by
- ``datetime.datetime`` and ``datetime.timedelta`` objects (thanks to MSeifert04 for tests).
- * difference now supports an *initial* keyword argument.
-
-
-* Other changes
- * Various documentation fixes (thanks raimon49, pylang)
-
-7.0.0
------
-
-* New itertools:
- * time_limited
- * partitions (thanks to rominf and Saluev)
- * substrings_indexes (thanks to rominf)
-
-* Changes to existing itertools:
- * collapse now treats ``bytes`` objects the same as ``str`` objects. (thanks to Sweenpet)
-
-The major version update is due to the change in the default behavior of
-collapse. It now treats ``bytes`` objects the same as ``str`` objects.
-This aligns its behavior with always_iterable.
-
-.. code-block:: python
-
- >>> from more_itertools import collapse
- >>> iterable = [[1, 2], b'345', [6]]
- >>> print(list(collapse(iterable)))
- [1, 2, b'345', 6]
-
-6.0.0
------
-
-* Major changes:
- * Python 2.7 is no longer supported. The 5.0.0 release will be the last
- version targeting Python 2.7.
- * All future releases will target the active versions of Python 3.
- As of 2019, those are Python 3.4 and above.
- * The ``six`` library is no longer a dependency.
- * The accumulate function is no longer part of this library. You
- may import a better version from the standard ``itertools`` module.
-
-* Changes to existing itertools:
- * The order of the parameters in grouper have changed to match
- the latest recipe in the itertools documentation. Use of the old order
- will be supported in this release, but emit a ``DeprecationWarning``.
- The legacy behavior will be dropped in a future release. (thanks to jaraco)
- * distinct_permutations was improved (thanks to jferard - see also `permutations with unique values <https://stackoverflow.com/questions/6284396/permutations-with-unique-values>`_ at StackOverflow.)
- * An unused parameter was removed from substrings. (thanks to pylang)
-
-* Other changes:
- * The docs for unique_everseen were improved. (thanks to jferard and MSeifert04)
- * Several Python 2-isms were removed. (thanks to jaraco, MSeifert04, and hugovk)
-
+The version history can be found in `documentation <https://more-itertools.readthedocs.io/en/stable/versions.html>`_.
diff --git a/pkg_resources/_vendor/more_itertools-9.0.0.dist-info/RECORD b/pkg_resources/_vendor/more_itertools-9.0.0.dist-info/RECORD
new file mode 100644
index 00000000..4ae7d821
--- /dev/null
+++ b/pkg_resources/_vendor/more_itertools-9.0.0.dist-info/RECORD
@@ -0,0 +1,15 @@
+more_itertools-9.0.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
+more_itertools-9.0.0.dist-info/LICENSE,sha256=CfHIyelBrz5YTVlkHqm4fYPAyw_QB-te85Gn4mQ8GkY,1053
+more_itertools-9.0.0.dist-info/METADATA,sha256=o71Ks93mbZ7709yvfFg09Vxgj-8t2ZZaYIyUprS8GHw,31266
+more_itertools-9.0.0.dist-info/RECORD,,
+more_itertools-9.0.0.dist-info/WHEEL,sha256=4TfKIB_xu-04bc2iKz6_zFt-gEFEEDU_31HGhqzOCE8,81
+more_itertools/__init__.py,sha256=5PNQMpy400s5GB3jcWwzje0RCw8k0bvU9W_C49V0fd0,148
+more_itertools/__init__.pyi,sha256=5B3eTzON1BBuOLob1vCflyEb2lSd6usXQQ-Cv-hXkeA,43
+more_itertools/__pycache__/__init__.cpython-311.pyc,,
+more_itertools/__pycache__/more.cpython-311.pyc,,
+more_itertools/__pycache__/recipes.cpython-311.pyc,,
+more_itertools/more.py,sha256=FmmtkT-j69qILkxEELk5ZRoZK8St1Vg_fOGW0sTFd7g,133336
+more_itertools/more.pyi,sha256=hbf2oqg56wctXwf6yM1B0QLWqsNyDrqtX2znvQRAe3Q,20297
+more_itertools/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+more_itertools/recipes.py,sha256=ZX4-2IfbZKlPIVaDITH2buX_fPuMDe1EVc6e2XSsCz8,22975
+more_itertools/recipes.pyi,sha256=NA6qqcKMbQ2fly9hCyCzMcx46Tn9TLl-9mFnZsRytZM,3851
diff --git a/pkg_resources/_vendor/pyparsing-3.0.8.dist-info/WHEEL b/pkg_resources/_vendor/more_itertools-9.0.0.dist-info/WHEEL
index c727d148..668ba4d0 100644
--- a/pkg_resources/_vendor/pyparsing-3.0.8.dist-info/WHEEL
+++ b/pkg_resources/_vendor/more_itertools-9.0.0.dist-info/WHEEL
@@ -1,4 +1,4 @@
Wheel-Version: 1.0
-Generator: flit 3.6.0
+Generator: flit 3.7.1
Root-Is-Purelib: true
Tag: py3-none-any
diff --git a/pkg_resources/_vendor/more_itertools/__init__.py b/pkg_resources/_vendor/more_itertools/__init__.py
index ea38bef1..557bfc20 100644
--- a/pkg_resources/_vendor/more_itertools/__init__.py
+++ b/pkg_resources/_vendor/more_itertools/__init__.py
@@ -1,4 +1,6 @@
+"""More routines for operating on iterables, beyond itertools"""
+
from .more import * # noqa
from .recipes import * # noqa
-__version__ = '8.12.0'
+__version__ = '9.0.0'
diff --git a/pkg_resources/_vendor/more_itertools/more.py b/pkg_resources/_vendor/more_itertools/more.py
index 6b6a5cab..0b29fca0 100644..100755
--- a/pkg_resources/_vendor/more_itertools/more.py
+++ b/pkg_resources/_vendor/more_itertools/more.py
@@ -3,7 +3,7 @@ import warnings
from collections import Counter, defaultdict, deque, abc
from collections.abc import Sequence
from functools import partial, reduce, wraps
-from heapq import merge, heapify, heapreplace, heappop
+from heapq import heapify, heapreplace, heappop
from itertools import (
chain,
compress,
@@ -26,12 +26,16 @@ from sys import hexversion, maxsize
from time import monotonic
from .recipes import (
+ _marker,
+ _zip_equal,
+ UnequalIterablesError,
consume,
flatten,
pairwise,
powerset,
take,
unique_everseen,
+ all_equal,
)
__all__ = [
@@ -48,9 +52,9 @@ __all__ = [
'chunked_even',
'circular_shifts',
'collapse',
- 'collate',
'combination_index',
'consecutive_groups',
+ 'constrained_batches',
'consumer',
'count_cycle',
'countable',
@@ -66,6 +70,7 @@ __all__ = [
'first',
'groupby_transform',
'ichunked',
+ 'iequals',
'ilen',
'interleave',
'interleave_evenly',
@@ -76,6 +81,7 @@ __all__ = [
'iterate',
'last',
'locate',
+ 'longest_common_prefix',
'lstrip',
'make_decorator',
'map_except',
@@ -132,9 +138,6 @@ __all__ = [
]
-_marker = object()
-
-
def chunked(iterable, n, strict=False):
"""Break *iterable* into lists of length *n*:
@@ -409,44 +412,6 @@ class peekable:
return self._cache[index]
-def collate(*iterables, **kwargs):
- """Return a sorted merge of the items from each of several already-sorted
- *iterables*.
-
- >>> list(collate('ACDZ', 'AZ', 'JKL'))
- ['A', 'A', 'C', 'D', 'J', 'K', 'L', 'Z', 'Z']
-
- Works lazily, keeping only the next value from each iterable in memory. Use
- :func:`collate` to, for example, perform a n-way mergesort of items that
- don't fit in memory.
-
- If a *key* function is specified, the iterables will be sorted according
- to its result:
-
- >>> key = lambda s: int(s) # Sort by numeric value, not by string
- >>> list(collate(['1', '10'], ['2', '11'], key=key))
- ['1', '2', '10', '11']
-
-
- If the *iterables* are sorted in descending order, set *reverse* to
- ``True``:
-
- >>> list(collate([5, 3, 1], [4, 2, 0], reverse=True))
- [5, 4, 3, 2, 1, 0]
-
- If the elements of the passed-in iterables are out of order, you might get
- unexpected results.
-
- On Python 3.5+, this function is an alias for :func:`heapq.merge`.
-
- """
- warnings.warn(
- "collate is no longer part of more_itertools, use heapq.merge",
- DeprecationWarning,
- )
- return merge(*iterables, **kwargs)
-
-
def consumer(func):
"""Decorator that automatically advances a PEP-342-style "reverse iterator"
to its first yield point so you don't have to call ``next()`` on it
@@ -872,7 +837,9 @@ def windowed(seq, n, fillvalue=None, step=1):
yield tuple(window)
size = len(window)
- if size < n:
+ if size == 0:
+ return
+ elif size < n:
yield tuple(chain(window, repeat(fillvalue, n - size)))
elif 0 < i < min(step, n):
window += (fillvalue,) * i
@@ -1645,45 +1612,6 @@ def stagger(iterable, offsets=(-1, 0, 1), longest=False, fillvalue=None):
)
-class UnequalIterablesError(ValueError):
- def __init__(self, details=None):
- msg = 'Iterables have different lengths'
- if details is not None:
- msg += (': index 0 has length {}; index {} has length {}').format(
- *details
- )
-
- super().__init__(msg)
-
-
-def _zip_equal_generator(iterables):
- for combo in zip_longest(*iterables, fillvalue=_marker):
- for val in combo:
- if val is _marker:
- raise UnequalIterablesError()
- yield combo
-
-
-def _zip_equal(*iterables):
- # Check whether the iterables are all the same size.
- try:
- first_size = len(iterables[0])
- for i, it in enumerate(iterables[1:], 1):
- size = len(it)
- if size != first_size:
- break
- else:
- # If we didn't break out, we can use the built-in zip.
- return zip(*iterables)
-
- # If we did break out, there was a mismatch.
- raise UnequalIterablesError(details=(first_size, i, size))
- # If any one of the iterables didn't have a length, start reading
- # them until one runs out.
- except TypeError:
- return _zip_equal_generator(iterables)
-
-
def zip_equal(*iterables):
"""``zip`` the input *iterables* together, but raise
``UnequalIterablesError`` if they aren't all the same length.
@@ -1825,7 +1753,7 @@ def unzip(iterable):
of the zipped *iterable*.
The ``i``-th iterable contains the ``i``-th element from each element
- of the zipped iterable. The first element is used to to determine the
+ of the zipped iterable. The first element is used to determine the
length of the remaining elements.
>>> iterable = [('a', 1), ('b', 2), ('c', 3), ('d', 4)]
@@ -2375,6 +2303,16 @@ def locate(iterable, pred=bool, window_size=None):
return compress(count(), starmap(pred, it))
+def longest_common_prefix(iterables):
+ """Yield elements of the longest common prefix amongst given *iterables*.
+
+ >>> ''.join(longest_common_prefix(['abcd', 'abc', 'abf']))
+ 'ab'
+
+ """
+ return (c[0] for c in takewhile(all_equal, zip(*iterables)))
+
+
def lstrip(iterable, pred):
"""Yield the items from *iterable*, but strip any from the beginning
for which *pred* returns ``True``.
@@ -2683,7 +2621,7 @@ def difference(iterable, func=sub, *, initial=None):
if initial is not None:
first = []
- return chain(first, starmap(func, zip(b, a)))
+ return chain(first, map(func, b, a))
class SequenceView(Sequence):
@@ -3326,6 +3264,27 @@ def only(iterable, default=None, too_long=None):
return first_value
+class _IChunk:
+ def __init__(self, iterable, n):
+ self._it = islice(iterable, n)
+ self._cache = deque()
+
+ def fill_cache(self):
+ self._cache.extend(self._it)
+
+ def __iter__(self):
+ return self
+
+ def __next__(self):
+ try:
+ return next(self._it)
+ except StopIteration:
+ if self._cache:
+ return self._cache.popleft()
+ else:
+ raise
+
+
def ichunked(iterable, n):
"""Break *iterable* into sub-iterables with *n* elements each.
:func:`ichunked` is like :func:`chunked`, but it yields iterables
@@ -3347,20 +3306,39 @@ def ichunked(iterable, n):
[8, 9, 10, 11]
"""
- source = iter(iterable)
-
+ source = peekable(iter(iterable))
+ ichunk_marker = object()
while True:
# Check to see whether we're at the end of the source iterable
- item = next(source, _marker)
- if item is _marker:
+ item = source.peek(ichunk_marker)
+ if item is ichunk_marker:
return
- # Clone the source and yield an n-length slice
- source, it = tee(chain([item], source))
- yield islice(it, n)
+ chunk = _IChunk(source, n)
+ yield chunk
+
+ # Advance the source iterable and fill previous chunk's cache
+ chunk.fill_cache()
+
+
+def iequals(*iterables):
+ """Return ``True`` if all given *iterables* are equal to each other,
+ which means that they contain the same elements in the same order.
- # Advance the source iterable
- consume(source, n)
+ The function is useful for comparing iterables of different data types
+ or iterables that do not support equality checks.
+
+ >>> iequals("abc", ['a', 'b', 'c'], ('a', 'b', 'c'), iter("abc"))
+ True
+
+ >>> iequals("abc", "acb")
+ False
+
+ Not to be confused with :func:`all_equals`, which checks whether all
+ elements of iterable are equal to each other.
+
+ """
+ return all(map(all_equal, zip_longest(*iterables, fillvalue=object())))
def distinct_combinations(iterable, r):
@@ -3655,7 +3633,9 @@ class callback_iter:
self._aborted = False
self._future = None
self._wait_seconds = wait_seconds
- self._executor = __import__("concurrent.futures").futures.ThreadPoolExecutor(max_workers=1)
+ # Lazily import concurrent.future
+ self._executor = __import__(
+ ).futures.__import__("concurrent.futures").futures.ThreadPoolExecutor(max_workers=1)
self._iterator = self._reader()
def __enter__(self):
@@ -3960,7 +3940,7 @@ def combination_index(element, iterable):
n, _ = last(pool, default=(n, None))
- # Python versiosn below 3.8 don't have math.comb
+ # Python versions below 3.8 don't have math.comb
index = 1
for i, j in enumerate(reversed(indexes), start=1):
j = n - j
@@ -4113,7 +4093,7 @@ def zip_broadcast(*objects, scalar_types=(str, bytes), strict=False):
If the *strict* keyword argument is ``True``, then
``UnequalIterablesError`` will be raised if any of the iterables have
- different lengthss.
+ different lengths.
"""
def is_scalar(obj):
@@ -4314,3 +4294,53 @@ def minmax(iterable_or_value, *others, key=None, default=_marker):
hi, hi_key = y, y_key
return lo, hi
+
+
+def constrained_batches(
+ iterable, max_size, max_count=None, get_len=len, strict=True
+):
+ """Yield batches of items from *iterable* with a combined size limited by
+ *max_size*.
+
+ >>> iterable = [b'12345', b'123', b'12345678', b'1', b'1', b'12', b'1']
+ >>> list(constrained_batches(iterable, 10))
+ [(b'12345', b'123'), (b'12345678', b'1', b'1'), (b'12', b'1')]
+
+ If a *max_count* is supplied, the number of items per batch is also
+ limited:
+
+ >>> iterable = [b'12345', b'123', b'12345678', b'1', b'1', b'12', b'1']
+ >>> list(constrained_batches(iterable, 10, max_count = 2))
+ [(b'12345', b'123'), (b'12345678', b'1'), (b'1', b'12'), (b'1',)]
+
+ If a *get_len* function is supplied, use that instead of :func:`len` to
+ determine item size.
+
+ If *strict* is ``True``, raise ``ValueError`` if any single item is bigger
+ than *max_size*. Otherwise, allow single items to exceed *max_size*.
+ """
+ if max_size <= 0:
+ raise ValueError('maximum size must be greater than zero')
+
+ batch = []
+ batch_size = 0
+ batch_count = 0
+ for item in iterable:
+ item_len = get_len(item)
+ if strict and item_len > max_size:
+ raise ValueError('item size exceeds maximum size')
+
+ reached_count = batch_count == max_count
+ reached_size = item_len + batch_size > max_size
+ if batch_count and (reached_size or reached_count):
+ yield tuple(batch)
+ batch.clear()
+ batch_size = 0
+ batch_count = 0
+
+ batch.append(item)
+ batch_size += item_len
+ batch_count += 1
+
+ if batch:
+ yield tuple(batch)
diff --git a/pkg_resources/_vendor/more_itertools/more.pyi b/pkg_resources/_vendor/more_itertools/more.pyi
index fe7d4bdd..1413fae7 100644
--- a/pkg_resources/_vendor/more_itertools/more.pyi
+++ b/pkg_resources/_vendor/more_itertools/more.pyi
@@ -72,7 +72,6 @@ class peekable(Generic[_T], Iterator[_T]):
@overload
def __getitem__(self, index: slice) -> List[_T]: ...
-def collate(*iterables: Iterable[_T], **kwargs: Any) -> Iterable[_T]: ...
def consumer(func: _GenFn) -> _GenFn: ...
def ilen(iterable: Iterable[object]) -> int: ...
def iterate(func: Callable[[_T], _T], start: _T) -> Iterator[_T]: ...
@@ -179,7 +178,7 @@ def padded(
iterable: Iterable[_T],
*,
n: Optional[int] = ...,
- next_multiple: bool = ...
+ next_multiple: bool = ...,
) -> Iterator[Optional[_T]]: ...
@overload
def padded(
@@ -225,7 +224,7 @@ def zip_equal(
__iter1: Iterable[_T],
__iter2: Iterable[_T],
__iter3: Iterable[_T],
- *iterables: Iterable[_T]
+ *iterables: Iterable[_T],
) -> Iterator[Tuple[_T, ...]]: ...
@overload
def zip_offset(
@@ -233,7 +232,7 @@ def zip_offset(
*,
offsets: _SizedIterable[int],
longest: bool = ...,
- fillvalue: None = None
+ fillvalue: None = None,
) -> Iterator[Tuple[Optional[_T1]]]: ...
@overload
def zip_offset(
@@ -242,7 +241,7 @@ def zip_offset(
*,
offsets: _SizedIterable[int],
longest: bool = ...,
- fillvalue: None = None
+ fillvalue: None = None,
) -> Iterator[Tuple[Optional[_T1], Optional[_T2]]]: ...
@overload
def zip_offset(
@@ -252,7 +251,7 @@ def zip_offset(
*iterables: Iterable[_T],
offsets: _SizedIterable[int],
longest: bool = ...,
- fillvalue: None = None
+ fillvalue: None = None,
) -> Iterator[Tuple[Optional[_T], ...]]: ...
@overload
def zip_offset(
@@ -420,7 +419,7 @@ def difference(
iterable: Iterable[_T],
func: Callable[[_T, _T], _U] = ...,
*,
- initial: None = ...
+ initial: None = ...,
) -> Iterator[Union[_T, _U]]: ...
@overload
def difference(
@@ -529,12 +528,12 @@ def distinct_combinations(
def filter_except(
validator: Callable[[Any], object],
iterable: Iterable[_T],
- *exceptions: Type[BaseException]
+ *exceptions: Type[BaseException],
) -> Iterator[_T]: ...
def map_except(
function: Callable[[Any], _U],
iterable: Iterable[_T],
- *exceptions: Type[BaseException]
+ *exceptions: Type[BaseException],
) -> Iterator[_U]: ...
def map_if(
iterable: Iterable[Any],
@@ -610,7 +609,7 @@ def zip_broadcast(
scalar_types: Union[
type, Tuple[Union[type, Tuple[Any, ...]], ...], None
] = ...,
- strict: bool = ...
+ strict: bool = ...,
) -> Iterable[Tuple[_T, ...]]: ...
def unique_in_window(
iterable: Iterable[_T], n: int, key: Optional[Callable[[_T], _U]] = ...
@@ -640,7 +639,7 @@ def minmax(
iterable_or_value: Iterable[_SupportsLessThanT],
*,
key: None = None,
- default: _U
+ default: _U,
) -> Union[_U, Tuple[_SupportsLessThanT, _SupportsLessThanT]]: ...
@overload
def minmax(
@@ -653,12 +652,23 @@ def minmax(
def minmax(
iterable_or_value: _SupportsLessThanT,
__other: _SupportsLessThanT,
- *others: _SupportsLessThanT
+ *others: _SupportsLessThanT,
) -> Tuple[_SupportsLessThanT, _SupportsLessThanT]: ...
@overload
def minmax(
iterable_or_value: _T,
__other: _T,
*others: _T,
- key: Callable[[_T], _SupportsLessThan]
+ key: Callable[[_T], _SupportsLessThan],
) -> Tuple[_T, _T]: ...
+def longest_common_prefix(
+ iterables: Iterable[Iterable[_T]],
+) -> Iterator[_T]: ...
+def iequals(*iterables: Iterable[object]) -> bool: ...
+def constrained_batches(
+ iterable: Iterable[object],
+ max_size: int,
+ max_count: Optional[int] = ...,
+ get_len: Callable[[_T], object] = ...,
+ strict: bool = ...,
+) -> Iterator[Tuple[_T]]: ...
diff --git a/pkg_resources/_vendor/more_itertools/recipes.py b/pkg_resources/_vendor/more_itertools/recipes.py
index a2596423..85796207 100644
--- a/pkg_resources/_vendor/more_itertools/recipes.py
+++ b/pkg_resources/_vendor/more_itertools/recipes.py
@@ -7,11 +7,16 @@ Some backward-compatible usability improvements have been made.
.. [1] http://docs.python.org/library/itertools.html#recipes
"""
-import warnings
+import math
+import operator
+
from collections import deque
+from collections.abc import Sized
+from functools import reduce
from itertools import (
chain,
combinations,
+ compress,
count,
cycle,
groupby,
@@ -21,11 +26,11 @@ from itertools import (
tee,
zip_longest,
)
-import operator
from random import randrange, sample, choice
__all__ = [
'all_equal',
+ 'batched',
'before_and_after',
'consume',
'convolve',
@@ -41,6 +46,7 @@ __all__ = [
'pad_none',
'pairwise',
'partition',
+ 'polynomial_from_roots',
'powerset',
'prepend',
'quantify',
@@ -50,7 +56,9 @@ __all__ = [
'random_product',
'repeatfunc',
'roundrobin',
+ 'sieve',
'sliding_window',
+ 'subslices',
'tabulate',
'tail',
'take',
@@ -59,6 +67,8 @@ __all__ = [
'unique_justseen',
]
+_marker = object()
+
def take(n, iterable):
"""Return first *n* items of the iterable as a list.
@@ -102,7 +112,14 @@ def tail(n, iterable):
['E', 'F', 'G']
"""
- return iter(deque(iterable, maxlen=n))
+ # If the given iterable has a length, then we can use islice to get its
+ # final elements. Note that if the iterable is not actually Iterable,
+ # either islice or deque will throw a TypeError. This is why we don't
+ # check if it is Iterable.
+ if isinstance(iterable, Sized):
+ yield from islice(iterable, max(0, len(iterable) - n), None)
+ else:
+ yield from iter(deque(iterable, maxlen=n))
def consume(iterator, n=None):
@@ -284,20 +301,83 @@ else:
pairwise.__doc__ = _pairwise.__doc__
-def grouper(iterable, n, fillvalue=None):
- """Collect data into fixed-length chunks or blocks.
+class UnequalIterablesError(ValueError):
+ def __init__(self, details=None):
+ msg = 'Iterables have different lengths'
+ if details is not None:
+ msg += (': index 0 has length {}; index {} has length {}').format(
+ *details
+ )
+
+ super().__init__(msg)
+
+
+def _zip_equal_generator(iterables):
+ for combo in zip_longest(*iterables, fillvalue=_marker):
+ for val in combo:
+ if val is _marker:
+ raise UnequalIterablesError()
+ yield combo
+
+
+def _zip_equal(*iterables):
+ # Check whether the iterables are all the same size.
+ try:
+ first_size = len(iterables[0])
+ for i, it in enumerate(iterables[1:], 1):
+ size = len(it)
+ if size != first_size:
+ break
+ else:
+ # If we didn't break out, we can use the built-in zip.
+ return zip(*iterables)
- >>> list(grouper('ABCDEFG', 3, 'x'))
+ # If we did break out, there was a mismatch.
+ raise UnequalIterablesError(details=(first_size, i, size))
+ # If any one of the iterables didn't have a length, start reading
+ # them until one runs out.
+ except TypeError:
+ return _zip_equal_generator(iterables)
+
+
+def grouper(iterable, n, incomplete='fill', fillvalue=None):
+ """Group elements from *iterable* into fixed-length groups of length *n*.
+
+ >>> list(grouper('ABCDEF', 3))
+ [('A', 'B', 'C'), ('D', 'E', 'F')]
+
+ The keyword arguments *incomplete* and *fillvalue* control what happens for
+ iterables whose length is not a multiple of *n*.
+
+ When *incomplete* is `'fill'`, the last group will contain instances of
+ *fillvalue*.
+
+ >>> list(grouper('ABCDEFG', 3, incomplete='fill', fillvalue='x'))
[('A', 'B', 'C'), ('D', 'E', 'F'), ('G', 'x', 'x')]
+ When *incomplete* is `'ignore'`, the last group will not be emitted.
+
+ >>> list(grouper('ABCDEFG', 3, incomplete='ignore', fillvalue='x'))
+ [('A', 'B', 'C'), ('D', 'E', 'F')]
+
+ When *incomplete* is `'strict'`, a subclass of `ValueError` will be raised.
+
+ >>> it = grouper('ABCDEFG', 3, incomplete='strict')
+ >>> list(it) # doctest: +IGNORE_EXCEPTION_DETAIL
+ Traceback (most recent call last):
+ ...
+ UnequalIterablesError
+
"""
- if isinstance(iterable, int):
- warnings.warn(
- "grouper expects iterable as first parameter", DeprecationWarning
- )
- n, iterable = iterable, n
args = [iter(iterable)] * n
- return zip_longest(fillvalue=fillvalue, *args)
+ if incomplete == 'fill':
+ return zip_longest(*args, fillvalue=fillvalue)
+ if incomplete == 'strict':
+ return _zip_equal(*args)
+ if incomplete == 'ignore':
+ return zip(*args)
+ else:
+ raise ValueError('Expected fill, strict, or ignore')
def roundrobin(*iterables):
@@ -658,11 +738,12 @@ def before_and_after(predicate, it):
transition.append(elem)
return
- def remainder_iterator():
- yield from transition
- yield from it
+ # Note: this is different from itertools recipes to allow nesting
+ # before_and_after remainders into before_and_after again. See tests
+ # for an example.
+ remainder_iterator = chain(transition, it)
- return true_iterator(), remainder_iterator()
+ return true_iterator(), remainder_iterator
def triplewise(iterable):
@@ -696,3 +777,65 @@ def sliding_window(iterable, n):
for x in it:
window.append(x)
yield tuple(window)
+
+
+def subslices(iterable):
+ """Return all contiguous non-empty subslices of *iterable*.
+
+ >>> list(subslices('ABC'))
+ [['A'], ['A', 'B'], ['A', 'B', 'C'], ['B'], ['B', 'C'], ['C']]
+
+ This is similar to :func:`substrings`, but emits items in a different
+ order.
+ """
+ seq = list(iterable)
+ slices = starmap(slice, combinations(range(len(seq) + 1), 2))
+ return map(operator.getitem, repeat(seq), slices)
+
+
+def polynomial_from_roots(roots):
+ """Compute a polynomial's coefficients from its roots.
+
+ >>> roots = [5, -4, 3] # (x - 5) * (x + 4) * (x - 3)
+ >>> polynomial_from_roots(roots) # x^3 - 4 * x^2 - 17 * x + 60
+ [1, -4, -17, 60]
+ """
+ # Use math.prod for Python 3.8+,
+ prod = getattr(math, 'prod', lambda x: reduce(operator.mul, x, 1))
+ roots = list(map(operator.neg, roots))
+ return [
+ sum(map(prod, combinations(roots, k))) for k in range(len(roots) + 1)
+ ]
+
+
+def sieve(n):
+ """Yield the primes less than n.
+
+ >>> list(sieve(30))
+ [2, 3, 5, 7, 11, 13, 17, 19, 23, 29]
+ """
+ isqrt = getattr(math, 'isqrt', lambda x: int(math.sqrt(x)))
+ limit = isqrt(n) + 1
+ data = bytearray([1]) * n
+ data[:2] = 0, 0
+ for p in compress(range(limit), data):
+ data[p + p : n : p] = bytearray(len(range(p + p, n, p)))
+
+ return compress(count(), data)
+
+
+def batched(iterable, n):
+ """Batch data into lists of length *n*. The last batch may be shorter.
+
+ >>> list(batched('ABCDEFG', 3))
+ [['A', 'B', 'C'], ['D', 'E', 'F'], ['G']]
+
+ This recipe is from the ``itertools`` docs. This library also provides
+ :func:`chunked`, which has a different implementation.
+ """
+ it = iter(iterable)
+ while True:
+ batch = list(islice(it, n))
+ if not batch:
+ break
+ yield batch
diff --git a/pkg_resources/_vendor/more_itertools/recipes.pyi b/pkg_resources/_vendor/more_itertools/recipes.pyi
index 4648a41b..29415c5a 100644
--- a/pkg_resources/_vendor/more_itertools/recipes.pyi
+++ b/pkg_resources/_vendor/more_itertools/recipes.pyi
@@ -6,6 +6,7 @@ from typing import (
Iterator,
List,
Optional,
+ Sequence,
Tuple,
TypeVar,
Union,
@@ -39,21 +40,11 @@ def repeatfunc(
func: Callable[..., _U], times: Optional[int] = ..., *args: Any
) -> Iterator[_U]: ...
def pairwise(iterable: Iterable[_T]) -> Iterator[Tuple[_T, _T]]: ...
-@overload
def grouper(
- iterable: Iterable[_T], n: int
-) -> Iterator[Tuple[Optional[_T], ...]]: ...
-@overload
-def grouper(
- iterable: Iterable[_T], n: int, fillvalue: _U
-) -> Iterator[Tuple[Union[_T, _U], ...]]: ...
-@overload
-def grouper( # Deprecated interface
- iterable: int, n: Iterable[_T]
-) -> Iterator[Tuple[Optional[_T], ...]]: ...
-@overload
-def grouper( # Deprecated interface
- iterable: int, n: Iterable[_T], fillvalue: _U
+ iterable: Iterable[_T],
+ n: int,
+ incomplete: str = ...,
+ fillvalue: _U = ...,
) -> Iterator[Tuple[Union[_T, _U], ...]]: ...
def roundrobin(*iterables: Iterable[_T]) -> Iterator[_T]: ...
def partition(
@@ -110,3 +101,10 @@ def triplewise(iterable: Iterable[_T]) -> Iterator[Tuple[_T, _T, _T]]: ...
def sliding_window(
iterable: Iterable[_T], n: int
) -> Iterator[Tuple[_T, ...]]: ...
+def subslices(iterable: Iterable[_T]) -> Iterator[List[_T]]: ...
+def polynomial_from_roots(roots: Sequence[int]) -> List[int]: ...
+def sieve(n: int) -> Iterator[int]: ...
+def batched(
+ iterable: Iterable[_T],
+ n: int,
+) -> Iterator[List[_T]]: ...
diff --git a/pkg_resources/_vendor/packaging-21.3.dist-info/RECORD b/pkg_resources/_vendor/packaging-21.3.dist-info/RECORD
index 97cace10..77b1ed96 100644
--- a/pkg_resources/_vendor/packaging-21.3.dist-info/RECORD
+++ b/pkg_resources/_vendor/packaging-21.3.dist-info/RECORD
@@ -9,17 +9,17 @@ packaging-21.3.dist-info/WHEEL,sha256=ewwEueio1C2XeHTvT17n8dZUJgOvyCWCt0WVNLClP9
packaging-21.3.dist-info/top_level.txt,sha256=zFdHrhWnPslzsiP455HutQsqPB6v0KCtNUMtUtrefDw,10
packaging/__about__.py,sha256=ugASIO2w1oUyH8_COqQ2X_s0rDhjbhQC3yJocD03h2c,661
packaging/__init__.py,sha256=b9Kk5MF7KxhhLgcDmiUWukN-LatWFxPdNug0joPhHSk,497
-packaging/__pycache__/__about__.cpython-310.pyc,,
-packaging/__pycache__/__init__.cpython-310.pyc,,
-packaging/__pycache__/_manylinux.cpython-310.pyc,,
-packaging/__pycache__/_musllinux.cpython-310.pyc,,
-packaging/__pycache__/_structures.cpython-310.pyc,,
-packaging/__pycache__/markers.cpython-310.pyc,,
-packaging/__pycache__/requirements.cpython-310.pyc,,
-packaging/__pycache__/specifiers.cpython-310.pyc,,
-packaging/__pycache__/tags.cpython-310.pyc,,
-packaging/__pycache__/utils.cpython-310.pyc,,
-packaging/__pycache__/version.cpython-310.pyc,,
+packaging/__pycache__/__about__.cpython-311.pyc,,
+packaging/__pycache__/__init__.cpython-311.pyc,,
+packaging/__pycache__/_manylinux.cpython-311.pyc,,
+packaging/__pycache__/_musllinux.cpython-311.pyc,,
+packaging/__pycache__/_structures.cpython-311.pyc,,
+packaging/__pycache__/markers.cpython-311.pyc,,
+packaging/__pycache__/requirements.cpython-311.pyc,,
+packaging/__pycache__/specifiers.cpython-311.pyc,,
+packaging/__pycache__/tags.cpython-311.pyc,,
+packaging/__pycache__/utils.cpython-311.pyc,,
+packaging/__pycache__/version.cpython-311.pyc,,
packaging/_manylinux.py,sha256=XcbiXB-qcjv3bcohp6N98TMpOP4_j3m-iOA8ptK2GWY,11488
packaging/_musllinux.py,sha256=_KGgY_qc7vhMGpoqss25n2hiLCNKRtvz9mCrS7gkqyc,4378
packaging/_structures.py,sha256=q3eVNmbWJGG_S0Dit_S3Ao8qQqz_5PYTXFAKBZe5yr4,1431
diff --git a/pkg_resources/_vendor/pyparsing-3.0.8.dist-info/LICENSE b/pkg_resources/_vendor/pyparsing-3.0.8.dist-info/LICENSE
deleted file mode 100644
index 1bf98523..00000000
--- a/pkg_resources/_vendor/pyparsing-3.0.8.dist-info/LICENSE
+++ /dev/null
@@ -1,18 +0,0 @@
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/pkg_resources/_vendor/pyparsing-3.0.8.dist-info/METADATA b/pkg_resources/_vendor/pyparsing-3.0.8.dist-info/METADATA
deleted file mode 100644
index d6c8e9be..00000000
--- a/pkg_resources/_vendor/pyparsing-3.0.8.dist-info/METADATA
+++ /dev/null
@@ -1,105 +0,0 @@
-Metadata-Version: 2.1
-Name: pyparsing
-Version: 3.0.8
-Summary: pyparsing module - Classes and methods to define and execute parsing grammars
-Author-email: Paul McGuire <ptmcg.gm+pyparsing@gmail.com>
-Requires-Python: >=3.6.8
-Description-Content-Type: text/x-rst
-Classifier: Development Status :: 5 - Production/Stable
-Classifier: Intended Audience :: Developers
-Classifier: Intended Audience :: Information Technology
-Classifier: License :: OSI Approved :: MIT License
-Classifier: Operating System :: OS Independent
-Classifier: Programming Language :: Python
-Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.6
-Classifier: Programming Language :: Python :: 3.7
-Classifier: Programming Language :: Python :: 3.8
-Classifier: Programming Language :: Python :: 3.9
-Classifier: Programming Language :: Python :: 3.10
-Classifier: Programming Language :: Python :: 3 :: Only
-Classifier: Programming Language :: Python :: Implementation :: CPython
-Classifier: Programming Language :: Python :: Implementation :: PyPy
-Classifier: Typing :: Typed
-Requires-Dist: railroad-diagrams ; extra == "diagrams"
-Requires-Dist: jinja2 ; extra == "diagrams"
-Project-URL: Homepage, https://github.com/pyparsing/pyparsing/
-Provides-Extra: diagrams
-
-PyParsing -- A Python Parsing Module
-====================================
-
-|Build Status| |Coverage|
-
-Introduction
-============
-
-The pyparsing module is an alternative approach to creating and
-executing simple grammars, vs. the traditional lex/yacc approach, or the
-use of regular expressions. The pyparsing module provides a library of
-classes that client code uses to construct the grammar directly in
-Python code.
-
-*[Since first writing this description of pyparsing in late 2003, this
-technique for developing parsers has become more widespread, under the
-name Parsing Expression Grammars - PEGs. See more information on PEGs*
-`here <https://en.wikipedia.org/wiki/Parsing_expression_grammar>`__
-*.]*
-
-Here is a program to parse ``"Hello, World!"`` (or any greeting of the form
-``"salutation, addressee!"``):
-
-.. code:: python
-
- from pyparsing import Word, alphas
- greet = Word(alphas) + "," + Word(alphas) + "!"
- hello = "Hello, World!"
- print(hello, "->", greet.parseString(hello))
-
-The program outputs the following::
-
- Hello, World! -> ['Hello', ',', 'World', '!']
-
-The Python representation of the grammar is quite readable, owing to the
-self-explanatory class names, and the use of '+', '|' and '^' operator
-definitions.
-
-The parsed results returned from ``parseString()`` is a collection of type
-``ParseResults``, which can be accessed as a
-nested list, a dictionary, or an object with named attributes.
-
-The pyparsing module handles some of the problems that are typically
-vexing when writing text parsers:
-
-- extra or missing whitespace (the above program will also handle ``"Hello,World!"``, ``"Hello , World !"``, etc.)
-- quoted strings
-- embedded comments
-
-The examples directory includes a simple SQL parser, simple CORBA IDL
-parser, a config file parser, a chemical formula parser, and a four-
-function algebraic notation parser, among many others.
-
-Documentation
-=============
-
-There are many examples in the online docstrings of the classes
-and methods in pyparsing. You can find them compiled into `online docs <https://pyparsing-docs.readthedocs.io/en/latest/>`__. Additional
-documentation resources and project info are listed in the online
-`GitHub wiki <https://github.com/pyparsing/pyparsing/wiki>`__. An
-entire directory of examples can be found `here <https://github.com/pyparsing/pyparsing/tree/master/examples>`__.
-
-License
-=======
-
-MIT License. See header of the `pyparsing.py <https://github.com/pyparsing/pyparsing/blob/master/pyparsing/__init__.py#L1-L23>`__ file.
-
-History
-=======
-
-See `CHANGES <https://github.com/pyparsing/pyparsing/blob/master/CHANGES>`__ file.
-
-.. |Build Status| image:: https://github.com/pyparsing/pyparsing/actions/workflows/ci.yml/badge.svg
- :target: https://github.com/pyparsing/pyparsing/actions/workflows/ci.yml
-.. |Coverage| image:: https://codecov.io/gh/pyparsing/pyparsing/branch/master/graph/badge.svg
- :target: https://codecov.io/gh/pyparsing/pyparsing
-
diff --git a/pkg_resources/_vendor/pyparsing-3.0.8.dist-info/RECORD b/pkg_resources/_vendor/pyparsing-3.0.8.dist-info/RECORD
deleted file mode 100644
index 72947b0b..00000000
--- a/pkg_resources/_vendor/pyparsing-3.0.8.dist-info/RECORD
+++ /dev/null
@@ -1,30 +0,0 @@
-pyparsing-3.0.8.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
-pyparsing-3.0.8.dist-info/LICENSE,sha256=ENUSChaAWAT_2otojCIL-06POXQbVzIGBNRVowngGXI,1023
-pyparsing-3.0.8.dist-info/METADATA,sha256=dEvZBGz3Owm5LYEaqDeKb6e3ZgOrF48WaCI_PG1n5BE,4207
-pyparsing-3.0.8.dist-info/RECORD,,
-pyparsing-3.0.8.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
-pyparsing-3.0.8.dist-info/WHEEL,sha256=jPMR_Dzkc4X4icQtmz81lnNY_kAsfog7ry7qoRvYLXw,81
-pyparsing/__init__.py,sha256=EMa1HCuq9HJhEDR8fUThu2gD0nl6Cs8FFEWZZ0eRCM8,9159
-pyparsing/__pycache__/__init__.cpython-38.pyc,,
-pyparsing/__pycache__/actions.cpython-38.pyc,,
-pyparsing/__pycache__/common.cpython-38.pyc,,
-pyparsing/__pycache__/core.cpython-38.pyc,,
-pyparsing/__pycache__/exceptions.cpython-38.pyc,,
-pyparsing/__pycache__/helpers.cpython-38.pyc,,
-pyparsing/__pycache__/results.cpython-38.pyc,,
-pyparsing/__pycache__/testing.cpython-38.pyc,,
-pyparsing/__pycache__/unicode.cpython-38.pyc,,
-pyparsing/__pycache__/util.cpython-38.pyc,,
-pyparsing/actions.py,sha256=60v7mETOBzc01YPH_qQD5isavgcSJpAfIKpzgjM3vaU,6429
-pyparsing/common.py,sha256=lFL97ooIeR75CmW5hjURZqwDCTgruqltcTCZ-ulLO2Q,12936
-pyparsing/core.py,sha256=zBzGw5vcSd58pB1QkYpY6O_XCcHVKX_nH5xglRx_L-M,213278
-pyparsing/diagram/__init__.py,sha256=oU_UEh6O5voKSFjUdq462_mpmURLOfUIsmWvxi1qgTQ,23003
-pyparsing/diagram/__pycache__/__init__.cpython-38.pyc,,
-pyparsing/diagram/template.jinja2,sha256=SfQ8SLktSBqI5W1DGcUVH1vdflRD6x2sQBApxrcNg7s,589
-pyparsing/exceptions.py,sha256=H4D9gqMavqmAFSsdrU_J6bO-jA-T-A7yvtXWZpooIUA,9030
-pyparsing/helpers.py,sha256=EyjpgDOc3ivwRsU4VXxAWdgIs5gaqMDaLWcwRh5mqxc,39007
-pyparsing/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
-pyparsing/results.py,sha256=Hd6FAAh5sF8zGXpwsamdVqFUblIwyQf0FH0t7FCb1OY,25353
-pyparsing/testing.py,sha256=szs8AKZREZMhL0y0vsMfaTVAnpqPHetg6VKJBNmc4QY,13388
-pyparsing/unicode.py,sha256=IR-ioeGY29cZ49tG8Ts7ITPWWNP5G2DcZs58oa8zn44,10381
-pyparsing/util.py,sha256=kq772O5YSeXOSdP-M31EWpbH_ayj7BMHImBYo9xPD5M,6805
diff --git a/pkg_resources/_vendor/pyparsing-3.0.8.dist-info/REQUESTED b/pkg_resources/_vendor/pyparsing-3.0.8.dist-info/REQUESTED
deleted file mode 100644
index e69de29b..00000000
--- a/pkg_resources/_vendor/pyparsing-3.0.8.dist-info/REQUESTED
+++ /dev/null
diff --git a/pkg_resources/_vendor/pyparsing-3.0.9.dist-info/RECORD b/pkg_resources/_vendor/pyparsing-3.0.9.dist-info/RECORD
index 7a4e49ab..b07b9bd0 100644
--- a/pkg_resources/_vendor/pyparsing-3.0.9.dist-info/RECORD
+++ b/pkg_resources/_vendor/pyparsing-3.0.9.dist-info/RECORD
@@ -1,29 +1,29 @@
-pyparsing-3.0.9.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
-pyparsing-3.0.9.dist-info/LICENSE,sha256=ENUSChaAWAT_2otojCIL-06POXQbVzIGBNRVowngGXI,1023
-pyparsing-3.0.9.dist-info/METADATA,sha256=h_fpm9rwvgZsE8v5YNF4IAo-IpaFWCOfUEm5MMByIiM,4207
-pyparsing-3.0.9.dist-info/RECORD,,
-pyparsing-3.0.9.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
-pyparsing-3.0.9.dist-info/WHEEL,sha256=jPMR_Dzkc4X4icQtmz81lnNY_kAsfog7ry7qoRvYLXw,81
-pyparsing/__init__.py,sha256=52QH3lgPbJhba0estckoGPHRH8JvQSSCGoWiEn2m0bU,9159
-pyparsing/__pycache__/__init__.cpython-38.pyc,,
-pyparsing/__pycache__/actions.cpython-38.pyc,,
-pyparsing/__pycache__/common.cpython-38.pyc,,
-pyparsing/__pycache__/core.cpython-38.pyc,,
-pyparsing/__pycache__/exceptions.cpython-38.pyc,,
-pyparsing/__pycache__/helpers.cpython-38.pyc,,
-pyparsing/__pycache__/results.cpython-38.pyc,,
-pyparsing/__pycache__/testing.cpython-38.pyc,,
-pyparsing/__pycache__/unicode.cpython-38.pyc,,
-pyparsing/__pycache__/util.cpython-38.pyc,,
-pyparsing/actions.py,sha256=wU9i32e0y1ymxKE3OUwSHO-SFIrt1h_wv6Ws0GQjpNU,6426
-pyparsing/common.py,sha256=lFL97ooIeR75CmW5hjURZqwDCTgruqltcTCZ-ulLO2Q,12936
-pyparsing/core.py,sha256=u8GptQE_H6wMkl8OZhxeK1aAPIDXXNgwdShORBwBVS4,213310
-pyparsing/diagram/__init__.py,sha256=f_EfxahqrdkRVahmTwLJXkZ9EEDKNd-O7lBbpJYlE1g,23668
-pyparsing/diagram/__pycache__/__init__.cpython-38.pyc,,
-pyparsing/exceptions.py,sha256=3LbSafD32NYb1Tzt85GHNkhEAU1eZkTtNSk24cPMemo,9023
-pyparsing/helpers.py,sha256=QpUOjW0-psvueMwWb9bQpU2noqKCv98_wnw1VSzSdVo,39129
-pyparsing/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
-pyparsing/results.py,sha256=HgNvWVXBdQP-Q6PtJfoCEeOJk2nwEvG-2KVKC5sGA30,25341
-pyparsing/testing.py,sha256=7tu4Abp4uSeJV0N_yEPRmmNUhpd18ZQP3CrX41DM814,13402
-pyparsing/unicode.py,sha256=fwuhMj30SQ165Cv7HJpu-rSxGbRm93kN9L4Ei7VGc1Y,10787
-pyparsing/util.py,sha256=kq772O5YSeXOSdP-M31EWpbH_ayj7BMHImBYo9xPD5M,6805
+pyparsing-3.0.9.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
+pyparsing-3.0.9.dist-info/LICENSE,sha256=ENUSChaAWAT_2otojCIL-06POXQbVzIGBNRVowngGXI,1023
+pyparsing-3.0.9.dist-info/METADATA,sha256=h_fpm9rwvgZsE8v5YNF4IAo-IpaFWCOfUEm5MMByIiM,4207
+pyparsing-3.0.9.dist-info/RECORD,,
+pyparsing-3.0.9.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+pyparsing-3.0.9.dist-info/WHEEL,sha256=jPMR_Dzkc4X4icQtmz81lnNY_kAsfog7ry7qoRvYLXw,81
+pyparsing/__init__.py,sha256=52QH3lgPbJhba0estckoGPHRH8JvQSSCGoWiEn2m0bU,9159
+pyparsing/__pycache__/__init__.cpython-311.pyc,,
+pyparsing/__pycache__/actions.cpython-311.pyc,,
+pyparsing/__pycache__/common.cpython-311.pyc,,
+pyparsing/__pycache__/core.cpython-311.pyc,,
+pyparsing/__pycache__/exceptions.cpython-311.pyc,,
+pyparsing/__pycache__/helpers.cpython-311.pyc,,
+pyparsing/__pycache__/results.cpython-311.pyc,,
+pyparsing/__pycache__/testing.cpython-311.pyc,,
+pyparsing/__pycache__/unicode.cpython-311.pyc,,
+pyparsing/__pycache__/util.cpython-311.pyc,,
+pyparsing/actions.py,sha256=wU9i32e0y1ymxKE3OUwSHO-SFIrt1h_wv6Ws0GQjpNU,6426
+pyparsing/common.py,sha256=lFL97ooIeR75CmW5hjURZqwDCTgruqltcTCZ-ulLO2Q,12936
+pyparsing/core.py,sha256=u8GptQE_H6wMkl8OZhxeK1aAPIDXXNgwdShORBwBVS4,213310
+pyparsing/diagram/__init__.py,sha256=f_EfxahqrdkRVahmTwLJXkZ9EEDKNd-O7lBbpJYlE1g,23668
+pyparsing/diagram/__pycache__/__init__.cpython-311.pyc,,
+pyparsing/exceptions.py,sha256=3LbSafD32NYb1Tzt85GHNkhEAU1eZkTtNSk24cPMemo,9023
+pyparsing/helpers.py,sha256=QpUOjW0-psvueMwWb9bQpU2noqKCv98_wnw1VSzSdVo,39129
+pyparsing/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+pyparsing/results.py,sha256=HgNvWVXBdQP-Q6PtJfoCEeOJk2nwEvG-2KVKC5sGA30,25341
+pyparsing/testing.py,sha256=7tu4Abp4uSeJV0N_yEPRmmNUhpd18ZQP3CrX41DM814,13402
+pyparsing/unicode.py,sha256=fwuhMj30SQ165Cv7HJpu-rSxGbRm93kN9L4Ei7VGc1Y,10787
+pyparsing/util.py,sha256=kq772O5YSeXOSdP-M31EWpbH_ayj7BMHImBYo9xPD5M,6805
diff --git a/pkg_resources/_vendor/zipp-3.7.0.dist-info/RECORD b/pkg_resources/_vendor/zipp-3.7.0.dist-info/RECORD
index 38d0b21a..0a88551c 100644
--- a/pkg_resources/_vendor/zipp-3.7.0.dist-info/RECORD
+++ b/pkg_resources/_vendor/zipp-3.7.0.dist-info/RECORD
@@ -1,4 +1,4 @@
-__pycache__/zipp.cpython-310.pyc,,
+__pycache__/zipp.cpython-311.pyc,,
zipp-3.7.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
zipp-3.7.0.dist-info/LICENSE,sha256=2z8CRrH5J48VhFuZ_sR4uLUG63ZIeZNyL4xuJUKF-vg,1050
zipp-3.7.0.dist-info/METADATA,sha256=ZLzgaXTyZX_MxTU0lcGfhdPY4CjFrT_3vyQ2Fo49pl8,2261
diff --git a/setuptools/_vendor/importlib_metadata-4.11.1.dist-info/RECORD b/setuptools/_vendor/importlib_metadata-4.11.1.dist-info/RECORD
index d8c2dff6..60c443f2 100644
--- a/setuptools/_vendor/importlib_metadata-4.11.1.dist-info/RECORD
+++ b/setuptools/_vendor/importlib_metadata-4.11.1.dist-info/RECORD
@@ -6,14 +6,14 @@ importlib_metadata-4.11.1.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeR
importlib_metadata-4.11.1.dist-info/WHEEL,sha256=G16H4A3IeoQmnOrYV4ueZGKSjhipXx8zc8nu9FGlvMA,92
importlib_metadata-4.11.1.dist-info/top_level.txt,sha256=CO3fD9yylANiXkrMo4qHLV_mqXL2sC5JFKgt1yWAT-A,19
importlib_metadata/__init__.py,sha256=Wkh_tb0u0Ds_615ByV9VLLjqgoOWirwMY8EW40oO3nM,30122
-importlib_metadata/__pycache__/__init__.cpython-310.pyc,,
-importlib_metadata/__pycache__/_adapters.cpython-310.pyc,,
-importlib_metadata/__pycache__/_collections.cpython-310.pyc,,
-importlib_metadata/__pycache__/_compat.cpython-310.pyc,,
-importlib_metadata/__pycache__/_functools.cpython-310.pyc,,
-importlib_metadata/__pycache__/_itertools.cpython-310.pyc,,
-importlib_metadata/__pycache__/_meta.cpython-310.pyc,,
-importlib_metadata/__pycache__/_text.cpython-310.pyc,,
+importlib_metadata/__pycache__/__init__.cpython-311.pyc,,
+importlib_metadata/__pycache__/_adapters.cpython-311.pyc,,
+importlib_metadata/__pycache__/_collections.cpython-311.pyc,,
+importlib_metadata/__pycache__/_compat.cpython-311.pyc,,
+importlib_metadata/__pycache__/_functools.cpython-311.pyc,,
+importlib_metadata/__pycache__/_itertools.cpython-311.pyc,,
+importlib_metadata/__pycache__/_meta.cpython-311.pyc,,
+importlib_metadata/__pycache__/_text.cpython-311.pyc,,
importlib_metadata/_adapters.py,sha256=B6fCi5-8mLVDFUZj3krI5nAo-mKp1dH_qIavyIyFrJs,1862
importlib_metadata/_collections.py,sha256=CJ0OTCHIjWA0ZIVS4voORAsn2R4R2cQBEtPsZEJpASY,743
importlib_metadata/_compat.py,sha256=EU2XCFBPFByuI0Of6XkAuBYbzqSyjwwwwqmsK4ccna0,1826
diff --git a/setuptools/_vendor/importlib_resources-5.4.0.dist-info/RECORD b/setuptools/_vendor/importlib_resources-5.4.0.dist-info/RECORD
index 7a68a2f2..7f579ddb 100644
--- a/setuptools/_vendor/importlib_resources-5.4.0.dist-info/RECORD
+++ b/setuptools/_vendor/importlib_resources-5.4.0.dist-info/RECORD
@@ -6,15 +6,15 @@ importlib_resources-5.4.0.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeR
importlib_resources-5.4.0.dist-info/WHEEL,sha256=ewwEueio1C2XeHTvT17n8dZUJgOvyCWCt0WVNLClP9o,92
importlib_resources-5.4.0.dist-info/top_level.txt,sha256=fHIjHU1GZwAjvcydpmUnUrTnbvdiWjG4OEVZK8by0TQ,20
importlib_resources/__init__.py,sha256=zuA0lbRgtVVCcAztM0z5LuBiOCV9L_3qtI6mW2p5xAg,525
-importlib_resources/__pycache__/__init__.cpython-310.pyc,,
-importlib_resources/__pycache__/_adapters.cpython-310.pyc,,
-importlib_resources/__pycache__/_common.cpython-310.pyc,,
-importlib_resources/__pycache__/_compat.cpython-310.pyc,,
-importlib_resources/__pycache__/_itertools.cpython-310.pyc,,
-importlib_resources/__pycache__/_legacy.cpython-310.pyc,,
-importlib_resources/__pycache__/abc.cpython-310.pyc,,
-importlib_resources/__pycache__/readers.cpython-310.pyc,,
-importlib_resources/__pycache__/simple.cpython-310.pyc,,
+importlib_resources/__pycache__/__init__.cpython-311.pyc,,
+importlib_resources/__pycache__/_adapters.cpython-311.pyc,,
+importlib_resources/__pycache__/_common.cpython-311.pyc,,
+importlib_resources/__pycache__/_compat.cpython-311.pyc,,
+importlib_resources/__pycache__/_itertools.cpython-311.pyc,,
+importlib_resources/__pycache__/_legacy.cpython-311.pyc,,
+importlib_resources/__pycache__/abc.cpython-311.pyc,,
+importlib_resources/__pycache__/readers.cpython-311.pyc,,
+importlib_resources/__pycache__/simple.cpython-311.pyc,,
importlib_resources/_adapters.py,sha256=o51tP2hpVtohP33gSYyAkGNpLfYDBqxxYsadyiRZi1E,4504
importlib_resources/_common.py,sha256=iIxAaQhotSh6TLLUEfL_ynU2fzEeyHMz9JcL46mUhLg,2741
importlib_resources/_compat.py,sha256=3LpkIfeN9x4oXjRea5TxZP5VYhPlzuVRhGe-hEv-S0s,2704
@@ -25,34 +25,34 @@ importlib_resources/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,
importlib_resources/readers.py,sha256=_9QLGQ5AzrED3PY8S2Zf8V6yLR0-nqqYqtQmgleDJzY,3566
importlib_resources/simple.py,sha256=xt0qhXbwt3bZ86zuaaKbTiE9A0mDbwu0saRjUq_pcY0,2836
importlib_resources/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
-importlib_resources/tests/__pycache__/__init__.cpython-310.pyc,,
-importlib_resources/tests/__pycache__/_compat.cpython-310.pyc,,
-importlib_resources/tests/__pycache__/test_compatibilty_files.cpython-310.pyc,,
-importlib_resources/tests/__pycache__/test_contents.cpython-310.pyc,,
-importlib_resources/tests/__pycache__/test_files.cpython-310.pyc,,
-importlib_resources/tests/__pycache__/test_open.cpython-310.pyc,,
-importlib_resources/tests/__pycache__/test_path.cpython-310.pyc,,
-importlib_resources/tests/__pycache__/test_read.cpython-310.pyc,,
-importlib_resources/tests/__pycache__/test_reader.cpython-310.pyc,,
-importlib_resources/tests/__pycache__/test_resource.cpython-310.pyc,,
-importlib_resources/tests/__pycache__/update-zips.cpython-310.pyc,,
-importlib_resources/tests/__pycache__/util.cpython-310.pyc,,
+importlib_resources/tests/__pycache__/__init__.cpython-311.pyc,,
+importlib_resources/tests/__pycache__/_compat.cpython-311.pyc,,
+importlib_resources/tests/__pycache__/test_compatibilty_files.cpython-311.pyc,,
+importlib_resources/tests/__pycache__/test_contents.cpython-311.pyc,,
+importlib_resources/tests/__pycache__/test_files.cpython-311.pyc,,
+importlib_resources/tests/__pycache__/test_open.cpython-311.pyc,,
+importlib_resources/tests/__pycache__/test_path.cpython-311.pyc,,
+importlib_resources/tests/__pycache__/test_read.cpython-311.pyc,,
+importlib_resources/tests/__pycache__/test_reader.cpython-311.pyc,,
+importlib_resources/tests/__pycache__/test_resource.cpython-311.pyc,,
+importlib_resources/tests/__pycache__/update-zips.cpython-311.pyc,,
+importlib_resources/tests/__pycache__/util.cpython-311.pyc,,
importlib_resources/tests/_compat.py,sha256=QGI_4p0DXybypoYvw0kr3jfQqvls3p8u4wy4Wvf0Z_o,435
importlib_resources/tests/data01/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
-importlib_resources/tests/data01/__pycache__/__init__.cpython-310.pyc,,
+importlib_resources/tests/data01/__pycache__/__init__.cpython-311.pyc,,
importlib_resources/tests/data01/binary.file,sha256=BU7ewdAhH2JP7Qy8qdT5QAsOSRxDdCryxbCr6_DJkNg,4
importlib_resources/tests/data01/subdirectory/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
-importlib_resources/tests/data01/subdirectory/__pycache__/__init__.cpython-310.pyc,,
+importlib_resources/tests/data01/subdirectory/__pycache__/__init__.cpython-311.pyc,,
importlib_resources/tests/data01/subdirectory/binary.file,sha256=BU7ewdAhH2JP7Qy8qdT5QAsOSRxDdCryxbCr6_DJkNg,4
importlib_resources/tests/data01/utf-16.file,sha256=t5q9qhxX0rYqItBOM8D3ylwG-RHrnOYteTLtQr6sF7g,44
importlib_resources/tests/data01/utf-8.file,sha256=kwWgYG4yQ-ZF2X_WA66EjYPmxJRn-w8aSOiS9e8tKYY,20
importlib_resources/tests/data02/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
-importlib_resources/tests/data02/__pycache__/__init__.cpython-310.pyc,,
+importlib_resources/tests/data02/__pycache__/__init__.cpython-311.pyc,,
importlib_resources/tests/data02/one/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
-importlib_resources/tests/data02/one/__pycache__/__init__.cpython-310.pyc,,
+importlib_resources/tests/data02/one/__pycache__/__init__.cpython-311.pyc,,
importlib_resources/tests/data02/one/resource1.txt,sha256=10flKac7c-XXFzJ3t-AB5MJjlBy__dSZvPE_dOm2q6U,13
importlib_resources/tests/data02/two/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
-importlib_resources/tests/data02/two/__pycache__/__init__.cpython-310.pyc,,
+importlib_resources/tests/data02/two/__pycache__/__init__.cpython-311.pyc,,
importlib_resources/tests/data02/two/resource2.txt,sha256=lt2jbN3TMn9QiFKM832X39bU_62UptDdUkoYzkvEbl0,13
importlib_resources/tests/namespacedata01/binary.file,sha256=BU7ewdAhH2JP7Qy8qdT5QAsOSRxDdCryxbCr6_DJkNg,4
importlib_resources/tests/namespacedata01/utf-16.file,sha256=t5q9qhxX0rYqItBOM8D3ylwG-RHrnOYteTLtQr6sF7g,44
@@ -68,8 +68,8 @@ importlib_resources/tests/test_resource.py,sha256=DqfLNc9kaN5obqxU8kn0sRUWMf9Myg
importlib_resources/tests/update-zips.py,sha256=x3iJVqWnMM5qp4Oob2Pl3o6Yi03sUjEv_5Wf-UCg3ps,1415
importlib_resources/tests/util.py,sha256=X1j-0C96pu3_tmtJuLhzfBfcfMenOphDLkxtCt5j7t4,5309
importlib_resources/tests/zipdata01/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
-importlib_resources/tests/zipdata01/__pycache__/__init__.cpython-310.pyc,,
+importlib_resources/tests/zipdata01/__pycache__/__init__.cpython-311.pyc,,
importlib_resources/tests/zipdata01/ziptestdata.zip,sha256=z5Of4dsv3T0t-46B0MsVhxlhsPGMz28aUhJDWpj3_oY,876
importlib_resources/tests/zipdata02/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
-importlib_resources/tests/zipdata02/__pycache__/__init__.cpython-310.pyc,,
+importlib_resources/tests/zipdata02/__pycache__/__init__.cpython-311.pyc,,
importlib_resources/tests/zipdata02/ziptestdata.zip,sha256=ydI-_j-xgQ7tDxqBp9cjOqXBGxUp6ZBbwVJu6Xj-nrY,698
diff --git a/setuptools/_vendor/jaraco.context-4.1.1.dist-info/RECORD b/setuptools/_vendor/jaraco.context-4.1.1.dist-info/RECORD
deleted file mode 100644
index f40d48c7..00000000
--- a/setuptools/_vendor/jaraco.context-4.1.1.dist-info/RECORD
+++ /dev/null
@@ -1,8 +0,0 @@
-jaraco.context-4.1.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
-jaraco.context-4.1.1.dist-info/LICENSE,sha256=2z8CRrH5J48VhFuZ_sR4uLUG63ZIeZNyL4xuJUKF-vg,1050
-jaraco.context-4.1.1.dist-info/METADATA,sha256=bvqDGCk6Z7TkohUqr5XZm19SbF9mVxrtXjN6uF_BAMQ,2031
-jaraco.context-4.1.1.dist-info/RECORD,,
-jaraco.context-4.1.1.dist-info/WHEEL,sha256=ewwEueio1C2XeHTvT17n8dZUJgOvyCWCt0WVNLClP9o,92
-jaraco.context-4.1.1.dist-info/top_level.txt,sha256=0JnN3LfXH4LIRfXL-QFOGCJzQWZO3ELx4R1d_louoQM,7
-jaraco/__pycache__/context.cpython-310.pyc,,
-jaraco/context.py,sha256=7X1tpCLc5EN45iWGzGcsH0Unx62REIkvtRvglj0SiUA,5420
diff --git a/pkg_resources/_vendor/pyparsing-3.0.8.dist-info/INSTALLER b/setuptools/_vendor/jaraco.context-4.2.0.dist-info/INSTALLER
index a1b589e3..a1b589e3 100644
--- a/pkg_resources/_vendor/pyparsing-3.0.8.dist-info/INSTALLER
+++ b/setuptools/_vendor/jaraco.context-4.2.0.dist-info/INSTALLER
diff --git a/setuptools/_vendor/jaraco.context-4.1.1.dist-info/LICENSE b/setuptools/_vendor/jaraco.context-4.2.0.dist-info/LICENSE
index 353924be..353924be 100644
--- a/setuptools/_vendor/jaraco.context-4.1.1.dist-info/LICENSE
+++ b/setuptools/_vendor/jaraco.context-4.2.0.dist-info/LICENSE
diff --git a/pkg_resources/_vendor/jaraco.context-4.1.1.dist-info/METADATA b/setuptools/_vendor/jaraco.context-4.2.0.dist-info/METADATA
index 908711b7..34d372e7 100644
--- a/pkg_resources/_vendor/jaraco.context-4.1.1.dist-info/METADATA
+++ b/setuptools/_vendor/jaraco.context-4.2.0.dist-info/METADATA
@@ -1,39 +1,37 @@
Metadata-Version: 2.1
Name: jaraco.context
-Version: 4.1.1
+Version: 4.2.0
Summary: Context managers by jaraco
Home-page: https://github.com/jaraco/jaraco.context
Author: Jason R. Coombs
Author-email: jaraco@jaraco.com
-License: UNKNOWN
-Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
-Requires-Python: >=3.6
+Requires-Python: >=3.7
License-File: LICENSE
Provides-Extra: docs
-Requires-Dist: sphinx ; extra == 'docs'
-Requires-Dist: jaraco.packaging (>=8.2) ; extra == 'docs'
+Requires-Dist: sphinx (>=3.5) ; extra == 'docs'
+Requires-Dist: jaraco.packaging (>=9) ; extra == 'docs'
Requires-Dist: rst.linker (>=1.9) ; extra == 'docs'
+Requires-Dist: furo ; extra == 'docs'
+Requires-Dist: jaraco.tidelift (>=1.4) ; extra == 'docs'
Provides-Extra: testing
Requires-Dist: pytest (>=6) ; extra == 'testing'
Requires-Dist: pytest-checkdocs (>=2.4) ; extra == 'testing'
Requires-Dist: pytest-flake8 ; extra == 'testing'
+Requires-Dist: flake8 (<5) ; extra == 'testing'
Requires-Dist: pytest-cov ; extra == 'testing'
-Requires-Dist: pytest-enabler (>=1.0.1) ; extra == 'testing'
+Requires-Dist: pytest-enabler (>=1.3) ; extra == 'testing'
Requires-Dist: pytest-black (>=0.3.7) ; (platform_python_implementation != "PyPy") and extra == 'testing'
-Requires-Dist: pytest-mypy ; (platform_python_implementation != "PyPy") and extra == 'testing'
+Requires-Dist: pytest-mypy (>=0.9.1) ; (platform_python_implementation != "PyPy") and extra == 'testing'
.. image:: https://img.shields.io/pypi/v/jaraco.context.svg
- :target: `PyPI link`_
+ :target: https://pypi.org/project/jaraco.context
.. image:: https://img.shields.io/pypi/pyversions/jaraco.context.svg
- :target: `PyPI link`_
-
-.. _PyPI link: https://pypi.org/project/jaraco.context
.. image:: https://github.com/jaraco/jaraco.context/workflows/tests/badge.svg
:target: https://github.com/jaraco/jaraco.context/actions?query=workflow%3A%22tests%22
@@ -46,7 +44,24 @@ Requires-Dist: pytest-mypy ; (platform_python_implementation != "PyPy") and extr
.. image:: https://readthedocs.org/projects/jaracocontext/badge/?version=latest
:target: https://jaracocontext.readthedocs.io/en/latest/?badge=latest
-.. image:: https://img.shields.io/badge/skeleton-2021-informational
+.. image:: https://img.shields.io/badge/skeleton-2022-informational
:target: https://blog.jaraco.com/skeleton
+.. image:: https://tidelift.com/badges/package/pypi/jaraco.context
+ :target: https://tidelift.com/subscription/pkg/pypi-jaraco.context?utm_source=pypi-jaraco.context&utm_medium=readme
+
+For Enterprise
+==============
+
+Available as part of the Tidelift Subscription.
+
+This project and the maintainers of thousands of other packages are working with Tidelift to deliver one enterprise subscription that covers all of the open source you use.
+
+`Learn more <https://tidelift.com/subscription/pkg/pypi-jaraco.context?utm_source=pypi-jaraco.context&utm_medium=referral&utm_campaign=github>`_.
+
+Security Contact
+================
+To report a security vulnerability, please use the
+`Tidelift security contact <https://tidelift.com/security>`_.
+Tidelift will coordinate the fix and disclosure.
diff --git a/setuptools/_vendor/jaraco.context-4.2.0.dist-info/RECORD b/setuptools/_vendor/jaraco.context-4.2.0.dist-info/RECORD
new file mode 100644
index 00000000..a34ec80e
--- /dev/null
+++ b/setuptools/_vendor/jaraco.context-4.2.0.dist-info/RECORD
@@ -0,0 +1,8 @@
+jaraco.context-4.2.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
+jaraco.context-4.2.0.dist-info/LICENSE,sha256=2z8CRrH5J48VhFuZ_sR4uLUG63ZIeZNyL4xuJUKF-vg,1050
+jaraco.context-4.2.0.dist-info/METADATA,sha256=6gWxpGoBWTzl4e8J1HisvNsL79YB4t1DG7ziQj-0k9Y,2883
+jaraco.context-4.2.0.dist-info/RECORD,,
+jaraco.context-4.2.0.dist-info/WHEEL,sha256=2wepM1nk4DS4eFpYrW1TTqPcoGNfHhhO_i5m4cOimbo,92
+jaraco.context-4.2.0.dist-info/top_level.txt,sha256=0JnN3LfXH4LIRfXL-QFOGCJzQWZO3ELx4R1d_louoQM,7
+jaraco/__pycache__/context.cpython-311.pyc,,
+jaraco/context.py,sha256=NvdB7ArVCDrhtexOnOwSv4ScDuueGbf9LRiOSCqPn6Y,6488
diff --git a/pkg_resources/_vendor/more_itertools-8.12.0.dist-info/WHEEL b/setuptools/_vendor/jaraco.context-4.2.0.dist-info/WHEEL
index 5bad85fd..57e3d840 100644
--- a/pkg_resources/_vendor/more_itertools-8.12.0.dist-info/WHEEL
+++ b/setuptools/_vendor/jaraco.context-4.2.0.dist-info/WHEEL
@@ -1,5 +1,5 @@
Wheel-Version: 1.0
-Generator: bdist_wheel (0.37.0)
+Generator: bdist_wheel (0.38.4)
Root-Is-Purelib: true
Tag: py3-none-any
diff --git a/setuptools/_vendor/jaraco.context-4.1.1.dist-info/top_level.txt b/setuptools/_vendor/jaraco.context-4.2.0.dist-info/top_level.txt
index f6205a5f..f6205a5f 100644
--- a/setuptools/_vendor/jaraco.context-4.1.1.dist-info/top_level.txt
+++ b/setuptools/_vendor/jaraco.context-4.2.0.dist-info/top_level.txt
diff --git a/setuptools/_vendor/jaraco.functools-3.5.0.dist-info/INSTALLER b/setuptools/_vendor/jaraco.functools-3.5.0.dist-info/INSTALLER
deleted file mode 100644
index a1b589e3..00000000
--- a/setuptools/_vendor/jaraco.functools-3.5.0.dist-info/INSTALLER
+++ /dev/null
@@ -1 +0,0 @@
-pip
diff --git a/setuptools/_vendor/jaraco.functools-3.5.0.dist-info/RECORD b/setuptools/_vendor/jaraco.functools-3.5.0.dist-info/RECORD
deleted file mode 100644
index fbda3d1f..00000000
--- a/setuptools/_vendor/jaraco.functools-3.5.0.dist-info/RECORD
+++ /dev/null
@@ -1,8 +0,0 @@
-jaraco.functools-3.5.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
-jaraco.functools-3.5.0.dist-info/LICENSE,sha256=2z8CRrH5J48VhFuZ_sR4uLUG63ZIeZNyL4xuJUKF-vg,1050
-jaraco.functools-3.5.0.dist-info/METADATA,sha256=cE9C7u9bo_GjLAuw4nML67a25kUaPDiHn4j03lG4jd0,2276
-jaraco.functools-3.5.0.dist-info/RECORD,,
-jaraco.functools-3.5.0.dist-info/WHEEL,sha256=ewwEueio1C2XeHTvT17n8dZUJgOvyCWCt0WVNLClP9o,92
-jaraco.functools-3.5.0.dist-info/top_level.txt,sha256=0JnN3LfXH4LIRfXL-QFOGCJzQWZO3ELx4R1d_louoQM,7
-jaraco/__pycache__/functools.cpython-310.pyc,,
-jaraco/functools.py,sha256=PtEHbXZstgVJrwje4GvJOsz5pEbgslOcgEn2EJNpr2c,13494
diff --git a/setuptools/_vendor/jaraco.functools-3.5.0.dist-info/WHEEL b/setuptools/_vendor/jaraco.functools-3.5.0.dist-info/WHEEL
deleted file mode 100644
index 5bad85fd..00000000
--- a/setuptools/_vendor/jaraco.functools-3.5.0.dist-info/WHEEL
+++ /dev/null
@@ -1,5 +0,0 @@
-Wheel-Version: 1.0
-Generator: bdist_wheel (0.37.0)
-Root-Is-Purelib: true
-Tag: py3-none-any
-
diff --git a/setuptools/_vendor/jaraco.context-4.1.1.dist-info/INSTALLER b/setuptools/_vendor/jaraco.functools-3.5.2.dist-info/INSTALLER
index a1b589e3..a1b589e3 100644
--- a/setuptools/_vendor/jaraco.context-4.1.1.dist-info/INSTALLER
+++ b/setuptools/_vendor/jaraco.functools-3.5.2.dist-info/INSTALLER
diff --git a/setuptools/_vendor/jaraco.functools-3.5.0.dist-info/LICENSE b/setuptools/_vendor/jaraco.functools-3.5.2.dist-info/LICENSE
index 353924be..353924be 100644
--- a/setuptools/_vendor/jaraco.functools-3.5.0.dist-info/LICENSE
+++ b/setuptools/_vendor/jaraco.functools-3.5.2.dist-info/LICENSE
diff --git a/setuptools/_vendor/jaraco.functools-3.5.0.dist-info/METADATA b/setuptools/_vendor/jaraco.functools-3.5.2.dist-info/METADATA
index 12dfbdd0..fa8f0211 100644
--- a/setuptools/_vendor/jaraco.functools-3.5.0.dist-info/METADATA
+++ b/setuptools/_vendor/jaraco.functools-3.5.2.dist-info/METADATA
@@ -1,12 +1,10 @@
Metadata-Version: 2.1
Name: jaraco.functools
-Version: 3.5.0
+Version: 3.5.2
Summary: Functools like those found in stdlib
Home-page: https://github.com/jaraco/jaraco.functools
Author: Jason R. Coombs
Author-email: jaraco@jaraco.com
-License: UNKNOWN
-Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
@@ -16,18 +14,20 @@ Requires-Python: >=3.7
License-File: LICENSE
Requires-Dist: more-itertools
Provides-Extra: docs
-Requires-Dist: sphinx ; extra == 'docs'
-Requires-Dist: jaraco.packaging (>=8.2) ; extra == 'docs'
+Requires-Dist: sphinx (>=3.5) ; extra == 'docs'
+Requires-Dist: jaraco.packaging (>=9) ; extra == 'docs'
Requires-Dist: rst.linker (>=1.9) ; extra == 'docs'
+Requires-Dist: jaraco.tidelift (>=1.4) ; extra == 'docs'
Provides-Extra: testing
Requires-Dist: pytest (>=6) ; extra == 'testing'
Requires-Dist: pytest-checkdocs (>=2.4) ; extra == 'testing'
Requires-Dist: pytest-flake8 ; extra == 'testing'
+Requires-Dist: flake8 (<5) ; extra == 'testing'
Requires-Dist: pytest-cov ; extra == 'testing'
-Requires-Dist: pytest-enabler (>=1.0.1) ; extra == 'testing'
+Requires-Dist: pytest-enabler (>=1.3) ; extra == 'testing'
Requires-Dist: jaraco.classes ; extra == 'testing'
Requires-Dist: pytest-black (>=0.3.7) ; (platform_python_implementation != "PyPy") and extra == 'testing'
-Requires-Dist: pytest-mypy ; (platform_python_implementation != "PyPy") and extra == 'testing'
+Requires-Dist: pytest-mypy (>=0.9.1) ; (platform_python_implementation != "PyPy") and extra == 'testing'
.. image:: https://img.shields.io/pypi/v/jaraco.functools.svg
:target: `PyPI link`_
@@ -50,9 +50,26 @@ Requires-Dist: pytest-mypy ; (platform_python_implementation != "PyPy") and extr
.. image:: https://readthedocs.org/projects/jaracofunctools/badge/?version=latest
:target: https://jaracofunctools.readthedocs.io/en/latest/?badge=latest
-.. image:: https://img.shields.io/badge/skeleton-2021-informational
+.. image:: https://img.shields.io/badge/skeleton-2022-informational
:target: https://blog.jaraco.com/skeleton
+.. image:: https://tidelift.com/badges/package/pypi/jaraco.functools
+ :target: https://tidelift.com/subscription/pkg/pypi-jaraco.functools?utm_source=pypi-jaraco.functools&utm_medium=readme
+
Additional functools in the spirit of stdlib's functools.
+For Enterprise
+==============
+
+Available as part of the Tidelift Subscription.
+
+This project and the maintainers of thousands of other packages are working with Tidelift to deliver one enterprise subscription that covers all of the open source you use.
+
+`Learn more <https://tidelift.com/subscription/pkg/pypi-jaraco.functools?utm_source=pypi-jaraco.functools&utm_medium=referral&utm_campaign=github>`_.
+
+Security Contact
+================
+To report a security vulnerability, please use the
+`Tidelift security contact <https://tidelift.com/security>`_.
+Tidelift will coordinate the fix and disclosure.
diff --git a/setuptools/_vendor/jaraco.functools-3.5.2.dist-info/RECORD b/setuptools/_vendor/jaraco.functools-3.5.2.dist-info/RECORD
new file mode 100644
index 00000000..127b8267
--- /dev/null
+++ b/setuptools/_vendor/jaraco.functools-3.5.2.dist-info/RECORD
@@ -0,0 +1,8 @@
+jaraco.functools-3.5.2.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
+jaraco.functools-3.5.2.dist-info/LICENSE,sha256=2z8CRrH5J48VhFuZ_sR4uLUG63ZIeZNyL4xuJUKF-vg,1050
+jaraco.functools-3.5.2.dist-info/METADATA,sha256=ZIViwS4ZOmaWwA5ArwZ_xXQGR9WDnUSzx-0MO5kGPi8,3154
+jaraco.functools-3.5.2.dist-info/RECORD,,
+jaraco.functools-3.5.2.dist-info/WHEEL,sha256=G16H4A3IeoQmnOrYV4ueZGKSjhipXx8zc8nu9FGlvMA,92
+jaraco.functools-3.5.2.dist-info/top_level.txt,sha256=0JnN3LfXH4LIRfXL-QFOGCJzQWZO3ELx4R1d_louoQM,7
+jaraco/__pycache__/functools.cpython-311.pyc,,
+jaraco/functools.py,sha256=PtEHbXZstgVJrwje4GvJOsz5pEbgslOcgEn2EJNpr2c,13494
diff --git a/setuptools/_vendor/jaraco.context-4.1.1.dist-info/WHEEL b/setuptools/_vendor/jaraco.functools-3.5.2.dist-info/WHEEL
index 5bad85fd..becc9a66 100644
--- a/setuptools/_vendor/jaraco.context-4.1.1.dist-info/WHEEL
+++ b/setuptools/_vendor/jaraco.functools-3.5.2.dist-info/WHEEL
@@ -1,5 +1,5 @@
Wheel-Version: 1.0
-Generator: bdist_wheel (0.37.0)
+Generator: bdist_wheel (0.37.1)
Root-Is-Purelib: true
Tag: py3-none-any
diff --git a/setuptools/_vendor/jaraco.functools-3.5.0.dist-info/top_level.txt b/setuptools/_vendor/jaraco.functools-3.5.2.dist-info/top_level.txt
index f6205a5f..f6205a5f 100644
--- a/setuptools/_vendor/jaraco.functools-3.5.0.dist-info/top_level.txt
+++ b/setuptools/_vendor/jaraco.functools-3.5.2.dist-info/top_level.txt
diff --git a/setuptools/_vendor/jaraco.text-3.7.0.dist-info/RECORD b/setuptools/_vendor/jaraco.text-3.7.0.dist-info/RECORD
index 916ad7d3..dd471b07 100644
--- a/setuptools/_vendor/jaraco.text-3.7.0.dist-info/RECORD
+++ b/setuptools/_vendor/jaraco.text-3.7.0.dist-info/RECORD
@@ -7,4 +7,4 @@ jaraco.text-3.7.0.dist-info/WHEEL,sha256=G16H4A3IeoQmnOrYV4ueZGKSjhipXx8zc8nu9FG
jaraco.text-3.7.0.dist-info/top_level.txt,sha256=0JnN3LfXH4LIRfXL-QFOGCJzQWZO3ELx4R1d_louoQM,7
jaraco/text/Lorem ipsum.txt,sha256=N_7c_79zxOufBY9HZ3yzMgOkNv-TkOTTio4BydrSjgs,1335
jaraco/text/__init__.py,sha256=I56MW2ZFwPrYXIxzqxMBe2A1t-T4uZBgEgAKe9-JoqM,15538
-jaraco/text/__pycache__/__init__.cpython-310.pyc,,
+jaraco/text/__pycache__/__init__.cpython-311.pyc,,
diff --git a/setuptools/_vendor/jaraco/context.py b/setuptools/_vendor/jaraco/context.py
index 87a4e3dc..818f16f3 100644
--- a/setuptools/_vendor/jaraco/context.py
+++ b/setuptools/_vendor/jaraco/context.py
@@ -211,3 +211,43 @@ class suppress(contextlib.suppress, contextlib.ContextDecorator):
... {}['']
>>> key_error()
"""
+
+
+class on_interrupt(contextlib.ContextDecorator):
+ """
+ Replace a KeyboardInterrupt with SystemExit(1)
+
+ >>> def do_interrupt():
+ ... raise KeyboardInterrupt()
+ >>> on_interrupt('error')(do_interrupt)()
+ Traceback (most recent call last):
+ ...
+ SystemExit: 1
+ >>> on_interrupt('error', code=255)(do_interrupt)()
+ Traceback (most recent call last):
+ ...
+ SystemExit: 255
+ >>> on_interrupt('suppress')(do_interrupt)()
+ >>> with __import__('pytest').raises(KeyboardInterrupt):
+ ... on_interrupt('ignore')(do_interrupt)()
+ """
+
+ def __init__(
+ self,
+ action='error',
+ # py3.7 compat
+ # /,
+ code=1,
+ ):
+ self.action = action
+ self.code = code
+
+ def __enter__(self):
+ return self
+
+ def __exit__(self, exctype, excinst, exctb):
+ if exctype is not KeyboardInterrupt or self.action == 'ignore':
+ return
+ elif self.action == 'error':
+ raise SystemExit(self.code) from excinst
+ return self.action == 'suppress'
diff --git a/setuptools/_vendor/more_itertools-8.8.0.dist-info/RECORD b/setuptools/_vendor/more_itertools-8.8.0.dist-info/RECORD
index 36ffbd86..c3cbb833 100644
--- a/setuptools/_vendor/more_itertools-8.8.0.dist-info/RECORD
+++ b/setuptools/_vendor/more_itertools-8.8.0.dist-info/RECORD
@@ -7,9 +7,9 @@ more_itertools-8.8.0.dist-info/WHEEL,sha256=OqRkF0eY5GHssMorFjlbTIq072vpHpF60fIQ
more_itertools-8.8.0.dist-info/top_level.txt,sha256=fAuqRXu9LPhxdB9ujJowcFOu1rZ8wzSpOW9_jlKis6M,15
more_itertools/__init__.py,sha256=C7sXffHTXM3P-iaLPPfqfmDoxOflQMJLcM7ed9p3jak,82
more_itertools/__init__.pyi,sha256=5B3eTzON1BBuOLob1vCflyEb2lSd6usXQQ-Cv-hXkeA,43
-more_itertools/__pycache__/__init__.cpython-310.pyc,,
-more_itertools/__pycache__/more.cpython-310.pyc,,
-more_itertools/__pycache__/recipes.cpython-310.pyc,,
+more_itertools/__pycache__/__init__.cpython-311.pyc,,
+more_itertools/__pycache__/more.cpython-311.pyc,,
+more_itertools/__pycache__/recipes.cpython-311.pyc,,
more_itertools/more.py,sha256=DlZa8v6JihVwfQ5zHidOA-xDE0orcQIUyxVnCaUoDKE,117968
more_itertools/more.pyi,sha256=r32pH2raBC1zih3evK4fyvAXvrUamJqc6dgV7QCRL_M,14977
more_itertools/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
diff --git a/setuptools/_vendor/ordered_set-3.1.1.dist-info/METADATA b/setuptools/_vendor/ordered_set-3.1.1.dist-info/METADATA
index db6e12f2..4c64d142 100644
--- a/setuptools/_vendor/ordered_set-3.1.1.dist-info/METADATA
+++ b/setuptools/_vendor/ordered_set-3.1.1.dist-info/METADATA
@@ -153,5 +153,3 @@ look up an entry by its index.
OrderedSet is automatically tested on Python 2.7, 3.4, 3.5, 3.6, and 3.7.
We've checked more informally that it works on PyPy and PyPy3.
-
-
diff --git a/setuptools/_vendor/ordered_set-3.1.1.dist-info/RECORD b/setuptools/_vendor/ordered_set-3.1.1.dist-info/RECORD
index 89579a07..6d85b247 100644
--- a/setuptools/_vendor/ordered_set-3.1.1.dist-info/RECORD
+++ b/setuptools/_vendor/ordered_set-3.1.1.dist-info/RECORD
@@ -1,9 +1,9 @@
-__pycache__/ordered_set.cpython-310.pyc,,
+__pycache__/ordered_set.cpython-311.pyc,,
ordered_set-3.1.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
-ordered_set-3.1.1.dist-info/METADATA,sha256=uGvfFaNmhcl69lGdHmyOXc30N3U6Jn8DByfh_VHEPpw,5359
+ordered_set-3.1.1.dist-info/METADATA,sha256=qEaJM9CbGNixB_jvfohisKbXTUjcef6nCCcBJju6f4U,5357
ordered_set-3.1.1.dist-info/MIT-LICENSE,sha256=TvRE7qUSUBcd0ols7wgNf3zDEEJWW7kv7WDRySrMBBE,1071
ordered_set-3.1.1.dist-info/RECORD,,
ordered_set-3.1.1.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
-ordered_set-3.1.1.dist-info/WHEEL,sha256=z9j0xAa_JmUKMpmz72K0ZGALSM_n-wQVmGbleXx2VHg,110
+ordered_set-3.1.1.dist-info/WHEEL,sha256=bb2Ot9scclHKMOLDEHY6B2sicWOgugjFKaJsT7vwMQo,110
ordered_set-3.1.1.dist-info/top_level.txt,sha256=NTY2_aDi1Do9fl3Z9EmWPxasFkUeW2dzO2D3RDx5CfM,12
ordered_set.py,sha256=dbaCcs27dyN9gnMWGF5nA_BrVn6Q-NrjKYJpV9_fgBs,15130
diff --git a/setuptools/_vendor/ordered_set-3.1.1.dist-info/WHEEL b/setuptools/_vendor/ordered_set-3.1.1.dist-info/WHEEL
index 0b18a281..9d8f872b 100644
--- a/setuptools/_vendor/ordered_set-3.1.1.dist-info/WHEEL
+++ b/setuptools/_vendor/ordered_set-3.1.1.dist-info/WHEEL
@@ -1,5 +1,5 @@
Wheel-Version: 1.0
-Generator: bdist_wheel (0.37.1)
+Generator: bdist_wheel (0.38.4)
Root-Is-Purelib: true
Tag: py2-none-any
Tag: py3-none-any
diff --git a/setuptools/_vendor/packaging-21.3.dist-info/RECORD b/setuptools/_vendor/packaging-21.3.dist-info/RECORD
index 97cace10..77b1ed96 100644
--- a/setuptools/_vendor/packaging-21.3.dist-info/RECORD
+++ b/setuptools/_vendor/packaging-21.3.dist-info/RECORD
@@ -9,17 +9,17 @@ packaging-21.3.dist-info/WHEEL,sha256=ewwEueio1C2XeHTvT17n8dZUJgOvyCWCt0WVNLClP9
packaging-21.3.dist-info/top_level.txt,sha256=zFdHrhWnPslzsiP455HutQsqPB6v0KCtNUMtUtrefDw,10
packaging/__about__.py,sha256=ugASIO2w1oUyH8_COqQ2X_s0rDhjbhQC3yJocD03h2c,661
packaging/__init__.py,sha256=b9Kk5MF7KxhhLgcDmiUWukN-LatWFxPdNug0joPhHSk,497
-packaging/__pycache__/__about__.cpython-310.pyc,,
-packaging/__pycache__/__init__.cpython-310.pyc,,
-packaging/__pycache__/_manylinux.cpython-310.pyc,,
-packaging/__pycache__/_musllinux.cpython-310.pyc,,
-packaging/__pycache__/_structures.cpython-310.pyc,,
-packaging/__pycache__/markers.cpython-310.pyc,,
-packaging/__pycache__/requirements.cpython-310.pyc,,
-packaging/__pycache__/specifiers.cpython-310.pyc,,
-packaging/__pycache__/tags.cpython-310.pyc,,
-packaging/__pycache__/utils.cpython-310.pyc,,
-packaging/__pycache__/version.cpython-310.pyc,,
+packaging/__pycache__/__about__.cpython-311.pyc,,
+packaging/__pycache__/__init__.cpython-311.pyc,,
+packaging/__pycache__/_manylinux.cpython-311.pyc,,
+packaging/__pycache__/_musllinux.cpython-311.pyc,,
+packaging/__pycache__/_structures.cpython-311.pyc,,
+packaging/__pycache__/markers.cpython-311.pyc,,
+packaging/__pycache__/requirements.cpython-311.pyc,,
+packaging/__pycache__/specifiers.cpython-311.pyc,,
+packaging/__pycache__/tags.cpython-311.pyc,,
+packaging/__pycache__/utils.cpython-311.pyc,,
+packaging/__pycache__/version.cpython-311.pyc,,
packaging/_manylinux.py,sha256=XcbiXB-qcjv3bcohp6N98TMpOP4_j3m-iOA8ptK2GWY,11488
packaging/_musllinux.py,sha256=_KGgY_qc7vhMGpoqss25n2hiLCNKRtvz9mCrS7gkqyc,4378
packaging/_structures.py,sha256=q3eVNmbWJGG_S0Dit_S3Ao8qQqz_5PYTXFAKBZe5yr4,1431
diff --git a/setuptools/_vendor/pyparsing-3.0.9.dist-info/RECORD b/setuptools/_vendor/pyparsing-3.0.9.dist-info/RECORD
index 7a4e49ab..b07b9bd0 100644
--- a/setuptools/_vendor/pyparsing-3.0.9.dist-info/RECORD
+++ b/setuptools/_vendor/pyparsing-3.0.9.dist-info/RECORD
@@ -1,29 +1,29 @@
-pyparsing-3.0.9.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
-pyparsing-3.0.9.dist-info/LICENSE,sha256=ENUSChaAWAT_2otojCIL-06POXQbVzIGBNRVowngGXI,1023
-pyparsing-3.0.9.dist-info/METADATA,sha256=h_fpm9rwvgZsE8v5YNF4IAo-IpaFWCOfUEm5MMByIiM,4207
-pyparsing-3.0.9.dist-info/RECORD,,
-pyparsing-3.0.9.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
-pyparsing-3.0.9.dist-info/WHEEL,sha256=jPMR_Dzkc4X4icQtmz81lnNY_kAsfog7ry7qoRvYLXw,81
-pyparsing/__init__.py,sha256=52QH3lgPbJhba0estckoGPHRH8JvQSSCGoWiEn2m0bU,9159
-pyparsing/__pycache__/__init__.cpython-38.pyc,,
-pyparsing/__pycache__/actions.cpython-38.pyc,,
-pyparsing/__pycache__/common.cpython-38.pyc,,
-pyparsing/__pycache__/core.cpython-38.pyc,,
-pyparsing/__pycache__/exceptions.cpython-38.pyc,,
-pyparsing/__pycache__/helpers.cpython-38.pyc,,
-pyparsing/__pycache__/results.cpython-38.pyc,,
-pyparsing/__pycache__/testing.cpython-38.pyc,,
-pyparsing/__pycache__/unicode.cpython-38.pyc,,
-pyparsing/__pycache__/util.cpython-38.pyc,,
-pyparsing/actions.py,sha256=wU9i32e0y1ymxKE3OUwSHO-SFIrt1h_wv6Ws0GQjpNU,6426
-pyparsing/common.py,sha256=lFL97ooIeR75CmW5hjURZqwDCTgruqltcTCZ-ulLO2Q,12936
-pyparsing/core.py,sha256=u8GptQE_H6wMkl8OZhxeK1aAPIDXXNgwdShORBwBVS4,213310
-pyparsing/diagram/__init__.py,sha256=f_EfxahqrdkRVahmTwLJXkZ9EEDKNd-O7lBbpJYlE1g,23668
-pyparsing/diagram/__pycache__/__init__.cpython-38.pyc,,
-pyparsing/exceptions.py,sha256=3LbSafD32NYb1Tzt85GHNkhEAU1eZkTtNSk24cPMemo,9023
-pyparsing/helpers.py,sha256=QpUOjW0-psvueMwWb9bQpU2noqKCv98_wnw1VSzSdVo,39129
-pyparsing/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
-pyparsing/results.py,sha256=HgNvWVXBdQP-Q6PtJfoCEeOJk2nwEvG-2KVKC5sGA30,25341
-pyparsing/testing.py,sha256=7tu4Abp4uSeJV0N_yEPRmmNUhpd18ZQP3CrX41DM814,13402
-pyparsing/unicode.py,sha256=fwuhMj30SQ165Cv7HJpu-rSxGbRm93kN9L4Ei7VGc1Y,10787
-pyparsing/util.py,sha256=kq772O5YSeXOSdP-M31EWpbH_ayj7BMHImBYo9xPD5M,6805
+pyparsing-3.0.9.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
+pyparsing-3.0.9.dist-info/LICENSE,sha256=ENUSChaAWAT_2otojCIL-06POXQbVzIGBNRVowngGXI,1023
+pyparsing-3.0.9.dist-info/METADATA,sha256=h_fpm9rwvgZsE8v5YNF4IAo-IpaFWCOfUEm5MMByIiM,4207
+pyparsing-3.0.9.dist-info/RECORD,,
+pyparsing-3.0.9.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+pyparsing-3.0.9.dist-info/WHEEL,sha256=jPMR_Dzkc4X4icQtmz81lnNY_kAsfog7ry7qoRvYLXw,81
+pyparsing/__init__.py,sha256=52QH3lgPbJhba0estckoGPHRH8JvQSSCGoWiEn2m0bU,9159
+pyparsing/__pycache__/__init__.cpython-311.pyc,,
+pyparsing/__pycache__/actions.cpython-311.pyc,,
+pyparsing/__pycache__/common.cpython-311.pyc,,
+pyparsing/__pycache__/core.cpython-311.pyc,,
+pyparsing/__pycache__/exceptions.cpython-311.pyc,,
+pyparsing/__pycache__/helpers.cpython-311.pyc,,
+pyparsing/__pycache__/results.cpython-311.pyc,,
+pyparsing/__pycache__/testing.cpython-311.pyc,,
+pyparsing/__pycache__/unicode.cpython-311.pyc,,
+pyparsing/__pycache__/util.cpython-311.pyc,,
+pyparsing/actions.py,sha256=wU9i32e0y1ymxKE3OUwSHO-SFIrt1h_wv6Ws0GQjpNU,6426
+pyparsing/common.py,sha256=lFL97ooIeR75CmW5hjURZqwDCTgruqltcTCZ-ulLO2Q,12936
+pyparsing/core.py,sha256=u8GptQE_H6wMkl8OZhxeK1aAPIDXXNgwdShORBwBVS4,213310
+pyparsing/diagram/__init__.py,sha256=f_EfxahqrdkRVahmTwLJXkZ9EEDKNd-O7lBbpJYlE1g,23668
+pyparsing/diagram/__pycache__/__init__.cpython-311.pyc,,
+pyparsing/exceptions.py,sha256=3LbSafD32NYb1Tzt85GHNkhEAU1eZkTtNSk24cPMemo,9023
+pyparsing/helpers.py,sha256=QpUOjW0-psvueMwWb9bQpU2noqKCv98_wnw1VSzSdVo,39129
+pyparsing/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+pyparsing/results.py,sha256=HgNvWVXBdQP-Q6PtJfoCEeOJk2nwEvG-2KVKC5sGA30,25341
+pyparsing/testing.py,sha256=7tu4Abp4uSeJV0N_yEPRmmNUhpd18ZQP3CrX41DM814,13402
+pyparsing/unicode.py,sha256=fwuhMj30SQ165Cv7HJpu-rSxGbRm93kN9L4Ei7VGc1Y,10787
+pyparsing/util.py,sha256=kq772O5YSeXOSdP-M31EWpbH_ayj7BMHImBYo9xPD5M,6805
diff --git a/setuptools/_vendor/tomli-2.0.1.dist-info/RECORD b/setuptools/_vendor/tomli-2.0.1.dist-info/RECORD
index 2d93fa2c..5f7a6b06 100644
--- a/setuptools/_vendor/tomli-2.0.1.dist-info/RECORD
+++ b/setuptools/_vendor/tomli-2.0.1.dist-info/RECORD
@@ -1,15 +1,15 @@
-tomli-2.0.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
-tomli-2.0.1.dist-info/LICENSE,sha256=uAgWsNUwuKzLTCIReDeQmEpuO2GSLCte6S8zcqsnQv4,1072
-tomli-2.0.1.dist-info/METADATA,sha256=zPDceKmPwJGLWtZykrHixL7WVXWmJGzZ1jyRT5lCoPI,8875
-tomli-2.0.1.dist-info/RECORD,,
-tomli-2.0.1.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
-tomli-2.0.1.dist-info/WHEEL,sha256=jPMR_Dzkc4X4icQtmz81lnNY_kAsfog7ry7qoRvYLXw,81
-tomli/__init__.py,sha256=JhUwV66DB1g4Hvt1UQCVMdfCu-IgAV8FXmvDU9onxd4,396
-tomli/__pycache__/__init__.cpython-38.pyc,,
-tomli/__pycache__/_parser.cpython-38.pyc,,
-tomli/__pycache__/_re.cpython-38.pyc,,
-tomli/__pycache__/_types.cpython-38.pyc,,
-tomli/_parser.py,sha256=g9-ENaALS-B8dokYpCuzUFalWlog7T-SIYMjLZSWrtM,22633
-tomli/_re.py,sha256=dbjg5ChZT23Ka9z9DHOXfdtSpPwUfdgMXnj8NOoly-w,2943
-tomli/_types.py,sha256=-GTG2VUqkpxwMqzmVO4F7ybKddIbAnuAHXfmWQcTi3Q,254
-tomli/py.typed,sha256=8PjyZ1aVoQpRVvt71muvuq5qE-jTFZkK-GLHkhdebmc,26
+tomli-2.0.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
+tomli-2.0.1.dist-info/LICENSE,sha256=uAgWsNUwuKzLTCIReDeQmEpuO2GSLCte6S8zcqsnQv4,1072
+tomli-2.0.1.dist-info/METADATA,sha256=zPDceKmPwJGLWtZykrHixL7WVXWmJGzZ1jyRT5lCoPI,8875
+tomli-2.0.1.dist-info/RECORD,,
+tomli-2.0.1.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+tomli-2.0.1.dist-info/WHEEL,sha256=jPMR_Dzkc4X4icQtmz81lnNY_kAsfog7ry7qoRvYLXw,81
+tomli/__init__.py,sha256=JhUwV66DB1g4Hvt1UQCVMdfCu-IgAV8FXmvDU9onxd4,396
+tomli/__pycache__/__init__.cpython-311.pyc,,
+tomli/__pycache__/_parser.cpython-311.pyc,,
+tomli/__pycache__/_re.cpython-311.pyc,,
+tomli/__pycache__/_types.cpython-311.pyc,,
+tomli/_parser.py,sha256=g9-ENaALS-B8dokYpCuzUFalWlog7T-SIYMjLZSWrtM,22633
+tomli/_re.py,sha256=dbjg5ChZT23Ka9z9DHOXfdtSpPwUfdgMXnj8NOoly-w,2943
+tomli/_types.py,sha256=-GTG2VUqkpxwMqzmVO4F7ybKddIbAnuAHXfmWQcTi3Q,254
+tomli/py.typed,sha256=8PjyZ1aVoQpRVvt71muvuq5qE-jTFZkK-GLHkhdebmc,26
diff --git a/setuptools/_vendor/typing_extensions-4.0.1.dist-info/RECORD b/setuptools/_vendor/typing_extensions-4.0.1.dist-info/RECORD
index 9a7f6007..786de854 100644
--- a/setuptools/_vendor/typing_extensions-4.0.1.dist-info/RECORD
+++ b/setuptools/_vendor/typing_extensions-4.0.1.dist-info/RECORD
@@ -1,4 +1,4 @@
-__pycache__/typing_extensions.cpython-310.pyc,,
+__pycache__/typing_extensions.cpython-311.pyc,,
typing_extensions-4.0.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
typing_extensions-4.0.1.dist-info/LICENSE,sha256=_xfOlOECAk3raHc-scx0ynbaTmWPNzUx8Kwi1oprsa0,12755
typing_extensions-4.0.1.dist-info/METADATA,sha256=iZ_5HONZZBXtF4kroz-IPZYIl9M8IE1B00R82dWcBqE,1736
diff --git a/setuptools/_vendor/zipp-3.7.0.dist-info/RECORD b/setuptools/_vendor/zipp-3.7.0.dist-info/RECORD
index 38d0b21a..0a88551c 100644
--- a/setuptools/_vendor/zipp-3.7.0.dist-info/RECORD
+++ b/setuptools/_vendor/zipp-3.7.0.dist-info/RECORD
@@ -1,4 +1,4 @@
-__pycache__/zipp.cpython-310.pyc,,
+__pycache__/zipp.cpython-311.pyc,,
zipp-3.7.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
zipp-3.7.0.dist-info/LICENSE,sha256=2z8CRrH5J48VhFuZ_sR4uLUG63ZIeZNyL4xuJUKF-vg,1050
zipp-3.7.0.dist-info/METADATA,sha256=ZLzgaXTyZX_MxTU0lcGfhdPY4CjFrT_3vyQ2Fo49pl8,2261