Skip to content

Commit d4aaf97

Browse files
committed
Add _logs to typecheck
1 parent 037e9cb commit d4aaf97

File tree

4 files changed

+28
-23
lines changed

4 files changed

+28
-23
lines changed

opentelemetry-api/src/opentelemetry/_logs/_internal/__init__.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444
from opentelemetry.trace.span import TraceFlags
4545
from opentelemetry.util._once import Once
4646
from opentelemetry.util._providers import _load_provider
47-
from opentelemetry.util.types import AnyValue, _ExtendedAttributes
47+
from opentelemetry.util.types import AnyValue, Attributes
4848

4949
_logger = getLogger(__name__)
5050

@@ -67,7 +67,7 @@ def __init__(
6767
severity_text: Optional[str] = None,
6868
severity_number: Optional[SeverityNumber] = None,
6969
body: AnyValue = None,
70-
attributes: Optional[_ExtendedAttributes] = None,
70+
attributes: Optional[Attributes] = None,
7171
):
7272
self.timestamp = timestamp
7373
if observed_timestamp is None:
@@ -90,7 +90,7 @@ def __init__(
9090
name: str,
9191
version: Optional[str] = None,
9292
schema_url: Optional[str] = None,
93-
attributes: Optional[_ExtendedAttributes] = None,
93+
attributes: Optional[Attributes] = None,
9494
) -> None:
9595
super().__init__()
9696
self._name = name
@@ -119,7 +119,7 @@ def __init__( # pylint: disable=super-init-not-called
119119
name: str,
120120
version: Optional[str] = None,
121121
schema_url: Optional[str] = None,
122-
attributes: Optional[_ExtendedAttributes] = None,
122+
attributes: Optional[Attributes] = None,
123123
):
124124
self._name = name
125125
self._version = version
@@ -158,7 +158,7 @@ def get_logger(
158158
name: str,
159159
version: Optional[str] = None,
160160
schema_url: Optional[str] = None,
161-
attributes: Optional[_ExtendedAttributes] = None,
161+
attributes: Optional[Attributes] = None,
162162
) -> Logger:
163163
"""Returns a `Logger` for use by the given instrumentation library.
164164
@@ -197,7 +197,7 @@ def get_logger(
197197
name: str,
198198
version: Optional[str] = None,
199199
schema_url: Optional[str] = None,
200-
attributes: Optional[_ExtendedAttributes] = None,
200+
attributes: Optional[Attributes] = None,
201201
) -> Logger:
202202
"""Returns a NoOpLogger."""
203203
return NoOpLogger(
@@ -211,7 +211,7 @@ def get_logger(
211211
name: str,
212212
version: Optional[str] = None,
213213
schema_url: Optional[str] = None,
214-
attributes: Optional[_ExtendedAttributes] = None,
214+
attributes: Optional[Attributes] = None,
215215
) -> Logger:
216216
if _LOGGER_PROVIDER:
217217
return _LOGGER_PROVIDER.get_logger(
@@ -274,7 +274,7 @@ def get_logger(
274274
instrumenting_library_version: str = "",
275275
logger_provider: Optional[LoggerProvider] = None,
276276
schema_url: Optional[str] = None,
277-
attributes: Optional[_ExtendedAttributes] = None,
277+
attributes: Optional[Attributes] = None,
278278
) -> "Logger":
279279
"""Returns a `Logger` for use within a python process.
280280

opentelemetry-sdk/src/opentelemetry/sdk/_logs/_internal/__init__.py

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@
5353
get_current_span,
5454
)
5555
from opentelemetry.trace.span import TraceFlags
56-
from opentelemetry.util.types import AnyValue, _ExtendedAttributes
56+
from opentelemetry.util.types import AnyValue, Attributes, _ExtendedAttributes
5757

5858
_logger = logging.getLogger(__name__)
5959

