diff --git a/CHANGELOG.md b/CHANGELOG.md index ad1d754bd8..bc6e1fff9f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## Unreleased +- Add type hints to SDK resources + ([#4360](https://github.com/open-telemetry/opentelemetry-python/pull/4360)) - Add `attributes` field in `metrics.get_meter` wrapper function ([#4364](https://github.com/open-telemetry/opentelemetry-python/pull/4364)) - Add Python 3.13 support @@ -279,7 +281,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## Version 1.21.0/0.42b0 (2023-11-01) - Fix `SumAggregation` - ([#3390](https://github.com/open-telemetry/opentelemetry-python/pull/3390)) + ([#3390](https://github.com/open-telemetry/opentelemetry-python/pull/3390)) - Fix handling of empty metric collection cycles ([#3335](https://github.com/open-telemetry/opentelemetry-python/pull/3335)) - Fix error when no LoggerProvider configured for LoggingHandler @@ -299,7 +301,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Implement Process Resource detector ([#3472](https://github.com/open-telemetry/opentelemetry-python/pull/3472)) - ## Version 1.20.0/0.41b0 (2023-09-04) - Modify Prometheus exporter to translate non-monotonic Sums into Gauges @@ -328,7 +329,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Default LogRecord observed_timestamp to current timestamp [#3377](https://github.com/open-telemetry/opentelemetry-python/pull/3377)) - ## Version 1.18.0/0.39b0 (2023-05-19) - Select histogram aggregation with an environment variable @@ -348,7 +348,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Add benchmark tests for metrics ([#3267](https://github.com/open-telemetry/opentelemetry-python/pull/3267)) - ## Version 1.17.0/0.38b0 (2023-03-22) - Implement LowMemory temporality @@ -1696,7 +1695,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Remove dependency on 'backoff' library ([#3679](https://github.com/open-telemetry/opentelemetry-python/pull/3679)) - - Make create_gauge non-abstract method ([#3817](https://github.com/open-telemetry/opentelemetry-python/pull/3817)) - Make `tracer.start_as_current_span()` decorator work with async functions diff --git a/opentelemetry-sdk/src/opentelemetry/sdk/error_handler/__init__.py b/opentelemetry-sdk/src/opentelemetry/sdk/error_handler/__init__.py index 3e0e778f1a..6f8266e720 100644 --- a/opentelemetry-sdk/src/opentelemetry/sdk/error_handler/__init__.py +++ b/opentelemetry-sdk/src/opentelemetry/sdk/error_handler/__init__.py @@ -61,6 +61,7 @@ def _handle(self, error: Exception, *args, **kwargs): from abc import ABC, abstractmethod from logging import getLogger +from typing import Optional from opentelemetry.util._importlib_metadata import entry_points @@ -69,7 +70,7 @@ def _handle(self, error: Exception, *args, **kwargs): class ErrorHandler(ABC): @abstractmethod - def _handle(self, error: Exception, *args, **kwargs): + def _handle(self, error: Exception, *args, **kwargs) -> None: # type: ignore """ Handle an exception """ @@ -83,7 +84,7 @@ class _DefaultErrorHandler(ErrorHandler): """ # pylint: disable=useless-return - def _handle(self, error: Exception, *args, **kwargs): + def _handle(self, error: Exception, *args, **kwargs) -> None: # type: ignore logger.exception("Error handled by default error handler: ") return None @@ -105,26 +106,26 @@ def __new__(cls) -> "GlobalErrorHandler": return cls._instance - def __enter__(self): + def __enter__(self) -> None: pass # pylint: disable=no-self-use - def __exit__(self, exc_type, exc_value, traceback): - if exc_value is None: + def __exit__(self, exc_type, exc_value, traceback) -> Optional[bool]: # type: ignore + if exc_value is None: # type: ignore return None plugin_handled = False - error_handler_entry_points = entry_points( + error_handler_entry_points = entry_points( # type: ignore group="opentelemetry_error_handler" ) for error_handler_entry_point in error_handler_entry_points: - error_handler_class = error_handler_entry_point.load() + error_handler_class = error_handler_entry_point.load() # type: ignore - if issubclass(error_handler_class, exc_value.__class__): + if issubclass(error_handler_class, exc_value.__class__): # type: ignore try: - error_handler_class()._handle(exc_value) + error_handler_class()._handle(exc_value) # type: ignore plugin_handled = True # pylint: disable=broad-exception-caught @@ -133,11 +134,11 @@ def __exit__(self, exc_type, exc_value, traceback): "%s error while handling error" " %s by error handler %s", error_handling_error.__class__.__name__, - exc_value.__class__.__name__, - error_handler_class.__name__, + exc_value.__class__.__name__, # type: ignore + error_handler_class.__name__, # type: ignore ) if not plugin_handled: - _DefaultErrorHandler()._handle(exc_value) + _DefaultErrorHandler()._handle(exc_value) # type: ignore return True diff --git a/opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/exemplar/exemplar_reservoir.py b/opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/exemplar/exemplar_reservoir.py index 22d1ee9f75..3c2db8d6da 100644 --- a/opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/exemplar/exemplar_reservoir.py +++ b/opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/exemplar/exemplar_reservoir.py @@ -129,7 +129,7 @@ def collect(self, point_attributes: Attributes) -> Optional[Exemplar]: { k: v for k, v in self.__attributes.items() - if k not in point_attributes + if k not in point_attributes # type: ignore } if self.__attributes else None @@ -162,8 +162,8 @@ class BucketIndexError(ValueError): class FixedSizeExemplarReservoirABC(ExemplarReservoir): """Abstract class for a reservoir with fixed size.""" - def __init__(self, size: int, **kwargs) -> None: - super().__init__(**kwargs) + def __init__(self, size: int, **kwargs) -> None: # type: ignore + super().__init__(**kwargs) # type: ignore self._size: int = size self._reservoir_storage: Mapping[int, ExemplarBucket] = defaultdict( ExemplarBucket @@ -257,8 +257,8 @@ class SimpleFixedSizeExemplarReservoir(FixedSizeExemplarReservoirABC): https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk.md#simplefixedsizeexemplarreservoir """ - def __init__(self, size: int = 1, **kwargs) -> None: - super().__init__(size, **kwargs) + def __init__(self, size: int = 1, **kwargs) -> None: # type: ignore + super().__init__(size, **kwargs) # type: ignore self._measurements_seen: int = 0 def _reset(self) -> None: @@ -292,8 +292,8 @@ class AlignedHistogramBucketExemplarReservoir(FixedSizeExemplarReservoirABC): https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk.md#alignedhistogrambucketexemplarreservoir """ - def __init__(self, boundaries: Sequence[float], **kwargs) -> None: - super().__init__(len(boundaries) + 1, **kwargs) + def __init__(self, boundaries: Sequence[float], **kwargs) -> None: # type: ignore + super().__init__(len(boundaries) + 1, **kwargs) # type: ignore self._boundaries: Sequence[float] = boundaries def offer(