Skip to content
Merged
2 changes: 1 addition & 1 deletion packages/google-auth/CONTRIBUTING.rst
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ A few notes on making changes to ``google-auth-library-python``.
using ``nox -s docs``.

- The change must work fully on the following CPython versions:
3.8, 3.9, 3.10, 3.11, 3.12, 3.13 and 3.14 across macOS, Linux, and Windows.
3.10, 3.11, 3.12, 3.13 and 3.14 across macOS, Linux, and Windows.

- The codebase *must* have 100% test statement coverage after each commit.
You can test coverage via ``nox -e cover``.
Expand Down
13 changes: 1 addition & 12 deletions packages/google-auth/README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -35,18 +35,7 @@ Note that the extras pyopenssl and enterprise_cert should not be used together b

Supported Python Versions
^^^^^^^^^^^^^^^^^^^^^^^^^
Python >= 3.8

**NOTE**:
Python 3.8 and Python 3.9 were marked as `unsupported`_ by the python community in
October 2024 and October 2025, respectively.
We recommend that all developers upgrade to Python 3.10 and newer as soon as
they can. Support for end-of-life Python runtimes will be removed from this
library in future updates.
Previous releases that support end-of-life Python versions will continue to be available
for download, but future releases will only target supported versions.

.. _unsupported: https://devguide.python.org/versions/#unsupported-versions
Python >= 3.10

Unsupported Python Versions
^^^^^^^^^^^^^^^^^^^^^^^^^^^
Expand Down
23 changes: 0 additions & 23 deletions packages/google-auth/google/auth/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,6 @@
"""Google Auth Library for Python."""

import logging
import sys
import warnings

from google.auth import version as google_auth_version
from google.auth._default import (
Expand All @@ -32,26 +30,5 @@
__all__ = ["default", "load_credentials_from_file", "load_credentials_from_dict"]


class Python37DeprecationWarning(DeprecationWarning): # pragma: NO COVER
"""
Deprecation warning raised when Python 3.7 runtime is detected.
Python 3.7 support will be dropped after January 1, 2024.
"""

pass


# Raise warnings for deprecated versions
eol_message = (
"You are using a Python version {} past its end of life. Google will update "
"google-auth with critical bug fixes on a best-effort basis, but not "
"with any other fixes or features. Please upgrade your Python version, "
"and then update google-auth."
)
if sys.version_info.major == 3 and sys.version_info.minor == 8: # pragma: NO COVER
warnings.warn(eol_message.format("3.8"), FutureWarning)
elif sys.version_info.major == 3 and sys.version_info.minor == 9: # pragma: NO COVER
warnings.warn(eol_message.format("3.9"), FutureWarning)

# Set default logging handler to avoid "No handler found" warnings.
logging.getLogger(__name__).addHandler(logging.NullHandler())
25 changes: 0 additions & 25 deletions packages/google-auth/google/oauth2/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,28 +13,3 @@
# limitations under the License.

"""Google OAuth 2.0 Library for Python."""

import sys
import warnings


class Python37DeprecationWarning(DeprecationWarning): # pragma: NO COVER
"""
Deprecation warning raised when Python 3.7 runtime is detected.
Python 3.7 support will be dropped after January 1, 2024.
"""

pass


# Raise warnings for deprecated versions
eol_message = (
"You are using a Python version {} past its end of life. Google will update "
"google-auth with critical bug fixes on a best-effort basis, but not "
"with any other fixes or features. Please upgrade your Python version, "
"and then update google-auth."
)
if sys.version_info.major == 3 and sys.version_info.minor == 8: # pragma: NO COVER
warnings.warn(eol_message.format("3.8"), FutureWarning)
elif sys.version_info.major == 3 and sys.version_info.minor == 9: # pragma: NO COVER
warnings.warn(eol_message.format("3.9"), FutureWarning)
5 changes: 0 additions & 5 deletions packages/google-auth/noxfile.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,16 +33,13 @@

DEFAULT_PYTHON_VERSION = "3.14"
UNIT_TEST_PYTHON_VERSIONS = [
"3.8",
"3.9",
"3.10",
"3.11",
"3.12",
"3.13",
"3.14",
]
ALL_PYTHON = UNIT_TEST_PYTHON_VERSIONS.copy()
ALL_PYTHON.extend(["3.7"])

# Error if a python version is missing
nox.options.error_on_missing_interpreters = True
Expand Down Expand Up @@ -119,8 +116,6 @@ def mypy(session):
def unit(session, install_deprecated_extras):
# Install all test dependencies, then install this package in-place.

if session.python in ("3.7",):
session.skip("Python 3.7 is no longer supported")
min_py, max_py = UNIT_TEST_PYTHON_VERSIONS[0], UNIT_TEST_PYTHON_VERSIONS[-1]
if not install_deprecated_extras and session.python not in (min_py, max_py):
# only run double tests on first and last supported versions
Expand Down
6 changes: 2 additions & 4 deletions packages/google-auth/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@

requests_extra_require = ["requests >= 2.20.0, < 3.0.0"]

aiohttp_extra_require = ["aiohttp >= 3.6.2, < 4.0.0", *requests_extra_require]
aiohttp_extra_require = ["aiohttp >= 3.8.0, < 4.0.0", *requests_extra_require]

pyjwt_extra_require = ["pyjwt>=2.0"]

Expand Down Expand Up @@ -112,13 +112,11 @@
package_data={"google.auth": ["py.typed"], "google.oauth2": ["py.typed"]},
install_requires=DEPENDENCIES,
extras_require=extras,
python_requires=">=3.8",
python_requires=">=3.10",
license="Apache 2.0",
keywords="google auth oauth client",
classifiers=[
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
Expand Down
14 changes: 13 additions & 1 deletion packages/google-auth/testing/constraints-3.10.txt
Original file line number Diff line number Diff line change
@@ -1 +1,13 @@
urllib3<2.0.0
# This constraints file is used to check that lower bounds
# are correct in setup.py
# List *all* library dependencies and extras in this file.
# Pin the version to the lower bound.
#
# e.g., if setup.py has "foo >= 1.14.0, < 2.0.0dev",
# Then this file should have foo==1.14.0
pyasn1-modules==0.2.1
setuptools==40.3.0
cryptography==38.0.3
aiohttp==3.8.0
requests==2.20.0
pyjwt==2.0
13 changes: 0 additions & 13 deletions packages/google-auth/testing/constraints-3.8.txt

This file was deleted.

Empty file.
63 changes: 0 additions & 63 deletions packages/google-auth/tests/test_version_warnings.py

This file was deleted.

Loading