1818
1919import json
2020import threading
21+ from collections .abc import Callable
2122from dataclasses import asdict , dataclass
22- from datetime import datetime , timezone
23+ from datetime import UTC , datetime
2324from hashlib import sha256
2425from pathlib import Path
25- from typing import Any , Callable
26+ from typing import Any
2627
2728from electripy .core .logging import get_logger
2829
@@ -113,7 +114,7 @@ def __init__(
113114 self ._previous_ctx : TelemetryContext | None = None
114115
115116 def __enter__ (self ) -> TelemetryContext :
116- now = datetime .now (tz = timezone . utc )
117+ now = datetime .now (tz = UTC )
117118 base_ctx = self ._ctx or self ._get_current ()
118119 if base_ctx is None :
119120 # Minimal context; caller can create richer contexts via
@@ -147,7 +148,7 @@ def __enter__(self) -> TelemetryContext:
147148 return ctx
148149
149150 def __exit__ (self , exc_type , exc , tb ) -> None : # type: ignore[override]
150- end = datetime .now (tz = timezone . utc )
151+ end = datetime .now (tz = UTC )
151152 ctx = self ._get_current ()
152153 if self ._start_time is not None and ctx is not None :
153154 duration_ms = (end - self ._start_time ).total_seconds () * 1000.0
@@ -200,7 +201,7 @@ def emit_event(self, event: TelemetryEvent) -> None:
200201 record = {
201202 "type" : "event" ,
202203 "name" : event .name ,
203- "timestamp" : event .timestamp .astimezone (timezone . utc ).isoformat (),
204+ "timestamp" : event .timestamp .astimezone (UTC ).isoformat (),
204205 "severity" : event .severity .value ,
205206 "context" : asdict (event .context ),
206207 "attributes" : _sanitize_attributes (dict (event .attributes )),
@@ -215,7 +216,7 @@ def increment(
215216 attrs : dict [str , object ] | None = None ,
216217 ctx : TelemetryContext | None = None ,
217218 ) -> None :
218- now = datetime .now (tz = timezone . utc )
219+ now = datetime .now (tz = UTC )
219220 record = CounterIncrement (
220221 name = name ,
221222 value = value ,
@@ -236,7 +237,7 @@ def observe(
236237 attrs : dict [str , object ] | None = None ,
237238 ctx : TelemetryContext | None = None ,
238239 ) -> None :
239- now = datetime .now (tz = timezone . utc )
240+ now = datetime .now (tz = UTC )
240241 record = HistogramObservation (
241242 name = name ,
242243 value = value ,
@@ -309,7 +310,7 @@ def increment(
309310 value = value ,
310311 attributes = _sanitize_attributes (attrs or {}),
311312 context = ctx ,
312- timestamp = datetime .now (tz = timezone . utc ),
313+ timestamp = datetime .now (tz = UTC ),
313314 )
314315 self .counters .append (record )
315316
@@ -326,7 +327,7 @@ def observe(
326327 value = value ,
327328 attributes = _sanitize_attributes (attrs or {}),
328329 context = ctx ,
329- timestamp = datetime .now (tz = timezone . utc ),
330+ timestamp = datetime .now (tz = UTC ),
330331 )
331332 self .histograms .append (record )
332333
@@ -396,7 +397,7 @@ def increment(
396397 ) -> None : # pragma: no cover - simple mapping
397398 # For now, model counters as events; a production deployment can
398399 # attach these to a metrics exporter.
399- now = datetime .now (tz = timezone . utc )
400+ now = datetime .now (tz = UTC )
400401 event = TelemetryEvent (
401402 name = f"metric.counter.{ name } " ,
402403 timestamp = now ,
@@ -424,7 +425,7 @@ def observe(
424425 attrs : dict [str , object ] | None = None ,
425426 ctx : TelemetryContext | None = None ,
426427 ) -> None : # pragma: no cover - simple mapping
427- now = datetime .now (tz = timezone . utc )
428+ now = datetime .now (tz = UTC )
428429 event = TelemetryEvent (
429430 name = f"metric.histogram.{ name } " ,
430431 timestamp = now ,
@@ -456,7 +457,7 @@ def span(
456457 # not automatically mapped; callers can still emit explicit
457458 # events if they need a bridge.
458459 class _OtelSpan (SpanContextManager ):
459- def __init__ (self , adapter : " OpenTelemetryAdapter" ) -> None :
460+ def __init__ (self , adapter : OpenTelemetryAdapter ) -> None :
460461 self ._adapter = adapter
461462 self ._cm = adapter ._tracer .start_as_current_span (name ) # type: ignore[union-attr]
462463
0 commit comments