Skip to content
This repository was archived by the owner on Mar 6, 2026. It is now read-only.
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
8bf972c
chore(deps): Remove Python 3.8
holtskinner Feb 5, 2026
4a8ff63
Remove unit tests for Python 3.10-3.12
holtskinner Feb 5, 2026
b5dbbae
🦉 Updates from OwlBot post-processor
gcf-owl-bot[bot] Feb 5, 2026
36b7bcd
Merge branch 'remove-python38' of https://github.com/googleapis/pytho…
gcf-owl-bot[bot] Feb 5, 2026
72b1498
🦉 Updates from OwlBot post-processor
gcf-owl-bot[bot] Feb 5, 2026
58cb819
Merge branch 'remove-python38' of https://github.com/googleapis/pytho…
gcf-owl-bot[bot] Feb 5, 2026
75c7105
🦉 Updates from OwlBot post-processor
gcf-owl-bot[bot] Feb 5, 2026
0552885
Merge branch 'remove-python38' of https://github.com/googleapis/pytho…
gcf-owl-bot[bot] Feb 5, 2026
1a2a581
upgrade pytest.ini ignore criteria
chalmerlowe Feb 26, 2026
68af5ec
updates noxfile to account for missing 3.9 Python interpreter in dock…
chalmerlowe Feb 27, 2026
770bbe1
updates noxfile test an alternate combo of tests
chalmerlowe Feb 27, 2026
0b4bf7e
removes samples CI/CD checks for 3.7, 3.8. 3.9
chalmerlowe Feb 27, 2026
e4a208f
updates Python runtime in lint workflow
chalmerlowe Feb 27, 2026
42ce241
updates constraints for 3.9
chalmerlowe Feb 27, 2026
af4e693
adjusts Python versioning again
chalmerlowe Feb 27, 2026
754cc2b
Some refinements to versioning
chalmerlowe Feb 27, 2026
19f9123
Re-adds version 3.9
chalmerlowe Feb 27, 2026
93adf21
Updates format session and pyarrow version
chalmerlowe Feb 27, 2026
12cbec3
🦉 Updates from OwlBot post-processor
gcf-owl-bot[bot] Feb 27, 2026
f36e3a9
Pins setuptools to <82 to avoid issue with pkg_resources
chalmerlowe Feb 27, 2026
80bf6c5
adjusting pin for setuptools
chalmerlowe Feb 27, 2026
42ebc06
adjusting constraint for setuptools
chalmerlowe Feb 27, 2026
bb18190
Adds ignore directive for a warning to the pytest.ini
chalmerlowe Feb 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 2 additions & 6 deletions .github/sync-repo-settings.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,16 +10,12 @@ branchProtectionRules:
- 'OwlBot Post Processor'
- 'docs'
- 'lint'
- 'unit (3.8)'
- 'unit (3.9)'
- 'unit (3.10)'
- 'unit (3.11)'
- 'unit (3.12)'
- 'unit (3.13)'
- 'cover'
- 'Kokoro'
- 'Samples - Lint'
- 'Samples - Python 3.8'
- 'Samples - Python 3.12'
- 'Samples - Python 3.13'
permissionRules:
- team: actools-python
permission: admin
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: "3.13"
python-version: "3.14"
- name: Install nox
run: |
python -m pip install --upgrade setuptools pip wheel
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/unittest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-22.04
strategy:
matrix:
python: ['3.8', '3.9', '3.10', '3.11', '3.12', '3.13', '3.14']
python: ['3.9', '3.10', '3.11', '3.12', '3.13', '3.14']
steps:
- name: Checkout
uses: actions/checkout@v4
Expand Down Expand Up @@ -45,7 +45,7 @@ jobs:
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: "3.13"
python-version: "3.14"
- name: Install coverage
run: |
python -m pip install --upgrade setuptools pip wheel
Expand Down
40 changes: 0 additions & 40 deletions .kokoro/samples/python3.6/common.cfg

This file was deleted.

7 changes: 0 additions & 7 deletions .kokoro/samples/python3.6/continuous.cfg

This file was deleted.

11 changes: 0 additions & 11 deletions .kokoro/samples/python3.6/periodic-head.cfg

This file was deleted.

6 changes: 0 additions & 6 deletions .kokoro/samples/python3.6/periodic.cfg

This file was deleted.

6 changes: 0 additions & 6 deletions .kokoro/samples/python3.6/presubmit.cfg

This file was deleted.

10 changes: 4 additions & 6 deletions CONTRIBUTING.rst
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ In order to add a feature:
documentation.

