chore(py): add unused-noqa lint rule (#12615)

This commit is contained in:
Harshal Sheth 2025-02-13 08:28:48 -08:00 committed by GitHub
parent 2d762f02ac
commit 79f844b208
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
32 changed files with 42 additions and 35 deletions

View File

@ -44,6 +44,7 @@ extend-select = [
"G010", # logging.warn -> logging.warning "G010", # logging.warn -> logging.warning
"I", # isort "I", # isort
"TID", # flake8-tidy-imports "TID", # flake8-tidy-imports
"RUF100", # unused-noqa
] ]
ignore = [ ignore = [
"E501", # Line length violations (handled by formatter) "E501", # Line length violations (handled by formatter)

View File

@ -60,7 +60,7 @@ if TYPE_CHECKING:
# To placate mypy on Airflow versions that don't have the listener API, # To placate mypy on Airflow versions that don't have the listener API,
# we define a dummy hookimpl that's an identity function. # we define a dummy hookimpl that's an identity function.
def hookimpl(f: _F) -> _F: # type: ignore[misc] # noqa: F811 def hookimpl(f: _F) -> _F: # type: ignore[misc]
return f return f
else: else:

View File

@ -1,7 +1,7 @@
import pathlib import pathlib
import site import site
from datahub.testing.pytest_hooks import ( # noqa: F401,E402 from datahub.testing.pytest_hooks import ( # noqa: F401
load_golden_flags, load_golden_flags,
pytest_addoption, pytest_addoption,
) )

View File

@ -44,6 +44,7 @@ extend-select = [
"G010", # logging.warn -> logging.warning "G010", # logging.warn -> logging.warning
"I", # isort "I", # isort
"TID", # flake8-tidy-imports "TID", # flake8-tidy-imports
"RUF100", # unused-noqa
] ]
ignore = [ ignore = [
"E501", # Line length violations (handled by formatter) "E501", # Line length violations (handled by formatter)

View File

@ -1,4 +1,4 @@
from datahub.testing.pytest_hooks import ( # noqa: F401,E402 from datahub.testing.pytest_hooks import ( # noqa: F401
load_golden_flags, load_golden_flags,
pytest_addoption, pytest_addoption,
) )

View File

@ -44,6 +44,7 @@ extend-select = [
"G010", # logging.warn -> logging.warning "G010", # logging.warn -> logging.warning
"I", # isort "I", # isort
"TID", # flake8-tidy-imports "TID", # flake8-tidy-imports
"RUF100", # unused-noqa
] ]
ignore = [ ignore = [
"E501", # Line length violations (handled by formatter) "E501", # Line length violations (handled by formatter)

View File

@ -1,5 +1,5 @@
from datahub.testing.docker_utils import docker_compose_runner # noqa: F401 from datahub.testing.docker_utils import docker_compose_runner # noqa: F401
from datahub.testing.pytest_hooks import ( # noqa: F401,E402 from datahub.testing.pytest_hooks import ( # noqa: F401
load_golden_flags, load_golden_flags,
pytest_addoption, pytest_addoption,
) )

View File

@ -44,6 +44,7 @@ extend-select = [
"G010", # logging.warn -> logging.warning "G010", # logging.warn -> logging.warning
"I", # isort "I", # isort
"TID", # flake8-tidy-imports "TID", # flake8-tidy-imports
"RUF100", # unused-noqa
] ]
ignore = [ ignore = [
"E501", # Line length violations (handled by formatter) "E501", # Line length violations (handled by formatter)

View File

@ -29,6 +29,7 @@ extend-select = [
"G010", # logging.warn -> logging.warning "G010", # logging.warn -> logging.warning
"I", # isort "I", # isort
"TID", # flake8-tidy-imports "TID", # flake8-tidy-imports
"RUF100", # unused-noqa
] ]
extend-ignore = [ extend-ignore = [
"E501", # Handled by formatter "E501", # Handled by formatter
@ -38,6 +39,8 @@ extend-ignore = [
"E203", # Ignore whitespace before ':' (matches Black) "E203", # Ignore whitespace before ':' (matches Black)
"B019", # Allow usages of functools.lru_cache "B019", # Allow usages of functools.lru_cache
"B008", # Allow function call in argument defaults "B008", # Allow function call in argument defaults
"RUF012", # mutable-class-default; incompatible with pydantic
"RUF015", # unnecessary-iterable-allocation-for-first-element
# TODO: Enable these later # TODO: Enable these later
"B006", # Mutable args "B006", # Mutable args
"B017", # Do not assert blind exception "B017", # Do not assert blind exception

View File

@ -430,7 +430,7 @@ def detect_quickstart_arch(arch: Optional[str]) -> Architectures:
return quickstart_arch return quickstart_arch
@docker.command() # noqa: C901 @docker.command()
@click.option( @click.option(
"--version", "--version",
type=str, type=str,
@ -592,7 +592,7 @@ def detect_quickstart_arch(arch: Optional[str]) -> Architectures:
"arch", "arch",
] ]
) )
def quickstart( # noqa: C901 def quickstart(
version: Optional[str], version: Optional[str],
build_locally: bool, build_locally: bool,
pull_images: bool, pull_images: bool,

View File

@ -20,7 +20,7 @@ from pydantic import BaseModel, Extra, ValidationError
from pydantic.fields import Field from pydantic.fields import Field
from typing_extensions import Protocol, Self from typing_extensions import Protocol, Self
from datahub.configuration._config_enum import ConfigEnum as ConfigEnum # noqa: I250 from datahub.configuration._config_enum import ConfigEnum as ConfigEnum
from datahub.configuration.pydantic_migration_helpers import PYDANTIC_VERSION_2 from datahub.configuration.pydantic_migration_helpers import PYDANTIC_VERSION_2
from datahub.utilities.dedup_list import deduplicate_list from datahub.utilities.dedup_list import deduplicate_list

View File

@ -3,7 +3,7 @@ from enum import Enum, auto
from typing import Callable, Dict, Optional, Type from typing import Callable, Dict, Optional, Type
from datahub.ingestion.api.common import PipelineContext from datahub.ingestion.api.common import PipelineContext
from datahub.ingestion.api.source import ( # noqa: I250 from datahub.ingestion.api.source import (
Source, Source,
SourceCapability as SourceCapability, SourceCapability as SourceCapability,
) )

View File

@ -33,7 +33,7 @@ from datahub.emitter.mce_builder import DEFAULT_ENV, Aspect
from datahub.emitter.mcp import MetadataChangeProposalWrapper from datahub.emitter.mcp import MetadataChangeProposalWrapper
from datahub.emitter.rest_emitter import DatahubRestEmitter from datahub.emitter.rest_emitter import DatahubRestEmitter
from datahub.emitter.serialization_helper import post_json_transform from datahub.emitter.serialization_helper import post_json_transform
from datahub.ingestion.graph.config import ( # noqa: I250; TODO: Remove this alias from datahub.ingestion.graph.config import (
DatahubClientConfig as DatahubClientConfig, DatahubClientConfig as DatahubClientConfig,
) )
from datahub.ingestion.graph.connections import ( from datahub.ingestion.graph.connections import (

View File

@ -439,7 +439,7 @@ class Pipeline:
return True return True
return False return False
def run(self) -> None: # noqa: C901 def run(self) -> None:
with contextlib.ExitStack() as stack: with contextlib.ExitStack() as stack:
if self.config.flags.generate_memory_profiles: if self.config.flags.generate_memory_profiles:
import memray import memray

View File

@ -923,7 +923,7 @@ class LookerExplore:
tags=cast(List, dict.get("tags")) if dict.get("tags") is not None else [], tags=cast(List, dict.get("tags")) if dict.get("tags") is not None else [],
) )
@classmethod # noqa: C901 @classmethod
def from_api( # noqa: C901 def from_api( # noqa: C901
cls, cls,
model: str, model: str,
@ -931,7 +931,7 @@ class LookerExplore:
client: LookerAPI, client: LookerAPI,
reporter: SourceReport, reporter: SourceReport,
source_config: LookerDashboardSourceConfig, source_config: LookerDashboardSourceConfig,
) -> Optional["LookerExplore"]: # noqa: C901 ) -> Optional["LookerExplore"]:
try: try:
explore = client.lookml_model_explore(model, explore_name) explore = client.lookml_model_explore(model, explore_name)
views: Set[str] = set() views: Set[str] = set()
@ -1183,7 +1183,7 @@ class LookerExplore:
base_url = remove_port_from_url(base_url) base_url = remove_port_from_url(base_url)
return f"{base_url}/embed/explore/{self.model_name}/{self.name}" return f"{base_url}/embed/explore/{self.model_name}/{self.name}"
def _to_metadata_events( # noqa: C901 def _to_metadata_events(
self, self,
config: LookerCommonConfig, config: LookerCommonConfig,
reporter: SourceReport, reporter: SourceReport,

View File

@ -383,7 +383,7 @@ class LookerDashboardSource(TestableSource, StatefulIngestionSourceBase):
self.reachable_explores[(model, explore)].append(via) self.reachable_explores[(model, explore)].append(via)
def _get_looker_dashboard_element( # noqa: C901 def _get_looker_dashboard_element(
self, element: DashboardElement self, element: DashboardElement
) -> Optional[LookerDashboardElement]: ) -> Optional[LookerDashboardElement]:
# Dashboard elements can use raw usage_queries against explores # Dashboard elements can use raw usage_queries against explores

View File

@ -488,7 +488,7 @@ class NifiSource(Source):
def get_report(self) -> SourceReport: def get_report(self) -> SourceReport:
return self.report return self.report
def update_flow(self, pg_flow_dto: Dict, recursion_level: int = 0) -> None: # noqa: C901 def update_flow(self, pg_flow_dto: Dict, recursion_level: int = 0) -> None:
""" """
Update self.nifi_flow with contents of the input process group `pg_flow_dto` Update self.nifi_flow with contents of the input process group `pg_flow_dto`
""" """
@ -894,7 +894,7 @@ class NifiSource(Source):
if not delete_response.ok: if not delete_response.ok:
logger.error("failed to delete provenance ", provenance_uri) logger.error("failed to delete provenance ", provenance_uri)
def construct_workunits(self) -> Iterable[MetadataWorkUnit]: # noqa: C901 def construct_workunits(self) -> Iterable[MetadataWorkUnit]:
rootpg = self.nifi_flow.root_process_group rootpg = self.nifi_flow.root_process_group
flow_name = rootpg.name # self.config.site_name flow_name = rootpg.name # self.config.site_name
flow_urn = self.make_flow_urn() flow_urn = self.make_flow_urn()

View File

@ -270,7 +270,7 @@ class APISource(Source, ABC):
mce = MetadataChangeEvent(proposedSnapshot=dataset_snapshot) mce = MetadataChangeEvent(proposedSnapshot=dataset_snapshot)
return ApiWorkUnit(id=dataset_name, mce=mce) return ApiWorkUnit(id=dataset_name, mce=mce)
def get_workunits_internal(self) -> Iterable[ApiWorkUnit]: # noqa: C901 def get_workunits_internal(self) -> Iterable[ApiWorkUnit]:
config = self.config config = self.config
sw_dict = self.config.get_swagger() sw_dict = self.config.get_swagger()

View File

@ -111,7 +111,7 @@ def check_sw_version(sw_dict: dict) -> None:
) )
def get_endpoints(sw_dict: dict) -> dict: # noqa: C901 def get_endpoints(sw_dict: dict) -> dict:
""" """
Get all the URLs, together with their description and the tags Get all the URLs, together with their description and the tags
""" """

