Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
95354e9
deps: drop support for Python 3.7 and 3.8
tswast Jul 7, 2025
191cb3d
🦉 Updates from OwlBot post-processor
gcf-owl-bot[bot] Jul 7, 2025
5cc9df3
🦉 Updates from OwlBot post-processor
gcf-owl-bot[bot] Jul 7, 2025
866a1bd
Merge branch 'tswast-3-8' of https://github.com/googleapis/python-big…
gcf-owl-bot[bot] Jul 7, 2025
66f6c1b
update owlbot lock
tswast Jul 7, 2025
4128ad3
manuallly update github workflows
tswast Jul 7, 2025
6570b85
🦉 Updates from OwlBot post-processor
gcf-owl-bot[bot] Jul 7, 2025
f31c6bb
include unit test in owlbot templates
tswast Jul 7, 2025
1baf9cf
Merge branch 'main' into tswast-3-8
tswast Jul 7, 2025
4ad8c37
🦉 Updates from OwlBot post-processor
gcf-owl-bot[bot] Jul 7, 2025
8b472a7
Merge branch 'tswast-3-8' of https://github.com/googleapis/python-big…
gcf-owl-bot[bot] Jul 7, 2025
180504c
🦉 Updates from OwlBot post-processor
gcf-owl-bot[bot] Jul 7, 2025
a9ec5fe
Merge branch 'tswast-3-8' of https://github.com/googleapis/python-big…
gcf-owl-bot[bot] Jul 7, 2025
7717c91
Update owlbot.py
tswast Jul 7, 2025
c8f4846
exclude bigframes from 3.9 tests of min verions
tswast Jul 7, 2025
91989be
🦉 Updates from OwlBot post-processor
gcf-owl-bot[bot] Jul 7, 2025
02014a3
Merge branch 'tswast-3-8' of https://github.com/googleapis/python-big…
gcf-owl-bot[bot] Jul 7, 2025
ca103e9
manually sync noxfile changes
tswast Jul 7, 2025
4316930
🦉 Updates from OwlBot post-processor
gcf-owl-bot[bot] Jul 7, 2025
d8383ae
🦉 Updates from OwlBot post-processor
gcf-owl-bot[bot] Jul 7, 2025
fd63b2b
Merge branch 'tswast-3-8' of https://github.com/googleapis/python-big…
gcf-owl-bot[bot] Jul 7, 2025
2d93db0
fix prerelease
tswast Jul 7, 2025
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
2 changes: 1 addition & 1 deletion .github/.OwlBot.lock.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,5 @@
# limitations under the License.
docker:
image: gcr.io/cloud-devrel-public-resources/owlbot-python:latest
digest: sha256:5581906b957284864632cde4e9c51d1cc66b0094990b27e689132fe5cd036046
digest: sha256:4db568eb8ccb6b40f355a1c971876c072b3b160ebade5d913bd29e7976ff7191
# created: 2025-03-05
7 changes: 3 additions & 4 deletions .github/sync-repo-settings.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,17 +10,16 @@ branchProtectionRules:
- 'cla/google'
- 'OwlBot Post Processor'
- 'lint'
- 'Kokoro system-3.8'
- 'Kokoro system-3.9'
- 'Kokoro system-3.11 (noextras)'
- 'Kokoro system-3.13'
- 'docs'
- 'unit (3.7)'
- 'unit (3.8)'
- 'unit (3.9)'
- 'unit (3.12)'
- 'unit (3.13)'
- 'cover'
- 'Samples - Lint'
- 'Samples - Python 3.8'
- 'Samples - Python 3.9'
- 'Samples - Python 3.11'
- 'Samples - Python 3.12'
permissionRules:
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.8"
python-version: "3.10"
- 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.7', '3.8', '3.11', '3.12', '3.13']
python: ['3.9', '3.11', '3.12', '3.13']
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.8"
python-version: "3.10"
- name: Install coverage
run: |
python -m pip install --upgrade setuptools pip wheel
Expand Down
10 changes: 3 additions & 7 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.7, 3.8, 3.9, 3.11, 3.12 and 3.13 on both UNIX and Windows.
3.9, 3.11, 3.12 and 3.13 on both UNIX and Windows.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wondering why version 3.10 is omitted

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that's derived from which ones we unit test against.


