Skip to content

Commit ef22e8f

Browse files
committed
style(fsm): format Propagators
Added type annotations to the binary, HTTP and text propagators and used ruff (vscode) to: - Black-compatible code formatting. - fix all auto-fixable violations, like unused imports. - isort-compatible import sorting. Signed-off-by: Paulo Vital
1 parent 9252102 commit ef22e8f

3 files changed

Lines changed: 76 additions & 44 deletions

File tree

src/instana/propagators/binary_propagator.py

Lines changed: 35 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,13 @@
22
# (c) Copyright Instana Inc. 2020
33

44

5-
from instana.log import logger
6-
from instana.propagators.base_propagator import BasePropagator
5+
from typing import Optional
76

87
from opentelemetry.trace.span import format_span_id
98

9+
from instana.log import logger
10+
from instana.propagators.base_propagator import BasePropagator, CarrierT
11+
from instana.span_context import SpanContext
1012
from instana.util.ids import define_server_timing
1113

1214

@@ -17,17 +19,22 @@ class BinaryPropagator(BasePropagator):
1719
"""
1820

1921
# ByteArray variations from base class
20-
HEADER_KEY_T = b'x-instana-t'
21-
HEADER_KEY_S = b'x-instana-s'
22-
HEADER_KEY_L = b'x-instana-l'
23-
HEADER_SERVER_TIMING = b'server-timing'
24-
HEADER_KEY_TRACEPARENT = b'traceparent'
25-
HEADER_KEY_TRACESTATE = b'tracestate'
22+
HEADER_KEY_T = b"x-instana-t"
23+
HEADER_KEY_S = b"x-instana-s"
24+
HEADER_KEY_L = b"x-instana-l"
25+
HEADER_SERVER_TIMING = b"server-timing"
26+
HEADER_KEY_TRACEPARENT = b"traceparent"
27+
HEADER_KEY_TRACESTATE = b"tracestate"
2628

27-
def __init__(self):
29+
def __init__(self) -> None:
2830
super(BinaryPropagator, self).__init__()
2931

30-
def inject(self, span_context, carrier, disable_w3c_trace_context=True):
32+
def inject(
33+
self,
34+
span_context: SpanContext,
35+
carrier: CarrierT,
36+
disable_w3c_trace_context: bool = True,
37+
) -> Optional[CarrierT]:
3138
try:
3239
trace_id = format_span_id(span_context.trace_id).encode()
3340
span_id = format_span_id(span_context.span_id).encode()
@@ -37,21 +44,23 @@ def inject(self, span_context, carrier, disable_w3c_trace_context=True):
3744
if disable_w3c_trace_context:
3845
traceparent, tracestate = [None] * 2
3946
else:
40-
traceparent, tracestate = self._get_participating_trace_context(span_context)
47+
traceparent, tracestate = self._get_participating_trace_context(
48+
span_context
49+
)
4150
try:
42-
traceparent = str.encode(traceparent)
43-
tracestate = str.encode(tracestate)
51+
traceparent = str.encode(traceparent) # type: ignore[arg-type]
52+
tracestate = str.encode(tracestate) # type: ignore[arg-type]
4453
except Exception:
4554
traceparent, tracestate = [None] * 2
4655

4756
if isinstance(carrier, dict) or hasattr(carrier, "__dict__"):
4857
if traceparent and tracestate:
49-
carrier[self.HEADER_KEY_TRACEPARENT] = traceparent
50-
carrier[self.HEADER_KEY_TRACESTATE] = tracestate
51-
carrier[self.HEADER_KEY_T] = trace_id
52-
carrier[self.HEADER_KEY_S] = span_id
53-
carrier[self.HEADER_KEY_L] = level
54-
carrier[self.HEADER_SERVER_TIMING] = server_timing
58+
carrier[self.HEADER_KEY_TRACEPARENT] = traceparent # type: ignore[index]
59+
carrier[self.HEADER_KEY_TRACESTATE] = tracestate # type: ignore[index]
60+
carrier[self.HEADER_KEY_T] = trace_id # type: ignore[index]
61+
carrier[self.HEADER_KEY_S] = span_id # type: ignore[index]
62+
carrier[self.HEADER_KEY_L] = level # type: ignore[index]
63+
carrier[self.HEADER_SERVER_TIMING] = server_timing # type: ignore[index]
5564
elif isinstance(carrier, list):
5665
if traceparent and tracestate:
5766
carrier.append((self.HEADER_KEY_TRACEPARENT, traceparent))
@@ -62,13 +71,17 @@ def inject(self, span_context, carrier, disable_w3c_trace_context=True):
6271
carrier.append((self.HEADER_SERVER_TIMING, server_timing))
6372
elif isinstance(carrier, tuple):
6473
if traceparent and tracestate:
65-
carrier = carrier.__add__(((self.HEADER_KEY_TRACEPARENT, traceparent),))
66-
carrier = carrier.__add__(((self.HEADER_KEY_TRACESTATE, tracestate),))
74+
carrier = carrier.__add__(
75+
((self.HEADER_KEY_TRACEPARENT, traceparent),)
76+
)
77+
carrier = carrier.__add__(
78+
((self.HEADER_KEY_TRACESTATE, tracestate),)
79+
)
6780
carrier = carrier.__add__(((self.HEADER_KEY_T, trace_id),))
6881
carrier = carrier.__add__(((self.HEADER_KEY_S, span_id),))
6982
carrier = carrier.__add__(((self.HEADER_KEY_L, level),))
7083
carrier = carrier.__add__(((self.HEADER_SERVER_TIMING, server_timing),))
71-
elif hasattr(carrier, '__setitem__'):
84+
elif hasattr(carrier, "__setitem__"):
7285
if traceparent and tracestate:
7386
carrier.__setitem__(self.HEADER_KEY_TRACEPARENT, traceparent)
7487
carrier.__setitem__(self.HEADER_KEY_TRACESTATE, tracestate)
@@ -82,5 +95,3 @@ def inject(self, span_context, carrier, disable_w3c_trace_context=True):
8295
return carrier
8396
except Exception:
8497
logger.debug("inject error:", exc_info=True)
85-
86-

src/instana/propagators/http_propagator.py

Lines changed: 23 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,15 @@
22
# (c) Copyright Instana Inc. 2020
33

44

5+
from typing import Any
6+
7+
from opentelemetry.trace.span import format_span_id
8+
59
from instana.log import logger
6-
from instana.propagators.base_propagator import BasePropagator
7-
from instana.util.ids import define_server_timing, hex_id_limited
10+
from instana.propagators.base_propagator import BasePropagator, CarrierT
811
from instana.span_context import SpanContext
12+
from instana.util.ids import define_server_timing, hex_id_limited
913

10-
from opentelemetry.trace.span import format_span_id
1114

1215
class HTTPPropagator(BasePropagator):
1316
"""
@@ -17,17 +20,24 @@ class HTTPPropagator(BasePropagator):
1720
The character set should be restricted to HTTP compatible.
1821
"""
1922

20-
def __init__(self):
23+
def __init__(self) -> None:
2124
super(HTTPPropagator, self).__init__()
2225

23-
def inject(self, span_context, carrier, disable_w3c_trace_context=False):
26+
def inject(
27+
self,
28+
span_context: SpanContext,
29+
carrier: CarrierT,
30+
disable_w3c_trace_context: bool = False,
31+
) -> None:
2432
trace_id = span_context.trace_id
2533
span_id = span_context.span_id
2634
dictionary_carrier = self.extract_headers_dict(carrier)
2735
if dictionary_carrier:
2836
# Suppression `level` made in the child context or in the parent context
2937
# has priority over any non-suppressed `level` setting
30-
child_level = int(self.extract_instana_headers(dictionary_carrier)[2] or "1")
38+
child_level = int(
39+
self.extract_instana_headers(dictionary_carrier)[2] or "1"
40+
)
3141
new_level = min(child_level, span_context.level)
3242

3343
if new_level != span_context.level:
@@ -46,21 +56,23 @@ def inject(self, span_context, carrier, disable_w3c_trace_context=False):
4656
correlation_type=span_context.correlation_type,
4757
correlation_id=span_context.correlation_id,
4858
traceparent=span_context.traceparent,
49-
tracestate=span_context.tracestate
59+
tracestate=span_context.tracestate,
5060
)
5161

5262
serializable_level = str(span_context.level)
5363

5464
if disable_w3c_trace_context:
5565
traceparent, tracestate = [None] * 2
5666
else:
57-
traceparent, tracestate = self._get_participating_trace_context(span_context)
67+
traceparent, tracestate = self._get_participating_trace_context(
68+
span_context
69+
)
5870

59-
def inject_key_value(carrier, key, value):
71+
def inject_key_value(carrier: CarrierT, key: str, value: Any) -> None:
6072
if isinstance(carrier, list):
6173
carrier.append((key, value))
62-
elif isinstance(carrier, dict) or '__setitem__' in dir(carrier):
63-
carrier[key] = value
74+
elif isinstance(carrier, dict) or "__setitem__" in dir(carrier):
75+
carrier[key] = value # type: ignore[index]
6476
else:
6577
raise Exception("Unsupported carrier type", type(carrier))
6678

src/instana/propagators/text_propagator.py

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,13 @@
22
# (c) Copyright Instana Inc. 2020
33

44

5-
from instana.log import logger
6-
from instana.propagators.base_propagator import BasePropagator
5+
from typing import Optional
76

87
from opentelemetry.trace.span import format_span_id
98

9+
from instana.log import logger
10+
from instana.propagators.base_propagator import BasePropagator, CarrierT
11+
from instana.span_context import SpanContext
1012
from instana.util.ids import define_server_timing
1113

1214

@@ -18,17 +20,22 @@ class TextPropagator(BasePropagator):
1820
The character set is unrestricted.
1921
"""
2022