View File

@ -33,7 +33,7 @@ class CatalogItem(BaseModel):
) )
@validator("display_name", always=True) @validator("display_name", always=True)
def validate_diplay_name(cls, value, values): # noqa: N805 def validate_diplay_name(cls, value, values):
if values["created_by"]: if values["created_by"]:
return values["created_by"].split("\\")[-1] return values["created_by"].split("\\")[-1]
return "" return ""

View File

@ -55,7 +55,7 @@ try:
except ImportError: except ImportError:
_F = typing.TypeVar("_F", bound=typing.Callable[..., typing.Any]) _F = typing.TypeVar("_F", bound=typing.Callable[..., typing.Any])
def override(f: _F, /) -> _F: # noqa: F811 def override(f: _F, /) -> _F:
return f return f
@ -104,7 +104,7 @@ class CustomAthenaRestDialect(AthenaRestDialect):
return "\n".join([r for r in res]) return "\n".join([r for r in res])
@typing.no_type_check @typing.no_type_check
def _get_column_type(self, type_: Union[str, Dict[str, Any]]) -> TypeEngine: # noqa: C901 def _get_column_type(self, type_: Union[str, Dict[str, Any]]) -> TypeEngine:
"""Derives the data type of the Athena column. """Derives the data type of the Athena column.
This method is overwritten to extend the behavior of PyAthena. This method is overwritten to extend the behavior of PyAthena.

