diff --git a/.github/sync-repo-settings.yaml b/.github/sync-repo-settings.yaml
index 38bd545c..d9de7a03 100644
--- a/.github/sync-repo-settings.yaml
+++ b/.github/sync-repo-settings.yaml
@@ -16,6 +16,8 @@ branchProtectionRules:
- 'Samples - Python 3.10'
- 'Samples - Python 3.11'
- 'Samples - Python 3.12'
+ - 'Samples - Python 3.13'
+
permissionRules:
- team: actools-python
permission: admin
diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst
index 3f0d9cdb..2f03f9d0 100644
--- a/CONTRIBUTING.rst
+++ b/CONTRIBUTING.rst
@@ -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 and 3.12 on both UNIX and Windows.
+ 3.8, 3.9, 3.10, 3.11, 3.12, and 3.13 on both UNIX and Windows.
- The feature must not add unnecessary dependencies (where
"unnecessary" is of course subjective, but new dependencies should
@@ -72,7 +72,7 @@ We use `nox `__ to instrument our tests.
- To run a single unit test::
- $ nox -s unit-3.12 -- -k
+ $ nox -s unit-3.13 -- -k
.. note::
@@ -143,12 +143,12 @@ Running System Tests
$ nox -s system
# Run a single system test
- $ nox -s system-3.12 -- -k
+ $ nox -s system-3.13 -- -k
.. note::
- System tests are only configured to run under Python 3.8, 3.11 and 3.12.
+ System tests are only configured to run under Python 3.8, 3.12, and 3.13.
For expediency, we do not run them in older versions of Python 3.
This alone will not run the tests. You'll need to change some local
@@ -226,12 +226,14 @@ We support:
- `Python 3.10`_
- `Python 3.11`_
- `Python 3.12`_
+- `Python 3.13`_
.. _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/
.. _Python 3.12: https://docs.python.org/3.12/
+.. _Python 3.13: https://docs.python.org/3.13/
Supported versions can be found in our ``noxfile.py`` `config`_.
diff --git a/README.rst b/README.rst
index b3e19045..2a64c0c7 100644
--- a/README.rst
+++ b/README.rst
@@ -51,7 +51,7 @@ dependencies.
Supported Python Versions
^^^^^^^^^^^^^^^^^^^^^^^^^
-Python >= 3.8
+Python >= 3.8, <3.14
Unsupported Python Versions
^^^^^^^^^^^^^^^^^^^^^^^^^^^
diff --git a/noxfile.py b/noxfile.py
index 9825e03c..b6e34730 100644
--- a/noxfile.py
+++ b/noxfile.py
@@ -41,7 +41,7 @@
DEFAULT_PYTHON_VERSION = "3.8"
-UNIT_TEST_PYTHON_VERSIONS: List[str] = ["3.8", "3.9", "3.10", "3.11", "3.12"]
+UNIT_TEST_PYTHON_VERSIONS: List[str] = ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13"]
UNIT_TEST_STANDARD_DEPENDENCIES = [
"mock",
"asyncmock",
@@ -71,9 +71,14 @@
"geography",
"bqstorage",
],
+ "3.13": [
+ "tests",
+ "geography",
+ "bqstorage",
+ ],
}
-SYSTEM_TEST_PYTHON_VERSIONS: List[str] = ["3.8", "3.11", "3.12"]
+SYSTEM_TEST_PYTHON_VERSIONS: List[str] = ["3.8", "3.12", "3.13"]
SYSTEM_TEST_STANDARD_DEPENDENCIES: List[str] = [
"mock",
"pytest",
@@ -91,12 +96,12 @@
"alembic",
"bqstorage",
],
- "3.11": [
+ "3.12": [
"tests",
"geography",
"bqstorage",
],
- "3.12": [
+ "3.13": [
"tests",
"geography",
"bqstorage",
@@ -219,7 +224,7 @@ def unit(session, protobuf_implementation, install_extras=True):
)
install_unittest_dependencies(session, "-c", constraints_path)
- if install_extras and session.python in ["3.11", "3.12"]:
+ if install_extras and session.python in ["3.11", "3.12", "3.13"]:
install_target = ".[geography,alembic,tests,bqstorage]"
elif install_extras:
install_target = ".[all]"
@@ -395,7 +400,7 @@ def compliance(session):
)
if session.python == "3.8":
extras = "[tests,alembic]"
- elif session.python in ["3.11", "3.12"]:
+ elif session.python in ["3.12", "3.13"]:
extras = "[tests,geography]"
else:
extras = "[tests]"
@@ -522,7 +527,7 @@ def docfx(session):
)
-@nox.session(python="3.12")
+@nox.session(python="3.13")
@nox.parametrize(
"protobuf_implementation",
["python", "upb", "cpp"],
diff --git a/owlbot.py b/owlbot.py
index 3b2884f3..5173dce0 100644
--- a/owlbot.py
+++ b/owlbot.py
@@ -33,10 +33,11 @@
"3.8": ["tests", "alembic", "bqstorage"],
"3.11": ["tests", "geography", "bqstorage"],
"3.12": ["tests", "geography", "bqstorage"],
+ "3.13": ["tests", "geography", "bqstorage"],
}
templated_files = common.py_library(
- unit_test_python_versions=["3.8", "3.9", "3.10", "3.11", "3.12"],
- system_test_python_versions=["3.8", "3.11", "3.12"],
+ unit_test_python_versions=["3.8", "3.9", "3.10", "3.11", "3.12", "3.13"],
+ system_test_python_versions=["3.8", "3.12", "3.13"],
cov_level=100,
unit_test_extras=extras,
unit_test_extras_by_python=extras_by_python,
diff --git a/setup.py b/setup.py
index f655101c..6d6c814a 100644
--- a/setup.py
+++ b/setup.py
@@ -104,6 +104,7 @@ def readme():
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
+ "Programming Language :: Python :: 3.13",
"Operating System :: OS Independent",
"Topic :: Database :: Front-Ends",
],
@@ -119,7 +120,7 @@ def readme():
"sqlalchemy>=1.4.16,<3.0.0",
],
extras_require=extras,
- python_requires=">=3.8, <3.13",
+ python_requires=">=3.8, <3.14",
tests_require=["packaging", "pytz"],
entry_points={
"sqlalchemy.dialects": ["bigquery = sqlalchemy_bigquery:BigQueryDialect"]
diff --git a/testing/constraints-3.13.txt b/testing/constraints-3.13.txt
index 0e713350..5b82150f 100644
--- a/testing/constraints-3.13.txt
+++ b/testing/constraints-3.13.txt
@@ -1,13 +1 @@
-# 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 "google-cloud-foo >= 1.14.0, < 2.0.0dev",
-# Then this file should have google-cloud-foo==1.14.0
-google-api-core == 1.31.5
-google-auth==1.25.0
-google-cloud-bigquery==3.3.6
-google-cloud-bigquery-storage == 2.0.0
-grpcio == 1.47.0
-pyarrow == 3.0.0
-sqlalchemy==1.4.16
+numpy>=1.23