📦 p4: type stubs (.pyi) + py.typed — mypy-clean DX

swadhinbiswas committed 2 months ago
d663625
1 parent bfff404
commit d663625
6 files changed
+45 -68
▼crates/justapi-py/python/justapi/__init__.pyi
+2-2
1
1
from . import testing as testing, tracing as tracing, status as status
2
2
from ._justapi import Dag as Dag, DagNode as DagNode, Database as Database, RateLimitResult as RateLimitResult, RateLimiter as RateLimiter, Request as Request, TokenStreamResponse as TokenStreamResponse, WebSocket as WebSocket, serve as serve
3
-from .app import APIRouter as APIRouter, Controller as Controller, Depends as Depends, JustAPIApp as JustAPIApp, JustAPI as JustAPI, JustAPP as JustAPP, JustAPITestClient as JustAPITestClient, adaptive_batch as adaptive_batch, controller as controller, route_delete as route_delete, route_get as route_get, route_post as route_post, route_put as route_put, route_query as route_query, route_sse as route_sse, route_websocket as route_websocket
3
+from .app import APIRouter as APIRouter, Controller as Controller, Depends as Depends, JustAPIApp as JustAPIApp, JustAPI as JustAPI, JustAPP as JustAPP, JustAPITestClient as JustAPITestClient, adaptive_batch as adaptive_batch, controller as controller, native_async as native_async, route_delete as route_delete, route_get as route_get, route_post as route_post, route_put as route_put, route_query as route_query, route_sse as route_sse, route_websocket as route_websocket
4
4
from .background import BackgroundTasks as BackgroundTasks
5
5
from .responses import HTMLResponse as HTMLResponse, JSONResponse as JSONResponse, PlainTextResponse as PlainTextResponse, RedirectResponse as RedirectResponse, Response as Response, StreamingResponse as StreamingResponse
6
6
from .templating import Jinja2Templates as Jinja2Templates
7
7
8
-__all__ = ['serve', 'JustAPIApp', 'JustAPI', 'JustAPP', 'Depends', 'Database', 'Schema', 'pydantic_schema', 'JustAPITestClient', 'testing', 'tracing', 'Jinja2Templates', 'BackgroundTasks', 'TokenStreamResponse', 'WebSocket', 'Dag', 'DagNode', 'RateLimiter', 'RateLimitResult', 'adaptive_batch', 'APIRouter', 'Controller', 'controller', 'route_get', 'route_post', 'route_put', 'route_delete', 'route_query', 'route_sse', 'route_websocket', 'Request', 'Response', 'HTMLResponse', 'PlainTextResponse', 'JSONResponse', 'RedirectResponse', 'StreamingResponse', 'status']
8
+__all__ = ['serve', 'JustAPIApp', 'JustAPI', 'JustAPP', 'Depends', 'Database', 'Schema', 'pydantic_schema', 'JustAPITestClient', 'testing', 'tracing', 'Jinja2Templates', 'BackgroundTasks', 'TokenStreamResponse', 'WebSocket', 'Dag', 'DagNode', 'RateLimiter', 'RateLimitResult', 'adaptive_batch', 'native_async', 'APIRouter', 'Controller', 'controller', 'route_get', 'route_post', 'route_put', 'route_delete', 'route_query', 'route_sse', 'route_websocket', 'Request', 'Response', 'HTMLResponse', 'PlainTextResponse', 'JSONResponse', 'RedirectResponse', 'StreamingResponse', 'status']
9
9
10
10
class Schema:
11
11
def __init_subclass__(cls, **kwargs) -> None: ...
12
12
▼crates/justapi-py/python/justapi/_justapi.pyi
+7-0
295
295
def send(self, data: Any) -> Any: ...
296
296
def send_error(self, msg: Any) -> Any: ...
297
297
298
+
299
+class DbPool:
300
+ def query(self, sql: str, params: list | None = ...) -> list: ...
301
+ def execute(self, sql: str, params: list | None = ...) -> int: ...
302
+ def query_async(self, sql: str, params: list | None = ...) -> Any: ...
303
+ def execute_async(self, sql: str, params: list | None = ...) -> Any: ...
304
+ def transaction(self, stmts: list, isolation: str | None = ...) -> Any: ...
298
305
▼crates/justapi-py/python/justapi/app.pyi
+34-65
1
+from typing import Any, Callable
1
2
import typing
2
3
from ._justapi import TokenStreamResponse as TokenStreamResponse
3
4
from _typeshed import Incomplete
54
55
path_params: dict[str, str]
55
56
cookies: dict[str, str]
56
57
query_string: bytes
57
- def receive(self) -> Incomplete: ...
58
- def url_for(self, name: str, **path_params) -> Incomplete: ...
59
- def get(self, key: str, default: Incomplete = ...) -> Incomplete: ...
60
- def __getitem__(self, key: str) -> Incomplete: ...
61
- def __setitem__(self, key: str, value: Incomplete) -> None: ...
62
- def __contains__(self, key: str) -> bool: ...
63
58
64
59
class Headers:
65
60
raw: list[tuple[bytes, bytes]]
66
- def get(self, key: str, default: Incomplete = ...) -> str | Incomplete: ...
67
61
def keys(self) -> list[str]: ...
68
62
def values(self) -> list[str]: ...
69
63
def items(self) -> list[tuple[str, str]]: ...
70
64
def mutable(self) -> bool: ...
71
- def __getitem__(self, key: str) -> str: ...
72
- def __contains__(self, key: str) -> bool: ...
73
65
def __iter__(self) -> typing.Iterator[str]: ...
74
66
75
67
class QueryParams:
76
- def get(self, key: str, default: Incomplete = ...) -> str | Incomplete: ...
77
68
def getlist(self, key: str) -> list[str]: ...
78
69
def multi_items(self) -> list[tuple[str, str]]: ...
79
- def keys(self) -> list[str]: ...
80
- def values(self) -> list[str]: ...
81
- def items(self) -> list[tuple[str, str]]: ...
82
- def mutable(self) -> bool: ...
83
- def __getitem__(self, key: str) -> str: ...
84
- def __contains__(self, key: str) -> bool: ...
85
- def __iter__(self) -> typing.Iterator[str]: ...
86
70
87
71
class URL:
88
72
scheme: str
98
82
class State:
99
83
def __getattr__(self, name: str) -> Incomplete: ...
100
84
def __setattr__(self, name: str, value: Incomplete) -> None: ...
101
- def __getitem__(self, key: str) -> Incomplete: ...
102
- def __setitem__(self, key: str, value: Incomplete) -> None: ...
103
85
def __delitem__(self, key: str) -> None: ...
104
- def __contains__(self, key: str) -> bool: ...
105
86
106
87
class RequestStream:
107
88
def __aiter__(self) -> Incomplete: ...
115
96
class Depends:
116
97
dependency: Incomplete
117
98
use_cache: Incomplete
118
- def __init__(self, dependency: typing.Callable, use_cache: bool = True) -> None: ...
119
99
120
100
def adaptive_batch(max_size: int = 32, window_ms: int = 10): ...
121
101
102
+def native_async(func=None): ...
103
+
122
104
class JustAPIApp:
123
105
dependencies: Incomplete
124
106
exception_handlers: Incomplete
125
107
middlewares: Incomplete
126
- def __init__(self, dependencies: list[Depends] = None) -> None: ...
127
108
def middleware(self, middleware_type: str = 'http'): ...
128
- def add_cors(self, allow_origins: list[str] = None, allow_methods: list[str] = None, allow_headers: list[str] = None, allow_credentials: bool = False, expose_headers: list[str] = None, max_age: int = None) -> None: ...
109
+ def add_cors(self, allow_origins: list[str] | None = None, allow_methods: list[str] | None = None, allow_headers: list[str] | None = None, allow_credentials: bool = False, expose_headers: list[str] | None = None, max_age: int | None = None) -> None: ...
129
110
def set_jwt_auth(self, secret: str, algorithm: str = "HS256") -> None: ...
130
111
def add_exception_handler(self, exc_class, handler) -> None: ...
131
- def get(self, path: str, handler=None, dependencies: list[Depends] = None, middlewares: list[typing.Callable] = None, tags: list[str] = None, summary: str = None, description: str = None, deprecated: bool = False, status_code: int = None, responses: dict = None, operation_id: str = None, openapi_extra: dict = None, include_in_schema: bool = True, name: str = None): ...
132
- def post(self, path: str, handler=None, body_schema=None, schema=None, dependencies: list[Depends] = None, middlewares: list[typing.Callable] = None, tags: list[str] = None, summary: str = None, description: str = None, deprecated: bool = False, status_code: int = None, responses: dict = None, operation_id: str = None, openapi_extra: dict = None, include_in_schema: bool = True, name: str = None): ...
133
- def put(self, path: str, handler=None, body_schema=None, schema=None, dependencies: list[Depends] = None, middlewares: list[typing.Callable] = None, tags: list[str] = None, summary: str = None, description: str = None, deprecated: bool = False, status_code: int = None, responses: dict = None, operation_id: str = None, openapi_extra: dict = None, include_in_schema: bool = True, name: str = None): ...
134
- def delete(self, path: str, handler=None, dependencies: list[Depends] = None, middlewares: list[typing.Callable] = None, tags: list[str] = None, summary: str = None, description: str = None, deprecated: bool = False, status_code: int = None, responses: dict = None, operation_id: str = None, openapi_extra: dict = None, include_in_schema: bool = True, name: str = None): ...
135
- def patch(self, path: str, handler=None, body_schema=None, schema=None, dependencies: list[Depends] = None, middlewares: list[typing.Callable] = None, tags: list[str] = None, summary: str = None, description: str = None, deprecated: bool = False, status_code: int = None, responses: dict = None, operation_id: str = None, openapi_extra: dict = None, include_in_schema: bool = True, name: str = None): ...
136
- def query(self, path: str, handler=None, body_schema=None, schema=None, experimental: bool = True, dependencies: list[Depends] = None, middlewares: list[typing.Callable] = None, tags: list[str] = None, summary: str = None, description: str = None, deprecated: bool = False, status_code: int = None, responses: dict = None, operation_id: str = None, openapi_extra: dict = None, include_in_schema: bool = True, name: str = None): ...
137
- def head(self, path: str, handler=None, dependencies: list[Depends] = None, middlewares: list[typing.Callable] = None, tags: list[str] = None, summary: str = None, description: str = None, deprecated: bool = False, status_code: int = None, responses: dict = None, operation_id: str = None, openapi_extra: dict = None, include_in_schema: bool = True, name: str = None): ...
138
- def options(self, path: str, handler=None, dependencies: list[Depends] = None, middlewares: list[typing.Callable] = None, tags: list[str] = None, summary: str = None, description: str = None, deprecated: bool = False, status_code: int = None, responses: dict = None, operation_id: str = None, openapi_extra: dict = None, include_in_schema: bool = True, name: str = None): ...
139
- def trace(self, path: str, handler=None, dependencies: list[Depends] = None, middlewares: list[typing.Callable] = None, tags: list[str] = None, summary: str = None, description: str = None, deprecated: bool = False, status_code: int = None, responses: dict = None, operation_id: str = None, openapi_extra: dict = None, include_in_schema: bool = True, name: str = None): ...
140
- def url_for(self, name: str, **path_params) -> str: ...
112
+ def post(self, path: str, handler: Any | None = None, body_schema: Any | None = None, schema: Any | None = None, dependencies: list[Depends] | None = None, middlewares: list[typing.Callable] | None = None, tags: list[str] | None = None, summary: str | None = None, description: str | None = None, deprecated: bool = False, status_code: int | None = None, responses: dict | None = None, operation_id: str | None = None, openapi_extra: dict | None = None, include_in_schema: bool = True, name: str | None = None): ...
113
+ def put(self, path: str, handler: Any | None = None, body_schema: Any | None = None, schema: Any | None = None, dependencies: list[Depends] | None = None, middlewares: list[typing.Callable] | None = None, tags: list[str] | None = None, summary: str | None = None, description: str | None = None, deprecated: bool = False, status_code: int | None = None, responses: dict | None = None, operation_id: str | None = None, openapi_extra: dict | None = None, include_in_schema: bool = True, name: str | None = None): ...
114
+ def delete(self, path: str, handler: Any | None = None, dependencies: list[Depends] | None = None, middlewares: list[typing.Callable] | None = None, tags: list[str] | None = None, summary: str | None = None, description: str | None = None, deprecated: bool = False, status_code: int | None = None, responses: dict | None = None, operation_id: str | None = None, openapi_extra: dict | None = None, include_in_schema: bool = True, name: str | None = None): ...
115
+ def patch(self, path: str, handler: Any | None = None, body_schema: Any | None = None, schema: Any | None = None, dependencies: list[Depends] | None = None, middlewares: list[typing.Callable] | None = None, tags: list[str] | None = None, summary: str | None = None, description: str | None = None, deprecated: bool = False, status_code: int | None = None, responses: dict | None = None, operation_id: str | None = None, openapi_extra: dict | None = None, include_in_schema: bool = True, name: str | None = None): ...
116
+ def query(self, path: str, handler: Any | None = None, body_schema: Any | None = None, schema: Any | None = None, experimental: bool = True, dependencies: list[Depends] | None = None, middlewares: list[typing.Callable] | None = None, tags: list[str] | None = None, summary: str | None = None, description: str | None = None, deprecated: bool = False, status_code: int | None = None, responses: dict | None = None, operation_id: str | None = None, openapi_extra: dict | None = None, include_in_schema: bool = True, name: str | None = None): ...
117
+ def get(self, path: str, handler: Any | None = None, body_schema: Any | None = None, schema: Any | None = None, query_schema: Any | None = None, dependencies: list[Depends] | None = None, middlewares: list[typing.Callable] | None = None, tags: list[str] | None = None, summary: str | None = None, description: str | None = None, deprecated: bool = False, status_code: int | None = None, responses: dict | None = None, operation_id: str | None = None, openapi_extra: dict | None = None, include_in_schema: bool = True, name: str | None = None, native: bool = False): ...
118
+ def connect_database(self) -> None: ...
119
+ @property
120
+ def db(self): ...
121
+ def sse_native(self, path: str, count: int = 10, interval_ms: int = 100): ...
122
+ def head(self, path: str, handler: Any | None = None, dependencies: list[Depends] | None = None, middlewares: list[typing.Callable] | None = None, tags: list[str] | None = None, summary: str | None = None, description: str | None = None, deprecated: bool = False, status_code: int | None = None, responses: dict | None = None, operation_id: str | None = None, openapi_extra: dict | None = None, include_in_schema: bool = True, name: str | None = None): ...
123
+ def options(self, path: str, handler: Any | None = None, dependencies: list[Depends] | None = None, middlewares: list[typing.Callable] | None = None, tags: list[str] | None = None, summary: str | None = None, description: str | None = None, deprecated: bool = False, status_code: int | None = None, responses: dict | None = None, operation_id: str | None = None, openapi_extra: dict | None = None, include_in_schema: bool = True, name: str | None = None): ...
124
+ def trace(self, path: str, handler: Any | None = None, dependencies: list[Depends] | None = None, middlewares: list[typing.Callable] | None = None, tags: list[str] | None = None, summary: str | None = None, description: str | None = None, deprecated: bool = False, status_code: int | None = None, responses: dict | None = None, operation_id: str | None = None, openapi_extra: dict | None = None, include_in_schema: bool = True, name: str | None = None): ...
141
125
def frontend(self, path: str, directory: str, html: bool = True, check_dir: bool = True): ...
142
126
def add_plugin(self, plugin) -> None: ...
143
127
def use(self, plugin) -> None: ...
144
128
def set_database(self, db) -> None: ...
129
+ def enable_http3(self, cert_path: str, key_path: str): ...
145
130
def enable_gateway(self, config_path: str): ...
131
+
146
132
def enable_circuit_breaker(self, failure_threshold: int = 5, reset_timeout_ms: int = 10000): ...
147
- def enable_request_coalescing(self, headers: list[str] = None): ...
133
+ def enable_request_coalescing(self, headers: list[str] | None = None): ...
148
134
def set_grpc_addr(self, addr: str): ...
149
135
def add_grpc_service(self, servicer, add_func_to_server) -> None: ...
150
136
def include_controller(self, controller_cls) -> None: ...
151
- def url_for(self, name: str, **path_params) -> str: ...
152
- def include_router(self, router, prefix: str = '', tags: list[str] = None): ...
137
+ def include_router(self, router, prefix: str = '', tags: list[str] | None = None): ...
153
138
def run(self, addr: str): ...
154
- def sse(self, path: str, handler=None): ...
155
- def websocket(self, path: str, handler=None): ...
139
+ def sse(self, path: str, handler: Any | None = None): ...
140
+ def websocket(self, path: str, handler: Any | None = None): ...
156
141
def enable_system_routes(self) -> JustAPIApp: ...
157
- def tool(self, name: str = None, description: str = None, input_schema: Incomplete = None, annotations: Incomplete = None): ...
142
+ def tool(self, name: str | None = None, description: str | None = None, input_schema: Incomplete = None, annotations: Incomplete = None): ...
158
143
def list_tools(self) -> list[dict]: ...
159
- def call_tool(self, name: str, arguments: dict = None) -> Incomplete: ...
160
- def create_session(self, data: dict = None) -> str: ...
144
+ def call_tool(self, name: str, arguments: dict | None = None) -> Incomplete: ...
145
+ def create_session(self, data: dict | None = None) -> str: ...
161
146
def get_session(self, id: str) -> Incomplete: ...
162
147
def set_session(self, id: str, data: dict) -> bool: ...
163
148
def update_session(self, id: str, **fields) -> bool: ...
164
149
def delete_session(self, id: str) -> bool: ...
165
150
def enable_sessions(self, cookie_name: str = ...) -> JustAPIApp: ...
166
- def stream_json(self, path: str, schema: Incomplete = None, mode: str = ..., handler=None): ...
151
+ def stream_json(self, path: str, schema: Incomplete = None, mode: str = ..., handler: Any | None = None): ...
167
152
168
153
class APIRouter:
169
154
prefix: Incomplete
170
155
dependencies: Incomplete
171
156
middlewares: Incomplete
172
157
routes: Incomplete
173
- def __init__(self, prefix: str = '', tags: list[str] = None, responses: dict = None, dependencies: list[Depends] = None, middlewares: list[typing.Callable] = None, callbacks: list[typing.Callable] = None, deprecated: bool = False, include_in_schema: bool = True) -> None: ...
174
- def get(self, path: str, handler=None, dependencies: list[Depends] = None, middlewares: list[typing.Callable] = None, tags: list[str] = None, summary: str = None, description: str = None, deprecated: bool = False, status_code: int = None, responses: dict = None, operation_id: str = None, openapi_extra: dict = None, include_in_schema: bool = True, name: str = None): ...
175
- def post(self, path: str, handler=None, body_schema=None, schema=None, dependencies: list[Depends] = None, middlewares: list[typing.Callable] = None, tags: list[str] = None, summary: str = None, description: str = None, deprecated: bool = False, status_code: int = None, responses: dict = None, operation_id: str = None, openapi_extra: dict = None, include_in_schema: bool = True, name: str = None): ...
176
- def put(self, path: str, handler=None, body_schema=None, schema=None, dependencies: list[Depends] = None, middlewares: list[typing.Callable] = None, tags: list[str] = None, summary: str = None, description: str = None, deprecated: bool = False, status_code: int = None, responses: dict = None, operation_id: str = None, openapi_extra: dict = None, include_in_schema: bool = True, name: str = None): ...
177
- def patch(self, path: str, handler=None, body_schema=None, schema=None, dependencies: list[Depends] = None, middlewares: list[typing.Callable] = None, tags: list[str] = None, summary: str = None, description: str = None, deprecated: bool = False, status_code: int = None, responses: dict = None, operation_id: str = None, openapi_extra: dict = None, include_in_schema: bool = True, name: str = None): ...
178
- def delete(self, path: str, handler=None, dependencies: list[Depends] = None, middlewares: list[typing.Callable] = None, tags: list[str] = None, summary: str = None, description: str = None, deprecated: bool = False, status_code: int = None, responses: dict = None, operation_id: str = None, openapi_extra: dict = None, include_in_schema: bool = True, name: str = None): ...
179
- def query(self, path: str, handler=None, body_schema=None, schema=None, experimental: bool = True, dependencies: list[Depends] = None, middlewares: list[typing.Callable] = None, tags: list[str] = None, summary: str = None, description: str = None, deprecated: bool = False, status_code: int = None, responses: dict = None, operation_id: str = None, openapi_extra: dict = None, include_in_schema: bool = True, name: str = None): ...
180
- def head(self, path: str, handler=None, dependencies: list[Depends] = None, middlewares: list[typing.Callable] = None, tags: list[str] = None, summary: str = None, description: str = None, deprecated: bool = False, status_code: int = None, responses: dict = None, operation_id: str = None, openapi_extra: dict = None, include_in_schema: bool = True, name: str = None): ...
181
- def options(self, path: str, handler=None, dependencies: list[Depends] = None, middlewares: list[typing.Callable] = None, tags: list[str] = None, summary: str = None, description: str = None, deprecated: bool = False, status_code: int = None, responses: dict = None, operation_id: str = None, openapi_extra: dict = None, include_in_schema: bool = True, name: str = None): ...
182
- def trace(self, path: str, handler=None, dependencies: list[Depends] = None, middlewares: list[typing.Callable] = None, tags: list[str] = None, summary: str = None, description: str = None, deprecated: bool = False, status_code: int = None, responses: dict = None, operation_id: str = None, openapi_extra: dict = None, include_in_schema: bool = True, name: str = None): ...
183
- def url_for(self, name: str, **path_params) -> str: ...
184
- def frontend(self, path: str, directory: str, html: bool = True, check_dir: bool = True): ...
185
- def sse(self, path: str, handler=None, dependencies: list[Depends] = None): ...
186
- def websocket(self, path: str, handler=None, dependencies: list[Depends] = None): ...
187
158
188
159
class Controller: ...
189
160
190
-def controller(path: str, dependencies: list[Depends] = None): ...
161
+def controller(path: str, dependencies: list[Depends] | None = None): ...
191
162
def route_get(path: str, dependencies: list[Depends] | None = None) -> typing.Callable: ...
192
-def route_post(path: str, body_schema=None, schema=None, dependencies: list[Depends] | None = None) -> typing.Callable: ...
193
-def route_put(path: str, body_schema=None, schema=None, dependencies: list[Depends] | None = None) -> typing.Callable: ...
194
-def route_patch(path: str, body_schema=None, schema=None, dependencies: list[Depends] | None = None) -> typing.Callable: ...
163
+def route_post(path: str, body_schema: Any | None = None, schema: Any | None = None, dependencies: list[Depends] | None = None) -> typing.Callable: ...
164
+def route_put(path: str, body_schema: Any | None = None, schema: Any | None = None, dependencies: list[Depends] | None = None) -> typing.Callable: ...
165
+def route_patch(path: str, body_schema: Any | None = None, schema: Any | None = None, dependencies: list[Depends] | None = None) -> typing.Callable: ...
195
166
def route_delete(path: str, dependencies: list[Depends] | None = None) -> typing.Callable: ...
196
-def route_query(path: str, body_schema=None, schema=None, experimental: bool = True, dependencies: list[Depends] = None): ...
197
-def route_sse(path: str, dependencies: list[Depends] = None): ...
198
-def route_websocket(path: str, dependencies: list[Depends] = None): ...
167
+def route_query(path: str, body_schema: Any | None = None, schema: Any | None = None, experimental: bool = True, dependencies: list[Depends] | None = None): ...
168
+def route_sse(path: str, dependencies: list[Depends] | None = None): ...
169
+def route_websocket(path: str, dependencies: list[Depends] | None = None): ...
199
170
200
171
class _JustAPIGrpcContext:
201
- def __init__(self) -> None: ...
202
172
def set_code(self, code) -> None: ...
203
173
def set_details(self, details) -> None: ...
204
174
def abort(self, code, details) -> None: ...
205
175
206
176
class _JustAPIGrpcMockServer:
207
177
app: Incomplete
208
- def __init__(self, app) -> None: ...
209
178
def add_generic_rpc_handlers(self, generic_rpc_handlers) -> None: ...
210
179
def add_registered_method_handlers(self, service_name, method_handlers) -> None: ...
211
180
212
181
▼crates/justapi-py/python/justapi/py.typed
+0-0
0
0
▼crates/justapi-py/python/justapi/responses.pyi
+1-0
1
+from ._justapi import TokenStreamResponse
1
2
"""Type stubs for justapi.responses (auto-generated from runtime introspection)."""
2
3
from _typeshed import Incomplete
3
4
from typing import Any, Optional, Iterator, Mapping, List, Dict, Callable
4
5
▼crates/justapi-py/python/justapi/templating.pyi
+1-1
7
7
env: Incomplete
8
8
def __init__(self, directory: str) -> None: ...
9
9
def get_template(self, name: str) -> jinja2.Template: ...
10
- def TemplateResponse(self, name: str, context: dict[str, Any], status_code: int = 200, headers: list = None) -> dict: ...
10
+ def TemplateResponse(self, name: str, context: dict[str, Any], status_code: int = 200, headers: list | None = None) -> dict: ...
11
11