trodo-python 2.26.1__py3-none-any.whl → 2.26.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
trodo/__init__.py CHANGED
@@ -41,7 +41,7 @@ Downstream microservice (join the caller's run instead of making a new one):
41
41
 
42
42
  from __future__ import annotations
43
43
 
44
- __version__ = "2.26.1"
44
+ __version__ = "2.26.2"
45
45
 
46
46
  from typing import Any, Callable, Dict, List, Optional, Union
47
47
 
trodo/_version.py CHANGED
@@ -1 +1 @@
1
- SDK_VERSION = "2.26.0"
1
+ SDK_VERSION = "2.26.2"
trodo/otel/processor.py CHANGED
@@ -11,6 +11,9 @@ import threading
11
11
  from dataclasses import dataclass, asdict
12
12
  from typing import Any, Dict, List, Optional, Union
13
13
 
14
+ # How long end_run waits for the run's queued spans to send before sending the end.
15
+ END_RUN_FLUSH_S = 5.0
16
+
14
17
 
15
18
  @dataclass
16
19
  class TrodoRun:
@@ -189,7 +192,21 @@ class TrodoSpanProcessor:
189
192
  pass
190
193
 
191
194
  def end_run(self, run_id: str, payload: Dict[str, Any]) -> None:
192
- """Finalise a Run opened by start_run."""
195
+ """Finalise a Run opened by start_run.
196
+
197
+ The run's spans go first: joined spans wait in the sender's queue, and
198
+ an end that overtakes them gets the run evaluated on a partial trace.
199
+ Bounded, and a failure here never holds up the end.
200
+ """
201
+ try:
202
+ with self._lock:
203
+ buffered = self._pending.pop(run_id, None) or []
204
+ if buffered:
205
+ self._send_spans(run_id, [s.to_dict() for s in buffered])
206
+ if self._sender is not None:
207
+ self._sender.flush(END_RUN_FLUSH_S)
208
+ except Exception:
209
+ pass
193
210
  try:
194
211
  self._http.post_run_end(run_id, payload)
195
212
  except Exception:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: trodo-python
3
- Version: 2.26.1
3
+ Version: 2.26.2
4
4
  Summary: Trodo Analytics SDK for Python — server-side event tracking
5
5
  License: ISC
6
6
  Keywords: analytics,tracking,trodo,server-side
@@ -1,5 +1,5 @@
1
- trodo/__init__.py,sha256=RCoNO_seZkIUmweHvyKb8t6J5ydktoAHOg2nt2sp448,28752
2
- trodo/_version.py,sha256=MX7IGM5dYbXPeFIXOWPhV7DPbCslhEe8Q7DCvxwKmhY,23
1
+ trodo/__init__.py,sha256=VDSYG1fk0IQ7WHKaU9OFHUpgQyNAhtzlxl-rq1MP8hM,28752
2
+ trodo/_version.py,sha256=GiZggLfKnXVCrwzvq12hUijpWwqpB6bz8DKCKTTDDPU,23
3
3
  trodo/client.py,sha256=6k6HeKrGV2720kK17--u6BjbhAUFZNUzpd9yEYiaQOs,24137
4
4
  trodo/types.py,sha256=eySgUvCXROG2TxtxgiU0MNr5iH0DEcduK8bmYtTKG44,3138
5
5
  trodo/user_context.py,sha256=uHCI2WYoOI3cNwdIUEuZdX4VYSu14pzm348ksn6hn_c,8195
@@ -23,7 +23,7 @@ trodo/otel/__init__.py,sha256=yiRFXWUU45bAM2CV37XeO7zf1hmnmjufdP4XO50yEyE,624
23
23
  trodo/otel/auto_instrument.py,sha256=M5YVpFoPqn9bQohDFM7yyADrVGJPqFBToJLnBO7nOSA,29029
24
24
  trodo/otel/context.py,sha256=Jd0aTc0Q-1dM5kXXinhZD8YtnpdKgvneNiODyboVGKY,1418
25
25
  trodo/otel/helpers.py,sha256=XOMWcgZHaq5SQbkFxDaXPE4CDFjn01xjJmJ1vIxvwpw,20730
26
- trodo/otel/processor.py,sha256=WgtLdXT9gpR4TZ_9iuoX-kBP4UN4nelCtoDnogtW_Qc,8289
26
+ trodo/otel/processor.py,sha256=GiMQR3uKHq_sbqXU00MdyarStaBzrZLmPgU1YnlzZb4,8965
27
27
  trodo/otel/prompt_trace.py,sha256=-kywRBU0Q2gWntS9HU-P5i7Kc5U-IJU7UVLjkdC2jw4,13593
28
28
  trodo/otel/register.py,sha256=7X3AfFQ5YvHGOUmdq8J38LQGvOJFPD907yT3uAp90lI,9607
29
29
  trodo/otel/transport.py,sha256=hzZz8gwSMGJ8CxdijmLn1Ljt18owr9XTWy13DLbwYbw,2441
@@ -40,7 +40,7 @@ trodo/session/server_session.py,sha256=McsudEiq33XDq3nqxgzBcUvIjQxCMscwEuAPnYXrT
40
40
  trodo/session/session_manager.py,sha256=7ht5LeeZX1HLLfPeNV_a8NkXGbHl3up0CRtCGr3EzjQ,2995
41
41
  trodo/util/__init__.py,sha256=Z9c4rPPdKg06Kk3byKheDqksSgR4WNvS475oQ5sNljc,54
42
42
  trodo/util/lru.py,sha256=QIsM7s6J_E9ZjiXatSyReZIEeGypTAcgrPWWy8YsRa4,2465
43
- trodo_python-2.26.1.dist-info/METADATA,sha256=2I7mNSS6gC_w6I3Mc9iOT-E6VHLboXBB9o8i4F-8YN0,25308
44
- trodo_python-2.26.1.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
45
- trodo_python-2.26.1.dist-info/top_level.txt,sha256=VCQu1CJWFmNsqTs1YxMcw4Mq35Tc3z3uI9RwHEXAayQ,6
46
- trodo_python-2.26.1.dist-info/RECORD,,
43
+ trodo_python-2.26.2.dist-info/METADATA,sha256=-GYtkkYP3I9IlFhwYAqfq5rinYCAB0h12KcfErRwmoE,25308
44
+ trodo_python-2.26.2.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
45
+ trodo_python-2.26.2.dist-info/top_level.txt,sha256=VCQu1CJWFmNsqTs1YxMcw4Mq35Tc3z3uI9RwHEXAayQ,6
46
+ trodo_python-2.26.2.dist-info/RECORD,,