From 76f9a33e459243064d16a1089b3ab5ab754f55b0 Mon Sep 17 00:00:00 2001 From: Brad Warren Date: Wed, 15 Nov 2023 00:52:37 -0800 Subject: [PATCH] Upgrade the pinned version of pylint (#9839) * upgrade pylint * fix upgraded pylint * downgrade pyopenssl * remove unneeded ignores * stop using text * update sphinx-rtd-theme --- .pylintrc | 6 +- acme/acme/client.py | 3 +- acme/acme/jws.py | 4 +- .../configurators/apache/common.py | 2 +- .../certbot_nginx/_internal/configurator.py | 3 +- certbot/certbot/_internal/constants.py | 2 +- certbot/certbot/_internal/plugins/disco.py | 1 + linter_plugin.py | 2 - tools/pinning/current/pyproject.toml | 2 +- tools/requirements.txt | 87 +++++++++---------- 10 files changed, 54 insertions(+), 58 deletions(-) diff --git a/.pylintrc b/.pylintrc index e37ba1fc7..6689b9a43 100644 --- a/.pylintrc +++ b/.pylintrc @@ -69,7 +69,7 @@ ignored-modules= # CERTBOT COMMENT # This is needed for pylint to import linter_plugin.py since # https://github.com/PyCQA/pylint/pull/3396. -init-hook="import pylint.config, os, sys; sys.path.append(os.path.dirname(pylint.config.PYLINTRC))" +init-hook="import pylint.config, os, sys; sys.path.append(os.path.dirname(next(pylint.config.find_default_config_files())))" # Use multiple processes to speed up Pylint. Specifying 0 will auto-detect the # number of processors available to use, and will cap the count on Windows to @@ -266,8 +266,8 @@ valid-metaclass-classmethod-first-arg=cls [EXCEPTIONS] # Exceptions that will emit a warning when caught. -overgeneral-exceptions=BaseException, - Exception +overgeneral-exceptions=builtins.BaseException, + builtins.Exception [FORMAT] diff --git a/acme/acme/client.py b/acme/acme/client.py index ee1dd86ab..778e86ee8 100644 --- a/acme/acme/client.py +++ b/acme/acme/client.py @@ -12,7 +12,6 @@ from typing import List from typing import Mapping from typing import Optional from typing import Set -from typing import Text from typing import Tuple from typing import Union @@ -517,7 +516,7 @@ class ClientNetwork: self.account = account self.alg = alg self.verify_ssl = verify_ssl - self._nonces: Set[Text] = set() + self._nonces: Set[str] = set() self.user_agent = user_agent self.session = requests.Session() self._default_timeout = timeout diff --git a/acme/acme/jws.py b/acme/acme/jws.py index 2a9627c6d..4b6a2c0ea 100644 --- a/acme/acme/jws.py +++ b/acme/acme/jws.py @@ -29,7 +29,7 @@ class Header(jose.Header): class Signature(jose.Signature): """ACME-specific Signature. Uses ACME-specific Header for customer fields.""" - __slots__ = jose.Signature._orig_slots # type: ignore[attr-defined] # pylint: disable=protected-access,no-member + __slots__ = jose.Signature._orig_slots # pylint: disable=protected-access,no-member # TODO: decoder/encoder should accept cls? Otherwise, subclassing # JSONObjectWithFields is tricky... @@ -44,7 +44,7 @@ class Signature(jose.Signature): class JWS(jose.JWS): """ACME-specific JWS. Includes none, url, and kid in protected header.""" signature_cls = Signature - __slots__ = jose.JWS._orig_slots # type: ignore[attr-defined] # pylint: disable=protected-access + __slots__ = jose.JWS._orig_slots # pylint: disable=protected-access @classmethod # type: ignore[override] # pylint: disable=arguments-differ diff --git a/certbot-compatibility-test/certbot_compatibility_test/configurators/apache/common.py b/certbot-compatibility-test/certbot_compatibility_test/configurators/apache/common.py index ca8a02b18..1aecbf523 100644 --- a/certbot-compatibility-test/certbot_compatibility_test/configurators/apache/common.py +++ b/certbot-compatibility-test/certbot_compatibility_test/configurators/apache/common.py @@ -75,7 +75,7 @@ def _get_server_root(config: str) -> str: if os.path.isdir(os.path.join(config, name))] if len(subdirs) != 1: - errors.Error("Malformed configuration directory {0}".format(config)) + raise errors.Error("Malformed configuration directory {0}".format(config)) return os.path.join(config, subdirs[0].rstrip()) diff --git a/certbot-nginx/certbot_nginx/_internal/configurator.py b/certbot-nginx/certbot_nginx/_internal/configurator.py index ebba025e2..968bc27bf 100644 --- a/certbot-nginx/certbot_nginx/_internal/configurator.py +++ b/certbot-nginx/certbot_nginx/_internal/configurator.py @@ -18,7 +18,6 @@ from typing import Mapping from typing import Optional from typing import Sequence from typing import Set -from typing import Text from typing import Tuple from typing import Type from typing import Union @@ -1275,7 +1274,7 @@ def nginx_restart(nginx_ctl: str, nginx_conf: str, sleep_duration: int) -> None: """ try: - reload_output: Text = "" + reload_output: str = "" with tempfile.TemporaryFile() as out: proc = subprocess.run([nginx_ctl, "-c", nginx_conf, "-s", "reload"], env=util.env_no_snap_for_external_calls(), diff --git a/certbot/certbot/_internal/constants.py b/certbot/certbot/_internal/constants.py index 680be40fd..d1796c06e 100644 --- a/certbot/certbot/_internal/constants.py +++ b/certbot/certbot/_internal/constants.py @@ -21,7 +21,7 @@ SETUPTOOLS_PLUGINS_ENTRY_POINT = "certbot.plugins" OLD_SETUPTOOLS_PLUGINS_ENTRY_POINT = "letsencrypt.plugins" """Plugins Setuptools entry point before rename.""" -CLI_DEFAULTS: Dict[str, Any] = dict( # noqa +CLI_DEFAULTS: Dict[str, Any] = dict( # pylint: disable=use-dict-literal config_files=[ os.path.join(misc.get_default_folder('config'), 'cli.ini'), # https://freedesktop.org/wiki/Software/xdg-user-dirs/ diff --git a/certbot/certbot/_internal/plugins/disco.py b/certbot/certbot/_internal/plugins/disco.py index 9454e176c..b1ddb6b1a 100644 --- a/certbot/certbot/_internal/plugins/disco.py +++ b/certbot/certbot/_internal/plugins/disco.py @@ -207,6 +207,7 @@ class PluginsRegistry(Mapping): plugin2_dist = other_ep.entry_point.dist plugin1 = plugin1_dist.name.lower() if plugin1_dist else "unknown" plugin2 = plugin2_dist.name.lower() if plugin2_dist else "unknown" + # pylint: disable=broad-exception-raised raise Exception("Duplicate plugin name {0} from {1} and {2}.".format( plugin_ep.name, plugin1, plugin2)) if issubclass(plugin_ep.plugin_cls, interfaces.Plugin): diff --git a/linter_plugin.py b/linter_plugin.py index c099985d8..1c469d054 100644 --- a/linter_plugin.py +++ b/linter_plugin.py @@ -10,7 +10,6 @@ import os.path import re from pylint.checkers import BaseChecker -from pylint.interfaces import IAstroidChecker # Modules whose file is matching one of these paths can import the os module. WHITELIST_PATHS = [ @@ -25,7 +24,6 @@ class ForbidStandardOsModule(BaseChecker): This checker ensures that standard os module (and submodules) is not imported by certbot modules. Otherwise an 'os-module-forbidden' error will be registered for the faulty lines. """ - __implements__ = IAstroidChecker name = 'forbid-os-module' msgs = { diff --git a/tools/pinning/current/pyproject.toml b/tools/pinning/current/pyproject.toml index 74547a1a5..7ffd19986 100644 --- a/tools/pinning/current/pyproject.toml +++ b/tools/pinning/current/pyproject.toml @@ -58,7 +58,7 @@ setuptools-rust = "*" # # If this pinning is removed, we may still need to add a lower bound for the # pylint version. See https://github.com/certbot/certbot/pull/9229. -pylint = "2.15.5" +pylint = "3.0.2" # Bug in poetry, where still installes yanked versions from pypi (source: https://github.com/python-poetry/poetry/issues/2453) # this version of cryptography introduced a security vulnrability. diff --git a/tools/requirements.txt b/tools/requirements.txt index e424f2782..646c8d160 100644 --- a/tools/requirements.txt +++ b/tools/requirements.txt @@ -8,23 +8,23 @@ alabaster==0.7.13 ; python_version >= "3.8" and python_version < "4.0" apacheconfig==0.3.2 ; python_version >= "3.8" and python_version < "4.0" appnope==0.1.3 ; python_version >= "3.8" and python_version < "4.0" and sys_platform == "darwin" -astroid==2.13.5 ; python_version >= "3.8" and python_version < "4.0" -asttokens==2.4.0 ; python_version >= "3.8" and python_version < "4.0" +astroid==3.0.1 ; python_version >= "3.8" and python_version < "4.0" +asttokens==2.4.1 ; python_version >= "3.8" and python_version < "4.0" attrs==23.1.0 ; python_version >= "3.8" and python_version < "4.0" -azure-core==1.29.4 ; python_version >= "3.8" and python_version < "4.0" +azure-core==1.29.5 ; python_version >= "3.8" and python_version < "4.0" azure-devops==7.1.0b3 ; python_version >= "3.8" and python_version < "4.0" -babel==2.13.0 ; python_version >= "3.8" and python_version < "4.0" +babel==2.13.1 ; python_version >= "3.8" and python_version < "4.0" backcall==0.2.0 ; python_version >= "3.8" and python_version < "4.0" bcrypt==4.0.1 ; python_version >= "3.8" and python_version < "4.0" beautifulsoup4==4.12.2 ; python_version >= "3.8" and python_version < "4.0" -boto3==1.28.63 ; python_version >= "3.8" and python_version < "4.0" -botocore==1.31.63 ; python_version >= "3.8" and python_version < "4.0" +boto3==1.29.0 ; python_version >= "3.8" and python_version < "4.0" +botocore==1.32.0 ; python_version >= "3.8" and python_version < "4.0" cachecontrol==0.12.14 ; python_version >= "3.8" and python_version < "4.0" -cachetools==5.3.1 ; python_version >= "3.8" and python_version < "4.0" +cachetools==5.3.2 ; python_version >= "3.8" and python_version < "4.0" cachy==0.3.0 ; python_version >= "3.8" and python_version < "4.0" certifi==2023.7.22 ; python_version >= "3.8" and python_version < "4.0" cffi==1.16.0 ; python_version >= "3.8" and python_version < "4.0" -charset-normalizer==3.3.0 ; python_version >= "3.8" and python_version < "4.0" +charset-normalizer==3.3.2 ; python_version >= "3.8" and python_version < "4.0" cleo==1.0.0a5 ; python_version >= "3.8" and python_version < "4.0" cloudflare==2.12.4 ; python_version >= "3.8" and python_version < "4.0" colorama==0.4.6 ; python_version >= "3.8" and python_version < "4.0" and sys_platform == "win32" or python_version >= "3.8" and python_version < "4.0" and platform_system == "Windows" @@ -32,33 +32,33 @@ configargparse==1.7 ; python_version >= "3.8" and python_version < "4.0" configobj==5.0.8 ; python_version >= "3.8" and python_version < "4.0" coverage==7.3.2 ; python_version >= "3.8" and python_version < "4.0" crashtest==0.3.1 ; python_version >= "3.8" and python_version < "4.0" -cryptography==41.0.4 ; python_version >= "3.8" and python_version < "4.0" +cryptography==41.0.5 ; python_version >= "3.8" and python_version < "4.0" cython==0.29.36 ; python_version >= "3.8" and python_version < "4.0" decorator==5.1.1 ; python_version >= "3.8" and python_version < "4.0" deprecated==1.2.14 ; python_version >= "3.8" and python_version < "4.0" -dill==0.3.7 ; python_version >= "3.8" and python_version < "4.0" +dill==0.3.7 ; python_version < "4.0" and python_version >= "3.8" distlib==0.3.7 ; python_version >= "3.8" and python_version < "4.0" distro==1.8.0 ; python_version >= "3.8" and python_version < "4.0" -dns-lexicon==3.15.1 ; python_version >= "3.8" and python_version < "4.0" +dns-lexicon==3.17.0 ; python_version >= "3.8" and python_version < "4.0" dnspython==2.4.2 ; python_version >= "3.8" and python_version < "4.0" docutils==0.18.1 ; python_version >= "3.8" and python_version < "4.0" dulwich==0.20.50 ; python_version >= "3.8" and python_version < "4.0" exceptiongroup==1.1.3 ; python_version >= "3.8" and python_version < "3.11" execnet==2.0.2 ; python_version >= "3.8" and python_version < "4.0" -executing==2.0.0 ; python_version >= "3.8" and python_version < "4.0" +executing==2.0.1 ; python_version >= "3.8" and python_version < "4.0" fabric==3.2.2 ; python_version >= "3.8" and python_version < "4.0" -filelock==3.12.4 ; python_version >= "3.8" and python_version < "4.0" -google-api-core==2.12.0 ; python_version >= "3.8" and python_version < "4.0" -google-api-python-client==2.103.0 ; python_version >= "3.8" and python_version < "4.0" +filelock==3.13.1 ; python_version >= "3.8" and python_version < "4.0" +google-api-core==2.14.0 ; python_version >= "3.8" and python_version < "4.0" +google-api-python-client==2.108.0 ; python_version >= "3.8" and python_version < "4.0" google-auth-httplib2==0.1.1 ; python_version >= "3.8" and python_version < "4.0" -google-auth==2.23.3 ; python_version >= "3.8" and python_version < "4.0" +google-auth==2.23.4 ; python_version >= "3.8" and python_version < "4.0" googleapis-common-protos==1.61.0 ; python_version >= "3.8" and python_version < "4.0" html5lib==1.1 ; python_version >= "3.8" and python_version < "4.0" httplib2==0.22.0 ; python_version >= "3.8" and python_version < "4.0" idna==3.4 ; python_version >= "3.8" and python_version < "4.0" imagesize==1.4.1 ; python_version >= "3.8" and python_version < "4.0" importlib-metadata==4.13.0 ; python_version >= "3.8" and python_version < "4.0" -importlib-resources==6.1.0 ; python_version >= "3.8" and python_version < "4.0" +importlib-resources==6.1.1 ; python_version >= "3.8" and python_version < "4.0" iniconfig==2.0.0 ; python_version >= "3.8" and python_version < "4.0" invoke==2.2.0 ; python_version >= "3.8" and python_version < "4.0" ipdb==0.13.13 ; python_version >= "3.8" and python_version < "4.0" @@ -70,13 +70,12 @@ jedi==0.19.1 ; python_version >= "3.8" and python_version < "4.0" jeepney==0.8.0 ; python_version >= "3.8" and python_version < "4.0" and sys_platform == "linux" jinja2==3.1.2 ; python_version >= "3.8" and python_version < "4.0" jmespath==1.0.1 ; python_version >= "3.8" and python_version < "4.0" -josepy==1.13.0 ; python_version >= "3.8" and python_version < "4.0" +josepy==1.14.0 ; python_version >= "3.8" and python_version < "4.0" jsonlines==4.0.0 ; python_version >= "3.8" and python_version < "4.0" jsonpickle==3.0.2 ; python_version >= "3.8" and python_version < "4.0" -jsonschema-specifications==2023.7.1 ; python_version >= "3.8" and python_version < "4.0" -jsonschema==4.19.1 ; python_version >= "3.8" and python_version < "4.0" -keyring==24.2.0 ; python_version >= "3.8" and python_version < "4.0" -lazy-object-proxy==1.9.0 ; python_version >= "3.8" and python_version < "4.0" +jsonschema-specifications==2023.11.1 ; python_version >= "3.8" and python_version < "4.0" +jsonschema==4.19.2 ; python_version >= "3.8" and python_version < "4.0" +keyring==24.3.0 ; python_version >= "3.8" and python_version < "4.0" lockfile==0.12.2 ; python_version >= "3.8" and python_version < "4.0" markdown-it-py==3.0.0 ; python_version >= "3.8" and python_version < "4.0" markupsafe==2.1.3 ; python_version >= "3.8" and python_version < "4.0" @@ -87,7 +86,7 @@ more-itertools==10.1.0 ; python_version >= "3.8" and python_version < "4.0" msgpack==1.0.7 ; python_version >= "3.8" and python_version < "4.0" msrest==0.7.1 ; python_version >= "3.8" and python_version < "4.0" mypy-extensions==1.0.0 ; python_version >= "3.8" and python_version < "4.0" -mypy==1.6.0 ; python_version >= "3.8" and python_version < "4.0" +mypy==1.7.0 ; python_version >= "3.8" and python_version < "4.0" nh3==0.2.14 ; python_version >= "3.8" and python_version < "4.0" oauthlib==3.2.2 ; python_version >= "3.8" and python_version < "4.0" packaging==23.2 ; python_version >= "3.8" and python_version < "4.0" @@ -96,7 +95,7 @@ parsedatetime==2.6 ; python_version >= "3.8" and python_version < "4.0" parso==0.8.3 ; python_version >= "3.8" and python_version < "4.0" pexpect==4.8.0 ; python_version >= "3.8" and python_version < "4.0" pickleshare==0.7.5 ; python_version >= "3.8" and python_version < "4.0" -pip==23.2.1 ; python_version >= "3.8" and python_version < "4.0" +pip==23.3.1 ; python_version >= "3.8" and python_version < "4.0" pkginfo==1.9.6 ; python_version >= "3.8" and python_version < "4.0" pkgutil-resolve-name==1.3.10 ; python_version >= "3.8" and python_version < "3.9" platformdirs==2.6.2 ; python_version >= "3.8" and python_version < "4.0" @@ -105,8 +104,8 @@ ply==3.11 ; python_version >= "3.8" and python_version < "4.0" poetry-core==1.3.2 ; python_version >= "3.8" and python_version < "4.0" poetry-plugin-export==1.2.0 ; python_version >= "3.8" and python_version < "4.0" poetry==1.2.2 ; python_version >= "3.8" and python_version < "4.0" -prompt-toolkit==3.0.39 ; python_version >= "3.8" and python_version < "4.0" -protobuf==4.24.4 ; python_version >= "3.8" and python_version < "4.0" +prompt-toolkit==3.0.41 ; python_version >= "3.8" and python_version < "4.0" +protobuf==4.25.0 ; python_version >= "3.8" and python_version < "4.0" ptyprocess==0.7.0 ; python_version >= "3.8" and python_version < "4.0" pure-eval==0.2.2 ; python_version >= "3.8" and python_version < "4.0" py==1.11.0 ; python_version >= "3.8" and python_version < "4.0" @@ -115,7 +114,7 @@ pyasn1==0.5.0 ; python_version >= "3.8" and python_version < "4.0" pycparser==2.21 ; python_version >= "3.8" and python_version < "4.0" pygments==2.16.1 ; python_version >= "3.8" and python_version < "4.0" pylev==1.4.0 ; python_version >= "3.8" and python_version < "4.0" -pylint==2.15.5 ; python_version >= "3.8" and python_version < "4.0" +pylint==3.0.2 ; python_version >= "3.8" and python_version < "4.0" pynacl==1.5.0 ; python_version >= "3.8" and python_version < "4.0" pynsist==2.7 ; python_version >= "3.8" and python_version < "4.0" pyopenssl==23.2.0 ; python_version >= "3.8" and python_version < "4.0" @@ -123,8 +122,8 @@ pyotp==2.9.0 ; python_version >= "3.8" and python_version < "4.0" pyparsing==3.1.1 ; python_version >= "3.8" and python_version < "4.0" pyrfc3339==1.1 ; python_version >= "3.8" and python_version < "4.0" pytest-cov==4.1.0 ; python_version >= "3.8" and python_version < "4.0" -pytest-xdist==3.3.1 ; python_version >= "3.8" and python_version < "4.0" -pytest==7.4.2 ; python_version >= "3.8" and python_version < "4.0" +pytest-xdist==3.4.0 ; python_version >= "3.8" and python_version < "4.0" +pytest==7.4.3 ; python_version >= "3.8" and python_version < "4.0" python-augeas==1.1.0 ; python_version >= "3.8" and python_version < "4.0" python-dateutil==2.8.2 ; python_version >= "3.8" and python_version < "4.0" python-digitalocean==1.17.0 ; python_version >= "3.8" and python_version < "4.0" @@ -133,7 +132,7 @@ pywin32-ctypes==0.2.2 ; python_version >= "3.8" and python_version < "4.0" and s pywin32==306 ; python_version >= "3.8" and python_version < "4.0" and sys_platform == "win32" pyyaml==6.0.1 ; python_version >= "3.8" and python_version < "4.0" readme-renderer==42.0 ; python_version >= "3.8" and python_version < "4.0" -referencing==0.30.2 ; python_version >= "3.8" and python_version < "4.0" +referencing==0.31.0 ; python_version >= "3.8" and python_version < "4.0" requests-download==0.1.2 ; python_version >= "3.8" and python_version < "4.0" requests-file==1.5.1 ; python_version >= "3.8" and python_version < "4.0" requests-oauthlib==1.3.1 ; python_version >= "3.8" and python_version < "4.0" @@ -141,14 +140,14 @@ requests-toolbelt==0.9.1 ; python_version >= "3.8" and python_version < "4.0" requests==2.31.0 ; python_version >= "3.8" and python_version < "4.0" rfc3986==2.0.0 ; python_version >= "3.8" and python_version < "4.0" rich==13.6.0 ; python_version >= "3.8" and python_version < "4.0" -rpds-py==0.10.6 ; python_version >= "3.8" and python_version < "4.0" +rpds-py==0.12.0 ; python_version >= "3.8" and python_version < "4.0" rsa==4.9 ; python_version >= "3.8" and python_version < "4" s3transfer==0.7.0 ; python_version >= "3.8" and python_version < "4.0" secretstorage==3.3.3 ; python_version >= "3.8" and python_version < "4.0" and sys_platform == "linux" semantic-version==2.10.0 ; python_version >= "3.8" and python_version < "4.0" -setuptools-rust==1.7.0 ; python_version >= "3.8" and python_version < "4.0" -setuptools==68.2.2 ; python_version >= "3.8" and python_version < "4.0" -shellingham==1.5.3 ; python_version >= "3.8" and python_version < "4.0" +setuptools-rust==1.8.1 ; python_version >= "3.8" and python_version < "4.0" +setuptools==68.2.2 ; python_version < "4.0" and python_version >= "3.8" +shellingham==1.5.4 ; python_version >= "3.8" and python_version < "4.0" six==1.16.0 ; python_version >= "3.8" and python_version < "4.0" snowballstemmer==2.2.0 ; python_version >= "3.8" and python_version < "4.0" soupsieve==2.5 ; python_version >= "3.8" and python_version < "4.0" @@ -162,30 +161,30 @@ sphinxcontrib-jsmath==1.0.1 ; python_version >= "3.8" and python_version < "4.0" sphinxcontrib-qthelp==1.0.3 ; python_version >= "3.8" and python_version < "4.0" sphinxcontrib-serializinghtml==1.1.5 ; python_version >= "3.8" and python_version < "4.0" stack-data==0.6.3 ; python_version >= "3.8" and python_version < "4.0" -tldextract==5.0.0 ; python_version >= "3.8" and python_version < "4.0" +tldextract==5.1.0 ; python_version >= "3.8" and python_version < "4.0" tomli==2.0.1 ; python_version >= "3.8" and python_full_version <= "3.11.0a6" -tomlkit==0.12.1 ; python_version >= "3.8" and python_version < "4.0" +tomlkit==0.12.3 ; python_version >= "3.8" and python_version < "4.0" tox==3.28.0 ; python_version >= "3.8" and python_version < "4.0" -traitlets==5.11.2 ; python_version >= "3.8" and python_version < "4.0" +traitlets==5.13.0 ; python_version >= "3.8" and python_version < "4.0" twine==4.0.2 ; python_version >= "3.8" and python_version < "4.0" types-httplib2==0.22.0.2 ; python_version >= "3.8" and python_version < "4.0" -types-pyopenssl==23.2.0.2 ; python_version >= "3.8" and python_version < "4.0" +types-pyopenssl==23.3.0.0 ; python_version >= "3.8" and python_version < "4.0" types-pyrfc3339==1.1.1.5 ; python_version >= "3.8" and python_version < "4.0" types-python-dateutil==2.8.19.14 ; python_version >= "3.8" and python_version < "4.0" types-pytz==2023.3.1.1 ; python_version >= "3.8" and python_version < "4.0" -types-pywin32==306.0.0.4 ; python_version >= "3.8" and python_version < "4.0" +types-pywin32==306.0.0.6 ; python_version >= "3.8" and python_version < "4.0" types-requests==2.31.0.6 ; python_version >= "3.8" and python_version < "4.0" -types-setuptools==68.2.0.0 ; python_version >= "3.8" and python_version < "4.0" +types-setuptools==68.2.0.1 ; python_version >= "3.8" and python_version < "4.0" types-six==1.16.21.9 ; python_version >= "3.8" and python_version < "4.0" types-urllib3==1.26.25.14 ; python_version >= "3.8" and python_version < "4.0" typing-extensions==4.8.0 ; python_version >= "3.8" and python_version < "4.0" uritemplate==4.1.1 ; python_version >= "3.8" and python_version < "4.0" -urllib3==1.26.17 ; python_version < "4.0" and python_version >= "3.8" +urllib3==1.26.18 ; python_version < "4.0" and python_version >= "3.8" virtualenv==20.21.1 ; python_version >= "3.8" and python_version < "4.0" -wcwidth==0.2.8 ; python_version >= "3.8" and python_version < "4.0" +wcwidth==0.2.10 ; python_version >= "3.8" and python_version < "4.0" webencodings==0.5.1 ; python_version >= "3.8" and python_version < "4.0" -wheel==0.41.2 ; python_version >= "3.8" and python_version < "4.0" -wrapt==1.15.0 ; python_version >= "3.8" and python_version < "4.0" +wheel==0.41.3 ; python_version >= "3.8" and python_version < "4.0" +wrapt==1.16.0 ; python_version >= "3.8" and python_version < "4.0" xattr==0.9.9 ; python_version >= "3.8" and python_version < "4.0" and sys_platform == "darwin" yarg==0.1.9 ; python_version >= "3.8" and python_version < "4.0" zipp==3.17.0 ; python_version >= "3.8" and python_version < "4.0"