- The feature must not add unnecessary dependencies (where
"unnecessary" is of course subjective, but new dependencies should
Expand Down Expand Up @@ -148,7 +148,7 @@ Running System Tests

.. note::

System tests are only configured to run under Python 3.8, 3.11, 3.12 and 3.13.
System tests are only configured to run under Python 3.9, 3.11, 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
Expand Down Expand Up @@ -221,15 +221,11 @@ Supported Python Versions

We support:

- `Python 3.7`_
- `Python 3.8`_
- `Python 3.9`_
- `Python 3.11`_
- `Python 3.12`_
- `Python 3.13`_

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


We also explicitly decided to support Python 3 beginning with version 3.7.
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
4 changes: 2 additions & 2 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -52,11 +52,11 @@ dependencies.

Supported Python Versions
^^^^^^^^^^^^^^^^^^^^^^^^^
Python >= 3.7
Python >= 3.9

Unsupported Python Versions
^^^^^^^^^^^^^^^^^^^^^^^^^^^
Python == 3.5, Python == 3.6.
Python <= 3.8.


Mac/Linux
Expand Down
25 changes: 5 additions & 20 deletions noxfile.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,9 @@
ISORT_VERSION = "isort==5.11.0"
LINT_PATHS = ["docs", "bigquery_magics", "tests", "noxfile.py", "setup.py"]

DEFAULT_PYTHON_VERSION = "3.8"
DEFAULT_PYTHON_VERSION = "3.10"

UNIT_TEST_PYTHON_VERSIONS: List[str] = ["3.7", "3.8", "3.9", "3.11", "3.12", "3.13"]
UNIT_TEST_PYTHON_VERSIONS: List[str] = ["3.9", "3.11", "3.12", "3.13"]
UNIT_TEST_STANDARD_DEPENDENCIES = [
"mock",
"asyncmock",
Expand All @@ -49,16 +49,8 @@
UNIT_TEST_DEPENDENCIES: List[str] = []
UNIT_TEST_EXTRAS: List[str] = []
UNIT_TEST_EXTRAS_BY_PYTHON: Dict[str, List[str]] = {
"3.7": [
"bqstorage",
],
"3.8": [
"bqstorage",
],
"3.9": [
"bqstorage",
"bigframes",
"geopandas",
],
"3.10": [
"bqstorage",
Expand All @@ -77,7 +69,7 @@
],
}

SYSTEM_TEST_PYTHON_VERSIONS: List[str] = ["3.8", "3.11", "3.12", "3.13"]
SYSTEM_TEST_PYTHON_VERSIONS: List[str] = ["3.9", "3.11", "3.12", "3.13"]
SYSTEM_TEST_STANDARD_DEPENDENCIES: List[str] = [
"mock",
"pytest",
Expand All @@ -88,16 +80,8 @@
SYSTEM_TEST_DEPENDENCIES: List[str] = []
SYSTEM_TEST_EXTRAS: List[str] = []
SYSTEM_TEST_EXTRAS_BY_PYTHON: Dict[str, List[str]] = {
"3.7": [
"bqstorage",
],
"3.8": [
"bqstorage",
],
"3.9": [
"bqstorage",
"bigframes",
"geopandas",
],
"3.10": [
"bqstorage",
Expand Down Expand Up @@ -495,7 +479,8 @@ def prerelease_deps(session, protobuf_implementation):
session.install(
"--pre",
"--upgrade",
"https://github.com/cloudspannerecosystem/spanner-graph-notebook/archive/refs/heads/main.zip",
# TODO(https://github.com/googleapis/python-bigquery-magics/pull/126): Install this again when we relax the pin.
# "https://github.com/cloudspannerecosystem/spanner-graph-notebook/archive/refs/heads/main.zip",
"https://github.com/googleapis/python-bigquery/archive/main.zip",
"https://github.com/googleapis/python-bigquery-storage/archive/main.zip",
)
Expand Down
10 changes: 4 additions & 6 deletions owlbot.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,18 +32,16 @@
extras_bf = ["bqstorage", "bigframes", "geopandas"]
extras_spanner = ["spanner-graph-notebook"]
extras_by_python = {
"3.7": extras_storage,
"3.8": extras_storage,
"3.9": extras_bf,
"3.9": extras_storage,
"3.10": extras_bf,
# Use a middle version of Python to test when no extras are installed.
"3.11": [],
"3.12": extras_storage + extras_spanner,
"3.13": extras_bf,
}
templated_files = common.py_library(
unit_test_python_versions=["3.7", "3.8", "3.9", "3.11", "3.12", "3.13"],
system_test_python_versions=["3.8", "3.11", "3.12", "3.13"],
unit_test_python_versions=["3.9", "3.11", "3.12", "3.13"],
system_test_python_versions=["3.9", "3.11", "3.12", "3.13"],
cov_level=100,
unit_test_extras_by_python=extras_by_python,
unit_test_external_dependencies=["google-cloud-testutils"],
Expand All @@ -52,6 +50,7 @@
"pandas": "https://pandas.pydata.org/pandas-docs/stable/",
"pydata-google-auth": "https://pydata-google-auth.readthedocs.io/en/latest/",
},
default_python_version="3.10",
)
s.move(
templated_files,
Expand All @@ -61,7 +60,6 @@
"docs/multiprocessing.rst",
"noxfile.py",
"README.rst",
".github/workflows/unittest.yml",
],
)

Expand Down
7 changes: 3 additions & 4 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
"ipython>=7.23.1",
"ipykernel>=5.5.6",
"packaging >= 20.0.0",
"pandas>=1.1.0",
"pandas>=1.2.0",
"pyarrow >= 3.0.0",
"pydata-google-auth >=1.5.0",
"tqdm >= 4.7.4, <5.0.0",
Expand Down Expand Up @@ -105,20 +105,19 @@
"License :: OSI Approved :: Apache Software License",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"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 :: Internet",
],
platforms="Posix; MacOS X; Windows",
packages=packages,
install_requires=dependencies,
extras_require=extras,
python_requires=">=3.7",
python_requires=">=3.9",
include_package_data=True,
zip_safe=False,
)
4 changes: 4 additions & 0 deletions testing/constraints-3.10.txt
Original file line number Diff line number Diff line change
@@ -1,2 +1,6 @@
# IMPORTANT: When Python 3.9 support is dropped, update these to
# match the minimums in setup.py.
# This is the last pandas 2.0.x release.
pandas==2.0.3
bigframes==1.17.0
geopandas==1.0.1
17 changes: 0 additions & 17 deletions testing/constraints-3.7.txt

This file was deleted.

8 changes: 0 additions & 8 deletions testing/constraints-3.8.txt

This file was deleted.

23 changes: 16 additions & 7 deletions testing/constraints-3.9.txt
Original file line number Diff line number Diff line change
@@ -1,8 +1,17 @@
# IMPORTANT: When Python 3.8 support is dropped, update these to
# match the minimums in setup.py.
# 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.
#
# We try to test across major versions of our dependencies.
# This is the last pandas 2.0.x release.
pandas==2.0.3
bigframes==1.17.0
geopandas==1.0.1
# e.g., if setup.py has "foo >= 1.14.0, < 2.0.0dev",
# Then this file should have foo==1.14.0
db-dtypes==0.3.0
google-cloud-bigquery==3.13.0
google-cloud-bigquery-storage==2.6.0
ipywidgets==7.7.1
ipython==7.23.1
ipykernel==5.5.6
pandas==1.2.0
pyarrow==3.0.0
pydata-google-auth==1.5.0
tqdm==4.7.4