warpzone-sdk 15.0.0.dev6__tar.gz → 15.0.0.dev8__tar.gz

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.
Files changed (57) hide show
  1. {warpzone_sdk-15.0.0.dev6 → warpzone_sdk-15.0.0.dev8}/PKG-INFO +1 -1
  2. {warpzone_sdk-15.0.0.dev6 → warpzone_sdk-15.0.0.dev8}/pyproject.toml +1 -1
  3. {warpzone_sdk-15.0.0.dev6 → warpzone_sdk-15.0.0.dev8}/warpzone/function/monitor.py +0 -15
  4. {warpzone_sdk-15.0.0.dev6 → warpzone_sdk-15.0.0.dev8}/warpzone/monitor/traces.py +4 -8
  5. {warpzone_sdk-15.0.0.dev6 → warpzone_sdk-15.0.0.dev8}/README.md +0 -0
  6. {warpzone_sdk-15.0.0.dev6 → warpzone_sdk-15.0.0.dev8}/warpzone/__init__.py +0 -0
  7. {warpzone_sdk-15.0.0.dev6 → warpzone_sdk-15.0.0.dev8}/warpzone/blobstorage/__init__.py +0 -0
  8. {warpzone_sdk-15.0.0.dev6 → warpzone_sdk-15.0.0.dev8}/warpzone/blobstorage/client.py +0 -0
  9. {warpzone_sdk-15.0.0.dev6 → warpzone_sdk-15.0.0.dev8}/warpzone/db/__init__.py +0 -0
  10. {warpzone_sdk-15.0.0.dev6 → warpzone_sdk-15.0.0.dev8}/warpzone/db/client.py +0 -0
  11. {warpzone_sdk-15.0.0.dev6 → warpzone_sdk-15.0.0.dev8}/warpzone/deltastorage/__init__.py +0 -0
  12. {warpzone_sdk-15.0.0.dev6 → warpzone_sdk-15.0.0.dev8}/warpzone/deltastorage/data_types.py +0 -0
  13. {warpzone_sdk-15.0.0.dev6 → warpzone_sdk-15.0.0.dev8}/warpzone/deltastorage/generated_columns.py +0 -0
  14. {warpzone_sdk-15.0.0.dev6 → warpzone_sdk-15.0.0.dev8}/warpzone/deltastorage/lock_client.py +0 -0
  15. {warpzone_sdk-15.0.0.dev6 → warpzone_sdk-15.0.0.dev8}/warpzone/deltastorage/schema.py +0 -0
  16. {warpzone_sdk-15.0.0.dev6 → warpzone_sdk-15.0.0.dev8}/warpzone/deltastorage/slicing.py +0 -0
  17. {warpzone_sdk-15.0.0.dev6 → warpzone_sdk-15.0.0.dev8}/warpzone/deltastorage/store.py +0 -0
  18. {warpzone_sdk-15.0.0.dev6 → warpzone_sdk-15.0.0.dev8}/warpzone/deltastorage/table.py +0 -0
  19. {warpzone_sdk-15.0.0.dev6 → warpzone_sdk-15.0.0.dev8}/warpzone/enums/__init__.py +0 -0
  20. {warpzone_sdk-15.0.0.dev6 → warpzone_sdk-15.0.0.dev8}/warpzone/enums/topicenum.py +0 -0
  21. {warpzone_sdk-15.0.0.dev6 → warpzone_sdk-15.0.0.dev8}/warpzone/function/__init__.py +0 -0
  22. {warpzone_sdk-15.0.0.dev6 → warpzone_sdk-15.0.0.dev8}/warpzone/function/checks.py +0 -0
  23. {warpzone_sdk-15.0.0.dev6 → warpzone_sdk-15.0.0.dev8}/warpzone/function/functionize.py +0 -0
  24. {warpzone_sdk-15.0.0.dev6 → warpzone_sdk-15.0.0.dev8}/warpzone/function/integrations.py +0 -0
  25. {warpzone_sdk-15.0.0.dev6 → warpzone_sdk-15.0.0.dev8}/warpzone/function/process.py +0 -0
  26. {warpzone_sdk-15.0.0.dev6 → warpzone_sdk-15.0.0.dev8}/warpzone/function/processors/__init__.py +0 -0
  27. {warpzone_sdk-15.0.0.dev6 → warpzone_sdk-15.0.0.dev8}/warpzone/function/processors/dependencies.py +0 -0
  28. {warpzone_sdk-15.0.0.dev6 → warpzone_sdk-15.0.0.dev8}/warpzone/function/processors/outputs.py +0 -0
  29. {warpzone_sdk-15.0.0.dev6 → warpzone_sdk-15.0.0.dev8}/warpzone/function/processors/triggers.py +0 -0
  30. {warpzone_sdk-15.0.0.dev6 → warpzone_sdk-15.0.0.dev8}/warpzone/function/signature.py +0 -0
  31. {warpzone_sdk-15.0.0.dev6 → warpzone_sdk-15.0.0.dev8}/warpzone/function/types.py +0 -0
  32. {warpzone_sdk-15.0.0.dev6 → warpzone_sdk-15.0.0.dev8}/warpzone/healthchecks/__init__.py +0 -0
  33. {warpzone_sdk-15.0.0.dev6 → warpzone_sdk-15.0.0.dev8}/warpzone/healthchecks/model.py +0 -0
  34. {warpzone_sdk-15.0.0.dev6 → warpzone_sdk-15.0.0.dev8}/warpzone/monitor/__init__.py +0 -0
  35. {warpzone_sdk-15.0.0.dev6 → warpzone_sdk-15.0.0.dev8}/warpzone/monitor/logs.py +0 -0
  36. {warpzone_sdk-15.0.0.dev6 → warpzone_sdk-15.0.0.dev8}/warpzone/servicebus/data/__init__.py +0 -0
  37. {warpzone_sdk-15.0.0.dev6 → warpzone_sdk-15.0.0.dev8}/warpzone/servicebus/data/client.py +0 -0
  38. {warpzone_sdk-15.0.0.dev6 → warpzone_sdk-15.0.0.dev8}/warpzone/servicebus/events/__init__.py +0 -0
  39. {warpzone_sdk-15.0.0.dev6 → warpzone_sdk-15.0.0.dev8}/warpzone/servicebus/events/client.py +0 -0
  40. {warpzone_sdk-15.0.0.dev6 → warpzone_sdk-15.0.0.dev8}/warpzone/servicebus/events/triggers.py +0 -0
  41. {warpzone_sdk-15.0.0.dev6 → warpzone_sdk-15.0.0.dev8}/warpzone/tablestorage/db/__init__.py +0 -0
  42. {warpzone_sdk-15.0.0.dev6 → warpzone_sdk-15.0.0.dev8}/warpzone/tablestorage/db/base_client.py +0 -0
  43. {warpzone_sdk-15.0.0.dev6 → warpzone_sdk-15.0.0.dev8}/warpzone/tablestorage/db/client.py +0 -0
  44. {warpzone_sdk-15.0.0.dev6 → warpzone_sdk-15.0.0.dev8}/warpzone/tablestorage/db/table_config.py +0 -0
  45. {warpzone_sdk-15.0.0.dev6 → warpzone_sdk-15.0.0.dev8}/warpzone/tablestorage/tables/__init__.py +0 -0
  46. {warpzone_sdk-15.0.0.dev6 → warpzone_sdk-15.0.0.dev8}/warpzone/tablestorage/tables/client.py +0 -0
  47. {warpzone_sdk-15.0.0.dev6 → warpzone_sdk-15.0.0.dev8}/warpzone/tablestorage/tables/entities.py +0 -0
  48. {warpzone_sdk-15.0.0.dev6 → warpzone_sdk-15.0.0.dev8}/warpzone/tablestorage/tables/helpers.py +0 -0
  49. {warpzone_sdk-15.0.0.dev6 → warpzone_sdk-15.0.0.dev8}/warpzone/testing/__init__.py +0 -0
  50. {warpzone_sdk-15.0.0.dev6 → warpzone_sdk-15.0.0.dev8}/warpzone/testing/assertions.py +0 -0
  51. {warpzone_sdk-15.0.0.dev6 → warpzone_sdk-15.0.0.dev8}/warpzone/testing/data.py +0 -0
  52. {warpzone_sdk-15.0.0.dev6 → warpzone_sdk-15.0.0.dev8}/warpzone/testing/matchers.py +0 -0
  53. {warpzone_sdk-15.0.0.dev6 → warpzone_sdk-15.0.0.dev8}/warpzone/tools/__init__.py +0 -0
  54. {warpzone_sdk-15.0.0.dev6 → warpzone_sdk-15.0.0.dev8}/warpzone/tools/copy.py +0 -0
  55. {warpzone_sdk-15.0.0.dev6 → warpzone_sdk-15.0.0.dev8}/warpzone/transform/__init__.py +0 -0
  56. {warpzone_sdk-15.0.0.dev6 → warpzone_sdk-15.0.0.dev8}/warpzone/transform/data.py +0 -0
  57. {warpzone_sdk-15.0.0.dev6 → warpzone_sdk-15.0.0.dev8}/warpzone/transform/schema.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: warpzone-sdk