@@ -197,10 +197,14 @@ def __init__(
197197
"severity_number": severity_number,
198198
"body": body,
199199
"attributes": BoundedAttributes(
200-
maxlen=limits.max_attributes,
200+
maxlen=limits.max_attributes
201+
if limits
202+
else LogLimits.UNSET,
201203
attributes=attributes if bool(attributes) else None,
202204
immutable=False,
203-
max_value_len=limits.max_attribute_length,
205+
max_value_len=limits.max_attribute_length
206+
if limits
207+
else LogLimits.UNSET,
204208
extended_attributes=True,
205209
),
206210
}
@@ -232,7 +236,9 @@ def to_json(self, indent: int | None = 4) -> str:
232236
dict(self.attributes) if bool(self.attributes) else None
233237
),
234238
"dropped_attributes": self.dropped_attributes,
235-
"timestamp": ns_to_iso_str(self.timestamp),
239+
"timestamp": ns_to_iso_str(self.timestamp)
240+
if self.timestamp
241+
else None,
236242
"observed_timestamp": ns_to_iso_str(self.observed_timestamp),
237243
"trace_id": (
238244
f"0x{format_trace_id(self.trace_id)}"
@@ -289,7 +295,7 @@ def shutdown(self):
289295
"""Called when a :class:`opentelemetry.sdk._logs.Logger` is shutdown"""
290296

291297
@abc.abstractmethod
292-
def force_flush(self, timeout_millis: int = 30000):
298+
def force_flush(self, timeout_millis: int = 30000) -> bool:
293299
"""Export all the received logs to the configured Exporter that have not yet
294300
been exported.
295301
@@ -554,7 +560,7 @@ def _translate(self, record: logging.LogRecord) -> LogRecord:
554560
severity_text=level_name,
555561
severity_number=severity_number,
556562
body=body,
557-
resource=logger.resource,
563+
resource=logger.resource, # type: ignore [reportAttributeAccessIssue]
558564
attributes=attributes,
559565
)
560566

@@ -573,9 +579,9 @@ def flush(self) -> None:
573579
Flushes the logging output. Skip flushing if logging_provider has no force_flush method.
574580
"""
575581
if hasattr(self._logger_provider, "force_flush") and callable(
576-
self._logger_provider.force_flush
582+
self._logger_provider.force_flush # type: ignore [#reportAttributeAccessIssue]
577583
):
578-
self._logger_provider.force_flush()
584+
self._logger_provider.force_flush() # type: ignore [#reportAttributeAccessIssue]
579585

580586

581587
class Logger(APILogger):
@@ -602,7 +608,7 @@ def __init__(
602608
def resource(self):
603609
return self._resource
604610

605-
def emit(self, record: LogRecord):
611+
def emit(self, record: LogRecord): # type: ignore [#reportIncompatibleMethodOverride]
606612
"""Emits the :class:`LogData` by associating :class:`LogRecord`
607613
and instrumentation info.
608614
"""
@@ -643,7 +649,7 @@ def _get_logger_no_cache(
643649
name: str,
644650
version: str | None = None,
645651
schema_url: str | None = None,
646-
attributes: _ExtendedAttributes | None = None,
652+
attributes: Attributes | None = None,
647653
) -> Logger:
648654
return Logger(
649655
self._resource,
@@ -677,8 +683,8 @@ def get_logger(
677683
name: str,
678684
version: str | None = None,
679685
schema_url: str | None = None,
680-
attributes: _ExtendedAttributes | None = None,
681-
) -> Logger:
686+
attributes: Attributes | None = None,
687+
) -> Union[Logger, APILogger]:
682688
if self._disabled:
683689
return NoOpLogger(
684690
name,

opentelemetry-sdk/src/opentelemetry/sdk/_logs/_internal/export/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ class LogExporter(abc.ABC):
5959
"""
6060

6161
@abc.abstractmethod
62-
def export(self, batch: Sequence[LogData]):
62+
def export(self, batch: Sequence[LogData]) -> LogExportResult:
6363
"""Exports a batch of logs.
6464
Args:
6565
batch: The list of `LogData` objects to be exported
@@ -192,7 +192,7 @@ def emit(self, log_data: LogData) -> None:
192192
def shutdown(self):
193193
return self._batch_processor.shutdown()
194194

195-
def force_flush(self, timeout_millis: Optional[int] = None):
195+
def force_flush(self, timeout_millis: Optional[int] = None): # type: ignore [#reportIncompatibleMethodOverride]
196196
return self._batch_processor.force_flush(timeout_millis)
197197

198198
@staticmethod

pyproject.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,6 @@ exclude = [
111111
"opentelemetry-sdk/tests",
112112
"opentelemetry-sdk/src/opentelemetry/sdk/_configuration",
113113
"opentelemetry-sdk/src/opentelemetry/sdk/_events",
114-
"opentelemetry-sdk/src/opentelemetry/sdk/_logs",
115114
"opentelemetry-sdk/src/opentelemetry/sdk/error_handler",
116115
"opentelemetry-sdk/src/opentelemetry/sdk/resources",
117116
"opentelemetry-sdk/src/opentelemetry/sdk/metrics",

0 commit comments

Comments
 (0)