4141 "setup.py",
4242]
4343
44- DEFAULT_PYTHON_VERSION = "3.10 "
44+ DEFAULT_PYTHON_VERSION = "3.14 "
4545
46- UNIT_TEST_PYTHON_VERSIONS: List[str] = ["3.9", "3.10", "3.11", "3.12", "3.13"]
46+ UNIT_TEST_PYTHON_VERSIONS: List[str] = ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14" ]
4747UNIT_TEST_STANDARD_DEPENDENCIES = [
4848 "mock",
4949 "asyncmock",
7373 "geography",
7474 "bqstorage",
7575 ],
76+ "3.14": [
77+ "tests",
78+ "geography",
79+ "bqstorage",
80+ ],
7681}
7782
78- SYSTEM_TEST_PYTHON_VERSIONS: List[str] = ["3.9", "3.12", "3.13"]
83+ SYSTEM_TEST_PYTHON_VERSIONS: List[str] = ["3.9", "3.12", "3.13", "3.14" ]
7984SYSTEM_TEST_STANDARD_DEPENDENCIES: List[str] = [
8085 "mock",
8186 "pytest",
98103 "geography",
99104 "bqstorage",
100105 ],
106+ "3.14": [
107+ "tests",
108+ "geography",
109+ "bqstorage",
110+ ],
101111}
102112
103113CURRENT_DIRECTORY = pathlib.Path(__file__).parent.absolute()
@@ -234,15 +244,20 @@ def install_unittest_dependencies(session, *constraints):
234244def unit(session, protobuf_implementation, install_extras=True):
235245 # Install all test dependencies, then install this package in-place.
236246
237- if protobuf_implementation == "cpp" and session.python in ("3.11", "3.12", "3.13"):
247+ if protobuf_implementation == "cpp" and session.python in (
248+ "3.11",
249+ "3.12",
250+ "3.13",
251+ "3.14",
252+ ):
238253 session.skip("cpp implementation is not supported in python 3.11+")
239254
240255 constraints_path = str(
241256 CURRENT_DIRECTORY / "testing" / f"constraints-{session.python}.txt"
242257 )
243258 install_unittest_dependencies(session, "-c", constraints_path)
244259
245- if install_extras and session.python in ["3.11", "3.12", "3.13"]:
260+ if install_extras and session.python in ["3.11", "3.12", "3.13", "3.14" ]:
246261 install_target = ".[geography,alembic,tests,bqstorage]"
247262 elif install_extras:
248263 install_target = ".[all]"
@@ -419,7 +434,7 @@ def compliance(session):
419434 "-c",
420435 constraints_path,
421436 )
422- if session.python in ["3.12", "3.13"]:
437+ if session.python in ["3.12", "3.13", "3.14" ]:
423438 extras = "[tests,geography,alembic]"
424439 else:
425440 extras = "[tests]"
@@ -549,7 +564,7 @@ def docfx(session):
549564 )
550565
551566
552- @nox.session(python="3.13" )
567+ @nox.session(python=DEFAULT_PYTHON_VERSION )
553568@nox.parametrize(
554569 "protobuf_implementation",
555570 ["python", "upb", "cpp"],
@@ -558,7 +573,12 @@ def docfx(session):
558573def prerelease_deps(session, protobuf_implementation):
559574 """Run all tests with prerelease versions of dependencies installed."""
560575
561- if protobuf_implementation == "cpp" and session.python in ("3.11", "3.12", "3.13"):
576+ if protobuf_implementation == "cpp" and session.python in (
577+ "3.11",
578+ "3.12",
579+ "3.13",
580+ "3.14",
581+ ):
562582 session.skip("cpp implementation is not supported in python 3.11+")
563583
564584 # Install all dependencies
0 commit comments