Skip to content

Commit deea7d2

Browse files
committed
Last bits for sdk/trace typechecking
1 parent 56dd967 commit deea7d2

File tree

2 files changed

+18
-9
lines changed

2 files changed

+18
-9
lines changed

opentelemetry-sdk/src/opentelemetry/sdk/trace/__init__.py

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -381,7 +381,7 @@ class ReadableSpan:
381381
def __init__(
382382
self,
383383
name: str,
384-
context: Optional[trace_api.SpanContext] = None,
384+
context: trace_api.SpanContext,
385385
parent: Optional[trace_api.SpanContext] = None,
386386
resource: Optional[Resource] = None,
387387
attributes: types.Attributes = None,
@@ -625,12 +625,12 @@ def __init__(
625625
max_span_attribute_length: Optional[int] = None,
626626
):
627627
# span events and links count
628-
self.max_events = self._from_env_if_absent(
628+
self.max_events = self._from_env_if_absent_with_default(
629629
max_events,
630630
OTEL_SPAN_EVENT_COUNT_LIMIT,
631631
_DEFAULT_OTEL_SPAN_EVENT_COUNT_LIMIT,
632632
)
633-
self.max_links = self._from_env_if_absent(
633+
self.max_links = self._from_env_if_absent_with_default(
634634
max_links,
635635
OTEL_SPAN_LINK_COUNT_LIMIT,
636636
_DEFAULT_OTEL_SPAN_LINK_COUNT_LIMIT,
@@ -646,7 +646,7 @@ def __init__(
646646
else _DEFAULT_OTEL_ATTRIBUTE_COUNT_LIMIT
647647
)
648648

649-
self.max_span_attributes = self._from_env_if_absent(
649+
self.max_span_attributes = self._from_env_if_absent_with_default(
650650
max_span_attributes,
651651
OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT,
652652
(
@@ -655,7 +655,7 @@ def __init__(
655655
else _DEFAULT_OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT
656656
),
657657
)
658-
self.max_event_attributes = self._from_env_if_absent(
658+
self.max_event_attributes = self._from_env_if_absent_with_default(
659659
max_event_attributes,
660660
OTEL_EVENT_ATTRIBUTE_COUNT_LIMIT,
661661
(
@@ -664,7 +664,7 @@ def __init__(
664664
else _DEFAULT_OTEL_EVENT_ATTRIBUTE_COUNT_LIMIT
665665
),
666666
)
667-
self.max_link_attributes = self._from_env_if_absent(
667+
self.max_link_attributes = self._from_env_if_absent_with_default(
668668
max_link_attributes,
669669
OTEL_LINK_ATTRIBUTE_COUNT_LIMIT,
670670
(
@@ -717,6 +717,13 @@ def _from_env_if_absent(
717717
raise ValueError(err_msg.format(env_var, value))
718718
return value
719719

720+
@classmethod
721+
def _from_env_if_absent_with_default(
722+
cls, value: Optional[int], env_var: str, default: int
723+
) -> int:
724+
value_from_env = cls._from_env_if_absent(value, env_var, default)
725+
return value_from_env if value_from_env is not None else default
726+
720727

721728
_UnsetLimits = SpanLimits(
722729
max_attributes=SpanLimits.UNSET,
@@ -1002,7 +1009,7 @@ def __exit__(
10021009
self.record_exception(exception=exc_val, escaped=True)
10031010
# Records status if span is used as context manager
10041011
# i.e. with tracer.start_span() as span:
1005-
if self._set_status_on_exception:
1012+
if exc_type and self._set_status_on_exception:
10061013
self.set_status(
10071014
Status(
10081015
status_code=StatusCode.ERROR,
@@ -1114,11 +1121,14 @@ def start_span( # pylint: disable=too-many-locals
11141121
context: Optional[context_api.Context] = None,
11151122
kind: trace_api.SpanKind = trace_api.SpanKind.INTERNAL,
11161123
attributes: types.Attributes = None,
1117-
links: Optional[Sequence[trace_api.Link]] = (),
1124+
links: Optional[Sequence[trace_api.Link]] = None,
11181125
start_time: Optional[int] = None,
11191126
record_exception: bool = True,
11201127
set_status_on_exception: bool = True,
11211128
) -> trace_api.Span:
1129+
if links is None:
1130+
links = ()
1131+
11221132
parent_span_context = trace_api.get_current_span(
11231133
context
11241134
).get_span_context()

pyproject.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,6 @@ exclude = [
112112
"opentelemetry-sdk/tests",
113113
"opentelemetry-sdk/src/opentelemetry/sdk/_events",
114114
"opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/",
115-
"opentelemetry-sdk/src/opentelemetry/sdk/trace/__init__.py",
116115
"opentelemetry-sdk/benchmarks",
117116
"exporter/opentelemetry-exporter-otlp-proto-grpc/tests",
118117
]

0 commit comments

Comments
 (0)