Skip to content

Commit 6ffa316

Browse files
authored
perf(string): replace format by f-string in ddtrace/_trace (#14884)
This PR is a follow up to #14867. It appears that f string are significantly more performant than using `.format()`. Therefore every format call is replaced by an f-string
1 parent fe38106 commit 6ffa316

File tree

5 files changed

+13
-19
lines changed

5 files changed

+13
-19
lines changed

ddtrace/_trace/_span_link.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,8 +94,8 @@ def _drop_attribute(self, key):
9494

9595
def to_dict(self):
9696
d = {
97-
"trace_id": "{:032x}".format(self.trace_id),
98-
"span_id": "{:016x}".format(self.span_id),
97+
"trace_id": f"{self.trace_id:032x}",
98+
"span_id": f"{self.span_id:016x}",
9999
}
100100
if self.attributes:
101101
d["attributes"] = {}

ddtrace/_trace/context.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -157,9 +157,9 @@ def _traceparent(self) -> str:
157157
# grab the original traceparent trace id, not the converted value
158158
trace_id = tp.split("-")[1]
159159
else:
160-
trace_id = "{:032x}".format(self.trace_id)
160+
trace_id = f"{self.trace_id:032x}"
161161

162-
return "00-{}-{:016x}-{}".format(trace_id, self.span_id, self._traceflags)
162+
return f"00-{trace_id}-{self.span_id:016x}-{self._traceflags}"
163163

164164
@property
165165
def _traceflags(self) -> str:
@@ -175,12 +175,12 @@ def _tracestate(self) -> str:
175175
# cut out the original dd list member from tracestate so we can replace it with the new one we created
176176
ts_w_out_dd = re.sub("dd=(.+?)(?:,|$)", "", ts)
177177
if ts_w_out_dd:
178-
ts = "dd={},{}".format(dd_list_member, ts_w_out_dd)
178+
ts = f"dd={dd_list_member},{ts_w_out_dd}"
179179
else:
180-
ts = "dd={}".format(dd_list_member)
180+
ts = f"dd={dd_list_member}"
181181
# if there is no original tracestate value then tracestate is just the dd list member we created
182182
elif dd_list_member:
183-
ts = "dd={}".format(dd_list_member)
183+
ts = f"dd={dd_list_member}"
184184
return ts
185185

186186
@property

ddtrace/_trace/sampler.py

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -132,12 +132,9 @@ def update_rate_by_service_sample_rates(self, rate_by_service: Dict[str, float])
132132

133133
def __str__(self):
134134
rates = {key: sampler.sample_rate for key, sampler in self._agent_based_samplers.items()}
135-
return "{}(agent_rates={!r}, limiter={!r}, rules={!r}), rate_limit_always_on={!r}".format(
136-
self.__class__.__name__,
137-
rates,
138-
self.limiter,
139-
self.rules,
140-
self._rate_limit_always_on,
135+
return (
136+
f"{self.__class__.__name__}(agent_rates={rates!r}, limiter={self.limiter!r}, "
137+
f"rules={self.rules!r}), rate_limit_always_on={self._rate_limit_always_on!r}"
141138
)
142139

143140
__repr__ = __str__

ddtrace/_trace/span.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ def _get_64_lowest_order_bits_as_int(large_int: int) -> int:
104104

105105
def _get_64_highest_order_bits_as_hex(large_int: int) -> str:
106106
"""Get the 64 highest order bits from a 128bit integer"""
107-
return "{:032x}".format(large_int)[:16]
107+
return f"{large_int:032x}"[:16]
108108

109109

110110
class Span(object):

ddtrace/_trace/trace_handlers.py

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,7 @@ def _on_web_framework_finish_request(
208208
status_code = int(status_code)
209209
except ValueError:
210210
pass
211-
span.resource = "{} {}".format(method, status_code)
211+
span.resource = f"{method} {status_code}"
212212
trace_utils.set_http_meta(
213213
span=span,
214214
integration_config=int_config,
@@ -952,10 +952,7 @@ def _on_azure_message_modifier(
952952
def _on_router_match(route):
953953
req_span = core.get_item("req_span")
954954
core.set_item("set_resource", False)
955-
req_span.resource = "{} {}".format(
956-
route.method,
957-
route.template,
958-
)
955+
req_span.resource = f"{route.method} {route.template}"
959956

960957
MOLTEN_ROUTE = "molten.route"
961958

0 commit comments

Comments
 (0)