diff --git a/.github/workflows/test_and_build.yaml b/.github/workflows/test_and_build.yaml index f7cb70d..f5e8ba7 100644 --- a/.github/workflows/test_and_build.yaml +++ b/.github/workflows/test_and_build.yaml @@ -8,7 +8,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: ["3.10", "3.11", "3.12", "3.13", "3.14", "3.15"] + python-version: ["3.11", "3.12", "3.13", "3.14", "3.15"] steps: - uses: actions/checkout@v7 diff --git a/CHANGELOG.md b/CHANGELOG.md index 090cbfd..4cba39e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,7 @@ In Development -------------- -* Python 3.8 and 3.9 are no longer supported. +* Python 3.8, 3.9 and 3.10 are no longer supported. * The `original` field of the returned validated email object incorrectly un-escaped the local part of the email address. Now it returns the original address, without any display name, as passed to validate_email. * add support python3.15 diff --git a/README.md b/README.md index 5739337..99118f9 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ email-validator: Validate Email Addresses ========================================= A robust email address syntax and deliverability validation library for -Python 3.10+ by [Joshua Tauberer](https://joshdata.me). +Python 3.11+ by [Joshua Tauberer](https://joshdata.me). This library validates that a string is of the form `name@example.com` and optionally checks that the domain name is set up to receive email. diff --git a/setup.cfg b/setup.cfg index ad970d4..f1353b0 100644 --- a/setup.cfg +++ b/setup.cfg @@ -14,7 +14,6 @@ classifiers = Intended Audience :: Developers License :: OSI Approved :: The Unlicense (Unlicense) Programming Language :: Python :: 3 - Programming Language :: Python :: 3.10 Programming Language :: Python :: 3.11 Programming Language :: Python :: 3.12 Programming Language :: Python :: 3.13 @@ -26,9 +25,9 @@ keywords = email address validator [options] packages = find: install_requires = - dnspython>=2.0.0 # optional if deliverability check isn't needed - idna>=2.0.0 -python_requires = >=3.10 + dnspython>=2.9.0 # optional if deliverability check isn't needed + idna>=3.0.0 +python_requires = >=3.11 [options.package_data] * = py.typed diff --git a/test_requirements.txt b/test_requirements.txt index 15c2f57..bea5d32 100644 --- a/test_requirements.txt +++ b/test_requirements.txt @@ -1,5 +1,5 @@ # This file was generated by running: -# sudo docker run --rm -it --network=host python:3.10-slim /bin/bash +# sudo docker run --rm -it --network=host python:3.11-slim /bin/bash # pip install dnspython idna # from setup.cfg # pip install pytest pytest-cov coverage flake8 mypy # pip freeze @@ -7,23 +7,23 @@ # the earliest Python version we support, and some exception # messages may depend on package versions, so we pin versions # for reproducible testing.) -coverage==7.13.5 -dnspython==2.8.0 +coverage==7.16.2 +dnspython==2.9.0 exceptiongroup==1.3.1 -flake8==7.3.0 -idna==3.15 -iniconfig==2.3.0 -librt==0.9.0 +flake8==7.4.1 +idna==3.20 +iniconfig==2.3.1 +librt==0.16.0 mccabe==0.7.0 -mypy==1.20.1 +mypy==2.4.0 mypy_extensions==1.1.0 -packaging==26.0 -pathspec==1.0.4 -pluggy==1.6.0 -pycodestyle==2.14.0 -pyflakes==3.4.0 -Pygments==2.20.0 -pytest==9.0.3 +packaging==26.3 +pathspec==1.1.1 +pluggy==1.7.0 +pycodestyle==2.15.0 +pyflakes==4.0.3 +Pygments==2.21.0 +pytest==9.1.1 pytest-cov==7.1.0 -tomli==2.4.1 -typing_extensions==4.15.0 +tomli==2.5.0 +typing_extensions==4.16.0 diff --git a/tests/mocked_dns_response.py b/tests/mocked_dns_response.py index 43508a3..a5ff82b 100644 --- a/tests/mocked_dns_response.py +++ b/tests/mocked_dns_response.py @@ -24,7 +24,7 @@ class MockedDnsResponseData: DATA_PATH = os.path.dirname(__file__) + "/mocked-dns-answers.json" - INSTANCE = None + INSTANCE: Optional["MockedDnsResponseData"] = None @staticmethod def create_resolver() -> dns.resolver.Resolver: