Drop Python 3.6 support (#9216)

* Remove deprecation warnings

* update ci

* update setup.py files

* update changelog

* update pinnings

* update requests and friends

* update setuptools pin

* update setuptools pin pt2

* update pytz

* upgrade pyparsing

* upgrade boto deps

* update deps and docs

* update pyproject.toml comment

* remove trailets pin

* remove explicit PYTHON_VERSION
This commit is contained in:
Brad Warren
2022-02-28 15:23:30 -08:00
committed by GitHub
parent 3c9e690e19
commit c1030c0d40
37 changed files with 353 additions and 427 deletions
@@ -8,12 +8,6 @@ jobs:
- group: certbot-common - group: certbot-common
strategy: strategy:
matrix: matrix:
linux-py36:
PYTHON_VERSION: 3.6
TOXENV: py36
linux-py37:
PYTHON_VERSION: 3.7
TOXENV: py37
linux-py38: linux-py38:
PYTHON_VERSION: 3.8 PYTHON_VERSION: 3.8
TOXENV: py38 TOXENV: py38
@@ -27,17 +21,13 @@ jobs:
linux-external-mock: linux-external-mock:
TOXENV: external-mock TOXENV: external-mock
linux-boulder-v2-integration-certbot-oldest: linux-boulder-v2-integration-certbot-oldest:
PYTHON_VERSION: 3.6 PYTHON_VERSION: 3.7
TOXENV: integration-certbot-oldest TOXENV: integration-certbot-oldest
ACME_SERVER: boulder-v2 ACME_SERVER: boulder-v2
linux-boulder-v2-integration-nginx-oldest: linux-boulder-v2-integration-nginx-oldest:
PYTHON_VERSION: 3.6 PYTHON_VERSION: 3.7
TOXENV: integration-nginx-oldest TOXENV: integration-nginx-oldest
ACME_SERVER: boulder-v2 ACME_SERVER: boulder-v2
linux-boulder-v2-py36-integration:
PYTHON_VERSION: 3.6
TOXENV: integration
ACME_SERVER: boulder-v2
linux-boulder-v2-py37-integration: linux-boulder-v2-py37-integration:
PYTHON_VERSION: 3.7 PYTHON_VERSION: 3.7
TOXENV: integration TOXENV: integration
@@ -4,18 +4,18 @@ jobs:
PYTHON_VERSION: 3.10 PYTHON_VERSION: 3.10
strategy: strategy:
matrix: matrix:
macos-py36-cover: macos-py37-cover:
IMAGE_NAME: macOS-10.15 IMAGE_NAME: macOS-10.15
PYTHON_VERSION: 3.6 PYTHON_VERSION: 3.7
TOXENV: py36-cover TOXENV: py37-cover
macos-py310-cover: macos-py310-cover:
IMAGE_NAME: macOS-10.15 IMAGE_NAME: macOS-10.15
PYTHON_VERSION: 3.10 PYTHON_VERSION: 3.10
TOXENV: py310-cover TOXENV: py310-cover
windows-py36: windows-py37:
IMAGE_NAME: vs2017-win2016 IMAGE_NAME: vs2017-win2016
PYTHON_VERSION: 3.6 PYTHON_VERSION: 3.7
TOXENV: py36-win TOXENV: py37-win
windows-py39-cover: windows-py39-cover:
IMAGE_NAME: vs2017-win2016 IMAGE_NAME: vs2017-win2016
PYTHON_VERSION: 3.9 PYTHON_VERSION: 3.9
@@ -26,16 +26,16 @@ jobs:
TOXENV: integration-certbot TOXENV: integration-certbot
linux-oldest-tests-1: linux-oldest-tests-1:
IMAGE_NAME: ubuntu-18.04 IMAGE_NAME: ubuntu-18.04
PYTHON_VERSION: 3.6 PYTHON_VERSION: 3.7
TOXENV: '{acme,apache,apache-v2,certbot}-oldest' TOXENV: '{acme,apache,apache-v2,certbot}-oldest'
linux-oldest-tests-2: linux-oldest-tests-2:
IMAGE_NAME: ubuntu-18.04 IMAGE_NAME: ubuntu-18.04
PYTHON_VERSION: 3.6 PYTHON_VERSION: 3.7
TOXENV: '{dns,nginx}-oldest' TOXENV: '{dns,nginx}-oldest'
linux-py36: linux-py37:
IMAGE_NAME: ubuntu-18.04 IMAGE_NAME: ubuntu-18.04
PYTHON_VERSION: 3.6 PYTHON_VERSION: 3.7
TOXENV: py36 TOXENV: py37
linux-py310-cover: linux-py310-cover:
IMAGE_NAME: ubuntu-18.04 IMAGE_NAME: ubuntu-18.04
PYTHON_VERSION: 3.10 PYTHON_VERSION: 3.10
@@ -58,11 +58,9 @@ jobs:
TOXENV: apache_compat TOXENV: apache_compat
apacheconftest: apacheconftest:
IMAGE_NAME: ubuntu-18.04 IMAGE_NAME: ubuntu-18.04
PYTHON_VERSION: 3.6
TOXENV: apacheconftest-with-pebble TOXENV: apacheconftest-with-pebble
nginxroundtrip: nginxroundtrip:
IMAGE_NAME: ubuntu-18.04 IMAGE_NAME: ubuntu-18.04
PYTHON_VERSION: 3.6
TOXENV: nginxroundtrip TOXENV: nginxroundtrip
pool: pool:
vmImage: $(IMAGE_NAME) vmImage: $(IMAGE_NAME)
-9
View File
@@ -6,7 +6,6 @@ This module is an implementation of the `ACME protocol`_.
""" """
import sys import sys
import warnings
# This code exists to keep backwards compatibility with people using acme.jose # This code exists to keep backwards compatibility with people using acme.jose
# before it became the standalone josepy package. # before it became the standalone josepy package.
@@ -20,11 +19,3 @@ for mod in list(sys.modules):
# preserved (acme.jose.* is josepy.*) # preserved (acme.jose.* is josepy.*)
if mod == 'josepy' or mod.startswith('josepy.'): if mod == 'josepy' or mod.startswith('josepy.'):
sys.modules['acme.' + mod.replace('josepy', 'jose', 1)] = sys.modules[mod] 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
+4 -5
View File
@@ -10,10 +10,10 @@ install_requires = [
'josepy>=1.10.0', 'josepy>=1.10.0',
'PyOpenSSL>=17.3.0', 'PyOpenSSL>=17.3.0',
'pyrfc3339', 'pyrfc3339',
'pytz', 'pytz>=2019.3',
'requests>=2.14.2', 'requests>=2.20.0',
'requests-toolbelt>=0.3.0', 'requests-toolbelt>=0.3.0',
'setuptools>=39.0.1', 'setuptools>=41.6.0',
] ]
docs_extras = [ docs_extras = [
@@ -35,14 +35,13 @@ setup(
author="Certbot Project", author="Certbot Project",
author_email='certbot-dev@eff.org', author_email='certbot-dev@eff.org',
license='Apache License 2.0', license='Apache License 2.0',
python_requires='>=3.6', python_requires='>=3.7',
classifiers=[ classifiers=[
'Development Status :: 5 - Production/Stable', 'Development Status :: 5 - Production/Stable',
'Intended Audience :: Developers', 'Intended Audience :: Developers',
'License :: OSI Approved :: Apache Software License', 'License :: OSI Approved :: Apache Software License',
'Programming Language :: Python', 'Programming Language :: Python',
'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.9',
+2 -3
View File
@@ -10,7 +10,7 @@ install_requires = [
f'acme>={version}', f'acme>={version}',
f'certbot>={version}', f'certbot>={version}',
'python-augeas', 'python-augeas',
'setuptools>=39.0.1', 'setuptools>=41.6.0',
] ]
dev_extras = [ dev_extras = [
@@ -25,7 +25,7 @@ setup(
author="Certbot Project", author="Certbot Project",
author_email='certbot-dev@eff.org', author_email='certbot-dev@eff.org',
license='Apache License 2.0', license='Apache License 2.0',
python_requires='>=3.6', python_requires='>=3.7',
classifiers=[ classifiers=[
'Development Status :: 5 - Production/Stable', 'Development Status :: 5 - Production/Stable',
'Environment :: Plugins', 'Environment :: Plugins',
@@ -34,7 +34,6 @@ setup(
'Operating System :: POSIX :: Linux', 'Operating System :: POSIX :: Linux',
'Programming Language :: Python', 'Programming Language :: Python',
'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.9',
+1 -2
View File
@@ -40,14 +40,13 @@ setup(
author="Certbot Project", author="Certbot Project",
author_email='certbot-dev@eff.org', author_email='certbot-dev@eff.org',
license='Apache License 2.0', license='Apache License 2.0',
python_requires='>=3.6', python_requires='>=3.7',
classifiers=[ classifiers=[
'Development Status :: 3 - Alpha', 'Development Status :: 3 - Alpha',
'Intended Audience :: Developers', 'Intended Audience :: Developers',
'License :: OSI Approved :: Apache Software License', 'License :: OSI Approved :: Apache Software License',
'Programming Language :: Python', 'Programming Language :: Python',
'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.9',
+1 -2
View File
@@ -18,14 +18,13 @@ setup(
author="Certbot Project", author="Certbot Project",
author_email='certbot-dev@eff.org', author_email='certbot-dev@eff.org',
license='Apache License 2.0', license='Apache License 2.0',
python_requires='>=3.6', python_requires='>=3.7',
classifiers=[ classifiers=[
'Development Status :: 3 - Alpha', 'Development Status :: 3 - Alpha',
'Intended Audience :: Developers', 'Intended Audience :: Developers',
'License :: OSI Approved :: Apache Software License', 'License :: OSI Approved :: Apache Software License',
'Programming Language :: Python', 'Programming Language :: Python',
'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.9',
+2 -3
View File
@@ -8,7 +8,7 @@ version = '1.24.0.dev0'
install_requires = [ install_requires = [
'cloudflare>=1.5.1', 'cloudflare>=1.5.1',
'setuptools>=39.0.1', 'setuptools>=41.6.0',
] ]
if not os.environ.get('SNAP_BUILD'): if not os.environ.get('SNAP_BUILD'):
@@ -38,7 +38,7 @@ setup(
author="Certbot Project", author="Certbot Project",
author_email='certbot-dev@eff.org', author_email='certbot-dev@eff.org',
license='Apache License 2.0', license='Apache License 2.0',
python_requires='>=3.6', python_requires='>=3.7',
classifiers=[ classifiers=[
'Development Status :: 5 - Production/Stable', 'Development Status :: 5 - Production/Stable',
'Environment :: Plugins', 'Environment :: Plugins',
@@ -47,7 +47,6 @@ setup(
'Operating System :: POSIX :: Linux', 'Operating System :: POSIX :: Linux',
'Programming Language :: Python', 'Programming Language :: Python',
'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.9',
+2 -3
View File
@@ -8,7 +8,7 @@ version = '1.24.0.dev0'
install_requires = [ install_requires = [
'dns-lexicon>=3.2.1', 'dns-lexicon>=3.2.1',
'setuptools>=39.0.1', 'setuptools>=41.6.0',
] ]
if not os.environ.get('SNAP_BUILD'): if not os.environ.get('SNAP_BUILD'):
@@ -38,7 +38,7 @@ setup(
author="Certbot Project", author="Certbot Project",
author_email='certbot-dev@eff.org', author_email='certbot-dev@eff.org',
license='Apache License 2.0', license='Apache License 2.0',
python_requires='>=3.6', python_requires='>=3.7',
classifiers=[ classifiers=[
'Development Status :: 5 - Production/Stable', 'Development Status :: 5 - Production/Stable',
'Environment :: Plugins', 'Environment :: Plugins',
@@ -47,7 +47,6 @@ setup(
'Operating System :: POSIX :: Linux', 'Operating System :: POSIX :: Linux',
'Programming Language :: Python', 'Programming Language :: Python',
'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.9',
+2 -3
View File
@@ -8,7 +8,7 @@ version = '1.24.0.dev0'
install_requires = [ install_requires = [
'python-digitalocean>=1.11', # 1.15.0 or newer is recommended for TTL support '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'): if not os.environ.get('SNAP_BUILD'):
@@ -38,7 +38,7 @@ setup(
author="Certbot Project", author="Certbot Project",
author_email='certbot-dev@eff.org', author_email='certbot-dev@eff.org',
license='Apache License 2.0', license='Apache License 2.0',
python_requires='>=3.6', python_requires='>=3.7',
classifiers=[ classifiers=[
'Development Status :: 5 - Production/Stable', 'Development Status :: 5 - Production/Stable',
'Environment :: Plugins', 'Environment :: Plugins',
@@ -47,7 +47,6 @@ setup(
'Operating System :: POSIX :: Linux', 'Operating System :: POSIX :: Linux',
'Programming Language :: Python', 'Programming Language :: Python',
'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.9',
+2 -3
View File
@@ -10,7 +10,7 @@ install_requires = [
# This version of lexicon is required to address the problem described in # This version of lexicon is required to address the problem described in
# https://github.com/AnalogJ/lexicon/issues/387. # https://github.com/AnalogJ/lexicon/issues/387.
'dns-lexicon>=3.2.1', 'dns-lexicon>=3.2.1',
'setuptools>=39.0.1', 'setuptools>=41.6.0',
] ]
if not os.environ.get('SNAP_BUILD'): if not os.environ.get('SNAP_BUILD'):
@@ -40,7 +40,7 @@ setup(
author="Certbot Project", author="Certbot Project",
author_email='certbot-dev@eff.org', author_email='certbot-dev@eff.org',
license='Apache License 2.0', license='Apache License 2.0',
python_requires='>=3.6', python_requires='>=3.7',
classifiers=[ classifiers=[
'Development Status :: 5 - Production/Stable', 'Development Status :: 5 - Production/Stable',
'Environment :: Plugins', 'Environment :: Plugins',
@@ -49,7 +49,6 @@ setup(
'Operating System :: POSIX :: Linux', 'Operating System :: POSIX :: Linux',
'Programming Language :: Python', 'Programming Language :: Python',
'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.9',
+2 -3
View File
@@ -8,7 +8,7 @@ version = '1.24.0.dev0'
install_requires = [ install_requires = [
'dns-lexicon>=3.2.1', 'dns-lexicon>=3.2.1',
'setuptools>=39.0.1', 'setuptools>=41.6.0',
] ]
if not os.environ.get('SNAP_BUILD'): if not os.environ.get('SNAP_BUILD'):
@@ -38,7 +38,7 @@ setup(
author="Certbot Project", author="Certbot Project",
author_email='certbot-dev@eff.org', author_email='certbot-dev@eff.org',
license='Apache License 2.0', license='Apache License 2.0',
python_requires='>=3.6', python_requires='>=3.7',
classifiers=[ classifiers=[
'Development Status :: 5 - Production/Stable', 'Development Status :: 5 - Production/Stable',
'Environment :: Plugins', 'Environment :: Plugins',
@@ -47,7 +47,6 @@ setup(
'Operating System :: POSIX :: Linux', 'Operating System :: POSIX :: Linux',
'Programming Language :: Python', 'Programming Language :: Python',
'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.9',
+2 -3
View File
@@ -8,7 +8,7 @@ version = '1.24.0.dev0'
install_requires = [ install_requires = [
'dns-lexicon>=3.2.1', 'dns-lexicon>=3.2.1',
'setuptools>=39.0.1', 'setuptools>=41.6.0',
] ]
if not os.environ.get('SNAP_BUILD'): if not os.environ.get('SNAP_BUILD'):
@@ -38,7 +38,7 @@ setup(
author="Certbot Project", author="Certbot Project",
author_email='certbot-dev@eff.org', author_email='certbot-dev@eff.org',
license='Apache License 2.0', license='Apache License 2.0',
python_requires='>=3.6', python_requires='>=3.7',
classifiers=[ classifiers=[
'Development Status :: 5 - Production/Stable', 'Development Status :: 5 - Production/Stable',
'Environment :: Plugins', 'Environment :: Plugins',
@@ -47,7 +47,6 @@ setup(
'Operating System :: POSIX :: Linux', 'Operating System :: POSIX :: Linux',
'Programming Language :: Python', 'Programming Language :: Python',
'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.9',
+2 -3
View File
@@ -9,7 +9,7 @@ version = '1.24.0.dev0'
install_requires = [ install_requires = [
'google-api-python-client>=1.5.5', 'google-api-python-client>=1.5.5',
'oauth2client>=4.0', 'oauth2client>=4.0',
'setuptools>=39.0.1', 'setuptools>=41.6.0',
# already a dependency of google-api-python-client, but added for consistency # already a dependency of google-api-python-client, but added for consistency
'httplib2' 'httplib2'
] ]
@@ -41,7 +41,7 @@ setup(
author="Certbot Project", author="Certbot Project",
author_email='certbot-dev@eff.org', author_email='certbot-dev@eff.org',
license='Apache License 2.0', license='Apache License 2.0',
python_requires='>=3.6', python_requires='>=3.7',
classifiers=[ classifiers=[
'Development Status :: 5 - Production/Stable', 'Development Status :: 5 - Production/Stable',
'Environment :: Plugins', 'Environment :: Plugins',
@@ -50,7 +50,6 @@ setup(
'Operating System :: POSIX :: Linux', 'Operating System :: POSIX :: Linux',
'Programming Language :: Python', 'Programming Language :: Python',
'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.9',
+2 -3
View File
@@ -8,7 +8,7 @@ version = '1.24.0.dev0'
install_requires = [ install_requires = [
'dns-lexicon>=3.2.1', 'dns-lexicon>=3.2.1',
'setuptools>=39.0.1', 'setuptools>=41.6.0',
] ]
if not os.environ.get('SNAP_BUILD'): if not os.environ.get('SNAP_BUILD'):
@@ -38,7 +38,7 @@ setup(
author="Certbot Project", author="Certbot Project",
author_email='certbot-dev@eff.org', author_email='certbot-dev@eff.org',
license='Apache License 2.0', license='Apache License 2.0',
python_requires='>=3.6', python_requires='>=3.7',
classifiers=[ classifiers=[
'Development Status :: 5 - Production/Stable', 'Development Status :: 5 - Production/Stable',
'Environment :: Plugins', 'Environment :: Plugins',
@@ -47,7 +47,6 @@ setup(
'Operating System :: POSIX :: Linux', 'Operating System :: POSIX :: Linux',
'Programming Language :: Python', 'Programming Language :: Python',
'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.9',
+2 -3
View File
@@ -8,7 +8,7 @@ version = '1.24.0.dev0'
install_requires = [ install_requires = [
'dns-lexicon>=3.2.1', 'dns-lexicon>=3.2.1',
'setuptools>=39.0.1', 'setuptools>=41.6.0',
] ]
if not os.environ.get('SNAP_BUILD'): if not os.environ.get('SNAP_BUILD'):
@@ -38,7 +38,7 @@ setup(
author="Certbot Project", author="Certbot Project",
author_email='certbot-dev@eff.org', author_email='certbot-dev@eff.org',
license='Apache License 2.0', license='Apache License 2.0',
python_requires='>=3.6', python_requires='>=3.7',
classifiers=[ classifiers=[
'Development Status :: 5 - Production/Stable', 'Development Status :: 5 - Production/Stable',
'Environment :: Plugins', 'Environment :: Plugins',
@@ -47,7 +47,6 @@ setup(
'Operating System :: POSIX :: Linux', 'Operating System :: POSIX :: Linux',
'Programming Language :: Python', 'Programming Language :: Python',
'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.9',
+2 -3
View File
@@ -8,7 +8,7 @@ version = '1.24.0.dev0'
install_requires = [ install_requires = [
'dns-lexicon>=3.2.1', 'dns-lexicon>=3.2.1',
'setuptools>=39.0.1', 'setuptools>=41.6.0',
] ]
if not os.environ.get('SNAP_BUILD'): if not os.environ.get('SNAP_BUILD'):
@@ -38,7 +38,7 @@ setup(
author="Certbot Project", author="Certbot Project",
author_email='certbot-dev@eff.org', author_email='certbot-dev@eff.org',
license='Apache License 2.0', license='Apache License 2.0',
python_requires='>=3.6', python_requires='>=3.7',
classifiers=[ classifiers=[
'Development Status :: 5 - Production/Stable', 'Development Status :: 5 - Production/Stable',
'Environment :: Plugins', 'Environment :: Plugins',
@@ -47,7 +47,6 @@ setup(
'Operating System :: POSIX :: Linux', 'Operating System :: POSIX :: Linux',
'Programming Language :: Python', 'Programming Language :: Python',
'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.9',
+2 -3
View File
@@ -8,7 +8,7 @@ version = '1.24.0.dev0'
install_requires = [ install_requires = [
'dns-lexicon>=3.2.1', 'dns-lexicon>=3.2.1',
'setuptools>=39.0.1', 'setuptools>=41.6.0',
] ]
if not os.environ.get('SNAP_BUILD'): if not os.environ.get('SNAP_BUILD'):
@@ -38,7 +38,7 @@ setup(
author="Certbot Project", author="Certbot Project",
author_email='certbot-dev@eff.org', author_email='certbot-dev@eff.org',
license='Apache License 2.0', license='Apache License 2.0',
python_requires='>=3.6', python_requires='>=3.7',
classifiers=[ classifiers=[
'Development Status :: 5 - Production/Stable', 'Development Status :: 5 - Production/Stable',
'Environment :: Plugins', 'Environment :: Plugins',
@@ -47,7 +47,6 @@ setup(
'Operating System :: POSIX :: Linux', 'Operating System :: POSIX :: Linux',
'Programming Language :: Python', 'Programming Language :: Python',
'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.9',
+2 -3
View File
@@ -8,7 +8,7 @@ version = '1.24.0.dev0'
install_requires = [ install_requires = [
'dnspython>=1.15.0', 'dnspython>=1.15.0',
'setuptools>=39.0.1', 'setuptools>=41.6.0',
] ]
if not os.environ.get('SNAP_BUILD'): if not os.environ.get('SNAP_BUILD'):
@@ -38,7 +38,7 @@ setup(
author="Certbot Project", author="Certbot Project",
author_email='certbot-dev@eff.org', author_email='certbot-dev@eff.org',
license='Apache License 2.0', license='Apache License 2.0',
python_requires='>=3.6', python_requires='>=3.7',
classifiers=[ classifiers=[
'Development Status :: 5 - Production/Stable', 'Development Status :: 5 - Production/Stable',
'Environment :: Plugins', 'Environment :: Plugins',
@@ -47,7 +47,6 @@ setup(
'Operating System :: POSIX :: Linux', 'Operating System :: POSIX :: Linux',
'Programming Language :: Python', 'Programming Language :: Python',
'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.9',
+3 -4
View File
@@ -7,8 +7,8 @@ from setuptools import setup
version = '1.24.0.dev0' version = '1.24.0.dev0'
install_requires = [ install_requires = [
'boto3', 'boto3>=1.15.15',
'setuptools>=39.0.1', 'setuptools>=41.6.0',
] ]
if not os.environ.get('SNAP_BUILD'): if not os.environ.get('SNAP_BUILD'):
@@ -38,7 +38,7 @@ setup(
author="Certbot Project", author="Certbot Project",
author_email='certbot-dev@eff.org', author_email='certbot-dev@eff.org',
license='Apache License 2.0', license='Apache License 2.0',
python_requires='>=3.6', python_requires='>=3.7',
classifiers=[ classifiers=[
'Development Status :: 5 - Production/Stable', 'Development Status :: 5 - Production/Stable',
'Environment :: Plugins', 'Environment :: Plugins',
@@ -47,7 +47,6 @@ setup(
'Operating System :: POSIX :: Linux', 'Operating System :: POSIX :: Linux',
'Programming Language :: Python', 'Programming Language :: Python',
'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.9',
+2 -3
View File
@@ -8,7 +8,7 @@ version = '1.24.0.dev0'
install_requires = [ install_requires = [
'dns-lexicon>=3.2.1', 'dns-lexicon>=3.2.1',
'setuptools>=39.0.1', 'setuptools>=41.6.0',
] ]
if not os.environ.get('SNAP_BUILD'): if not os.environ.get('SNAP_BUILD'):
@@ -38,7 +38,7 @@ setup(
author="Certbot Project", author="Certbot Project",
author_email='certbot-dev@eff.org', author_email='certbot-dev@eff.org',
license='Apache License 2.0', license='Apache License 2.0',
python_requires='>=3.6', python_requires='>=3.7',
classifiers=[ classifiers=[
'Development Status :: 5 - Production/Stable', 'Development Status :: 5 - Production/Stable',
'Environment :: Plugins', 'Environment :: Plugins',
@@ -47,7 +47,6 @@ setup(
'Operating System :: POSIX :: Linux', 'Operating System :: POSIX :: Linux',
'Programming Language :: Python', 'Programming Language :: Python',
'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.9',
@@ -28,7 +28,7 @@ from pyparsing import White
from pyparsing import ZeroOrMore from pyparsing import ZeroOrMore
if TYPE_CHECKING: 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__) logger = logging.getLogger(__name__)
+3 -4
View File
@@ -10,8 +10,8 @@ install_requires = [
f'acme>={version}', f'acme>={version}',
f'certbot>={version}', f'certbot>={version}',
'PyOpenSSL>=17.3.0', 'PyOpenSSL>=17.3.0',
'pyparsing>=2.2.0', 'pyparsing>=2.2.1',
'setuptools>=39.0.1', 'setuptools>=41.6.0',
] ]
setup( setup(
@@ -22,7 +22,7 @@ setup(
author="Certbot Project", author="Certbot Project",
author_email='certbot-dev@eff.org', author_email='certbot-dev@eff.org',
license='Apache License 2.0', license='Apache License 2.0',
python_requires='>=3.6', python_requires='>=3.7',
classifiers=[ classifiers=[
'Development Status :: 5 - Production/Stable', 'Development Status :: 5 - Production/Stable',
'Environment :: Plugins', 'Environment :: Plugins',
@@ -31,7 +31,6 @@ setup(
'Operating System :: POSIX :: Linux', 'Operating System :: POSIX :: Linux',
'Programming Language :: Python', 'Programming Language :: Python',
'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.9',
+6 -3
View File
@@ -13,9 +13,12 @@ Certbot adheres to [Semantic Versioning](https://semver.org/).
### Changed ### Changed
* We previously said we'd drop Python 3.6 support in this release. This release * Support for Python 3.6 was removed.
still supports Python 3.6, however, support is still deprecated and we plan * All Certbot components now require setuptools>=41.6.0.
to completely remove support in a future release. * 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 ### Fixed
-10
View File
@@ -1,13 +1,3 @@
"""Certbot client.""" """Certbot client."""
# version number like 1.2.3a0, must have at least 2 parts, like 1.2 # version number like 1.2.3a0, must have at least 2 parts, like 1.2
import sys
import warnings
__version__ = '1.24.0.dev0' __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
-4
View File
@@ -1673,10 +1673,6 @@ def main(cli_args: List[str] = None) -> Optional[Union[str, int]]:
zope.component.provideUtility(report, interfaces.IReporter) zope.component.provideUtility(report, interfaces.IReporter)
util.atexit_register(report.print_messages) 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: with make_displayer(config) as displayer:
display_obj.set_display(displayer) display_obj.set_display(displayer)
+1 -1
View File
@@ -28,7 +28,7 @@ your system.
System Requirements 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 system. By default, it requires root access in order to write to
``/etc/letsencrypt``, ``/var/log/letsencrypt``, ``/var/lib/letsencrypt``; to ``/etc/letsencrypt``, ``/var/log/letsencrypt``, ``/var/lib/letsencrypt``; to
bind to port 80 (if you use the ``standalone`` plugin) and to read and bind to port 80 (if you use the ``standalone`` plugin) and to read and
+4 -5
View File
@@ -8,7 +8,7 @@ from setuptools import __version__ as setuptools_version
from setuptools import find_packages from setuptools import find_packages
from setuptools import setup 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 # This conditional isn't necessary, but it provides better error messages to
# people who try to install this package with older versions of setuptools. # people who try to install this package with older versions of setuptools.
if parse_version(setuptools_version) < parse_version(min_setuptools_version): if parse_version(setuptools_version) < parse_version(min_setuptools_version):
@@ -55,7 +55,7 @@ install_requires = [
'josepy>=1.9.0', 'josepy>=1.9.0',
'parsedatetime>=2.4', 'parsedatetime>=2.4',
'pyrfc3339', 'pyrfc3339',
'pytz', 'pytz>=2019.3',
# This dependency needs to be added using environment markers to avoid its # This dependency needs to be added using environment markers to avoid its
# installation on Linux. # installation on Linux.
'pywin32>=300 ; sys_platform == "win32"', 'pywin32>=300 ; sys_platform == "win32"',
@@ -101,7 +101,7 @@ test_extras = [
'types-setuptools', 'types-setuptools',
'types-six', 'types-six',
# typing-extensions is required to import typing.Protocol and make the mypy checks # 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', 'typing-extensions',
'wheel', 'wheel',
] ]
@@ -118,7 +118,7 @@ setup(
author="Certbot Project", author="Certbot Project",
author_email='certbot-dev@eff.org', author_email='certbot-dev@eff.org',
license='Apache License 2.0', license='Apache License 2.0',
python_requires='>=3.6', python_requires='>=3.7',
classifiers=[ classifiers=[
'Development Status :: 5 - Production/Stable', 'Development Status :: 5 - Production/Stable',
'Environment :: Console', 'Environment :: Console',
@@ -128,7 +128,6 @@ setup(
'Operating System :: POSIX :: Linux', 'Operating System :: POSIX :: Linux',
'Programming Language :: Python', 'Programming Language :: Python',
'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.9',
+1 -2
View File
@@ -9,14 +9,13 @@ setup(
author='Certbot Project', author='Certbot Project',
author_email='certbot-dev@eff.org', author_email='certbot-dev@eff.org',
license='Apache License 2.0', license='Apache License 2.0',
python_requires='>=3.6', python_requires='>=3.7',
classifiers=[ classifiers=[
'Development Status :: 5 - Production/Stable', 'Development Status :: 5 - Production/Stable',
'Intended Audience :: Developers', 'Intended Audience :: Developers',
'License :: OSI Approved :: Apache Software License', 'License :: OSI Approved :: Apache Software License',
'Programming Language :: Python', 'Programming Language :: Python',
'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.9',
-3
View File
@@ -27,8 +27,6 @@
# 7) botocore's default TLS settings raise deprecation warnings in Python # 7) botocore's default TLS settings raise deprecation warnings in Python
# 3.10+, but their values are sane from a security perspective. See # 3.10+, but their values are sane from a security perspective. See
# https://github.com/boto/botocore/issues/2550. # 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 = filterwarnings =
error error
ignore:The external mock module:PendingDeprecationWarning ignore:The external mock module:PendingDeprecationWarning
@@ -38,4 +36,3 @@ filterwarnings =
ignore:decodestring\(\) is a deprecated alias:DeprecationWarning:dns ignore:decodestring\(\) is a deprecated alias:DeprecationWarning:dns
ignore:_SixMetaPathImporter.:ImportWarning ignore:_SixMetaPathImporter.:ImportWarning
ignore:ssl.PROTOCOL_TLS:DeprecationWarning:botocore ignore:ssl.PROTOCOL_TLS:DeprecationWarning:botocore
ignore:Python 3.6 support will be dropped:PendingDeprecationWarning
+82 -83
View File
@@ -2,116 +2,115 @@
# that script. # that script.
apacheconfig==0.3.2 apacheconfig==0.3.2
asn1crypto==0.24.0 asn1crypto==0.24.0
astroid==2.9.0; python_version >= "3.6" and python_version < "4.0" astroid==2.9.3; python_version >= "3.7" and python_full_version >= "3.6.2"
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" 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.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6" 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.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" 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.4.7 boto3==1.15.15
botocore==1.7.41 botocore==1.18.15
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" 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 cffi==1.9.1
chardet==2.2.1 chardet==3.0.4
cloudflare==1.5.1 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 configargparse==0.10.0
configobj==5.0.6 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") 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") 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.6" and python_full_version < "3.0.0" or python_version >= "3.6" and python_full_version >= "3.5.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 distro==1.0.1
dns-lexicon==3.2.1 dns-lexicon==3.2.1
dnspython==1.15.0 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-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-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==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"
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.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.7"
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.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.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" 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"
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" 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"
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"
funcsigs==0.4 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 google-api-python-client==1.5.5
httplib2==0.9.2 httplib2==0.9.2
idna==2.6 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-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"
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.7"
iniconfig==1.1.1; python_version >= "3.6"
ipaddress==1.0.16 ipaddress==1.0.16
isort==5.8.0; 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.6" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.6" 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.6" josepy==1.12.0; python_version >= "3.7"
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" 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.6" and python_version < "4.0" lazy-object-proxy==1.7.1; python_version >= "3.7" and python_full_version >= "3.6.2"
logger==1.4; python_version >= "3.6" logger==1.4; 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==1.0.1 mock==1.0.1
mypy-extensions==0.4.3; python_version >= "3.6" mypy-extensions==0.4.3; python_version >= "3.7"
mypy==0.931; python_version >= "3.6" mypy==0.931; python_version >= "3.7"
ndg-httpsclient==0.3.2 ndg-httpsclient==0.3.2
oauth2client==4.0.0 oauth2client==4.0.0
packaging==21.3; python_version >= "3.6" packaging==21.3; python_version >= "3.7"
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" 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 parsedatetime==2.4
pbr==1.8.0 pbr==1.8.0
pip==21.3.1; python_version >= "3.6" pip==22.0.3; python_version >= "3.7"
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" 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.6" pluggy==1.0.0; python_version >= "3.7"
ply==3.4 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" 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.6" pyasn1-modules==0.0.10; python_version >= "3.7"
pyasn1==0.1.9 pyasn1==0.1.9
pycparser==2.14 pycparser==2.14
pylint==2.12.0; python_version >= "3.6" 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.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" 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 pyopenssl==17.3.0
pyparsing==2.2.0 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.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6") 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 pyrfc3339==1.0
pytest-cov==3.0.0; 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-forked==1.4.0; python_version >= "3.6" pytest-cov==3.0.0; python_version >= "3.7" or python_version >= "3.7"
pytest-xdist==2.5.0; python_version >= "3.6" or python_version >= "3.6" pytest-forked==1.4.0; python_version >= "3.7"
pytest==6.2.5; python_version >= "3.6" or python_version >= "3.6" 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-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 python-digitalocean==1.11
pytz==2012c pytz==2019.3
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") 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==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" 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.6" requests-file==1.5.1; python_version >= "3.7"
requests-toolbelt==0.9.1; python_version >= "3.6" requests-toolbelt==0.9.1; python_version >= "3.7"
requests==2.14.2 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.6" and python_version < "4" rsa==4.8; python_version >= "3.7" and python_version < "4"
s3transfer==0.1.13; python_version >= "3.6" s3transfer==0.3.7; python_version >= "3.7"
setuptools==39.0.1; (python_version >= "2.7" and python_full_version < "3.0.0") or (python_full_version >= "3.3.0") 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 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" 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.6" tldextract==3.1.2; python_version >= "3.7"
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" toml==0.10.2; python_version >= "3.7" and python_full_version >= "3.6.2"
tomli==1.2.3; python_version >= "3.6" tomli==2.0.1; python_version >= "3.7" or python_version >= "3.7"
tox==1.9.2; python_version >= "3.6" tox==1.9.2; python_version >= "3.7"
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" 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.14; python_version >= "3.6" types-cryptography==3.3.15; python_version >= "3.7"
types-enum34==1.1.7; python_version >= "3.6" types-enum34==1.1.8; python_version >= "3.7"
types-ipaddress==1.0.7; python_version >= "3.6" types-ipaddress==1.0.8; python_version >= "3.7"
types-mock==4.0.8; python_version >= "3.6" types-mock==4.0.10; python_version >= "3.7"
types-pyopenssl==21.0.3; python_version >= "3.6" types-pyopenssl==22.0.0; python_version >= "3.7"
types-pyrfc3339==1.1.1; python_version >= "3.6" types-pyrfc3339==1.1.1; python_version >= "3.7"
types-python-dateutil==2.8.7; python_version >= "3.6" types-python-dateutil==2.8.9; python_version >= "3.7"
types-pytz==2021.3.4; python_version >= "3.6" types-pytz==2021.3.5; python_version >= "3.7"
types-requests==2.27.7; python_version >= "3.6" types-requests==2.27.10; python_version >= "3.7"
types-setuptools==57.4.7; python_version >= "3.6" types-setuptools==57.4.9; python_version >= "3.7"
types-six==1.16.10; python_version >= "3.6" types-six==1.16.10; python_version >= "3.7"
types-urllib3==1.26.7; python_version >= "3.6" types-urllib3==1.26.9; python_version >= "3.7"
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" 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.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" 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.10.2 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.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_version >= "3.6" and python_full_version >= "3.5.0" 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.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" 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") 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" wrapt==1.13.3; python_version >= "3.7" and python_full_version >= "3.6.2"
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" zipp==3.7.0; python_version < "3.8" and python_version >= "3.7"
zope.component==4.1.0 zope.component==4.1.0
zope.event==4.0.3 zope.event==4.0.3
zope.hookable==4.0.4 zope.hookable==4.0.4
+1 -6
View File
@@ -6,7 +6,7 @@ authors = ["Certbot Project"]
license = "Apache License 2.0" license = "Apache License 2.0"
[tool.poetry.dependencies] [tool.poetry.dependencies]
python = "^3.6" python = "^3.7"
# Local dependencies # Local dependencies
# Any local packages that have dependencies on other local packages must be # 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 # point, it's probably worth enumerating and pinning them (and recursing to
# THEIR build dependencies) as well. # THEIR build dependencies) as well.
setuptools-rust = "*" 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] [tool.poetry.dev-dependencies]
+15 -22
View File
@@ -10,7 +10,7 @@ license = "Apache License 2.0"
[tool.poetry.dependencies] [tool.poetry.dependencies]
# The Python version here should be kept in sync with the one used in our # The Python version here should be kept in sync with the one used in our
# oldest tests in tox.ini. # oldest tests in tox.ini.
python = "3.6" python = "3.7"
# Local dependencies # Local dependencies
# Any local packages that have dependencies on other local packages must be # 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"]} acme = {path = "../../../acme", extras = ["test"]}
# Oldest dependencies # Oldest dependencies
# We specify the oldest versions of our dependencies that we keep # We specify the oldest versions of our dependencies that we keep support for
# support for below. We should only update these packages as needed to make use # below. These dependencies can be updated as desired to simplify or improve
# of features in newer versions of our dependencies. Keeping compatibility with # Certbot or its development. If the dependency being updated is a direct
# older packages makes it much easier for OS maintainers to update their # dependency of one of our own packages, the minimum required version of that
# Certbot packages if needed or desired. # dependency should be updated in our setup.py files as well to communicate
# # this information to our users.
# 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.
ConfigArgParse = "0.10.0" ConfigArgParse = "0.10.0"
apacheconfig = "0.3.2" apacheconfig = "0.3.2"
asn1crypto = "0.24.0" asn1crypto = "0.24.0"
boto3 = "1.4.7" boto3 = "1.15.15"
botocore = "1.7.41" botocore = "1.18.15"
cffi = "1.9.1" cffi = "1.9.1"
chardet = "2.2.1" chardet = "3.0.4"
cloudflare = "1.5.1" cloudflare = "1.5.1"
configobj = "5.0.6" configobj = "5.0.6"
cryptography = "3.2.1" cryptography = "3.2.1"
@@ -79,14 +72,14 @@ pyOpenSSL = "17.3.0"
pyRFC3339 = "1.0" pyRFC3339 = "1.0"
pyasn1 = "0.1.9" pyasn1 = "0.1.9"
pycparser = "2.14" pycparser = "2.14"
pyparsing = "2.2.0" pyparsing = "2.2.1"
python-augeas = "0.5.0" python-augeas = "0.5.0"
python-digitalocean = "1.11" python-digitalocean = "1.11"
pytz = "2012rc0" pytz = "2019.3"
requests = "2.14.2" requests = "2.20.0"
setuptools = "39.0.1" setuptools = "41.6.0"
six = "1.11.0" six = "1.11.0"
urllib3 = "1.10.2" urllib3 = "1.24.2"
# Package names containing "." need to be quoted. # Package names containing "." need to be quoted.
"zope.component" = "4.1.0" "zope.component" = "4.1.0"
"zope.event" = "4.0.3" "zope.event" = "4.0.3"
+185 -189
View File
@@ -5,198 +5,194 @@
# requirements.txt so that is scanned by GitHub. See # 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 # https://docs.github.com/en/github/visualizing-repository-data-with-graphs/about-the-dependency-graph#supported-package-ecosystems
# for more info. # for more info.
alabaster==0.7.12; python_version >= "3.6" alabaster==0.7.12; python_version >= "3.7"
apacheconfig==0.3.2; python_version >= "3.6" apacheconfig==0.3.2; python_version >= "3.7"
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" 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.6" and sys_platform == "darwin" or python_version >= "3.7" and sys_platform == "darwin" appnope==0.1.2; python_version >= "3.7" and sys_platform == "darwin"
astroid==2.9.0; python_version >= "3.6" and python_version < "4.0" astroid==2.9.3; python_version >= "3.7" and python_full_version >= "3.6.2"
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" 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.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6" 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.52; python_version >= "3.6" awscli==1.22.64; python_version >= "3.6"
azure-devops==6.0.0b4; python_version >= "3.6" azure-devops==6.0.0b4; python_version >= "3.7"
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" 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.6" or python_version >= "3.7" backcall==0.2.0; python_version >= "3.7"
bcrypt==3.2.0; python_version >= "3.6" bcrypt==3.2.0; python_version >= "3.7"
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" 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.6" bleach==4.1.0; python_version >= "3.7"
boto3==1.20.52; python_version >= "3.6" boto3==1.21.9; python_version >= "3.7"
botocore==1.23.52; python_version >= "3.6" botocore==1.24.9; python_version >= "3.7"
cachecontrol==0.12.10; python_version >= "3.6" and python_version < "4.0" cachecontrol==0.12.10; python_version >= "3.7" 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" 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==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") 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.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" 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.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" 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.6" or python_version >= "3.6" cffi==1.15.0; python_version >= "3.7" or python_version >= "3.7"
charset-normalizer==2.0.11; python_full_version >= "3.6.0" and python_version >= "3.6" charset-normalizer==2.0.12; python_full_version >= "3.6.0" and python_version >= "3.7"
cleo==1.0.0a4; python_version >= "3.6" and python_version < "4.0" cleo==1.0.0a4; python_version >= "3.7" and python_version < "4.0"
cloudflare==2.8.15; python_version >= "3.6" cloudflare==2.8.15; python_version >= "3.7"
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" 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.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6" 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.6" configobj==5.0.6; python_version >= "3.7"
coverage==6.2; python_version >= "3.6" or python_version >= "3.6" coverage==6.3.2; python_version >= "3.7" or python_version >= "3.7"
crashtest==0.3.1; python_version >= "3.6" and python_version < "4.0" crashtest==0.3.1; python_version >= "3.7" 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" 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.27; (python_version >= "2.6" and python_full_version < "3.0.0") or (python_full_version >= "3.3.0") cython==0.29.28; (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.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.7" and python_full_version < "3.0.0" or python_version >= "3.7" and python_full_version >= "3.4.0"
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.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"
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.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"
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.9.4; python_version >= "3.7" and python_version < "4.0"
dns-lexicon==3.8.5; python_version >= "3.6" and python_version < "4.0" dnspython==2.2.0; python_version >= "3.7" 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.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.7"
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.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.7"
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.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.7"
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.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.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.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"
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.7" and python_version < "4.0"
entrypoints==0.3; python_version >= "3.6" 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"
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.7"
fabric==2.6.0; python_version >= "3.6" 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"
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.7"
google-api-core==2.5.0; python_version >= "3.6" google-api-python-client==2.38.0; python_version >= "3.7"
google-api-python-client==2.37.0; python_version >= "3.6" google-auth-httplib2==0.1.0; python_version >= "3.7"
google-auth-httplib2==0.1.0; python_version >= "3.6" 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"
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.55.0; python_version >= "3.7"
googleapis-common-protos==1.54.0; python_version >= "3.6" 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"
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.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.7"
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.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"
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.7" and python_full_version < "3.0.0" or python_version >= "3.7" and python_full_version >= "3.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.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"
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" iniconfig==1.1.1; python_version >= "3.7"
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" invoke==1.6.0; python_version >= "3.7"
iniconfig==1.1.1; python_version >= "3.6" ipdb==0.13.9; python_version >= "3.7"
invoke==1.6.0; python_version >= "3.6" ipython==7.32.0; python_version >= "3.7"
ipdb==0.13.9; python_version >= "3.6" isodate==0.6.1; python_version >= "3.7"
ipython-genutils==0.2.0 isort==5.10.1; python_full_version >= "3.6.2" and python_version < "4.0" and python_version >= "3.7"
ipython==7.16.3; python_version == "3.6" jedi==0.18.1; python_version >= "3.7"
ipython==7.31.1; python_version >= "3.7" jeepney==0.7.1; python_version >= "3.7" and python_version < "4.0" and sys_platform == "linux"
isodate==0.6.1; python_version >= "3.6" jinja2==3.0.3; python_version >= "3.7" or python_version >= "3.7"
isort==5.8.0; python_version >= "3.6" and python_version < "4.0" 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"
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" josepy==1.12.0; python_version >= "3.7"
jeepney==0.7.1; python_version >= "3.6" and python_version < "4.0" and sys_platform == "linux" jsonlines==3.0.0; python_version >= "3.7"
jinja2==3.0.3; python_version >= "3.6" or python_version >= "3.6" jsonpickle==2.1.0; python_version >= "3.7"
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" 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"
josepy==1.12.0; python_version >= "3.6" keyring==22.3.0; python_version >= "3.7" and python_version < "4.0" or python_version >= "3.7"
jsonlines==3.0.0; python_version >= "3.6" lazy-object-proxy==1.7.1; python_version >= "3.7" and python_full_version >= "3.6.2"
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"
lockfile==0.12.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" 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" mock==4.0.3; python_version >= "3.6"
msgpack==1.0.3; 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.6" msrest==0.6.21; python_version >= "3.7"
mypy-extensions==0.4.3; python_version >= "3.6" mypy-extensions==0.4.3; python_version >= "3.7"
mypy==0.931; python_version >= "3.6" mypy==0.931; python_version >= "3.7"
oauth2client==4.1.3; python_version >= "3.6" oauth2client==4.1.3; python_version >= "3.7"
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" 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.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" 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.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" 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.6" parsedatetime==2.6; python_version >= "3.7"
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" parso==0.8.3; python_version >= "3.7"
pathlib2==2.3.7.post1; python_version >= "3.6" pathlib2==2.3.7.post1; python_version >= "3.7"
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" 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.6" or python_version >= "3.7" pickleshare==0.7.5; python_version >= "3.7"
pip==21.3.1; python_version >= "3.6" pip==22.0.3; python_version >= "3.7"
pkginfo==1.8.2; python_version >= "3.6" and python_version < "4.0" or python_version >= "3.6" pkginfo==1.8.2; python_version >= "3.7" and python_version < "4.0" or python_version >= "3.7"
platformdirs==2.4.0; python_version >= "3.6" and python_version < "4.0" platformdirs==2.5.1; python_version >= "3.7" and python_full_version >= "3.6.2"
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" 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.6" ply==3.11; python_version >= "3.7"
poetry-core==1.1.0a6; python_version >= "3.6" and python_version < "4.0" 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" 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" prompt-toolkit==3.0.28; python_version >= "3.7" and python_full_version >= "3.6.2"
protobuf==3.19.4; python_version >= "3.6" protobuf==3.19.4; python_version >= "3.7"
ptyprocess==0.7.0; python_version >= "3.6" and python_version < "4.0" ptyprocess==0.7.0; python_version >= "3.7" 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" 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.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-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.6" and python_version < "4" or python_version >= "3.6" pyasn1==0.4.8; python_version >= "3.7" and python_version < "4" or python_version >= "3.7"
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" 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.6" pygithub==1.55; python_version >= "3.7"
pygments==2.11.2; python_version >= "3.6" or python_version == "3.6" or python_version >= "3.7" pygments==2.11.2; python_version >= "3.7"
pyjwt==2.3.0; python_version >= "3.6" pyjwt==2.3.0; python_version >= "3.7"
pylev==1.4.0; python_version >= "3.6" and python_version < "4.0" pylev==1.4.0; python_version >= "3.7" and python_version < "4.0"
pylint==2.12.0; python_version >= "3.6" 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.6" or python_version >= "3.6" pynacl==1.5.0; python_version >= "3.7" or python_version >= "3.7"
pynsist==2.7; python_version >= "3.6" pynsist==2.7; python_version >= "3.7"
pyopenssl==22.0.0; python_version >= "3.6" pyopenssl==22.0.0; python_version >= "3.7"
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" 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.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6") 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.6" pyrfc3339==1.1; python_version >= "3.7"
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" 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.6" or python_version >= "3.6" pytest-cov==3.0.0; python_version >= "3.7" or python_version >= "3.7"
pytest-forked==1.4.0; python_version >= "3.6" pytest-forked==1.4.0; python_version >= "3.7"
pytest-xdist==2.5.0; python_version >= "3.6" or python_version >= "3.6" pytest-xdist==2.5.0; python_version >= "3.7" or python_version >= "3.7"
pytest==7.0.0; python_version >= "3.6" or python_version >= "3.6" pytest==7.0.1; python_version >= "3.7" or python_version >= "3.7"
python-augeas==1.1.0; python_version >= "3.6" python-augeas==1.1.0; python_version >= "3.7"
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.17.0; python_version >= "3.6" python-digitalocean==1.17.0; python_version >= "3.7"
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" 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.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" 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.6" and python_version < "4.0" and sys_platform == "win32" 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.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") 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.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" 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.6" readme-renderer==32.0; python_version >= "3.7"
requests-download==0.1.2; python_version >= "3.6" requests-download==0.1.2; python_version >= "3.7"
requests-file==1.5.1; python_version >= "3.6" and python_version < "4.0" requests-file==1.5.1; python_version >= "3.7" 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-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.6" and python_version < "4.0" or python_version >= "3.6" or python_version >= "3.6" 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.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" 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==1.5.0; python_version >= "3.6" rfc3986==2.0.0; python_version >= "3.7"
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") 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.1; python_version >= "3.6" s3transfer==0.5.2; python_version >= "3.7"
secretstorage==3.3.1; python_version >= "3.6" and python_version < "4.0" and sys_platform == "linux" 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" semantic-version==2.9.0; python_version >= "3.6"
setuptools-rust==1.1.2; 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" 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.6" and python_version < "4.0" shellingham==1.4.0; python_version >= "3.7" 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" 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.6" snowballstemmer==2.2.0; python_version >= "3.7"
soupsieve==2.3.1; python_full_version > "3.0.0" and python_version >= "3.6" soupsieve==2.3.1; python_full_version > "3.0.0" and python_version >= "3.7"
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-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.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" 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.6" sphinxcontrib-applehelp==1.0.2; python_version >= "3.7"
sphinxcontrib-devhelp==1.0.2; python_version >= "3.6" sphinxcontrib-devhelp==1.0.2; python_version >= "3.7"
sphinxcontrib-htmlhelp==2.0.0; python_version >= "3.6" sphinxcontrib-htmlhelp==2.0.0; python_version >= "3.7"
sphinxcontrib-jsmath==1.0.1; python_version >= "3.6" sphinxcontrib-jsmath==1.0.1; python_version >= "3.7"
sphinxcontrib-qthelp==1.0.3; python_version >= "3.6" sphinxcontrib-qthelp==1.0.3; python_version >= "3.7"
sphinxcontrib-serializinghtml==1.1.5; python_version >= "3.6" sphinxcontrib-serializinghtml==1.1.5; python_version >= "3.7"
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" 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.6" and python_version < "4.0" tldextract==3.2.0; python_version >= "3.7" 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" 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==1.2.3; python_version >= "3.6" or python_version >= "3.6" tomli==2.0.1; python_version >= "3.7" or python_version >= "3.7"
tomlkit==0.9.2; python_version >= "3.6" and python_version < "4.0" tomlkit==0.10.0; python_version >= "3.7" 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" 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.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" 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==4.3.3 traitlets==5.1.1; python_version >= "3.7"
twine==3.3.0; python_version >= "3.6" twine==3.3.0; python_version >= "3.7"
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" 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.6" types-cryptography==3.3.15; python_version >= "3.7"
types-enum34==1.1.8; python_version >= "3.6" types-enum34==1.1.8; python_version >= "3.7"
types-ipaddress==1.0.8; python_version >= "3.6" types-ipaddress==1.0.8; python_version >= "3.7"
types-mock==4.0.10; python_version >= "3.6" types-mock==4.0.11; python_version >= "3.7"
types-pyopenssl==22.0.0; python_version >= "3.6" types-pyopenssl==22.0.0; python_version >= "3.7"
types-pyrfc3339==1.1.1; python_version >= "3.6" types-pyrfc3339==1.1.1; python_version >= "3.7"
types-python-dateutil==2.8.9; python_version >= "3.6" types-python-dateutil==2.8.9; python_version >= "3.7"
types-pytz==2021.3.4; python_version >= "3.6" types-pytz==2021.3.5; python_version >= "3.7"
types-requests==2.27.9; python_version >= "3.6" types-requests==2.27.11; python_version >= "3.7"
types-setuptools==57.4.9; python_version >= "3.6" types-setuptools==57.4.9; python_version >= "3.7"
types-six==1.16.10; python_version >= "3.6" types-six==1.16.10; python_version >= "3.7"
types-urllib3==1.26.9; python_version >= "3.6" types-urllib3==1.26.10; python_version >= "3.7"
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" 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.6" uritemplate==4.1.1; python_version >= "3.7"
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" 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.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" 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.6" wcwidth==0.2.5; python_version >= "3.7" and python_full_version >= "3.6.2"
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" 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.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" 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.6" and python_full_version < "3.0.0" or python_version >= "3.6" and python_full_version >= "3.5.0" 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.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" 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.6" yarg==0.1.9; python_version >= "3.7"
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" 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.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6" 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.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.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.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.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.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.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.7"
+2 -2
View File
@@ -69,7 +69,7 @@ def find_python_executable() -> str:
* Windows Python launcher 'py' executable in PATH if available * Windows Python launcher 'py' executable in PATH if available
Incompatible python versions for Certbot will be evicted (e.g. Python 3 Incompatible python versions for Certbot will be evicted (e.g. Python 3
versions less than 3.6). versions less than 3.7).
:rtype: str :rtype: str
:return: the relevant python executable path :return: the relevant python executable path
@@ -118,7 +118,7 @@ def _check_version(version_str):
version = (int(search.group(1)), int(search.group(2))) version = (int(search.group(1)), int(search.group(2)))
if version >= (3, 6): if version >= (3, 7):
return True return True
print('Incompatible python version for Certbot found: {0}'.format(version_str)) print('Incompatible python version for Certbot found: {0}'.format(version_str))
+1 -1
View File
@@ -51,7 +51,7 @@ setenv =
# #
# This version should be kept in sync with the one declared in # This version should be kept in sync with the one declared in
# tools/pinning/oldest/pyproject.toml. # tools/pinning/oldest/pyproject.toml.
basepython = python3.6 basepython = python3.7
commands = commands =
{[testenv]commands} {[testenv]commands}
setenv = setenv =
+1 -2
View File
@@ -11,14 +11,13 @@ setup(
author="Certbot Project", author="Certbot Project",
author_email='certbot-dev@eff.org', author_email='certbot-dev@eff.org',
license='Apache License 2.0', license='Apache License 2.0',
python_requires='>=3.6', python_requires='>=3.7',
classifiers=[ classifiers=[
'Development Status :: 4 - Beta', 'Development Status :: 4 - Beta',
'Intended Audience :: Developers', 'Intended Audience :: Developers',
'License :: OSI Approved :: Apache Software License', 'License :: OSI Approved :: Apache Software License',
'Programming Language :: Python', 'Programming Language :: Python',
'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.9',