jararaca 0.2.37a9__tar.gz → 0.2.37a10__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.2.37a9 → jararaca-0.2.37a10}/PKG-INFO +1 -1
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/pyproject.toml +1 -1
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/src/jararaca/presentation/decorators.py +53 -13
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/src/jararaca/tools/typescript/interface_parser.py +15 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/LICENSE +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/README.md +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/docs/Architecture/Message Bus/Decorators.md +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/docs/Architecture/Message Bus/Interceptors.md +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/docs/Architecture/Observability/Decorators.md +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/docs/Architecture/Observability/Interceptors.md +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/docs/Architecture/Presentation/Decorators.md +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/docs/Architecture/RPC/RestClients/Decorators.md +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/docs/Architecture/RPC/RestClients/Middlewared.md +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/docs/Architecture/Schedule/Decorators.md +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/docs/Architecture/Websocket/Decorators.md +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/docs/Architecture/Websocket/Interceptors.md +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/docs/Concept/Adapters.md +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/docs/Concept/Hexagonal Architecture.md +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/docs/Concept/Ports.md +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/docs/assets/_f04774c9-7e05-4da4-8b17-8be23f6a1475.jpeg +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/docs/assets/_f04774c9-7e05-4da4-8b17-8be23f6a1475.webp +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/docs/assets/tracing_example.png +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/docs/index.md +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/src/jararaca/__init__.py +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/src/jararaca/__main__.py +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/src/jararaca/cli.py +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/src/jararaca/common/__init__.py +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/src/jararaca/core/__init__.py +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/src/jararaca/core/providers.py +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/src/jararaca/core/uow.py +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/src/jararaca/di.py +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/src/jararaca/files/entity.py.mako +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/src/jararaca/lifecycle.py +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/src/jararaca/messagebus/__init__.py +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/src/jararaca/messagebus/bus_message_controller.py +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/src/jararaca/messagebus/decorators.py +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/src/jararaca/messagebus/interceptors/__init__.py +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/src/jararaca/messagebus/interceptors/aiopika_publisher_interceptor.py +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/src/jararaca/messagebus/publisher.py +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/src/jararaca/messagebus/types.py +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/src/jararaca/messagebus/worker.py +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/src/jararaca/microservice.py +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/src/jararaca/observability/decorators.py +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/src/jararaca/observability/interceptor.py +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/src/jararaca/observability/providers/__init__.py +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/src/jararaca/observability/providers/otel.py +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/src/jararaca/persistence/base.py +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/src/jararaca/persistence/exports.py +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/src/jararaca/persistence/interceptors/__init__.py +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/src/jararaca/persistence/interceptors/aiosqa_interceptor.py +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/src/jararaca/persistence/session.py +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/src/jararaca/persistence/sort_filter.py +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/src/jararaca/persistence/utilities.py +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/src/jararaca/presentation/__init__.py +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/src/jararaca/presentation/hooks.py +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/src/jararaca/presentation/http_microservice.py +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/src/jararaca/presentation/server.py +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/src/jararaca/presentation/websocket/__init__.py +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/src/jararaca/presentation/websocket/base_types.py +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/src/jararaca/presentation/websocket/context.py +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/src/jararaca/presentation/websocket/decorators.py +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/src/jararaca/presentation/websocket/redis.py +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/src/jararaca/presentation/websocket/types.py +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/src/jararaca/presentation/websocket/websocket_interceptor.py +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/src/jararaca/py.typed +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/src/jararaca/rpc/__init__.py +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/src/jararaca/rpc/http/__init__.py +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/src/jararaca/rpc/http/backends/__init__.py +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/src/jararaca/rpc/http/backends/httpx.py +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/src/jararaca/rpc/http/backends/otel.py +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/src/jararaca/rpc/http/decorators.py +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/src/jararaca/rpc/http/httpx.py +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/src/jararaca/scheduler/__init__.py +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/src/jararaca/scheduler/decorators.py +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/src/jararaca/scheduler/scheduler.py +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/src/jararaca/tools/app_config/__init__.py +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/src/jararaca/tools/app_config/decorators.py +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/src/jararaca/tools/app_config/interceptor.py +0 -0
- {jararaca-0.2.37a9 → jararaca-0.2.37a10}/src/jararaca/tools/metadata.py +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import inspect
|
|
2
|
-
from typing import Any, Callable, Protocol, TypeVar, cast
|
|
2
|
+
from typing import Any, Callable, Literal, Protocol, TypeVar, cast
|
|
3
3
|
|
|
4
4
|
from fastapi import APIRouter
|
|
5
5
|
from fastapi import Depends as DependsF
|
|
@@ -147,6 +147,16 @@ class RestController:
|
|
|
147
147
|
|
|
148
148
|
Options = dict[str, Any]
|
|
149
149
|
|
|
150
|
+
ResponseType = Literal[
|
|
151
|
+
"arraybuffer",
|
|
152
|
+
"blob",
|
|
153
|
+
"document",
|
|
154
|
+
"json",
|
|
155
|
+
"text",
|
|
156
|
+
"stream",
|
|
157
|
+
"formdata",
|
|
158
|
+
]
|
|
159
|
+
|
|
150
160
|
|
|
151
161
|
class HttpMapping:
|
|
152
162
|
|
|
@@ -154,11 +164,16 @@ class HttpMapping:
|
|
|
154
164
|
ORDER_COUNTER = 0
|
|
155
165
|
|
|
156
166
|
def __init__(
|
|
157
|
-
self,
|
|
167
|
+
self,
|
|
168
|
+
method: str,
|
|
169
|
+
path: str = "/",
|
|
170
|
+
adapter_options: Options | None = None,
|
|
171
|
+
response_type: ResponseType | None = None,
|
|
158
172
|
) -> None:
|
|
159
173
|
self.method = method
|
|
160
174
|
self.path = path
|
|
161
|
-
self.options =
|
|
175
|
+
self.options = adapter_options
|
|
176
|
+
self.response_type = response_type
|
|
162
177
|
|
|
163
178
|
HttpMapping.ORDER_COUNTER += 1
|
|
164
179
|
self.order = HttpMapping.ORDER_COUNTER
|
|
@@ -185,32 +200,57 @@ class HttpMapping:
|
|
|
185
200
|
|
|
186
201
|
class Post(HttpMapping):
|
|
187
202
|
|
|
188
|
-
def __init__(
|
|
189
|
-
|
|
203
|
+
def __init__(
|
|
204
|
+
self,
|
|
205
|
+
path: str = "/",
|
|
206
|
+
options: Options | None = None,
|
|
207
|
+
response_type: ResponseType | None = None,
|
|
208
|
+
) -> None:
|
|
209
|
+
super().__init__("POST", path, options, response_type)
|
|
190
210
|
|
|
191
211
|
|
|
192
212
|
class Get(HttpMapping):
|
|
193
213
|
|
|
194
|
-
def __init__(
|
|
195
|
-
|
|
214
|
+
def __init__(
|
|
215
|
+
self,
|
|
216
|
+
path: str = "/",
|
|
217
|
+
options: Options | None = None,
|
|
218
|
+
response_type: ResponseType | None = None,
|
|
219
|
+
) -> None:
|
|
220
|
+
super().__init__("GET", path, options, response_type)
|
|
196
221
|
|
|
197
222
|
|
|
198
223
|
class Put(HttpMapping):
|
|
199
224
|
|
|
200
|
-
def __init__(
|
|
201
|
-
|
|
225
|
+
def __init__(
|
|
226
|
+
self,
|
|
227
|
+
path: str = "/",
|
|
228
|
+
options: Options | None = None,
|
|
229
|
+
response_type: ResponseType | None = None,
|
|
230
|
+
) -> None:
|
|
231
|
+
super().__init__("PUT", path, options, response_type)
|
|
202
232
|
|
|
203
233
|
|
|
204
234
|
class Delete(HttpMapping):
|
|
205
235
|
|
|
206
|
-
def __init__(
|
|
207
|
-
|
|
236
|
+
def __init__(
|
|
237
|
+
self,
|
|
238
|
+
path: str = "/",
|
|
239
|
+
options: Options | None = None,
|
|
240
|
+
response_type: ResponseType | None = None,
|
|
241
|
+
) -> None:
|
|
242
|
+
super().__init__("DELETE", path, options, response_type)
|
|
208
243
|
|
|
209
244
|
|
|
210
245
|
class Patch(HttpMapping):
|
|
211
246
|
|
|
212
|
-
def __init__(
|
|
213
|
-
|
|
247
|
+
def __init__(
|
|
248
|
+
self,
|
|
249
|
+
path: str = "/",
|
|
250
|
+
options: Options | None = None,
|
|
251
|
+
response_type: ResponseType | None = None,
|
|
252
|
+
) -> None:
|
|
253
|
+
super().__init__("PATCH", path, options, response_type)
|
|
214
254
|
|
|
215
255
|
|
|
216
256
|
class UseMiddleware:
|
|
@@ -85,6 +85,8 @@ def parse_literal_value(value: Any) -> str:
|
|
|
85
85
|
|
|
86
86
|
|
|
87
87
|
def get_field_type_for_ts(field_type: Any) -> Any:
|
|
88
|
+
if field_type is Response:
|
|
89
|
+
return "unknown"
|
|
88
90
|
if field_type is Any:
|
|
89
91
|
return "any"
|
|
90
92
|
if field_type == UploadFile:
|
|
@@ -367,12 +369,23 @@ export type WebSocketMessageMap = {
|
|
|
367
369
|
|
|
368
370
|
final_buffer.write(
|
|
369
371
|
"""
|
|
372
|
+
export type ResponseType =
|
|
373
|
+
| "arraybuffer"
|
|
374
|
+
| "blob"
|
|
375
|
+
| "document"
|
|
376
|
+
| "json"
|
|
377
|
+
| "text"
|
|
378
|
+
| "stream"
|
|
379
|
+
| "formdata";
|
|
380
|
+
|
|
381
|
+
|
|
370
382
|
export interface HttpBackendRequest {
|
|
371
383
|
method: string;
|
|
372
384
|
path: string;
|
|
373
385
|
headers: { [key: string]: string };
|
|
374
386
|
query: { [key: string]: unknown };
|
|
375
387
|
body: unknown;
|
|
388
|
+
responseType?: ResponseType;
|
|
376
389
|
}
|
|
377
390
|
|
|
378
391
|
export interface HttpBackend {
|
|
@@ -491,6 +504,8 @@ def write_rest_controller_to_typescript_interface(
|
|
|
491
504
|
"const response = await this.httpBackend.request<%s>({ \n"
|
|
492
505
|
% return_value_repr
|
|
493
506
|
)
|
|
507
|
+
if mapping.response_type is not None:
|
|
508
|
+
class_buffer.write(f'\t\t\tresponseType: "{mapping.response_type}",\n')
|
|
494
509
|
class_buffer.write(f'\t\t\tmethod: "{mapping.method}",\n')
|
|
495
510
|
|
|
496
511
|
endpoint_path = parse_path_with_params(mapping.path, arg_params_spec)
|
|
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.2.37a9 → jararaca-0.2.37a10}/docs/assets/_f04774c9-7e05-4da4-8b17-8be23f6a1475.jpeg
RENAMED
|
File without changes
|
{jararaca-0.2.37a9 → jararaca-0.2.37a10}/docs/assets/_f04774c9-7e05-4da4-8b17-8be23f6a1475.webp
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{jararaca-0.2.37a9 → jararaca-0.2.37a10}/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
|
|
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
|