Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
5 changes: 0 additions & 5 deletions .github/workflows/unittest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -132,11 +132,6 @@ jobs:
- name: Install nox and nox-uv
run: |
uv pip install --system nox nox-uv
# TODO(https://github.com/googleapis/google-cloud-python/issues/18532):
# Remove UV_PRERELEASE once Python 3.15 is officially released and upstream binary wheels are available.
- name: Enable prereleases for Python 3.15
if: matrix.python == '3.15'
run: echo "UV_PRERELEASE=allow" >> $GITHUB_ENV
- name: Run unit tests for ${{ matrix.package_shard.description }}
env:
BUILD_TYPE: presubmit
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ replacements:
after: |
extras = {
"pandas": [
"pandas >= 1.1.3, < 3.0.0",
"pandas >= 1.1.3, < 4.0.0",
"pyarrow >= 3.0.0",
"pandas-gbq >= 0.35.1, < 2.0.0",
],
Expand Down Expand Up @@ -525,17 +525,3 @@ replacements:
bigquery_storage_v1alpha/types_\n\n
Changelog
count: 1
- paths: [
packages/google-cloud-bigquery-storage/noxfile.py,
]
before: |
# Install all test dependencies, then install this package in-place.\n
constraints_path = str\(
after: |
# Install all test dependencies, then install this package in-place.

if session.python == "3.15":
session.skip("Skipping 3.15 until wheels are available for pyarrow.")

constraints_path = str(
count: 1
5 changes: 0 additions & 5 deletions packages/bigquery-magics/noxfile.py
Original file line number Diff line number Diff line change
Expand Up @@ -252,11 +252,6 @@ def install_unittest_dependencies(session, *constraints):
@nox.session(python=UNIT_TEST_PYTHON_VERSIONS)
def unit(session):
# Install all test dependencies, then install this package in-place.
if session.python == "3.15":
session.skip(
"Skipping 3.15 until wheels are available for pyproj needed for dependency geopandas"
)

constraints_path = str(
CURRENT_DIRECTORY / "testing" / f"constraints-{session.python}.txt"
)
Expand Down
1 change: 1 addition & 0 deletions packages/bigquery-magics/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,7 @@
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
"Programming Language :: Python :: 3.15",
"Operating System :: OS Independent",
"Topic :: Internet",
],
Expand Down
3 changes: 0 additions & 3 deletions packages/db-dtypes/noxfile.py
Original file line number Diff line number Diff line change
Expand Up @@ -317,9 +317,6 @@ def prerelease(session, tests_path):
@nox.parametrize("test_type", ["unit", "compliance"])
def unit(session, test_type):
"""Run the unit test suite."""
if session.python == "3.15":
session.skip("Skipping 3.15 until wheels are available for pyarrow.")

# Compliance tests only run on the latest Python version
if test_type == "compliance" and session.python != DEFAULT_PYTHON_VERSION:
session.skip(
Expand Down
1 change: 1 addition & 0 deletions packages/db-dtypes/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ def readme():
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
"Programming Language :: Python :: 3.15",
"Operating System :: OS Independent",
"Topic :: Database :: Front-Ends",
],
Expand Down
3 changes: 0 additions & 3 deletions packages/google-cloud-bigquery-storage/noxfile.py
Original file line number Diff line number Diff line change
Expand Up @@ -294,9 +294,6 @@ def install_unittest_dependencies(session, *constraints):
def unit(session, protobuf_implementation):
# Install all test dependencies, then install this package in-place.

if session.python == "3.15":
session.skip("Skipping 3.15 until wheels are available for pyarrow.")

constraints_path = str(
CURRENT_DIRECTORY / "testing" / f"constraints-{session.python}.txt"
)
Expand Down
2 changes: 1 addition & 1 deletion packages/google-cloud-bigquery-storage/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@
]
extras = {
"pandas": [
"pandas >= 1.1.3, < 3.0.0",
"pandas >= 1.1.3, < 4.0.0",
"pyarrow >= 3.0.0",
"pandas-gbq >= 0.35.1, < 2.0.0",
],
Expand Down
9 changes: 0 additions & 9 deletions packages/google-cloud-bigquery/noxfile.py
Original file line number Diff line number Diff line change
Expand Up @@ -180,15 +180,6 @@ def default(session, install_extras=True):
@_calculate_duration
def unit(session, test_type):
"""Run the unit test suite."""
# TODO(https://github.com/googleapis/google-cloud-python/issues/17741):
# remove this skip once the optional extras resolve on 3.15.
# `unit_noextras` can be tested on 3.15
if session.python == "3.15" and test_type == "unit":
session.skip(
"Optional extras do not yet resolve on 3.15; "
"unit_noextras covers the core install."
)

install_extras = True
if test_type == "unit_noextras":
# unit_noextras only runs on the oldest and newest Python versions
Expand Down
5 changes: 0 additions & 5 deletions packages/google-cloud-documentai-toolbox/noxfile.py
Original file line number Diff line number Diff line change
Expand Up @@ -214,11 +214,6 @@ def install_unittest_dependencies(session, *constraints):
)
def unit(session, protobuf_implementation):
# Install all test dependencies, then install this package in-place.
if session.python == "3.15":
session.skip(
"Skipping 3.15 until wheels are available for 1. numba (from dependency pandas[performance]) 2. lxml (from dependency pikepdf) 3. pyarrow."
)

constraints_path = str(
CURRENT_DIRECTORY / "testing" / f"constraints-{session.python}.txt"
)
Expand Down
4 changes: 4 additions & 0 deletions packages/google-cloud-documentai-toolbox/pytest.ini
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,7 @@ filterwarnings =
# This error is expected for python versions that approach EOL
ignore:.*Please upgrade to the latest Python version.*:FutureWarning
ignore:(?s).*using a Python version.*past its end of life.*:FutureWarning

# Python 3.15 base64.urlsafe_b64decode emits FutureWarning when protobuf json_format
# decodes standard base64 bytes fields containing '+' or '/'
ignore:invalid character .* in URL-safe Base64 data will be discarded in future Python versions:FutureWarning
6 changes: 2 additions & 4 deletions packages/google-cloud-documentai-toolbox/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,10 +54,7 @@
},
install_requires=(
"google-api-core>=2.25.0, <3.0.0",
# For Python < 3.15: Install with performance extras (which includes numba)
"pandas[performance,gcp]>=2.0.0, <3.0.0; python_version < '3.15'",
# pandas[performance] requires numba which does not have 3.15 support yet
"pandas[gcp]>=2.0.0, <3.0.0;python_version>='3.15'",
"pandas[performance,gcp]>=2.0.0, <4.0.0",
# pyarrow is transitive dependency; not accessed by the library directly
"pyarrow>=15.0.0",
"tabulate>=0.9.0, <1.0.0",
Expand All @@ -84,6 +81,7 @@
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
"Programming Language :: Python :: 3.15",
"Topic :: Internet",
"Topic :: Software Development :: Libraries :: Python Modules",
],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,4 @@ google-cloud-documentai
google-cloud-storage
numpy
pikepdf
numba>=0.63.0b1
numba
5 changes: 0 additions & 5 deletions packages/pandas-gbq/noxfile.py
Original file line number Diff line number Diff line change
Expand Up @@ -268,11 +268,6 @@ def default(session):
@_calculate_duration
def unit(session):
"""Run the unit test suite."""
if session.python == "3.15":
session.skip(
"Skipping 3.15 until wheels are available for pyarrow. Also pyproj wheels are needed for dependency geopandas."
)

