mirror of
https://github.com/certbot/certbot.git
synced 2025-12-18 21:46:05 -05:00
Add python 3.14 support (#10481)
fixes https://github.com/certbot/certbot/issues/10477. this is based on the PR that did this for 3.13 at https://github.com/certbot/certbot/pull/10164
This commit is contained in:
parent
4d5d5f7ae8
commit
2ec8320763
30 changed files with 161 additions and 120 deletions
|
|
@ -4,7 +4,7 @@ jobs:
|
|||
- name: IMAGE_NAME
|
||||
value: ubuntu-22.04
|
||||
- name: PYTHON_VERSION
|
||||
value: 3.13
|
||||
value: 3.14
|
||||
- group: certbot-common
|
||||
strategy:
|
||||
matrix:
|
||||
|
|
@ -14,6 +14,9 @@ jobs:
|
|||
linux-py312:
|
||||
PYTHON_VERSION: 3.12
|
||||
TOXENV: py312
|
||||
linux-py313:
|
||||
PYTHON_VERSION: 3.13
|
||||
TOXENV: py313
|
||||
linux-isolated:
|
||||
TOXENV: 'isolated-acme,isolated-certbot,isolated-apache,isolated-cloudflare,isolated-digitalocean,isolated-dnsimple,isolated-dnsmadeeasy,isolated-gehirn,isolated-google,isolated-linode,isolated-luadns,isolated-nsone,isolated-ovh,isolated-rfc2136,isolated-route53,isolated-sakuracloud,isolated-nginx'
|
||||
linux-integration-certbot-oldest:
|
||||
|
|
@ -31,7 +34,10 @@ jobs:
|
|||
linux-py312-integration:
|
||||
PYTHON_VERSION: 3.12
|
||||
TOXENV: integration
|
||||
# python 3.13 integration tests are not run here because they're run as
|
||||
linux-py313-integration:
|
||||
PYTHON_VERSION: 3.13
|
||||
TOXENV: integration
|
||||
# python 3.14 integration tests are not run here because they're run as
|
||||
# part of the standard test suite
|
||||
nginx-compat:
|
||||
TOXENV: nginx_compat
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
jobs:
|
||||
- job: test
|
||||
variables:
|
||||
PYTHON_VERSION: 3.13
|
||||
PYTHON_VERSION: 3.14
|
||||
strategy:
|
||||
matrix:
|
||||
macos-cover:
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@ classifiers = [
|
|||
"Programming Language :: Python :: 3.10",
|
||||
"Programming Language :: Python :: 3.11",
|
||||
"Programming Language :: Python :: 3.12",
|
||||
"Programming Language :: Python :: 3.14",
|
||||
"Topic :: Internet :: WWW/HTTP",
|
||||
"Topic :: Security",
|
||||
]
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@ classifiers = [
|
|||
"Programming Language :: Python :: 3.10",
|
||||
"Programming Language :: Python :: 3.11",
|
||||
"Programming Language :: Python :: 3.12",
|
||||
"Programming Language :: Python :: 3.14",
|
||||
"Topic :: Internet :: WWW/HTTP",
|
||||
"Topic :: Security",
|
||||
"Topic :: System :: Installation/Setup",
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@ classifiers = [
|
|||
"Programming Language :: Python :: 3.10",
|
||||
"Programming Language :: Python :: 3.11",
|
||||
"Programming Language :: Python :: 3.12",
|
||||
"Programming Language :: Python :: 3.14",
|
||||
"Topic :: Internet :: WWW/HTTP",
|
||||
"Topic :: Security",
|
||||
]
|
||||
|
|
|
|||
|
|
@ -3,6 +3,8 @@
|
|||
# the coverage: indeed, certbot is launched as a CLI from a subprocess.
|
||||
disable_warnings = module-not-imported,no-data-collected
|
||||
omit = **/*_test.py,**/tests/*,**/dns_common*,**/certbot_nginx/_internal/parser_obj.py
|
||||
patch = subprocess
|
||||
parallel = True
|
||||
|
||||
[report]
|
||||
# Exclude unit tests in coverage during integration tests.
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@ classifiers = [
|
|||
"Programming Language :: Python :: 3.10",
|
||||
"Programming Language :: Python :: 3.11",
|
||||
"Programming Language :: Python :: 3.12",
|
||||
"Programming Language :: Python :: 3.14",
|
||||
"Topic :: Internet :: WWW/HTTP",
|
||||
"Topic :: Security",
|
||||
]
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@ classifiers = [
|
|||
"Programming Language :: Python :: 3.10",
|
||||
"Programming Language :: Python :: 3.11",
|
||||
"Programming Language :: Python :: 3.12",
|
||||
"Programming Language :: Python :: 3.14",
|
||||
"Topic :: Internet :: WWW/HTTP",
|
||||
"Topic :: Security",
|
||||
"Topic :: System :: Installation/Setup",
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@ classifiers = [
|
|||
"Programming Language :: Python :: 3.10",
|
||||
"Programming Language :: Python :: 3.11",
|
||||
"Programming Language :: Python :: 3.12",
|
||||
"Programming Language :: Python :: 3.14",
|
||||
"Topic :: Internet :: WWW/HTTP",
|
||||
"Topic :: Security",
|
||||
"Topic :: System :: Installation/Setup",
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@ classifiers = [
|
|||
"Programming Language :: Python :: 3.10",
|
||||
"Programming Language :: Python :: 3.11",
|
||||
"Programming Language :: Python :: 3.12",
|
||||
"Programming Language :: Python :: 3.14",
|
||||
"Topic :: Internet :: WWW/HTTP",
|
||||
"Topic :: Security",
|
||||
"Topic :: System :: Installation/Setup",
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@ classifiers = [
|
|||
"Programming Language :: Python :: 3.10",
|
||||
"Programming Language :: Python :: 3.11",
|
||||
"Programming Language :: Python :: 3.12",
|
||||
"Programming Language :: Python :: 3.14",
|
||||
"Topic :: Internet :: WWW/HTTP",
|
||||
"Topic :: Security",
|
||||
"Topic :: System :: Installation/Setup",
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@ classifiers = [
|
|||
"Programming Language :: Python :: 3.10",
|
||||
"Programming Language :: Python :: 3.11",
|
||||
"Programming Language :: Python :: 3.12",
|
||||
"Programming Language :: Python :: 3.14",
|
||||
"Topic :: Internet :: WWW/HTTP",
|
||||
"Topic :: Security",
|
||||
"Topic :: System :: Installation/Setup",
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@ classifiers = [
|
|||
"Programming Language :: Python :: 3.10",
|
||||
"Programming Language :: Python :: 3.11",
|
||||
"Programming Language :: Python :: 3.12",
|
||||
"Programming Language :: Python :: 3.14",
|
||||
"Topic :: Internet :: WWW/HTTP",
|
||||
"Topic :: Security",
|
||||
"Topic :: System :: Installation/Setup",
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@ classifiers = [
|
|||
"Programming Language :: Python :: 3.10",
|
||||
"Programming Language :: Python :: 3.11",
|
||||
"Programming Language :: Python :: 3.12",
|
||||
"Programming Language :: Python :: 3.14",
|
||||
"Topic :: Internet :: WWW/HTTP",
|
||||
"Topic :: Security",
|
||||
"Topic :: System :: Installation/Setup",
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@ classifiers = [
|
|||
"Programming Language :: Python :: 3.10",
|
||||
"Programming Language :: Python :: 3.11",
|
||||
"Programming Language :: Python :: 3.12",
|
||||
"Programming Language :: Python :: 3.14",
|
||||
"Topic :: Internet :: WWW/HTTP",
|
||||
"Topic :: Security",
|
||||
"Topic :: System :: Installation/Setup",
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@ classifiers = [
|
|||
"Programming Language :: Python :: 3.10",
|
||||
"Programming Language :: Python :: 3.11",
|
||||
"Programming Language :: Python :: 3.12",
|
||||
"Programming Language :: Python :: 3.14",
|
||||
"Topic :: Internet :: WWW/HTTP",
|
||||
"Topic :: Security",
|
||||
"Topic :: System :: Installation/Setup",
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@ classifiers = [
|
|||
"Programming Language :: Python :: 3.10",
|
||||
"Programming Language :: Python :: 3.11",
|
||||
"Programming Language :: Python :: 3.12",
|
||||
"Programming Language :: Python :: 3.14",
|
||||
"Topic :: Internet :: WWW/HTTP",
|
||||
"Topic :: Security",
|
||||
"Topic :: System :: Installation/Setup",
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@ classifiers = [
|
|||
"Programming Language :: Python :: 3.10",
|
||||
"Programming Language :: Python :: 3.11",
|
||||
"Programming Language :: Python :: 3.12",
|
||||
"Programming Language :: Python :: 3.14",
|
||||
"Topic :: Internet :: WWW/HTTP",
|
||||
"Topic :: Security",
|
||||
"Topic :: System :: Installation/Setup",
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@ classifiers = [
|
|||
"Programming Language :: Python :: 3.10",
|
||||
"Programming Language :: Python :: 3.11",
|
||||
"Programming Language :: Python :: 3.12",
|
||||
"Programming Language :: Python :: 3.14",
|
||||
"Topic :: Internet :: WWW/HTTP",
|
||||
"Topic :: Security",
|
||||
"Topic :: System :: Installation/Setup",
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@ classifiers = [
|
|||
"Programming Language :: Python :: 3.10",
|
||||
"Programming Language :: Python :: 3.11",
|
||||
"Programming Language :: Python :: 3.12",
|
||||
"Programming Language :: Python :: 3.14",
|
||||
"Topic :: Internet :: WWW/HTTP",
|
||||
"Topic :: Security",
|
||||
"Topic :: System :: Installation/Setup",
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@ classifiers = [
|
|||
"Programming Language :: Python :: 3.10",
|
||||
"Programming Language :: Python :: 3.11",
|
||||
"Programming Language :: Python :: 3.12",
|
||||
"Programming Language :: Python :: 3.14",
|
||||
"Topic :: Internet :: WWW/HTTP",
|
||||
"Topic :: Security",
|
||||
"Topic :: System :: Installation/Setup",
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@ classifiers = [
|
|||
"Programming Language :: Python :: 3.11",
|
||||
"Programming Language :: Python :: 3.12",
|
||||
"Programming Language :: Python :: 3.13",
|
||||
"Programming Language :: Python :: 3.14",
|
||||
"Topic :: Internet :: WWW/HTTP",
|
||||
"Topic :: Security",
|
||||
"Topic :: System :: Installation/Setup",
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@ classifiers = [
|
|||
"Programming Language :: Python :: 3.10",
|
||||
"Programming Language :: Python :: 3.11",
|
||||
"Programming Language :: Python :: 3.12",
|
||||
"Programming Language :: Python :: 3.14",
|
||||
"Topic :: Internet :: WWW/HTTP",
|
||||
"Topic :: Security",
|
||||
]
|
||||
|
|
|
|||
1
newsfragments/10477.added
Normal file
1
newsfragments/10477.added
Normal file
|
|
@ -0,0 +1 @@
|
|||
Support for Python 3.14 was added.
|
||||
|
|
@ -9,5 +9,10 @@
|
|||
# deprecation warnings and gives time for plugins that don't use the deprecated
|
||||
# API to propagate, especially for plugins packaged as an external snap, before
|
||||
# we release breaking changes.
|
||||
#
|
||||
# 1) In v2.28.0, google-api-core added an annoying message that the current python's EOL
|
||||
# is coming up. We deprecate python versions on schedule, so mostly this is just an
|
||||
# annoyance for our own tests, and can probably be silenced forever.
|
||||
filterwarnings =
|
||||
error
|
||||
ignore:You are using a Python version (.*) which Google will stop supporting:FutureWarning
|
||||
|
|
|
|||
|
|
@ -2,20 +2,20 @@
|
|||
# that script.
|
||||
apacheconfig==0.3.2 ; python_version == "3.10"
|
||||
asn1crypto==0.24.0 ; python_version == "3.10"
|
||||
astroid==3.3.11 ; python_version == "3.10"
|
||||
attrs==25.3.0 ; python_version == "3.10"
|
||||
beautifulsoup4==4.13.4 ; python_version == "3.10"
|
||||
astroid==4.0.1 ; python_version == "3.10"
|
||||
attrs==25.4.0 ; python_version == "3.10"
|
||||
beautifulsoup4==4.14.2 ; python_version == "3.10"
|
||||
boto3==1.20.34 ; python_version == "3.10"
|
||||
botocore==1.23.34 ; python_version == "3.10"
|
||||
cachetools==5.5.2 ; python_version == "3.10"
|
||||
certifi==2025.8.3 ; python_version == "3.10"
|
||||
certifi==2025.10.5 ; python_version == "3.10"
|
||||
cffi==1.14.1 ; python_version == "3.10"
|
||||
chardet==3.0.4 ; python_version == "3.10"
|
||||
cloudflare==2.19.0 ; python_version == "3.10"
|
||||
colorama==0.4.6 ; (sys_platform == "win32" or platform_system == "Windows") and python_version == "3.10"
|
||||
configargparse==1.5.3 ; python_version == "3.10"
|
||||
configobj==5.0.6 ; python_version == "3.10"
|
||||
coverage==7.10.4 ; python_version == "3.10"
|
||||
coverage==7.11.0 ; python_version == "3.10"
|
||||
cryptography==43.0.0 ; python_version == "3.10"
|
||||
cython==0.29.37 ; python_version == "3.10"
|
||||
dill==0.4.0 ; python_version == "3.10"
|
||||
|
|
@ -25,30 +25,30 @@ dns-lexicon==3.15.1 ; python_version == "3.10"
|
|||
dnspython==2.6.1 ; python_version == "3.10"
|
||||
exceptiongroup==1.3.0 ; python_version == "3.10"
|
||||
execnet==2.1.1 ; python_version == "3.10"
|
||||
filelock==3.19.1 ; python_version == "3.10"
|
||||
filelock==3.20.0 ; python_version == "3.10"
|
||||
funcsigs==0.4 ; python_version == "3.10"
|
||||
google-api-python-client==1.6.5 ; python_version == "3.10"
|
||||
google-auth==2.16.0 ; python_version == "3.10"
|
||||
httplib2==0.9.2 ; python_version == "3.10"
|
||||
idna==2.6 ; python_version == "3.10"
|
||||
iniconfig==2.1.0 ; python_version == "3.10"
|
||||
iniconfig==2.3.0 ; python_version == "3.10"
|
||||
ipaddress==1.0.16 ; python_version == "3.10"
|
||||
isort==6.0.1 ; python_version == "3.10"
|
||||
isort==7.0.0 ; python_version == "3.10"
|
||||
jmespath==0.10.0 ; python_version == "3.10"
|
||||
josepy==2.1.0 ; python_version == "3.10"
|
||||
josepy==2.2.0 ; python_version == "3.10"
|
||||
jsonlines==4.0.0 ; python_version == "3.10"
|
||||
jsonpickle==4.1.1 ; python_version == "3.10"
|
||||
mccabe==0.7.0 ; python_version == "3.10"
|
||||
mypy-extensions==1.1.0 ; python_version == "3.10"
|
||||
mypy==1.17.1 ; python_version == "3.10"
|
||||
mypy==1.18.2 ; python_version == "3.10"
|
||||
ndg-httpsclient==0.3.2 ; python_version == "3.10"
|
||||
oauth2client==4.1.3 ; python_version == "3.10"
|
||||
packaging==25.0 ; python_version == "3.10"
|
||||
parsedatetime==2.6 ; python_version == "3.10"
|
||||
pathspec==0.12.1 ; python_version == "3.10"
|
||||
pbr==1.8.0 ; python_version == "3.10"
|
||||
pip==25.2 ; python_version == "3.10"
|
||||
platformdirs==4.3.8 ; python_version == "3.10"
|
||||
pip==25.3 ; python_version == "3.10"
|
||||
platformdirs==4.5.0 ; python_version == "3.10"
|
||||
pluggy==1.6.0 ; python_version == "3.10"
|
||||
ply==3.4 ; python_version == "3.10"
|
||||
py==1.11.0 ; python_version == "3.10"
|
||||
|
|
@ -56,42 +56,42 @@ pyasn1-modules==0.4.1 ; python_version == "3.10"
|
|||
pyasn1==0.4.8 ; python_version == "3.10"
|
||||
pycparser==2.14 ; python_version == "3.10"
|
||||
pygments==2.19.2 ; python_version == "3.10"
|
||||
pylint==3.3.8 ; python_version == "3.10"
|
||||
pylint==4.0.2 ; python_version == "3.10"
|
||||
pyopenssl==25.0.0 ; python_version == "3.10"
|
||||
pyotp==2.9.0 ; python_version == "3.10"
|
||||
pyparsing==2.4.7 ; python_version == "3.10"
|
||||
pyrfc3339==1.0 ; python_version == "3.10"
|
||||
pytest-cov==6.2.1 ; python_version == "3.10"
|
||||
pytest-cov==7.0.0 ; python_version == "3.10"
|
||||
pytest-xdist==3.8.0 ; python_version == "3.10"
|
||||
pytest==8.4.1 ; python_version == "3.10"
|
||||
pytest==8.4.2 ; python_version == "3.10"
|
||||
python-augeas==0.5.0 ; python_version == "3.10"
|
||||
python-dateutil==2.9.0.post0 ; python_version == "3.10"
|
||||
python-digitalocean==1.15.0 ; python_version == "3.10"
|
||||
pytz==2025.2 ; python_version == "3.10"
|
||||
pywin32==311 ; python_version == "3.10" and sys_platform == "win32"
|
||||
pyyaml==6.0.2 ; python_version == "3.10"
|
||||
requests-file==2.1.0 ; python_version == "3.10"
|
||||
pyyaml==6.0.3 ; python_version == "3.10"
|
||||
requests-file==3.0.1 ; python_version == "3.10"
|
||||
requests==2.25.1 ; python_version == "3.10"
|
||||
rsa==4.9.1 ; python_version == "3.10"
|
||||
ruff==0.12.9 ; python_version == "3.10"
|
||||
ruff==0.14.3 ; python_version == "3.10"
|
||||
s3transfer==0.5.2 ; python_version == "3.10"
|
||||
setuptools==80.9.0 ; python_version == "3.10"
|
||||
six==1.16.0 ; python_version == "3.10"
|
||||
soupsieve==2.7 ; python_version == "3.10"
|
||||
soupsieve==2.8 ; python_version == "3.10"
|
||||
tldextract==5.3.0 ; python_version == "3.10"
|
||||
tomli==2.2.1 ; python_version == "3.10"
|
||||
tomli==2.3.0 ; python_version == "3.10"
|
||||
tomlkit==0.13.3 ; python_version == "3.10"
|
||||
tox==3.28.0 ; python_version == "3.10"
|
||||
types-httplib2==0.22.0.20250622 ; python_version == "3.10"
|
||||
types-pyrfc3339==2.0.1.20241107 ; python_version == "3.10"
|
||||
types-python-dateutil==2.9.0.20250809 ; python_version == "3.10"
|
||||
types-pywin32==311.0.0.20250809 ; python_version == "3.10"
|
||||
types-httplib2==0.31.0.20250913 ; python_version == "3.10"
|
||||
types-pyrfc3339==2.0.1.20250825 ; python_version == "3.10"
|
||||
types-python-dateutil==2.9.0.20251008 ; python_version == "3.10"
|
||||
types-pywin32==311.0.0.20251008 ; python_version == "3.10"
|
||||
types-requests==2.31.0.6 ; python_version == "3.10"
|
||||
types-setuptools==80.9.0.20250809 ; python_version == "3.10"
|
||||
types-setuptools==80.9.0.20250822 ; python_version == "3.10"
|
||||
types-urllib3==1.26.25.14 ; python_version == "3.10"
|
||||
typing-extensions==4.14.1 ; python_version == "3.10"
|
||||
typing-extensions==4.15.0 ; python_version == "3.10"
|
||||
uritemplate==3.0.1 ; python_version == "3.10"
|
||||
urllib3==1.26.5 ; python_version == "3.10"
|
||||
uv==0.8.11 ; python_version == "3.10"
|
||||
virtualenv==20.34.0 ; python_version == "3.10"
|
||||
uv==0.9.7 ; python_version == "3.10"
|
||||
virtualenv==20.35.4 ; python_version == "3.10"
|
||||
wheel==0.45.1 ; python_version == "3.10"
|
||||
|
|
|
|||
|
|
@ -41,10 +41,13 @@ letstest = {path = "../../../letstest"}
|
|||
# as a dependency here to ensure a version of cython is pinned for extra
|
||||
# stability.
|
||||
#
|
||||
# We also pin back cython as is currently required by pyyaml. See
|
||||
# https://github.com/yaml/pyyaml/pull/702 and
|
||||
# https://github.com/yaml/pyyaml/issues/601.
|
||||
cython = "<3.0"
|
||||
# As of pyyaml 6.0.2, cython >= 3.0 is required for py >= 3.13, and < 3.0 for py < 3.13.
|
||||
# See https://github.com/yaml/pyyaml/pull/808/files.
|
||||
cython = [
|
||||
{ version = "<3.0", python = "<3.13" },
|
||||
{ version = ">=3.0", python = ">=3.13" }
|
||||
]
|
||||
|
||||
# setuptools-rust is a build dependency of cryptography, and since we don't have
|
||||
# a great way of pinning build dependencies, we simply list it here to ensure a
|
||||
# working version. Note: if build dependencies of setuptools-rust break at some
|
||||
|
|
|
|||
|
|
@ -95,10 +95,13 @@ urllib3 = "1.26.5"
|
|||
|
||||
# cython is a build dependency of pyyaml
|
||||
#
|
||||
# We also pin back cython as is currently required by pyyaml. See
|
||||
# https://github.com/yaml/pyyaml/pull/702 and
|
||||
# https://github.com/yaml/pyyaml/issues/601.
|
||||
cython = "<3.0"
|
||||
#
|
||||
# As of pyyaml 6.0.2, cython >= 3.0 is required for py >= 3.13, and < 3.0 for py < 3.13.
|
||||
# See https://github.com/yaml/pyyaml/pull/808/files.
|
||||
cython = [
|
||||
{ version = "<3.0", python = "<3.13" },
|
||||
{ version = ">=3.0", python = ">=3.13" }
|
||||
]
|
||||
|
||||
# Other dependencies
|
||||
# We add any dependencies that must be specified in this file for any another
|
||||
|
|
|
|||
|
|
@ -6,72 +6,73 @@
|
|||
# https://docs.github.com/en/github/visualizing-repository-data-with-graphs/about-the-dependency-graph#supported-package-ecosystems
|
||||
# for more info.
|
||||
alabaster==1.0.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
anyio==4.10.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
anyio==4.11.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
apacheconfig==0.3.2 ; python_version >= "3.10" and python_version < "4.0"
|
||||
astroid==3.3.11 ; python_version >= "3.10" and python_version < "4.0"
|
||||
asttokens==3.0.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
attrs==25.3.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
azure-core==1.35.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
attrs==25.4.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
azure-core==1.36.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
azure-devops==7.1.0b4 ; python_version >= "3.10" and python_version < "4.0"
|
||||
babel==2.17.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
backports-tarfile==1.2.0 ; python_version >= "3.10" and python_version < "3.12"
|
||||
bcrypt==4.3.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
beautifulsoup4==4.13.4 ; python_version >= "3.10" and python_version < "4.0"
|
||||
boto3==1.40.15 ; python_version >= "3.10" and python_version < "4.0"
|
||||
botocore==1.40.15 ; python_version >= "3.10" and python_version < "4.0"
|
||||
bcrypt==5.0.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
beautifulsoup4==4.14.2 ; python_version >= "3.10" and python_version < "4.0"
|
||||
boto3==1.40.65 ; python_version >= "3.10" and python_version < "4.0"
|
||||
botocore==1.40.65 ; python_version >= "3.10" and python_version < "4.0"
|
||||
build==1.3.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
cachecontrol==0.14.3 ; python_version >= "3.10" and python_version < "4.0"
|
||||
cachetools==5.5.2 ; python_version >= "3.10" and python_version < "4.0"
|
||||
certifi==2025.8.3 ; python_version >= "3.10" and python_version < "4.0"
|
||||
cffi==1.17.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||
cachetools==6.2.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||
certifi==2025.10.5 ; python_version >= "3.10" and python_version < "4.0"
|
||||
cffi==2.0.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
chardet==5.2.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
charset-normalizer==3.4.3 ; python_version >= "3.10" and python_version < "4.0"
|
||||
charset-normalizer==3.4.4 ; python_version >= "3.10" and python_version < "4.0"
|
||||
cleo==2.1.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
click==8.2.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||
click==8.3.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
cloudflare==2.19.4 ; python_version >= "3.10" and python_version < "4.0"
|
||||
colorama==0.4.6 ; python_version >= "3.10" and python_version < "4.0"
|
||||
configargparse==1.7.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||
configobj==5.0.9 ; python_version >= "3.10" and python_version < "4.0"
|
||||
coverage==7.10.4 ; python_version >= "3.10" and python_version < "4.0"
|
||||
coverage==7.11.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
crashtest==0.4.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||
cryptography==45.0.6 ; python_version >= "3.10" and python_version < "4.0"
|
||||
cython==0.29.37 ; python_version >= "3.10" and python_version < "4.0"
|
||||
cryptography==46.0.3 ; python_version >= "3.10" and python_version < "4.0"
|
||||
cython==0.29.37 ; python_version >= "3.10" and python_version <= "3.12"
|
||||
cython==3.1.6 ; python_version >= "3.13" and python_version < "4.0"
|
||||
decorator==5.2.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||
deprecated==1.2.18 ; python_version >= "3.10" and python_version < "4.0"
|
||||
deprecated==1.3.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||
dill==0.4.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
distlib==0.4.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
distro==1.9.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
dns-lexicon==3.21.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||
dnspython==2.7.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
dnspython==2.8.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
docutils==0.21.2 ; python_version >= "3.10" and python_version < "4.0"
|
||||
dulwich==0.22.8 ; python_version >= "3.10" and python_version < "4.0"
|
||||
dulwich==0.24.8 ; python_version >= "3.10" and python_version < "4.0"
|
||||
exceptiongroup==1.3.0 ; python_version == "3.10"
|
||||
execnet==2.1.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||
executing==2.2.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
executing==2.2.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||
fabric==3.2.2 ; python_version >= "3.10" and python_version < "4.0"
|
||||
fastjsonschema==2.21.2 ; python_version >= "3.10" and python_version < "4.0"
|
||||
filelock==3.19.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||
findpython==0.6.3 ; python_version >= "3.10" and python_version < "4.0"
|
||||
google-api-core==2.25.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||
google-api-python-client==2.179.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
google-auth-httplib2==0.2.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
google-auth==2.40.3 ; python_version >= "3.10" and python_version < "4.0"
|
||||
googleapis-common-protos==1.70.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
filelock==3.20.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
findpython==0.7.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
google-api-core==2.28.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||
google-api-python-client==2.186.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
google-auth-httplib2==0.2.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||
google-auth==2.42.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||
googleapis-common-protos==1.71.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
h11==0.16.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
httpcore==1.0.9 ; python_version >= "3.10" and python_version < "4.0"
|
||||
httplib2==0.22.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
httplib2==0.31.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
httpx==0.28.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||
id==1.5.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
idna==3.10 ; python_version >= "3.10" and python_version < "4.0"
|
||||
idna==3.11 ; python_version >= "3.10" and python_version < "4.0"
|
||||
imagesize==1.4.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||
importlib-metadata==8.7.0 ; python_version >= "3.10" and python_version < "3.12"
|
||||
iniconfig==2.1.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
iniconfig==2.3.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
installer==0.7.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
invoke==2.2.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
invoke==2.2.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||
ipdb==0.13.13 ; python_version >= "3.10" and python_version < "4.0"
|
||||
ipython-pygments-lexers==1.1.1 ; python_version >= "3.11" and python_version < "4.0"
|
||||
ipython==8.37.0 ; python_version == "3.10"
|
||||
ipython==9.4.0 ; python_version >= "3.11" and python_version < "4.0"
|
||||
ipython==9.6.0 ; python_version >= "3.11" and python_version < "4.0"
|
||||
isodate==0.7.2 ; python_version >= "3.10" and python_version < "4.0"
|
||||
isort==5.13.2 ; python_version >= "3.10" and python_version < "4.0"
|
||||
jaraco-classes==3.4.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
|
|
@ -81,83 +82,83 @@ jedi==0.19.2 ; python_version >= "3.10" and python_version < "4.0"
|
|||
jeepney==0.9.0 ; python_version >= "3.10" and python_version < "4.0" and sys_platform == "linux"
|
||||
jinja2==3.1.6 ; python_version >= "3.10" and python_version < "4.0"
|
||||
jmespath==1.0.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||
josepy==2.1.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
josepy==2.2.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
jsonlines==4.0.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
jsonpickle==4.1.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||
keyring==25.6.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
markdown-it-py==4.0.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
markupsafe==3.0.2 ; python_version >= "3.10" and python_version < "4.0"
|
||||
matplotlib-inline==0.1.7 ; python_version >= "3.10" and python_version < "4.0"
|
||||
markupsafe==3.0.3 ; python_version >= "3.10" and python_version < "4.0"
|
||||
matplotlib-inline==0.2.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||
mccabe==0.7.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
mdurl==0.1.2 ; python_version >= "3.10" and python_version < "4.0"
|
||||
more-itertools==10.7.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
msgpack==1.1.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||
more-itertools==10.8.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
msgpack==1.1.2 ; python_version >= "3.10" and python_version < "4.0"
|
||||
msrest==0.7.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||
mypy-extensions==1.1.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
mypy==1.9.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
nh3==0.3.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
nh3==0.3.2 ; python_version >= "3.10" and python_version < "4.0"
|
||||
oauthlib==3.3.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||
packaging==25.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
paramiko==4.0.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
parsedatetime==2.6 ; python_version >= "3.10" and python_version < "4.0"
|
||||
parso==0.8.4 ; python_version >= "3.10" and python_version < "4.0"
|
||||
pbs-installer==2025.8.18 ; python_version >= "3.10" and python_version < "4.0"
|
||||
parso==0.8.5 ; python_version >= "3.10" and python_version < "4.0"
|
||||
pbs-installer==2025.10.31 ; python_version >= "3.10" and python_version < "4.0"
|
||||
pexpect==4.9.0 ; python_version >= "3.10" and python_version < "4.0" and sys_platform != "win32" and sys_platform != "emscripten"
|
||||
pip==25.2 ; python_version >= "3.10" and python_version < "4.0"
|
||||
pip==25.3 ; python_version >= "3.10" and python_version < "4.0"
|
||||
pkginfo==1.12.1.2 ; python_version >= "3.10" and python_version < "4.0"
|
||||
platformdirs==4.3.8 ; python_version >= "3.10" and python_version < "4.0"
|
||||
platformdirs==4.5.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
pluggy==1.6.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
ply==3.11 ; python_version >= "3.10" and python_version < "4.0"
|
||||
poetry-core==2.1.3 ; python_version >= "3.10" and python_version < "4.0"
|
||||
poetry-core==2.2.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||
poetry-plugin-export==1.9.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
poetry==2.1.4 ; python_version >= "3.10" and python_version < "4.0"
|
||||
prompt-toolkit==3.0.51 ; python_version >= "3.10" and python_version < "4.0"
|
||||
poetry==2.2.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||
prompt-toolkit==3.0.52 ; python_version >= "3.10" and python_version < "4.0"
|
||||
proto-plus==1.26.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||
protobuf==6.32.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
protobuf==6.33.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
ptyprocess==0.7.0 ; python_version >= "3.10" and python_version < "4.0" and sys_platform != "win32" and sys_platform != "emscripten"
|
||||
pure-eval==0.2.3 ; python_version >= "3.10" and python_version < "4.0"
|
||||
pyasn1-modules==0.4.2 ; python_version >= "3.10" and python_version < "4.0"
|
||||
pyasn1==0.6.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||
pycparser==2.22 ; python_version >= "3.10" and python_version < "4.0"
|
||||
pycparser==2.23 ; python_version >= "3.10" and python_version < "4.0" and implementation_name != "PyPy"
|
||||
pygments==2.19.2 ; python_version >= "3.10" and python_version < "4.0"
|
||||
pylint==3.3.3 ; python_version >= "3.10" and python_version < "4.0"
|
||||
pynacl==1.5.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
pyopenssl==25.1.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
pynacl==1.6.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
pyopenssl==25.3.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
pyotp==2.9.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
pyparsing==3.2.3 ; python_version >= "3.10" and python_version < "4.0"
|
||||
pyproject-api==1.9.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||
pyparsing==3.2.5 ; python_version >= "3.10" and python_version < "4.0"
|
||||
pyproject-api==1.10.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
pyproject-hooks==1.2.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
pyrfc3339==2.0.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||
pytest-cov==6.2.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||
pyrfc3339==2.1.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
pytest-cov==7.0.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
pytest-xdist==3.8.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
pytest==8.4.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||
pytest==8.4.2 ; python_version >= "3.10" and python_version < "4.0"
|
||||
python-augeas==1.2.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
python-dateutil==2.9.0.post0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
python-digitalocean==1.17.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
pywin32-ctypes==0.2.3 ; python_version >= "3.10" and python_version < "4.0" and sys_platform == "win32"
|
||||
pywin32==311 ; python_version >= "3.10" and python_version < "4.0" and sys_platform == "win32"
|
||||
pyyaml==6.0.2 ; python_version >= "3.10" and python_version < "4.0"
|
||||
rapidfuzz==3.13.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
pyyaml==6.0.3 ; python_version >= "3.10" and python_version < "4.0"
|
||||
rapidfuzz==3.14.3 ; python_version >= "3.10" and python_version < "4.0"
|
||||
readme-renderer==44.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
requests-file==2.1.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
requests-file==3.0.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||
requests-oauthlib==2.0.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
requests-toolbelt==1.0.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
requests==2.32.5 ; python_version >= "3.10" and python_version < "4.0"
|
||||
rfc3986==2.0.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
rich==14.1.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
rich==14.2.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
roman-numerals-py==3.1.0 ; python_version >= "3.11" and python_version < "4.0"
|
||||
rsa==4.9.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||
ruff==0.12.10 ; python_version >= "3.10" and python_version < "4.0"
|
||||
s3transfer==0.13.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||
secretstorage==3.3.3 ; python_version >= "3.10" and python_version < "4.0" and sys_platform == "linux"
|
||||
ruff==0.14.3 ; python_version >= "3.10" and python_version < "4.0"
|
||||
s3transfer==0.14.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
secretstorage==3.4.0 ; python_version >= "3.10" and python_version < "4.0" and sys_platform == "linux"
|
||||
semantic-version==2.10.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
setuptools-rust==1.11.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||
setuptools-rust==1.12.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
setuptools==80.9.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
shellingham==1.5.4 ; python_version >= "3.10" and python_version < "4.0"
|
||||
six==1.17.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
sniffio==1.3.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||
snowballstemmer==3.0.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||
soupsieve==2.7 ; python_version >= "3.10" and python_version < "4.0"
|
||||
soupsieve==2.8 ; python_version >= "3.10" and python_version < "4.0"
|
||||
sphinx-rtd-theme==3.0.2 ; python_version >= "3.10" and python_version < "4.0"
|
||||
sphinx==8.1.3 ; python_version == "3.10"
|
||||
sphinx==8.2.3 ; python_version >= "3.11" and python_version < "4.0"
|
||||
|
|
@ -170,27 +171,27 @@ sphinxcontrib-qthelp==2.0.0 ; python_version >= "3.10" and python_version < "4.0
|
|||
sphinxcontrib-serializinghtml==2.0.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
stack-data==0.6.3 ; python_version >= "3.10" and python_version < "4.0"
|
||||
tldextract==5.3.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
tomli==2.2.1 ; python_version == "3.10"
|
||||
tomli==2.3.0 ; python_version == "3.10"
|
||||
tomlkit==0.13.3 ; python_version >= "3.10" and python_version < "4.0"
|
||||
towncrier==24.8.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
tox==4.27.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
towncrier==25.8.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
tox==4.32.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
traitlets==5.14.3 ; python_version >= "3.10" and python_version < "4.0"
|
||||
trove-classifiers==2025.8.6.13 ; python_version >= "3.10" and python_version < "4.0"
|
||||
twine==6.1.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
types-httplib2==0.22.0.20250622 ; python_version >= "3.10" and python_version < "4.0"
|
||||
types-pyrfc3339==2.0.1.20241107 ; python_version >= "3.10" and python_version < "4.0"
|
||||
types-python-dateutil==2.9.0.20250822 ; python_version >= "3.10" and python_version < "4.0"
|
||||
types-pywin32==311.0.0.20250822 ; python_version >= "3.10" and python_version < "4.0"
|
||||
types-requests==2.32.4.20250809 ; python_version >= "3.10" and python_version < "4.0"
|
||||
trove-classifiers==2025.9.11.17 ; python_version >= "3.10" and python_version < "4.0"
|
||||
twine==6.2.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
types-httplib2==0.31.0.20250913 ; python_version >= "3.10" and python_version < "4.0"
|
||||
types-pyrfc3339==2.0.1.20250825 ; python_version >= "3.10" and python_version < "4.0"
|
||||
types-python-dateutil==2.9.0.20251008 ; python_version >= "3.10" and python_version < "4.0"
|
||||
types-pywin32==311.0.0.20251008 ; python_version >= "3.10" and python_version < "4.0"
|
||||
types-requests==2.32.4.20250913 ; python_version >= "3.10" and python_version < "4.0"
|
||||
types-setuptools==80.9.0.20250822 ; python_version >= "3.10" and python_version < "4.0"
|
||||
typing-extensions==4.14.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||
typing-extensions==4.15.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
uritemplate==4.2.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
urllib3==2.5.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
uv==0.8.13 ; python_version >= "3.10" and python_version < "4.0"
|
||||
virtualenv==20.32.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
wcwidth==0.2.13 ; python_version >= "3.10" and python_version < "4.0"
|
||||
uv==0.9.7 ; python_version >= "3.10" and python_version < "4.0"
|
||||
virtualenv==20.35.4 ; python_version >= "3.10" and python_version < "4.0"
|
||||
wcwidth==0.2.14 ; python_version >= "3.10" and python_version < "4.0"
|
||||
wheel==0.45.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||
wrapt==1.17.3 ; python_version >= "3.10" and python_version < "4.0"
|
||||
xattr==1.2.0 ; python_version >= "3.10" and python_version < "4.0" and sys_platform == "darwin"
|
||||
wrapt==2.0.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
xattr==1.3.0 ; python_version >= "3.10" and python_version < "4.0" and sys_platform == "darwin"
|
||||
zipp==3.23.0 ; python_version >= "3.10" and python_version < "3.12"
|
||||
zstandard==0.24.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
zstandard==0.25.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
|
|
|
|||
4
tox.ini
4
tox.ini
|
|
@ -52,10 +52,10 @@ commands =
|
|||
commands =
|
||||
{[base]pytest} acme certbot certbot-dns-cloudflare certbot-dns-digitalocean certbot-dns-dnsimple certbot-dns-dnsmadeeasy certbot-dns-gehirn certbot-dns-google certbot-dns-linode certbot-dns-luadns certbot-dns-nsone certbot-dns-ovh certbot-dns-rfc2136 certbot-dns-route53 certbot-dns-sakuracloud certbot-nginx certbot-apache
|
||||
|
||||
[testenv:py3{,10,11,12,13}]
|
||||
[testenv:py3{,10,11,12,13,14}]
|
||||
commands = {[testenv:py]commands}
|
||||
|
||||
[testenv:py3.{10,11,12,13}]
|
||||
[testenv:py3.{10,11,12,13,14}]
|
||||
commands = {[testenv:py]commands}
|
||||
|
||||
[testenv:oldest]
|
||||
|
|
|
|||
Loading…
Reference in a new issue