3
- Version: 15.0.0.dev6
3
+ Version: 15.0.0.dev8
4
4
  Summary: The main objective of this package is to centralize logic used to interact with Azure Functions, Azure Service Bus and Azure Table Storage
5
5
  Author: Team Enigma
6
6
  Author-email: enigma@energinet.dk
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "warpzone-sdk"
3
- version = "15.0.0.dev6"
3
+ version = "15.0.0.dev8"
4
4
  description = "The main objective of this package is to centralize logic used to interact with Azure Functions, Azure Service Bus and Azure Table Storage"
5
5
  authors = [{ name = "Team Enigma", email = "enigma@energinet.dk" }]
6
6
  requires-python = ">=3.10"
@@ -3,25 +3,10 @@ from contextlib import contextmanager
3
3
  from typing import Callable
4
4
 
5
5
  import azure.functions as func
6
- from azure.monitor.opentelemetry import configure_azure_monitor
7
- from opentelemetry import trace
8
6
 
9
7
  from warpzone.function.types import SingleArgumentCallable
10
8
  from warpzone.monitor import traces
11
9
 
12
- # Configure Azure Monitor at import to ensure proper telemetry setup.
13
- # The trace context is set per-invocation in run_in_trace_context to ensure
14
- # proper operation ID correlation for each function execution.
15
- configure_azure_monitor()
16
-
17
- # Apply trace filtering to suppress all Azure SDK traces except Service Bus
18
- tracer_provider = trace.get_tracer_provider()
19
- if hasattr(tracer_provider, "_active_span_processor"):
20
- # Wrap the existing span processor with our filter
21
- original_processor = tracer_provider._active_span_processor
22
- filtered_processor = traces.AzureSDKTraceFilter(original_processor)
23
- tracer_provider._active_span_processor = filtered_processor
24
-
25
10
  SUBJECT_IDENTIFIER = "<Subject>"