21-
def inject(self, span_context, carrier, disable_w3c_trace_context=True):
23+
def inject(
24+
self,
25+
span_context: SpanContext,
26+
carrier: CarrierT,
27+
disable_w3c_trace_context: bool = True,
28+
) -> Optional[CarrierT]:
2229
try:
2330
trace_id = format_span_id(span_context.trace_id)
2431
span_id = format_span_id(span_context.span_id)
2532
server_timing = define_server_timing(span_context.trace_id).encode()
2633

2734
if isinstance(carrier, dict) or hasattr(carrier, "__dict__"):
28-
carrier[self.LC_HEADER_KEY_T] = trace_id
29-
carrier[self.LC_HEADER_KEY_S] = span_id
30-
carrier[self.LC_HEADER_KEY_L] = "1"
31-
carrier[self.LC_HEADER_KEY_SERVER_TIMING] = server_timing
35+
carrier[self.LC_HEADER_KEY_T] = trace_id # type: ignore[index]
36+
carrier[self.LC_HEADER_KEY_S] = span_id # type: ignore[index]
37+
carrier[self.LC_HEADER_KEY_L] = "1" # type: ignore[index]
38+
carrier[self.LC_HEADER_KEY_SERVER_TIMING] = server_timing # type: ignore[index]
3239
elif isinstance(carrier, list):
3340
carrier.append((self.LC_HEADER_KEY_T, trace_id))
3441
carrier.append((self.LC_HEADER_KEY_S, span_id))
@@ -38,8 +45,10 @@ def inject(self, span_context, carrier, disable_w3c_trace_context=True):
3845
carrier = carrier.__add__(((self.LC_HEADER_KEY_T, trace_id),))
3946
carrier = carrier.__add__(((self.LC_HEADER_KEY_S, span_id),))
4047
carrier = carrier.__add__(((self.LC_HEADER_KEY_L, "1"),))
41-
carrier = carrier.__add__(((self.LC_HEADER_KEY_SERVER_TIMING, server_timing),))
42-
elif hasattr(carrier, '__setitem__'):
48+
carrier = carrier.__add__(
49+
((self.LC_HEADER_KEY_SERVER_TIMING, server_timing),)
50+
)
51+
elif hasattr(carrier, "__setitem__"):
4352
carrier.__setitem__(self.LC_HEADER_KEY_T, trace_id)
4453
carrier.__setitem__(self.LC_HEADER_KEY_S, span_id)
4554
carrier.__setitem__(self.LC_HEADER_KEY_L, "1")

0 commit comments

Comments
 (0)