diff --git a/docs/conf.py b/docs/conf.py index 261fd0f00a..31ed829fe9 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -224,11 +224,11 @@ scm_web = "https://github.com/" + REPO + "blob/" + branch # Store variables in the epilogue so they are globally available. -rst_epilog = """ -.. |SCM_WEB| replace:: {s} -.. |SCM_RAW_WEB| replace:: {sr} -.. |SCM_BRANCH| replace:: {b} -""".format(s=scm_web, sr=scm_raw_web, b=branch) +rst_epilog = f""" +.. |SCM_WEB| replace:: {scm_web} +.. |SCM_RAW_WEB| replace:: {scm_raw_web} +.. |SCM_BRANCH| replace:: {branch} +""" # used to have links to repo files extlinks = { diff --git a/exporter/opentelemetry-exporter-otlp-proto-common/src/opentelemetry/exporter/otlp/proto/common/_internal/__init__.py b/exporter/opentelemetry-exporter-otlp-proto-common/src/opentelemetry/exporter/otlp/proto/common/_internal/__init__.py index 200644368d..f1abcfc80a 100644 --- a/exporter/opentelemetry-exporter-otlp-proto-common/src/opentelemetry/exporter/otlp/proto/common/_internal/__init__.py +++ b/exporter/opentelemetry-exporter-otlp-proto-common/src/opentelemetry/exporter/otlp/proto/common/_internal/__init__.py @@ -170,7 +170,7 @@ def _get_resource_data( resource_class( **{ "resource": collector_resource, - "scope_{}".format(name): scope_data.values(), + f"scope_{name}": scope_data.values(), } ) ) diff --git a/exporter/opentelemetry-exporter-otlp-proto-grpc/src/opentelemetry/exporter/otlp/proto/grpc/exporter.py b/exporter/opentelemetry-exporter-otlp-proto-grpc/src/opentelemetry/exporter/otlp/proto/grpc/exporter.py index 89c2608c30..d52f61c8c8 100644 --- a/exporter/opentelemetry-exporter-otlp-proto-grpc/src/opentelemetry/exporter/otlp/proto/grpc/exporter.py +++ b/exporter/opentelemetry-exporter-otlp-proto-grpc/src/opentelemetry/exporter/otlp/proto/grpc/exporter.py @@ -155,9 +155,7 @@ class InvalidCompressionValueException(Exception): def __init__(self, environ_key: str, environ_value: str): super().__init__( - 'Invalid value "{}" for compression envvar {}'.format( - environ_value, environ_key - ) + f'Invalid value "{environ_value}" for compression envvar {environ_key}' ) diff --git a/opentelemetry-api/src/opentelemetry/_logs/_internal/__init__.py b/opentelemetry-api/src/opentelemetry/_logs/_internal/__init__.py index bbcfcddc84..780bcb4843 100644 --- a/opentelemetry-api/src/opentelemetry/_logs/_internal/__init__.py +++ b/opentelemetry-api/src/opentelemetry/_logs/_internal/__init__.py @@ -89,7 +89,7 @@ def __init__( observed_timestamp: Optional[int] = None, trace_id: Optional[int] = None, span_id: Optional[int] = None, - trace_flags: Optional["TraceFlags"] = None, + trace_flags: Optional[TraceFlags] = None, severity_text: Optional[str] = None, severity_number: Optional[SeverityNumber] = None, body: AnyValue = None, @@ -104,7 +104,7 @@ def __init__( context: Optional[Context] = None, trace_id: Optional[int] = None, span_id: Optional[int] = None, - trace_flags: Optional["TraceFlags"] = None, + trace_flags: Optional[TraceFlags] = None, severity_text: Optional[str] = None, severity_number: Optional[SeverityNumber] = None, body: AnyValue = None, @@ -430,7 +430,7 @@ def get_logger( logger_provider: Optional[LoggerProvider] = None, schema_url: Optional[str] = None, attributes: Optional[_ExtendedAttributes] = None, -) -> "Logger": +) -> Logger: """Returns a `Logger` for use within a python process. This function is a convenience wrapper for diff --git a/opentelemetry-api/src/opentelemetry/context/__init__.py b/opentelemetry-api/src/opentelemetry/context/__init__.py index 39772554d5..9287d5b401 100644 --- a/opentelemetry-api/src/opentelemetry/context/__init__.py +++ b/opentelemetry-api/src/opentelemetry/context/__init__.py @@ -82,7 +82,7 @@ def create_key(keyname: str) -> str: return keyname + "-" + str(uuid4()) -def get_value(key: str, context: typing.Optional[Context] = None) -> "object": +def get_value(key: str, context: typing.Optional[Context] = None) -> object: """To access the local state of a concern, the RuntimeContext API provides a function which takes a context and a key as input, and returns a value. @@ -98,7 +98,7 @@ def get_value(key: str, context: typing.Optional[Context] = None) -> "object": def set_value( - key: str, value: "object", context: typing.Optional[Context] = None + key: str, value: object, context: typing.Optional[Context] = None ) -> Context: """To record the local state of a cross-cutting concern, the RuntimeContext API provides a function which takes a context, a diff --git a/opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/__init__.py b/opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/__init__.py index 1ffcd5a14c..6f476282d6 100644 --- a/opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/__init__.py +++ b/opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/__init__.py @@ -539,11 +539,11 @@ def _shutdown(): # pylint: disable=broad-exception-raised raise Exception( - ( + "MeterProvider.shutdown failed because the following " "metric readers failed during shutdown:\n" f"{metric_reader_error_string}" - ) + ) def get_meter( diff --git a/opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/export/__init__.py b/opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/export/__init__.py index cdbad3e343..78ad78f942 100644 --- a/opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/export/__init__.py +++ b/opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/export/__init__.py @@ -95,7 +95,7 @@ def __init__( preferred_temporality: dict[type, AggregationTemporality] | None = None, preferred_aggregation: dict[ - type, "opentelemetry.sdk.metrics.view.Aggregation" + type, opentelemetry.sdk.metrics.view.Aggregation ] | None = None, ) -> None: @@ -150,7 +150,7 @@ def __init__( preferred_temporality: dict[type, AggregationTemporality] | None = None, preferred_aggregation: dict[ - type, "opentelemetry.sdk.metrics.view.Aggregation" + type, opentelemetry.sdk.metrics.view.Aggregation ] | None = None, ): @@ -217,16 +217,16 @@ def __init__( preferred_temporality: dict[type, AggregationTemporality] | None = None, preferred_aggregation: dict[ - type, "opentelemetry.sdk.metrics.view.Aggregation" + type, opentelemetry.sdk.metrics.view.Aggregation ] | None = None, ) -> None: self._collect: Callable[ [ - "opentelemetry.sdk.metrics.export.MetricReader", + opentelemetry.sdk.metrics.export.MetricReader, AggregationTemporality, ], - Iterable["opentelemetry.sdk.metrics.export.Metric"], + Iterable[opentelemetry.sdk.metrics.export.Metric], ] = None self._instrument_class_temporality = { @@ -350,10 +350,10 @@ def _set_collect_callback( self, func: Callable[ [ - "opentelemetry.sdk.metrics.export.MetricReader", + opentelemetry.sdk.metrics.export.MetricReader, AggregationTemporality, ], - Iterable["opentelemetry.sdk.metrics.export.Metric"], + Iterable[opentelemetry.sdk.metrics.export.Metric], ], ) -> None: """This function is internal to the SDK. It should not be called or overridden by users""" @@ -397,7 +397,7 @@ def __init__( preferred_temporality: dict[type, AggregationTemporality] | None = None, preferred_aggregation: dict[ - type, "opentelemetry.sdk.metrics.view.Aggregation" + type, opentelemetry.sdk.metrics.view.Aggregation ] | None = None, ) -> None: diff --git a/opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/instrument.py b/opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/instrument.py index b01578f47c..77ff4a4ec7 100644 --- a/opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/instrument.py +++ b/opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/instrument.py @@ -52,7 +52,7 @@ def __init__( self, name: str, instrumentation_scope: InstrumentationScope, - measurement_consumer: "opentelemetry.sdk.metrics.MeasurementConsumer", + measurement_consumer: opentelemetry.sdk.metrics.MeasurementConsumer, unit: str = "", description: str = "", ): @@ -84,7 +84,7 @@ def __init__( self, name: str, instrumentation_scope: InstrumentationScope, - measurement_consumer: "opentelemetry.sdk.metrics.MeasurementConsumer", + measurement_consumer: opentelemetry.sdk.metrics.MeasurementConsumer, callbacks: Iterable[CallbackT] | None = None, unit: str = "", description: str = "", @@ -227,7 +227,7 @@ def __init__( self, name: str, instrumentation_scope: InstrumentationScope, - measurement_consumer: "opentelemetry.sdk.metrics.MeasurementConsumer", + measurement_consumer: opentelemetry.sdk.metrics.MeasurementConsumer, unit: str = "", description: str = "", explicit_bucket_boundaries_advisory: Sequence[float] | None = None, diff --git a/opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/measurement_consumer.py b/opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/measurement_consumer.py index c651033051..2d946e91e6 100644 --- a/opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/measurement_consumer.py +++ b/opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/measurement_consumer.py @@ -64,7 +64,7 @@ def __init__( self._sdk_config = sdk_config # should never be mutated self._reader_storages: Mapping[ - "opentelemetry.sdk.metrics.MetricReader", MetricReaderStorage + opentelemetry.sdk.metrics.MetricReader, MetricReaderStorage ] = { reader: MetricReaderStorage( sdk_config, @@ -74,7 +74,7 @@ def __init__( for reader in sdk_config.metric_readers } self._async_instruments: List[ - "opentelemetry.sdk.metrics._internal.instrument._Asynchronous" + opentelemetry.sdk.metrics._internal.instrument._Asynchronous ] = [] def consume_measurement(self, measurement: Measurement) -> None: diff --git a/opentelemetry-sdk/src/opentelemetry/sdk/trace/_sampling_experimental/_trace_state.py b/opentelemetry-sdk/src/opentelemetry/sdk/trace/_sampling_experimental/_trace_state.py index b2fe9fd80a..bc06420f2a 100644 --- a/opentelemetry-sdk/src/opentelemetry/sdk/trace/_sampling_experimental/_trace_state.py +++ b/opentelemetry-sdk/src/opentelemetry/sdk/trace/_sampling_experimental/_trace_state.py @@ -45,11 +45,11 @@ class OtelTraceState: rest: Sequence[str] @staticmethod - def invalid() -> "OtelTraceState": + def invalid() -> OtelTraceState: return OtelTraceState(INVALID_RANDOM_VALUE, INVALID_THRESHOLD, ()) @staticmethod - def parse(trace_state: TraceState | None) -> "OtelTraceState": + def parse(trace_state: TraceState | None) -> OtelTraceState: if not trace_state: return OtelTraceState.invalid() diff --git a/opentelemetry-sdk/src/opentelemetry/sdk/trace/export/__init__.py b/opentelemetry-sdk/src/opentelemetry/sdk/trace/export/__init__.py index a9108b7337..598e91f6b3 100644 --- a/opentelemetry-sdk/src/opentelemetry/sdk/trace/export/__init__.py +++ b/opentelemetry-sdk/src/opentelemetry/sdk/trace/export/__init__.py @@ -63,7 +63,7 @@ class SpanExporter: def export( self, spans: typing.Sequence[ReadableSpan] - ) -> "SpanExportResult": # pyright: ignore[reportReturnType] + ) -> SpanExportResult: # pyright: ignore[reportReturnType] """Exports a batch of telemetry data. Args: diff --git a/opentelemetry-sdk/tests/test_configurator.py b/opentelemetry-sdk/tests/test_configurator.py index 5d971ed1d6..09a270acaf 100644 --- a/opentelemetry-sdk/tests/test_configurator.py +++ b/opentelemetry-sdk/tests/test_configurator.py @@ -261,14 +261,14 @@ def get_description(self) -> str: def should_sample( self, - parent_context: Optional["Context"], + parent_context: Optional[Context], trace_id: int, name: str, kind: SpanKind = None, attributes: Attributes = None, links: Sequence[Link] = None, trace_state: TraceState = None, - ) -> "SamplingResult": + ) -> SamplingResult: return SamplingResult( Decision.RECORD_AND_SAMPLE, None, @@ -290,14 +290,14 @@ def get_description(self) -> str: def should_sample( self, - parent_context: "Context" | None, + parent_context: Context | None, trace_id: int, name: str, kind: SpanKind | None = None, attributes: Attributes = None, links: Sequence[Link] | None = None, trace_state: TraceState | None = None, - ) -> "SamplingResult": + ) -> SamplingResult: return SamplingResult( Decision.RECORD_AND_SAMPLE, None, diff --git a/pyproject.toml b/pyproject.toml index b6970c666d..b619ca912c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -78,6 +78,11 @@ select = [ "PLE", # pylint error "Q", # flake8-quotes "G", # https://docs.astral.sh/ruff/rules/#flake8-logging-format-g + "UP011", # lru-cache-without-parameters + "UP015", # redundant-open-modes + "UP032", # f-string + "UP034", # extraneous-parentheses + "UP037", # quoted-annotation ] ignore = [ diff --git a/scripts/update_sha.py b/scripts/update_sha.py index a0bf76f8b7..9bcde6fedc 100644 --- a/scripts/update_sha.py +++ b/scripts/update_sha.py @@ -40,7 +40,7 @@ def update_sha(sha): yaml = YAML() yaml.preserve_quotes = True for workflow_file in workflow_files: - with open(workflow_file, "r") as file: + with open(workflow_file) as file: workflow = yaml.load(file) workflow["env"]["CONTRIB_REPO_SHA"] = sha with open(workflow_file, "w") as file: diff --git a/shim/opentelemetry-opencensus-shim/src/opentelemetry/shim/opencensus/_patch.py b/shim/opentelemetry-opencensus-shim/src/opentelemetry/shim/opencensus/_patch.py index c3c6e81037..71d0948661 100644 --- a/shim/opentelemetry-opencensus-shim/src/opentelemetry/shim/opencensus/_patch.py +++ b/shim/opentelemetry-opencensus-shim/src/opentelemetry/shim/opencensus/_patch.py @@ -36,7 +36,7 @@ def install_shim( tracer_provider=tracer_provider, ) - @lru_cache() + @lru_cache def cached_shim_tracer(span_context: SpanContext) -> ShimTracer: return ShimTracer( NoopTracer(), diff --git a/shim/opentelemetry-opentracing-shim/src/opentelemetry/shim/opentracing_shim/__init__.py b/shim/opentelemetry-opentracing-shim/src/opentelemetry/shim/opentracing_shim/__init__.py index e7261a0d92..7a3804acc8 100644 --- a/shim/opentelemetry-opentracing-shim/src/opentelemetry/shim/opentracing_shim/__init__.py +++ b/shim/opentelemetry-opentracing-shim/src/opentelemetry/shim/opentracing_shim/__init__.py @@ -131,7 +131,7 @@ _SHIM_KEY = create_key("scope_shim") -def create_tracer(otel_tracer_provider: TracerProvider) -> "TracerShim": +def create_tracer(otel_tracer_provider: TracerProvider) -> TracerShim: """Creates a :class:`TracerShim` object from the provided OpenTelemetry :class:`opentelemetry.trace.TracerProvider`. @@ -206,7 +206,7 @@ def unwrap(self): return self._otel_span - def set_operation_name(self, operation_name: str) -> "SpanShim": + def set_operation_name(self, operation_name: str) -> SpanShim: """Updates the name of the wrapped OpenTelemetry span. Args: @@ -241,7 +241,7 @@ def finish(self, finish_time: float | None = None): end_time = util.time_seconds_to_ns(finish_time) self._otel_span.end(end_time=end_time) - def set_tag(self, key: str, value: ValueT) -> "SpanShim": + def set_tag(self, key: str, value: ValueT) -> SpanShim: """Sets an OpenTelemetry attribute on the wrapped OpenTelemetry span. Args: @@ -257,7 +257,7 @@ def set_tag(self, key: str, value: ValueT) -> "SpanShim": def log_kv( self, key_values: Attributes, timestamp: float | None = None - ) -> "SpanShim": + ) -> SpanShim: """Logs an event for the wrapped OpenTelemetry span. Note: @@ -356,7 +356,7 @@ class ScopeShim(Scope): """ def __init__( - self, manager: "ScopeManagerShim", span: SpanShim, span_cm=None + self, manager: ScopeManagerShim, span: SpanShim, span_cm=None ): super().__init__(manager, span) self._span_cm = span_cm @@ -365,7 +365,7 @@ def __init__( # TODO: Change type of `manager` argument to `opentracing.ScopeManager`? We # need to get rid of `manager.tracer` for this. @classmethod - def from_context_manager(cls, manager: "ScopeManagerShim", span_cm): + def from_context_manager(cls, manager: ScopeManagerShim, span_cm): """Constructs a :class:`ScopeShim` from an OpenTelemetry `opentelemetry.trace.Span` context manager. @@ -452,14 +452,14 @@ class ScopeManagerShim(ScopeManager): span state. """ - def __init__(self, tracer: "TracerShim"): + def __init__(self, tracer: TracerShim): # The only thing the ``__init__()``` method on the base class does is # initialize `self._noop_span` and `self._noop_scope` with no-op # objects. Therefore, it doesn't seem useful to call it. # pylint: disable=super-init-not-called self._tracer = tracer - def activate(self, span: SpanShim, finish_on_close: bool) -> "ScopeShim": + def activate(self, span: SpanShim, finish_on_close: bool) -> ScopeShim: """Activates a :class:`SpanShim` and returns a :class:`ScopeShim` which represents the active span. @@ -477,7 +477,7 @@ def activate(self, span: SpanShim, finish_on_close: bool) -> "ScopeShim": return ScopeShim.from_context_manager(self, span_cm=span_cm) @property - def active(self) -> "ScopeShim": + def active(self) -> ScopeShim: """Returns a :class:`ScopeShim` object representing the currently-active span in the OpenTelemetry tracer. @@ -505,7 +505,7 @@ def active(self) -> "ScopeShim": return ScopeShim(self, span=wrapped_span) @property - def tracer(self) -> "TracerShim": + def tracer(self) -> TracerShim: """Returns the :class:`TracerShim` reference used by this :class:`ScopeManagerShim` for setting and getting the active span from the OpenTelemetry tracer. @@ -567,7 +567,7 @@ def start_active_span( start_time: float | None = None, ignore_active_span: bool = False, finish_on_close: bool = True, - ) -> "ScopeShim": + ) -> ScopeShim: """Starts and activates a span. In terms of functionality, this method behaves exactly like the same method on a "regular" OpenTracing tracer. See :meth:`opentracing.Tracer.start_active_span` for more details.