- The feature must work fully on the following CPython versions:
3.8, 3.9, 3.10, 3.11, 3.12, 3.13 and 3.14 on both UNIX and Windows.
3.9, 3.10, 3.11, 3.12, 3.13, 3.14 and 3.15 on both UNIX and Windows.

- The feature must not add unnecessary dependencies (where
"unnecessary" is of course subjective, but new dependencies should
Expand Down Expand Up @@ -195,11 +195,11 @@ configure them just like the System Tests.

# Run all tests in a folder
$ cd samples/snippets
$ nox -s py-3.8
$ nox -s py-3.9

# Run a single sample test
$ cd samples/snippets
$ nox -s py-3.8 -- -k <name of test>
$ nox -s py-3.9 -- -k <name of test>

********************************************
Note About ``README`` as it pertains to PyPI
Expand All @@ -221,15 +221,13 @@ Supported Python Versions

We support:

- `Python 3.8`_
- `Python 3.9`_
- `Python 3.10`_
- `Python 3.11`_
- `Python 3.12`_
- `Python 3.13`_
- `Python 3.14`_

.. _Python 3.8: https://docs.python.org/3.8/
.. _Python 3.9: https://docs.python.org/3.9/
.. _Python 3.10: https://docs.python.org/3.10/
.. _Python 3.11: https://docs.python.org/3.11/
Expand All @@ -243,7 +241,7 @@ Supported versions can be found in our ``noxfile.py`` `config`_.
.. _config: https://github.com/googleapis/python-documentai-toolbox/blob/main/noxfile.py


We also explicitly decided to support Python 3 beginning with version 3.8.
We also explicitly decided to support Python 3 beginning with version 3.9.
Reasons for this include:

- Encouraging use of newest versions of Python 3
Expand Down
13 changes: 6 additions & 7 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -63,21 +63,20 @@ Supported Python Versions
Our client libraries are compatible with all current `active`_ and `maintenance`_ versions of
Python.

Python >= 3.8
Python >= 3.9

.. _active: https://devguide.python.org/devcycle/#in-development-main-branch
.. _maintenance: https://devguide.python.org/devcycle/#maintenance-branches

Unsupported Python Versions
^^^^^^^^^^^^^^^^^^^^^^^^^^^
Python <= 3.7
Python <= 3.8

**NOTE**:
Python 3.7 was marked as `unsupported`_ by the python community in June 2023.
We recommend that all developers upgrade to Python 3.8 and newer as soon as
they can. Support for Python 3.7 will be removed from all client libraries after
January 1 2024. Client libraries that support Python 3.7 will continue to be available
for download, but releases after January 1 2024 will only target Python 3.8 and
Python 3.8 was marked as `unsupported`_ by the python community in October 2024.
Support for Python 3.8 will be removed from all client libraries after
February 1 2026. Client libraries that support Python 3.8 will continue to be available
for download, but releases after February 1 2026 will only target Python 3.9 and
newer.

.. _unsupported: https://devguide.python.org/versions/#unsupported-versions
Expand Down
10 changes: 7 additions & 3 deletions noxfile.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,10 +32,9 @@
ISORT_VERSION = "isort==5.11.0"
LINT_PATHS = ["docs", "google", "tests", "noxfile.py", "setup.py"]

DEFAULT_PYTHON_VERSION = "3.13"
DEFAULT_PYTHON_VERSION = "3.14"

UNIT_TEST_PYTHON_VERSIONS: List[str] = [
"3.8",
"3.9",
"3.10",
"3.11",
Expand Down Expand Up @@ -117,7 +116,7 @@ def blacken(session):
)


@nox.session(python=DEFAULT_PYTHON_VERSION)
@nox.session(python="3.10")
def format(session):
"""
Run isort to sort imports. Then run black
Expand Down Expand Up @@ -180,6 +179,9 @@ def install_unittest_dependencies(session, *constraints):
def unit(session, protobuf_implementation):
# Install all test dependencies, then install this package in-place.

# Pin setuptools to a version before the removal of pkg_resources
session.install("setuptools<81")

if protobuf_implementation == "cpp" and session.python in (
"3.11",
"3.12",
Expand All @@ -199,6 +201,8 @@ def unit(session, protobuf_implementation):
if protobuf_implementation == "cpp":
session.install("protobuf<4")

session.run("python", "-m", "pip", "freeze")

# Run py.test against the unit tests.
session.run(
"py.test",
Expand Down
4 changes: 2 additions & 2 deletions owlbot.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,9 @@
# Add templated files
# ----------------------------------------------------------------------------
templated_files = common.py_library(
unit_test_python_versions=["3.8", "3.9", "3.10", "3.11", "3.12", "3.13", "3.14"],
unit_test_python_versions=["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"],
system_test_python_versions=["3.9", "3.14"],
default_python_version="3.13",
default_python_version="3.14",
cov_level=98,
intersphinx_dependencies={
"pandas": "https://pandas.pydata.org/pandas-docs/stable/"
Expand Down
11 changes: 5 additions & 6 deletions pytest.ini
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,13 @@ filterwarnings =
ignore:.*custom tp_new.*in Python 3.14:DeprecationWarning
# Remove once https://github.com/dateutil/dateutil/issues/1314 is fixed
ignore:datetime.datetime.utcfromtimestamp\(\) is deprecated:DeprecationWarning:dateutil.tz.tz
# Remove once Python3.7 support is dropped https://github.com/googleapis/python-documentai-toolbox/issues/209
ignore:distutils Version classes are deprecated:DeprecationWarning
# Remove after support for Python 3.7 is dropped
ignore:After January 1, 2024, new releases of this library will drop support for Python 3.7:DeprecationWarning
# Remove once the minimum supported version of `google-api-core` is 2.15.0
ignore:.*pkg_resources.declare_namespace:DeprecationWarning
# Remove once minimum supported version of `google-cloud-bigquery` is 3.25.0+
ignore:.*pkg_resources is deprecated as an API:DeprecationWarning
# Remove once the minimum supported Python runtime of this library is Python 3.9
ignore:The python-bigquery library will stop supporting Python 3.7 and Python 3.8:PendingDeprecationWarning
ignore:.*pkg_resources is deprecated as an API:UserWarning
# This error is expected for python versions that approach EOL
ignore:.*Please upgrade to the latest Python version.*:FutureWarning
# Remove after support for Python 3.8, 3.9 and/or 3.10+ is dropped
ignore:\s*You are using a (non-supported )?Python version \(?3\.(8|9|1[0-9]+):DeprecationWarning
ignore:\s*You are using a (non-supported )?Python version \(?3\.(8|9|1[0-9]+):FutureWarning
5 changes: 3 additions & 2 deletions samples/snippets/noxfile.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,10 @@
"2.7",
"3.6",
"3.7",
"3.9",
"3.8",
"3.10",
"3.11",
"3.12",
],
# Old samples are opted out of enforcing Python type hints
# All new samples should feature them
Expand Down Expand Up @@ -94,7 +95,7 @@ def get_pytest_env_vars() -> Dict[str, str]:

# DO NOT EDIT - automatically generated.
# All versions used to tested samples.
ALL_VERSIONS = ["2.7", "3.6", "3.7", "3.8", "3.9", "3.10", "3.11", "3.12"]
ALL_VERSIONS = ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"]

# Any default versions that should be ignored.
IGNORED_VERSIONS = TEST_CONFIG["ignored_versions"]
Expand Down
3 changes: 1 addition & 2 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -71,12 +71,11 @@
"Pillow>=10.0.0, <12.0.0",
"Jinja2>=3.1.0, <4.0.0",
),
python_requires=">=3.8",
python_requires=">=3.9",
classifiers=[
"Development Status :: 3 - Alpha",
"Intended Audience :: Developers",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
Expand Down
17 changes: 0 additions & 17 deletions testing/constraints-3.8.txt

This file was deleted.

28 changes: 17 additions & 11 deletions testing/constraints-3.9.txt
Original file line number Diff line number Diff line change
@@ -1,13 +1,19 @@
# -*- coding: utf-8 -*-
# This constraints file is required for unit tests.
# This constraints file is used to check that lower bounds
# are correct in setup.py
# List all library dependencies and extras in this file.
google-api-core
pandas
pyarrow
proto-plus
grpc-google-iam-v1
google-cloud-bigquery
google-cloud-documentai
google-cloud-storage
numpy
pikepdf
# Pin the version to the lower bound.
# e.g., if setup.py has "google-cloud-foo >= 1.14.0, < 2.0.0dev",
# Then this file should have google-cloud-foo==1.14.0
google-api-core==2.15.0
pandas==2.0.0
pyarrow==15.0.0
proto-plus==1.22.3
grpc-google-iam-v1==0.12.6
google-cloud-bigquery==3.5.0
google-cloud-documentai==2.29.2
google-cloud-storage==2.7.0
pandas-gbq==0.21.0
numpy==1.23.5
pikepdf==8.2.3
setuptools<81.0.0
Loading