jararaca 0.3.27__tar.gz → 0.3.29__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.
Potentially problematic release.
This version of jararaca might be problematic. Click here for more details.
- {jararaca-0.3.27 → jararaca-0.3.29}/PKG-INFO +1 -1
- {jararaca-0.3.27 → jararaca-0.3.29}/pyproject.toml +1 -1
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/__init__.py +18 -0
- jararaca-0.3.29/src/jararaca/observability/constants.py +3 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/observability/decorators.py +13 -0
- jararaca-0.3.29/src/jararaca/observability/fastapi_exception_handler.py +33 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/observability/hooks.py +22 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/observability/providers/otel.py +37 -15
- {jararaca-0.3.27 → jararaca-0.3.29}/LICENSE +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/README.md +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/docs/CNAME +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/docs/architecture.md +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/docs/assets/_f04774c9-7e05-4da4-8b17-8be23f6a1475.jpeg +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/docs/assets/_f04774c9-7e05-4da4-8b17-8be23f6a1475.webp +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/docs/assets/tracing_example.png +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/docs/expose-type.md +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/docs/http-rpc.md +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/docs/index.md +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/docs/interceptors.md +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/docs/messagebus.md +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/docs/retry.md +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/docs/scheduler.md +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/docs/stylesheets/custom.css +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/docs/websocket.md +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/__main__.py +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/broker_backend/__init__.py +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/broker_backend/mapper.py +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/broker_backend/redis_broker_backend.py +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/cli.py +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/common/__init__.py +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/core/__init__.py +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/core/providers.py +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/core/uow.py +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/di.py +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/files/entity.py.mako +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/lifecycle.py +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/messagebus/__init__.py +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/messagebus/bus_message_controller.py +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/messagebus/consumers/__init__.py +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/messagebus/decorators.py +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/messagebus/implicit_headers.py +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/messagebus/interceptors/__init__.py +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/messagebus/interceptors/aiopika_publisher_interceptor.py +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/messagebus/interceptors/publisher_interceptor.py +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/messagebus/message.py +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/messagebus/publisher.py +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/messagebus/worker.py +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/microservice.py +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/observability/interceptor.py +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/observability/providers/__init__.py +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/persistence/base.py +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/persistence/exports.py +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/persistence/interceptors/__init__.py +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/persistence/interceptors/aiosqa_interceptor.py +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/persistence/interceptors/constants.py +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/persistence/interceptors/decorators.py +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/persistence/session.py +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/persistence/sort_filter.py +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/persistence/utilities.py +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/presentation/__init__.py +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/presentation/decorators.py +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/presentation/hooks.py +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/presentation/http_microservice.py +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/presentation/server.py +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/presentation/websocket/__init__.py +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/presentation/websocket/base_types.py +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/presentation/websocket/context.py +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/presentation/websocket/decorators.py +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/presentation/websocket/redis.py +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/presentation/websocket/types.py +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/presentation/websocket/websocket_interceptor.py +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/py.typed +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/reflect/__init__.py +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/reflect/controller_inspect.py +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/reflect/metadata.py +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/rpc/__init__.py +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/rpc/http/__init__.py +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/rpc/http/backends/__init__.py +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/rpc/http/backends/httpx.py +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/rpc/http/backends/otel.py +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/rpc/http/decorators.py +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/rpc/http/httpx.py +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/scheduler/__init__.py +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/scheduler/beat_worker.py +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/scheduler/decorators.py +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/scheduler/types.py +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/tools/app_config/__init__.py +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/tools/app_config/decorators.py +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/tools/app_config/interceptor.py +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/tools/typescript/__init__.py +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/tools/typescript/decorators.py +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/tools/typescript/interface_parser.py +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/utils/__init__.py +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/utils/rabbitmq_utils.py +0 -0
- {jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/utils/retry.py +0 -0
|
@@ -18,8 +18,14 @@ if TYPE_CHECKING:
|
|
|
18
18
|
use_app_type,
|
|
19
19
|
)
|
|
20
20
|
from jararaca.observability.decorators import TracedClass, TracedFunc, traced_class
|
|
21
|
+
from jararaca.observability.fastapi_exception_handler import (
|
|
22
|
+
setup_fastapi_exception_handler,
|
|
23
|
+
)
|
|
21
24
|
from jararaca.observability.hooks import (
|
|
22
25
|
add_event,
|
|
26
|
+
add_span_link,
|
|
27
|
+
get_current_span,
|
|
28
|
+
get_current_span_context,
|
|
23
29
|
get_tracing_provider,
|
|
24
30
|
record_exception,
|
|
25
31
|
set_span_attribute,
|
|
@@ -236,9 +242,13 @@ if TYPE_CHECKING:
|
|
|
236
242
|
"TracedClass",
|
|
237
243
|
"traced_class",
|
|
238
244
|
"start_span",
|
|
245
|
+
"add_span_link",
|
|
246
|
+
"get_current_span",
|
|
247
|
+
"get_current_span_context",
|
|
239
248
|
"spawn_trace",
|
|
240
249
|
"set_span_attribute",
|
|
241
250
|
"add_event",
|
|
251
|
+
"setup_fastapi_exception_handler",
|
|
242
252
|
"set_span_status",
|
|
243
253
|
"record_exception",
|
|
244
254
|
"get_tracing_provider",
|
|
@@ -416,8 +426,16 @@ _dynamic_imports: "dict[str, tuple[str, str, str | None]]" = {
|
|
|
416
426
|
"TracedClass": (__SPEC_PARENT__, "observability.decorators", None),
|
|
417
427
|
"traced_class": (__SPEC_PARENT__, "observability.decorators", None),
|
|
418
428
|
"spawn_trace": (__SPEC_PARENT__, "observability.hooks", None),
|
|
429
|
+
"setup_fastapi_exception_handler": (
|
|
430
|
+
__SPEC_PARENT__,
|
|
431
|
+
"observability.fastapi_exception_handler",
|
|
432
|
+
None,
|
|
433
|
+
),
|
|
419
434
|
"set_span_attribute": (__SPEC_PARENT__, "observability.hooks", None),
|
|
420
435
|
"start_span": (__SPEC_PARENT__, "observability.hooks", None),
|
|
436
|
+
"add_span_link": (__SPEC_PARENT__, "observability.hooks", None),
|
|
437
|
+
"get_current_span": (__SPEC_PARENT__, "observability.hooks", None),
|
|
438
|
+
"get_current_span_context": (__SPEC_PARENT__, "observability.hooks", None),
|
|
421
439
|
"add_event": (__SPEC_PARENT__, "observability.hooks", None),
|
|
422
440
|
"set_span_status": (__SPEC_PARENT__, "observability.hooks", None),
|
|
423
441
|
"record_exception": (__SPEC_PARENT__, "observability.hooks", None),
|
|
@@ -35,6 +35,12 @@ AttributeValue = Union[
|
|
|
35
35
|
AttributeMap = Mapping[str, AttributeValue]
|
|
36
36
|
|
|
37
37
|
|
|
38
|
+
class TracingSpan(Protocol): ...
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
class TracingSpanContext(Protocol): ...
|
|
42
|
+
|
|
43
|
+
|
|
38
44
|
class TracingContextProvider(Protocol):
|
|
39
45
|
|
|
40
46
|
def start_span_context(
|
|
@@ -63,6 +69,13 @@ class TracingContextProvider(Protocol):
|
|
|
63
69
|
) -> None: ...
|
|
64
70
|
|
|
65
71
|
def update_span_name(self, new_name: str) -> None: ...
|
|
72
|
+
|
|
73
|
+
def add_link(self, span_context: TracingSpanContext) -> None: ...
|
|
74
|
+
|
|
75
|
+
def get_current_span(self) -> TracingSpan | None: ...
|
|
76
|
+
def get_current_span_context(self) -> TracingSpanContext | None: ...
|
|
77
|
+
|
|
78
|
+
|
|
66
79
|
class TracingContextProviderFactory(Protocol):
|
|
67
80
|
|
|
68
81
|
def root_setup(
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
from fastapi import FastAPI, Request, Response
|
|
2
|
+
from fastapi.exception_handlers import (
|
|
3
|
+
http_exception_handler,
|
|
4
|
+
request_validation_exception_handler,
|
|
5
|
+
)
|
|
6
|
+
from fastapi.exceptions import RequestValidationError
|
|
7
|
+
from fastapi.responses import JSONResponse
|
|
8
|
+
from starlette.exceptions import HTTPException
|
|
9
|
+
|
|
10
|
+
from jararaca.observability.constants import TRACEPARENT_KEY
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
def setup_fastapi_exception_handler(
|
|
14
|
+
app: FastAPI, trace_header_name: str = "traceparent"
|
|
15
|
+
) -> None:
|
|
16
|
+
async def base_http_exception_handler(
|
|
17
|
+
request: Request, exc: HTTPException | RequestValidationError
|
|
18
|
+
) -> JSONResponse | Response:
|
|
19
|
+
|
|
20
|
+
if isinstance(exc, RequestValidationError):
|
|
21
|
+
response = await request_validation_exception_handler(request, exc)
|
|
22
|
+
response.headers[trace_header_name] = request.scope.get(TRACEPARENT_KEY, "")
|
|
23
|
+
return response
|
|
24
|
+
else:
|
|
25
|
+
err_response = await http_exception_handler(request, exc)
|
|
26
|
+
|
|
27
|
+
err_response.headers[trace_header_name] = request.scope.get(
|
|
28
|
+
TRACEPARENT_KEY, ""
|
|
29
|
+
)
|
|
30
|
+
return err_response
|
|
31
|
+
|
|
32
|
+
app.exception_handlers[HTTPException] = base_http_exception_handler
|
|
33
|
+
app.exception_handlers[RequestValidationError] = base_http_exception_handler
|
|
@@ -6,6 +6,8 @@ from jararaca.observability.decorators import (
|
|
|
6
6
|
AttributeMap,
|
|
7
7
|
AttributeValue,
|
|
8
8
|
TracingContextProvider,
|
|
9
|
+
TracingSpan,
|
|
10
|
+
TracingSpanContext,
|
|
9
11
|
get_tracing_ctx_provider,
|
|
10
12
|
)
|
|
11
13
|
|
|
@@ -84,3 +86,23 @@ def set_span_attribute(
|
|
|
84
86
|
|
|
85
87
|
def get_tracing_provider() -> TracingContextProvider | None:
|
|
86
88
|
return get_tracing_ctx_provider()
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
def get_current_span_context() -> TracingSpanContext | None:
|
|
92
|
+
|
|
93
|
+
if trace_context_provider := get_tracing_ctx_provider():
|
|
94
|
+
return trace_context_provider.get_current_span_context()
|
|
95
|
+
return None
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
def get_current_span() -> TracingSpan | None:
|
|
99
|
+
|
|
100
|
+
if trace_context_provider := get_tracing_ctx_provider():
|
|
101
|
+
return trace_context_provider.get_current_span()
|
|
102
|
+
return None
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
def add_span_link(span_context: TracingSpanContext) -> None:
|
|
106
|
+
|
|
107
|
+
if trace_context_provider := get_tracing_ctx_provider():
|
|
108
|
+
trace_context_provider.add_link(span_context=span_context)
|
|
@@ -2,7 +2,6 @@ import logging
|
|
|
2
2
|
from contextlib import asynccontextmanager, contextmanager
|
|
3
3
|
from typing import Any, AsyncGenerator, Generator, Literal, Protocol
|
|
4
4
|
|
|
5
|
-
from fastapi import HTTPException
|
|
6
5
|
from opentelemetry import metrics, trace
|
|
7
6
|
from opentelemetry._logs import set_logger_provider
|
|
8
7
|
from opentelemetry.baggage.propagation import W3CBaggagePropagator
|
|
@@ -35,17 +34,32 @@ from jararaca.microservice import (
|
|
|
35
34
|
Microservice,
|
|
36
35
|
use_app_transaction_context,
|
|
37
36
|
)
|
|
37
|
+
from jararaca.observability.constants import TRACEPARENT_KEY
|
|
38
38
|
from jararaca.observability.decorators import (
|
|
39
39
|
AttributeMap,
|
|
40
40
|
AttributeValue,
|
|
41
41
|
TracingContextProvider,
|
|
42
42
|
TracingContextProviderFactory,
|
|
43
|
+
TracingSpan,
|
|
44
|
+
TracingSpanContext,
|
|
43
45
|
)
|
|
44
46
|
from jararaca.observability.interceptor import ObservabilityProvider
|
|
45
47
|
|
|
46
48
|
tracer: trace.Tracer = trace.get_tracer(__name__)
|
|
47
49
|
|
|
48
50
|
|
|
51
|
+
class OtelTracingSpan(TracingSpan):
|
|
52
|
+
|
|
53
|
+
def __init__(self, span: trace.Span) -> None:
|
|
54
|
+
self.span = span
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
class OtelTracingSpanContext(TracingSpanContext):
|
|
58
|
+
|
|
59
|
+
def __init__(self, span_context: trace.SpanContext) -> None:
|
|
60
|
+
self.span_context = span_context
|
|
61
|
+
|
|
62
|
+
|
|
49
63
|
class OtelTracingContextProvider(TracingContextProvider):
|
|
50
64
|
|
|
51
65
|
def __init__(self, app_context: AppTransactionContext) -> None:
|
|
@@ -90,8 +104,21 @@ class OtelTracingContextProvider(TracingContextProvider):
|
|
|
90
104
|
|
|
91
105
|
def update_span_name(self, new_name: str) -> None:
|
|
92
106
|
span = trace.get_current_span()
|
|
107
|
+
|
|
93
108
|
span.update_name(new_name)
|
|
94
109
|
|
|
110
|
+
def add_link(self, span_context: TracingSpanContext) -> None:
|
|
111
|
+
if not isinstance(span_context, OtelTracingSpanContext):
|
|
112
|
+
return
|
|
113
|
+
span = trace.get_current_span()
|
|
114
|
+
span.add_link(span_context.span_context)
|
|
115
|
+
|
|
116
|
+
def get_current_span(self) -> TracingSpan | None:
|
|
117
|
+
return OtelTracingSpan(trace.get_current_span())
|
|
118
|
+
|
|
119
|
+
def get_current_span_context(self) -> TracingSpanContext | None:
|
|
120
|
+
return OtelTracingSpanContext(trace.get_current_span().get_span_context())
|
|
121
|
+
|
|
95
122
|
|
|
96
123
|
class OtelTracingContextProviderFactory(TracingContextProviderFactory):
|
|
97
124
|
|
|
@@ -195,25 +222,20 @@ class OtelTracingContextProviderFactory(TracingContextProviderFactory):
|
|
|
195
222
|
},
|
|
196
223
|
) as root_span:
|
|
197
224
|
cx = root_span.get_span_context()
|
|
225
|
+
span_traceparent_id = hex(cx.trace_id)[2:].rjust(32, "0")
|
|
198
226
|
if app_tx_ctx.transaction_data.context_type == "http":
|
|
199
|
-
app_tx_ctx.transaction_data.
|
|
200
|
-
|
|
201
|
-
)
|
|
227
|
+
app_tx_ctx.transaction_data.request.scope[TRACEPARENT_KEY] = (
|
|
228
|
+
span_traceparent_id
|
|
229
|
+
)
|
|
230
|
+
elif app_tx_ctx.transaction_data.context_type == "websocket":
|
|
231
|
+
app_tx_ctx.transaction_data.websocket.scope[TRACEPARENT_KEY] = (
|
|
232
|
+
span_traceparent_id
|
|
233
|
+
)
|
|
202
234
|
tracing_headers: ImplicitHeaders = {}
|
|
203
235
|
TraceContextTextMapPropagator().inject(tracing_headers)
|
|
204
236
|
W3CBaggagePropagator().inject(tracing_headers)
|
|
205
237
|
with provide_implicit_headers(tracing_headers):
|
|
206
|
-
|
|
207
|
-
yield
|
|
208
|
-
except HTTPException as http_exc:
|
|
209
|
-
root_span.record_exception(http_exc)
|
|
210
|
-
root_span.set_status(
|
|
211
|
-
trace.Status(
|
|
212
|
-
trace.StatusCode.ERROR,
|
|
213
|
-
f"HTTP {http_exc.status_code}: {http_exc.detail}",
|
|
214
|
-
)
|
|
215
|
-
)
|
|
216
|
-
raise
|
|
238
|
+
yield
|
|
217
239
|
|
|
218
240
|
|
|
219
241
|
class LoggerHandlerCallback(Protocol):
|
|
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
|
|
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
|
|
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
|
{jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/messagebus/interceptors/publisher_interceptor.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
|
{jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/persistence/interceptors/aiosqa_interceptor.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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{jararaca-0.3.27 → jararaca-0.3.29}/src/jararaca/presentation/websocket/websocket_interceptor.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
|
|
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
|