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