From e8845f862063f0fe8ca4c1daaa91410a29164a94 Mon Sep 17 00:00:00 2001 From: Shenyang Cai Date: Tue, 26 May 2026 21:18:18 +0000 Subject: [PATCH] chore(bigframes): check unused import and variables in nox commands --- packages/bigframes/bigframes/_config/auth.py | 1 - .../bigframes/bigframes/bigquery/_operations/array.py | 1 - .../core/compile/ibis_compiler/scalar_op_compiler.py | 2 +- .../core/compile/sqlglot/expressions/generic_ops.py | 2 +- packages/bigframes/bigframes/core/nodes.py | 1 - packages/bigframes/bigframes/operations/__init__.py | 1 + .../bigframes/operations/googlesql/__init__.py | 3 --- .../bigframes/bigframes/operations/googlesql/aead.py | 6 +----- .../googlesql/global_namespace/aead_encryption.py | 6 +----- .../operations/googlesql/global_namespace/array.py | 10 +--------- .../bigframes/bigframes/session/bq_caching_executor.py | 5 ++--- packages/bigframes/bigframes/session/clients.py | 2 -- .../bigframes/session/direct_gbq_execution.py | 7 ++----- packages/bigframes/bigframes/session/execution_spec.py | 2 +- packages/bigframes/bigframes/session/proxy_executor.py | 4 +--- packages/bigframes/noxfile.py | 4 ++-- .../bigframes/tests/system/small/bigquery/test_json.py | 1 - .../bigframes/tests/system/small/engines/conftest.py | 1 - .../tests/system/small/engines/test_aggregation.py | 3 +-- .../tests/system/small/engines/test_googlesql_ops.py | 4 +--- .../tests/system/small/engines/test_windowing.py | 4 +--- packages/bigframes/tests/unit/core/sql/test_ml.py | 4 ---- .../tests/unit/session/test_proxy_executor.py | 3 --- packages/bigframes/tests/unit/test_pandas.py | 1 - .../bigframes_vendored/ibis/expr/types/temporal.py | 1 + 25 files changed, 18 insertions(+), 61 deletions(-) diff --git a/packages/bigframes/bigframes/_config/auth.py b/packages/bigframes/bigframes/_config/auth.py index 3b05c878db95..f1c069b5310a 100644 --- a/packages/bigframes/bigframes/_config/auth.py +++ b/packages/bigframes/bigframes/_config/auth.py @@ -23,7 +23,6 @@ import pydata_google_auth import bigframes._config.bigquery_options as bigquery_options -from bigframes._config import options _SCOPES = ["https://www.googleapis.com/auth/cloud-platform"] diff --git a/packages/bigframes/bigframes/bigquery/_operations/array.py b/packages/bigframes/bigframes/bigquery/_operations/array.py index 7cc414879a87..0a3c5d66217a 100644 --- a/packages/bigframes/bigframes/bigquery/_operations/array.py +++ b/packages/bigframes/bigframes/bigquery/_operations/array.py @@ -24,7 +24,6 @@ import bigframes_vendored.constants as constants import bigframes.core.groupby as groupby -import bigframes.operations as ops import bigframes.operations.aggregations as agg_ops import bigframes.series as series diff --git a/packages/bigframes/bigframes/core/compile/ibis_compiler/scalar_op_compiler.py b/packages/bigframes/bigframes/core/compile/ibis_compiler/scalar_op_compiler.py index 4108675bc11f..31a8459923c4 100644 --- a/packages/bigframes/bigframes/core/compile/ibis_compiler/scalar_op_compiler.py +++ b/packages/bigframes/bigframes/core/compile/ibis_compiler/scalar_op_compiler.py @@ -308,7 +308,7 @@ def googlesql_scalar_op_impl( ) arg_spec = op.args[-1] if isinstance(operand.op(), ibis_generic.OmittedArg): - assert arg_spec.optional, f"Argument omitted, but not optional" + assert arg_spec.optional, "Argument omitted, but not optional" continue target_idx = len(final_operands) diff --git a/packages/bigframes/bigframes/core/compile/sqlglot/expressions/generic_ops.py b/packages/bigframes/bigframes/core/compile/sqlglot/expressions/generic_ops.py index 644e7bc365f7..a6cfb52685a0 100644 --- a/packages/bigframes/bigframes/core/compile/sqlglot/expressions/generic_ops.py +++ b/packages/bigframes/bigframes/core/compile/sqlglot/expressions/generic_ops.py @@ -94,7 +94,7 @@ def _(*operands: TypedExpr, op: ops.GoogleSqlScalarOp) -> sge.Expression: ) arg_spec = op.args[-1] if operand.is_omitted: - assert arg_spec.optional, f"Argument omitted, but not optional" + assert arg_spec.optional, "Argument omitted, but not optional" continue elif arg_spec.arg_name: args.append(sge.Kwarg(this=arg_spec.arg_name, expression=operand.expr)) diff --git a/packages/bigframes/bigframes/core/nodes.py b/packages/bigframes/bigframes/core/nodes.py index e51ae61c725e..e88a78fae5cd 100644 --- a/packages/bigframes/bigframes/core/nodes.py +++ b/packages/bigframes/bigframes/core/nodes.py @@ -40,7 +40,6 @@ from bigframes.core.ordering import OrderingExpression, RowOrdering if typing.TYPE_CHECKING: - import bigframes.core.ordering as orderings import bigframes.session diff --git a/packages/bigframes/bigframes/operations/__init__.py b/packages/bigframes/bigframes/operations/__init__.py index dd036bec5a26..473204d0c672 100644 --- a/packages/bigframes/bigframes/operations/__init__.py +++ b/packages/bigframes/bigframes/operations/__init__.py @@ -426,6 +426,7 @@ "GeoStDistanceOp", "GeoStLengthOp", "GeoStRegionStatsOp", + "GeoStSimplifyOp", # AI ops "AIClassify", "AIGenerate", diff --git a/packages/bigframes/bigframes/operations/googlesql/__init__.py b/packages/bigframes/bigframes/operations/googlesql/__init__.py index 0100784bda1d..edec5b84f8ec 100644 --- a/packages/bigframes/bigframes/operations/googlesql/__init__.py +++ b/packages/bigframes/bigframes/operations/googlesql/__init__.py @@ -17,11 +17,8 @@ import dataclasses import typing -from enum import Enum, auto -from typing import Callable, Iterable import bigframes.operations as ops -import bigframes.operations.type as op_typing from bigframes import dtypes diff --git a/packages/bigframes/bigframes/operations/googlesql/aead.py b/packages/bigframes/bigframes/operations/googlesql/aead.py index 8c461b3ff04b..f719d7d69893 100644 --- a/packages/bigframes/bigframes/operations/googlesql/aead.py +++ b/packages/bigframes/bigframes/operations/googlesql/aead.py @@ -18,15 +18,11 @@ from __future__ import annotations -import datetime -import decimal -from typing import Any, Literal, Optional, TypeVar, Union +from typing import Literal, Union import bigframes.core.col -import bigframes.core.expression as ex import bigframes.core.googlesql import bigframes.core.sentinels as sentinels -import bigframes.operations as ops import bigframes.series as series from bigframes import dtypes from bigframes.operations import googlesql diff --git a/packages/bigframes/bigframes/operations/googlesql/global_namespace/aead_encryption.py b/packages/bigframes/bigframes/operations/googlesql/global_namespace/aead_encryption.py index dd67027287a8..4613ddd7e6df 100644 --- a/packages/bigframes/bigframes/operations/googlesql/global_namespace/aead_encryption.py +++ b/packages/bigframes/bigframes/operations/googlesql/global_namespace/aead_encryption.py @@ -18,15 +18,11 @@ from __future__ import annotations -import datetime -import decimal -from typing import Any, Literal, Optional, TypeVar, Union +from typing import Literal, Union import bigframes.core.col -import bigframes.core.expression as ex import bigframes.core.googlesql import bigframes.core.sentinels as sentinels -import bigframes.operations as ops import bigframes.series as series from bigframes import dtypes from bigframes.operations import googlesql diff --git a/packages/bigframes/bigframes/operations/googlesql/global_namespace/array.py b/packages/bigframes/bigframes/operations/googlesql/global_namespace/array.py index 3b0f93656442..c8d24aa98df5 100644 --- a/packages/bigframes/bigframes/operations/googlesql/global_namespace/array.py +++ b/packages/bigframes/bigframes/operations/googlesql/global_namespace/array.py @@ -18,15 +18,12 @@ from __future__ import annotations -import datetime import decimal -from typing import Any, Literal, Optional, TypeVar, Union +from typing import Any, Literal, Union import bigframes.core.col -import bigframes.core.expression as ex import bigframes.core.googlesql import bigframes.core.sentinels as sentinels -import bigframes.operations as ops import bigframes.series as series from bigframes import dtypes from bigframes.operations import googlesql @@ -301,7 +298,6 @@ def _ARRAY_TO_STRING_SIG(*args): # Pad args with None to match max expected args args = args + (None,) * (3 - len(args)) # Try matching impl 0 - any1_val = None match_ok = True if match_ok and args[0] is not None: if not dtypes.is_array_like(args[0]): @@ -338,7 +334,6 @@ def _ARRAY_TO_STRING_SIG(*args): return dtypes.STRING_DTYPE # Try matching impl 1 - any1_val = None match_ok = True if match_ok and args[0] is not None: if not dtypes.is_array_like(args[0]): @@ -432,7 +427,6 @@ def _GENERATE_ARRAY_SIG(*args): # Pad args with None to match max expected args args = args + (None,) * (3 - len(args)) # Try matching impl 0 - any1_val = None match_ok = True if match_ok and args[0] is not None: try: @@ -456,7 +450,6 @@ def _GENERATE_ARRAY_SIG(*args): return dtypes.list_type(dtypes.INT_DTYPE) # Try matching impl 1 - any1_val = None match_ok = True if match_ok and args[0] is not None: try: @@ -489,7 +482,6 @@ def _GENERATE_ARRAY_SIG(*args): return dtypes.list_type(dtypes.NUMERIC_DTYPE) # Try matching impl 2 - any1_val = None match_ok = True if match_ok and args[0] is not None: try: diff --git a/packages/bigframes/bigframes/session/bq_caching_executor.py b/packages/bigframes/bigframes/session/bq_caching_executor.py index 9948480d5cac..19f26bd9c322 100644 --- a/packages/bigframes/bigframes/session/bq_caching_executor.py +++ b/packages/bigframes/bigframes/session/bq_caching_executor.py @@ -19,7 +19,7 @@ import dataclasses import math import threading -from typing import Literal, Mapping, Optional, Sequence, Tuple +from typing import Literal, Optional, Sequence, Tuple import google.api_core.exceptions import google.cloud.bigquery_storage_v1 @@ -41,8 +41,7 @@ import bigframes.session.metrics import bigframes.session.planner import bigframes.session.temporary_storage -from bigframes._config import ComputeOptions -from bigframes.core import bq_data, compile, guid, identifiers, local_data, rewrite +from bigframes.core import compile, guid, identifiers, local_data, rewrite from bigframes.core.compile.sqlglot import sql as sg_sql from bigframes.core.compile.sqlglot import sqlglot_ir from bigframes.session import ( diff --git a/packages/bigframes/bigframes/session/clients.py b/packages/bigframes/bigframes/session/clients.py index f3046c7cbe0f..49822bac16b6 100644 --- a/packages/bigframes/bigframes/session/clients.py +++ b/packages/bigframes/bigframes/session/clients.py @@ -14,9 +14,7 @@ """Clients manages the connection to Google APIs.""" -import os import threading -import typing from typing import Optional, Sequence, Tuple import google.api_core.client_info diff --git a/packages/bigframes/bigframes/session/direct_gbq_execution.py b/packages/bigframes/bigframes/session/direct_gbq_execution.py index 24f48fe7d54b..6b1ac76d28a2 100644 --- a/packages/bigframes/bigframes/session/direct_gbq_execution.py +++ b/packages/bigframes/bigframes/session/direct_gbq_execution.py @@ -14,7 +14,7 @@ from __future__ import annotations import asyncio -from typing import Callable, Literal, Mapping, Optional, Tuple +from typing import Literal, Mapping, Optional, Tuple import google.api_core.exceptions import google.cloud.bigquery.job as bq_job @@ -24,15 +24,12 @@ import bigframes import bigframes.core.compile -import bigframes.core.compile.ibis_compiler.ibis_compiler as ibis_compiler -import bigframes.core.compile.sqlglot.compiler as sqlglot_compiler import bigframes.core.events -import bigframes.core.schema as schemata import bigframes.session._io.bigquery as bq_io import bigframes.session.metrics from bigframes import exceptions as bfe from bigframes.core import bq_data, compile, nodes -from bigframes.core.compile.configs import CompileRequest, CompileResult +from bigframes.core.compile.configs import CompileRequest from bigframes.session import execution_spec, executor, semi_executor _WRITE_DISPOSITIONS = { diff --git a/packages/bigframes/bigframes/session/execution_spec.py b/packages/bigframes/bigframes/session/execution_spec.py index fc5c11c1c403..9a095b23a8d7 100644 --- a/packages/bigframes/bigframes/session/execution_spec.py +++ b/packages/bigframes/bigframes/session/execution_spec.py @@ -15,7 +15,7 @@ from __future__ import annotations import dataclasses -from typing import TYPE_CHECKING, Literal, Mapping, Optional, Union +from typing import Literal, Mapping, Optional, Union from google.cloud import bigquery diff --git a/packages/bigframes/bigframes/session/proxy_executor.py b/packages/bigframes/bigframes/session/proxy_executor.py index c4fe6584bd27..8f673a8bd1f4 100644 --- a/packages/bigframes/bigframes/session/proxy_executor.py +++ b/packages/bigframes/bigframes/session/proxy_executor.py @@ -14,10 +14,9 @@ from __future__ import annotations -import typing import uuid import warnings -from typing import Mapping, Optional +from typing import Optional import google.cloud.bigquery as bigquery import google.cloud.exceptions @@ -30,7 +29,6 @@ execution_spec, executor, loader, - metrics, temporary_storage, ) diff --git a/packages/bigframes/noxfile.py b/packages/bigframes/noxfile.py index 0a60281bd35a..c8d08c6787d0 100644 --- a/packages/bigframes/noxfile.py +++ b/packages/bigframes/noxfile.py @@ -149,7 +149,7 @@ def lint(session): "ruff", "check", "--select", - "I", + "I,F", f"--target-version=py{ALL_PYTHON[0].replace('.', '')}", "--line-length=88", # Standard Black line length *LINT_PATHS, @@ -201,7 +201,7 @@ def format(session): "ruff", "check", "--select", - "I", + "I,F", "--fix", f"--target-version=py{ALL_PYTHON[0].replace('.', '')}", "--line-length=88", # Standard Black line length diff --git a/packages/bigframes/tests/system/small/bigquery/test_json.py b/packages/bigframes/tests/system/small/bigquery/test_json.py index c83d38a49067..4fc4d2283ece 100644 --- a/packages/bigframes/tests/system/small/bigquery/test_json.py +++ b/packages/bigframes/tests/system/small/bigquery/test_json.py @@ -12,7 +12,6 @@ # See the License for the specific language governing permissions and # limitations under the License. -import json import geopandas as gpd # type: ignore import pandas as pd diff --git a/packages/bigframes/tests/system/small/engines/conftest.py b/packages/bigframes/tests/system/small/engines/conftest.py index 758b697f25e2..823ba9806d58 100644 --- a/packages/bigframes/tests/system/small/engines/conftest.py +++ b/packages/bigframes/tests/system/small/engines/conftest.py @@ -60,7 +60,6 @@ def bq_engine( bigquery_client: bigquery.Client, bigquery_storage_read_client: google.cloud.bigquery_storage_v1.BigQueryReadClient, ): - publisher = events.Publisher() return direct_gbq_execution.DirectGbqExecutor( bigquery_client, bqstoragereadclient=bigquery_storage_read_client, diff --git a/packages/bigframes/tests/system/small/engines/test_aggregation.py b/packages/bigframes/tests/system/small/engines/test_aggregation.py index e6e4ac571578..669eae9ebf75 100644 --- a/packages/bigframes/tests/system/small/engines/test_aggregation.py +++ b/packages/bigframes/tests/system/small/engines/test_aggregation.py @@ -19,12 +19,11 @@ from bigframes.core import ( agg_expressions, array_value, - events, expression, identifiers, nodes, ) -from bigframes.session import direct_gbq_execution, polars_executor +from bigframes.session import polars_executor from bigframes.testing.engine_utils import assert_equivalence_execution pytest.importorskip("polars") diff --git a/packages/bigframes/tests/system/small/engines/test_googlesql_ops.py b/packages/bigframes/tests/system/small/engines/test_googlesql_ops.py index 2ea7070bbd30..e47308fa3557 100644 --- a/packages/bigframes/tests/system/small/engines/test_googlesql_ops.py +++ b/packages/bigframes/tests/system/small/engines/test_googlesql_ops.py @@ -12,13 +12,11 @@ # See the License for the specific language governing permissions and # limitations under the License. -import re import pytest -import bigframes.dtypes import bigframes.operations.googlesql as gsql_ops -from bigframes.core import array_value, expression +from bigframes.core import array_value from bigframes.session import polars_executor from bigframes.testing.engine_utils import assert_equivalence_execution diff --git a/packages/bigframes/tests/system/small/engines/test_windowing.py b/packages/bigframes/tests/system/small/engines/test_windowing.py index fcc1dad928f8..8235fe0ef6bf 100644 --- a/packages/bigframes/tests/system/small/engines/test_windowing.py +++ b/packages/bigframes/tests/system/small/engines/test_windowing.py @@ -13,19 +13,17 @@ # limitations under the License. import pytest -from google.cloud import bigquery import bigframes.operations.aggregations as agg_ops from bigframes.core import ( agg_expressions, array_value, - events, expression, identifiers, nodes, window_spec, ) -from bigframes.session import direct_gbq_execution, polars_executor +from bigframes.session import polars_executor from bigframes.testing.engine_utils import assert_equivalence_execution pytest.importorskip("polars") diff --git a/packages/bigframes/tests/unit/core/sql/test_ml.py b/packages/bigframes/tests/unit/core/sql/test_ml.py index d2f789fc6309..a03d8cd805ab 100644 --- a/packages/bigframes/tests/unit/core/sql/test_ml.py +++ b/packages/bigframes/tests/unit/core/sql/test_ml.py @@ -15,11 +15,7 @@ import pytest import bigframes.bigquery as bbq -import bigframes.core.col as col -import bigframes.core.expression as ex import bigframes.core.sql.ml -import bigframes.dtypes as dtypes -import bigframes.operations.numeric_ops as numeric_ops pytest.importorskip("pytest_snapshot") diff --git a/packages/bigframes/tests/unit/session/test_proxy_executor.py b/packages/bigframes/tests/unit/session/test_proxy_executor.py index a1a8f168995b..8e3760cdb035 100644 --- a/packages/bigframes/tests/unit/session/test_proxy_executor.py +++ b/packages/bigframes/tests/unit/session/test_proxy_executor.py @@ -16,12 +16,9 @@ import google.cloud.bigquery as bigquery import google.cloud.exceptions -import pyarrow as pa import pytest import bigframes -import bigframes.core.nodes as nodes -import bigframes.core.schema as schemata from bigframes.session.proxy_executor import DualCompilerProxyExecutor diff --git a/packages/bigframes/tests/unit/test_pandas.py b/packages/bigframes/tests/unit/test_pandas.py index 7afb0b5dfdb3..c85d92e024da 100644 --- a/packages/bigframes/tests/unit/test_pandas.py +++ b/packages/bigframes/tests/unit/test_pandas.py @@ -14,7 +14,6 @@ import inspect import re -import sys import unittest.mock as mock import pandas as pd diff --git a/packages/bigframes/third_party/bigframes_vendored/ibis/expr/types/temporal.py b/packages/bigframes/third_party/bigframes_vendored/ibis/expr/types/temporal.py index ded0ec6b009c..91e978d54023 100644 --- a/packages/bigframes/third_party/bigframes_vendored/ibis/expr/types/temporal.py +++ b/packages/bigframes/third_party/bigframes_vendored/ibis/expr/types/temporal.py @@ -7,6 +7,7 @@ import bigframes_vendored.ibis.expr.datashape as ds import bigframes_vendored.ibis.expr.datatypes as dt import bigframes_vendored.ibis.expr.operations as ops +from bigframes_vendored import ibis from bigframes_vendored.ibis import util from bigframes_vendored.ibis.common.annotations import annotated from bigframes_vendored.ibis.common.temporal import IntervalUnit