From 9ecf89caf7d442c6efef90f0f0634af27fcbbb90 Mon Sep 17 00:00:00 2001 From: Josh Wilhelmi Date: Mon, 23 Mar 2026 13:06:41 -0500 Subject: [PATCH] Add missing return type annotations to LogRecordProcessor and LoggerProvider MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The abstract `LogRecordProcessor.on_emit()` and `shutdown()` methods, `ConcurrentMultiLogRecordProcessor.on_emit()` and `shutdown()`, and `LoggerProvider.shutdown()` were missing `-> None` return type annotations. This causes mypy `no-untyped-call` errors for callers using strict type checking. The sibling classes (`MultiLogRecordProcessor`, `TracerProvider`) already have correct annotations — this aligns the logs module to match. --- .../src/opentelemetry/sdk/_logs/_internal/__init__.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/opentelemetry-sdk/src/opentelemetry/sdk/_logs/_internal/__init__.py b/opentelemetry-sdk/src/opentelemetry/sdk/_logs/_internal/__init__.py index 9029f867a7e..2fa9b1cb61e 100644 --- a/opentelemetry-sdk/src/opentelemetry/sdk/_logs/_internal/__init__.py +++ b/opentelemetry-sdk/src/opentelemetry/sdk/_logs/_internal/__init__.py @@ -325,7 +325,7 @@ def on_emit(self, log_record: ReadWriteLogRecord): """ @abc.abstractmethod - def on_emit(self, log_record: ReadWriteLogRecord): + def on_emit(self, log_record: ReadWriteLogRecord) -> None: """Emits the ``ReadWriteLogRecord``. Implementers should handle any exceptions raised during log processing @@ -334,7 +334,7 @@ def on_emit(self, log_record: ReadWriteLogRecord): """ @abc.abstractmethod - def shutdown(self): + def shutdown(self) -> None: """Called when a :class:`opentelemetry.sdk._logs.Logger` is shutdown""" @abc.abstractmethod @@ -448,10 +448,10 @@ def _submit_and_wait( for future in futures: future.result() - def on_emit(self, log_record: ReadWriteLogRecord): + def on_emit(self, log_record: ReadWriteLogRecord) -> None: self._submit_and_wait(lambda lp: lp.on_emit, log_record) - def shutdown(self): + def shutdown(self) -> None: self._submit_and_wait(lambda lp: lp.shutdown) def force_flush(self, timeout_millis: int = 30000) -> bool: @@ -806,7 +806,7 @@ def add_log_record_processor( log_record_processor ) - def shutdown(self): + def shutdown(self) -> None: """Shuts down the log processors.""" self._multi_log_record_processor.shutdown() if self._at_exit_handler is not None: