4848_LAST_UNSUPPRESSED_SPAN = "LAST_UNSUPPRESSED_SPAN"
4949_ERROR_SPAN_ATTRIBUTE = "error.type"
5050
51+ _OTEL_KIND_MAPPINGS = {
52+ OpenTelemetrySpanKind .CLIENT : SpanKind .CLIENT ,
53+ OpenTelemetrySpanKind .CONSUMER : SpanKind .CONSUMER ,
54+ OpenTelemetrySpanKind .PRODUCER : SpanKind .PRODUCER ,
55+ OpenTelemetrySpanKind .SERVER : SpanKind .SERVER ,
56+ OpenTelemetrySpanKind .INTERNAL : SpanKind .INTERNAL ,
57+ }
58+
59+ _SPAN_KIND_MAPPINGS = {
60+ SpanKind .CLIENT : OpenTelemetrySpanKind .CLIENT ,
61+ SpanKind .CONSUMER : OpenTelemetrySpanKind .CONSUMER ,
62+ SpanKind .PRODUCER : OpenTelemetrySpanKind .PRODUCER ,
63+ SpanKind .SERVER : OpenTelemetrySpanKind .SERVER ,
64+ SpanKind .INTERNAL : OpenTelemetrySpanKind .INTERNAL ,
65+ SpanKind .UNSPECIFIED : OpenTelemetrySpanKind .INTERNAL ,
66+ }
67+
5168
5269class _SuppressionContextManager (ContextManager ):
5370 def __init__ (self , span : "OpenTelemetrySpan" ):
@@ -119,27 +136,8 @@ def __init__(
119136
120137 ## kind
121138 span_kind = kind
122- otel_kind = (
123- OpenTelemetrySpanKind .CLIENT
124- if span_kind == SpanKind .CLIENT
125- else (
126- OpenTelemetrySpanKind .PRODUCER
127- if span_kind == SpanKind .PRODUCER
128- else (
129- OpenTelemetrySpanKind .SERVER
130- if span_kind == SpanKind .SERVER
131- else (
132- OpenTelemetrySpanKind .CONSUMER
133- if span_kind == SpanKind .CONSUMER
134- else (
135- OpenTelemetrySpanKind .INTERNAL
136- if span_kind == SpanKind .INTERNAL
137- else OpenTelemetrySpanKind .INTERNAL if span_kind == SpanKind .UNSPECIFIED else None
138- )
139- )
140- )
141- )
142- )
139+ otel_kind = _SPAN_KIND_MAPPINGS .get (span_kind )
140+
143141 if span_kind and otel_kind is None :
144142 raise ValueError ("Kind {} is not supported in OpenTelemetry" .format (span_kind ))
145143
@@ -210,23 +208,7 @@ def kind(self) -> Optional[SpanKind]:
210208 value = self .span_instance .kind # type: ignore[attr-defined]
211209 except AttributeError :
212210 return None
213- return (
214- SpanKind .CLIENT
215- if value == OpenTelemetrySpanKind .CLIENT
216- else (
217- SpanKind .PRODUCER
218- if value == OpenTelemetrySpanKind .PRODUCER
219- else (
220- SpanKind .SERVER
221- if value == OpenTelemetrySpanKind .SERVER
222- else (
223- SpanKind .CONSUMER
224- if value == OpenTelemetrySpanKind .CONSUMER
225- else SpanKind .INTERNAL if value == OpenTelemetrySpanKind .INTERNAL else None
226- )
227- )
228- )
229- )
211+ return _OTEL_KIND_MAPPINGS .get (value )
230212
231213 @kind .setter
232214 def kind (self , value : SpanKind ) -> None :
@@ -235,27 +217,7 @@ def kind(self, value: SpanKind) -> None:
235217 :param value: The span kind to set.
236218 :type value: ~azure.core.tracing.SpanKind
237219 """
238- kind = (
239- OpenTelemetrySpanKind .CLIENT
240- if value == SpanKind .CLIENT
241- else (
242- OpenTelemetrySpanKind .PRODUCER
243- if value == SpanKind .PRODUCER
244- else (
245- OpenTelemetrySpanKind .SERVER
246- if value == SpanKind .SERVER
247- else (
248- OpenTelemetrySpanKind .CONSUMER
249- if value == SpanKind .CONSUMER
250- else (
251- OpenTelemetrySpanKind .INTERNAL
252- if value == SpanKind .INTERNAL
253- else OpenTelemetrySpanKind .INTERNAL if value == SpanKind .UNSPECIFIED else None
254- )
255- )
256- )
257- )
258- )
220+ kind = _SPAN_KIND_MAPPINGS .get (value )
259221 if kind is None :
260222 raise ValueError ("Kind {} is not supported in OpenTelemetry" .format (value ))
261223 try :
@@ -302,8 +264,10 @@ def finish(self) -> None:
302264 self .span_instance .end ()
303265
304266 def to_header (self ) -> Dict [str , str ]:
305- """
306- Returns a dictionary with the header labels and values.
267+ """Returns a dictionary with the context header labels and values.
268+
269+ These are generally the W3C Trace Context headers (i.e. "traceparent" and "tracestate").
270+
307271 :return: A key value pair dictionary
308272 :rtype: dict[str, str]
309273 """
@@ -312,8 +276,7 @@ def to_header(self) -> Dict[str, str]:
312276 return temp_headers
313277
314278 def add_attribute (self , key : str , value : Union [str , int ]) -> None :
315- """
316- Add attribute (key value pair) to the current span.
279+ """Add attribute (key value pair) to the current span.
317280
318281 :param key: The key of the key value pair
319282 :type key: str
0 commit comments