nexus-queue 0.1.2__tar.gz → 0.1.3__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 (26) hide show
  1. {nexus_queue-0.1.2 → nexus_queue-0.1.3}/CHANGELOG.md +7 -0
  2. {nexus_queue-0.1.2 → nexus_queue-0.1.3}/PKG-INFO +1 -1
  3. {nexus_queue-0.1.2 → nexus_queue-0.1.3}/nexus_queue/tracing.py +11 -6
  4. {nexus_queue-0.1.2 → nexus_queue-0.1.3}/pyproject.toml +1 -1
  5. {nexus_queue-0.1.2 → nexus_queue-0.1.3}/.gitignore +0 -0
  6. {nexus_queue-0.1.2 → nexus_queue-0.1.3}/.python-version +0 -0
  7. {nexus_queue-0.1.2 → nexus_queue-0.1.3}/README.md +0 -0
  8. {nexus_queue-0.1.2 → nexus_queue-0.1.3}/nexus_queue/__init__.py +0 -0
  9. {nexus_queue-0.1.2 → nexus_queue-0.1.3}/nexus_queue/app.py +0 -0
  10. {nexus_queue-0.1.2 → nexus_queue-0.1.3}/nexus_queue/broker.py +0 -0
  11. {nexus_queue-0.1.2 → nexus_queue-0.1.3}/nexus_queue/config.py +0 -0
  12. {nexus_queue-0.1.2 → nexus_queue-0.1.3}/nexus_queue/delayed.py +0 -0
  13. {nexus_queue-0.1.2 → nexus_queue-0.1.3}/nexus_queue/envelope.py +0 -0
  14. {nexus_queue-0.1.2 → nexus_queue-0.1.3}/nexus_queue/exceptions.py +0 -0
  15. {nexus_queue-0.1.2 → nexus_queue-0.1.3}/nexus_queue/handlers.py +0 -0
  16. {nexus_queue-0.1.2 → nexus_queue-0.1.3}/nexus_queue/kicker.py +0 -0
  17. {nexus_queue-0.1.2 → nexus_queue-0.1.3}/nexus_queue/lifecycle.py +0 -0
  18. {nexus_queue-0.1.2 → nexus_queue-0.1.3}/nexus_queue/middleware/__init__.py +0 -0
  19. {nexus_queue-0.1.2 → nexus_queue-0.1.3}/nexus_queue/middleware/metrics.py +0 -0
  20. {nexus_queue-0.1.2 → nexus_queue-0.1.3}/nexus_queue/middleware/retry_dlq.py +0 -0
  21. {nexus_queue-0.1.2 → nexus_queue-0.1.3}/nexus_queue/naming.py +0 -0
  22. {nexus_queue-0.1.2 → nexus_queue-0.1.3}/nexus_queue/pipeline.py +0 -0
  23. {nexus_queue-0.1.2 → nexus_queue-0.1.3}/nexus_queue/ports.py +0 -0
  24. {nexus_queue-0.1.2 → nexus_queue-0.1.3}/nexus_queue/publisher.py +0 -0
  25. {nexus_queue-0.1.2 → nexus_queue-0.1.3}/nexus_queue/py.typed +0 -0
  26. {nexus_queue-0.1.2 → nexus_queue-0.1.3}/tests/test_integration.py +0 -0
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.1.3](https://github.com/Zetesis-Labs/PayloadAgents/compare/nexus-queue-v0.1.2...nexus-queue-v0.1.3) (2026-06-17)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * **nexus-queue:** import OTLP exporter lazily so the worker runs untraced without it ([#102](https://github.com/Zetesis-Labs/PayloadAgents/issues/102)) ([9c0a3f6](https://github.com/Zetesis-Labs/PayloadAgents/commit/9c0a3f62d2cffbafa33defb89b81a97a0920b738))
9
+
3
10
  ## [0.1.2](https://github.com/Zetesis-Labs/PayloadAgents/compare/nexus-queue-v0.1.1...nexus-queue-v0.1.2) (2026-06-17)
4
11
 
5
12
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nexus-queue
3
- Version: 0.1.2
3
+ Version: 0.1.3
4
4
  Summary: Nexus-Queue — portable taskiq + Redis Streams worker runtime: namespaced streams, versioned envelope, ports-and-adapters, retry/DLQ/idempotency/tracing/metrics middleware.
5
5
  Project-URL: Homepage, https://github.com/Zetesis-Labs/PayloadAgents
6
6
  Project-URL: Repository, https://github.com/Zetesis-Labs/PayloadAgents
@@ -11,11 +11,6 @@ from __future__ import annotations
11
11
  import os
12
12
 
13
13
  import structlog
14
- from opentelemetry import trace
15
- from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter
16
- from opentelemetry.sdk.resources import Resource
17
- from opentelemetry.sdk.trace import TracerProvider
18
- from opentelemetry.sdk.trace.export import BatchSpanProcessor
19
14
 
20
15
  from nexus_queue.config import RuntimeConfig
21
16
 
@@ -27,11 +22,21 @@ OTLP_ENDPOINT_ENV = "OTEL_EXPORTER_OTLP_ENDPOINT"
27
22
  def configure_tracing(config: RuntimeConfig) -> None:
28
23
  """Wire an OTLP span exporter when a collector endpoint is configured.
29
24
 
30
- No-op unless ``OTEL_EXPORTER_OTLP_ENDPOINT`` is set. The exporter reads the
25
+ No-op unless ``OTEL_EXPORTER_OTLP_ENDPOINT`` is set. The OTel SDK + exporter
26
+ are imported **lazily** here, after the endpoint guard, so the worker starts
27
+ untraced — and without the exporter package installed — wherever no
28
+ collector exists (the module promises exactly this). The exporter reads the
31
29
  endpoint (and any other ``OTEL_*`` options) from the environment itself."""
32
30
  endpoint = os.environ.get(OTLP_ENDPOINT_ENV)
33
31
  if not endpoint:
34
32
  return
33
+
34
+ from opentelemetry import trace
35
+ from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter
36
+ from opentelemetry.sdk.resources import Resource
37
+ from opentelemetry.sdk.trace import TracerProvider
38
+ from opentelemetry.sdk.trace.export import BatchSpanProcessor
39
+
35
40
  provider = TracerProvider(resource=Resource.create({"service.name": config.app_name}))
36
41
  provider.add_span_processor(BatchSpanProcessor(OTLPSpanExporter()))
37
42
  trace.set_tracer_provider(provider)
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "nexus-queue"
3
- version = "0.1.2"
3
+ version = "0.1.3"
4
4
  description = "Nexus-Queue — portable taskiq + Redis Streams worker runtime: namespaced streams, versioned envelope, ports-and-adapters, retry/DLQ/idempotency/tracing/metrics middleware."
5
5
  requires-python = ">=3.12"
6
6
  readme = "README.md"
File without changes
File without changes
File without changes