feat: add support for Python 3.14 (#14699) · googleapis/google-cloud-python@8b69540

10 files changed

lines changed

Original file line numberDiff line numberDiff line change

@@ -40,6 +40,7 @@

4040

"3.11",

4141

"3.12",

4242

"3.13",

43+

"3.14",

4344

]

4445
4546

DEFAULT_PYTHON_VERSION = UNIT_TEST_PYTHON_VERSIONS[-1]

@@ -57,7 +58,15 @@

5758

UNIT_TEST_EXTRAS: List[str] = []

5859

UNIT_TEST_EXTRAS_BY_PYTHON: Dict[str, List[str]] = {}

5960
60-

SYSTEM_TEST_PYTHON_VERSIONS: List[str] = ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13"]

61+

SYSTEM_TEST_PYTHON_VERSIONS: List[str] = [

62+

"3.8",

63+

"3.9",

64+

"3.10",

65+

"3.11",

66+

"3.12",

67+

"3.13",

68+

"3.14",

69+

]

6170

SYSTEM_TEST_STANDARD_DEPENDENCIES = [

6271

"mock",

6372

"pytest",

@@ -176,7 +185,12 @@ def install_unittest_dependencies(session, *constraints):

176185

def unit(session, protobuf_implementation):

177186

# Install all test dependencies, then install this package in-place.

178187
179-

if protobuf_implementation == "cpp" and session.python in ("3.11", "3.12", "3.13"):

188+

if protobuf_implementation == "cpp" and session.python in (

189+

"3.11",

190+

"3.12",

191+

"3.13",

192+

"3.14",

193+

):

180194

session.skip("cpp implementation is not supported in python 3.11+")

181195
182196

constraints_path = str(

@@ -389,7 +403,12 @@ def prerelease_deps(session, protobuf_implementation):

389403

`pip install --pre <package>`.

390404

"""

391405
392-

if protobuf_implementation == "cpp" and session.python in ("3.11", "3.12", "3.13"):

406+

if protobuf_implementation == "cpp" and session.python in (

407+

"3.11",

408+

"3.12",

409+

"3.13",

410+

"3.14",

411+

):

393412

session.skip("cpp implementation is not supported in python 3.11+")

394413
395414

# Install all dependencies

Original file line numberDiff line numberDiff line change

@@ -62,6 +62,7 @@

6262

"Programming Language :: Python :: 3.11",

6363

"Programming Language :: Python :: 3.12",

6464

"Programming Language :: Python :: 3.13",

65+

"Programming Language :: Python :: 3.14",

6566

"Operating System :: OS Independent",

6667

"Topic :: Internet",

6768

],

Original file line numberDiff line numberDiff line change

@@ -40,6 +40,7 @@

4040

"3.11",

4141

"3.12",

4242

"3.13",

43+

"3.14",

4344

]

4445
4546

DEFAULT_PYTHON_VERSION = UNIT_TEST_PYTHON_VERSIONS[-1]

@@ -57,7 +58,15 @@

5758

UNIT_TEST_EXTRAS: List[str] = []

5859

UNIT_TEST_EXTRAS_BY_PYTHON: Dict[str, List[str]] = {}

5960
60-

SYSTEM_TEST_PYTHON_VERSIONS: List[str] = ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13"]

61+

SYSTEM_TEST_PYTHON_VERSIONS: List[str] = [

62+

"3.8",

63+

"3.9",

64+

"3.10",

65+

"3.11",

66+

"3.12",

67+

"3.13",

68+

"3.14",

69+

]

6170

SYSTEM_TEST_STANDARD_DEPENDENCIES = [

6271

"mock",

6372

"pytest",

@@ -176,7 +185,12 @@ def install_unittest_dependencies(session, *constraints):

176185

def unit(session, protobuf_implementation):

177186

# Install all test dependencies, then install this package in-place.

178187
179-

if protobuf_implementation == "cpp" and session.python in ("3.11", "3.12", "3.13"):

188+

if protobuf_implementation == "cpp" and session.python in (

189+

"3.11",

190+

"3.12",

191+

"3.13",

192+

"3.14",

193+

):

180194

session.skip("cpp implementation is not supported in python 3.11+")

181195
182196

constraints_path = str(

@@ -389,7 +403,12 @@ def prerelease_deps(session, protobuf_implementation):

389403

`pip install --pre <package>`.

390404

"""

391405
392-

if protobuf_implementation == "cpp" and session.python in ("3.11", "3.12", "3.13"):

406+

if protobuf_implementation == "cpp" and session.python in (

407+

"3.11",

408+

"3.12",

409+

"3.13",

410+

"3.14",

411+

):

393412

session.skip("cpp implementation is not supported in python 3.11+")

394413
395414

# Install all dependencies

Original file line numberDiff line numberDiff line change

@@ -52,6 +52,7 @@

5252

"Programming Language :: Python :: 3.11",

5353

"Programming Language :: Python :: 3.12",

5454

"Programming Language :: Python :: 3.13",

55+

"Programming Language :: Python :: 3.14",

5556

"Programming Language :: Python :: Implementation :: CPython",

5657

],

5758

description=description,

Original file line numberDiff line numberDiff line change

@@ -40,6 +40,7 @@

4040

"3.11",

4141

"3.12",

4242

"3.13",

43+

"3.14",

4344

]

4445
4546

DEFAULT_PYTHON_VERSION = UNIT_TEST_PYTHON_VERSIONS[-1]

@@ -57,7 +58,15 @@

5758

UNIT_TEST_EXTRAS: List[str] = []

5859

UNIT_TEST_EXTRAS_BY_PYTHON: Dict[str, List[str]] = {}

5960
60-

SYSTEM_TEST_PYTHON_VERSIONS: List[str] = ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13"]

61+

SYSTEM_TEST_PYTHON_VERSIONS: List[str] = [

62+

"3.8",

63+

"3.9",

64+

"3.10",

65+

"3.11",

66+

"3.12",

67+

"3.13",

68+

"3.14",

69+

]

6170

SYSTEM_TEST_STANDARD_DEPENDENCIES = [

6271

"mock",

6372

"pytest",

@@ -176,7 +185,12 @@ def install_unittest_dependencies(session, *constraints):

176185

def unit(session, protobuf_implementation):

177186

# Install all test dependencies, then install this package in-place.

178187
179-

if protobuf_implementation == "cpp" and session.python in ("3.11", "3.12", "3.13"):

188+

if protobuf_implementation == "cpp" and session.python in (

189+

"3.11",

190+

"3.12",

191+

"3.13",

192+

"3.14",

193+

):

180194

session.skip("cpp implementation is not supported in python 3.11+")

181195
182196

constraints_path = str(

@@ -389,7 +403,12 @@ def prerelease_deps(session, protobuf_implementation):

389403

`pip install --pre <package>`.

390404

"""

391405
392-

if protobuf_implementation == "cpp" and session.python in ("3.11", "3.12", "3.13"):

406+

if protobuf_implementation == "cpp" and session.python in (

407+

"3.11",

408+

"3.12",

409+

"3.13",

410+

"3.14",

411+

):

393412

session.skip("cpp implementation is not supported in python 3.11+")

394413
395414

# Install all dependencies

Original file line numberDiff line numberDiff line change

@@ -37,6 +37,7 @@ classifiers = [

3737

"Programming Language :: Python :: 3.11",

3838

"Programming Language :: Python :: 3.12",

3939

"Programming Language :: Python :: 3.13",

40+

"Programming Language :: Python :: 3.14",

4041

"Operating System :: OS Independent",

4142

"Topic :: Internet",

4243

]