warpzone-sdk 15.0.0.dev4__tar.gz → 15.0.0.dev6__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.
- {warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/PKG-INFO +1 -1
- {warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/pyproject.toml +1 -1
- {warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/warpzone/function/monitor.py +2 -1
- {warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/warpzone/monitor/traces.py +13 -18
- {warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/README.md +0 -0
- {warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/warpzone/__init__.py +0 -0
- {warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/warpzone/blobstorage/__init__.py +0 -0
- {warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/warpzone/blobstorage/client.py +0 -0
- {warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/warpzone/db/__init__.py +0 -0
- {warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/warpzone/db/client.py +0 -0
- {warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/warpzone/deltastorage/__init__.py +0 -0
- {warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/warpzone/deltastorage/data_types.py +0 -0
- {warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/warpzone/deltastorage/generated_columns.py +0 -0
- {warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/warpzone/deltastorage/lock_client.py +0 -0
- {warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/warpzone/deltastorage/schema.py +0 -0
- {warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/warpzone/deltastorage/slicing.py +0 -0
- {warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/warpzone/deltastorage/store.py +0 -0
- {warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/warpzone/deltastorage/table.py +0 -0
- {warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/warpzone/enums/__init__.py +0 -0
- {warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/warpzone/enums/topicenum.py +0 -0
- {warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/warpzone/function/__init__.py +0 -0
- {warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/warpzone/function/checks.py +0 -0
- {warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/warpzone/function/functionize.py +0 -0
- {warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/warpzone/function/integrations.py +0 -0
- {warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/warpzone/function/process.py +0 -0
- {warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/warpzone/function/processors/__init__.py +0 -0
- {warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/warpzone/function/processors/dependencies.py +0 -0
- {warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/warpzone/function/processors/outputs.py +0 -0
- {warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/warpzone/function/processors/triggers.py +0 -0
- {warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/warpzone/function/signature.py +0 -0
- {warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/warpzone/function/types.py +0 -0
- {warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/warpzone/healthchecks/__init__.py +0 -0
- {warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/warpzone/healthchecks/model.py +0 -0
- {warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/warpzone/monitor/__init__.py +0 -0
- {warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/warpzone/monitor/logs.py +0 -0
- {warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/warpzone/servicebus/data/__init__.py +0 -0
- {warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/warpzone/servicebus/data/client.py +0 -0
- {warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/warpzone/servicebus/events/__init__.py +0 -0
- {warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/warpzone/servicebus/events/client.py +0 -0
- {warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/warpzone/servicebus/events/triggers.py +0 -0
- {warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/warpzone/tablestorage/db/__init__.py +0 -0
- {warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/warpzone/tablestorage/db/base_client.py +0 -0
- {warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/warpzone/tablestorage/db/client.py +0 -0
- {warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/warpzone/tablestorage/db/table_config.py +0 -0
- {warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/warpzone/tablestorage/tables/__init__.py +0 -0
- {warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/warpzone/tablestorage/tables/client.py +0 -0
- {warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/warpzone/tablestorage/tables/entities.py +0 -0
- {warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/warpzone/tablestorage/tables/helpers.py +0 -0
- {warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/warpzone/testing/__init__.py +0 -0
- {warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/warpzone/testing/assertions.py +0 -0
- {warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/warpzone/testing/data.py +0 -0
- {warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/warpzone/testing/matchers.py +0 -0
- {warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/warpzone/tools/__init__.py +0 -0
- {warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/warpzone/tools/copy.py +0 -0
- {warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/warpzone/transform/__init__.py +0 -0
- {warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/warpzone/transform/data.py +0 -0
- {warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/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.
|
|
3
|
+
Version: 15.0.0.dev6
|
|
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.
|
|
3
|
+
version = "15.0.0.dev6"
|
|
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"
|
|
@@ -28,7 +28,8 @@ SUBJECT_IDENTIFIER = "<Subject>"
|
|
|
28
28
|
@contextmanager
|
|
29
29
|
def run_in_trace_context(context: func.Context):
|
|
30
30
|
trace_context = context.trace_context
|
|
31
|
-
|
|
31
|
+
span_name = context.function_name or "azure_function"
|
|
32
|
+
with traces.set_trace_context(trace_context.trace_parent, span_name=span_name):
|
|
32
33
|
yield
|
|
33
34
|
|
|
34
35
|
|
|
@@ -63,35 +63,30 @@ class AzureSDKTraceFilter(SpanProcessor):
|
|
|
63
63
|
|
|
64
64
|
|
|
65
65
|
@contextmanager
|
|
66
|
-
def set_trace_context(trace_parent: str):
|
|
67
|
-
"""Context manager for setting the trace context.
|
|
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.
|
|
68
68
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
The NonRecordingSpan is necessary because the LoggingHandler needs an
|
|
74
|
-
actual span (not just a SpanContext) to extract trace correlation IDs.
|
|
75
|
-
Using NonRecordingSpan avoids creating duplicate spans while still
|
|
76
|
-
providing the trace_id and span_id for log correlation.
|
|
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.
|
|
77
73
|
|
|
78
74
|
Args:
|
|
79
75
|
trace_parent (str): Trace parent ID from the incoming request
|
|
76
|
+
span_name (str): Name for the span. Defaults to "function_execution".
|
|
80
77
|
"""
|
|
81
78
|
carrier = {"traceparent": trace_parent}
|
|
82
79
|
ctx = TraceContextTextMapPropagator().extract(carrier=carrier)
|
|
83
80
|
|
|
84
|
-
#
|
|
85
|
-
# created by the propagator with the correct trace_id and span_id
|
|
86
|
-
span = trace.get_current_span(ctx)
|
|
87
|
-
|
|
88
|
-
# Set this span as the current span in context
|
|
89
|
-
ctx = trace.set_span_in_context(span)
|
|
90
|
-
|
|
81
|
+
# Explicitly attach the extracted context first
|
|
91
82
|
token = context.attach(ctx)
|
|
92
83
|
try:
|
|
93
|
-
|
|
84
|
+
# Now start a recording span as a child of the propagated context
|
|
85
|
+
tracer = trace.get_tracer(__name__)
|
|
86
|
+
with tracer.start_as_current_span(span_name):
|
|
87
|
+
yield
|
|
94
88
|
finally:
|
|
89
|
+
# Explicitly detach to restore previous context
|
|
95
90
|
context.detach(token)
|
|
96
91
|
|
|
97
92
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/warpzone/deltastorage/generated_columns.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/warpzone/function/processors/__init__.py
RENAMED
|
File without changes
|
{warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/warpzone/function/processors/dependencies.py
RENAMED
|
File without changes
|
{warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/warpzone/function/processors/outputs.py
RENAMED
|
File without changes
|
{warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/warpzone/function/processors/triggers.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/warpzone/servicebus/events/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/warpzone/servicebus/events/triggers.py
RENAMED
|
File without changes
|
|
File without changes
|
{warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/warpzone/tablestorage/db/base_client.py
RENAMED
|
File without changes
|
|
File without changes
|
{warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/warpzone/tablestorage/db/table_config.py
RENAMED
|
File without changes
|
{warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/warpzone/tablestorage/tables/__init__.py
RENAMED
|
File without changes
|
{warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/warpzone/tablestorage/tables/client.py
RENAMED
|
File without changes
|
{warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/warpzone/tablestorage/tables/entities.py
RENAMED
|
File without changes
|
{warpzone_sdk-15.0.0.dev4 → warpzone_sdk-15.0.0.dev6}/warpzone/tablestorage/tables/helpers.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|