engin 0.0.10__tar.gz → 0.0.11__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.
- {engin-0.0.10 → engin-0.0.11}/.github/workflows/check.yaml +6 -1
- {engin-0.0.10 → engin-0.0.11}/CHANGELOG.md +11 -0
- {engin-0.0.10 → engin-0.0.11}/PKG-INFO +3 -1
- {engin-0.0.10 → engin-0.0.11}/README.md +2 -0
- {engin-0.0.10 → engin-0.0.11}/pyproject.toml +5 -1
- {engin-0.0.10 → engin-0.0.11}/src/engin/_dependency.py +24 -10
- {engin-0.0.10 → engin-0.0.11}/src/engin/ext/fastapi.py +17 -4
- {engin-0.0.10 → engin-0.0.11}/src/engin/scripts/graph.py +28 -3
- {engin-0.0.10 → engin-0.0.11}/tests/test_dependencies.py +20 -2
- {engin-0.0.10 → engin-0.0.11}/uv.lock +144 -120
- {engin-0.0.10 → engin-0.0.11}/.github/workflows/publish.yaml +0 -0
- {engin-0.0.10 → engin-0.0.11}/.gitignore +0 -0
- {engin-0.0.10 → engin-0.0.11}/.readthedocs.yaml +0 -0
- {engin-0.0.10 → engin-0.0.11}/LICENSE +0 -0
- {engin-0.0.10 → engin-0.0.11}/docs/concepts/engin.md +0 -0
- {engin-0.0.10 → engin-0.0.11}/docs/concepts/invocations.md +0 -0
- {engin-0.0.10 → engin-0.0.11}/docs/concepts/lifecycle.md +0 -0
- {engin-0.0.10 → engin-0.0.11}/docs/concepts/providers.md +0 -0
- {engin-0.0.10 → engin-0.0.11}/docs/getting-started.md +0 -0
- {engin-0.0.10 → engin-0.0.11}/docs/guides/dependency_injection.md +0 -0
- {engin-0.0.10 → engin-0.0.11}/docs/guides/fastapi-graph.png +0 -0
- {engin-0.0.10 → engin-0.0.11}/docs/guides/fastapi.md +0 -0
- {engin-0.0.10 → engin-0.0.11}/docs/index.md +0 -0
- {engin-0.0.10 → engin-0.0.11}/docs/js/readthedocs.js +0 -0
- {engin-0.0.10 → engin-0.0.11}/docs/overrides/main.html +0 -0
- {engin-0.0.10 → engin-0.0.11}/docs/reference.md +0 -0
- {engin-0.0.10 → engin-0.0.11}/examples/__init__.py +0 -0
- {engin-0.0.10 → engin-0.0.11}/examples/asgi/__init__.py +0 -0
- {engin-0.0.10 → engin-0.0.11}/examples/asgi/app.py +0 -0
- {engin-0.0.10 → engin-0.0.11}/examples/asgi/common/__init__.py +0 -0
- {engin-0.0.10 → engin-0.0.11}/examples/asgi/common/db/__init__.py +0 -0
- {engin-0.0.10 → engin-0.0.11}/examples/asgi/common/db/adapaters/__init__.py +0 -0
- {engin-0.0.10 → engin-0.0.11}/examples/asgi/common/db/adapaters/memory.py +0 -0
- {engin-0.0.10 → engin-0.0.11}/examples/asgi/common/db/block.py +0 -0
- {engin-0.0.10 → engin-0.0.11}/examples/asgi/common/db/ports.py +0 -0
- {engin-0.0.10 → engin-0.0.11}/examples/asgi/common/starlette/__init__.py +0 -0
- {engin-0.0.10 → engin-0.0.11}/examples/asgi/common/starlette/endpoint.py +0 -0
- {engin-0.0.10 → engin-0.0.11}/examples/asgi/features/__init__.py +0 -0
- {engin-0.0.10 → engin-0.0.11}/examples/asgi/features/cats/__init__.py +0 -0
- {engin-0.0.10 → engin-0.0.11}/examples/asgi/features/cats/api/__init__.py +0 -0
- {engin-0.0.10 → engin-0.0.11}/examples/asgi/features/cats/api/get.py +0 -0
- {engin-0.0.10 → engin-0.0.11}/examples/asgi/features/cats/api/post.py +0 -0
- {engin-0.0.10 → engin-0.0.11}/examples/asgi/features/cats/block.py +0 -0
- {engin-0.0.10 → engin-0.0.11}/examples/asgi/features/cats/domain.py +0 -0
- {engin-0.0.10 → engin-0.0.11}/examples/asgi/main.py +0 -0
- {engin-0.0.10 → engin-0.0.11}/examples/fastapi/__init__.py +0 -0
- {engin-0.0.10 → engin-0.0.11}/examples/fastapi/app.py +0 -0
- {engin-0.0.10 → engin-0.0.11}/examples/fastapi/main.py +0 -0
- {engin-0.0.10 → engin-0.0.11}/examples/fastapi/routes/__init__.py +0 -0
- {engin-0.0.10 → engin-0.0.11}/examples/fastapi/routes/cats/__init__.py +0 -0
- {engin-0.0.10 → engin-0.0.11}/examples/fastapi/routes/cats/adapters/__init__.py +0 -0
- {engin-0.0.10 → engin-0.0.11}/examples/fastapi/routes/cats/adapters/repository.py +0 -0
- {engin-0.0.10 → engin-0.0.11}/examples/fastapi/routes/cats/api.py +0 -0
- {engin-0.0.10 → engin-0.0.11}/examples/fastapi/routes/cats/block.py +0 -0
- {engin-0.0.10 → engin-0.0.11}/examples/fastapi/routes/cats/domain.py +0 -0
- {engin-0.0.10 → engin-0.0.11}/examples/fastapi/routes/cats/ports.py +0 -0
- {engin-0.0.10 → engin-0.0.11}/examples/simple/__init__.py +0 -0
- {engin-0.0.10 → engin-0.0.11}/examples/simple/main.py +0 -0
- {engin-0.0.10 → engin-0.0.11}/mkdocs.yaml +0 -0
- {engin-0.0.10 → engin-0.0.11}/src/engin/__init__.py +0 -0
- {engin-0.0.10 → engin-0.0.11}/src/engin/_assembler.py +0 -0
- {engin-0.0.10 → engin-0.0.11}/src/engin/_block.py +0 -0
- {engin-0.0.10 → engin-0.0.11}/src/engin/_engin.py +0 -0
- {engin-0.0.10 → engin-0.0.11}/src/engin/_exceptions.py +0 -0
- {engin-0.0.10 → engin-0.0.11}/src/engin/_graph.py +0 -0
- {engin-0.0.10 → engin-0.0.11}/src/engin/_lifecycle.py +0 -0
- {engin-0.0.10 → engin-0.0.11}/src/engin/_type_utils.py +0 -0
- {engin-0.0.10 → engin-0.0.11}/src/engin/ext/__init__.py +0 -0
- {engin-0.0.10 → engin-0.0.11}/src/engin/ext/asgi.py +0 -0
- {engin-0.0.10 → engin-0.0.11}/src/engin/py.typed +0 -0
- {engin-0.0.10 → engin-0.0.11}/src/engin/scripts/__init__.py +0 -0
- {engin-0.0.10 → engin-0.0.11}/tests/__init__.py +0 -0
- {engin-0.0.10 → engin-0.0.11}/tests/acceptance/__init__.py +0 -0
- {engin-0.0.10 → engin-0.0.11}/tests/acceptance/test_error_in_shutdown.py +0 -0
- {engin-0.0.10 → engin-0.0.11}/tests/acceptance/test_error_in_start_up.py +0 -0
- {engin-0.0.10 → engin-0.0.11}/tests/conftest.py +0 -0
- {engin-0.0.10 → engin-0.0.11}/tests/deps.py +0 -0
- {engin-0.0.10 → engin-0.0.11}/tests/test_assembler.py +0 -0
- {engin-0.0.10 → engin-0.0.11}/tests/test_engin.py +0 -0
- {engin-0.0.10 → engin-0.0.11}/tests/test_modules.py +0 -0
- {engin-0.0.10 → engin-0.0.11}/tests/test_utils.py +0 -0
@@ -6,6 +6,17 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
7
7
|
|
8
8
|
|
9
|
+
## [0.0.11] - 2025-03-02
|
10
|
+
|
11
|
+
### Added
|
12
|
+
|
13
|
+
- Dependency types now have two new attributes `source_module` & `source_package`.
|
14
|
+
|
15
|
+
### Changed
|
16
|
+
|
17
|
+
- `engin-graph` now highlights external dependencies.
|
18
|
+
|
19
|
+
|
9
20
|
## [0.0.10] - 2025-02-27
|
10
21
|
|
11
22
|
### Added
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: engin
|
3
|
-
Version: 0.0.
|
3
|
+
Version: 0.0.11
|
4
4
|
Summary: An async-first modular application framework
|
5
5
|
Project-URL: Homepage, https://github.com/invokermain/engin
|
6
6
|
Project-URL: Documentation, https://engin.readthedocs.io/en/latest/
|
@@ -12,6 +12,8 @@ Keywords: Application Framework,Dependency Injection
|
|
12
12
|
Requires-Python: >=3.10
|
13
13
|
Description-Content-Type: text/markdown
|
14
14
|
|
15
|
+
[](https://codecov.io/gh/invokermain/engin)
|
16
|
+
|
15
17
|
# Engin 🏎️
|
16
18
|
|
17
19
|
Engin is a zero-dependency application framework for modern Python.
|
@@ -1,6 +1,6 @@
|
|
1
1
|
[project]
|
2
2
|
name = "engin"
|
3
|
-
version = "0.0.
|
3
|
+
version = "0.0.11"
|
4
4
|
description = "An async-first modular application framework"
|
5
5
|
readme = "README.md"
|
6
6
|
requires-python = ">=3.10"
|
@@ -40,6 +40,9 @@ docs = [
|
|
40
40
|
"mkdocs-material>=9.5.50",
|
41
41
|
"mkdocstrings[python]>=0.27.0",
|
42
42
|
]
|
43
|
+
dev = [
|
44
|
+
"pytest-cov>=6.0.0",
|
45
|
+
]
|
43
46
|
|
44
47
|
|
45
48
|
[project.scripts]
|
@@ -103,4 +106,5 @@ fix.default_item_type = "cmd"
|
|
103
106
|
fix.sequence = ["ruff check src tests examples --fix"]
|
104
107
|
|
105
108
|
test = "pytest -s tests"
|
109
|
+
ci-test = "pytest -s tests --cov-branch --cov-report=xml"
|
106
110
|
docs = "mkdocs serve"
|
@@ -3,6 +3,7 @@ import typing
|
|
3
3
|
from abc import ABC
|
4
4
|
from collections.abc import Awaitable, Callable
|
5
5
|
from inspect import Parameter, Signature, isclass, iscoroutinefunction
|
6
|
+
from types import FrameType
|
6
7
|
from typing import (
|
7
8
|
Any,
|
8
9
|
Generic,
|
@@ -23,22 +24,43 @@ Func: TypeAlias = Callable[P, T]
|
|
23
24
|
def _noop(*args: Any, **kwargs: Any) -> None: ...
|
24
25
|
|
25
26
|
|
27
|
+
def _walk_stack() -> FrameType:
|
28
|
+
stack = inspect.stack()[1]
|
29
|
+
frame = stack.frame
|
30
|
+
while True:
|
31
|
+
if frame.f_globals["__package__"] != "engin" or frame.f_back is None:
|
32
|
+
return frame
|
33
|
+
else:
|
34
|
+
frame = frame.f_back
|
35
|
+
|
36
|
+
|
26
37
|
class Dependency(ABC, Generic[P, T]):
|
27
38
|
def __init__(self, func: Func[P, T], block_name: str | None = None) -> None:
|
28
39
|
self._func = func
|
29
40
|
self._is_async = iscoroutinefunction(func)
|
30
41
|
self._signature = inspect.signature(self._func)
|
31
42
|
self._block_name = block_name
|
43
|
+
self._source_frame = _walk_stack()
|
32
44
|
|
33
45
|
@property
|
34
|
-
def
|
46
|
+
def source_module(self) -> str:
|
35
47
|
"""
|
36
48
|
The module that this Dependency originated from.
|
37
49
|
|
38
50
|
Returns:
|
39
51
|
A string, e.g. "examples.fastapi.app"
|
40
52
|
"""
|
41
|
-
return self.
|
53
|
+
return self._source_frame.f_globals["__name__"] # type: ignore[no-any-return]
|
54
|
+
|
55
|
+
@property
|
56
|
+
def source_package(self) -> str:
|
57
|
+
"""
|
58
|
+
The package that this Dependency originated from.
|
59
|
+
|
60
|
+
Returns:
|
61
|
+
A string, e.g. "engin"
|
62
|
+
"""
|
63
|
+
return self._source_frame.f_globals["__package__"] # type: ignore[no-any-return]
|
42
64
|
|
43
65
|
@property
|
44
66
|
def block_name(self) -> str | None:
|
@@ -115,10 +137,6 @@ class Entrypoint(Invoke):
|
|
115
137
|
self._type = type_
|
116
138
|
super().__init__(invocation=_noop, block_name=block_name)
|
117
139
|
|
118
|
-
@property
|
119
|
-
def origin(self) -> str:
|
120
|
-
return self._type.__module__
|
121
|
-
|
122
140
|
@property
|
123
141
|
def parameter_types(self) -> list[TypeId]:
|
124
142
|
return [type_id_of(self._type)]
|
@@ -186,10 +204,6 @@ class Supply(Provide, Generic[T]):
|
|
186
204
|
self._get_val.__annotations__["return"] = type_hint
|
187
205
|
super().__init__(builder=self._get_val, block_name=block_name)
|
188
206
|
|
189
|
-
@property
|
190
|
-
def origin(self) -> str:
|
191
|
-
return self._value.__module__
|
192
|
-
|
193
207
|
@property
|
194
208
|
def return_type(self) -> type[T]:
|
195
209
|
if self._type_hint is not None:
|
@@ -7,7 +7,7 @@ from typing import ClassVar, TypeVar
|
|
7
7
|
from fastapi.routing import APIRoute
|
8
8
|
|
9
9
|
from engin import Engin, Entrypoint, Invoke, Option
|
10
|
-
from engin._dependency import Dependency, Supply
|
10
|
+
from engin._dependency import Dependency, Supply, _noop
|
11
11
|
from engin._graph import DependencyGrapher, Node
|
12
12
|
from engin._type_utils import TypeId, type_id_of
|
13
13
|
from engin.ext.asgi import ASGIEngin
|
@@ -113,7 +113,7 @@ def _extract_routes_from_supply(supply: Supply) -> list[Dependency]:
|
|
113
113
|
inner = supply._value[0]
|
114
114
|
if isinstance(inner, APIRouter):
|
115
115
|
return [
|
116
|
-
APIRouteDependency(
|
116
|
+
APIRouteDependency(supply, route)
|
117
117
|
for route in inner.routes
|
118
118
|
if isinstance(route, APIRoute)
|
119
119
|
]
|
@@ -128,13 +128,26 @@ class APIRouteDependency(Dependency):
|
|
128
128
|
This class should never be constructed in application code.
|
129
129
|
"""
|
130
130
|
|
131
|
-
def __init__(
|
131
|
+
def __init__(
|
132
|
+
self,
|
133
|
+
wraps: Dependency,
|
134
|
+
route: APIRoute,
|
135
|
+
) -> None:
|
132
136
|
"""
|
133
137
|
Warning: this should never be constructed in application code.
|
134
138
|
"""
|
139
|
+
super().__init__(_noop, wraps.block_name)
|
140
|
+
self._wrapped = wraps
|
135
141
|
self._route = route
|
136
142
|
self._signature = inspect.signature(route.endpoint)
|
137
|
-
|
143
|
+
|
144
|
+
@property
|
145
|
+
def source_module(self) -> str:
|
146
|
+
return self._wrapped.source_module
|
147
|
+
|
148
|
+
@property
|
149
|
+
def source_package(self) -> str:
|
150
|
+
return self._wrapped.source_package
|
138
151
|
|
139
152
|
@property
|
140
153
|
def route(self) -> APIRoute:
|
@@ -28,6 +28,8 @@ args.add_argument(
|
|
28
28
|
),
|
29
29
|
)
|
30
30
|
|
31
|
+
_APP_ORIGIN = ""
|
32
|
+
|
31
33
|
|
32
34
|
def serve_graph() -> None:
|
33
35
|
# add cwd to path to enable local package imports
|
@@ -44,6 +46,9 @@ def serve_graph() -> None:
|
|
44
46
|
"Expected an argument of the form 'module:attribute', e.g. 'myapp:engin'"
|
45
47
|
) from None
|
46
48
|
|
49
|
+
global _APP_ORIGIN
|
50
|
+
_APP_ORIGIN = module_name.split(".", maxsplit=1)[0]
|
51
|
+
|
47
52
|
module = importlib.import_module(module_name)
|
48
53
|
|
49
54
|
try:
|
@@ -112,7 +117,17 @@ def _render_node(node: Dependency) -> str:
|
|
112
117
|
if n not in _BLOCK_IDX:
|
113
118
|
_BLOCK_IDX[n] = len(_SEEN_BLOCKS) % 8
|
114
119
|
_SEEN_BLOCKS.append(n)
|
115
|
-
style = f"
|
120
|
+
style = f"b{_BLOCK_IDX[n]}"
|
121
|
+
|
122
|
+
node_root_package = node.source_package.split(".", maxsplit=1)[0]
|
123
|
+
if node_root_package != _APP_ORIGIN:
|
124
|
+
if style:
|
125
|
+
style += "E"
|
126
|
+
else:
|
127
|
+
style = "external"
|
128
|
+
|
129
|
+
if style:
|
130
|
+
style = f":::{style}"
|
116
131
|
|
117
132
|
if isinstance(node, Supply):
|
118
133
|
md += f"{node.return_type_id}"
|
@@ -144,6 +159,7 @@ _GRAPH_HTML = """
|
|
144
159
|
graph LR
|
145
160
|
%%LEGEND%%
|
146
161
|
classDef b0 fill:#7fc97f;
|
162
|
+
classDef external stroke-dasharray: 5 5;
|
147
163
|
</pre>
|
148
164
|
</div>
|
149
165
|
<pre class="mermaid">
|
@@ -157,6 +173,15 @@ _GRAPH_HTML = """
|
|
157
173
|
classDef b5 fill:#f0027f;
|
158
174
|
classDef b6 fill:#bf5b17;
|
159
175
|
classDef b7 fill:#666666;
|
176
|
+
classDef b0E fill:#7fc97f,stroke-dasharray: 5 5;
|
177
|
+
classDef b1E fill:#beaed4,stroke-dasharray: 5 5;
|
178
|
+
classDef b2E fill:#fdc086,stroke-dasharray: 5 5;
|
179
|
+
classDef b3E fill:#ffff99,stroke-dasharray: 5 5;
|
180
|
+
classDef b4E fill:#386cb0,stroke-dasharray: 5 5;
|
181
|
+
classDef b5E fill:#f0027f,stroke-dasharray: 5 5;
|
182
|
+
classDef b6E fill:#bf5b17,stroke-dasharray: 5 5;
|
183
|
+
classDef b7E fill:#666666,stroke-dasharray: 5 5;
|
184
|
+
classDef external stroke-dasharray: 5 5;
|
160
185
|
</pre>
|
161
186
|
<script type="module">
|
162
187
|
import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@11/dist/mermaid.esm.min.mjs';
|
@@ -169,6 +194,6 @@ _GRAPH_HTML = """
|
|
169
194
|
|
170
195
|
DEFAULT_LEGEND = (
|
171
196
|
"0[/Invoke/] ~~~ 1[/Entrypoint\\] ~~~ 2[Provide] ~~~ 3(Supply)"
|
172
|
-
' ~~~ 4["`Block Grouping`"]:::b0'
|
197
|
+
' ~~~ 4["`Block Grouping`"]:::b0 ~~~ 5[External Dependency]:::external'
|
173
198
|
)
|
174
|
-
ASGI_ENGIN_LEGEND = DEFAULT_LEGEND + " ~~~
|
199
|
+
ASGI_ENGIN_LEGEND = DEFAULT_LEGEND + " ~~~ 6[[API Route]]"
|
@@ -1,8 +1,8 @@
|
|
1
1
|
from typing import Annotated
|
2
2
|
|
3
3
|
from engin import Provide
|
4
|
-
from engin._dependency import Supply
|
5
|
-
from tests.deps import make_aliased_int
|
4
|
+
from engin._dependency import Entrypoint, Supply
|
5
|
+
from tests.deps import make_aliased_int, make_int
|
6
6
|
|
7
7
|
|
8
8
|
def test_provide_discriminates_singular():
|
@@ -57,3 +57,21 @@ def test_provide_with_annotation():
|
|
57
57
|
|
58
58
|
assert provider.return_type_id.type
|
59
59
|
assert str(provider.return_type_id) == "Annotated[str, 1]"
|
60
|
+
|
61
|
+
|
62
|
+
def test_dependency_sources():
|
63
|
+
provide = Provide(make_int)
|
64
|
+
assert provide.source_module == "tests.test_dependencies"
|
65
|
+
assert provide.source_package == "tests"
|
66
|
+
|
67
|
+
supply = Supply(3)
|
68
|
+
assert supply.source_module == "tests.test_dependencies"
|
69
|
+
assert supply.source_package == "tests"
|
70
|
+
|
71
|
+
invoke = Provide(make_int)
|
72
|
+
assert invoke.source_module == "tests.test_dependencies"
|
73
|
+
assert invoke.source_package == "tests"
|
74
|
+
|
75
|
+
entrypoint = Entrypoint(3)
|
76
|
+
assert entrypoint.source_module == "tests.test_dependencies"
|
77
|
+
assert entrypoint.source_package == "tests"
|
@@ -35,6 +35,19 @@ wheels = [
|
|
35
35
|
{ url = "https://files.pythonhosted.org/packages/b7/b8/3fe70c75fe32afc4bb507f75563d39bc5642255d1d94f1f23604725780bf/babel-2.17.0-py3-none-any.whl", hash = "sha256:4d0b53093fdfb4b21c92b5213dba5a1b23885afa8383709427046b21c366e5f2", size = 10182537 },
|
36
36
|
]
|
37
37
|
|
38
|
+
[[package]]
|
39
|
+
name = "backrefs"
|
40
|
+
version = "5.8"
|
41
|
+
source = { registry = "https://pypi.org/simple" }
|
42
|
+
sdist = { url = "https://files.pythonhosted.org/packages/6c/46/caba1eb32fa5784428ab401a5487f73db4104590ecd939ed9daaf18b47e0/backrefs-5.8.tar.gz", hash = "sha256:2cab642a205ce966af3dd4b38ee36009b31fa9502a35fd61d59ccc116e40a6bd", size = 6773994 }
|
43
|
+
wheels = [
|
44
|
+
{ url = "https://files.pythonhosted.org/packages/bf/cb/d019ab87fe70e0fe3946196d50d6a4428623dc0c38a6669c8cae0320fbf3/backrefs-5.8-py310-none-any.whl", hash = "sha256:c67f6638a34a5b8730812f5101376f9d41dc38c43f1fdc35cb54700f6ed4465d", size = 380337 },
|
45
|
+
{ url = "https://files.pythonhosted.org/packages/a9/86/abd17f50ee21b2248075cb6924c6e7f9d23b4925ca64ec660e869c2633f1/backrefs-5.8-py311-none-any.whl", hash = "sha256:2e1c15e4af0e12e45c8701bd5da0902d326b2e200cafcd25e49d9f06d44bb61b", size = 392142 },
|
46
|
+
{ url = "https://files.pythonhosted.org/packages/b3/04/7b415bd75c8ab3268cc138c76fa648c19495fcc7d155508a0e62f3f82308/backrefs-5.8-py312-none-any.whl", hash = "sha256:bbef7169a33811080d67cdf1538c8289f76f0942ff971222a16034da88a73486", size = 398021 },
|
47
|
+
{ url = "https://files.pythonhosted.org/packages/04/b8/60dcfb90eb03a06e883a92abbc2ab95c71f0d8c9dd0af76ab1d5ce0b1402/backrefs-5.8-py313-none-any.whl", hash = "sha256:e3a63b073867dbefd0536425f43db618578528e3896fb77be7141328642a1585", size = 399915 },
|
48
|
+
{ url = "https://files.pythonhosted.org/packages/0c/37/fb6973edeb700f6e3d6ff222400602ab1830446c25c7b4676d8de93e65b8/backrefs-5.8-py39-none-any.whl", hash = "sha256:a66851e4533fb5b371aa0628e1fee1af05135616b86140c9d787a2ffdf4b8fdc", size = 380336 },
|
49
|
+
]
|
50
|
+
|
38
51
|
[[package]]
|
39
52
|
name = "certifi"
|
40
53
|
version = "2025.1.31"
|
@@ -126,9 +139,74 @@ wheels = [
|
|
126
139
|
{ url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335 },
|
127
140
|
]
|
128
141
|
|
142
|
+
[[package]]
|
143
|
+
name = "coverage"
|
144
|
+
version = "7.6.12"
|
145
|
+
source = { registry = "https://pypi.org/simple" }
|
146
|
+
sdist = { url = "https://files.pythonhosted.org/packages/0c/d6/2b53ab3ee99f2262e6f0b8369a43f6d66658eab45510331c0b3d5c8c4272/coverage-7.6.12.tar.gz", hash = "sha256:48cfc4641d95d34766ad41d9573cc0f22a48aa88d22657a1fe01dca0dbae4de2", size = 805941 }
|
147
|
+
wheels = [
|
148
|
+
{ url = "https://files.pythonhosted.org/packages/ba/67/81dc41ec8f548c365d04a29f1afd492d3176b372c33e47fa2a45a01dc13a/coverage-7.6.12-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:704c8c8c6ce6569286ae9622e534b4f5b9759b6f2cd643f1c1a61f666d534fe8", size = 208345 },
|
149
|
+
{ url = "https://files.pythonhosted.org/packages/33/43/17f71676016c8829bde69e24c852fef6bd9ed39f774a245d9ec98f689fa0/coverage-7.6.12-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ad7525bf0241e5502168ae9c643a2f6c219fa0a283001cee4cf23a9b7da75879", size = 208775 },
|
150
|
+
{ url = "https://files.pythonhosted.org/packages/86/25/c6ff0775f8960e8c0840845b723eed978d22a3cd9babd2b996e4a7c502c6/coverage-7.6.12-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:06097c7abfa611c91edb9e6920264e5be1d6ceb374efb4986f38b09eed4cb2fe", size = 237925 },
|
151
|
+
{ url = "https://files.pythonhosted.org/packages/b0/3d/5f5bd37046243cb9d15fff2c69e498c2f4fe4f9b42a96018d4579ed3506f/coverage-7.6.12-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:220fa6c0ad7d9caef57f2c8771918324563ef0d8272c94974717c3909664e674", size = 235835 },
|
152
|
+
{ url = "https://files.pythonhosted.org/packages/b5/f1/9e6b75531fe33490b910d251b0bf709142e73a40e4e38a3899e6986fe088/coverage-7.6.12-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3688b99604a24492bcfe1c106278c45586eb819bf66a654d8a9a1433022fb2eb", size = 236966 },
|
153
|
+
{ url = "https://files.pythonhosted.org/packages/4f/bc/aef5a98f9133851bd1aacf130e754063719345d2fb776a117d5a8d516971/coverage-7.6.12-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d1a987778b9c71da2fc8948e6f2656da6ef68f59298b7e9786849634c35d2c3c", size = 236080 },
|
154
|
+
{ url = "https://files.pythonhosted.org/packages/eb/d0/56b4ab77f9b12aea4d4c11dc11cdcaa7c29130b837eb610639cf3400c9c3/coverage-7.6.12-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:cec6b9ce3bd2b7853d4a4563801292bfee40b030c05a3d29555fd2a8ee9bd68c", size = 234393 },
|
155
|
+
{ url = "https://files.pythonhosted.org/packages/0d/77/28ef95c5d23fe3dd191a0b7d89c82fea2c2d904aef9315daf7c890e96557/coverage-7.6.12-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:ace9048de91293e467b44bce0f0381345078389814ff6e18dbac8fdbf896360e", size = 235536 },
|
156
|
+
{ url = "https://files.pythonhosted.org/packages/29/62/18791d3632ee3ff3f95bc8599115707d05229c72db9539f208bb878a3d88/coverage-7.6.12-cp310-cp310-win32.whl", hash = "sha256:ea31689f05043d520113e0552f039603c4dd71fa4c287b64cb3606140c66f425", size = 211063 },
|
157
|
+
{ url = "https://files.pythonhosted.org/packages/fc/57/b3878006cedfd573c963e5c751b8587154eb10a61cc0f47a84f85c88a355/coverage-7.6.12-cp310-cp310-win_amd64.whl", hash = "sha256:676f92141e3c5492d2a1596d52287d0d963df21bf5e55c8b03075a60e1ddf8aa", size = 211955 },
|
158
|
+
{ url = "https://files.pythonhosted.org/packages/64/2d/da78abbfff98468c91fd63a73cccdfa0e99051676ded8dd36123e3a2d4d5/coverage-7.6.12-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:e18aafdfb3e9ec0d261c942d35bd7c28d031c5855dadb491d2723ba54f4c3015", size = 208464 },
|
159
|
+
{ url = "https://files.pythonhosted.org/packages/31/f2/c269f46c470bdabe83a69e860c80a82e5e76840e9f4bbd7f38f8cebbee2f/coverage-7.6.12-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:66fe626fd7aa5982cdebad23e49e78ef7dbb3e3c2a5960a2b53632f1f703ea45", size = 208893 },
|
160
|
+
{ url = "https://files.pythonhosted.org/packages/47/63/5682bf14d2ce20819998a49c0deadb81e608a59eed64d6bc2191bc8046b9/coverage-7.6.12-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ef01d70198431719af0b1f5dcbefc557d44a190e749004042927b2a3fed0702", size = 241545 },
|
161
|
+
{ url = "https://files.pythonhosted.org/packages/6a/b6/6b6631f1172d437e11067e1c2edfdb7238b65dff965a12bce3b6d1bf2be2/coverage-7.6.12-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:07e92ae5a289a4bc4c0aae710c0948d3c7892e20fd3588224ebe242039573bf0", size = 239230 },
|
162
|
+
{ url = "https://files.pythonhosted.org/packages/c7/01/9cd06cbb1be53e837e16f1b4309f6357e2dfcbdab0dd7cd3b1a50589e4e1/coverage-7.6.12-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e695df2c58ce526eeab11a2e915448d3eb76f75dffe338ea613c1201b33bab2f", size = 241013 },
|
163
|
+
{ url = "https://files.pythonhosted.org/packages/4b/26/56afefc03c30871326e3d99709a70d327ac1f33da383cba108c79bd71563/coverage-7.6.12-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d74c08e9aaef995f8c4ef6d202dbd219c318450fe2a76da624f2ebb9c8ec5d9f", size = 239750 },
|
164
|
+
{ url = "https://files.pythonhosted.org/packages/dd/ea/88a1ff951ed288f56aa561558ebe380107cf9132facd0b50bced63ba7238/coverage-7.6.12-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e995b3b76ccedc27fe4f477b349b7d64597e53a43fc2961db9d3fbace085d69d", size = 238462 },
|
165
|
+
{ url = "https://files.pythonhosted.org/packages/6e/d4/1d9404566f553728889409eff82151d515fbb46dc92cbd13b5337fa0de8c/coverage-7.6.12-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b1f097878d74fe51e1ddd1be62d8e3682748875b461232cf4b52ddc6e6db0bba", size = 239307 },
|
166
|
+
{ url = "https://files.pythonhosted.org/packages/12/c1/e453d3b794cde1e232ee8ac1d194fde8e2ba329c18bbf1b93f6f5eef606b/coverage-7.6.12-cp311-cp311-win32.whl", hash = "sha256:1f7ffa05da41754e20512202c866d0ebfc440bba3b0ed15133070e20bf5aeb5f", size = 211117 },
|
167
|
+
{ url = "https://files.pythonhosted.org/packages/d5/db/829185120c1686fa297294f8fcd23e0422f71070bf85ef1cc1a72ecb2930/coverage-7.6.12-cp311-cp311-win_amd64.whl", hash = "sha256:e216c5c45f89ef8971373fd1c5d8d1164b81f7f5f06bbf23c37e7908d19e8558", size = 212019 },
|
168
|
+
{ url = "https://files.pythonhosted.org/packages/e2/7f/4af2ed1d06ce6bee7eafc03b2ef748b14132b0bdae04388e451e4b2c529b/coverage-7.6.12-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b172f8e030e8ef247b3104902cc671e20df80163b60a203653150d2fc204d1ad", size = 208645 },
|
169
|
+
{ url = "https://files.pythonhosted.org/packages/dc/60/d19df912989117caa95123524d26fc973f56dc14aecdec5ccd7d0084e131/coverage-7.6.12-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:641dfe0ab73deb7069fb972d4d9725bf11c239c309ce694dd50b1473c0f641c3", size = 208898 },
|
170
|
+
{ url = "https://files.pythonhosted.org/packages/bd/10/fecabcf438ba676f706bf90186ccf6ff9f6158cc494286965c76e58742fa/coverage-7.6.12-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0e549f54ac5f301e8e04c569dfdb907f7be71b06b88b5063ce9d6953d2d58574", size = 242987 },
|
171
|
+
{ url = "https://files.pythonhosted.org/packages/4c/53/4e208440389e8ea936f5f2b0762dcd4cb03281a7722def8e2bf9dc9c3d68/coverage-7.6.12-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:959244a17184515f8c52dcb65fb662808767c0bd233c1d8a166e7cf74c9ea985", size = 239881 },
|
172
|
+
{ url = "https://files.pythonhosted.org/packages/c4/47/2ba744af8d2f0caa1f17e7746147e34dfc5f811fb65fc153153722d58835/coverage-7.6.12-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bda1c5f347550c359f841d6614fb8ca42ae5cb0b74d39f8a1e204815ebe25750", size = 242142 },
|
173
|
+
{ url = "https://files.pythonhosted.org/packages/e9/90/df726af8ee74d92ee7e3bf113bf101ea4315d71508952bd21abc3fae471e/coverage-7.6.12-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1ceeb90c3eda1f2d8c4c578c14167dbd8c674ecd7d38e45647543f19839dd6ea", size = 241437 },
|
174
|
+
{ url = "https://files.pythonhosted.org/packages/f6/af/995263fd04ae5f9cf12521150295bf03b6ba940d0aea97953bb4a6db3e2b/coverage-7.6.12-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0f16f44025c06792e0fb09571ae454bcc7a3ec75eeb3c36b025eccf501b1a4c3", size = 239724 },
|
175
|
+
{ url = "https://files.pythonhosted.org/packages/1c/8e/5bb04f0318805e190984c6ce106b4c3968a9562a400180e549855d8211bd/coverage-7.6.12-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b076e625396e787448d27a411aefff867db2bffac8ed04e8f7056b07024eed5a", size = 241329 },
|
176
|
+
{ url = "https://files.pythonhosted.org/packages/9e/9d/fa04d9e6c3f6459f4e0b231925277cfc33d72dfab7fa19c312c03e59da99/coverage-7.6.12-cp312-cp312-win32.whl", hash = "sha256:00b2086892cf06c7c2d74983c9595dc511acca00665480b3ddff749ec4fb2a95", size = 211289 },
|
177
|
+
{ url = "https://files.pythonhosted.org/packages/53/40/53c7ffe3c0c3fff4d708bc99e65f3d78c129110d6629736faf2dbd60ad57/coverage-7.6.12-cp312-cp312-win_amd64.whl", hash = "sha256:7ae6eabf519bc7871ce117fb18bf14e0e343eeb96c377667e3e5dd12095e0288", size = 212079 },
|
178
|
+
{ url = "https://files.pythonhosted.org/packages/76/89/1adf3e634753c0de3dad2f02aac1e73dba58bc5a3a914ac94a25b2ef418f/coverage-7.6.12-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:488c27b3db0ebee97a830e6b5a3ea930c4a6e2c07f27a5e67e1b3532e76b9ef1", size = 208673 },
|
179
|
+
{ url = "https://files.pythonhosted.org/packages/ce/64/92a4e239d64d798535c5b45baac6b891c205a8a2e7c9cc8590ad386693dc/coverage-7.6.12-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5d1095bbee1851269f79fd8e0c9b5544e4c00c0c24965e66d8cba2eb5bb535fd", size = 208945 },
|
180
|
+
{ url = "https://files.pythonhosted.org/packages/b4/d0/4596a3ef3bca20a94539c9b1e10fd250225d1dec57ea78b0867a1cf9742e/coverage-7.6.12-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0533adc29adf6a69c1baa88c3d7dbcaadcffa21afbed3ca7a225a440e4744bf9", size = 242484 },
|
181
|
+
{ url = "https://files.pythonhosted.org/packages/1c/ef/6fd0d344695af6718a38d0861408af48a709327335486a7ad7e85936dc6e/coverage-7.6.12-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:53c56358d470fa507a2b6e67a68fd002364d23c83741dbc4c2e0680d80ca227e", size = 239525 },
|
182
|
+
{ url = "https://files.pythonhosted.org/packages/0c/4b/373be2be7dd42f2bcd6964059fd8fa307d265a29d2b9bcf1d044bcc156ed/coverage-7.6.12-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:64cbb1a3027c79ca6310bf101014614f6e6e18c226474606cf725238cf5bc2d4", size = 241545 },
|
183
|
+
{ url = "https://files.pythonhosted.org/packages/a6/7d/0e83cc2673a7790650851ee92f72a343827ecaaea07960587c8f442b5cd3/coverage-7.6.12-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:79cac3390bfa9836bb795be377395f28410811c9066bc4eefd8015258a7578c6", size = 241179 },
|
184
|
+
{ url = "https://files.pythonhosted.org/packages/ff/8c/566ea92ce2bb7627b0900124e24a99f9244b6c8c92d09ff9f7633eb7c3c8/coverage-7.6.12-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:9b148068e881faa26d878ff63e79650e208e95cf1c22bd3f77c3ca7b1d9821a3", size = 239288 },
|
185
|
+
{ url = "https://files.pythonhosted.org/packages/7d/e4/869a138e50b622f796782d642c15fb5f25a5870c6d0059a663667a201638/coverage-7.6.12-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8bec2ac5da793c2685ce5319ca9bcf4eee683b8a1679051f8e6ec04c4f2fd7dc", size = 241032 },
|
186
|
+
{ url = "https://files.pythonhosted.org/packages/ae/28/a52ff5d62a9f9e9fe9c4f17759b98632edd3a3489fce70154c7d66054dd3/coverage-7.6.12-cp313-cp313-win32.whl", hash = "sha256:200e10beb6ddd7c3ded322a4186313d5ca9e63e33d8fab4faa67ef46d3460af3", size = 211315 },
|
187
|
+
{ url = "https://files.pythonhosted.org/packages/bc/17/ab849b7429a639f9722fa5628364c28d675c7ff37ebc3268fe9840dda13c/coverage-7.6.12-cp313-cp313-win_amd64.whl", hash = "sha256:2b996819ced9f7dbb812c701485d58f261bef08f9b85304d41219b1496b591ef", size = 212099 },
|
188
|
+
{ url = "https://files.pythonhosted.org/packages/d2/1c/b9965bf23e171d98505eb5eb4fb4d05c44efd256f2e0f19ad1ba8c3f54b0/coverage-7.6.12-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:299cf973a7abff87a30609879c10df0b3bfc33d021e1adabc29138a48888841e", size = 209511 },
|
189
|
+
{ url = "https://files.pythonhosted.org/packages/57/b3/119c201d3b692d5e17784fee876a9a78e1b3051327de2709392962877ca8/coverage-7.6.12-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:4b467a8c56974bf06e543e69ad803c6865249d7a5ccf6980457ed2bc50312703", size = 209729 },
|
190
|
+
{ url = "https://files.pythonhosted.org/packages/52/4e/a7feb5a56b266304bc59f872ea07b728e14d5a64f1ad3a2cc01a3259c965/coverage-7.6.12-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2458f275944db8129f95d91aee32c828a408481ecde3b30af31d552c2ce284a0", size = 253988 },
|
191
|
+
{ url = "https://files.pythonhosted.org/packages/65/19/069fec4d6908d0dae98126aa7ad08ce5130a6decc8509da7740d36e8e8d2/coverage-7.6.12-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a9d8be07fb0832636a0f72b80d2a652fe665e80e720301fb22b191c3434d924", size = 249697 },
|
192
|
+
{ url = "https://files.pythonhosted.org/packages/1c/da/5b19f09ba39df7c55f77820736bf17bbe2416bbf5216a3100ac019e15839/coverage-7.6.12-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:14d47376a4f445e9743f6c83291e60adb1b127607a3618e3185bbc8091f0467b", size = 252033 },
|
193
|
+
{ url = "https://files.pythonhosted.org/packages/1e/89/4c2750df7f80a7872267f7c5fe497c69d45f688f7b3afe1297e52e33f791/coverage-7.6.12-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:b95574d06aa9d2bd6e5cc35a5bbe35696342c96760b69dc4287dbd5abd4ad51d", size = 251535 },
|
194
|
+
{ url = "https://files.pythonhosted.org/packages/78/3b/6d3ae3c1cc05f1b0460c51e6f6dcf567598cbd7c6121e5ad06643974703c/coverage-7.6.12-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:ecea0c38c9079570163d663c0433a9af4094a60aafdca491c6a3d248c7432827", size = 249192 },
|
195
|
+
{ url = "https://files.pythonhosted.org/packages/6e/8e/c14a79f535ce41af7d436bbad0d3d90c43d9e38ec409b4770c894031422e/coverage-7.6.12-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:2251fabcfee0a55a8578a9d29cecfee5f2de02f11530e7d5c5a05859aa85aee9", size = 250627 },
|
196
|
+
{ url = "https://files.pythonhosted.org/packages/cb/79/b7cee656cfb17a7f2c1b9c3cee03dd5d8000ca299ad4038ba64b61a9b044/coverage-7.6.12-cp313-cp313t-win32.whl", hash = "sha256:eb5507795caabd9b2ae3f1adc95f67b1104971c22c624bb354232d65c4fc90b3", size = 212033 },
|
197
|
+
{ url = "https://files.pythonhosted.org/packages/b6/c3/f7aaa3813f1fa9a4228175a7bd368199659d392897e184435a3b66408dd3/coverage-7.6.12-cp313-cp313t-win_amd64.whl", hash = "sha256:f60a297c3987c6c02ffb29effc70eadcbb412fe76947d394a1091a3615948e2f", size = 213240 },
|
198
|
+
{ url = "https://files.pythonhosted.org/packages/7a/7f/05818c62c7afe75df11e0233bd670948d68b36cdbf2a339a095bc02624a8/coverage-7.6.12-pp39.pp310-none-any.whl", hash = "sha256:7e39e845c4d764208e7b8f6a21c541ade741e2c41afabdfa1caa28687a3c98cf", size = 200558 },
|
199
|
+
{ url = "https://files.pythonhosted.org/packages/fb/b2/f655700e1024dec98b10ebaafd0cedbc25e40e4abe62a3c8e2ceef4f8f0a/coverage-7.6.12-py3-none-any.whl", hash = "sha256:eb8668cfbc279a536c633137deeb9435d2962caec279c3f8cf8b91fff6ff8953", size = 200552 },
|
200
|
+
]
|
201
|
+
|
202
|
+
[package.optional-dependencies]
|
203
|
+
toml = [
|
204
|
+
{ name = "tomli", marker = "python_full_version <= '3.11'" },
|
205
|
+
]
|
206
|
+
|
129
207
|
[[package]]
|
130
208
|
name = "engin"
|
131
|
-
version = "0.0.
|
209
|
+
version = "0.0.11"
|
132
210
|
source = { editable = "." }
|
133
211
|
|
134
212
|
[package.dev-dependencies]
|
@@ -141,6 +219,7 @@ dev = [
|
|
141
219
|
{ name = "pydantic-settings" },
|
142
220
|
{ name = "pytest" },
|
143
221
|
{ name = "pytest-asyncio" },
|
222
|
+
{ name = "pytest-cov" },
|
144
223
|
{ name = "ruff" },
|
145
224
|
{ name = "starlette" },
|
146
225
|
{ name = "uvicorn" },
|
@@ -162,6 +241,7 @@ dev = [
|
|
162
241
|
{ name = "pydantic-settings", specifier = ">=2.6.0" },
|
163
242
|
{ name = "pytest", specifier = ">=8" },
|
164
243
|
{ name = "pytest-asyncio", specifier = ">=0.24.0" },
|
244
|
+
{ name = "pytest-cov", specifier = ">=6.0.0" },
|
165
245
|
{ name = "ruff", specifier = ">=0" },
|
166
246
|
{ name = "starlette", specifier = ">=0.39.2" },
|
167
247
|
{ name = "uvicorn", specifier = ">=0.31.1" },
|
@@ -182,16 +262,16 @@ wheels = [
|
|
182
262
|
|
183
263
|
[[package]]
|
184
264
|
name = "fastapi"
|
185
|
-
version = "0.115.
|
265
|
+
version = "0.115.11"
|
186
266
|
source = { registry = "https://pypi.org/simple" }
|
187
267
|
dependencies = [
|
188
268
|
{ name = "pydantic" },
|
189
269
|
{ name = "starlette" },
|
190
270
|
{ name = "typing-extensions" },
|
191
271
|
]
|
192
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
272
|
+
sdist = { url = "https://files.pythonhosted.org/packages/b5/28/c5d26e5860df807241909a961a37d45e10533acef95fc368066c7dd186cd/fastapi-0.115.11.tar.gz", hash = "sha256:cc81f03f688678b92600a65a5e618b93592c65005db37157147204d8924bf94f", size = 294441 }
|
193
273
|
wheels = [
|
194
|
-
{ url = "https://files.pythonhosted.org/packages/
|
274
|
+
{ url = "https://files.pythonhosted.org/packages/b3/5d/4d8bbb94f0dbc22732350c06965e40740f4a92ca560e90bb566f4f73af41/fastapi-0.115.11-py3-none-any.whl", hash = "sha256:32e1541b7b74602e4ef4a0260ecaf3aadf9d4f19590bba3e1bf2ac4666aa2c64", size = 94926 },
|
195
275
|
]
|
196
276
|
|
197
277
|
[[package]]
|
@@ -208,14 +288,14 @@ wheels = [
|
|
208
288
|
|
209
289
|
[[package]]
|
210
290
|
name = "griffe"
|
211
|
-
version = "1.
|
291
|
+
version = "1.6.0"
|
212
292
|
source = { registry = "https://pypi.org/simple" }
|
213
293
|
dependencies = [
|
214
294
|
{ name = "colorama" },
|
215
295
|
]
|
216
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
296
|
+
sdist = { url = "https://files.pythonhosted.org/packages/a0/1a/d467b93f5e0ea4edf3c1caef44cfdd53a4a498cb3a6bb722df4dd0fdd66a/griffe-1.6.0.tar.gz", hash = "sha256:eb5758088b9c73ad61c7ac014f3cdfb4c57b5c2fcbfca69996584b702aefa354", size = 391819 }
|
217
297
|
wheels = [
|
218
|
-
{ url = "https://files.pythonhosted.org/packages/
|
298
|
+
{ url = "https://files.pythonhosted.org/packages/bf/02/5a22bc98d0aebb68c15ba70d2da1c84a5ef56048d79634e5f96cd2ba96e9/griffe-1.6.0-py3-none-any.whl", hash = "sha256:9f1dfe035d4715a244ed2050dfbceb05b1f470809ed4f6bb10ece5a7302f8dd1", size = 128470 },
|
219
299
|
]
|
220
300
|
|
221
301
|
[[package]]
|
@@ -387,16 +467,16 @@ wheels = [
|
|
387
467
|
|
388
468
|
[[package]]
|
389
469
|
name = "mkdocs-autorefs"
|
390
|
-
version = "1.
|
470
|
+
version = "1.4.0"
|
391
471
|
source = { registry = "https://pypi.org/simple" }
|
392
472
|
dependencies = [
|
393
473
|
{ name = "markdown" },
|
394
474
|
{ name = "markupsafe" },
|
395
475
|
{ name = "mkdocs" },
|
396
476
|
]
|
397
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
477
|
+
sdist = { url = "https://files.pythonhosted.org/packages/83/79/e846eb3323d1546b25d2ae4c957f5edf1bdfb7e0b695d43feae034c61553/mkdocs_autorefs-1.4.0.tar.gz", hash = "sha256:a9c0aa9c90edbce302c09d050a3c4cb7c76f8b7b2c98f84a7a05f53d00392156", size = 3128903 }
|
398
478
|
wheels = [
|
399
|
-
{ url = "https://files.pythonhosted.org/packages/
|
479
|
+
{ url = "https://files.pythonhosted.org/packages/33/0e/a6ff5d3b3ac428fa8c43a356df449f366ff0dbe242dac9f87fa9d20515ed/mkdocs_autorefs-1.4.0-py3-none-any.whl", hash = "sha256:bad19f69655878d20194acd0162e29a89c3f7e6365ffe54e72aa3fd1072f240d", size = 4368332 },
|
400
480
|
]
|
401
481
|
|
402
482
|
[[package]]
|
@@ -415,10 +495,11 @@ wheels = [
|
|
415
495
|
|
416
496
|
[[package]]
|
417
497
|
name = "mkdocs-material"
|
418
|
-
version = "9.6.
|
498
|
+
version = "9.6.6"
|
419
499
|
source = { registry = "https://pypi.org/simple" }
|
420
500
|
dependencies = [
|
421
501
|
{ name = "babel" },
|
502
|
+
{ name = "backrefs" },
|
422
503
|
{ name = "colorama" },
|
423
504
|
{ name = "jinja2" },
|
424
505
|
{ name = "markdown" },
|
@@ -427,12 +508,11 @@ dependencies = [
|
|
427
508
|
{ name = "paginate" },
|
428
509
|
{ name = "pygments" },
|
429
510
|
{ name = "pymdown-extensions" },
|
430
|
-
{ name = "regex" },
|
431
511
|
{ name = "requests" },
|
432
512
|
]
|
433
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
513
|
+
sdist = { url = "https://files.pythonhosted.org/packages/26/b2/4244c578bf00f88181c55a76e484efb429159a1a49db60eaf6b696783760/mkdocs_material-9.6.6.tar.gz", hash = "sha256:06141bd720b0b235829bd59e8afc11d5587c35ae7fc340612d2b3f554e6a69d8", size = 3947396 }
|
434
514
|
wheels = [
|
435
|
-
{ url = "https://files.pythonhosted.org/packages/
|
515
|
+
{ url = "https://files.pythonhosted.org/packages/a4/2d/c71b689cbccef26806cea4f3dd98f1555cb5894e374c8c5ca6d2106d7fd4/mkdocs_material-9.6.6-py3-none-any.whl", hash = "sha256:904c422ec86086144495831cee2614bb8a0092572ef579af6392b8080309d3a3", size = 8696753 },
|
436
516
|
]
|
437
517
|
|
438
518
|
[[package]]
|
@@ -446,7 +526,7 @@ wheels = [
|
|
446
526
|
|
447
527
|
[[package]]
|
448
528
|
name = "mkdocstrings"
|
449
|
-
version = "0.28.
|
529
|
+
version = "0.28.2"
|
450
530
|
source = { registry = "https://pypi.org/simple" }
|
451
531
|
dependencies = [
|
452
532
|
{ name = "jinja2" },
|
@@ -457,9 +537,9 @@ dependencies = [
|
|
457
537
|
{ name = "mkdocs-get-deps" },
|
458
538
|
{ name = "pymdown-extensions" },
|
459
539
|
]
|
460
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
540
|
+
sdist = { url = "https://files.pythonhosted.org/packages/e8/83/5eab81d31953c725942eb663b6a4cf36ad06d803633c8e1c6ddc708af62d/mkdocstrings-0.28.2.tar.gz", hash = "sha256:9b847266d7a588ea76a8385eaebe1538278b4361c0d1ce48ed005be59f053569", size = 5691916 }
|
461
541
|
wheels = [
|
462
|
-
{ url = "https://files.pythonhosted.org/packages/
|
542
|
+
{ url = "https://files.pythonhosted.org/packages/32/60/15ef9759431cf8e60ffda7d5bba3914cc764f2bd8e7f62e1bd301ea292e0/mkdocstrings-0.28.2-py3-none-any.whl", hash = "sha256:57f79c557e2718d217d6f6a81bf75a0de097f10e922e7e5e00f085c3f0ff6895", size = 8056702 },
|
463
543
|
]
|
464
544
|
|
465
545
|
[package.optional-dependencies]
|
@@ -469,7 +549,7 @@ python = [
|
|
469
549
|
|
470
550
|
[[package]]
|
471
551
|
name = "mkdocstrings-python"
|
472
|
-
version = "1.16.
|
552
|
+
version = "1.16.2"
|
473
553
|
source = { registry = "https://pypi.org/simple" }
|
474
554
|
dependencies = [
|
475
555
|
{ name = "griffe" },
|
@@ -477,9 +557,9 @@ dependencies = [
|
|
477
557
|
{ name = "mkdocstrings" },
|
478
558
|
{ name = "typing-extensions", marker = "python_full_version < '3.11'" },
|
479
559
|
]
|
480
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
560
|
+
sdist = { url = "https://files.pythonhosted.org/packages/ed/a9/5990642e1bb2d90b049f655b92f46d0a77acb76ed59ef3233d5a6934312e/mkdocstrings_python-1.16.2.tar.gz", hash = "sha256:942ec1a2e0481d28f96f93be3d6e343cab92a21e5baf01c37dd2d7236c4d0bd7", size = 423492 }
|
481
561
|
wheels = [
|
482
|
-
{ url = "https://files.pythonhosted.org/packages/
|
562
|
+
{ url = "https://files.pythonhosted.org/packages/82/a2/60be7e17a2f2a9d4bfb7273cdb2071eeeb65bdca5c0d07ff16df63221ca2/mkdocstrings_python-1.16.2-py3-none-any.whl", hash = "sha256:ff7e719404e59ad1a72f1afbe854769984c889b8fa043c160f6c988e1ad9e966", size = 449141 },
|
483
563
|
]
|
484
564
|
|
485
565
|
[[package]]
|
@@ -585,16 +665,16 @@ wheels = [
|
|
585
665
|
|
586
666
|
[[package]]
|
587
667
|
name = "poethepoet"
|
588
|
-
version = "0.
|
668
|
+
version = "0.33.0"
|
589
669
|
source = { registry = "https://pypi.org/simple" }
|
590
670
|
dependencies = [
|
591
671
|
{ name = "pastel" },
|
592
672
|
{ name = "pyyaml" },
|
593
673
|
{ name = "tomli", marker = "python_full_version < '3.11'" },
|
594
674
|
]
|
595
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
675
|
+
sdist = { url = "https://files.pythonhosted.org/packages/87/da/c64c90992a85d57de2503ceb4375b5dfe1d6446222049fecba8e4cac7fd2/poethepoet-0.33.0.tar.gz", hash = "sha256:dccf2bc1fb67ae9051b4aea7515687a34628338e013e723f60e59e41d3630c07", size = 62345 }
|
596
676
|
wheels = [
|
597
|
-
{ url = "https://files.pythonhosted.org/packages/
|
677
|
+
{ url = "https://files.pythonhosted.org/packages/f9/aa/53d02ddd6cefd1aeb4bf5d1d751d1b27234a7b50c49d9842aea0bf7ceb96/poethepoet-0.33.0-py3-none-any.whl", hash = "sha256:46a32ea9834666a13e0a7bbfa2562037c8d9a46df5cf032b9de1fbb3de372c6e", size = 83387 },
|
598
678
|
]
|
599
679
|
|
600
680
|
[[package]]
|
@@ -688,15 +768,15 @@ wheels = [
|
|
688
768
|
|
689
769
|
[[package]]
|
690
770
|
name = "pydantic-settings"
|
691
|
-
version = "2.8.
|
771
|
+
version = "2.8.1"
|
692
772
|
source = { registry = "https://pypi.org/simple" }
|
693
773
|
dependencies = [
|
694
774
|
{ name = "pydantic" },
|
695
775
|
{ name = "python-dotenv" },
|
696
776
|
]
|
697
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
777
|
+
sdist = { url = "https://files.pythonhosted.org/packages/88/82/c79424d7d8c29b994fb01d277da57b0a9b09cc03c3ff875f9bd8a86b2145/pydantic_settings-2.8.1.tar.gz", hash = "sha256:d5c663dfbe9db9d5e1c646b2e161da12f0d734d422ee56f567d0ea2cee4e8585", size = 83550 }
|
698
778
|
wheels = [
|
699
|
-
{ url = "https://files.pythonhosted.org/packages/
|
779
|
+
{ url = "https://files.pythonhosted.org/packages/0b/53/a64f03044927dc47aafe029c42a5b7aabc38dfb813475e0e1bf71c4a59d0/pydantic_settings-2.8.1-py3-none-any.whl", hash = "sha256:81942d5ac3d905f7f3ee1a70df5dfb62d5569c12f51a5a647defc1c3d9ee2e9c", size = 30839 },
|
700
780
|
]
|
701
781
|
|
702
782
|
[[package]]
|
@@ -723,7 +803,7 @@ wheels = [
|
|
723
803
|
|
724
804
|
[[package]]
|
725
805
|
name = "pytest"
|
726
|
-
version = "8.3.
|
806
|
+
version = "8.3.5"
|
727
807
|
source = { registry = "https://pypi.org/simple" }
|
728
808
|
dependencies = [
|
729
809
|
{ name = "colorama", marker = "sys_platform == 'win32'" },
|
@@ -733,9 +813,9 @@ dependencies = [
|
|
733
813
|
{ name = "pluggy" },
|
734
814
|
{ name = "tomli", marker = "python_full_version < '3.11'" },
|
735
815
|
]
|
736
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
816
|
+
sdist = { url = "https://files.pythonhosted.org/packages/ae/3c/c9d525a414d506893f0cd8a8d0de7706446213181570cdbd766691164e40/pytest-8.3.5.tar.gz", hash = "sha256:f4efe70cc14e511565ac476b57c279e12a855b11f48f212af1080ef2263d3845", size = 1450891 }
|
737
817
|
wheels = [
|
738
|
-
{ url = "https://files.pythonhosted.org/packages/
|
818
|
+
{ url = "https://files.pythonhosted.org/packages/30/3d/64ad57c803f1fa1e963a7946b6e0fea4a70df53c1a7fed304586539c2bac/pytest-8.3.5-py3-none-any.whl", hash = "sha256:c69214aa47deac29fad6c2a4f590b9c4a9fdb16a403176fe154b79c0b4d4d820", size = 343634 },
|
739
819
|
]
|
740
820
|
|
741
821
|
[[package]]
|
@@ -750,6 +830,19 @@ wheels = [
|
|
750
830
|
{ url = "https://files.pythonhosted.org/packages/67/17/3493c5624e48fd97156ebaec380dcaafee9506d7e2c46218ceebbb57d7de/pytest_asyncio-0.25.3-py3-none-any.whl", hash = "sha256:9e89518e0f9bd08928f97a3482fdc4e244df17529460bc038291ccaf8f85c7c3", size = 19467 },
|
751
831
|
]
|
752
832
|
|
833
|
+
[[package]]
|
834
|
+
name = "pytest-cov"
|
835
|
+
version = "6.0.0"
|
836
|
+
source = { registry = "https://pypi.org/simple" }
|
837
|
+
dependencies = [
|
838
|
+
{ name = "coverage", extra = ["toml"] },
|
839
|
+
{ name = "pytest" },
|
840
|
+
]
|
841
|
+
sdist = { url = "https://files.pythonhosted.org/packages/be/45/9b538de8cef30e17c7b45ef42f538a94889ed6a16f2387a6c89e73220651/pytest-cov-6.0.0.tar.gz", hash = "sha256:fde0b595ca248bb8e2d76f020b465f3b107c9632e6a1d1705f17834c89dcadc0", size = 66945 }
|
842
|
+
wheels = [
|
843
|
+
{ url = "https://files.pythonhosted.org/packages/36/3b/48e79f2cd6a61dbbd4807b4ed46cb564b4fd50a76166b1c4ea5c1d9e2371/pytest_cov-6.0.0-py3-none-any.whl", hash = "sha256:eee6f1b9e61008bd34975a4d5bab25801eb31898b032dd55addc93e96fcaaa35", size = 22949 },
|
844
|
+
]
|
845
|
+
|
753
846
|
[[package]]
|
754
847
|
name = "python-dateutil"
|
755
848
|
version = "2.9.0.post0"
|
@@ -827,75 +920,6 @@ wheels = [
|
|
827
920
|
{ url = "https://files.pythonhosted.org/packages/5a/66/bbb1dd374f5c870f59c5bb1db0e18cbe7fa739415a24cbd95b2d1f5ae0c4/pyyaml_env_tag-0.1-py3-none-any.whl", hash = "sha256:af31106dec8a4d68c60207c1886031cbf839b68aa7abccdb19868200532c2069", size = 3911 },
|
828
921
|
]
|
829
922
|
|
830
|
-
[[package]]
|
831
|
-
name = "regex"
|
832
|
-
version = "2024.11.6"
|
833
|
-
source = { registry = "https://pypi.org/simple" }
|
834
|
-
sdist = { url = "https://files.pythonhosted.org/packages/8e/5f/bd69653fbfb76cf8604468d3b4ec4c403197144c7bfe0e6a5fc9e02a07cb/regex-2024.11.6.tar.gz", hash = "sha256:7ab159b063c52a0333c884e4679f8d7a85112ee3078fe3d9004b2dd875585519", size = 399494 }
|
835
|
-
wheels = [
|
836
|
-
{ url = "https://files.pythonhosted.org/packages/95/3c/4651f6b130c6842a8f3df82461a8950f923925db8b6961063e82744bddcc/regex-2024.11.6-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ff590880083d60acc0433f9c3f713c51f7ac6ebb9adf889c79a261ecf541aa91", size = 482674 },
|
837
|
-
{ url = "https://files.pythonhosted.org/packages/15/51/9f35d12da8434b489c7b7bffc205c474a0a9432a889457026e9bc06a297a/regex-2024.11.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:658f90550f38270639e83ce492f27d2c8d2cd63805c65a13a14d36ca126753f0", size = 287684 },
|
838
|
-
{ url = "https://files.pythonhosted.org/packages/bd/18/b731f5510d1b8fb63c6b6d3484bfa9a59b84cc578ac8b5172970e05ae07c/regex-2024.11.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:164d8b7b3b4bcb2068b97428060b2a53be050085ef94eca7f240e7947f1b080e", size = 284589 },
|
839
|
-
{ url = "https://files.pythonhosted.org/packages/78/a2/6dd36e16341ab95e4c6073426561b9bfdeb1a9c9b63ab1b579c2e96cb105/regex-2024.11.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d3660c82f209655a06b587d55e723f0b813d3a7db2e32e5e7dc64ac2a9e86fde", size = 782511 },
|
840
|
-
{ url = "https://files.pythonhosted.org/packages/1b/2b/323e72d5d2fd8de0d9baa443e1ed70363ed7e7b2fb526f5950c5cb99c364/regex-2024.11.6-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d22326fcdef5e08c154280b71163ced384b428343ae16a5ab2b3354aed12436e", size = 821149 },
|
841
|
-
{ url = "https://files.pythonhosted.org/packages/90/30/63373b9ea468fbef8a907fd273e5c329b8c9535fee36fc8dba5fecac475d/regex-2024.11.6-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f1ac758ef6aebfc8943560194e9fd0fa18bcb34d89fd8bd2af18183afd8da3a2", size = 809707 },
|
842
|
-
{ url = "https://files.pythonhosted.org/packages/f2/98/26d3830875b53071f1f0ae6d547f1d98e964dd29ad35cbf94439120bb67a/regex-2024.11.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:997d6a487ff00807ba810e0f8332c18b4eb8d29463cfb7c820dc4b6e7562d0cf", size = 781702 },
|
843
|
-
{ url = "https://files.pythonhosted.org/packages/87/55/eb2a068334274db86208ab9d5599ffa63631b9f0f67ed70ea7c82a69bbc8/regex-2024.11.6-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:02a02d2bb04fec86ad61f3ea7f49c015a0681bf76abb9857f945d26159d2968c", size = 771976 },
|
844
|
-
{ url = "https://files.pythonhosted.org/packages/74/c0/be707bcfe98254d8f9d2cff55d216e946f4ea48ad2fd8cf1428f8c5332ba/regex-2024.11.6-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f02f93b92358ee3f78660e43b4b0091229260c5d5c408d17d60bf26b6c900e86", size = 697397 },
|
845
|
-
{ url = "https://files.pythonhosted.org/packages/49/dc/bb45572ceb49e0f6509f7596e4ba7031f6819ecb26bc7610979af5a77f45/regex-2024.11.6-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:06eb1be98df10e81ebaded73fcd51989dcf534e3c753466e4b60c4697a003b67", size = 768726 },
|
846
|
-
{ url = "https://files.pythonhosted.org/packages/5a/db/f43fd75dc4c0c2d96d0881967897926942e935d700863666f3c844a72ce6/regex-2024.11.6-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:040df6fe1a5504eb0f04f048e6d09cd7c7110fef851d7c567a6b6e09942feb7d", size = 775098 },
|
847
|
-
{ url = "https://files.pythonhosted.org/packages/99/d7/f94154db29ab5a89d69ff893159b19ada89e76b915c1293e98603d39838c/regex-2024.11.6-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:fdabbfc59f2c6edba2a6622c647b716e34e8e3867e0ab975412c5c2f79b82da2", size = 839325 },
|
848
|
-
{ url = "https://files.pythonhosted.org/packages/f7/17/3cbfab1f23356fbbf07708220ab438a7efa1e0f34195bf857433f79f1788/regex-2024.11.6-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:8447d2d39b5abe381419319f942de20b7ecd60ce86f16a23b0698f22e1b70008", size = 843277 },
|
849
|
-
{ url = "https://files.pythonhosted.org/packages/7e/f2/48b393b51900456155de3ad001900f94298965e1cad1c772b87f9cfea011/regex-2024.11.6-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:da8f5fc57d1933de22a9e23eec290a0d8a5927a5370d24bda9a6abe50683fe62", size = 773197 },
|
850
|
-
{ url = "https://files.pythonhosted.org/packages/45/3f/ef9589aba93e084cd3f8471fded352826dcae8489b650d0b9b27bc5bba8a/regex-2024.11.6-cp310-cp310-win32.whl", hash = "sha256:b489578720afb782f6ccf2840920f3a32e31ba28a4b162e13900c3e6bd3f930e", size = 261714 },
|
851
|
-
{ url = "https://files.pythonhosted.org/packages/42/7e/5f1b92c8468290c465fd50c5318da64319133231415a8aa6ea5ab995a815/regex-2024.11.6-cp310-cp310-win_amd64.whl", hash = "sha256:5071b2093e793357c9d8b2929dfc13ac5f0a6c650559503bb81189d0a3814519", size = 274042 },
|
852
|
-
{ url = "https://files.pythonhosted.org/packages/58/58/7e4d9493a66c88a7da6d205768119f51af0f684fe7be7bac8328e217a52c/regex-2024.11.6-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:5478c6962ad548b54a591778e93cd7c456a7a29f8eca9c49e4f9a806dcc5d638", size = 482669 },
|
853
|
-
{ url = "https://files.pythonhosted.org/packages/34/4c/8f8e631fcdc2ff978609eaeef1d6994bf2f028b59d9ac67640ed051f1218/regex-2024.11.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2c89a8cc122b25ce6945f0423dc1352cb9593c68abd19223eebbd4e56612c5b7", size = 287684 },
|
854
|
-
{ url = "https://files.pythonhosted.org/packages/c5/1b/f0e4d13e6adf866ce9b069e191f303a30ab1277e037037a365c3aad5cc9c/regex-2024.11.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:94d87b689cdd831934fa3ce16cc15cd65748e6d689f5d2b8f4f4df2065c9fa20", size = 284589 },
|
855
|
-
{ url = "https://files.pythonhosted.org/packages/25/4d/ab21047f446693887f25510887e6820b93f791992994f6498b0318904d4a/regex-2024.11.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1062b39a0a2b75a9c694f7a08e7183a80c63c0d62b301418ffd9c35f55aaa114", size = 792121 },
|
856
|
-
{ url = "https://files.pythonhosted.org/packages/45/ee/c867e15cd894985cb32b731d89576c41a4642a57850c162490ea34b78c3b/regex-2024.11.6-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:167ed4852351d8a750da48712c3930b031f6efdaa0f22fa1933716bfcd6bf4a3", size = 831275 },
|
857
|
-
{ url = "https://files.pythonhosted.org/packages/b3/12/b0f480726cf1c60f6536fa5e1c95275a77624f3ac8fdccf79e6727499e28/regex-2024.11.6-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2d548dafee61f06ebdb584080621f3e0c23fff312f0de1afc776e2a2ba99a74f", size = 818257 },
|
858
|
-
{ url = "https://files.pythonhosted.org/packages/bf/ce/0d0e61429f603bac433910d99ef1a02ce45a8967ffbe3cbee48599e62d88/regex-2024.11.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2a19f302cd1ce5dd01a9099aaa19cae6173306d1302a43b627f62e21cf18ac0", size = 792727 },
|
859
|
-
{ url = "https://files.pythonhosted.org/packages/e4/c1/243c83c53d4a419c1556f43777ccb552bccdf79d08fda3980e4e77dd9137/regex-2024.11.6-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bec9931dfb61ddd8ef2ebc05646293812cb6b16b60cf7c9511a832b6f1854b55", size = 780667 },
|
860
|
-
{ url = "https://files.pythonhosted.org/packages/c5/f4/75eb0dd4ce4b37f04928987f1d22547ddaf6c4bae697623c1b05da67a8aa/regex-2024.11.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:9714398225f299aa85267fd222f7142fcb5c769e73d7733344efc46f2ef5cf89", size = 776963 },
|
861
|
-
{ url = "https://files.pythonhosted.org/packages/16/5d/95c568574e630e141a69ff8a254c2f188b4398e813c40d49228c9bbd9875/regex-2024.11.6-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:202eb32e89f60fc147a41e55cb086db2a3f8cb82f9a9a88440dcfc5d37faae8d", size = 784700 },
|
862
|
-
{ url = "https://files.pythonhosted.org/packages/8e/b5/f8495c7917f15cc6fee1e7f395e324ec3e00ab3c665a7dc9d27562fd5290/regex-2024.11.6-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:4181b814e56078e9b00427ca358ec44333765f5ca1b45597ec7446d3a1ef6e34", size = 848592 },
|
863
|
-
{ url = "https://files.pythonhosted.org/packages/1c/80/6dd7118e8cb212c3c60b191b932dc57db93fb2e36fb9e0e92f72a5909af9/regex-2024.11.6-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:068376da5a7e4da51968ce4c122a7cd31afaaec4fccc7856c92f63876e57b51d", size = 852929 },
|
864
|
-
{ url = "https://files.pythonhosted.org/packages/11/9b/5a05d2040297d2d254baf95eeeb6df83554e5e1df03bc1a6687fc4ba1f66/regex-2024.11.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ac10f2c4184420d881a3475fb2c6f4d95d53a8d50209a2500723d831036f7c45", size = 781213 },
|
865
|
-
{ url = "https://files.pythonhosted.org/packages/26/b7/b14e2440156ab39e0177506c08c18accaf2b8932e39fb092074de733d868/regex-2024.11.6-cp311-cp311-win32.whl", hash = "sha256:c36f9b6f5f8649bb251a5f3f66564438977b7ef8386a52460ae77e6070d309d9", size = 261734 },
|
866
|
-
{ url = "https://files.pythonhosted.org/packages/80/32/763a6cc01d21fb3819227a1cc3f60fd251c13c37c27a73b8ff4315433a8e/regex-2024.11.6-cp311-cp311-win_amd64.whl", hash = "sha256:02e28184be537f0e75c1f9b2f8847dc51e08e6e171c6bde130b2687e0c33cf60", size = 274052 },
|
867
|
-
{ url = "https://files.pythonhosted.org/packages/ba/30/9a87ce8336b172cc232a0db89a3af97929d06c11ceaa19d97d84fa90a8f8/regex-2024.11.6-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:52fb28f528778f184f870b7cf8f225f5eef0a8f6e3778529bdd40c7b3920796a", size = 483781 },
|
868
|
-
{ url = "https://files.pythonhosted.org/packages/01/e8/00008ad4ff4be8b1844786ba6636035f7ef926db5686e4c0f98093612add/regex-2024.11.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:fdd6028445d2460f33136c55eeb1f601ab06d74cb3347132e1c24250187500d9", size = 288455 },
|
869
|
-
{ url = "https://files.pythonhosted.org/packages/60/85/cebcc0aff603ea0a201667b203f13ba75d9fc8668fab917ac5b2de3967bc/regex-2024.11.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:805e6b60c54bf766b251e94526ebad60b7de0c70f70a4e6210ee2891acb70bf2", size = 284759 },
|
870
|
-
{ url = "https://files.pythonhosted.org/packages/94/2b/701a4b0585cb05472a4da28ee28fdfe155f3638f5e1ec92306d924e5faf0/regex-2024.11.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b85c2530be953a890eaffde05485238f07029600e8f098cdf1848d414a8b45e4", size = 794976 },
|
871
|
-
{ url = "https://files.pythonhosted.org/packages/4b/bf/fa87e563bf5fee75db8915f7352e1887b1249126a1be4813837f5dbec965/regex-2024.11.6-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bb26437975da7dc36b7efad18aa9dd4ea569d2357ae6b783bf1118dabd9ea577", size = 833077 },
|
872
|
-
{ url = "https://files.pythonhosted.org/packages/a1/56/7295e6bad94b047f4d0834e4779491b81216583c00c288252ef625c01d23/regex-2024.11.6-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:abfa5080c374a76a251ba60683242bc17eeb2c9818d0d30117b4486be10c59d3", size = 823160 },
|
873
|
-
{ url = "https://files.pythonhosted.org/packages/fb/13/e3b075031a738c9598c51cfbc4c7879e26729c53aa9cca59211c44235314/regex-2024.11.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b7fa6606c2881c1db9479b0eaa11ed5dfa11c8d60a474ff0e095099f39d98e", size = 796896 },
|
874
|
-
{ url = "https://files.pythonhosted.org/packages/24/56/0b3f1b66d592be6efec23a795b37732682520b47c53da5a32c33ed7d84e3/regex-2024.11.6-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0c32f75920cf99fe6b6c539c399a4a128452eaf1af27f39bce8909c9a3fd8cbe", size = 783997 },
|
875
|
-
{ url = "https://files.pythonhosted.org/packages/f9/a1/eb378dada8b91c0e4c5f08ffb56f25fcae47bf52ad18f9b2f33b83e6d498/regex-2024.11.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:982e6d21414e78e1f51cf595d7f321dcd14de1f2881c5dc6a6e23bbbbd68435e", size = 781725 },
|
876
|
-
{ url = "https://files.pythonhosted.org/packages/83/f2/033e7dec0cfd6dda93390089864732a3409246ffe8b042e9554afa9bff4e/regex-2024.11.6-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a7c2155f790e2fb448faed6dd241386719802296ec588a8b9051c1f5c481bc29", size = 789481 },
|
877
|
-
{ url = "https://files.pythonhosted.org/packages/83/23/15d4552ea28990a74e7696780c438aadd73a20318c47e527b47a4a5a596d/regex-2024.11.6-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:149f5008d286636e48cd0b1dd65018548944e495b0265b45e1bffecce1ef7f39", size = 852896 },
|
878
|
-
{ url = "https://files.pythonhosted.org/packages/e3/39/ed4416bc90deedbfdada2568b2cb0bc1fdb98efe11f5378d9892b2a88f8f/regex-2024.11.6-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:e5364a4502efca094731680e80009632ad6624084aff9a23ce8c8c6820de3e51", size = 860138 },
|
879
|
-
{ url = "https://files.pythonhosted.org/packages/93/2d/dd56bb76bd8e95bbce684326302f287455b56242a4f9c61f1bc76e28360e/regex-2024.11.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0a86e7eeca091c09e021db8eb72d54751e527fa47b8d5787caf96d9831bd02ad", size = 787692 },
|
880
|
-
{ url = "https://files.pythonhosted.org/packages/0b/55/31877a249ab7a5156758246b9c59539abbeba22461b7d8adc9e8475ff73e/regex-2024.11.6-cp312-cp312-win32.whl", hash = "sha256:32f9a4c643baad4efa81d549c2aadefaeba12249b2adc5af541759237eee1c54", size = 262135 },
|
881
|
-
{ url = "https://files.pythonhosted.org/packages/38/ec/ad2d7de49a600cdb8dd78434a1aeffe28b9d6fc42eb36afab4a27ad23384/regex-2024.11.6-cp312-cp312-win_amd64.whl", hash = "sha256:a93c194e2df18f7d264092dc8539b8ffb86b45b899ab976aa15d48214138e81b", size = 273567 },
|
882
|
-
{ url = "https://files.pythonhosted.org/packages/90/73/bcb0e36614601016552fa9344544a3a2ae1809dc1401b100eab02e772e1f/regex-2024.11.6-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a6ba92c0bcdf96cbf43a12c717eae4bc98325ca3730f6b130ffa2e3c3c723d84", size = 483525 },
|
883
|
-
{ url = "https://files.pythonhosted.org/packages/0f/3f/f1a082a46b31e25291d830b369b6b0c5576a6f7fb89d3053a354c24b8a83/regex-2024.11.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:525eab0b789891ac3be914d36893bdf972d483fe66551f79d3e27146191a37d4", size = 288324 },
|
884
|
-
{ url = "https://files.pythonhosted.org/packages/09/c9/4e68181a4a652fb3ef5099e077faf4fd2a694ea6e0f806a7737aff9e758a/regex-2024.11.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:086a27a0b4ca227941700e0b31425e7a28ef1ae8e5e05a33826e17e47fbfdba0", size = 284617 },
|
885
|
-
{ url = "https://files.pythonhosted.org/packages/fc/fd/37868b75eaf63843165f1d2122ca6cb94bfc0271e4428cf58c0616786dce/regex-2024.11.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bde01f35767c4a7899b7eb6e823b125a64de314a8ee9791367c9a34d56af18d0", size = 795023 },
|
886
|
-
{ url = "https://files.pythonhosted.org/packages/c4/7c/d4cd9c528502a3dedb5c13c146e7a7a539a3853dc20209c8e75d9ba9d1b2/regex-2024.11.6-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b583904576650166b3d920d2bcce13971f6f9e9a396c673187f49811b2769dc7", size = 833072 },
|
887
|
-
{ url = "https://files.pythonhosted.org/packages/4f/db/46f563a08f969159c5a0f0e722260568425363bea43bb7ae370becb66a67/regex-2024.11.6-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1c4de13f06a0d54fa0d5ab1b7138bfa0d883220965a29616e3ea61b35d5f5fc7", size = 823130 },
|
888
|
-
{ url = "https://files.pythonhosted.org/packages/db/60/1eeca2074f5b87df394fccaa432ae3fc06c9c9bfa97c5051aed70e6e00c2/regex-2024.11.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3cde6e9f2580eb1665965ce9bf17ff4952f34f5b126beb509fee8f4e994f143c", size = 796857 },
|
889
|
-
{ url = "https://files.pythonhosted.org/packages/10/db/ac718a08fcee981554d2f7bb8402f1faa7e868c1345c16ab1ebec54b0d7b/regex-2024.11.6-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0d7f453dca13f40a02b79636a339c5b62b670141e63efd511d3f8f73fba162b3", size = 784006 },
|
890
|
-
{ url = "https://files.pythonhosted.org/packages/c2/41/7da3fe70216cea93144bf12da2b87367590bcf07db97604edeea55dac9ad/regex-2024.11.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:59dfe1ed21aea057a65c6b586afd2a945de04fc7db3de0a6e3ed5397ad491b07", size = 781650 },
|
891
|
-
{ url = "https://files.pythonhosted.org/packages/a7/d5/880921ee4eec393a4752e6ab9f0fe28009435417c3102fc413f3fe81c4e5/regex-2024.11.6-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:b97c1e0bd37c5cd7902e65f410779d39eeda155800b65fc4d04cc432efa9bc6e", size = 789545 },
|
892
|
-
{ url = "https://files.pythonhosted.org/packages/dc/96/53770115e507081122beca8899ab7f5ae28ae790bfcc82b5e38976df6a77/regex-2024.11.6-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:f9d1e379028e0fc2ae3654bac3cbbef81bf3fd571272a42d56c24007979bafb6", size = 853045 },
|
893
|
-
{ url = "https://files.pythonhosted.org/packages/31/d3/1372add5251cc2d44b451bd94f43b2ec78e15a6e82bff6a290ef9fd8f00a/regex-2024.11.6-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:13291b39131e2d002a7940fb176e120bec5145f3aeb7621be6534e46251912c4", size = 860182 },
|
894
|
-
{ url = "https://files.pythonhosted.org/packages/ed/e3/c446a64984ea9f69982ba1a69d4658d5014bc7a0ea468a07e1a1265db6e2/regex-2024.11.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4f51f88c126370dcec4908576c5a627220da6c09d0bff31cfa89f2523843316d", size = 787733 },
|
895
|
-
{ url = "https://files.pythonhosted.org/packages/2b/f1/e40c8373e3480e4f29f2692bd21b3e05f296d3afebc7e5dcf21b9756ca1c/regex-2024.11.6-cp313-cp313-win32.whl", hash = "sha256:63b13cfd72e9601125027202cad74995ab26921d8cd935c25f09c630436348ff", size = 262122 },
|
896
|
-
{ url = "https://files.pythonhosted.org/packages/45/94/bc295babb3062a731f52621cdc992d123111282e291abaf23faa413443ea/regex-2024.11.6-cp313-cp313-win_amd64.whl", hash = "sha256:2b3361af3198667e99927da8b84c1b010752fa4b1115ee30beaa332cabc3ef1a", size = 273545 },
|
897
|
-
]
|
898
|
-
|
899
923
|
[[package]]
|
900
924
|
name = "requests"
|
901
925
|
version = "2.32.3"
|
@@ -913,27 +937,27 @@ wheels = [
|
|
913
937
|
|
914
938
|
[[package]]
|
915
939
|
name = "ruff"
|
916
|
-
version = "0.9.
|
940
|
+
version = "0.9.9"
|
917
941
|
source = { registry = "https://pypi.org/simple" }
|
918
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
942
|
+
sdist = { url = "https://files.pythonhosted.org/packages/6f/c3/418441a8170e8d53d05c0b9dad69760dbc7b8a12c10dbe6db1e1205d2377/ruff-0.9.9.tar.gz", hash = "sha256:0062ed13f22173e85f8f7056f9a24016e692efeea8704d1a5e8011b8aa850933", size = 3717448 }
|
919
943
|
wheels = [
|
920
|
-
{ url = "https://files.pythonhosted.org/packages/
|
921
|
-
{ url = "https://files.pythonhosted.org/packages/
|
922
|
-
{ url = "https://files.pythonhosted.org/packages/
|
923
|
-
{ url = "https://files.pythonhosted.org/packages/
|
924
|
-
{ url = "https://files.pythonhosted.org/packages/
|
925
|
-
{ url = "https://files.pythonhosted.org/packages/
|
926
|
-
{ url = "https://files.pythonhosted.org/packages/
|
927
|
-
{ url = "https://files.pythonhosted.org/packages/
|
928
|
-
{ url = "https://files.pythonhosted.org/packages/
|
929
|
-
{ url = "https://files.pythonhosted.org/packages/
|
930
|
-
{ url = "https://files.pythonhosted.org/packages/
|
931
|
-
{ url = "https://files.pythonhosted.org/packages/
|
932
|
-
{ url = "https://files.pythonhosted.org/packages/
|
933
|
-
{ url = "https://files.pythonhosted.org/packages/
|
934
|
-
{ url = "https://files.pythonhosted.org/packages/
|
935
|
-
{ url = "https://files.pythonhosted.org/packages/
|
936
|
-
{ url = "https://files.pythonhosted.org/packages/
|
944
|
+
{ url = "https://files.pythonhosted.org/packages/bc/c3/2c4afa9ba467555d074b146d9aed0633a56ccdb900839fb008295d037b89/ruff-0.9.9-py3-none-linux_armv6l.whl", hash = "sha256:628abb5ea10345e53dff55b167595a159d3e174d6720bf19761f5e467e68d367", size = 10027252 },
|
945
|
+
{ url = "https://files.pythonhosted.org/packages/33/d1/439e58487cf9eac26378332e25e7d5ade4b800ce1eec7dc2cfc9b0d7ca96/ruff-0.9.9-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:b6cd1428e834b35d7493354723543b28cc11dc14d1ce19b685f6e68e07c05ec7", size = 10840721 },
|
946
|
+
{ url = "https://files.pythonhosted.org/packages/50/44/fead822c38281ba0122f1b76b460488a175a9bd48b130650a6fb6dbcbcf9/ruff-0.9.9-py3-none-macosx_11_0_arm64.whl", hash = "sha256:5ee162652869120ad260670706f3cd36cd3f32b0c651f02b6da142652c54941d", size = 10161439 },
|
947
|
+
{ url = "https://files.pythonhosted.org/packages/11/ae/d404a2ab8e61ddf6342e09cc6b7f7846cce6b243e45c2007dbe0ca928a5d/ruff-0.9.9-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3aa0f6b75082c9be1ec5a1db78c6d4b02e2375c3068438241dc19c7c306cc61a", size = 10336264 },
|
948
|
+
{ url = "https://files.pythonhosted.org/packages/6a/4e/7c268aa7d84cd709fb6f046b8972313142cffb40dfff1d2515c5e6288d54/ruff-0.9.9-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:584cc66e89fb5f80f84b05133dd677a17cdd86901d6479712c96597a3f28e7fe", size = 9908774 },
|
949
|
+
{ url = "https://files.pythonhosted.org/packages/cc/26/c618a878367ef1b76270fd027ca93692657d3f6122b84ba48911ef5f2edc/ruff-0.9.9-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:abf3369325761a35aba75cd5c55ba1b5eb17d772f12ab168fbfac54be85cf18c", size = 11428127 },
|
950
|
+
{ url = "https://files.pythonhosted.org/packages/d7/9a/c5588a93d9bfed29f565baf193fe802fa676a0c837938137ea6cf0576d8c/ruff-0.9.9-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:3403a53a32a90ce929aa2f758542aca9234befa133e29f4933dcef28a24317be", size = 12133187 },
|
951
|
+
{ url = "https://files.pythonhosted.org/packages/3e/ff/e7980a7704a60905ed7e156a8d73f604c846d9bd87deda9cabfa6cba073a/ruff-0.9.9-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:18454e7fa4e4d72cffe28a37cf6a73cb2594f81ec9f4eca31a0aaa9ccdfb1590", size = 11602937 },
|
952
|
+
{ url = "https://files.pythonhosted.org/packages/24/78/3690444ad9e3cab5c11abe56554c35f005b51d1d118b429765249095269f/ruff-0.9.9-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0fadfe2c88724c9617339f62319ed40dcdadadf2888d5afb88bf3adee7b35bfb", size = 13771698 },
|
953
|
+
{ url = "https://files.pythonhosted.org/packages/6e/bf/e477c2faf86abe3988e0b5fd22a7f3520e820b2ee335131aca2e16120038/ruff-0.9.9-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6df104d08c442a1aabcfd254279b8cc1e2cbf41a605aa3e26610ba1ec4acf0b0", size = 11249026 },
|
954
|
+
{ url = "https://files.pythonhosted.org/packages/f7/82/cdaffd59e5a8cb5b14c408c73d7a555a577cf6645faaf83e52fe99521715/ruff-0.9.9-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:d7c62939daf5b2a15af48abbd23bea1efdd38c312d6e7c4cedf5a24e03207e17", size = 10220432 },
|
955
|
+
{ url = "https://files.pythonhosted.org/packages/fe/a4/2507d0026225efa5d4412b6e294dfe54725a78652a5c7e29e6bd0fc492f3/ruff-0.9.9-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:9494ba82a37a4b81b6a798076e4a3251c13243fc37967e998efe4cce58c8a8d1", size = 9874602 },
|
956
|
+
{ url = "https://files.pythonhosted.org/packages/d5/be/f3aab1813846b476c4bcffe052d232244979c3cd99d751c17afb530ca8e4/ruff-0.9.9-py3-none-musllinux_1_2_i686.whl", hash = "sha256:4efd7a96ed6d36ef011ae798bf794c5501a514be369296c672dab7921087fa57", size = 10851212 },
|
957
|
+
{ url = "https://files.pythonhosted.org/packages/8b/45/8e5fd559bea0d2f57c4e12bf197a2fade2fac465aa518284f157dfbca92b/ruff-0.9.9-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:ab90a7944c5a1296f3ecb08d1cbf8c2da34c7e68114b1271a431a3ad30cb660e", size = 11327490 },
|
958
|
+
{ url = "https://files.pythonhosted.org/packages/42/55/e6c90f13880aeef327746052907e7e930681f26a164fe130ddac28b08269/ruff-0.9.9-py3-none-win32.whl", hash = "sha256:6b4c376d929c25ecd6d87e182a230fa4377b8e5125a4ff52d506ee8c087153c1", size = 10227912 },
|
959
|
+
{ url = "https://files.pythonhosted.org/packages/35/b2/da925693cb82a1208aa34966c0f36cb222baca94e729dd22a587bc22d0f3/ruff-0.9.9-py3-none-win_amd64.whl", hash = "sha256:837982ea24091d4c1700ddb2f63b7070e5baec508e43b01de013dc7eff974ff1", size = 11355632 },
|
960
|
+
{ url = "https://files.pythonhosted.org/packages/31/d8/de873d1c1b020d668d8ec9855d390764cb90cf8f6486c0983da52be8b7b7/ruff-0.9.9-py3-none-win_arm64.whl", hash = "sha256:3ac78f127517209fe6d96ab00f3ba97cafe38718b23b1db3e96d8b2d39e37ddf", size = 10435860 },
|
937
961
|
]
|
938
962
|
|
939
963
|
[[package]]
|
@@ -956,14 +980,14 @@ wheels = [
|
|
956
980
|
|
957
981
|
[[package]]
|
958
982
|
name = "starlette"
|
959
|
-
version = "0.
|
983
|
+
version = "0.46.0"
|
960
984
|
source = { registry = "https://pypi.org/simple" }
|
961
985
|
dependencies = [
|
962
986
|
{ name = "anyio" },
|
963
987
|
]
|
964
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
988
|
+
sdist = { url = "https://files.pythonhosted.org/packages/44/b6/fb9a32e3c5d59b1e383c357534c63c2d3caa6f25bf3c59dd89d296ecbaec/starlette-0.46.0.tar.gz", hash = "sha256:b359e4567456b28d473d0193f34c0de0ed49710d75ef183a74a5ce0499324f50", size = 2575568 }
|
965
989
|
wheels = [
|
966
|
-
{ url = "https://files.pythonhosted.org/packages/
|
990
|
+
{ url = "https://files.pythonhosted.org/packages/41/94/8af675a62e3c91c2dee47cf92e602cfac86e8767b1a1ac3caf1b327c2ab0/starlette-0.46.0-py3-none-any.whl", hash = "sha256:913f0798bd90ba90a9156383bcf1350a17d6259451d0d8ee27fc0cf2db609038", size = 71991 },
|
967
991
|
]
|
968
992
|
|
969
993
|
[[package]]
|
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
|
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
|
File without changes
|