diff --git a/.changelog/5183.changed b/.changelog/5183.changed new file mode 100644 index 0000000000..e59614bf63 --- /dev/null +++ b/.changelog/5183.changed @@ -0,0 +1 @@ +`opentelemetry-sdk`: tighten `ReadableSpan.attributes` return type to non-Optional `Mapping` diff --git a/opentelemetry-sdk/src/opentelemetry/sdk/trace/__init__.py b/opentelemetry-sdk/src/opentelemetry/sdk/trace/__init__.py index 9cdfebeb47..1901afabbd 100644 --- a/opentelemetry-sdk/src/opentelemetry/sdk/trace/__init__.py +++ b/opentelemetry-sdk/src/opentelemetry/sdk/trace/__init__.py @@ -492,7 +492,8 @@ def status(self) -> trace_api.Status: return self._status @property - def attributes(self) -> types.Attributes: + def attributes(self) -> Mapping[str, types.AttributeValue]: + # `or {}` keeps the return non-None; see #4569. return MappingProxyType(self._attributes or {}) @property