26
11
 
27
12
 
@@ -64,12 +64,11 @@ class AzureSDKTraceFilter(SpanProcessor):
64
64
 
65
65
  @contextmanager
66
66
  def set_trace_context(trace_parent: str, span_name: str = "function_execution"):
67
- """Context manager for setting the trace context with a recording span.
67
+ """Context manager for setting the trace context.
68
68
 
69
- Creates a child span of the propagated trace context. This is necessary
70
- because the LoggingHandler requires a recording span to properly correlate
71
- logs with the trace. A NonRecordingSpan (which is what TraceContextTextMapPropagator
72
- creates) may not be correctly handled during log batching/export.
69
+ Attaches the propagated trace context and creates a child span for tracing.
70
+ Note: Log correlation is handled by Azure Functions' native mechanism,
71
+ not OpenTelemetry, so this primarily affects span/dependency tracking.
73
72
 
74
73
  Args:
75
74
  trace_parent (str): Trace parent ID from the incoming request
@@ -78,15 +77,12 @@ def set_trace_context(trace_parent: str, span_name: str = "function_execution"):
78
77
  carrier = {"traceparent": trace_parent}
79
78
  ctx = TraceContextTextMapPropagator().extract(carrier=carrier)
80
79
 
81
- # Explicitly attach the extracted context first
82
80
  token = context.attach(ctx)
83
81
  try:
84
- # Now start a recording span as a child of the propagated context
85
82
  tracer = trace.get_tracer(__name__)
86
83
  with tracer.start_as_current_span(span_name):
87
84
  yield
88
85
  finally:
89
- # Explicitly detach to restore previous context
90
86
  context.detach(token)
91
87
 
92
88