default(session)


Expand Down
1 change: 1 addition & 0 deletions packages/pandas-gbq/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,7 @@
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
"Programming Language :: Python :: 3.15",
"Operating System :: OS Independent",
"Topic :: Internet",
"Topic :: Scientific/Engineering",
Expand Down
3 changes: 0 additions & 3 deletions packages/sqlalchemy-bigquery/noxfile.py
Original file line number Diff line number Diff line change
Expand Up @@ -303,9 +303,6 @@ def install_unittest_dependencies(session, *constraints):
def unit(session, protobuf_implementation, install_extras=True):
# Install all test dependencies, then install this package in-place.

if session.python == "3.15":
session.skip("Skipping 3.15 until wheels are available for pyarrow.")

constraints_path = str(
CURRENT_DIRECTORY / "testing" / f"constraints-{session.python}.txt"
)
Expand Down
1 change: 1 addition & 0 deletions packages/sqlalchemy-bigquery/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,7 @@ def readme():
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
"Programming Language :: Python :: 3.15",
"Operating System :: OS Independent",
"Topic :: Database :: Front-Ends",
],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -271,6 +271,24 @@ def test_floordiv_integer(self):
def test_floordiv_integer_bound(self):
pass

@pytest.mark.skip(
"Skipped due to BigQuery Standard SQL limitations with extreme decimal/numeric inputs:\n"
"1. 38-Digit Integer Literal Overflows: BigQuery's SQL parser lexically evaluates "
"unquoted digit sequences without a decimal point as INT64 *before* evaluating "
"CAST() wrappers. Values like 30000000000000000000000000000000000000 overflow "
"signed 64-bit integer limits (max: 9,223,372,036,854,775,807) and raise a 400 "
"'Invalid integer literal' error unless quoted as strings.\n"
"2. Untyped Tiny Divisor Underflow: Standard NUMERIC in BigQuery is capped at 9 "
"decimal places (whereas BIGNUMERIC supports 38). When untyped functions (like "
"nullif) cast a 13-decimal divisor (0.00000000000012345679) to NUMERIC, it "
"rounds down to 0 and triggers a 400 division-by-zero error.\n"
"3. Untyped Precision Loss: Coercing high-precision operands to standard NUMERIC "
"during untyped division causes trailing precision mismatches "
"(e.g., returning 7.00000000447361540043026119825490002512 instead of 7)."
)
def test_truediv_divisor(self):
pass

class SimpleUpdateDeleteTest(_SimpleUpdateDeleteTest):
"""The base tests fail if operations return rows for some reason."""

Expand Down
Loading