diff --git a/.azure-pipelines/templates/jobs/extended-tests-jobs.yml b/.azure-pipelines/templates/jobs/extended-tests-jobs.yml index 31325ae6c..c5a1fb628 100644 --- a/.azure-pipelines/templates/jobs/extended-tests-jobs.yml +++ b/.azure-pipelines/templates/jobs/extended-tests-jobs.yml @@ -8,12 +8,6 @@ jobs: - group: certbot-common strategy: matrix: - linux-py36: - PYTHON_VERSION: 3.6 - TOXENV: py36 - linux-py37: - PYTHON_VERSION: 3.7 - TOXENV: py37 linux-py38: PYTHON_VERSION: 3.8 TOXENV: py38 @@ -27,17 +21,13 @@ jobs: linux-external-mock: TOXENV: external-mock linux-boulder-v2-integration-certbot-oldest: - PYTHON_VERSION: 3.6 + PYTHON_VERSION: 3.7 TOXENV: integration-certbot-oldest ACME_SERVER: boulder-v2 linux-boulder-v2-integration-nginx-oldest: - PYTHON_VERSION: 3.6 + PYTHON_VERSION: 3.7 TOXENV: integration-nginx-oldest ACME_SERVER: boulder-v2 - linux-boulder-v2-py36-integration: - PYTHON_VERSION: 3.6 - TOXENV: integration - ACME_SERVER: boulder-v2 linux-boulder-v2-py37-integration: PYTHON_VERSION: 3.7 TOXENV: integration diff --git a/.azure-pipelines/templates/jobs/standard-tests-jobs.yml b/.azure-pipelines/templates/jobs/standard-tests-jobs.yml index 18416fcbb..e973fa46a 100644 --- a/.azure-pipelines/templates/jobs/standard-tests-jobs.yml +++ b/.azure-pipelines/templates/jobs/standard-tests-jobs.yml @@ -4,18 +4,18 @@ jobs: PYTHON_VERSION: 3.10 strategy: matrix: - macos-py36-cover: + macos-py37-cover: IMAGE_NAME: macOS-10.15 - PYTHON_VERSION: 3.6 - TOXENV: py36-cover + PYTHON_VERSION: 3.7 + TOXENV: py37-cover macos-py310-cover: IMAGE_NAME: macOS-10.15 PYTHON_VERSION: 3.10 TOXENV: py310-cover - windows-py36: + windows-py37: IMAGE_NAME: vs2017-win2016 - PYTHON_VERSION: 3.6 - TOXENV: py36-win + PYTHON_VERSION: 3.7 + TOXENV: py37-win windows-py39-cover: IMAGE_NAME: vs2017-win2016 PYTHON_VERSION: 3.9 @@ -26,16 +26,16 @@ jobs: TOXENV: integration-certbot linux-oldest-tests-1: IMAGE_NAME: ubuntu-18.04 - PYTHON_VERSION: 3.6 + PYTHON_VERSION: 3.7 TOXENV: '{acme,apache,apache-v2,certbot}-oldest' linux-oldest-tests-2: IMAGE_NAME: ubuntu-18.04 - PYTHON_VERSION: 3.6 + PYTHON_VERSION: 3.7 TOXENV: '{dns,nginx}-oldest' - linux-py36: + linux-py37: IMAGE_NAME: ubuntu-18.04 - PYTHON_VERSION: 3.6 - TOXENV: py36 + PYTHON_VERSION: 3.7 + TOXENV: py37 linux-py310-cover: IMAGE_NAME: ubuntu-18.04 PYTHON_VERSION: 3.10 @@ -58,11 +58,9 @@ jobs: TOXENV: apache_compat apacheconftest: IMAGE_NAME: ubuntu-18.04 - PYTHON_VERSION: 3.6 TOXENV: apacheconftest-with-pebble nginxroundtrip: IMAGE_NAME: ubuntu-18.04 - PYTHON_VERSION: 3.6 TOXENV: nginxroundtrip pool: vmImage: $(IMAGE_NAME) diff --git a/acme/acme/__init__.py b/acme/acme/__init__.py index b4cbf5e45..8b6ce88c0 100644 --- a/acme/acme/__init__.py +++ b/acme/acme/__init__.py @@ -6,7 +6,6 @@ This module is an implementation of the `ACME protocol`_. """ import sys -import warnings # This code exists to keep backwards compatibility with people using acme.jose # before it became the standalone josepy package. @@ -20,11 +19,3 @@ for mod in list(sys.modules): # preserved (acme.jose.* is josepy.*) if mod == 'josepy' or mod.startswith('josepy.'): sys.modules['acme.' + mod.replace('josepy', 'jose', 1)] = sys.modules[mod] - - -if sys.version_info[:2] == (3, 6): - warnings.warn( - "Python 3.6 support will be dropped in the next release of " - "acme. Please upgrade your Python version.", - PendingDeprecationWarning, - ) # pragma: no cover diff --git a/acme/setup.py b/acme/setup.py index 60d806b09..6894d29a1 100644 --- a/acme/setup.py +++ b/acme/setup.py @@ -10,10 +10,10 @@ install_requires = [ 'josepy>=1.10.0', 'PyOpenSSL>=17.3.0', 'pyrfc3339', - 'pytz', - 'requests>=2.14.2', + 'pytz>=2019.3', + 'requests>=2.20.0', 'requests-toolbelt>=0.3.0', - 'setuptools>=39.0.1', + 'setuptools>=41.6.0', ] docs_extras = [ @@ -35,14 +35,13 @@ setup( author="Certbot Project", author_email='certbot-dev@eff.org', license='Apache License 2.0', - python_requires='>=3.6', + python_requires='>=3.7', classifiers=[ 'Development Status :: 5 - Production/Stable', 'Intended Audience :: Developers', 'License :: OSI Approved :: Apache Software License', 'Programming Language :: Python', 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', diff --git a/certbot-apache/setup.py b/certbot-apache/setup.py index b681e8f14..4c677060c 100644 --- a/certbot-apache/setup.py +++ b/certbot-apache/setup.py @@ -10,7 +10,7 @@ install_requires = [ f'acme>={version}', f'certbot>={version}', 'python-augeas', - 'setuptools>=39.0.1', + 'setuptools>=41.6.0', ] dev_extras = [ @@ -25,7 +25,7 @@ setup( author="Certbot Project", author_email='certbot-dev@eff.org', license='Apache License 2.0', - python_requires='>=3.6', + python_requires='>=3.7', classifiers=[ 'Development Status :: 5 - Production/Stable', 'Environment :: Plugins', @@ -34,7 +34,6 @@ setup( 'Operating System :: POSIX :: Linux', 'Programming Language :: Python', 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', diff --git a/certbot-ci/setup.py b/certbot-ci/setup.py index 769705ad7..4341ef266 100644 --- a/certbot-ci/setup.py +++ b/certbot-ci/setup.py @@ -40,14 +40,13 @@ setup( author="Certbot Project", author_email='certbot-dev@eff.org', license='Apache License 2.0', - python_requires='>=3.6', + python_requires='>=3.7', classifiers=[ 'Development Status :: 3 - Alpha', 'Intended Audience :: Developers', 'License :: OSI Approved :: Apache Software License', 'Programming Language :: Python', 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', diff --git a/certbot-compatibility-test/setup.py b/certbot-compatibility-test/setup.py index d1058486a..65357e494 100644 --- a/certbot-compatibility-test/setup.py +++ b/certbot-compatibility-test/setup.py @@ -18,14 +18,13 @@ setup( author="Certbot Project", author_email='certbot-dev@eff.org', license='Apache License 2.0', - python_requires='>=3.6', + python_requires='>=3.7', classifiers=[ 'Development Status :: 3 - Alpha', 'Intended Audience :: Developers', 'License :: OSI Approved :: Apache Software License', 'Programming Language :: Python', 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', diff --git a/certbot-dns-cloudflare/setup.py b/certbot-dns-cloudflare/setup.py index d7383e416..49e9d3730 100644 --- a/certbot-dns-cloudflare/setup.py +++ b/certbot-dns-cloudflare/setup.py @@ -8,7 +8,7 @@ version = '1.24.0.dev0' install_requires = [ 'cloudflare>=1.5.1', - 'setuptools>=39.0.1', + 'setuptools>=41.6.0', ] if not os.environ.get('SNAP_BUILD'): @@ -38,7 +38,7 @@ setup( author="Certbot Project", author_email='certbot-dev@eff.org', license='Apache License 2.0', - python_requires='>=3.6', + python_requires='>=3.7', classifiers=[ 'Development Status :: 5 - Production/Stable', 'Environment :: Plugins', @@ -47,7 +47,6 @@ setup( 'Operating System :: POSIX :: Linux', 'Programming Language :: Python', 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', diff --git a/certbot-dns-cloudxns/setup.py b/certbot-dns-cloudxns/setup.py index 5b6bd3dd5..247a75056 100644 --- a/certbot-dns-cloudxns/setup.py +++ b/certbot-dns-cloudxns/setup.py @@ -8,7 +8,7 @@ version = '1.24.0.dev0' install_requires = [ 'dns-lexicon>=3.2.1', - 'setuptools>=39.0.1', + 'setuptools>=41.6.0', ] if not os.environ.get('SNAP_BUILD'): @@ -38,7 +38,7 @@ setup( author="Certbot Project", author_email='certbot-dev@eff.org', license='Apache License 2.0', - python_requires='>=3.6', + python_requires='>=3.7', classifiers=[ 'Development Status :: 5 - Production/Stable', 'Environment :: Plugins', @@ -47,7 +47,6 @@ setup( 'Operating System :: POSIX :: Linux', 'Programming Language :: Python', 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', diff --git a/certbot-dns-digitalocean/setup.py b/certbot-dns-digitalocean/setup.py index 34c61011a..694cc9302 100644 --- a/certbot-dns-digitalocean/setup.py +++ b/certbot-dns-digitalocean/setup.py @@ -8,7 +8,7 @@ version = '1.24.0.dev0' install_requires = [ 'python-digitalocean>=1.11', # 1.15.0 or newer is recommended for TTL support - 'setuptools>=39.0.1', + 'setuptools>=41.6.0', ] if not os.environ.get('SNAP_BUILD'): @@ -38,7 +38,7 @@ setup( author="Certbot Project", author_email='certbot-dev@eff.org', license='Apache License 2.0', - python_requires='>=3.6', + python_requires='>=3.7', classifiers=[ 'Development Status :: 5 - Production/Stable', 'Environment :: Plugins', @@ -47,7 +47,6 @@ setup( 'Operating System :: POSIX :: Linux', 'Programming Language :: Python', 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', diff --git a/certbot-dns-dnsimple/setup.py b/certbot-dns-dnsimple/setup.py index 69b992ba7..b0ae5919f 100644 --- a/certbot-dns-dnsimple/setup.py +++ b/certbot-dns-dnsimple/setup.py @@ -10,7 +10,7 @@ install_requires = [ # This version of lexicon is required to address the problem described in # https://github.com/AnalogJ/lexicon/issues/387. 'dns-lexicon>=3.2.1', - 'setuptools>=39.0.1', + 'setuptools>=41.6.0', ] if not os.environ.get('SNAP_BUILD'): @@ -40,7 +40,7 @@ setup( author="Certbot Project", author_email='certbot-dev@eff.org', license='Apache License 2.0', - python_requires='>=3.6', + python_requires='>=3.7', classifiers=[ 'Development Status :: 5 - Production/Stable', 'Environment :: Plugins', @@ -49,7 +49,6 @@ setup( 'Operating System :: POSIX :: Linux', 'Programming Language :: Python', 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', diff --git a/certbot-dns-dnsmadeeasy/setup.py b/certbot-dns-dnsmadeeasy/setup.py index 3fb57048d..2c0be6480 100644 --- a/certbot-dns-dnsmadeeasy/setup.py +++ b/certbot-dns-dnsmadeeasy/setup.py @@ -8,7 +8,7 @@ version = '1.24.0.dev0' install_requires = [ 'dns-lexicon>=3.2.1', - 'setuptools>=39.0.1', + 'setuptools>=41.6.0', ] if not os.environ.get('SNAP_BUILD'): @@ -38,7 +38,7 @@ setup( author="Certbot Project", author_email='certbot-dev@eff.org', license='Apache License 2.0', - python_requires='>=3.6', + python_requires='>=3.7', classifiers=[ 'Development Status :: 5 - Production/Stable', 'Environment :: Plugins', @@ -47,7 +47,6 @@ setup( 'Operating System :: POSIX :: Linux', 'Programming Language :: Python', 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', diff --git a/certbot-dns-gehirn/setup.py b/certbot-dns-gehirn/setup.py index f92f3e24b..1bcfe5ad0 100644 --- a/certbot-dns-gehirn/setup.py +++ b/certbot-dns-gehirn/setup.py @@ -8,7 +8,7 @@ version = '1.24.0.dev0' install_requires = [ 'dns-lexicon>=3.2.1', - 'setuptools>=39.0.1', + 'setuptools>=41.6.0', ] if not os.environ.get('SNAP_BUILD'): @@ -38,7 +38,7 @@ setup( author="Certbot Project", author_email='certbot-dev@eff.org', license='Apache License 2.0', - python_requires='>=3.6', + python_requires='>=3.7', classifiers=[ 'Development Status :: 5 - Production/Stable', 'Environment :: Plugins', @@ -47,7 +47,6 @@ setup( 'Operating System :: POSIX :: Linux', 'Programming Language :: Python', 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', diff --git a/certbot-dns-google/setup.py b/certbot-dns-google/setup.py index 5a8834ff6..e91aa7585 100644 --- a/certbot-dns-google/setup.py +++ b/certbot-dns-google/setup.py @@ -9,7 +9,7 @@ version = '1.24.0.dev0' install_requires = [ 'google-api-python-client>=1.5.5', 'oauth2client>=4.0', - 'setuptools>=39.0.1', + 'setuptools>=41.6.0', # already a dependency of google-api-python-client, but added for consistency 'httplib2' ] @@ -41,7 +41,7 @@ setup( author="Certbot Project", author_email='certbot-dev@eff.org', license='Apache License 2.0', - python_requires='>=3.6', + python_requires='>=3.7', classifiers=[ 'Development Status :: 5 - Production/Stable', 'Environment :: Plugins', @@ -50,7 +50,6 @@ setup( 'Operating System :: POSIX :: Linux', 'Programming Language :: Python', 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', diff --git a/certbot-dns-linode/setup.py b/certbot-dns-linode/setup.py index f1e56a557..f99e1354c 100644 --- a/certbot-dns-linode/setup.py +++ b/certbot-dns-linode/setup.py @@ -8,7 +8,7 @@ version = '1.24.0.dev0' install_requires = [ 'dns-lexicon>=3.2.1', - 'setuptools>=39.0.1', + 'setuptools>=41.6.0', ] if not os.environ.get('SNAP_BUILD'): @@ -38,7 +38,7 @@ setup( author="Certbot Project", author_email='certbot-dev@eff.org', license='Apache License 2.0', - python_requires='>=3.6', + python_requires='>=3.7', classifiers=[ 'Development Status :: 5 - Production/Stable', 'Environment :: Plugins', @@ -47,7 +47,6 @@ setup( 'Operating System :: POSIX :: Linux', 'Programming Language :: Python', 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', diff --git a/certbot-dns-luadns/setup.py b/certbot-dns-luadns/setup.py index 569ccc844..aa0efe23e 100644 --- a/certbot-dns-luadns/setup.py +++ b/certbot-dns-luadns/setup.py @@ -8,7 +8,7 @@ version = '1.24.0.dev0' install_requires = [ 'dns-lexicon>=3.2.1', - 'setuptools>=39.0.1', + 'setuptools>=41.6.0', ] if not os.environ.get('SNAP_BUILD'): @@ -38,7 +38,7 @@ setup( author="Certbot Project", author_email='certbot-dev@eff.org', license='Apache License 2.0', - python_requires='>=3.6', + python_requires='>=3.7', classifiers=[ 'Development Status :: 5 - Production/Stable', 'Environment :: Plugins', @@ -47,7 +47,6 @@ setup( 'Operating System :: POSIX :: Linux', 'Programming Language :: Python', 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', diff --git a/certbot-dns-nsone/setup.py b/certbot-dns-nsone/setup.py index 4c89cece7..70222212b 100644 --- a/certbot-dns-nsone/setup.py +++ b/certbot-dns-nsone/setup.py @@ -8,7 +8,7 @@ version = '1.24.0.dev0' install_requires = [ 'dns-lexicon>=3.2.1', - 'setuptools>=39.0.1', + 'setuptools>=41.6.0', ] if not os.environ.get('SNAP_BUILD'): @@ -38,7 +38,7 @@ setup( author="Certbot Project", author_email='certbot-dev@eff.org', license='Apache License 2.0', - python_requires='>=3.6', + python_requires='>=3.7', classifiers=[ 'Development Status :: 5 - Production/Stable', 'Environment :: Plugins', @@ -47,7 +47,6 @@ setup( 'Operating System :: POSIX :: Linux', 'Programming Language :: Python', 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', diff --git a/certbot-dns-ovh/setup.py b/certbot-dns-ovh/setup.py index 455cea9a4..74cbdd24e 100644 --- a/certbot-dns-ovh/setup.py +++ b/certbot-dns-ovh/setup.py @@ -8,7 +8,7 @@ version = '1.24.0.dev0' install_requires = [ 'dns-lexicon>=3.2.1', - 'setuptools>=39.0.1', + 'setuptools>=41.6.0', ] if not os.environ.get('SNAP_BUILD'): @@ -38,7 +38,7 @@ setup( author="Certbot Project", author_email='certbot-dev@eff.org', license='Apache License 2.0', - python_requires='>=3.6', + python_requires='>=3.7', classifiers=[ 'Development Status :: 5 - Production/Stable', 'Environment :: Plugins', @@ -47,7 +47,6 @@ setup( 'Operating System :: POSIX :: Linux', 'Programming Language :: Python', 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', diff --git a/certbot-dns-rfc2136/setup.py b/certbot-dns-rfc2136/setup.py index a5a01f518..421cfc001 100644 --- a/certbot-dns-rfc2136/setup.py +++ b/certbot-dns-rfc2136/setup.py @@ -8,7 +8,7 @@ version = '1.24.0.dev0' install_requires = [ 'dnspython>=1.15.0', - 'setuptools>=39.0.1', + 'setuptools>=41.6.0', ] if not os.environ.get('SNAP_BUILD'): @@ -38,7 +38,7 @@ setup( author="Certbot Project", author_email='certbot-dev@eff.org', license='Apache License 2.0', - python_requires='>=3.6', + python_requires='>=3.7', classifiers=[ 'Development Status :: 5 - Production/Stable', 'Environment :: Plugins', @@ -47,7 +47,6 @@ setup( 'Operating System :: POSIX :: Linux', 'Programming Language :: Python', 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', diff --git a/certbot-dns-route53/setup.py b/certbot-dns-route53/setup.py index c225a737b..b84db2610 100644 --- a/certbot-dns-route53/setup.py +++ b/certbot-dns-route53/setup.py @@ -7,8 +7,8 @@ from setuptools import setup version = '1.24.0.dev0' install_requires = [ - 'boto3', - 'setuptools>=39.0.1', + 'boto3>=1.15.15', + 'setuptools>=41.6.0', ] if not os.environ.get('SNAP_BUILD'): @@ -38,7 +38,7 @@ setup( author="Certbot Project", author_email='certbot-dev@eff.org', license='Apache License 2.0', - python_requires='>=3.6', + python_requires='>=3.7', classifiers=[ 'Development Status :: 5 - Production/Stable', 'Environment :: Plugins', @@ -47,7 +47,6 @@ setup( 'Operating System :: POSIX :: Linux', 'Programming Language :: Python', 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', diff --git a/certbot-dns-sakuracloud/setup.py b/certbot-dns-sakuracloud/setup.py index 8a316aeb3..841a3214f 100644 --- a/certbot-dns-sakuracloud/setup.py +++ b/certbot-dns-sakuracloud/setup.py @@ -8,7 +8,7 @@ version = '1.24.0.dev0' install_requires = [ 'dns-lexicon>=3.2.1', - 'setuptools>=39.0.1', + 'setuptools>=41.6.0', ] if not os.environ.get('SNAP_BUILD'): @@ -38,7 +38,7 @@ setup( author="Certbot Project", author_email='certbot-dev@eff.org', license='Apache License 2.0', - python_requires='>=3.6', + python_requires='>=3.7', classifiers=[ 'Development Status :: 5 - Production/Stable', 'Environment :: Plugins', @@ -47,7 +47,6 @@ setup( 'Operating System :: POSIX :: Linux', 'Programming Language :: Python', 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', diff --git a/certbot-nginx/certbot_nginx/_internal/nginxparser.py b/certbot-nginx/certbot_nginx/_internal/nginxparser.py index 0fdc71dfa..874a544f7 100644 --- a/certbot-nginx/certbot_nginx/_internal/nginxparser.py +++ b/certbot-nginx/certbot_nginx/_internal/nginxparser.py @@ -28,7 +28,7 @@ from pyparsing import White from pyparsing import ZeroOrMore if TYPE_CHECKING: - from typing_extensions import SupportsIndex # typing.SupportsIndex not supported on Python 3.6 + from typing_extensions import SupportsIndex # typing.SupportsIndex not supported on Python 3.7 logger = logging.getLogger(__name__) diff --git a/certbot-nginx/setup.py b/certbot-nginx/setup.py index 77428ba03..159723901 100644 --- a/certbot-nginx/setup.py +++ b/certbot-nginx/setup.py @@ -10,8 +10,8 @@ install_requires = [ f'acme>={version}', f'certbot>={version}', 'PyOpenSSL>=17.3.0', - 'pyparsing>=2.2.0', - 'setuptools>=39.0.1', + 'pyparsing>=2.2.1', + 'setuptools>=41.6.0', ] setup( @@ -22,7 +22,7 @@ setup( author="Certbot Project", author_email='certbot-dev@eff.org', license='Apache License 2.0', - python_requires='>=3.6', + python_requires='>=3.7', classifiers=[ 'Development Status :: 5 - Production/Stable', 'Environment :: Plugins', @@ -31,7 +31,6 @@ setup( 'Operating System :: POSIX :: Linux', 'Programming Language :: Python', 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', diff --git a/certbot/CHANGELOG.md b/certbot/CHANGELOG.md index 0746c8e8e..4b39712bf 100644 --- a/certbot/CHANGELOG.md +++ b/certbot/CHANGELOG.md @@ -13,9 +13,12 @@ Certbot adheres to [Semantic Versioning](https://semver.org/). ### Changed -* We previously said we'd drop Python 3.6 support in this release. This release - still supports Python 3.6, however, support is still deprecated and we plan - to completely remove support in a future release. +* Support for Python 3.6 was removed. +* All Certbot components now require setuptools>=41.6.0. +* The acme library now requires requests>=2.20.0. +* Certbot and its acme library now require pytz>=2019.3. +* certbot-nginx now requires pyparsing>=2.2.1. +* certbot-dns-route53 now requires boto3>=1.15.15. ### Fixed diff --git a/certbot/certbot/__init__.py b/certbot/certbot/__init__.py index b40280fab..d4fc6c8fb 100644 --- a/certbot/certbot/__init__.py +++ b/certbot/certbot/__init__.py @@ -1,13 +1,3 @@ """Certbot client.""" # version number like 1.2.3a0, must have at least 2 parts, like 1.2 -import sys -import warnings - __version__ = '1.24.0.dev0' - -if sys.version_info[:2] == (3, 6): - warnings.warn( - "Python 3.6 support will be dropped in the next release of " - "certbot. Please upgrade your Python version.", - PendingDeprecationWarning, - ) # pragma: no cover diff --git a/certbot/certbot/_internal/main.py b/certbot/certbot/_internal/main.py index f4062efaa..15a7239f6 100644 --- a/certbot/certbot/_internal/main.py +++ b/certbot/certbot/_internal/main.py @@ -1673,10 +1673,6 @@ def main(cli_args: List[str] = None) -> Optional[Union[str, int]]: zope.component.provideUtility(report, interfaces.IReporter) util.atexit_register(report.print_messages) - if sys.version_info[:2] == (3, 6): - logger.warning("Python 3.6 support will be dropped in the next release " - "of Certbot - please upgrade your Python version.") - with make_displayer(config) as displayer: display_obj.set_display(displayer) diff --git a/certbot/docs/install.rst b/certbot/docs/install.rst index e36553a15..3fed2d58f 100644 --- a/certbot/docs/install.rst +++ b/certbot/docs/install.rst @@ -28,7 +28,7 @@ your system. System Requirements =================== -Certbot currently requires Python 3.6+ running on a UNIX-like operating +Certbot currently requires Python 3.7+ running on a UNIX-like operating system. By default, it requires root access in order to write to ``/etc/letsencrypt``, ``/var/log/letsencrypt``, ``/var/lib/letsencrypt``; to bind to port 80 (if you use the ``standalone`` plugin) and to read and diff --git a/certbot/setup.py b/certbot/setup.py index 0fb00c058..a8f32dc6e 100644 --- a/certbot/setup.py +++ b/certbot/setup.py @@ -8,7 +8,7 @@ from setuptools import __version__ as setuptools_version from setuptools import find_packages from setuptools import setup -min_setuptools_version='39.0.1' +min_setuptools_version='41.6.0' # This conditional isn't necessary, but it provides better error messages to # people who try to install this package with older versions of setuptools. if parse_version(setuptools_version) < parse_version(min_setuptools_version): @@ -55,7 +55,7 @@ install_requires = [ 'josepy>=1.9.0', 'parsedatetime>=2.4', 'pyrfc3339', - 'pytz', + 'pytz>=2019.3', # This dependency needs to be added using environment markers to avoid its # installation on Linux. 'pywin32>=300 ; sys_platform == "win32"', @@ -101,7 +101,7 @@ test_extras = [ 'types-setuptools', 'types-six', # typing-extensions is required to import typing.Protocol and make the mypy checks - # pass (along with pylint about non-existent objects) on Python 3.6 & 3.7 + # pass (along with pylint about non-existent objects) on Python 3.7 'typing-extensions', 'wheel', ] @@ -118,7 +118,7 @@ setup( author="Certbot Project", author_email='certbot-dev@eff.org', license='Apache License 2.0', - python_requires='>=3.6', + python_requires='>=3.7', classifiers=[ 'Development Status :: 5 - Production/Stable', 'Environment :: Console', @@ -128,7 +128,6 @@ setup( 'Operating System :: POSIX :: Linux', 'Programming Language :: Python', 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', diff --git a/letstest/setup.py b/letstest/setup.py index 6f0e9bb49..4f05c8754 100644 --- a/letstest/setup.py +++ b/letstest/setup.py @@ -9,14 +9,13 @@ setup( author='Certbot Project', author_email='certbot-dev@eff.org', license='Apache License 2.0', - python_requires='>=3.6', + python_requires='>=3.7', classifiers=[ 'Development Status :: 5 - Production/Stable', 'Intended Audience :: Developers', 'License :: OSI Approved :: Apache Software License', 'Programming Language :: Python', 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', diff --git a/pytest.ini b/pytest.ini index ea1593808..92a403451 100644 --- a/pytest.ini +++ b/pytest.ini @@ -27,8 +27,6 @@ # 7) botocore's default TLS settings raise deprecation warnings in Python # 3.10+, but their values are sane from a security perspective. See # https://github.com/boto/botocore/issues/2550. -# 8) Ignore our own PendingDeprecationWarning about Python 3.6 soon to be dropped. -# See https://github.com/certbot/certbot/pull/9160. filterwarnings = error ignore:The external mock module:PendingDeprecationWarning @@ -38,4 +36,3 @@ filterwarnings = ignore:decodestring\(\) is a deprecated alias:DeprecationWarning:dns ignore:_SixMetaPathImporter.:ImportWarning ignore:ssl.PROTOCOL_TLS:DeprecationWarning:botocore - ignore:Python 3.6 support will be dropped:PendingDeprecationWarning diff --git a/tools/oldest_constraints.txt b/tools/oldest_constraints.txt index a3ffc16ab..9b25d99f5 100644 --- a/tools/oldest_constraints.txt +++ b/tools/oldest_constraints.txt @@ -2,116 +2,115 @@ # that script. apacheconfig==0.3.2 asn1crypto==0.24.0 -astroid==2.9.0; python_version >= "3.6" and python_version < "4.0" -atomicwrites==1.4.0; python_version >= "3.6" and python_full_version < "3.0.0" and sys_platform == "win32" or sys_platform == "win32" and python_version >= "3.6" and python_full_version >= "3.4.0" -attrs==21.4.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6" -bcrypt==3.2.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" -boto3==1.4.7 -botocore==1.7.41 -cached-property==1.5.2; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" +astroid==2.9.3; python_version >= "3.7" and python_full_version >= "3.6.2" +atomicwrites==1.4.0; python_version >= "3.7" and python_full_version < "3.0.0" and sys_platform == "win32" or sys_platform == "win32" and python_version >= "3.7" and python_full_version >= "3.4.0" +attrs==21.4.0; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.7" +bcrypt==3.2.0; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.7" +boto3==1.15.15 +botocore==1.18.15 +cached-property==1.5.2; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.7" +certifi==2021.10.8; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.7" cffi==1.9.1 -chardet==2.2.1 +chardet==3.0.4 cloudflare==1.5.1 -colorama==0.4.4; python_version >= "3.6" and python_full_version < "3.0.0" and sys_platform == "win32" or python_full_version >= "3.5.0" and python_version >= "3.6" and sys_platform == "win32" or python_version >= "3.6" and python_full_version < "3.0.0" and python_version < "4.0" and sys_platform == "win32" or python_version >= "3.6" and python_version < "4.0" and sys_platform == "win32" and python_full_version >= "3.5.0" +colorama==0.4.4; python_version >= "3.7" and python_full_version < "3.0.0" and sys_platform == "win32" or python_full_version >= "3.5.0" and python_version >= "3.7" and sys_platform == "win32" or python_version >= "3.7" and python_full_version >= "3.6.2" and sys_platform == "win32" configargparse==0.10.0 configobj==5.0.6 -coverage==6.2; python_version >= "3.6" or python_version >= "3.6" +coverage==6.3.1; python_version >= "3.7" or python_version >= "3.7" cryptography==3.2.1; (python_version >= "2.7" and python_full_version < "3.0.0") or (python_full_version >= "3.5.0") -cython==0.29.26; (python_version >= "2.6" and python_full_version < "3.0.0") or (python_full_version >= "3.3.0") -distlib==0.3.4; python_version >= "3.6" and python_full_version < "3.0.0" or python_version >= "3.6" and python_full_version >= "3.5.0" +cython==0.29.28; (python_version >= "2.6" and python_full_version < "3.0.0") or (python_full_version >= "3.3.0") +distlib==0.3.4; python_version >= "3.7" and python_full_version < "3.0.0" or python_version >= "3.7" and python_full_version >= "3.5.0" distro==1.0.1 dns-lexicon==3.2.1 dnspython==1.15.0 -docker-compose==1.24.1; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" -docker-pycreds==0.4.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" -docker==3.7.3; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" -dockerpty==0.4.1; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" -docopt==0.6.2; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" -docutils==0.18.1; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6" -execnet==1.9.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6" -filelock==3.4.1; python_version >= "3.6" and python_full_version < "3.0.0" or python_version >= "3.6" and python_full_version >= "3.5.0" or python_version >= "3.6" +docker-compose==1.25.5; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.7" +docker==4.2.2; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.7" +dockerpty==0.4.1; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.7" +docopt==0.6.2; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.7" +execnet==1.9.0; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.7" +filelock==3.6.0; python_version >= "3.7" and python_full_version < "3.0.0" or python_version >= "3.7" and python_full_version >= "3.5.0" or python_version >= "3.7" funcsigs==0.4 -future==0.18.2; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.6" +future==0.18.2; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.7" google-api-python-client==1.5.5 httplib2==0.9.2 idna==2.6 -importlib-metadata==4.8.3; python_version >= "3.6" and python_full_version < "3.0.0" and python_version < "3.8" or python_version >= "3.6" and python_full_version >= "3.5.0" and python_version < "3.8" or python_version < "3.8" and python_version >= "3.6" -importlib-resources==5.4.0; python_version >= "3.6" and python_full_version < "3.0.0" and python_version < "3.7" or python_version >= "3.6" and python_full_version >= "3.5.0" and python_version < "3.7" -iniconfig==1.1.1; python_version >= "3.6" +importlib-metadata==4.11.1; python_version >= "3.7" and python_full_version < "3.0.0" and python_version < "3.8" or python_full_version >= "3.4.0" and python_version >= "3.7" and python_version < "3.8" or python_version < "3.8" and python_version >= "3.7" or python_version >= "3.7" and python_full_version >= "3.5.0" and python_version < "3.8" +iniconfig==1.1.1; python_version >= "3.7" ipaddress==1.0.16 -isort==5.8.0; python_version >= "3.6" and python_version < "4.0" -jmespath==0.10.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.6" -josepy==1.12.0; python_version >= "3.6" -jsonschema==2.6.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" -lazy-object-proxy==1.7.1; python_version >= "3.6" and python_version < "4.0" -logger==1.4; python_version >= "3.6" -mccabe==0.6.1; python_version >= "3.6" and python_version < "4.0" +isort==5.10.1; python_full_version >= "3.6.2" and python_version < "4.0" and python_version >= "3.7" +jmespath==0.10.0; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.7" +josepy==1.12.0; python_version >= "3.7" +jsonschema==3.2.0; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.7" +lazy-object-proxy==1.7.1; python_version >= "3.7" and python_full_version >= "3.6.2" +logger==1.4; python_version >= "3.7" +mccabe==0.6.1; python_version >= "3.7" and python_full_version >= "3.6.2" mock==1.0.1 -mypy-extensions==0.4.3; python_version >= "3.6" -mypy==0.931; python_version >= "3.6" +mypy-extensions==0.4.3; python_version >= "3.7" +mypy==0.931; python_version >= "3.7" ndg-httpsclient==0.3.2 oauth2client==4.0.0 -packaging==21.3; python_version >= "3.6" -paramiko==2.9.2; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" +packaging==21.3; python_version >= "3.7" +paramiko==2.9.2; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.7" parsedatetime==2.4 pbr==1.8.0 -pip==21.3.1; python_version >= "3.6" -platformdirs==2.4.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_version >= "3.6" and python_full_version >= "3.5.0" or python_version >= "3.6" and python_version < "4.0" -pluggy==1.0.0; python_version >= "3.6" +pip==22.0.3; python_version >= "3.7" +platformdirs==2.5.0; python_version >= "3.7" and python_full_version < "3.0.0" or python_version >= "3.7" and python_full_version >= "3.5.0" or python_version >= "3.7" and python_full_version >= "3.6.2" +pluggy==1.0.0; python_version >= "3.7" ply==3.4 -py==1.11.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6" -pyasn1-modules==0.0.10; python_version >= "3.6" +py==1.11.0; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.7" +pyasn1-modules==0.0.10; python_version >= "3.7" pyasn1==0.1.9 pycparser==2.14 -pylint==2.12.0; python_version >= "3.6" and python_version < "4.0" -pynacl==1.5.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" +pylint==2.12.2; python_version >= "3.7" and python_full_version >= "3.6.2" +pynacl==1.5.0; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.7" pyopenssl==17.3.0 -pyparsing==2.2.0 -pypiwin32==223; sys_platform == "win32" and python_version >= "3.6" and (python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6") +pyparsing==2.2.1; (python_version >= "2.6" and python_full_version < "3.0.0") or (python_full_version >= "3.3.0") +pypiwin32==223; sys_platform == "win32" and python_version >= "3.6" and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.7") pyrfc3339==1.0 -pytest-cov==3.0.0; python_version >= "3.6" or python_version >= "3.6" -pytest-forked==1.4.0; python_version >= "3.6" -pytest-xdist==2.5.0; python_version >= "3.6" or python_version >= "3.6" -pytest==6.2.5; python_version >= "3.6" or python_version >= "3.6" +pyrsistent==0.18.1; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.7" +pytest-cov==3.0.0; python_version >= "3.7" or python_version >= "3.7" +pytest-forked==1.4.0; python_version >= "3.7" +pytest-xdist==2.5.0; python_version >= "3.7" or python_version >= "3.7" +pytest==7.0.1; python_version >= "3.7" or python_version >= "3.7" python-augeas==0.5.0 -python-dateutil==2.8.2; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.6" +python-dateutil==2.8.2; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.7" python-digitalocean==1.11 -pytz==2012c -pywin32==303; sys_platform == "win32" and python_version >= "3.6" or sys_platform == "win32" and python_version >= "3.6" and (python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6") -pyyaml==3.13; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" or python_version >= "3.6" -requests-file==1.5.1; python_version >= "3.6" -requests-toolbelt==0.9.1; python_version >= "3.6" -requests==2.14.2 -rsa==4.8; python_version >= "3.6" and python_version < "4" -s3transfer==0.1.13; python_version >= "3.6" -setuptools==39.0.1; (python_version >= "2.7" and python_full_version < "3.0.0") or (python_full_version >= "3.3.0") +pytz==2019.3 +pywin32==303; sys_platform == "win32" and python_version >= "3.7" or sys_platform == "win32" and python_version >= "3.6" and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.7") +pyyaml==5.4.1; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7" +requests-file==1.5.1; python_version >= "3.7" +requests-toolbelt==0.9.1; python_version >= "3.7" +requests==2.20.0; (python_version >= "2.7" and python_full_version < "3.0.0") or (python_full_version >= "3.4.0") +rsa==4.8; python_version >= "3.7" and python_version < "4" +s3transfer==0.3.7; python_version >= "3.7" +setuptools==41.6.0; (python_version >= "2.7" and python_full_version < "3.0.0") or (python_full_version >= "3.4.0") six==1.11.0 -texttable==0.9.1; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" -tldextract==3.1.2; python_version >= "3.6" -toml==0.10.2; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.6" or python_version >= "3.6" and python_full_version < "3.0.0" and python_version < "4.0" or python_version >= "3.6" and python_version < "4.0" and python_full_version >= "3.3.0" -tomli==1.2.3; python_version >= "3.6" -tox==1.9.2; python_version >= "3.6" -typed-ast==1.5.1; python_version >= "3.6" and python_version < "3.8" or implementation_name == "cpython" and python_version < "3.8" and python_version >= "3.6" -types-cryptography==3.3.14; python_version >= "3.6" -types-enum34==1.1.7; python_version >= "3.6" -types-ipaddress==1.0.7; python_version >= "3.6" -types-mock==4.0.8; python_version >= "3.6" -types-pyopenssl==21.0.3; python_version >= "3.6" -types-pyrfc3339==1.1.1; python_version >= "3.6" -types-python-dateutil==2.8.7; python_version >= "3.6" -types-pytz==2021.3.4; python_version >= "3.6" -types-requests==2.27.7; python_version >= "3.6" -types-setuptools==57.4.7; python_version >= "3.6" -types-six==1.16.10; python_version >= "3.6" -types-urllib3==1.26.7; python_version >= "3.6" -typing-extensions==4.0.1; python_version >= "3.6" or python_version >= "3.6" and python_version < "3.10" or python_version < "3.8" and python_version >= "3.6" -uritemplate==3.0.1; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" -urllib3==1.10.2 -virtualenv==20.13.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_version >= "3.6" and python_full_version >= "3.5.0" -websocket-client==0.59.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" +texttable==1.6.4; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.7" +tldextract==3.1.2; python_version >= "3.7" +toml==0.10.2; python_version >= "3.7" and python_full_version >= "3.6.2" +tomli==2.0.1; python_version >= "3.7" or python_version >= "3.7" +tox==1.9.2; python_version >= "3.7" +typed-ast==1.5.2; python_version >= "3.7" and python_version < "3.8" or implementation_name == "cpython" and python_version < "3.8" and python_version >= "3.7" and python_full_version >= "3.6.2" +types-cryptography==3.3.15; python_version >= "3.7" +types-enum34==1.1.8; python_version >= "3.7" +types-ipaddress==1.0.8; python_version >= "3.7" +types-mock==4.0.10; python_version >= "3.7" +types-pyopenssl==22.0.0; python_version >= "3.7" +types-pyrfc3339==1.1.1; python_version >= "3.7" +types-python-dateutil==2.8.9; python_version >= "3.7" +types-pytz==2021.3.5; python_version >= "3.7" +types-requests==2.27.10; python_version >= "3.7" +types-setuptools==57.4.9; python_version >= "3.7" +types-six==1.16.10; python_version >= "3.7" +types-urllib3==1.26.9; python_version >= "3.7" +typing-extensions==4.1.1; python_version >= "3.7" or python_version >= "3.7" and python_full_version >= "3.6.2" and python_version < "3.10" or python_version < "3.8" and python_version >= "3.7" +uritemplate==3.0.1; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.7" +urllib3==1.24.2; (python_version >= "2.7" and python_full_version < "3.0.0") or (python_full_version >= "3.4.0" and python_version < "4") +virtualenv==20.13.1; python_version >= "3.7" and python_full_version < "3.0.0" or python_version >= "3.7" and python_full_version >= "3.5.0" +websocket-client==0.59.0; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.7" or python_full_version >= "3.5.0" and python_version >= "3.7" wheel==0.33.6; (python_version >= "2.7" and python_full_version < "3.0.0") or (python_full_version >= "3.4.0") -wrapt==1.13.3; python_version >= "3.6" and python_full_version < "3.0.0" and python_version < "4.0" or python_version >= "3.6" and python_version < "4.0" and python_full_version >= "3.5.0" -zipp==3.6.0; python_version >= "3.6" and python_full_version < "3.0.0" and python_version < "3.7" or python_version >= "3.6" and python_full_version >= "3.5.0" and python_version < "3.7" or python_version < "3.8" and python_version >= "3.6" +wrapt==1.13.3; python_version >= "3.7" and python_full_version >= "3.6.2" +zipp==3.7.0; python_version < "3.8" and python_version >= "3.7" zope.component==4.1.0 zope.event==4.0.3 zope.hookable==4.0.4 diff --git a/tools/pinning/current/pyproject.toml b/tools/pinning/current/pyproject.toml index 2a2e2b826..811301ae4 100644 --- a/tools/pinning/current/pyproject.toml +++ b/tools/pinning/current/pyproject.toml @@ -6,7 +6,7 @@ authors = ["Certbot Project"] license = "Apache License 2.0" [tool.poetry.dependencies] -python = "^3.6" +python = "^3.7" # Local dependencies # Any local packages that have dependencies on other local packages must be @@ -69,11 +69,6 @@ poetry = ">=1.2.0a1" # point, it's probably worth enumerating and pinning them (and recursing to # THEIR build dependencies) as well. setuptools-rust = "*" -# Library traitlets is a transitive dependency of ipdb (traitlets -> ipython -> ipdb). -# Version 5.x is incompatible with Python 3.6 but for some reasons, poetry fails to -# add the appropriate marker and allows this version to be installed under Python 3.6. -# We add a pinning to not create a set of requirements incompatible with Python 3.6. -traitlets = "<5" [tool.poetry.dev-dependencies] diff --git a/tools/pinning/oldest/pyproject.toml b/tools/pinning/oldest/pyproject.toml index 601b4d185..205c3c47d 100644 --- a/tools/pinning/oldest/pyproject.toml +++ b/tools/pinning/oldest/pyproject.toml @@ -10,7 +10,7 @@ license = "Apache License 2.0" [tool.poetry.dependencies] # The Python version here should be kept in sync with the one used in our # oldest tests in tox.ini. -python = "3.6" +python = "3.7" # Local dependencies # Any local packages that have dependencies on other local packages must be @@ -37,27 +37,20 @@ certbot = {path = "../../../certbot", extras = ["test"]} acme = {path = "../../../acme", extras = ["test"]} # Oldest dependencies -# We specify the oldest versions of our dependencies that we keep -# support for below. We should only update these packages as needed to make use -# of features in newer versions of our dependencies. Keeping compatibility with -# older packages makes it much easier for OS maintainers to update their -# Certbot packages if needed or desired. -# -# When updating these dependencies, we should try to update them no further -# than the oldest version of the dependency found in CentOS/RHEL 8 + EPEL (or -# newer versions of CentOS/RHEL + EPEL) as our Certbot packages there see -# frequent updates. If the dependency being updated is a direct dependency of -# one of our own packages, the minimum required version of that dependency -# should be updated in our setup.py files as well to communicate this -# information to our users. +# We specify the oldest versions of our dependencies that we keep support for +# below. These dependencies can be updated as desired to simplify or improve +# Certbot or its development. If the dependency being updated is a direct +# dependency of one of our own packages, the minimum required version of that +# dependency should be updated in our setup.py files as well to communicate +# this information to our users. ConfigArgParse = "0.10.0" apacheconfig = "0.3.2" asn1crypto = "0.24.0" -boto3 = "1.4.7" -botocore = "1.7.41" +boto3 = "1.15.15" +botocore = "1.18.15" cffi = "1.9.1" -chardet = "2.2.1" +chardet = "3.0.4" cloudflare = "1.5.1" configobj = "5.0.6" cryptography = "3.2.1" @@ -79,14 +72,14 @@ pyOpenSSL = "17.3.0" pyRFC3339 = "1.0" pyasn1 = "0.1.9" pycparser = "2.14" -pyparsing = "2.2.0" +pyparsing = "2.2.1" python-augeas = "0.5.0" python-digitalocean = "1.11" -pytz = "2012rc0" -requests = "2.14.2" -setuptools = "39.0.1" +pytz = "2019.3" +requests = "2.20.0" +setuptools = "41.6.0" six = "1.11.0" -urllib3 = "1.10.2" +urllib3 = "1.24.2" # Package names containing "." need to be quoted. "zope.component" = "4.1.0" "zope.event" = "4.0.3" diff --git a/tools/requirements.txt b/tools/requirements.txt index c8f3076ff..8477fe08d 100644 --- a/tools/requirements.txt +++ b/tools/requirements.txt @@ -5,198 +5,194 @@ # requirements.txt so that is scanned by GitHub. See # https://docs.github.com/en/github/visualizing-repository-data-with-graphs/about-the-dependency-graph#supported-package-ecosystems # for more info. -alabaster==0.7.12; python_version >= "3.6" -apacheconfig==0.3.2; python_version >= "3.6" -appdirs==1.4.4; python_version >= "3.6" and python_full_version < "3.0.0" and python_version < "4.0" or python_version >= "3.6" and python_version < "4.0" and python_full_version >= "3.4.0" -appnope==0.1.2; python_version == "3.6" and sys_platform == "darwin" or python_version >= "3.7" and sys_platform == "darwin" -astroid==2.9.0; python_version >= "3.6" and python_version < "4.0" -atomicwrites==1.4.0; python_version >= "3.6" and python_full_version < "3.0.0" and sys_platform == "win32" or sys_platform == "win32" and python_version >= "3.6" and python_full_version >= "3.4.0" -attrs==21.4.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6" -awscli==1.22.52; python_version >= "3.6" -azure-devops==6.0.0b4; python_version >= "3.6" -babel==2.9.1; python_version >= "3.6" and python_full_version < "3.0.0" or python_version >= "3.6" and python_full_version >= "3.4.0" -backcall==0.2.0; python_version == "3.6" or python_version >= "3.7" -bcrypt==3.2.0; python_version >= "3.6" -beautifulsoup4==4.10.0; python_full_version > "3.0.0" and python_version >= "3.6" or python_version >= "3.6" and python_version < "4.0" and python_full_version > "3.0.0" -bleach==4.1.0; python_version >= "3.6" -boto3==1.20.52; python_version >= "3.6" -botocore==1.23.52; python_version >= "3.6" -cachecontrol==0.12.10; python_version >= "3.6" and python_version < "4.0" -cached-property==1.5.2; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" -cachetools==4.2.4; python_version >= "3.5" and python_version < "4.0" and (python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6") -cachy==0.3.0; python_version >= "3.6" and python_full_version < "3.0.0" and python_version < "4.0" or python_version >= "3.6" and python_version < "4.0" and python_full_version >= "3.4.0" -certifi==2021.10.8; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6" or python_version >= "3.6" -cffi==1.15.0; python_version >= "3.6" or python_version >= "3.6" -charset-normalizer==2.0.11; python_full_version >= "3.6.0" and python_version >= "3.6" -cleo==1.0.0a4; python_version >= "3.6" and python_version < "4.0" -cloudflare==2.8.15; python_version >= "3.6" -colorama==0.4.3; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6" or python_version >= "3.6" and python_full_version < "3.0.0" and sys_platform == "win32" or python_full_version >= "3.5.0" and python_version >= "3.6" and sys_platform == "win32" or python_version >= "3.6" and python_full_version < "3.0.0" and python_version < "4.0" and sys_platform == "win32" or python_version >= "3.6" and python_version < "4.0" and sys_platform == "win32" and python_full_version >= "3.5.0" or python_version >= "3.6" and python_full_version < "3.0.0" and platform_system == "Windows" or python_version >= "3.6" and python_full_version >= "3.5.0" and platform_system == "Windows" or python_version == "3.6" and python_full_version < "3.0.0" and sys_platform == "win32" or python_version == "3.6" and sys_platform == "win32" and python_full_version >= "3.5.0" or python_version >= "3.7" and python_full_version < "3.0.0" and sys_platform == "win32" or python_version >= "3.7" and sys_platform == "win32" and python_full_version >= "3.5.0" -configargparse==1.5.3; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6" -configobj==5.0.6; python_version >= "3.6" -coverage==6.2; python_version >= "3.6" or python_version >= "3.6" -crashtest==0.3.1; python_version >= "3.6" and python_version < "4.0" -cryptography==36.0.1; python_version >= "3.6" and python_version < "4.0" or python_version >= "3.6" or python_version >= "3.6" and python_version < "4.0" and sys_platform == "linux" -cython==0.29.27; (python_version >= "2.6" and python_full_version < "3.0.0") or (python_full_version >= "3.3.0") -dataclasses==0.8; python_version >= "3.6" and python_version < "3.7" -decorator==5.1.1; python_version == "3.6" or python_version > "3.6" or python_version >= "3.5" or python_version >= "3.7" -deprecated==1.2.13; python_version >= "3.6" and python_full_version < "3.0.0" or python_version >= "3.6" and python_full_version >= "3.4.0" -distlib==0.3.4; python_version >= "3.6" and python_full_version < "3.0.0" and python_version < "4.0" or python_version >= "3.6" and python_version < "4.0" and python_full_version >= "3.4.0" or python_version >= "3.6" -distro==1.6.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" or python_version >= "3.6" -dns-lexicon==3.8.5; python_version >= "3.6" and python_version < "4.0" -dnspython==2.2.0; python_version >= "3.6" and python_version < "4.0" -docker-compose==1.26.2; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" -docker==4.2.2; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6" -dockerpty==0.4.1; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" -docopt==0.6.2; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" -docutils==0.15.2; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.6" or python_version >= "3.6" and python_full_version >= "3.4.0" -entrypoints==0.3; python_version >= "3.6" and python_version < "4.0" -execnet==1.9.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6" -fabric==2.6.0; python_version >= "3.6" -filelock==3.4.1; python_version >= "3.6" and python_full_version < "3.0.0" or python_version >= "3.6" and python_full_version >= "3.5.0" or python_version >= "3.6" and python_full_version < "3.0.0" and python_version < "4.0" or python_version >= "3.6" and python_version < "4.0" and python_full_version >= "3.4.0" or python_version >= "3.6" and python_version < "4.0" -google-api-core==2.5.0; python_version >= "3.6" -google-api-python-client==2.37.0; python_version >= "3.6" -google-auth-httplib2==0.1.0; python_version >= "3.6" -google-auth==2.6.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6" -googleapis-common-protos==1.54.0; python_version >= "3.6" -html5lib==1.1; python_version >= "3.6" and python_full_version < "3.0.0" and python_version < "4.0" or python_version >= "3.6" and python_version < "4.0" and python_full_version >= "3.5.0" -httplib2==0.20.4; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" -idna==3.3; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6" or python_version >= "3.6" and python_version < "4.0" -imagesize==1.3.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_version >= "3.6" and python_full_version >= "3.4.0" -importlib-metadata==1.7.0; python_version >= "3.6" and python_full_version < "3.0.0" and python_version < "3.8" or python_version >= "3.6" and python_version < "3.8" and python_full_version >= "3.5.0" -importlib-resources==5.4.0; python_version >= "3.6" and python_full_version < "3.0.0" and python_version < "3.7" or python_version >= "3.6" and python_version < "3.7" and python_full_version >= "3.4.0" -iniconfig==1.1.1; python_version >= "3.6" -invoke==1.6.0; python_version >= "3.6" -ipdb==0.13.9; python_version >= "3.6" -ipython-genutils==0.2.0 -ipython==7.16.3; python_version == "3.6" -ipython==7.31.1; python_version >= "3.7" -isodate==0.6.1; python_version >= "3.6" -isort==5.8.0; python_version >= "3.6" and python_version < "4.0" -jedi==0.17.2; python_version == "3.6" and python_full_version < "3.0.0" or python_version == "3.6" and python_full_version >= "3.5.0" or python_version >= "3.7" and python_full_version < "3.0.0" or python_version >= "3.7" and python_full_version >= "3.5.0" -jeepney==0.7.1; python_version >= "3.6" and python_version < "4.0" and sys_platform == "linux" -jinja2==3.0.3; python_version >= "3.6" or python_version >= "3.6" -jmespath==0.10.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.6" -josepy==1.12.0; python_version >= "3.6" -jsonlines==3.0.0; python_version >= "3.6" -jsonpickle==2.1.0; python_version >= "3.6" -jsonschema==3.2.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" -keyring==22.3.0; python_version >= "3.6" and python_version < "4.0" or python_version >= "3.6" -lazy-object-proxy==1.7.1; python_version >= "3.6" and python_version < "4.0" +alabaster==0.7.12; python_version >= "3.7" +apacheconfig==0.3.2; python_version >= "3.7" +appdirs==1.4.4; python_version >= "3.7" and python_full_version < "3.0.0" and python_version < "4.0" or python_version >= "3.7" and python_version < "4.0" and python_full_version >= "3.4.0" +appnope==0.1.2; python_version >= "3.7" and sys_platform == "darwin" +astroid==2.9.3; python_version >= "3.7" and python_full_version >= "3.6.2" +atomicwrites==1.4.0; python_version >= "3.7" and python_full_version < "3.0.0" and sys_platform == "win32" or sys_platform == "win32" and python_version >= "3.7" and python_full_version >= "3.4.0" +attrs==21.4.0; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.7" +awscli==1.22.64; python_version >= "3.6" +azure-devops==6.0.0b4; python_version >= "3.7" +babel==2.9.1; python_version >= "3.7" and python_full_version < "3.0.0" or python_version >= "3.7" and python_full_version >= "3.4.0" +backcall==0.2.0; python_version >= "3.7" +bcrypt==3.2.0; python_version >= "3.7" +beautifulsoup4==4.10.0; python_full_version > "3.0.0" and python_version >= "3.7" or python_version >= "3.7" and python_version < "4.0" and python_full_version > "3.0.0" +bleach==4.1.0; python_version >= "3.7" +boto3==1.21.9; python_version >= "3.7" +botocore==1.24.9; python_version >= "3.7" +cachecontrol==0.12.10; python_version >= "3.7" and python_version < "4.0" +cached-property==1.5.2; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.7" +cachetools==5.0.0; python_version >= "3.7" and python_version < "4.0" and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7") +cachy==0.3.0; python_version >= "3.7" and python_full_version < "3.0.0" and python_version < "4.0" or python_version >= "3.7" and python_version < "4.0" and python_full_version >= "3.4.0" +certifi==2021.10.8; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7" or python_version >= "3.7" +cffi==1.15.0; python_version >= "3.7" or python_version >= "3.7" +charset-normalizer==2.0.12; python_full_version >= "3.6.0" and python_version >= "3.7" +cleo==1.0.0a4; python_version >= "3.7" and python_version < "4.0" +cloudflare==2.8.15; python_version >= "3.7" +colorama==0.4.3; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.7" or python_version >= "3.7" and python_full_version < "3.0.0" and sys_platform == "win32" or python_full_version >= "3.5.0" and python_version >= "3.7" and sys_platform == "win32" or python_version >= "3.7" and python_full_version >= "3.6.2" and sys_platform == "win32" or python_version >= "3.7" and python_full_version < "3.0.0" and platform_system == "Windows" or python_version >= "3.7" and python_full_version >= "3.5.0" and platform_system == "Windows" +configargparse==1.5.3; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.7" +configobj==5.0.6; python_version >= "3.7" +coverage==6.3.2; python_version >= "3.7" or python_version >= "3.7" +crashtest==0.3.1; python_version >= "3.7" and python_version < "4.0" +cryptography==36.0.1; python_version >= "3.7" and python_version < "4.0" or python_version >= "3.7" or python_version >= "3.7" and python_version < "4.0" and sys_platform == "linux" +cython==0.29.28; (python_version >= "2.6" and python_full_version < "3.0.0") or (python_full_version >= "3.3.0") +decorator==5.1.1; python_version >= "3.7" +deprecated==1.2.13; python_version >= "3.7" and python_full_version < "3.0.0" or python_version >= "3.7" and python_full_version >= "3.4.0" +distlib==0.3.4; python_version >= "3.7" and python_full_version < "3.0.0" and python_version < "4.0" or python_version >= "3.7" and python_version < "4.0" and python_full_version >= "3.4.0" or python_version >= "3.7" +distro==1.7.0; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.7" or python_version >= "3.7" +dns-lexicon==3.9.4; python_version >= "3.7" and python_version < "4.0" +dnspython==2.2.0; python_version >= "3.7" and python_version < "4.0" +docker-compose==1.26.2; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.7" +docker==4.2.2; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.7" +dockerpty==0.4.1; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.7" +docopt==0.6.2; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.7" +docutils==0.15.2; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.7" or python_version >= "3.7" and python_full_version >= "3.4.0" +entrypoints==0.3; python_version >= "3.7" and python_version < "4.0" +execnet==1.9.0; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.7" +fabric==2.6.0; python_version >= "3.7" +filelock==3.6.0; python_version >= "3.7" and python_full_version < "3.0.0" or python_version >= "3.7" and python_full_version >= "3.5.0" or python_version >= "3.7" and python_full_version < "3.0.0" and python_version < "4.0" or python_version >= "3.7" and python_version < "4.0" and python_full_version >= "3.4.0" or python_version >= "3.7" and python_version < "4.0" +google-api-core==2.5.0; python_version >= "3.7" +google-api-python-client==2.38.0; python_version >= "3.7" +google-auth-httplib2==0.1.0; python_version >= "3.7" +google-auth==2.6.0; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7" +googleapis-common-protos==1.55.0; python_version >= "3.7" +html5lib==1.1; python_version >= "3.7" and python_full_version < "3.0.0" and python_version < "4.0" or python_version >= "3.7" and python_version < "4.0" and python_full_version >= "3.5.0" +httplib2==0.20.4; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.7" +idna==3.3; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7" or python_version >= "3.7" and python_version < "4.0" +imagesize==1.3.0; python_version >= "3.7" and python_full_version < "3.0.0" or python_version >= "3.7" and python_full_version >= "3.4.0" +importlib-metadata==1.7.0; python_version >= "3.7" and python_full_version < "3.0.0" and python_version < "3.8" or python_version >= "3.7" and python_version < "3.8" and python_full_version >= "3.5.0" +iniconfig==1.1.1; python_version >= "3.7" +invoke==1.6.0; python_version >= "3.7" +ipdb==0.13.9; python_version >= "3.7" +ipython==7.32.0; python_version >= "3.7" +isodate==0.6.1; python_version >= "3.7" +isort==5.10.1; python_full_version >= "3.6.2" and python_version < "4.0" and python_version >= "3.7" +jedi==0.18.1; python_version >= "3.7" +jeepney==0.7.1; python_version >= "3.7" and python_version < "4.0" and sys_platform == "linux" +jinja2==3.0.3; python_version >= "3.7" or python_version >= "3.7" +jmespath==0.10.0; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.7" +josepy==1.12.0; python_version >= "3.7" +jsonlines==3.0.0; python_version >= "3.7" +jsonpickle==2.1.0; python_version >= "3.7" +jsonschema==3.2.0; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.7" +keyring==22.3.0; python_version >= "3.7" and python_version < "4.0" or python_version >= "3.7" +lazy-object-proxy==1.7.1; python_version >= "3.7" and python_full_version >= "3.6.2" lockfile==0.12.2 -markupsafe==2.0.1; python_version >= "3.6" +markupsafe==2.1.0; python_version >= "3.7" matplotlib-inline==0.1.3; python_version >= "3.7" -mccabe==0.6.1; python_version >= "3.6" and python_version < "4.0" +mccabe==0.6.1; python_version >= "3.7" and python_full_version >= "3.6.2" mock==4.0.3; python_version >= "3.6" -msgpack==1.0.3; python_version >= "3.6" and python_version < "4.0" -msrest==0.6.21; python_version >= "3.6" -mypy-extensions==0.4.3; python_version >= "3.6" -mypy==0.931; python_version >= "3.6" -oauth2client==4.1.3; python_version >= "3.6" -oauthlib==3.2.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_version >= "3.6" and python_full_version >= "3.4.0" -packaging==20.9; python_version >= "3.6" and python_full_version < "3.0.0" and python_version < "4.0" or python_version >= "3.6" and python_version < "4.0" and python_full_version >= "3.4.0" or python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" or python_version >= "3.6" and python_full_version >= "3.5.0" -paramiko==2.9.2; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6" or python_version >= "3.6" -parsedatetime==2.6; python_version >= "3.6" -parso==0.7.1; python_version == "3.6" and python_full_version < "3.0.0" or python_version == "3.6" and python_full_version >= "3.5.0" -pathlib2==2.3.7.post1; python_version >= "3.6" -pexpect==4.8.0; python_version >= "3.6" and python_version < "4.0" or python_version == "3.6" and sys_platform != "win32" or python_version >= "3.7" and sys_platform != "win32" -pickleshare==0.7.5; python_version == "3.6" or python_version >= "3.7" -pip==21.3.1; python_version >= "3.6" -pkginfo==1.8.2; python_version >= "3.6" and python_version < "4.0" or python_version >= "3.6" -platformdirs==2.4.0; python_version >= "3.6" and python_version < "4.0" -pluggy==1.0.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_version >= "3.6" and python_full_version >= "3.5.0" or python_version >= "3.6" -ply==3.11; python_version >= "3.6" -poetry-core==1.1.0a6; python_version >= "3.6" and python_version < "4.0" +msgpack==1.0.3; python_version >= "3.7" and python_version < "4.0" +msrest==0.6.21; python_version >= "3.7" +mypy-extensions==0.4.3; python_version >= "3.7" +mypy==0.931; python_version >= "3.7" +oauth2client==4.1.3; python_version >= "3.7" +oauthlib==3.2.0; python_version >= "3.7" and python_full_version < "3.0.0" or python_version >= "3.7" and python_full_version >= "3.4.0" +packaging==20.9; python_version >= "3.7" and python_full_version < "3.0.0" and python_version < "4.0" or python_version >= "3.7" and python_version < "4.0" and python_full_version >= "3.4.0" or python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.7" or python_version >= "3.7" and python_full_version >= "3.5.0" +paramiko==2.9.2; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.7" or python_version >= "3.7" +parsedatetime==2.6; python_version >= "3.7" +parso==0.8.3; python_version >= "3.7" +pathlib2==2.3.7.post1; python_version >= "3.7" +pexpect==4.8.0; python_version >= "3.7" and python_version < "4.0" or python_version >= "3.7" and sys_platform != "win32" +pickleshare==0.7.5; python_version >= "3.7" +pip==22.0.3; python_version >= "3.7" +pkginfo==1.8.2; python_version >= "3.7" and python_version < "4.0" or python_version >= "3.7" +platformdirs==2.5.1; python_version >= "3.7" and python_full_version >= "3.6.2" +pluggy==1.0.0; python_version >= "3.7" and python_full_version < "3.0.0" or python_version >= "3.7" and python_full_version >= "3.5.0" or python_version >= "3.7" +ply==3.11; python_version >= "3.7" +poetry-core==1.1.0a6; python_version >= "3.7" and python_version < "4.0" poetry==1.2.0a2; python_version >= "3.6" and python_version < "4.0" -prompt-toolkit==3.0.3; python_version == "3.6" or python_version >= "3.7" -protobuf==3.19.4; python_version >= "3.6" -ptyprocess==0.7.0; python_version >= "3.6" and python_version < "4.0" -py==1.11.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6" -pyasn1-modules==0.2.8; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6" or python_version >= "3.6" -pyasn1==0.4.8; python_version >= "3.6" and python_version < "4" or python_version >= "3.6" -pycparser==2.21; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" -pygithub==1.55; python_version >= "3.6" -pygments==2.11.2; python_version >= "3.6" or python_version == "3.6" or python_version >= "3.7" -pyjwt==2.3.0; python_version >= "3.6" -pylev==1.4.0; python_version >= "3.6" and python_version < "4.0" -pylint==2.12.0; python_version >= "3.6" and python_version < "4.0" -pynacl==1.5.0; python_version >= "3.6" or python_version >= "3.6" -pynsist==2.7; python_version >= "3.6" -pyopenssl==22.0.0; python_version >= "3.6" -pyparsing==3.0.7; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" or python_version >= "3.6" or python_version >= "3.6" and python_full_version < "3.0.0" and python_version < "4.0" or python_version >= "3.6" and python_version < "4.0" and python_full_version >= "3.4.0" -pypiwin32==223; sys_platform == "win32" and python_version >= "3.6" and (python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6") -pyrfc3339==1.1; python_version >= "3.6" -pyrsistent==0.18.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" -pytest-cov==3.0.0; python_version >= "3.6" or python_version >= "3.6" -pytest-forked==1.4.0; python_version >= "3.6" -pytest-xdist==2.5.0; python_version >= "3.6" or python_version >= "3.6" -pytest==7.0.0; python_version >= "3.6" or python_version >= "3.6" -python-augeas==1.1.0; python_version >= "3.6" -python-dateutil==2.8.2; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.6" -python-digitalocean==1.17.0; python_version >= "3.6" -python-dotenv==0.19.2; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" -pytz==2021.3; python_version >= "3.6" and python_full_version < "3.0.0" or python_version >= "3.6" and python_full_version >= "3.4.0" or python_version >= "3.6" -pywin32-ctypes==0.2.0; python_version >= "3.6" and python_version < "4.0" and sys_platform == "win32" -pywin32==303; sys_platform == "win32" and python_version >= "3.6" or sys_platform == "win32" and python_version >= "3.6" and (python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6") -pyyaml==5.4.1; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6" or python_version >= "3.6" and python_full_version < "3.0.0" and python_version < "4.0" or python_version >= "3.6" and python_version < "4.0" and python_full_version >= "3.6.0" -readme-renderer==32.0; python_version >= "3.6" -requests-download==0.1.2; python_version >= "3.6" -requests-file==1.5.1; python_version >= "3.6" and python_version < "4.0" -requests-oauthlib==1.3.1; python_version >= "3.6" and python_full_version < "3.0.0" or python_version >= "3.6" and python_full_version >= "3.4.0" -requests-toolbelt==0.9.1; python_version >= "3.6" and python_version < "4.0" or python_version >= "3.6" or python_version >= "3.6" -requests==2.27.1; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6" or python_version >= "3.6" and python_full_version < "3.0.0" and python_version < "4.0" or python_version >= "3.6" and python_version < "4.0" and python_full_version >= "3.6.0" -rfc3986==1.5.0; python_version >= "3.6" -rsa==4.7.2; python_version >= "3.6" and python_version < "4" or python_version >= "3.5" and python_version < "4" and (python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6") -s3transfer==0.5.1; python_version >= "3.6" -secretstorage==3.3.1; python_version >= "3.6" and python_version < "4.0" and sys_platform == "linux" +prompt-toolkit==3.0.28; python_version >= "3.7" and python_full_version >= "3.6.2" +protobuf==3.19.4; python_version >= "3.7" +ptyprocess==0.7.0; python_version >= "3.7" and python_version < "4.0" +py==1.11.0; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.7" +pyasn1-modules==0.2.8; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7" or python_version >= "3.7" +pyasn1==0.4.8; python_version >= "3.7" and python_version < "4" or python_version >= "3.7" +pycparser==2.21; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.7" +pygithub==1.55; python_version >= "3.7" +pygments==2.11.2; python_version >= "3.7" +pyjwt==2.3.0; python_version >= "3.7" +pylev==1.4.0; python_version >= "3.7" and python_version < "4.0" +pylint==2.12.2; python_version >= "3.7" and python_full_version >= "3.6.2" +pynacl==1.5.0; python_version >= "3.7" or python_version >= "3.7" +pynsist==2.7; python_version >= "3.7" +pyopenssl==22.0.0; python_version >= "3.7" +pyparsing==3.0.7; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.7" or python_version >= "3.7" or python_version >= "3.7" and python_full_version < "3.0.0" and python_version < "4.0" or python_version >= "3.7" and python_version < "4.0" and python_full_version >= "3.4.0" +pypiwin32==223; sys_platform == "win32" and python_version >= "3.6" and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.7") +pyrfc3339==1.1; python_version >= "3.7" +pyrsistent==0.18.1; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.7" +pytest-cov==3.0.0; python_version >= "3.7" or python_version >= "3.7" +pytest-forked==1.4.0; python_version >= "3.7" +pytest-xdist==2.5.0; python_version >= "3.7" or python_version >= "3.7" +pytest==7.0.1; python_version >= "3.7" or python_version >= "3.7" +python-augeas==1.1.0; python_version >= "3.7" +python-dateutil==2.8.2; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.7" +python-digitalocean==1.17.0; python_version >= "3.7" +python-dotenv==0.19.2; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.7" +pytz==2021.3; python_version >= "3.7" and python_full_version < "3.0.0" or python_version >= "3.7" and python_full_version >= "3.4.0" or python_version >= "3.7" +pywin32-ctypes==0.2.0; python_version >= "3.7" and python_version < "4.0" and sys_platform == "win32" +pywin32==303; sys_platform == "win32" and python_version >= "3.7" or sys_platform == "win32" and python_version >= "3.6" and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.7") +pyyaml==5.4.1; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7" or python_version >= "3.7" and python_full_version < "3.0.0" and python_version < "4.0" or python_version >= "3.7" and python_version < "4.0" and python_full_version >= "3.6.0" +readme-renderer==32.0; python_version >= "3.7" +requests-download==0.1.2; python_version >= "3.7" +requests-file==1.5.1; python_version >= "3.7" and python_version < "4.0" +requests-oauthlib==1.3.1; python_version >= "3.7" and python_full_version < "3.0.0" or python_version >= "3.7" and python_full_version >= "3.4.0" +requests-toolbelt==0.9.1; python_version >= "3.7" and python_version < "4.0" or python_version >= "3.7" or python_version >= "3.7" +requests==2.27.1; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7" or python_version >= "3.7" and python_full_version < "3.0.0" and python_version < "4.0" or python_version >= "3.7" and python_version < "4.0" and python_full_version >= "3.6.0" +rfc3986==2.0.0; python_version >= "3.7" +rsa==4.7.2; python_version >= "3.7" and python_version < "4" or python_version >= "3.5" and python_version < "4" and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7") +s3transfer==0.5.2; python_version >= "3.7" +secretstorage==3.3.1; python_version >= "3.7" and python_version < "4.0" and sys_platform == "linux" semantic-version==2.9.0; python_version >= "3.6" setuptools-rust==1.1.2; python_version >= "3.6" -setuptools==59.6.0; python_version >= "3.6" or python_version >= "3.6" or python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6" or python_full_version >= "3.4.0" and python_version >= "3.6" or python_version == "3.6" or python_version >= "3.7" or python_version >= "3.6" and python_version < "4.0" -shellingham==1.4.0; python_version >= "3.6" and python_version < "4.0" -six==1.16.0; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" or python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" or python_full_version >= "3.3.0" and python_version >= "3.6" or python_version >= "3.6" and python_full_version >= "3.5.0" or python_version >= "3.6" and python_full_version < "3.0.0" and python_version < "4.0" or python_version >= "3.6" and python_version < "4.0" and python_full_version >= "3.5.0" or python_version >= "3.6" and python_version < "4.0" and python_full_version >= "3.4.0" or python_full_version >= "3.6.0" and python_version >= "3.6" or python_version >= "3.6" and python_version < "4.0" and python_full_version >= "3.3.0" or python_version == "3.6" and python_full_version < "3.0.0" or python_version == "3.6" and python_full_version >= "3.3.0" -snowballstemmer==2.2.0; python_version >= "3.6" -soupsieve==2.3.1; python_full_version > "3.0.0" and python_version >= "3.6" -sphinx-rtd-theme==1.0.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_version >= "3.6" and python_full_version >= "3.4.0" -sphinx==4.3.2; python_version >= "3.6" or python_version >= "3.6" and python_full_version < "3.0.0" or python_version >= "3.6" and python_full_version >= "3.4.0" -sphinxcontrib-applehelp==1.0.2; python_version >= "3.6" -sphinxcontrib-devhelp==1.0.2; python_version >= "3.6" -sphinxcontrib-htmlhelp==2.0.0; python_version >= "3.6" -sphinxcontrib-jsmath==1.0.1; python_version >= "3.6" -sphinxcontrib-qthelp==1.0.3; python_version >= "3.6" -sphinxcontrib-serializinghtml==1.1.5; python_version >= "3.6" -texttable==1.6.4; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" -tldextract==3.1.2; python_version >= "3.6" and python_version < "4.0" -toml==0.10.2; python_version == "3.6" and python_full_version < "3.0.0" or python_version > "3.6" and python_full_version < "3.0.0" or python_version == "3.6" and python_full_version >= "3.3.0" or python_version > "3.6" and python_full_version >= "3.3.0" or python_version >= "3.6" and python_full_version < "3.0.0" and python_version < "4.0" or python_version >= "3.6" and python_version < "4.0" and python_full_version >= "3.3.0" or python_version >= "3.6" and python_full_version < "3.0.0" or python_version >= "3.6" and python_full_version >= "3.5.0" -tomli==1.2.3; python_version >= "3.6" or python_version >= "3.6" -tomlkit==0.9.2; python_version >= "3.6" and python_version < "4.0" -tox==3.24.5; python_version >= "3.6" and python_full_version < "3.0.0" or python_version >= "3.6" and python_full_version >= "3.5.0" -tqdm==4.62.3; python_version >= "3.6" and python_full_version < "3.0.0" or python_version >= "3.6" and python_full_version >= "3.4.0" -traitlets==4.3.3 -twine==3.3.0; python_version >= "3.6" -typed-ast==1.5.2; python_version >= "3.6" and python_version < "3.8" or implementation_name == "cpython" and python_version < "3.8" and python_version >= "3.6" -types-cryptography==3.3.15; python_version >= "3.6" -types-enum34==1.1.8; python_version >= "3.6" -types-ipaddress==1.0.8; python_version >= "3.6" -types-mock==4.0.10; python_version >= "3.6" -types-pyopenssl==22.0.0; python_version >= "3.6" -types-pyrfc3339==1.1.1; python_version >= "3.6" -types-python-dateutil==2.8.9; python_version >= "3.6" -types-pytz==2021.3.4; python_version >= "3.6" -types-requests==2.27.9; python_version >= "3.6" -types-setuptools==57.4.9; python_version >= "3.6" -types-six==1.16.10; python_version >= "3.6" -types-urllib3==1.26.9; python_version >= "3.6" -typing-extensions==4.0.1; python_version >= "3.6" or python_version >= "3.6" or python_version >= "3.6" and python_version < "3.10" or python_version < "3.8" and python_version >= "3.6" -uritemplate==4.1.1; python_version >= "3.6" -urllib3==1.26.8; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version < "4" and python_version >= "3.6" or python_full_version >= "3.5.0" and python_version < "4" and python_version >= "3.6" -virtualenv==20.4.4; python_version >= "3.6" and python_full_version < "3.0.0" and python_version < "4.0" or python_version >= "3.6" and python_version < "4.0" and python_full_version >= "3.4.0" or python_version >= "3.6" and python_full_version < "3.0.0" or python_version >= "3.6" and python_full_version >= "3.5.0" -wcwidth==0.2.5; python_version == "3.6" -webencodings==0.5.1; python_version >= "3.6" and python_full_version < "3.0.0" and python_version < "4.0" or python_version >= "3.6" and python_version < "4.0" and python_full_version >= "3.5.0" or python_version >= "3.6" -websocket-client==0.59.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" or python_full_version >= "3.5.0" and python_version >= "3.6" -wheel==0.37.1; python_version >= "3.6" and python_full_version < "3.0.0" or python_version >= "3.6" and python_full_version >= "3.5.0" -wrapt==1.13.3; python_version >= "3.6" and python_full_version < "3.0.0" or python_version >= "3.6" and python_full_version >= "3.5.0" or python_version >= "3.6" and python_full_version < "3.0.0" and python_version < "4.0" or python_version >= "3.6" and python_version < "4.0" and python_full_version >= "3.5.0" -yarg==0.1.9; python_version >= "3.6" -zipp==3.6.0; python_version >= "3.6" and python_full_version < "3.0.0" and python_version < "3.8" or python_version >= "3.6" and python_version < "3.8" and python_full_version >= "3.5.0" or python_version >= "3.6" and python_full_version < "3.0.0" and python_version < "3.7" or python_version >= "3.6" and python_version < "3.7" and python_full_version >= "3.4.0" -zope.component==5.0.1; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6" -zope.event==4.5.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6" -zope.hookable==5.1.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6" -zope.interface==5.4.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6" +setuptools==60.9.3; python_version >= "3.7" or python_version >= "3.7" or python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.7" or python_full_version >= "3.4.0" and python_version >= "3.7" or python_version >= "3.7" and python_full_version >= "3.6.2" +shellingham==1.4.0; python_version >= "3.7" and python_version < "4.0" +six==1.16.0; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.7" or python_full_version >= "3.3.0" and python_version >= "3.7" or python_version >= "3.7" and python_full_version >= "3.5.0" or python_version >= "3.7" and python_full_version < "3.0.0" and python_version < "4.0" or python_version >= "3.7" and python_version < "4.0" and python_full_version >= "3.5.0" or python_version >= "3.7" and python_version < "4.0" and python_full_version >= "3.4.0" or python_full_version >= "3.6.0" and python_version >= "3.7" or python_version >= "3.7" and python_version < "4.0" and python_full_version >= "3.3.0" +snowballstemmer==2.2.0; python_version >= "3.7" +soupsieve==2.3.1; python_full_version > "3.0.0" and python_version >= "3.7" +sphinx-rtd-theme==1.0.0; python_version >= "3.7" and python_full_version < "3.0.0" or python_version >= "3.7" and python_full_version >= "3.4.0" +sphinx==4.3.2; python_version >= "3.7" or python_version >= "3.7" and python_full_version < "3.0.0" or python_version >= "3.7" and python_full_version >= "3.4.0" +sphinxcontrib-applehelp==1.0.2; python_version >= "3.7" +sphinxcontrib-devhelp==1.0.2; python_version >= "3.7" +sphinxcontrib-htmlhelp==2.0.0; python_version >= "3.7" +sphinxcontrib-jsmath==1.0.1; python_version >= "3.7" +sphinxcontrib-qthelp==1.0.3; python_version >= "3.7" +sphinxcontrib-serializinghtml==1.1.5; python_version >= "3.7" +texttable==1.6.4; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.7" +tldextract==3.2.0; python_version >= "3.7" and python_version < "4.0" +toml==0.10.2; python_version >= "3.7" and python_full_version < "3.0.0" or python_version >= "3.7" and python_full_version >= "3.3.0" or python_version >= "3.7" and python_full_version >= "3.6.2" or python_version >= "3.7" and python_full_version >= "3.5.0" +tomli==2.0.1; python_version >= "3.7" or python_version >= "3.7" +tomlkit==0.10.0; python_version >= "3.7" and python_version < "4.0" +tox==3.24.5; python_version >= "3.7" and python_full_version < "3.0.0" or python_version >= "3.7" and python_full_version >= "3.5.0" +tqdm==4.63.0; python_version >= "3.7" and python_full_version < "3.0.0" or python_version >= "3.7" and python_full_version >= "3.4.0" +traitlets==5.1.1; python_version >= "3.7" +twine==3.3.0; python_version >= "3.7" +typed-ast==1.5.2; python_version >= "3.7" and python_version < "3.8" or implementation_name == "cpython" and python_version < "3.8" and python_version >= "3.7" and python_full_version >= "3.6.2" +types-cryptography==3.3.15; python_version >= "3.7" +types-enum34==1.1.8; python_version >= "3.7" +types-ipaddress==1.0.8; python_version >= "3.7" +types-mock==4.0.11; python_version >= "3.7" +types-pyopenssl==22.0.0; python_version >= "3.7" +types-pyrfc3339==1.1.1; python_version >= "3.7" +types-python-dateutil==2.8.9; python_version >= "3.7" +types-pytz==2021.3.5; python_version >= "3.7" +types-requests==2.27.11; python_version >= "3.7" +types-setuptools==57.4.9; python_version >= "3.7" +types-six==1.16.10; python_version >= "3.7" +types-urllib3==1.26.10; python_version >= "3.7" +typing-extensions==4.1.1; python_version >= "3.7" or python_version >= "3.6" or python_version >= "3.7" and python_full_version >= "3.6.2" and python_version < "3.10" or python_version < "3.8" and python_version >= "3.7" +uritemplate==4.1.1; python_version >= "3.7" +urllib3==1.26.8; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version < "4" and python_version >= "3.7" or python_full_version >= "3.5.0" and python_version < "4" and python_version >= "3.7" +virtualenv==20.4.4; python_version >= "3.7" and python_full_version < "3.0.0" and python_version < "4.0" or python_version >= "3.7" and python_version < "4.0" and python_full_version >= "3.4.0" or python_version >= "3.7" and python_full_version < "3.0.0" or python_version >= "3.7" and python_full_version >= "3.5.0" +wcwidth==0.2.5; python_version >= "3.7" and python_full_version >= "3.6.2" +webencodings==0.5.1; python_version >= "3.7" and python_full_version < "3.0.0" and python_version < "4.0" or python_version >= "3.7" and python_version < "4.0" and python_full_version >= "3.5.0" or python_version >= "3.7" +websocket-client==0.59.0; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.7" or python_full_version >= "3.5.0" and python_version >= "3.7" +wheel==0.37.1; python_version >= "3.7" and python_full_version < "3.0.0" or python_version >= "3.7" and python_full_version >= "3.5.0" +wrapt==1.13.3; python_version >= "3.7" and python_full_version < "3.0.0" or python_version >= "3.7" and python_full_version >= "3.5.0" or python_version >= "3.7" and python_full_version >= "3.6.2" +yarg==0.1.9; python_version >= "3.7" +zipp==3.7.0; python_version >= "3.7" and python_full_version < "3.0.0" and python_version < "3.8" or python_version >= "3.7" and python_version < "3.8" and python_full_version >= "3.5.0" +zope.component==5.0.1; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.7" +zope.event==4.5.0; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.7" +zope.hookable==5.1.0; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.7" +zope.interface==5.4.0; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.7" diff --git a/tools/venv.py b/tools/venv.py index bd1250eed..2aa5b0a2d 100755 --- a/tools/venv.py +++ b/tools/venv.py @@ -69,7 +69,7 @@ def find_python_executable() -> str: * Windows Python launcher 'py' executable in PATH if available Incompatible python versions for Certbot will be evicted (e.g. Python 3 - versions less than 3.6). + versions less than 3.7). :rtype: str :return: the relevant python executable path @@ -118,7 +118,7 @@ def _check_version(version_str): version = (int(search.group(1)), int(search.group(2))) - if version >= (3, 6): + if version >= (3, 7): return True print('Incompatible python version for Certbot found: {0}'.format(version_str)) diff --git a/tox.ini b/tox.ini index 25396d3dd..03f638c0e 100644 --- a/tox.ini +++ b/tox.ini @@ -51,7 +51,7 @@ setenv = # # This version should be kept in sync with the one declared in # tools/pinning/oldest/pyproject.toml. -basepython = python3.6 +basepython = python3.7 commands = {[testenv]commands} setenv = diff --git a/windows-installer/setup.py b/windows-installer/setup.py index 3d16a49f8..3729052a0 100644 --- a/windows-installer/setup.py +++ b/windows-installer/setup.py @@ -11,14 +11,13 @@ setup( author="Certbot Project", author_email='certbot-dev@eff.org', license='Apache License 2.0', - python_requires='>=3.6', + python_requires='>=3.7', classifiers=[ 'Development Status :: 4 - Beta', 'Intended Audience :: Developers', 'License :: OSI Approved :: Apache Software License', 'Programming Language :: Python', 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9',