mirror of
https://github.com/certbot/certbot.git
synced 2026-07-28 00:35:28 +02:00
remove python 3.8 support (#10077)
fixes https://github.com/certbot/certbot/issues/10035. you can compare this to the PR that did this for python 3.7 at https://github.com/certbot/certbot/pull/9792 i agree with erica's comment at https://github.com/certbot/certbot/issues/10035#issuecomment-2452212686, but felt this PR was already getting pretty large so i did that in a second PR at https://github.com/certbot/certbot/pull/10076
This commit is contained in:
@@ -20,14 +20,11 @@ jobs:
|
||||
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:
|
||||
PYTHON_VERSION: 3.8
|
||||
PYTHON_VERSION: 3.9
|
||||
TOXENV: integration-certbot-oldest
|
||||
linux-integration-nginx-oldest:
|
||||
PYTHON_VERSION: 3.8
|
||||
PYTHON_VERSION: 3.9
|
||||
TOXENV: integration-nginx-oldest
|
||||
linux-py38-integration:
|
||||
PYTHON_VERSION: 3.8
|
||||
TOXENV: integration
|
||||
linux-py39-integration:
|
||||
PYTHON_VERSION: 3.9
|
||||
TOXENV: integration
|
||||
|
||||
@@ -12,13 +12,13 @@ jobs:
|
||||
PIP_USE_PEP517: "true"
|
||||
linux-oldest:
|
||||
IMAGE_NAME: ubuntu-22.04
|
||||
PYTHON_VERSION: 3.8
|
||||
PYTHON_VERSION: 3.9
|
||||
TOXENV: oldest
|
||||
linux-py38:
|
||||
linux-py39:
|
||||
# linux unit tests with the oldest python we support
|
||||
IMAGE_NAME: ubuntu-22.04
|
||||
PYTHON_VERSION: 3.8
|
||||
TOXENV: py38
|
||||
PYTHON_VERSION: 3.9
|
||||
TOXENV: py39
|
||||
linux-cover:
|
||||
# linux unit+cover tests with the newest python we support
|
||||
IMAGE_NAME: ubuntu-22.04
|
||||
@@ -47,6 +47,6 @@ jobs:
|
||||
- template: ../steps/tox-steps.yml
|
||||
- job: test_sphinx_builds
|
||||
pool:
|
||||
vmImage: ubuntu-20.04
|
||||
vmImage: ubuntu-22.04
|
||||
steps:
|
||||
- template: ../steps/sphinx-steps.yml
|
||||
|
||||
@@ -6,7 +6,6 @@ This module is an implementation of the `ACME protocol`_.
|
||||
|
||||
"""
|
||||
import sys
|
||||
import warnings
|
||||
|
||||
# This code exists to keep backwards compatibility with people using acme.jose
|
||||
# before it became the standalone josepy package.
|
||||
@@ -20,10 +19,3 @@ for mod in list(sys.modules):
|
||||
# preserved (acme.jose.* is josepy.*)
|
||||
if mod == 'josepy' or mod.startswith('josepy.'):
|
||||
sys.modules['acme.' + mod.replace('josepy', 'jose', 1)] = sys.modules[mod]
|
||||
|
||||
if sys.version_info[:2] == (3, 8):
|
||||
warnings.warn(
|
||||
"Python 3.8 support will be dropped in the next planned release of "
|
||||
"acme. Please upgrade your Python version.",
|
||||
PendingDeprecationWarning,
|
||||
) # pragma: no cover
|
||||
|
||||
+1
-2
@@ -45,14 +45,13 @@ setup(
|
||||
author="Certbot Project",
|
||||
author_email='certbot-dev@eff.org',
|
||||
license='Apache License 2.0',
|
||||
python_requires='>=3.8',
|
||||
python_requires='>=3.9',
|
||||
classifiers=[
|
||||
'Development Status :: 5 - Production/Stable',
|
||||
'Intended Audience :: Developers',
|
||||
'License :: OSI Approved :: Apache Software License',
|
||||
'Programming Language :: Python',
|
||||
'Programming Language :: Python :: 3',
|
||||
'Programming Language :: Python :: 3.8',
|
||||
'Programming Language :: Python :: 3.9',
|
||||
'Programming Language :: Python :: 3.10',
|
||||
'Programming Language :: Python :: 3.11',
|
||||
|
||||
@@ -29,7 +29,7 @@ setup(
|
||||
author="Certbot Project",
|
||||
author_email='certbot-dev@eff.org',
|
||||
license='Apache License 2.0',
|
||||
python_requires='>=3.8',
|
||||
python_requires='>=3.9',
|
||||
classifiers=[
|
||||
'Development Status :: 5 - Production/Stable',
|
||||
'Environment :: Plugins',
|
||||
@@ -38,7 +38,6 @@ setup(
|
||||
'Operating System :: POSIX :: Linux',
|
||||
'Programming Language :: Python',
|
||||
'Programming Language :: Python :: 3',
|
||||
'Programming Language :: Python :: 3.8',
|
||||
'Programming Language :: Python :: 3.9',
|
||||
'Programming Language :: Python :: 3.10',
|
||||
'Programming Language :: Python :: 3.11',
|
||||
|
||||
+1
-2
@@ -33,14 +33,13 @@ setup(
|
||||
author="Certbot Project",
|
||||
author_email='certbot-dev@eff.org',
|
||||
license='Apache License 2.0',
|
||||
python_requires='>=3.8',
|
||||
python_requires='>=3.9',
|
||||
classifiers=[
|
||||
'Development Status :: 3 - Alpha',
|
||||
'Intended Audience :: Developers',
|
||||
'License :: OSI Approved :: Apache Software License',
|
||||
'Programming Language :: Python',
|
||||
'Programming Language :: Python :: 3',
|
||||
'Programming Language :: Python :: 3.8',
|
||||
'Programming Language :: Python :: 3.9',
|
||||
'Programming Language :: Python :: 3.10',
|
||||
'Programming Language :: Python :: 3.11',
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
FROM docker.io/python:3.8-buster
|
||||
FROM docker.io/python:3.11-buster
|
||||
LABEL maintainer="Brad Warren <bmw@eff.org>"
|
||||
|
||||
# This does not include the dependencies needed to build cryptography. See
|
||||
|
||||
@@ -18,14 +18,13 @@ setup(
|
||||
author="Certbot Project",
|
||||
author_email='certbot-dev@eff.org',
|
||||
license='Apache License 2.0',
|
||||
python_requires='>=3.8',
|
||||
python_requires='>=3.9',
|
||||
classifiers=[
|
||||
'Development Status :: 3 - Alpha',
|
||||
'Intended Audience :: Developers',
|
||||
'License :: OSI Approved :: Apache Software License',
|
||||
'Programming Language :: Python',
|
||||
'Programming Language :: Python :: 3',
|
||||
'Programming Language :: Python :: 3.8',
|
||||
'Programming Language :: Python :: 3.9',
|
||||
'Programming Language :: Python :: 3.10',
|
||||
'Programming Language :: Python :: 3.11',
|
||||
|
||||
@@ -40,7 +40,7 @@ setup(
|
||||
author="Certbot Project",
|
||||
author_email='certbot-dev@eff.org',
|
||||
license='Apache License 2.0',
|
||||
python_requires='>=3.8',
|
||||
python_requires='>=3.9',
|
||||
classifiers=[
|
||||
'Development Status :: 5 - Production/Stable',
|
||||
'Environment :: Plugins',
|
||||
@@ -49,7 +49,6 @@ setup(
|
||||
'Operating System :: POSIX :: Linux',
|
||||
'Programming Language :: Python',
|
||||
'Programming Language :: Python :: 3',
|
||||
'Programming Language :: Python :: 3.8',
|
||||
'Programming Language :: Python :: 3.9',
|
||||
'Programming Language :: Python :: 3.10',
|
||||
'Programming Language :: Python :: 3.11',
|
||||
|
||||
@@ -38,7 +38,7 @@ setup(
|
||||
author="Certbot Project",
|
||||
author_email='certbot-dev@eff.org',
|
||||
license='Apache License 2.0',
|
||||
python_requires='>=3.8',
|
||||
python_requires='>=3.9',
|
||||
classifiers=[
|
||||
'Development Status :: 5 - Production/Stable',
|
||||
'Environment :: Plugins',
|
||||
@@ -47,7 +47,6 @@ setup(
|
||||
'Operating System :: POSIX :: Linux',
|
||||
'Programming Language :: Python',
|
||||
'Programming Language :: Python :: 3',
|
||||
'Programming Language :: Python :: 3.8',
|
||||
'Programming Language :: Python :: 3.9',
|
||||
'Programming Language :: Python :: 3.10',
|
||||
'Programming Language :: Python :: 3.11',
|
||||
|
||||
@@ -40,7 +40,7 @@ setup(
|
||||
author="Certbot Project",
|
||||
author_email='certbot-dev@eff.org',
|
||||
license='Apache License 2.0',
|
||||
python_requires='>=3.8',
|
||||
python_requires='>=3.9',
|
||||
classifiers=[
|
||||
'Development Status :: 5 - Production/Stable',
|
||||
'Environment :: Plugins',
|
||||
@@ -49,7 +49,6 @@ setup(
|
||||
'Operating System :: POSIX :: Linux',
|
||||
'Programming Language :: Python',
|
||||
'Programming Language :: Python :: 3',
|
||||
'Programming Language :: Python :: 3.8',
|
||||
'Programming Language :: Python :: 3.9',
|
||||
'Programming Language :: Python :: 3.10',
|
||||
'Programming Language :: Python :: 3.11',
|
||||
|
||||
@@ -38,7 +38,7 @@ setup(
|
||||
author="Certbot Project",
|
||||
author_email='certbot-dev@eff.org',
|
||||
license='Apache License 2.0',
|
||||
python_requires='>=3.8',
|
||||
python_requires='>=3.9',
|
||||
classifiers=[
|
||||
'Development Status :: 5 - Production/Stable',
|
||||
'Environment :: Plugins',
|
||||
@@ -47,7 +47,6 @@ setup(
|
||||
'Operating System :: POSIX :: Linux',
|
||||
'Programming Language :: Python',
|
||||
'Programming Language :: Python :: 3',
|
||||
'Programming Language :: Python :: 3.8',
|
||||
'Programming Language :: Python :: 3.9',
|
||||
'Programming Language :: Python :: 3.10',
|
||||
'Programming Language :: Python :: 3.11',
|
||||
|
||||
@@ -38,7 +38,7 @@ setup(
|
||||
author="Certbot Project",
|
||||
author_email='certbot-dev@eff.org',
|
||||
license='Apache License 2.0',
|
||||
python_requires='>=3.8',
|
||||
python_requires='>=3.9',
|
||||
classifiers=[
|
||||
'Development Status :: 5 - Production/Stable',
|
||||
'Environment :: Plugins',
|
||||
@@ -47,7 +47,6 @@ setup(
|
||||
'Operating System :: POSIX :: Linux',
|
||||
'Programming Language :: Python',
|
||||
'Programming Language :: Python :: 3',
|
||||
'Programming Language :: Python :: 3.8',
|
||||
'Programming Language :: Python :: 3.9',
|
||||
'Programming Language :: Python :: 3.10',
|
||||
'Programming Language :: Python :: 3.11',
|
||||
|
||||
@@ -39,7 +39,7 @@ setup(
|
||||
author="Certbot Project",
|
||||
author_email='certbot-dev@eff.org',
|
||||
license='Apache License 2.0',
|
||||
python_requires='>=3.8',
|
||||
python_requires='>=3.9',
|
||||
classifiers=[
|
||||
'Development Status :: 5 - Production/Stable',
|
||||
'Environment :: Plugins',
|
||||
@@ -48,7 +48,6 @@ setup(
|
||||
'Operating System :: POSIX :: Linux',
|
||||
'Programming Language :: Python',
|
||||
'Programming Language :: Python :: 3',
|
||||
'Programming Language :: Python :: 3.8',
|
||||
'Programming Language :: Python :: 3.9',
|
||||
'Programming Language :: Python :: 3.10',
|
||||
'Programming Language :: Python :: 3.11',
|
||||
|
||||
@@ -38,7 +38,7 @@ setup(
|
||||
author="Certbot Project",
|
||||
author_email='certbot-dev@eff.org',
|
||||
license='Apache License 2.0',
|
||||
python_requires='>=3.8',
|
||||
python_requires='>=3.9',
|
||||
classifiers=[
|
||||
'Development Status :: 5 - Production/Stable',
|
||||
'Environment :: Plugins',
|
||||
@@ -47,7 +47,6 @@ setup(
|
||||
'Operating System :: POSIX :: Linux',
|
||||
'Programming Language :: Python',
|
||||
'Programming Language :: Python :: 3',
|
||||
'Programming Language :: Python :: 3.8',
|
||||
'Programming Language :: Python :: 3.9',
|
||||
'Programming Language :: Python :: 3.10',
|
||||
'Programming Language :: Python :: 3.11',
|
||||
|
||||
@@ -38,7 +38,7 @@ setup(
|
||||
author="Certbot Project",
|
||||
author_email='certbot-dev@eff.org',
|
||||
license='Apache License 2.0',
|
||||
python_requires='>=3.8',
|
||||
python_requires='>=3.9',
|
||||
classifiers=[
|
||||
'Development Status :: 5 - Production/Stable',
|
||||
'Environment :: Plugins',
|
||||
@@ -47,7 +47,6 @@ setup(
|
||||
'Operating System :: POSIX :: Linux',
|
||||
'Programming Language :: Python',
|
||||
'Programming Language :: Python :: 3',
|
||||
'Programming Language :: Python :: 3.8',
|
||||
'Programming Language :: Python :: 3.9',
|
||||
'Programming Language :: Python :: 3.10',
|
||||
'Programming Language :: Python :: 3.11',
|
||||
|
||||
@@ -38,7 +38,7 @@ setup(
|
||||
author="Certbot Project",
|
||||
author_email='certbot-dev@eff.org',
|
||||
license='Apache License 2.0',
|
||||
python_requires='>=3.8',
|
||||
python_requires='>=3.9',
|
||||
classifiers=[
|
||||
'Development Status :: 5 - Production/Stable',
|
||||
'Environment :: Plugins',
|
||||
@@ -47,7 +47,6 @@ setup(
|
||||
'Operating System :: POSIX :: Linux',
|
||||
'Programming Language :: Python',
|
||||
'Programming Language :: Python :: 3',
|
||||
'Programming Language :: Python :: 3.8',
|
||||
'Programming Language :: Python :: 3.9',
|
||||
'Programming Language :: Python :: 3.10',
|
||||
'Programming Language :: Python :: 3.11',
|
||||
|
||||
@@ -38,7 +38,7 @@ setup(
|
||||
author="Certbot Project",
|
||||
author_email='certbot-dev@eff.org',
|
||||
license='Apache License 2.0',
|
||||
python_requires='>=3.8',
|
||||
python_requires='>=3.9',
|
||||
classifiers=[
|
||||
'Development Status :: 5 - Production/Stable',
|
||||
'Environment :: Plugins',
|
||||
@@ -47,7 +47,6 @@ setup(
|
||||
'Operating System :: POSIX :: Linux',
|
||||
'Programming Language :: Python',
|
||||
'Programming Language :: Python :: 3',
|
||||
'Programming Language :: Python :: 3.8',
|
||||
'Programming Language :: Python :: 3.9',
|
||||
'Programming Language :: Python :: 3.10',
|
||||
'Programming Language :: Python :: 3.11',
|
||||
|
||||
@@ -7,7 +7,10 @@ from setuptools import setup
|
||||
version = '3.1.0.dev0'
|
||||
|
||||
install_requires = [
|
||||
'dnspython>=1.15.0',
|
||||
# This version was chosen because it is the version packaged in RHEL 9 and Debian unstable. It
|
||||
# is possible this requirement could be relaxed to allow for an even older version of dnspython
|
||||
# if necessary.
|
||||
'dnspython>=2.6.1',
|
||||
]
|
||||
|
||||
if os.environ.get('SNAP_BUILD'):
|
||||
@@ -38,7 +41,7 @@ setup(
|
||||
author="Certbot Project",
|
||||
author_email='certbot-dev@eff.org',
|
||||
license='Apache License 2.0',
|
||||
python_requires='>=3.8',
|
||||
python_requires='>=3.9',
|
||||
classifiers=[
|
||||
'Development Status :: 5 - Production/Stable',
|
||||
'Environment :: Plugins',
|
||||
@@ -47,7 +50,6 @@ setup(
|
||||
'Operating System :: POSIX :: Linux',
|
||||
'Programming Language :: Python',
|
||||
'Programming Language :: Python :: 3',
|
||||
'Programming Language :: Python :: 3.8',
|
||||
'Programming Language :: Python :: 3.9',
|
||||
'Programming Language :: Python :: 3.10',
|
||||
'Programming Language :: Python :: 3.11',
|
||||
|
||||
@@ -38,7 +38,7 @@ setup(
|
||||
author="Certbot Project",
|
||||
author_email='certbot-dev@eff.org',
|
||||
license='Apache License 2.0',
|
||||
python_requires='>=3.8',
|
||||
python_requires='>=3.9',
|
||||
classifiers=[
|
||||
'Development Status :: 5 - Production/Stable',
|
||||
'Environment :: Plugins',
|
||||
@@ -47,7 +47,6 @@ setup(
|
||||
'Operating System :: POSIX :: Linux',
|
||||
'Programming Language :: Python',
|
||||
'Programming Language :: Python :: 3',
|
||||
'Programming Language :: Python :: 3.8',
|
||||
'Programming Language :: Python :: 3.9',
|
||||
'Programming Language :: Python :: 3.10',
|
||||
'Programming Language :: Python :: 3.11',
|
||||
|
||||
@@ -38,7 +38,7 @@ setup(
|
||||
author="Certbot Project",
|
||||
author_email='certbot-dev@eff.org',
|
||||
license='Apache License 2.0',
|
||||
python_requires='>=3.8',
|
||||
python_requires='>=3.9',
|
||||
classifiers=[
|
||||
'Development Status :: 5 - Production/Stable',
|
||||
'Environment :: Plugins',
|
||||
@@ -47,7 +47,6 @@ setup(
|
||||
'Operating System :: POSIX :: Linux',
|
||||
'Programming Language :: Python',
|
||||
'Programming Language :: Python :: 3',
|
||||
'Programming Language :: Python :: 3.8',
|
||||
'Programming Language :: Python :: 3.9',
|
||||
'Programming Language :: Python :: 3.10',
|
||||
'Programming Language :: Python :: 3.11',
|
||||
|
||||
@@ -27,7 +27,7 @@ setup(
|
||||
author="Certbot Project",
|
||||
author_email='certbot-dev@eff.org',
|
||||
license='Apache License 2.0',
|
||||
python_requires='>=3.8',
|
||||
python_requires='>=3.9',
|
||||
classifiers=[
|
||||
'Development Status :: 5 - Production/Stable',
|
||||
'Environment :: Plugins',
|
||||
@@ -36,7 +36,6 @@ setup(
|
||||
'Operating System :: POSIX :: Linux',
|
||||
'Programming Language :: Python',
|
||||
'Programming Language :: Python :: 3',
|
||||
'Programming Language :: Python :: 3.8',
|
||||
'Programming Language :: Python :: 3.9',
|
||||
'Programming Language :: Python :: 3.10',
|
||||
'Programming Language :: Python :: 3.11',
|
||||
|
||||
@@ -10,6 +10,8 @@ Certbot adheres to [Semantic Versioning](https://semver.org/).
|
||||
|
||||
### Changed
|
||||
|
||||
* Python 3.8 support was removed.
|
||||
* certbot-dns-rfc2136's minimum required version of dnspython is now 2.6.1.
|
||||
* Updated our Docker images to be based on Alpine Linux 3.20.
|
||||
* Our runtime dependency on setuptools has been dropped from all Certbot
|
||||
components.
|
||||
|
||||
@@ -1,13 +1,4 @@
|
||||
"""Certbot client."""
|
||||
import sys
|
||||
import warnings
|
||||
|
||||
# version number like 1.2.3a0, must have at least 2 parts, like 1.2
|
||||
__version__ = '3.1.0.dev0'
|
||||
|
||||
if sys.version_info[:2] == (3, 8):
|
||||
warnings.warn(
|
||||
"Python 3.8 support will be dropped in the next planned release of "
|
||||
"certbot. Please upgrade your Python version.",
|
||||
PendingDeprecationWarning,
|
||||
) # pragma: no cover
|
||||
|
||||
@@ -1866,10 +1866,6 @@ def main(cli_args: Optional[List[str]] = None) -> Optional[Union[str, int]]:
|
||||
if config.func != plugins_cmd: # pylint: disable=comparison-with-callable
|
||||
raise
|
||||
|
||||
if sys.version_info[:2] == (3, 8):
|
||||
logger.warning("Python 3.8 support will be dropped in the next planned release "
|
||||
"of Certbot - please upgrade your Python version.")
|
||||
|
||||
with make_displayer(config) as displayer:
|
||||
display_obj.set_display(displayer)
|
||||
|
||||
|
||||
@@ -631,10 +631,6 @@ class ReadlinkTest(unittest.TestCase):
|
||||
@unittest.skipIf(POSIX_MODE, reason='Tests specific to Windows')
|
||||
@mock.patch("certbot.compat.filesystem.os.readlink")
|
||||
def test_normal_path_windows(self, mock_readlink):
|
||||
# Python <3.8
|
||||
mock_readlink.return_value = "C:\\short\\path"
|
||||
assert filesystem.readlink("dummy") == "C:\\short\\path"
|
||||
|
||||
# Python >=3.8 (os.readlink always returns the extended form)
|
||||
mock_readlink.return_value = "\\\\?\\C:\\short\\path"
|
||||
assert filesystem.readlink("dummy") == "C:\\short\\path"
|
||||
|
||||
@@ -218,7 +218,6 @@ class PostHookTest(HookTest):
|
||||
assert not self._call_with_mock_execute(self.config, []).called
|
||||
assert not self._get_eventually()
|
||||
|
||||
@unittest.skipIf(pyver_lt(3, 8), "Python 3.8+ required for this test.")
|
||||
def test_renew_env(self):
|
||||
self.config.verb = "certonly"
|
||||
args = self._call_with_mock_execute(self.config, ["success.org"]).call_args
|
||||
@@ -308,7 +307,6 @@ class RunSavedPostHooksTest(HookTest):
|
||||
mock_execute = self._call_with_mock_execute_and_eventually([], [])
|
||||
mock_execute.assert_called_once_with("post-hook", self.eventually[0], env=mock.ANY)
|
||||
|
||||
@unittest.skipIf(pyver_lt(3, 8), "Python 3.8+ required for this test.")
|
||||
def test_env(self):
|
||||
self.eventually = ["foo"]
|
||||
mock_execute = self._call_with_mock_execute_and_eventually(["success.org"], ["failed.org"])
|
||||
|
||||
@@ -5,11 +5,9 @@ from contextlib import contextmanager
|
||||
import errno
|
||||
import os # pylint: disable=os-module-forbidden
|
||||
import stat
|
||||
import sys
|
||||
from typing import Any
|
||||
from typing import Dict
|
||||
from typing import Generator
|
||||
from typing import List
|
||||
from typing import Optional
|
||||
|
||||
try:
|
||||
@@ -370,27 +368,14 @@ def realpath(file_path: str) -> str:
|
||||
"""
|
||||
original_path = file_path
|
||||
|
||||
# Since Python 3.8, os.path.realpath also resolves symlinks on Windows.
|
||||
if POSIX_MODE or sys.version_info >= (3, 8):
|
||||
path = os.path.realpath(file_path)
|
||||
if os.path.islink(path):
|
||||
# If path returned by realpath is still a link, it means that it failed to
|
||||
# resolve the symlink because of a loop.
|
||||
# See realpath code: https://github.com/python/cpython/blob/master/Lib/posixpath.py
|
||||
raise RuntimeError('Error, link {0} is a loop!'.format(original_path))
|
||||
return path
|
||||
|
||||
inspected_paths: List[str] = []
|
||||
while os.path.islink(file_path):
|
||||
link_path = file_path
|
||||
file_path = os.readlink(file_path)
|
||||
if not os.path.isabs(file_path):
|
||||
file_path = os.path.join(os.path.dirname(link_path), file_path)
|
||||
if file_path in inspected_paths:
|
||||
raise RuntimeError('Error, link {0} is a loop!'.format(original_path))
|
||||
inspected_paths.append(file_path)
|
||||
|
||||
return os.path.abspath(file_path)
|
||||
# os.path.realpath also resolves symlinks
|
||||
path = os.path.realpath(file_path)
|
||||
if os.path.islink(path):
|
||||
# If path returned by realpath is still a link, it means that it failed to
|
||||
# resolve the symlink because of a loop.
|
||||
# See realpath code: https://github.com/python/cpython/blob/master/Lib/posixpath.py
|
||||
raise RuntimeError('Error, link {0} is a loop!'.format(original_path))
|
||||
return path
|
||||
|
||||
|
||||
def readlink(link_path: str) -> str:
|
||||
@@ -404,11 +389,11 @@ def readlink(link_path: str) -> str:
|
||||
"""
|
||||
path = os.readlink(link_path)
|
||||
|
||||
if POSIX_MODE or not path.startswith('\\\\?\\'):
|
||||
if POSIX_MODE:
|
||||
return path
|
||||
|
||||
# At this point, we know we are on Windows and that the path returned uses
|
||||
# the extended form which is done for all paths in Python 3.8+
|
||||
# the extended form which begins with the prefix \\?\
|
||||
|
||||
# Max length of a normal path is 260 characters on Windows, including the non printable
|
||||
# termination character "<NUL>". The termination character is not included in Python
|
||||
|
||||
+1
-2
@@ -99,7 +99,7 @@ setup(
|
||||
author="Certbot Project",
|
||||
author_email='certbot-dev@eff.org',
|
||||
license='Apache License 2.0',
|
||||
python_requires='>=3.8',
|
||||
python_requires='>=3.9',
|
||||
classifiers=[
|
||||
'Development Status :: 5 - Production/Stable',
|
||||
'Environment :: Console',
|
||||
@@ -109,7 +109,6 @@ setup(
|
||||
'Operating System :: POSIX :: Linux',
|
||||
'Programming Language :: Python',
|
||||
'Programming Language :: Python :: 3',
|
||||
'Programming Language :: Python :: 3.8',
|
||||
'Programming Language :: Python :: 3.9',
|
||||
'Programming Language :: Python :: 3.10',
|
||||
'Programming Language :: Python :: 3.11',
|
||||
|
||||
+1
-2
@@ -9,14 +9,13 @@ setup(
|
||||
author='Certbot Project',
|
||||
author_email='certbot-dev@eff.org',
|
||||
license='Apache License 2.0',
|
||||
python_requires='>=3.8',
|
||||
python_requires='>=3.9',
|
||||
classifiers=[
|
||||
'Development Status :: 5 - Production/Stable',
|
||||
'Intended Audience :: Developers',
|
||||
'License :: OSI Approved :: Apache Software License',
|
||||
'Programming Language :: Python',
|
||||
'Programming Language :: Python :: 3',
|
||||
'Programming Language :: Python :: 3.8',
|
||||
'Programming Language :: Python :: 3.9',
|
||||
'Programming Language :: Python :: 3.10',
|
||||
'Programming Language :: Python :: 3.11',
|
||||
|
||||
+5
-10
@@ -11,27 +11,22 @@
|
||||
# we release breaking changes.
|
||||
#
|
||||
# The current warnings being ignored are:
|
||||
# 1) A deprecation warning is raised in dnspython==1.15.0 in the oldest tests for
|
||||
# certbot-dns-rfc2136.
|
||||
# 2) pytest-cov uses deprecated functionality in pytest-xdist, to be resolved by
|
||||
# 1) pytest-cov uses deprecated functionality in pytest-xdist, to be resolved by
|
||||
# https://github.com/pytest-dev/pytest-cov/issues/557.
|
||||
# 3) requests-toolbelt<0.10.1 can cause this warning to be raised during our
|
||||
# 2) requests-toolbelt<0.10.1 can cause this warning to be raised during our
|
||||
# unit tests. This warning should be ignored until our (transitive)
|
||||
# dependency on requests-toolbelt is removed or our pinned version can be
|
||||
# updated.
|
||||
# 4) Ignore DeprecationWarning for datetime.utcfromtimestamp() triggered
|
||||
# 3) Ignore DeprecationWarning for datetime.utcfromtimestamp() triggered
|
||||
# from dateutil. See https://github.com/dateutil/dateutil/issues/1314.
|
||||
# 5) Ignoring this allows us to continue to update pyOpenSSL (one of our crypto
|
||||
# 4) Ignoring this allows us to continue to update pyOpenSSL (one of our crypto
|
||||
# dependencies) until https://github.com/certbot/certbot/issues/9828 is resolved.
|
||||
# 6) Similarly to 6), CSR support is deprecated in pyOpenSSL since 24.2, we silence
|
||||
# 5) Similarly to 6), CSR support is deprecated in pyOpenSSL since 24.2, we silence
|
||||
# the warning until https://github.com/certbot/certbot/issues/9992 is resolved.
|
||||
# 7) Ignore our own PendingDeprecationWarning about Python 3.8 soon to be dropped.
|
||||
filterwarnings =
|
||||
error
|
||||
ignore:decodestring\(\) is a deprecated alias:DeprecationWarning:dns
|
||||
ignore:.*rsyncdir:DeprecationWarning
|
||||
ignore:'urllib3.contrib.pyopenssl:DeprecationWarning:requests_toolbelt
|
||||
ignore:.*datetime.utcfromtimestamp\(\) is deprecated:DeprecationWarning:dateutil
|
||||
ignore:X509Extension support in pyOpenSSL is deprecated:DeprecationWarning
|
||||
ignore:CSR support in pyOpenSSL is deprecated:DeprecationWarning
|
||||
ignore:Python 3.8 support will be dropped:PendingDeprecationWarning
|
||||
|
||||
@@ -1,98 +1,98 @@
|
||||
# This file was generated by tools/pinning/oldest/repin.sh and can be updated using
|
||||
# that script.
|
||||
apacheconfig==0.3.2 ; python_version >= "3.8" and python_version < "3.9"
|
||||
asn1crypto==0.24.0 ; python_version >= "3.8" and python_version < "3.9"
|
||||
astroid==3.2.4 ; python_version >= "3.8" and python_version < "3.9"
|
||||
beautifulsoup4==4.12.3 ; python_version >= "3.8" and python_version < "3.9"
|
||||
boto3==1.15.15 ; python_version >= "3.8" and python_version < "3.9"
|
||||
botocore==1.18.15 ; python_version >= "3.8" and python_version < "3.9"
|
||||
cachetools==5.5.0 ; python_version >= "3.8" and python_version < "3.9"
|
||||
certifi==2024.8.30 ; python_version >= "3.8" and python_version < "3.9"
|
||||
cffi==1.12.3 ; python_version >= "3.8" and python_version < "3.9"
|
||||
chardet==3.0.4 ; python_version >= "3.8" and python_version < "3.9"
|
||||
cloudflare==1.5.1 ; python_version >= "3.8" and python_version < "3.9"
|
||||
colorama==0.4.6 ; python_version >= "3.8" and python_version < "3.9" and sys_platform == "win32"
|
||||
configargparse==1.5.3 ; python_version >= "3.8" and python_version < "3.9"
|
||||
configobj==5.0.6 ; python_version >= "3.8" and python_version < "3.9"
|
||||
coverage==7.6.1 ; python_version >= "3.8" and python_version < "3.9"
|
||||
cryptography==3.2.1 ; python_version >= "3.8" and python_version < "3.9"
|
||||
cython==0.29.37 ; python_version >= "3.8" and python_version < "3.9"
|
||||
dill==0.3.9 ; python_version >= "3.8" and python_version < "3.9"
|
||||
distlib==0.3.9 ; python_version >= "3.8" and python_version < "3.9"
|
||||
distro==1.0.1 ; python_version >= "3.8" and python_version < "3.9"
|
||||
dns-lexicon==3.15.1 ; python_version >= "3.8" and python_version < "3.9"
|
||||
dnspython==1.15.0 ; python_version >= "3.8" and python_version < "3.9"
|
||||
exceptiongroup==1.2.2 ; python_version >= "3.8" and python_version < "3.9"
|
||||
execnet==2.1.1 ; python_version >= "3.8" and python_version < "3.9"
|
||||
filelock==3.16.1 ; python_version >= "3.8" and python_version < "3.9"
|
||||
funcsigs==0.4 ; python_version >= "3.8" and python_version < "3.9"
|
||||
future==1.0.0 ; python_version >= "3.8" and python_version < "3.9"
|
||||
google-api-python-client==1.6.5 ; python_version >= "3.8" and python_version < "3.9"
|
||||
google-auth==2.16.0 ; python_version >= "3.8" and python_version < "3.9"
|
||||
httplib2==0.9.2 ; python_version >= "3.8" and python_version < "3.9"
|
||||
idna==2.6 ; python_version >= "3.8" and python_version < "3.9"
|
||||
importlib-metadata==4.6.4 ; python_version >= "3.8" and python_version < "3.9"
|
||||
importlib-resources==6.4.5 ; python_version >= "3.8" and python_version < "3.9"
|
||||
iniconfig==2.0.0 ; python_version >= "3.8" and python_version < "3.9"
|
||||
ipaddress==1.0.16 ; python_version >= "3.8" and python_version < "3.9"
|
||||
isort==5.13.2 ; python_version >= "3.8" and python_version < "3.9"
|
||||
jmespath==0.10.0 ; python_version >= "3.8" and python_version < "3.9"
|
||||
josepy==1.14.0 ; python_version >= "3.8" and python_version < "3.9"
|
||||
logger==1.4 ; python_version >= "3.8" and python_version < "3.9"
|
||||
mccabe==0.7.0 ; python_version >= "3.8" and python_version < "3.9"
|
||||
mypy-extensions==1.0.0 ; python_version >= "3.8" and python_version < "3.9"
|
||||
mypy==1.13.0 ; python_version >= "3.8" and python_version < "3.9"
|
||||
ndg-httpsclient==0.3.2 ; python_version >= "3.8" and python_version < "3.9"
|
||||
oauth2client==4.1.3 ; python_version >= "3.8" and python_version < "3.9"
|
||||
packaging==24.2 ; python_version >= "3.8" and python_version < "3.9"
|
||||
parsedatetime==2.4 ; python_version >= "3.8" and python_version < "3.9"
|
||||
pbr==1.8.0 ; python_version >= "3.8" and python_version < "3.9"
|
||||
pip==24.3.1 ; python_version >= "3.8" and python_version < "3.9"
|
||||
platformdirs==4.3.6 ; python_version >= "3.8" and python_version < "3.9"
|
||||
pluggy==1.5.0 ; python_version >= "3.8" and python_version < "3.9"
|
||||
ply==3.4 ; python_version >= "3.8" and python_version < "3.9"
|
||||
py==1.11.0 ; python_version >= "3.8" and python_version < "3.9"
|
||||
pyasn1-modules==0.4.1 ; python_version >= "3.8" and python_version < "3.9"
|
||||
pyasn1==0.4.8 ; python_version >= "3.8" and python_version < "3.9"
|
||||
pycparser==2.14 ; python_version >= "3.8" and python_version < "3.9"
|
||||
pylint==3.2.7 ; python_version >= "3.8" and python_version < "3.9"
|
||||
pyopenssl==17.5.0 ; python_version >= "3.8" and python_version < "3.9"
|
||||
pyotp==2.9.0 ; python_version >= "3.8" and python_version < "3.9"
|
||||
pyparsing==2.2.1 ; python_version >= "3.8" and python_version < "3.9"
|
||||
pyrfc3339==1.0 ; python_version >= "3.8" and python_version < "3.9"
|
||||
pytest-cov==5.0.0 ; python_version >= "3.8" and python_version < "3.9"
|
||||
pytest-xdist==3.6.1 ; python_version >= "3.8" and python_version < "3.9"
|
||||
pytest==8.3.4 ; python_version >= "3.8" and python_version < "3.9"
|
||||
python-augeas==0.5.0 ; python_version >= "3.8" and python_version < "3.9"
|
||||
python-dateutil==2.9.0.post0 ; python_version >= "3.8" and python_version < "3.9"
|
||||
python-digitalocean==1.11 ; python_version >= "3.8" and python_version < "3.9"
|
||||
pytz==2019.3 ; python_version >= "3.8" and python_version < "3.9"
|
||||
pywin32==308 ; python_version >= "3.8" and python_version < "3.9" and sys_platform == "win32"
|
||||
pyyaml==6.0.2 ; python_version >= "3.8" and python_version < "3.9"
|
||||
requests-file==2.1.0 ; python_version >= "3.8" and python_version < "3.9"
|
||||
requests==2.20.0 ; python_version >= "3.8" and python_version < "3.9"
|
||||
rsa==4.9 ; python_version >= "3.8" and python_version < "3.9"
|
||||
s3transfer==0.3.7 ; python_version >= "3.8" and python_version < "3.9"
|
||||
setuptools==75.3.0 ; python_version >= "3.8" and python_version < "3.9"
|
||||
six==1.11.0 ; python_version >= "3.8" and python_version < "3.9"
|
||||
soupsieve==2.6 ; python_version >= "3.8" and python_version < "3.9"
|
||||
tldextract==5.1.2 ; python_version >= "3.8" and python_version < "3.9"
|
||||
tomli==2.2.1 ; python_version >= "3.8" and python_version < "3.9"
|
||||
tomlkit==0.13.2 ; python_version >= "3.8" and python_version < "3.9"
|
||||
tox==1.9.2 ; python_version >= "3.8" and python_version < "3.9"
|
||||
types-cryptography==3.3.23.2 ; python_version >= "3.8" and python_version < "3.9"
|
||||
types-httplib2==0.22.0.20240310 ; python_version >= "3.8" and python_version < "3.9"
|
||||
types-pyopenssl==23.0.0.0 ; python_version >= "3.8" and python_version < "3.9"
|
||||
types-pyrfc3339==2.0.1.20241107 ; python_version >= "3.8" and python_version < "3.9"
|
||||
types-python-dateutil==2.9.0.20241003 ; python_version >= "3.8" and python_version < "3.9"
|
||||
types-pytz==2024.2.0.20241003 ; python_version >= "3.8" and python_version < "3.9"
|
||||
types-pywin32==308.0.0.20241128 ; python_version >= "3.8" and python_version < "3.9"
|
||||
types-requests==2.31.0.6 ; python_version >= "3.8" and python_version < "3.9"
|
||||
types-setuptools==75.6.0.20241126 ; python_version >= "3.8" and python_version < "3.9"
|
||||
types-urllib3==1.26.25.14 ; python_version >= "3.8" and python_version < "3.9"
|
||||
typing-extensions==4.12.2 ; python_version >= "3.8" and python_version < "3.9"
|
||||
uritemplate==3.0.1 ; python_version >= "3.8" and python_version < "3.9"
|
||||
urllib3==1.24.2 ; python_version >= "3.8" and python_version < "3.9"
|
||||
virtualenv==20.28.0 ; python_version >= "3.8" and python_version < "3.9"
|
||||
wheel==0.45.1 ; python_version >= "3.8" and python_version < "3.9"
|
||||
zipp==3.20.2 ; python_version >= "3.8" and python_version < "3.9"
|
||||
apacheconfig==0.3.2 ; python_version >= "3.9" and python_version < "3.10"
|
||||
asn1crypto==0.24.0 ; python_version >= "3.9" and python_version < "3.10"
|
||||
astroid==3.3.5 ; python_version >= "3.9" and python_version < "3.10"
|
||||
beautifulsoup4==4.12.3 ; python_version >= "3.9" and python_version < "3.10"
|
||||
boto3==1.15.15 ; python_version >= "3.9" and python_version < "3.10"
|
||||
botocore==1.18.15 ; python_version >= "3.9" and python_version < "3.10"
|
||||
cachetools==5.5.0 ; python_version >= "3.9" and python_version < "3.10"
|
||||
certifi==2024.8.30 ; python_version >= "3.9" and python_version < "3.10"
|
||||
cffi==1.12.3 ; python_version >= "3.9" and python_version < "3.10"
|
||||
chardet==3.0.4 ; python_version >= "3.9" and python_version < "3.10"
|
||||
cloudflare==1.5.1 ; python_version >= "3.9" and python_version < "3.10"
|
||||
colorama==0.4.6 ; python_version >= "3.9" and python_version < "3.10" and sys_platform == "win32"
|
||||
configargparse==1.5.3 ; python_version >= "3.9" and python_version < "3.10"
|
||||
configobj==5.0.6 ; python_version >= "3.9" and python_version < "3.10"
|
||||
coverage==7.6.8 ; python_version >= "3.9" and python_version < "3.10"
|
||||
cryptography==3.2.1 ; python_version >= "3.9" and python_version < "3.10"
|
||||
cython==0.29.37 ; python_version >= "3.9" and python_version < "3.10"
|
||||
dill==0.3.9 ; python_version >= "3.9" and python_version < "3.10"
|
||||
distlib==0.3.9 ; python_version >= "3.9" and python_version < "3.10"
|
||||
distro==1.0.1 ; python_version >= "3.9" and python_version < "3.10"
|
||||
dns-lexicon==3.15.1 ; python_version >= "3.9" and python_version < "3.10"
|
||||
dnspython==2.6.1 ; python_version >= "3.9" and python_version < "3.10"
|
||||
exceptiongroup==1.2.2 ; python_version >= "3.9" and python_version < "3.10"
|
||||
execnet==2.1.1 ; python_version >= "3.9" and python_version < "3.10"
|
||||
filelock==3.16.1 ; python_version >= "3.9" and python_version < "3.10"
|
||||
funcsigs==0.4 ; python_version >= "3.9" and python_version < "3.10"
|
||||
future==1.0.0 ; python_version >= "3.9" and python_version < "3.10"
|
||||
google-api-python-client==1.6.5 ; python_version >= "3.9" and python_version < "3.10"
|
||||
google-auth==2.16.0 ; python_version >= "3.9" and python_version < "3.10"
|
||||
httplib2==0.9.2 ; python_version >= "3.9" and python_version < "3.10"
|
||||
idna==2.6 ; python_version >= "3.9" and python_version < "3.10"
|
||||
importlib-metadata==4.6.4 ; python_version >= "3.9" and python_version < "3.10"
|
||||
importlib-resources==6.4.5 ; python_version >= "3.9" and python_version < "3.10"
|
||||
iniconfig==2.0.0 ; python_version >= "3.9" and python_version < "3.10"
|
||||
ipaddress==1.0.16 ; python_version >= "3.9" and python_version < "3.10"
|
||||
isort==5.13.2 ; python_version >= "3.9" and python_version < "3.10"
|
||||
jmespath==0.10.0 ; python_version >= "3.9" and python_version < "3.10"
|
||||
josepy==1.14.0 ; python_version >= "3.9" and python_version < "3.10"
|
||||
logger==1.4 ; python_version >= "3.9" and python_version < "3.10"
|
||||
mccabe==0.7.0 ; python_version >= "3.9" and python_version < "3.10"
|
||||
mypy-extensions==1.0.0 ; python_version >= "3.9" and python_version < "3.10"
|
||||
mypy==1.13.0 ; python_version >= "3.9" and python_version < "3.10"
|
||||
ndg-httpsclient==0.3.2 ; python_version >= "3.9" and python_version < "3.10"
|
||||
oauth2client==4.1.3 ; python_version >= "3.9" and python_version < "3.10"
|
||||
packaging==24.2 ; python_version >= "3.9" and python_version < "3.10"
|
||||
parsedatetime==2.4 ; python_version >= "3.9" and python_version < "3.10"
|
||||
pbr==1.8.0 ; python_version >= "3.9" and python_version < "3.10"
|
||||
pip==24.3.1 ; python_version >= "3.9" and python_version < "3.10"
|
||||
platformdirs==4.3.6 ; python_version >= "3.9" and python_version < "3.10"
|
||||
pluggy==1.5.0 ; python_version >= "3.9" and python_version < "3.10"
|
||||
ply==3.4 ; python_version >= "3.9" and python_version < "3.10"
|
||||
py==1.11.0 ; python_version >= "3.9" and python_version < "3.10"
|
||||
pyasn1-modules==0.4.1 ; python_version >= "3.9" and python_version < "3.10"
|
||||
pyasn1==0.4.8 ; python_version >= "3.9" and python_version < "3.10"
|
||||
pycparser==2.14 ; python_version >= "3.9" and python_version < "3.10"
|
||||
pylint==3.3.2 ; python_version >= "3.9" and python_version < "3.10"
|
||||
pyopenssl==17.5.0 ; python_version >= "3.9" and python_version < "3.10"
|
||||
pyotp==2.9.0 ; python_version >= "3.9" and python_version < "3.10"
|
||||
pyparsing==2.2.1 ; python_version >= "3.9" and python_version < "3.10"
|
||||
pyrfc3339==1.0 ; python_version >= "3.9" and python_version < "3.10"
|
||||
pytest-cov==6.0.0 ; python_version >= "3.9" and python_version < "3.10"
|
||||
pytest-xdist==3.6.1 ; python_version >= "3.9" and python_version < "3.10"
|
||||
pytest==8.3.4 ; python_version >= "3.9" and python_version < "3.10"
|
||||
python-augeas==0.5.0 ; python_version >= "3.9" and python_version < "3.10"
|
||||
python-dateutil==2.9.0.post0 ; python_version >= "3.9" and python_version < "3.10"
|
||||
python-digitalocean==1.11 ; python_version >= "3.9" and python_version < "3.10"
|
||||
pytz==2019.3 ; python_version >= "3.9" and python_version < "3.10"
|
||||
pywin32==308 ; python_version >= "3.9" and python_version < "3.10" and sys_platform == "win32"
|
||||
pyyaml==6.0.2 ; python_version >= "3.9" and python_version < "3.10"
|
||||
requests-file==2.1.0 ; python_version >= "3.9" and python_version < "3.10"
|
||||
requests==2.20.0 ; python_version >= "3.9" and python_version < "3.10"
|
||||
rsa==4.9 ; python_version >= "3.9" and python_version < "3.10"
|
||||
s3transfer==0.3.7 ; python_version >= "3.9" and python_version < "3.10"
|
||||
setuptools==75.6.0 ; python_version >= "3.9" and python_version < "3.10"
|
||||
six==1.11.0 ; python_version >= "3.9" and python_version < "3.10"
|
||||
soupsieve==2.6 ; python_version >= "3.9" and python_version < "3.10"
|
||||
tldextract==5.1.3 ; python_version >= "3.9" and python_version < "3.10"
|
||||
tomli==2.2.1 ; python_version >= "3.9" and python_version < "3.10"
|
||||
tomlkit==0.13.2 ; python_version >= "3.9" and python_version < "3.10"
|
||||
tox==1.9.2 ; python_version >= "3.9" and python_version < "3.10"
|
||||
types-cryptography==3.3.23.2 ; python_version >= "3.9" and python_version < "3.10"
|
||||
types-httplib2==0.22.0.20240310 ; python_version >= "3.9" and python_version < "3.10"
|
||||
types-pyopenssl==23.0.0.0 ; python_version >= "3.9" and python_version < "3.10"
|
||||
types-pyrfc3339==2.0.1.20241107 ; python_version >= "3.9" and python_version < "3.10"
|
||||
types-python-dateutil==2.9.0.20241003 ; python_version >= "3.9" and python_version < "3.10"
|
||||
types-pytz==2024.2.0.20241003 ; python_version >= "3.9" and python_version < "3.10"
|
||||
types-pywin32==308.0.0.20241128 ; python_version >= "3.9" and python_version < "3.10"
|
||||
types-requests==2.31.0.6 ; python_version >= "3.9" and python_version < "3.10"
|
||||
types-setuptools==75.6.0.20241126 ; python_version >= "3.9" and python_version < "3.10"
|
||||
types-urllib3==1.26.25.14 ; python_version >= "3.9" and python_version < "3.10"
|
||||
typing-extensions==4.12.2 ; python_version >= "3.9" and python_version < "3.10"
|
||||
uritemplate==3.0.1 ; python_version >= "3.9" and python_version < "3.10"
|
||||
urllib3==1.24.2 ; python_version >= "3.9" and python_version < "3.10"
|
||||
virtualenv==20.28.0 ; python_version >= "3.9" and python_version < "3.10"
|
||||
wheel==0.45.1 ; python_version >= "3.9" and python_version < "3.10"
|
||||
zipp==3.21.0 ; python_version >= "3.9" and python_version < "3.10"
|
||||
|
||||
@@ -6,7 +6,7 @@ authors = ["Certbot Project"]
|
||||
license = "Apache License 2.0"
|
||||
|
||||
[tool.poetry.dependencies]
|
||||
python = "^3.8"
|
||||
python = "^3.9"
|
||||
|
||||
# workaround for: https://github.com/python-poetry/poetry-plugin-export/issues/183
|
||||
urllib3 = ">=1.25.4,<1.27"
|
||||
|
||||
@@ -10,7 +10,7 @@ license = "Apache License 2.0"
|
||||
[tool.poetry.dependencies]
|
||||
# The Python version here should be kept in sync with the one used in our
|
||||
# oldest tests in tox.ini.
|
||||
python = "<3.9 >= 3.8"
|
||||
python = "<3.10 >= 3.9"
|
||||
|
||||
# Local dependencies
|
||||
# Any local packages that have dependencies on other local packages must be
|
||||
@@ -55,7 +55,7 @@ configobj = "5.0.6"
|
||||
cryptography = "3.2.1"
|
||||
distro = "1.0.1"
|
||||
dns-lexicon = "3.15.1"
|
||||
dnspython = "1.15.0"
|
||||
dnspython = "2.6.1"
|
||||
funcsigs = "0.4"
|
||||
google-api-python-client = "1.6.5"
|
||||
google-auth = "2.16.0"
|
||||
|
||||
+178
-181
@@ -5,184 +5,181 @@
|
||||
# requirements.txt so that is scanned by GitHub. See
|
||||
# https://docs.github.com/en/github/visualizing-repository-data-with-graphs/about-the-dependency-graph#supported-package-ecosystems
|
||||
# for more info.
|
||||
alabaster==0.7.13 ; python_version >= "3.8" and python_version < "4.0"
|
||||
apacheconfig==0.3.2 ; python_version >= "3.8" and python_version < "4.0"
|
||||
appnope==0.1.4 ; python_version >= "3.8" and python_version < "4.0" and sys_platform == "darwin"
|
||||
astroid==3.0.3 ; python_version >= "3.8" and python_version < "4.0"
|
||||
asttokens==2.4.1 ; python_version >= "3.8" and python_version < "4.0"
|
||||
attrs==24.2.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
azure-core==1.32.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
azure-devops==7.1.0b4 ; python_version >= "3.8" and python_version < "4.0"
|
||||
babel==2.16.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
backcall==0.2.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
bcrypt==4.2.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
beautifulsoup4==4.12.3 ; python_version >= "3.8" and python_version < "4.0"
|
||||
boto3==1.35.53 ; python_version >= "3.8" and python_version < "4.0"
|
||||
botocore==1.35.53 ; python_version >= "3.8" and python_version < "4.0"
|
||||
build==1.2.2.post1 ; python_version >= "3.8" and python_version < "4.0"
|
||||
cachecontrol==0.14.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
cachetools==5.5.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
certifi==2024.8.30 ; python_version >= "3.8" and python_version < "4.0"
|
||||
cffi==1.17.1 ; python_version >= "3.8" and python_version < "4.0"
|
||||
chardet==5.2.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
charset-normalizer==3.4.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
cleo==2.1.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
cloudflare==2.19.4 ; python_version >= "3.8" and python_version < "4.0"
|
||||
colorama==0.4.6 ; python_version >= "3.8" and python_version < "4.0"
|
||||
configargparse==1.7 ; python_version >= "3.8" and python_version < "4.0"
|
||||
configobj==5.0.9 ; python_version >= "3.8" and python_version < "4.0"
|
||||
coverage==7.6.1 ; python_version >= "3.8" and python_version < "4.0"
|
||||
crashtest==0.4.1 ; python_version >= "3.8" and python_version < "4.0"
|
||||
cryptography==43.0.3 ; python_version >= "3.8" and python_version < "4.0"
|
||||
cython==0.29.37 ; python_version >= "3.8" and python_version < "4.0"
|
||||
decorator==5.1.1 ; python_version >= "3.8" and python_version < "4.0"
|
||||
deprecated==1.2.14 ; python_version >= "3.8" and python_version < "4.0"
|
||||
dill==0.3.9 ; python_version >= "3.8" and python_version < "4.0"
|
||||
distlib==0.3.9 ; python_version >= "3.8" and python_version < "4.0"
|
||||
distro==1.9.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
dns-lexicon==3.18.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
dnspython==2.6.1 ; python_version >= "3.8" and python_version < "4.0"
|
||||
docutils==0.20.1 ; python_version >= "3.8" and python_version < "4.0"
|
||||
dulwich==0.21.7 ; python_version >= "3.8" and python_version < "4.0"
|
||||
exceptiongroup==1.2.2 ; python_version >= "3.8" and python_version < "3.11"
|
||||
execnet==2.1.1 ; python_version >= "3.8" and python_version < "4.0"
|
||||
executing==2.1.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
fabric==3.2.2 ; python_version >= "3.8" and python_version < "4.0"
|
||||
fastjsonschema==2.20.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
filelock==3.16.1 ; python_version >= "3.8" and python_version < "4.0"
|
||||
google-api-core==2.22.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
google-api-python-client==2.151.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
google-auth-httplib2==0.2.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
google-auth==2.35.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
googleapis-common-protos==1.65.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
httplib2==0.22.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
idna==3.10 ; python_version >= "3.8" and python_version < "4.0"
|
||||
imagesize==1.4.1 ; python_version >= "3.8" and python_version < "4.0"
|
||||
importlib-metadata==8.5.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
importlib-resources==6.4.5 ; python_version >= "3.8" and python_version < "4.0"
|
||||
iniconfig==2.0.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
installer==0.7.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
invoke==2.2.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
ipdb==0.13.13 ; python_version >= "3.8" and python_version < "4.0"
|
||||
ipython==8.12.3 ; python_version >= "3.8" and python_version < "4.0"
|
||||
isodate==0.7.2 ; python_version >= "3.8" and python_version < "4.0"
|
||||
isort==5.13.2 ; python_version >= "3.8" and python_version < "4.0"
|
||||
jaraco-classes==3.4.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
jedi==0.19.1 ; python_version >= "3.8" and python_version < "4.0"
|
||||
jeepney==0.8.0 ; python_version >= "3.8" and python_version < "4.0" and sys_platform == "linux"
|
||||
jinja2==3.1.4 ; python_version >= "3.8" and python_version < "4.0"
|
||||
jmespath==1.0.1 ; python_version >= "3.8" and python_version < "4.0"
|
||||
josepy==1.14.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
jsonlines==4.0.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
jsonpickle==3.3.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
keyring==24.3.1 ; python_version >= "3.8" and python_version < "4.0"
|
||||
markdown-it-py==3.0.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
markupsafe==2.1.5 ; python_version >= "3.8" and python_version < "4.0"
|
||||
matplotlib-inline==0.1.7 ; python_version >= "3.8" and python_version < "4.0"
|
||||
mccabe==0.7.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
mdurl==0.1.2 ; python_version >= "3.8" and python_version < "4.0"
|
||||
more-itertools==10.5.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
msgpack==1.1.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
msrest==0.7.1 ; python_version >= "3.8" and python_version < "4.0"
|
||||
mypy-extensions==1.0.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
mypy==1.9.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
nh3==0.2.18 ; python_version >= "3.8" and python_version < "4.0"
|
||||
oauthlib==3.2.2 ; python_version >= "3.8" and python_version < "4.0"
|
||||
packaging==24.1 ; python_version >= "3.8" and python_version < "4.0"
|
||||
paramiko==3.5.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
parsedatetime==2.6 ; python_version >= "3.8" and python_version < "4.0"
|
||||
parso==0.8.4 ; python_version >= "3.8" and python_version < "4.0"
|
||||
pexpect==4.9.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
pickleshare==0.7.5 ; python_version >= "3.8" and python_version < "4.0"
|
||||
pip==24.3.1 ; python_version >= "3.8" and python_version < "4.0"
|
||||
pkginfo==1.10.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
platformdirs==4.3.6 ; python_version >= "3.8" and python_version < "4.0"
|
||||
pluggy==1.5.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
ply==3.11 ; python_version >= "3.8" and python_version < "4.0"
|
||||
poetry-core==1.9.1 ; python_version >= "3.8" and python_version < "4.0"
|
||||
poetry-plugin-export==1.8.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
poetry==1.8.4 ; python_version >= "3.8" and python_version < "4.0"
|
||||
prompt-toolkit==3.0.48 ; python_version >= "3.8" and python_version < "4.0"
|
||||
proto-plus==1.25.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
protobuf==5.28.3 ; python_version >= "3.8" and python_version < "4.0"
|
||||
ptyprocess==0.7.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
pure-eval==0.2.3 ; python_version >= "3.8" and python_version < "4.0"
|
||||
pyasn1-modules==0.4.1 ; python_version >= "3.8" and python_version < "4.0"
|
||||
pyasn1==0.6.1 ; python_version >= "3.8" and python_version < "4.0"
|
||||
pycparser==2.22 ; python_version >= "3.8" and python_version < "4.0"
|
||||
pygments==2.18.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
pylint==3.0.2 ; python_version >= "3.8" and python_version < "4.0"
|
||||
pynacl==1.5.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
pynsist==2.7 ; python_version >= "3.8" and python_version < "4.0"
|
||||
pyopenssl==24.2.1 ; python_version >= "3.8" and python_version < "4.0"
|
||||
pyotp==2.9.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
pyparsing==3.1.4 ; python_version >= "3.8" and python_version < "4.0"
|
||||
pyproject-api==1.8.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
pyproject-hooks==1.2.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
pyrfc3339==1.1 ; python_version >= "3.8" and python_version < "4.0"
|
||||
pytest-cov==5.0.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
pytest-xdist==3.6.1 ; python_version >= "3.8" and python_version < "4.0"
|
||||
pytest==8.3.3 ; python_version >= "3.8" and python_version < "4.0"
|
||||
python-augeas==1.1.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
python-dateutil==2.9.0.post0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
python-digitalocean==1.17.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
pytz==2024.2 ; python_version >= "3.8" and python_version < "4.0"
|
||||
pywin32-ctypes==0.2.3 ; python_version >= "3.8" and python_version < "4.0" and sys_platform == "win32"
|
||||
pywin32==308 ; python_version >= "3.8" and python_version < "4.0" and sys_platform == "win32"
|
||||
pyyaml==6.0.2 ; python_version >= "3.8" and python_version < "4.0"
|
||||
rapidfuzz==3.9.7 ; python_version >= "3.8" and python_version < "4.0"
|
||||
readme-renderer==43.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
requests-download==0.1.2 ; python_version >= "3.8" and python_version < "4.0"
|
||||
requests-file==2.1.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
requests-oauthlib==2.0.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
requests-toolbelt==1.0.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
requests==2.32.3 ; python_version >= "3.8" and python_version < "4.0"
|
||||
rfc3986==2.0.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
rich==13.9.3 ; python_version >= "3.8" and python_version < "4.0"
|
||||
rsa==4.9 ; python_version >= "3.8" and python_version < "4"
|
||||
s3transfer==0.10.3 ; python_version >= "3.8" and python_version < "4.0"
|
||||
secretstorage==3.3.3 ; python_version >= "3.8" and python_version < "4.0" and sys_platform == "linux"
|
||||
semantic-version==2.10.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
setuptools-rust==1.10.2 ; python_version >= "3.8" and python_version < "4.0"
|
||||
setuptools==75.3.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
shellingham==1.5.4 ; python_version >= "3.8" and python_version < "4.0"
|
||||
six==1.16.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
snowballstemmer==2.2.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
soupsieve==2.6 ; python_version >= "3.8" and python_version < "4.0"
|
||||
sphinx-rtd-theme==3.0.1 ; python_version >= "3.8" and python_version < "4.0"
|
||||
sphinx==7.1.2 ; python_version >= "3.8" and python_version < "4.0"
|
||||
sphinxcontrib-applehelp==1.0.4 ; python_version >= "3.8" and python_version < "4.0"
|
||||
sphinxcontrib-devhelp==1.0.2 ; python_version >= "3.8" and python_version < "4.0"
|
||||
sphinxcontrib-htmlhelp==2.0.1 ; python_version >= "3.8" and python_version < "4.0"
|
||||
sphinxcontrib-jquery==4.1 ; python_version >= "3.8" and python_version < "4.0"
|
||||
sphinxcontrib-jsmath==1.0.1 ; python_version >= "3.8" and python_version < "4.0"
|
||||
sphinxcontrib-qthelp==1.0.3 ; python_version >= "3.8" and python_version < "4.0"
|
||||
sphinxcontrib-serializinghtml==1.1.5 ; python_version >= "3.8" and python_version < "4.0"
|
||||
stack-data==0.6.3 ; python_version >= "3.8" and python_version < "4.0"
|
||||
tldextract==5.1.2 ; python_version >= "3.8" and python_version < "4.0"
|
||||
tomli==2.0.2 ; python_version >= "3.8" and python_full_version <= "3.11.0a6"
|
||||
tomlkit==0.13.2 ; python_version >= "3.8" and python_version < "4.0"
|
||||
tox==4.23.2 ; python_version >= "3.8" and python_version < "4.0"
|
||||
traitlets==5.14.3 ; python_version >= "3.8" and python_version < "4.0"
|
||||
trove-classifiers==2024.10.21.16 ; python_version >= "3.8" and python_version < "4.0"
|
||||
twine==5.1.1 ; python_version >= "3.8" and python_version < "4.0"
|
||||
types-cffi==1.16.0.20240331 ; python_version >= "3.8" and python_version < "4.0"
|
||||
types-httplib2==0.22.0.20240310 ; python_version >= "3.8" and python_version < "4.0"
|
||||
types-pyopenssl==24.1.0.20240722 ; python_version >= "3.8" and python_version < "4.0"
|
||||
types-pyrfc3339==1.1.1.5 ; python_version >= "3.8" and python_version < "4.0"
|
||||
types-python-dateutil==2.9.0.20241003 ; python_version >= "3.8" and python_version < "4.0"
|
||||
types-pytz==2024.2.0.20241003 ; python_version >= "3.8" and python_version < "4.0"
|
||||
types-pywin32==308.0.0.20241029 ; python_version >= "3.8" and python_version < "4.0"
|
||||
types-requests==2.31.0.6 ; python_version >= "3.8" and python_version < "4.0"
|
||||
types-setuptools==75.2.0.20241025 ; python_version >= "3.8" and python_version < "4.0"
|
||||
types-urllib3==1.26.25.14 ; python_version >= "3.8" and python_version < "4.0"
|
||||
typing-extensions==4.12.2 ; python_version >= "3.8" and python_version < "4.0"
|
||||
uritemplate==4.1.1 ; python_version >= "3.8" and python_version < "4.0"
|
||||
urllib3==1.26.20 ; python_version >= "3.8" and python_version < "4.0"
|
||||
virtualenv==20.27.1 ; python_version >= "3.8" and python_version < "4.0"
|
||||
wcwidth==0.2.13 ; python_version >= "3.8" and python_version < "4.0"
|
||||
wheel==0.44.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
wrapt==1.16.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
xattr==1.1.0 ; python_version >= "3.8" and python_version < "4.0" and sys_platform == "darwin"
|
||||
yarg==0.1.10 ; python_version >= "3.8" and python_version < "4.0"
|
||||
zipp==3.20.2 ; python_version >= "3.8" and python_version < "4.0"
|
||||
alabaster==0.7.16 ; python_version >= "3.9" and python_version < "4.0"
|
||||
apacheconfig==0.3.2 ; python_version >= "3.9" and python_version < "4.0"
|
||||
astroid==3.0.3 ; python_version >= "3.9" and python_version < "4.0"
|
||||
asttokens==2.4.1 ; python_version >= "3.9" and python_version < "4.0"
|
||||
attrs==24.2.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
azure-core==1.32.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
azure-devops==7.1.0b4 ; python_version >= "3.9" and python_version < "4.0"
|
||||
babel==2.16.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
bcrypt==4.2.1 ; python_version >= "3.9" and python_version < "4.0"
|
||||
beautifulsoup4==4.12.3 ; python_version >= "3.9" and python_version < "4.0"
|
||||
boto3==1.35.69 ; python_version >= "3.9" and python_version < "4.0"
|
||||
botocore==1.35.69 ; python_version >= "3.9" and python_version < "4.0"
|
||||
build==1.2.2.post1 ; python_version >= "3.9" and python_version < "4.0"
|
||||
cachecontrol==0.14.1 ; python_version >= "3.9" and python_version < "4.0"
|
||||
cachetools==5.5.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
certifi==2024.8.30 ; python_version >= "3.9" and python_version < "4.0"
|
||||
cffi==1.17.1 ; python_version >= "3.9" and python_version < "4.0"
|
||||
chardet==5.2.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
charset-normalizer==3.4.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
cleo==2.1.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
cloudflare==2.19.4 ; python_version >= "3.9" and python_version < "4.0"
|
||||
colorama==0.4.6 ; python_version >= "3.9" and python_version < "4.0"
|
||||
configargparse==1.7 ; python_version >= "3.9" and python_version < "4.0"
|
||||
configobj==5.0.9 ; python_version >= "3.9" and python_version < "4.0"
|
||||
coverage==7.6.8 ; python_version >= "3.9" and python_version < "4.0"
|
||||
crashtest==0.4.1 ; python_version >= "3.9" and python_version < "4.0"
|
||||
cryptography==43.0.3 ; python_version >= "3.9" and python_version < "4.0"
|
||||
cython==0.29.37 ; python_version >= "3.9" and python_version < "4.0"
|
||||
decorator==5.1.1 ; python_version >= "3.9" and python_version < "4.0"
|
||||
deprecated==1.2.15 ; python_version >= "3.9" and python_version < "4.0"
|
||||
dill==0.3.9 ; python_version >= "3.9" and python_version < "4.0"
|
||||
distlib==0.3.9 ; python_version >= "3.9" and python_version < "4.0"
|
||||
distro==1.9.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
dns-lexicon==3.18.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
dnspython==2.7.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
docutils==0.21.2 ; python_version >= "3.9" and python_version < "4.0"
|
||||
dulwich==0.21.7 ; python_version >= "3.9" and python_version < "4.0"
|
||||
exceptiongroup==1.2.2 ; python_version >= "3.9" and python_version < "3.11"
|
||||
execnet==2.1.1 ; python_version >= "3.9" and python_version < "4.0"
|
||||
executing==2.1.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
fabric==3.2.2 ; python_version >= "3.9" and python_version < "4.0"
|
||||
fastjsonschema==2.20.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
filelock==3.16.1 ; python_version >= "3.9" and python_version < "4.0"
|
||||
google-api-core==2.23.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
google-api-python-client==2.154.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
google-auth-httplib2==0.2.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
google-auth==2.36.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
googleapis-common-protos==1.66.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
httplib2==0.22.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
idna==3.10 ; python_version >= "3.9" and python_version < "4.0"
|
||||
imagesize==1.4.1 ; python_version >= "3.9" and python_version < "4.0"
|
||||
importlib-metadata==8.5.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
importlib-resources==6.4.5 ; python_version >= "3.9" and python_version < "4.0"
|
||||
iniconfig==2.0.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
installer==0.7.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
invoke==2.2.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
ipdb==0.13.13 ; python_version >= "3.9" and python_version < "4.0"
|
||||
ipython==8.18.1 ; python_version >= "3.9" and python_version < "4.0"
|
||||
isodate==0.7.2 ; python_version >= "3.9" and python_version < "4.0"
|
||||
isort==5.13.2 ; python_version >= "3.9" and python_version < "4.0"
|
||||
jaraco-classes==3.4.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
jedi==0.19.2 ; python_version >= "3.9" and python_version < "4.0"
|
||||
jeepney==0.8.0 ; python_version >= "3.9" and python_version < "4.0" and sys_platform == "linux"
|
||||
jinja2==3.1.4 ; python_version >= "3.9" and python_version < "4.0"
|
||||
jmespath==1.0.1 ; python_version >= "3.9" and python_version < "4.0"
|
||||
josepy==1.14.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
jsonlines==4.0.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
jsonpickle==4.0.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
keyring==24.3.1 ; python_version >= "3.9" and python_version < "4.0"
|
||||
markdown-it-py==3.0.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
markupsafe==3.0.2 ; python_version >= "3.9" and python_version < "4.0"
|
||||
matplotlib-inline==0.1.7 ; python_version >= "3.9" and python_version < "4.0"
|
||||
mccabe==0.7.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
mdurl==0.1.2 ; python_version >= "3.9" and python_version < "4.0"
|
||||
more-itertools==10.5.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
msgpack==1.1.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
msrest==0.7.1 ; python_version >= "3.9" and python_version < "4.0"
|
||||
mypy-extensions==1.0.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
mypy==1.9.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
nh3==0.2.18 ; python_version >= "3.9" and python_version < "4.0"
|
||||
oauthlib==3.2.2 ; python_version >= "3.9" and python_version < "4.0"
|
||||
packaging==24.2 ; python_version >= "3.9" and python_version < "4.0"
|
||||
paramiko==3.5.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
parsedatetime==2.6 ; python_version >= "3.9" and python_version < "4.0"
|
||||
parso==0.8.4 ; python_version >= "3.9" and python_version < "4.0"
|
||||
pexpect==4.9.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
pip==24.3.1 ; python_version >= "3.9" and python_version < "4.0"
|
||||
pkginfo==1.10.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
platformdirs==4.3.6 ; python_version >= "3.9" and python_version < "4.0"
|
||||
pluggy==1.5.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
ply==3.11 ; python_version >= "3.9" and python_version < "4.0"
|
||||
poetry-core==1.9.1 ; python_version >= "3.9" and python_version < "4.0"
|
||||
poetry-plugin-export==1.8.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
poetry==1.8.4 ; python_version >= "3.9" and python_version < "4.0"
|
||||
prompt-toolkit==3.0.48 ; python_version >= "3.9" and python_version < "4.0"
|
||||
proto-plus==1.25.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
protobuf==5.28.3 ; python_version >= "3.9" and python_version < "4.0"
|
||||
ptyprocess==0.7.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
pure-eval==0.2.3 ; python_version >= "3.9" and python_version < "4.0"
|
||||
pyasn1-modules==0.4.1 ; python_version >= "3.9" and python_version < "4.0"
|
||||
pyasn1==0.6.1 ; python_version >= "3.9" and python_version < "4.0"
|
||||
pycparser==2.22 ; python_version >= "3.9" and python_version < "4.0"
|
||||
pygments==2.18.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
pylint==3.0.2 ; python_version >= "3.9" and python_version < "4.0"
|
||||
pynacl==1.5.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
pynsist==2.7 ; python_version >= "3.9" and python_version < "4.0"
|
||||
pyopenssl==24.2.1 ; python_version >= "3.9" and python_version < "4.0"
|
||||
pyotp==2.9.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
pyparsing==3.2.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
pyproject-api==1.8.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
pyproject-hooks==1.2.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
pyrfc3339==2.0.1 ; python_version >= "3.9" and python_version < "4.0"
|
||||
pytest-cov==6.0.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
pytest-xdist==3.6.1 ; python_version >= "3.9" and python_version < "4.0"
|
||||
pytest==8.3.3 ; python_version >= "3.9" and python_version < "4.0"
|
||||
python-augeas==1.1.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
python-dateutil==2.9.0.post0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
python-digitalocean==1.17.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
pytz==2024.2 ; python_version >= "3.9" and python_version < "4.0"
|
||||
pywin32-ctypes==0.2.3 ; python_version >= "3.9" and python_version < "4.0" and sys_platform == "win32"
|
||||
pywin32==308 ; python_version >= "3.9" and python_version < "4.0" and sys_platform == "win32"
|
||||
pyyaml==6.0.2 ; python_version >= "3.9" and python_version < "4.0"
|
||||
rapidfuzz==3.10.1 ; python_version >= "3.9" and python_version < "4.0"
|
||||
readme-renderer==44.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
requests-download==0.1.2 ; python_version >= "3.9" and python_version < "4.0"
|
||||
requests-file==2.1.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
requests-oauthlib==2.0.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
requests-toolbelt==1.0.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
requests==2.32.3 ; python_version >= "3.9" and python_version < "4.0"
|
||||
rfc3986==2.0.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
rich==13.9.4 ; python_version >= "3.9" and python_version < "4.0"
|
||||
rsa==4.9 ; python_version >= "3.9" and python_version < "4"
|
||||
s3transfer==0.10.4 ; python_version >= "3.9" and python_version < "4.0"
|
||||
secretstorage==3.3.3 ; python_version >= "3.9" and python_version < "4.0" and sys_platform == "linux"
|
||||
semantic-version==2.10.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
setuptools-rust==1.10.2 ; python_version >= "3.9" and python_version < "4.0"
|
||||
setuptools==75.6.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
shellingham==1.5.4 ; python_version >= "3.9" and python_version < "4.0"
|
||||
six==1.16.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
snowballstemmer==2.2.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
soupsieve==2.6 ; python_version >= "3.9" and python_version < "4.0"
|
||||
sphinx-rtd-theme==3.0.2 ; python_version >= "3.9" and python_version < "4.0"
|
||||
sphinx==7.4.7 ; python_version >= "3.9" and python_version < "4.0"
|
||||
sphinxcontrib-applehelp==2.0.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
sphinxcontrib-devhelp==2.0.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
sphinxcontrib-htmlhelp==2.1.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
sphinxcontrib-jquery==4.1 ; python_version >= "3.9" and python_version < "4.0"
|
||||
sphinxcontrib-jsmath==1.0.1 ; python_version >= "3.9" and python_version < "4.0"
|
||||
sphinxcontrib-qthelp==2.0.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
sphinxcontrib-serializinghtml==2.0.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
stack-data==0.6.3 ; python_version >= "3.9" and python_version < "4.0"
|
||||
tldextract==5.1.3 ; python_version >= "3.9" and python_version < "4.0"
|
||||
tomli==2.1.0 ; python_version >= "3.9" and python_full_version <= "3.11.0a6"
|
||||
tomlkit==0.13.2 ; python_version >= "3.9" and python_version < "4.0"
|
||||
tox==4.23.2 ; python_version >= "3.9" and python_version < "4.0"
|
||||
traitlets==5.14.3 ; python_version >= "3.9" and python_version < "4.0"
|
||||
trove-classifiers==2024.10.21.16 ; python_version >= "3.9" and python_version < "4.0"
|
||||
twine==5.1.1 ; python_version >= "3.9" and python_version < "4.0"
|
||||
types-cffi==1.16.0.20240331 ; python_version >= "3.9" and python_version < "4.0"
|
||||
types-httplib2==0.22.0.20240310 ; python_version >= "3.9" and python_version < "4.0"
|
||||
types-pyopenssl==24.1.0.20240722 ; python_version >= "3.9" and python_version < "4.0"
|
||||
types-pyrfc3339==2.0.1.20241107 ; python_version >= "3.9" and python_version < "4.0"
|
||||
types-python-dateutil==2.9.0.20241003 ; python_version >= "3.9" and python_version < "4.0"
|
||||
types-pytz==2024.2.0.20241003 ; python_version >= "3.9" and python_version < "4.0"
|
||||
types-pywin32==308.0.0.20241121 ; python_version >= "3.9" and python_version < "4.0"
|
||||
types-requests==2.31.0.6 ; python_version >= "3.9" and python_version < "4.0"
|
||||
types-setuptools==75.5.0.20241122 ; python_version >= "3.9" and python_version < "4.0"
|
||||
types-urllib3==1.26.25.14 ; python_version >= "3.9" and python_version < "4.0"
|
||||
typing-extensions==4.12.2 ; python_version >= "3.9" and python_version < "4.0"
|
||||
uritemplate==4.1.1 ; python_version >= "3.9" and python_version < "4.0"
|
||||
urllib3==1.26.20 ; python_version >= "3.9" and python_version < "4.0"
|
||||
virtualenv==20.27.1 ; python_version >= "3.9" and python_version < "4.0"
|
||||
wcwidth==0.2.13 ; python_version >= "3.9" and python_version < "4.0"
|
||||
wheel==0.45.1 ; python_version >= "3.9" and python_version < "4.0"
|
||||
wrapt==1.17.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
xattr==1.1.0 ; python_version >= "3.9" and python_version < "4.0" and sys_platform == "darwin"
|
||||
yarg==0.1.10 ; python_version >= "3.9" and python_version < "4.0"
|
||||
zipp==3.21.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
|
||||
+1
-1
@@ -117,7 +117,7 @@ def _check_version(version_str):
|
||||
|
||||
version = (int(search.group(1)), int(search.group(2)))
|
||||
|
||||
if version >= (3, 8):
|
||||
if version >= (3, 9):
|
||||
return True
|
||||
|
||||
print('Incompatible python version for Certbot found: {0}'.format(version_str))
|
||||
|
||||
@@ -63,7 +63,7 @@ commands = {[testenv:py]commands}
|
||||
#
|
||||
# This version should be kept in sync with the one declared in
|
||||
# tools/pinning/oldest/pyproject.toml.
|
||||
basepython = python3.8
|
||||
basepython = python3.9
|
||||
setenv = CERTBOT_OLDEST=1
|
||||
commands = {[testenv:py]commands}
|
||||
|
||||
|
||||
@@ -11,14 +11,13 @@ setup(
|
||||
author="Certbot Project",
|
||||
author_email='certbot-dev@eff.org',
|
||||
license='Apache License 2.0',
|
||||
python_requires='>=3.8',
|
||||
python_requires='>=3.9',
|
||||
classifiers=[
|
||||
'Development Status :: 4 - Beta',
|
||||
'Intended Audience :: Developers',
|
||||
'License :: OSI Approved :: Apache Software License',
|
||||
'Programming Language :: Python',
|
||||
'Programming Language :: Python :: 3',
|
||||
'Programming Language :: Python :: 3.8',
|
||||
'Programming Language :: Python :: 3.9',
|
||||
'Programming Language :: Python :: 3.10',
|
||||
'Programming Language :: Python :: 3.11',
|
||||
|
||||
Reference in New Issue
Block a user