View File

@ -67,7 +67,7 @@ TableKey = namedtuple("TableKey", ["schema", "table"])
class HiveMetastoreConfigMode(StrEnum): class HiveMetastoreConfigMode(StrEnum):
hive: str = "hive" # noqa: F811 hive: str = "hive"
presto: str = "presto" presto: str = "presto"
presto_on_hive: str = "presto-on-hive" presto_on_hive: str = "presto-on-hive"
trino: str = "trino" trino: str = "trino"

View File

@ -401,7 +401,7 @@ class SQLServerSource(SQLAlchemySource):
data_job.add_property(name=data_name, value=str(data_value)) data_job.add_property(name=data_name, value=str(data_value))
yield from self.construct_job_workunits(data_job) yield from self.construct_job_workunits(data_job)
def loop_stored_procedures( # noqa: C901 def loop_stored_procedures(
self, self,
inspector: Inspector, inspector: Inspector,
schema: str, schema: str,

View File

@ -635,7 +635,7 @@ class SQLAlchemySource(StatefulIngestionSourceBase, TestableSource):
return None return None
def loop_tables( # noqa: C901 def loop_tables(
self, self,
inspector: Inspector, inspector: Inspector,
schema: str, schema: str,

View File

@ -649,7 +649,7 @@ ORDER by DataBaseName, TableName;
) )
# Disabling the below because the cached view definition is not the view definition the column in tablesv actually holds the last statement executed against the object... not necessarily the view definition # Disabling the below because the cached view definition is not the view definition the column in tablesv actually holds the last statement executed against the object... not necessarily the view definition
# setattr( # noqa: B010 # setattr(
# TeradataDialect, # TeradataDialect,
# "get_view_definition", # "get_view_definition",
# lambda self, connection, view_name, schema=None, **kw: optimized_get_view_definition( # lambda self, connection, view_name, schema=None, **kw: optimized_get_view_definition(
@ -746,7 +746,7 @@ ORDER by DataBaseName, TableName;
else: else:
raise Exception("Unable to get database name from Sqlalchemy inspector") raise Exception("Unable to get database name from Sqlalchemy inspector")
def cached_loop_tables( # noqa: C901 def cached_loop_tables(
self, self,
inspector: Inspector, inspector: Inspector,
schema: str, schema: str,
@ -782,7 +782,7 @@ ORDER by DataBaseName, TableName;
break break
return description, properties, location return description, properties, location
def cached_loop_views( # noqa: C901 def cached_loop_views(
self, self,
inspector: Inspector, inspector: Inspector,
schema: str, schema: str,

View File

@ -13,7 +13,7 @@ from datahub.ingestion.graph.client import DataHubGraph
from datahub.ingestion.source.bigquery_v2.bigquery_audit import BigqueryTableIdentifier from datahub.ingestion.source.bigquery_v2.bigquery_audit import BigqueryTableIdentifier
from datahub.metadata.schema_classes import SchemaFieldClass, SchemaMetadataClass from datahub.metadata.schema_classes import SchemaFieldClass, SchemaMetadataClass
from datahub.metadata.urns import DataPlatformUrn from datahub.metadata.urns import DataPlatformUrn
from datahub.sql_parsing._models import _TableName as _TableName # noqa: I250 from datahub.sql_parsing._models import _TableName as _TableName
from datahub.sql_parsing.sql_parsing_common import PLATFORMS_WITH_CASE_SENSITIVE_TABLES from datahub.sql_parsing.sql_parsing_common import PLATFORMS_WITH_CASE_SENSITIVE_TABLES
from datahub.utilities.file_backed_collections import ConnectionWrapper, FileBackedDict from datahub.utilities.file_backed_collections import ConnectionWrapper, FileBackedDict
from datahub.utilities.urns.field_paths import get_simple_field_path_from_v2_field_path from datahub.utilities.urns.field_paths import get_simple_field_path_from_v2_field_path

View File

@ -473,7 +473,7 @@ def _create_table_ddl_cll(
return column_lineage return column_lineage
def _select_statement_cll( # noqa: C901 def _select_statement_cll(
statement: _SupportedColumnLineageTypes, statement: _SupportedColumnLineageTypes,
dialect: sqlglot.Dialect, dialect: sqlglot.Dialect,
root_scope: sqlglot.optimizer.Scope, root_scope: sqlglot.optimizer.Scope,

View File

@ -293,9 +293,9 @@ def is_client_server_compatible(client: VersionStats, server: VersionStats) -> i
return server.version.micro - client.version.micro return server.version.micro - client.version.micro
def _maybe_print_upgrade_message( # noqa: C901 def _maybe_print_upgrade_message(
version_stats: Optional[DataHubVersionStats], version_stats: Optional[DataHubVersionStats],
) -> None: # noqa: C901 ) -> None:
days_before_cli_stale = 7 days_before_cli_stale = 7
days_before_quickstart_stale = 7 days_before_quickstart_stale = 7

View File

@ -171,7 +171,7 @@ class OperationProcessor:
self.owner_source_type = owner_source_type self.owner_source_type = owner_source_type
self.match_nested_props = match_nested_props self.match_nested_props = match_nested_props
def process(self, raw_props: Mapping[str, Any]) -> Dict[str, Any]: # noqa: C901 def process(self, raw_props: Mapping[str, Any]) -> Dict[str, Any]:
# Defining the following local variables - # Defining the following local variables -
# operations_map - the final resulting map when operations are processed. # operations_map - the final resulting map when operations are processed.
# Against each operation the values to be applied are stored. # Against each operation the values to be applied are stored.

View File

@ -41,7 +41,7 @@ try:
except ImportError: except ImportError:
pass pass
import freezegun # noqa: F401,E402 import freezegun # noqa: E402
# The freezegun library has incomplete type annotations. # The freezegun library has incomplete type annotations.
# See https://github.com/spulec/freezegun/issues/469 # See https://github.com/spulec/freezegun/issues/469

View File

@ -4,7 +4,7 @@ import subprocess
import pytest import pytest
from datahub.testing.docker_utils import ( # noqa: F401,I250 from datahub.testing.docker_utils import (
docker_compose_runner as docker_compose_runner, docker_compose_runner as docker_compose_runner,
is_responsive as is_responsive, is_responsive as is_responsive,
wait_for_port as wait_for_port, wait_for_port as wait_for_port,

View File

@ -114,7 +114,7 @@ AND
) )
OR OR
protoPayload.metadata.tableDataRead.reason = "JOB" protoPayload.metadata.tableDataRead.reason = "JOB"
)""" # noqa: W293 )"""
corrected_start_time = config.start_time - config.max_query_duration corrected_start_time = config.start_time - config.max_query_duration
corrected_end_time = config.end_time + config.max_query_duration corrected_end_time = config.end_time + config.max_query_duration