warpzone-sdk 15.0.0.dev2__tar.gz → 15.0.0.dev3__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.dev2 → warpzone_sdk-15.0.0.dev3}/PKG-INFO +1 -1
  2. {warpzone_sdk-15.0.0.dev2 → warpzone_sdk-15.0.0.dev3}/pyproject.toml +1 -1
  3. {warpzone_sdk-15.0.0.dev2 → warpzone_sdk-15.0.0.dev3}/warpzone/function/monitor.py +21 -9
  4. {warpzone_sdk-15.0.0.dev2 → warpzone_sdk-15.0.0.dev3}/README.md +0 -0
  5. {warpzone_sdk-15.0.0.dev2 → warpzone_sdk-15.0.0.dev3}/warpzone/__init__.py +0 -0
  6. {warpzone_sdk-15.0.0.dev2 → warpzone_sdk-15.0.0.dev3}/warpzone/blobstorage/__init__.py +0 -0
  7. {warpzone_sdk-15.0.0.dev2 → warpzone_sdk-15.0.0.dev3}/warpzone/blobstorage/client.py +0 -0
  8. {warpzone_sdk-15.0.0.dev2 → warpzone_sdk-15.0.0.dev3}/warpzone/db/__init__.py +0 -0
  9. {warpzone_sdk-15.0.0.dev2 → warpzone_sdk-15.0.0.dev3}/warpzone/db/client.py +0 -0
  10. {warpzone_sdk-15.0.0.dev2 → warpzone_sdk-15.0.0.dev3}/warpzone/deltastorage/__init__.py +0 -0
  11. {warpzone_sdk-15.0.0.dev2 → warpzone_sdk-15.0.0.dev3}/warpzone/deltastorage/data_types.py +0 -0
  12. {warpzone_sdk-15.0.0.dev2 → warpzone_sdk-15.0.0.dev3}/warpzone/deltastorage/generated_columns.py +0 -0
  13. {warpzone_sdk-15.0.0.dev2 → warpzone_sdk-15.0.0.dev3}/warpzone/deltastorage/lock_client.py +0 -0
  14. {warpzone_sdk-15.0.0.dev2 → warpzone_sdk-15.0.0.dev3}/warpzone/deltastorage/schema.py +0 -0
  15. {warpzone_sdk-15.0.0.dev2 → warpzone_sdk-15.0.0.dev3}/warpzone/deltastorage/slicing.py +0 -0
  16. {warpzone_sdk-15.0.0.dev2 → warpzone_sdk-15.0.0.dev3}/warpzone/deltastorage/store.py +0 -0
  17. {warpzone_sdk-15.0.0.dev2 → warpzone_sdk-15.0.0.dev3}/warpzone/deltastorage/table.py +0 -0
  18. {warpzone_sdk-15.0.0.dev2 → warpzone_sdk-15.0.0.dev3}/warpzone/enums/__init__.py +0 -0
  19. {warpzone_sdk-15.0.0.dev2 → warpzone_sdk-15.0.0.dev3}/warpzone/enums/topicenum.py +0 -0
  20. {warpzone_sdk-15.0.0.dev2 → warpzone_sdk-15.0.0.dev3}/warpzone/function/__init__.py +0 -0
  21. {warpzone_sdk-15.0.0.dev2 → warpzone_sdk-15.0.0.dev3}/warpzone/function/checks.py +0 -0
  22. {warpzone_sdk-15.0.0.dev2 → warpzone_sdk-15.0.0.dev3}/warpzone/function/functionize.py +0 -0
  23. {warpzone_sdk-15.0.0.dev2 → warpzone_sdk-15.0.0.dev3}/warpzone/function/integrations.py +0 -0
  24. {warpzone_sdk-15.0.0.dev2 → warpzone_sdk-15.0.0.dev3}/warpzone/function/process.py +0 -0
  25. {warpzone_sdk-15.0.0.dev2 → warpzone_sdk-15.0.0.dev3}/warpzone/function/processors/__init__.py +0 -0
  26. {warpzone_sdk-15.0.0.dev2 → warpzone_sdk-15.0.0.dev3}/warpzone/function/processors/dependencies.py +0 -0
  27. {warpzone_sdk-15.0.0.dev2 → warpzone_sdk-15.0.0.dev3}/warpzone/function/processors/outputs.py +0 -0
  28. {warpzone_sdk-15.0.0.dev2 → warpzone_sdk-15.0.0.dev3}/warpzone/function/processors/triggers.py +0 -0
  29. {warpzone_sdk-15.0.0.dev2 → warpzone_sdk-15.0.0.dev3}/warpzone/function/signature.py +0 -0
  30. {warpzone_sdk-15.0.0.dev2 → warpzone_sdk-15.0.0.dev3}/warpzone/function/types.py +0 -0
  31. {warpzone_sdk-15.0.0.dev2 → warpzone_sdk-15.0.0.dev3}/warpzone/healthchecks/__init__.py +0 -0
  32. {warpzone_sdk-15.0.0.dev2 → warpzone_sdk-15.0.0.dev3}/warpzone/healthchecks/model.py +0 -0
  33. {warpzone_sdk-15.0.0.dev2 → warpzone_sdk-15.0.0.dev3}/warpzone/monitor/__init__.py +0 -0
  34. {warpzone_sdk-15.0.0.dev2 → warpzone_sdk-15.0.0.dev3}/warpzone/monitor/logs.py +0 -0
  35. {warpzone_sdk-15.0.0.dev2 → warpzone_sdk-15.0.0.dev3}/warpzone/monitor/traces.py +0 -0
  36. {warpzone_sdk-15.0.0.dev2 → warpzone_sdk-15.0.0.dev3}/warpzone/servicebus/data/__init__.py +0 -0
  37. {warpzone_sdk-15.0.0.dev2 → warpzone_sdk-15.0.0.dev3}/warpzone/servicebus/data/client.py +0 -0
  38. {warpzone_sdk-15.0.0.dev2 → warpzone_sdk-15.0.0.dev3}/warpzone/servicebus/events/__init__.py +0 -0
  39. {warpzone_sdk-15.0.0.dev2 → warpzone_sdk-15.0.0.dev3}/warpzone/servicebus/events/client.py +0 -0
  40. {warpzone_sdk-15.0.0.dev2 → warpzone_sdk-15.0.0.dev3}/warpzone/servicebus/events/triggers.py +0 -0
  41. {warpzone_sdk-15.0.0.dev2 → warpzone_sdk-15.0.0.dev3}/warpzone/tablestorage/db/__init__.py +0 -0
  42. {warpzone_sdk-15.0.0.dev2 → warpzone_sdk-15.0.0.dev3}/warpzone/tablestorage/db/base_client.py +0 -0
  43. {warpzone_sdk-15.0.0.dev2 → warpzone_sdk-15.0.0.dev3}/warpzone/tablestorage/db/client.py +0 -0
  44. {warpzone_sdk-15.0.0.dev2 → warpzone_sdk-15.0.0.dev3}/warpzone/tablestorage/db/table_config.py +0 -0
  45. {warpzone_sdk-15.0.0.dev2 → warpzone_sdk-15.0.0.dev3}/warpzone/tablestorage/tables/__init__.py +0 -0
  46. {warpzone_sdk-15.0.0.dev2 → warpzone_sdk-15.0.0.dev3}/warpzone/tablestorage/tables/client.py +0 -0
  47. {warpzone_sdk-15.0.0.dev2 → warpzone_sdk-15.0.0.dev3}/warpzone/tablestorage/tables/entities.py +0 -0
  48. {warpzone_sdk-15.0.0.dev2 → warpzone_sdk-15.0.0.dev3}/warpzone/tablestorage/tables/helpers.py +0 -0
  49. {warpzone_sdk-15.0.0.dev2 → warpzone_sdk-15.0.0.dev3}/warpzone/testing/__init__.py +0 -0
  50. {warpzone_sdk-15.0.0.dev2 → warpzone_sdk-15.0.0.dev3}/warpzone/testing/assertions.py +0 -0
  51. {warpzone_sdk-15.0.0.dev2 → warpzone_sdk-15.0.0.dev3}/warpzone/testing/data.py +0 -0
  52. {warpzone_sdk-15.0.0.dev2 → warpzone_sdk-15.0.0.dev3}/warpzone/testing/matchers.py +0 -0
  53. {warpzone_sdk-15.0.0.dev2 → warpzone_sdk-15.0.0.dev3}/warpzone/tools/__init__.py +0 -0
  54. {warpzone_sdk-15.0.0.dev2 → warpzone_sdk-15.0.0.dev3}/warpzone/tools/copy.py +0 -0
  55. {warpzone_sdk-15.0.0.dev2 → warpzone_sdk-15.0.0.dev3}/warpzone/transform/__init__.py +0 -0
  56. {warpzone_sdk-15.0.0.dev2 → warpzone_sdk-15.0.0.dev3}/warpzone/transform/data.py +0 -0
  57. {warpzone_sdk-15.0.0.dev2 → warpzone_sdk-15.0.0.dev3}/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.dev2
3
+ Version: 15.0.0.dev3
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.dev2"
3
+ version = "15.0.0.dev3"
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"
@@ -9,16 +9,26 @@ from opentelemetry import trace
9
9
  from warpzone.function.types import SingleArgumentCallable
10
10
  from warpzone.monitor import logs, traces
11
11
 
12
- # Configure Azure Monitor first
13
- configure_azure_monitor()
12
+ # Lazy initialization flag to ensure configure_azure_monitor is called only once
13
+ _monitor_configured = False
14
+
15
+
16
+ def _ensure_monitor_configured():
17
+ """Configure Azure Monitor lazily on first use to ensure proper trace context."""
18
+ global _monitor_configured
19
+ if not _monitor_configured:
20
+ configure_azure_monitor()
21
+
22
+ # Apply trace filtering to suppress all Azure SDK traces except Service Bus
23
+ tracer_provider = trace.get_tracer_provider()
24
+ if hasattr(tracer_provider, "_active_span_processor"):
25
+ # Wrap the existing span processor with our filter
26
+ original_processor = tracer_provider._active_span_processor
27
+ filtered_processor = traces.AzureSDKTraceFilter(original_processor)
28
+ tracer_provider._active_span_processor = filtered_processor
29
+
30
+ _monitor_configured = True
14
31
 
15
- # Apply trace filtering to suppress all Azure SDK traces except Service Bus
16
- tracer_provider = trace.get_tracer_provider()
17
- if hasattr(tracer_provider, "_active_span_processor"):
18
- # Wrap the existing span processor with our filter
19
- original_processor = tracer_provider._active_span_processor
20
- filtered_processor = traces.AzureSDKTraceFilter(original_processor)
21
- tracer_provider._active_span_processor = filtered_processor
22
32
 
23
33
  SUBJECT_IDENTIFIER = "<Subject>"
24
34
 
@@ -55,11 +65,13 @@ def monitor(main: SingleArgumentCallable) -> Callable:
55
65
  """
56
66
 
57
67
  async def wrapper_async(arg, context: func.Context):
68
+ _ensure_monitor_configured()
58
69
  with run_in_trace_context(context):
59
70
  result = await main(arg)
60
71
  return result
61
72
 
62
73
  def wrapper(arg, context: func.Context):
74
+ _ensure_monitor_configured()
63
75
  with run_in_trace_context(context):
64
76
  result = main(arg)
65
77
  return result