graphql-api 1.6.9__tar.gz → 1.6.10__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.
- {graphql_api-1.6.9 → graphql_api-1.6.10}/PKG-INFO +1 -1
- graphql_api-1.6.10/VERSION +1 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/graphql_api/executor.py +14 -2
- {graphql_api-1.6.9 → graphql_api-1.6.10}/graphql_api.egg-info/PKG-INFO +1 -1
- {graphql_api-1.6.9 → graphql_api-1.6.10}/graphql_api.egg-info/SOURCES.txt +1 -0
- graphql_api-1.6.10/tests/test_executor_signature.py +116 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/tests/test_performance.py +16 -10
- {graphql_api-1.6.9 → graphql_api-1.6.10}/uv.lock +59 -55
- graphql_api-1.6.9/VERSION +0 -1
- {graphql_api-1.6.9 → graphql_api-1.6.10}/.github/workflows/pages.yml +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/.github/workflows/python-package.yml +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/.gitignore +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/.vscode/settings.json +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/AGENTS.md +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/CLAUDE.md +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/LICENSE +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/README.md +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/docs/README.md +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/docs/content/_index.md +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/docs/content/docs/_index.md +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/docs/content/docs/advanced-features/_index.md +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/docs/content/docs/advanced-features/directives.md +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/docs/content/docs/advanced-features/performance.md +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/docs/content/docs/advanced-features/schema-filtering.md +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/docs/content/docs/building-applications/_index.md +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/docs/content/docs/building-applications/documentation.md +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/docs/content/docs/building-applications/error-handling.md +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/docs/content/docs/distributed-systems/_index.md +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/docs/content/docs/distributed-systems/federation.md +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/docs/content/docs/distributed-systems/pagination-relay.md +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/docs/content/docs/distributed-systems/remote-graphql.md +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/docs/content/docs/fundamentals/_index.md +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/docs/content/docs/fundamentals/async-and-subscriptions.md +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/docs/content/docs/fundamentals/defining-schemas.md +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/docs/content/docs/fundamentals/enums-interfaces.md +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/docs/content/docs/fundamentals/field-types.md +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/docs/content/docs/fundamentals/getting-started.md +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/docs/content/docs/fundamentals/mutations.md +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/docs/content/docs/fundamentals/object-types.md +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/docs/content/docs/fundamentals/pydantic-and-dataclasses.md +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/docs/content/docs/production/_index.md +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/docs/content/docs/production/context-metadata.md +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/docs/content/docs/production/middleware.md +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/docs/content/docs/reference/_index.md +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/docs/content/docs/reference/api-reference.md +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/docs/content/docs/reference/contributing.md +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/docs/content/docs/reference/examples.md +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/docs/hugo.toml +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/docs/index.md +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/graphql_api/__init__.py +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/graphql_api/api.py +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/graphql_api/context.py +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/graphql_api/dataclass_mapping.py +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/graphql_api/decorators.py +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/graphql_api/directives.py +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/graphql_api/error.py +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/graphql_api/exception.py +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/graphql_api/federation/__init__.py +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/graphql_api/federation/directives.py +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/graphql_api/federation/federation.py +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/graphql_api/federation/types.py +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/graphql_api/mapper.py +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/graphql_api/middleware.py +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/graphql_api/mutation_schema.py +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/graphql_api/pydantic.py +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/graphql_api/pydantic_utils.py +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/graphql_api/reduce.py +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/graphql_api/relay.py +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/graphql_api/remote.py +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/graphql_api/schema.py +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/graphql_api/schema_filter.py +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/graphql_api/type_utils.py +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/graphql_api/types.py +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/graphql_api/utils.py +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/graphql_api.egg-info/dependency_links.txt +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/graphql_api.egg-info/requires.txt +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/graphql_api.egg-info/top_level.txt +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/pyproject.toml +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/setup.cfg +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/tests/__init__.py +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/tests/test_async.py +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/tests/test_calculator.py +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/tests/test_custom_suffixes.py +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/tests/test_custom_types.py +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/tests/test_dataclass.py +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/tests/test_dataclass_relationships.py +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/tests/test_decorator_patterns.py +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/tests/test_directives.py +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/tests/test_docs_advanced.py +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/tests/test_docs_async_subscriptions.py +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/tests/test_docs_defining_schemas.py +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/tests/test_docs_field_types.py +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/tests/test_docs_getting_started.py +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/tests/test_docs_relay.py +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/tests/test_docstrings.py +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/tests/test_error.py +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/tests/test_federation.py +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/tests/test_federation_example.graphql +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/tests/test_federation_example.py +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/tests/test_filtering.py +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/tests/test_graphql.py +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/tests/test_middleware.py +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/tests/test_plain_functions.py +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/tests/test_pydantic.py +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/tests/test_relay.py +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/tests/test_remote.py +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/tests/test_schema.py +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/tests/test_subscriptions.py +0 -0
- {graphql_api-1.6.9 → graphql_api-1.6.10}/tests/test_unified_vs_explicit_schema.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1.6.10
|
|
@@ -68,10 +68,21 @@ class ErrorProtectionExecutionContext(ExecutionContext):
|
|
|
68
68
|
self,
|
|
69
69
|
error: GraphQLError,
|
|
70
70
|
return_type: GraphQLOutputType,
|
|
71
|
+
*args: Any,
|
|
72
|
+
**kwargs: Any,
|
|
71
73
|
) -> None:
|
|
72
74
|
"""
|
|
73
75
|
Intercept field errors to decide whether to raise or suppress them based on the
|
|
74
76
|
'error_protection' attribute, either on the error or its original error.
|
|
77
|
+
|
|
78
|
+
Anything after ``return_type`` is forwarded to graphql-core untouched.
|
|
79
|
+
graphql-core added a ``path`` argument to this method in 3.2.8, and an
|
|
80
|
+
override with a fixed arity turns every field error into a TypeError
|
|
81
|
+
raised from inside the executor — so the resolver's real error never
|
|
82
|
+
reaches the caller and a validation failure reads as a crash. Since
|
|
83
|
+
this class exists precisely to sit in the error path, it must not be
|
|
84
|
+
the thing that breaks it: accepting whatever the installed version
|
|
85
|
+
passes keeps it working across both signatures.
|
|
75
86
|
"""
|
|
76
87
|
error_protection = self.default_error_protection
|
|
77
88
|
original_error = error.original_error
|
|
@@ -86,8 +97,9 @@ class ErrorProtectionExecutionContext(ExecutionContext):
|
|
|
86
97
|
if not error_protection:
|
|
87
98
|
raise error.original_error if error.original_error is not None else error
|
|
88
99
|
|
|
89
|
-
# Otherwise, call the default error handler
|
|
90
|
-
|
|
100
|
+
# Otherwise, call the default error handler. Positionally, because the
|
|
101
|
+
# trailing arguments differ by version and only the caller knows them.
|
|
102
|
+
return super().handle_field_error(error, return_type, *args, **kwargs)
|
|
91
103
|
|
|
92
104
|
|
|
93
105
|
class NoErrorProtectionExecutionContext(ErrorProtectionExecutionContext):
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
"""The error path must survive graphql-core changing under us.
|
|
2
|
+
|
|
3
|
+
`ErrorProtectionExecutionContext` overrides `handle_field_error`, which
|
|
4
|
+
graphql-core calls positionally from inside the executor. graphql-core added a
|
|
5
|
+
`path` argument to it in 3.2.8; the override kept its three-argument shape, and
|
|
6
|
+
the result was that **every** field error became a `TypeError` raised from
|
|
7
|
+
inside the executor. A resolver raising `ValueError("title is required")` came
|
|
8
|
+
back to the caller as a crash with no message — the one thing an error path
|
|
9
|
+
must never do.
|
|
10
|
+
|
|
11
|
+
It went unnoticed because this library's own environment resolves an older
|
|
12
|
+
graphql-core than its consumers do, so the existing error tests all pass here
|
|
13
|
+
and fail there. Asserting against a pinned signature would repeat that mistake,
|
|
14
|
+
so these tests ask the *installed* graphql-core what it expects and check the
|
|
15
|
+
override against that.
|
|
16
|
+
"""
|
|
17
|
+
|
|
18
|
+
from __future__ import annotations
|
|
19
|
+
|
|
20
|
+
import inspect
|
|
21
|
+
|
|
22
|
+
from graphql import GraphQLError, GraphQLInt
|
|
23
|
+
from graphql.execution.execute import ExecutionContext
|
|
24
|
+
from graphql.pyutils import Path
|
|
25
|
+
|
|
26
|
+
from graphql_api.api import GraphQLAPI
|
|
27
|
+
from graphql_api.executor import (
|
|
28
|
+
ErrorProtectionExecutionContext,
|
|
29
|
+
NoErrorProtectionExecutionContext,
|
|
30
|
+
)
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
def _accepted_arity(func) -> int:
|
|
34
|
+
"""How many positional arguments this method takes, `self` excluded."""
|
|
35
|
+
parameters = [
|
|
36
|
+
p for name, p in inspect.signature(func).parameters.items()
|
|
37
|
+
if name != "self"
|
|
38
|
+
]
|
|
39
|
+
return sum(
|
|
40
|
+
1 for p in parameters
|
|
41
|
+
if p.kind in (p.POSITIONAL_ONLY, p.POSITIONAL_OR_KEYWORD)
|
|
42
|
+
)
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
class TestHandleFieldErrorSignature:
|
|
46
|
+
def test_override_accepts_everything_graphql_core_passes(self) -> None:
|
|
47
|
+
"""The override must be callable however the installed version calls it."""
|
|
48
|
+
expected = _accepted_arity(ExecutionContext.handle_field_error)
|
|
49
|
+
override = inspect.signature(
|
|
50
|
+
ErrorProtectionExecutionContext.handle_field_error
|
|
51
|
+
)
|
|
52
|
+
# Either the arities match, or the override absorbs the difference.
|
|
53
|
+
absorbs = any(
|
|
54
|
+
p.kind is p.VAR_POSITIONAL for p in override.parameters.values()
|
|
55
|
+
)
|
|
56
|
+
assert absorbs or _accepted_arity(
|
|
57
|
+
ErrorProtectionExecutionContext.handle_field_error
|
|
58
|
+
) == expected, (
|
|
59
|
+
f"graphql-core passes {expected} positional argument(s) to "
|
|
60
|
+
f"handle_field_error; the override does not accept them"
|
|
61
|
+
)
|
|
62
|
+
|
|
63
|
+
def test_survives_being_called_the_way_the_executor_calls_it(self) -> None:
|
|
64
|
+
"""A direct call with graphql-core's own argument list.
|
|
65
|
+
|
|
66
|
+
This is the exact call that was raising TypeError in production.
|
|
67
|
+
"""
|
|
68
|
+
context = ErrorProtectionExecutionContext.__new__(
|
|
69
|
+
ErrorProtectionExecutionContext
|
|
70
|
+
)
|
|
71
|
+
error = GraphQLError("boom", original_error=ValueError("boom"))
|
|
72
|
+
args = [error, GraphQLInt]
|
|
73
|
+
if _accepted_arity(ExecutionContext.handle_field_error) > 2:
|
|
74
|
+
# graphql-core >= 3.2.8 also passes the field's path.
|
|
75
|
+
args.append(Path(None, "field", None))
|
|
76
|
+
|
|
77
|
+
# Nullable return type, so the error is collected rather than re-raised;
|
|
78
|
+
# the point is only that the call itself is well-formed.
|
|
79
|
+
context.errors = []
|
|
80
|
+
try:
|
|
81
|
+
context.handle_field_error(*args)
|
|
82
|
+
except TypeError as exc: # pragma: no cover - this is the regression
|
|
83
|
+
raise AssertionError(
|
|
84
|
+
f"handle_field_error rejected graphql-core's own call: {exc}"
|
|
85
|
+
) from exc
|
|
86
|
+
except Exception:
|
|
87
|
+
# Any GraphQL-level outcome is fine; a TypeError is not.
|
|
88
|
+
pass
|
|
89
|
+
|
|
90
|
+
def test_the_no_protection_variant_inherits_the_same_shape(self) -> None:
|
|
91
|
+
assert (
|
|
92
|
+
NoErrorProtectionExecutionContext.handle_field_error
|
|
93
|
+
is ErrorProtectionExecutionContext.handle_field_error
|
|
94
|
+
)
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
class TestResolverErrorsReachTheCaller:
|
|
98
|
+
def test_a_raising_resolver_produces_a_graphql_error_not_a_crash(self) -> None:
|
|
99
|
+
"""End to end: the shape every consumer actually depends on.
|
|
100
|
+
|
|
101
|
+
A validating resolver — "status must be one of …" — has to come back as
|
|
102
|
+
a GraphQL error carrying its message, or callers cannot tell a bad
|
|
103
|
+
argument from a broken server.
|
|
104
|
+
"""
|
|
105
|
+
api = GraphQLAPI()
|
|
106
|
+
|
|
107
|
+
@api.type(is_root_type=True)
|
|
108
|
+
class Root:
|
|
109
|
+
@api.field
|
|
110
|
+
def set_status(self, status: str) -> bool:
|
|
111
|
+
raise ValueError(f"status must be one of ['open', 'closed'], got {status!r}")
|
|
112
|
+
|
|
113
|
+
result = api.execute('query { setStatus(status: "banana") }')
|
|
114
|
+
|
|
115
|
+
assert result.errors, "the resolver's error never reached the caller"
|
|
116
|
+
assert "status must be one of" in str(result.errors[0])
|
|
@@ -601,23 +601,29 @@ class TestSchemaRebuilding:
|
|
|
601
601
|
return []
|
|
602
602
|
|
|
603
603
|
times = []
|
|
604
|
-
for i in range(
|
|
604
|
+
for i in range(14):
|
|
605
605
|
start_time = time.perf_counter()
|
|
606
606
|
api = GraphQLAPI(root_type=API)
|
|
607
607
|
schema, _ = api.build()
|
|
608
608
|
end_time = time.perf_counter()
|
|
609
609
|
times.append((end_time - start_time) * 1000)
|
|
610
610
|
|
|
611
|
-
|
|
611
|
+
# Drop warm-up iterations (imports, first-touch caches), then compare
|
|
612
|
+
# the medians of the early and late halves. Comparing two single
|
|
613
|
+
# sub-millisecond samples is scheduler noise on shared CI runners and
|
|
614
|
+
# produced false failures.
|
|
615
|
+
warm = times[2:]
|
|
616
|
+
half = len(warm) // 2
|
|
617
|
+
early = sorted(warm[:half])[half // 2]
|
|
618
|
+
late = sorted(warm[half:])[half // 2]
|
|
619
|
+
|
|
620
|
+
print(f"\n{len(times)} repeated schema builds:")
|
|
612
621
|
print(f" Times: {[f'{t:.2f}' for t in times]}")
|
|
613
|
-
print(f"
|
|
614
|
-
|
|
615
|
-
# Later builds should not
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
last_build = times[-1]
|
|
619
|
-
assert last_build < first_build * 1.5, \
|
|
620
|
-
f"Performance degradation: first={first_build:.2f}ms, last={last_build:.2f}ms"
|
|
622
|
+
print(f" Early median: {early:.2f}ms, late median: {late:.2f}ms")
|
|
623
|
+
|
|
624
|
+
# Later builds should not degrade relative to earlier ones.
|
|
625
|
+
assert late < early * 2 + 1.0, \
|
|
626
|
+
f"Performance degradation: early median={early:.2f}ms, late median={late:.2f}ms"
|
|
621
627
|
|
|
622
628
|
|
|
623
629
|
class TestDataclassNesting:
|
|
@@ -13,7 +13,7 @@ wheels = [
|
|
|
13
13
|
|
|
14
14
|
[[package]]
|
|
15
15
|
name = "aiohttp"
|
|
16
|
-
version = "3.
|
|
16
|
+
version = "3.14.1"
|
|
17
17
|
source = { registry = "https://pypi.org/simple" }
|
|
18
18
|
dependencies = [
|
|
19
19
|
{ name = "aiohappyeyeballs" },
|
|
@@ -22,44 +22,47 @@ dependencies = [
|
|
|
22
22
|
{ name = "frozenlist" },
|
|
23
23
|
{ name = "multidict" },
|
|
24
24
|
{ name = "propcache" },
|
|
25
|
+
{ name = "typing-extensions" },
|
|
25
26
|
{ name = "yarl" },
|
|
26
27
|
]
|
|
27
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
28
|
-
wheels = [
|
|
29
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
30
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
31
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
32
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
33
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
34
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
35
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
36
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
37
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
38
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
39
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
40
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
41
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
42
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
43
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
44
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
45
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
46
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
47
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
48
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
49
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
50
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
51
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
52
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
53
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
54
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
55
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
56
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
57
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
58
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
59
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
60
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
61
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
62
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
28
|
+
sdist = { url = "https://files.pythonhosted.org/packages/82/78/8ea7308cac6934de8c74a14f3d5f65d1c89287426688be79538d0e5c013d/aiohttp-3.14.1.tar.gz", hash = "sha256:307f2cff90a764d329e77040603fa032db89c5c24fdad50c4c15334cba744035", size = 7955794 }
|
|
29
|
+
wheels = [
|
|
30
|
+
{ url = "https://files.pythonhosted.org/packages/26/dd/bf526e6f0a1120dd6f2df2e97bacfe4d358f13d17a0ff5847301a1375a51/aiohttp-3.14.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:aa00140699487bd435fde4342d85c94cb256b7cd3a5b9c3396c67f19922afda2", size = 765225 },
|
|
31
|
+
{ url = "https://files.pythonhosted.org/packages/8f/e1/a2872aa55495a70f61310d411541c6ee23812d9a884e000c716e1bc3edbf/aiohttp-3.14.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1c1af67559445498b502030c35c59db59966f47041ca9de5b4e707f86bd10b5f", size = 518743 },
|
|
32
|
+
{ url = "https://files.pythonhosted.org/packages/5b/e7/c60c7b209e509cc787de3cea0550a518538cfc08003e1c1e14c1c63fff71/aiohttp-3.14.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d44ec478e713ee7f29b439f7eb8dc2b9d4079e11ae114d2c2ac3d5daf30516c8", size = 514139 },
|
|
33
|
+
{ url = "https://files.pythonhosted.org/packages/5b/8d/614ace2f579702c9840ab1e1447fd8509e35b0b904f7196418fa2f57b25d/aiohttp-3.14.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d3b1a184a9a8f548a6b73f1e26b96b052193e4b3175ed7342aaf1151a1f00a04", size = 1784088 },
|
|
34
|
+
{ url = "https://files.pythonhosted.org/packages/49/e0/726e90f99542bf292f81a96a12cc4847deb86f3ccf62c6f4014a201f4d33/aiohttp-3.14.1-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:5f2504bc0322437c9a1ff6d3333ca56c7477b727c995f036b976ae17b98372c8", size = 1737835 },
|
|
35
|
+
{ url = "https://files.pythonhosted.org/packages/0b/4b/d176d5c4db9d33dacf0543102ea59503bc1d528af4cfd0b719949ca49389/aiohttp-3.14.1-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:73f05ea02013e02512c3bf42714f1208c57168c779cc6fe23516e4543089d0a6", size = 1842801 },
|
|
36
|
+
{ url = "https://files.pythonhosted.org/packages/dc/d6/5a99b563690ea0cbed912ae94a2ce33993a5709a651a3a4fe761e7dd973a/aiohttp-3.14.1-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:797457503c2d426bee06eef808d07b31ede30b65e054444e7de64cad0061b7af", size = 1929992 },
|
|
37
|
+
{ url = "https://files.pythonhosted.org/packages/76/7f/a987b14a3859094b3cea3f4825219c3e5536242564af6e3f9c2f6c994eb2/aiohttp-3.14.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b821a1f7dedf7e37450654e620038ac3b2e81e8fa6ea269337e97101978ec730", size = 1786989 },
|
|
38
|
+
{ url = "https://files.pythonhosted.org/packages/f1/1a/420e5c85a3e73349372ed22ce0b6af86bfa6ce16a4b20a64a2e94608c781/aiohttp-3.14.1-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:4cd96b5ba05d67ed0cf00b5b405c8cd99586d8e3481e8ee0a831057591af7621", size = 1640129 },
|
|
39
|
+
{ url = "https://files.pythonhosted.org/packages/a7/80/18a592ed3be0a402cc03670bd72ee1f8563ddbe1d8d5542dbf868f274136/aiohttp-3.14.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1d459b98a932296c6f0e94f87511a0b1b90a8a02c30a50e60a297619cd5a58ee", size = 1756576 },
|
|
40
|
+
{ url = "https://files.pythonhosted.org/packages/ec/0b/8b3d5713373858ff71a617daf6e3b0e81ad63e79d09a3cf2f6b6b983939c/aiohttp-3.14.1-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:764457a7be60825fb770a644852ff717bcbb5042f189f2bd16df61a81b3f6573", size = 1754668 },
|
|
41
|
+
{ url = "https://files.pythonhosted.org/packages/9f/49/fd564575cf225821d7ba5a117cb8bc27213d8a7e1811162afb43ae077039/aiohttp-3.14.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:f7a16ef45b081454ef844502d87a848876c490c4cb5c650c230f6ec79ed2c1e7", size = 1817019 },
|
|
42
|
+
{ url = "https://files.pythonhosted.org/packages/ed/1b/e850c9ae6fc91356552ae668bb6c51e93fa29c8aef13398a10b56678557f/aiohttp-3.14.1-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:2fbc3ed048b3475b9f0cbcb9978e9d2d3511acd91ead203af26ed9f0056004cf", size = 1631638 },
|
|
43
|
+
{ url = "https://files.pythonhosted.org/packages/eb/94/3c337ba72451a89806ace6f75bddc92bafc5b8d53d90115a512858024b63/aiohttp-3.14.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:bedb0cd073cc2dc035e30aeb99444389d3cd2113afe4ef9fcd23d439f5bade85", size = 1835660 },
|
|
44
|
+
{ url = "https://files.pythonhosted.org/packages/2b/9c/9c18cf367a0498212d9ba7daf990b504a5e8ae064cda4b504e2647c89c03/aiohttp-3.14.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b6feea921016eb3d4e04d65fc4e9ca402d1a3801f562aef94989f54694917af3", size = 1775698 },
|
|
45
|
+
{ url = "https://files.pythonhosted.org/packages/b5/63/a251a9d2a6cb45065b2ddc0bde2b3dd10108740a9a42f632c66405a761a2/aiohttp-3.14.1-cp311-cp311-win32.whl", hash = "sha256:313701e488100074ce99850404ee36e741abf6330179fec908a1944ecf570126", size = 458386 },
|
|
46
|
+
{ url = "https://files.pythonhosted.org/packages/17/ca/69274c51dcd6e8947d77b2806cf47a4a15f2c846e2cbeb1882547d3da283/aiohttp-3.14.1-cp311-cp311-win_amd64.whl", hash = "sha256:03ab4530fdcb3a543a122ba4b65ac9919da9fe9f78a03d328a6e38ff962f7aa5", size = 483406 },
|
|
47
|
+
{ url = "https://files.pythonhosted.org/packages/2c/8a/c25904f77690c3688ec140f87591ef11a0cfe36bf3d5c0f1f38056fb62b3/aiohttp-3.14.1-cp311-cp311-win_arm64.whl", hash = "sha256:486f7d16ed54c39c2cbd7ca71fd8ba2b8bb7860df65bd7b6ed640bab96a38a8b", size = 452987 },
|
|
48
|
+
{ url = "https://files.pythonhosted.org/packages/1d/21/151624b51cd92553d95424daf4bf19f19ce9be9002d19253e7e7ce67197b/aiohttp-3.14.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:d35143e27778b4bb0fb189562d7f275bff79c62ab8e98459717c0ea617ff2480", size = 757402 },
|
|
49
|
+
{ url = "https://files.pythonhosted.org/packages/c2/82/280619e0bd7bf2454987e19282616e84762255dd9c8468f62382e8c191f1/aiohttp-3.14.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:bcfb80a2cc36fba2534e5e5b5264dc7ae6fcd9bf15256da3e53d2f499e6fa29d", size = 512310 },
|
|
50
|
+
{ url = "https://files.pythonhosted.org/packages/55/b2/2aac325583aaa1353045f96dffa586d8a34e8322e14a7ba49cffeb103ab4/aiohttp-3.14.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:27fd7c91e51729b4f7e1577865fa6d34c9adccbc39aabe9000285b48af9f0ec2", size = 512448 },
|
|
51
|
+
{ url = "https://files.pythonhosted.org/packages/8a/72/a60607cb849faa8af8a356c9329ea2eb6f395d49e82cc82ccba1fd8deb8f/aiohttp-3.14.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:64c567bf9eaf664280116a8688f63016e6b32db2505908e2bdaca1b6438142f2", size = 1766854 },
|
|
52
|
+
{ url = "https://files.pythonhosted.org/packages/b5/d3/d9fe1c9ec7557ab4d0d82bebaa728c6418f0b93295ec2f4ab015f7710cc7/aiohttp-3.14.1-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:f5e6ff2bdbb8f4cd3fbe41f99e25bbcd58e3bf9f13d3dd31a11e7917251cc77a", size = 1740884 },
|
|
53
|
+
{ url = "https://files.pythonhosted.org/packages/c1/dc/f2cecfaf9337ba3e63f181500814ff502aa3d00d9c7ec93a9d23d10a27b2/aiohttp-3.14.1-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:2f73e01dc37122325caf079982621262f96d74823c179038a82fddfc50359264", size = 1810034 },
|
|
54
|
+
{ url = "https://files.pythonhosted.org/packages/66/d7/2ff65c5e65c0d7476daf7e15c032e0805e36811185b9623e3238ad6c763e/aiohttp-3.14.1-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:bb2c0c80d431c0d03f2c7dbf125150fedd4f0de17366a7ca33f7ccb822391842", size = 1904054 },
|
|
55
|
+
{ url = "https://files.pythonhosted.org/packages/20/9c/d445818389df371f56d141d881153ba23183c4735a03f7356ffb43f7757d/aiohttp-3.14.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3e6fc1a85fa7194a1a7d19f44e8609180f4a8eb5fa4c7ed8b4355f080fad235c", size = 1790278 },
|
|
56
|
+
{ url = "https://files.pythonhosted.org/packages/4d/aa/bf04cb4d865fc6101c2229a294ad744973b72e513fdc5a6b791e6983d72a/aiohttp-3.14.1-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:686b6c0d3911ec387b444ddf5dc62fb7f7c0a7d5186a7861626496a5ab4aff95", size = 1591795 },
|
|
57
|
+
{ url = "https://files.pythonhosted.org/packages/dc/b4/4dac0038960427ba832f6609dfb4ea5437d7fd80c72001b9e48f834f428b/aiohttp-3.14.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:c6fa4dc7ad6f8109c70bb1499e589f76b0b792baf39f9b017eb92c8a81d0a199", size = 1728397 },
|
|
58
|
+
{ url = "https://files.pythonhosted.org/packages/2b/f9/7cd4e8ad7aa3b75f17d56bb5498dd604a93d4e6eece822ba0568c413fff0/aiohttp-3.14.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:87a5eea1b2a5e21e1ebdbb33ad4165359189327e63fc4e4894693e7f821ac817", size = 1766504 },
|
|
59
|
+
{ url = "https://files.pythonhosted.org/packages/f9/df/fc01d9fcad0f73fed3f3d361f1f94f975947b50dff82919f6dc2bf4316cc/aiohttp-3.14.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:1c1421eb01d4fd608d88cc8290211d177a58532b55ad94076fb349c5bf467f0a", size = 1777806 },
|
|
60
|
+
{ url = "https://files.pythonhosted.org/packages/41/09/47e2d090bddcc8fb4ccb4c314aadc32d7c5d9bb55f50f6ad1c92fc15d501/aiohttp-3.14.1-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:34b257ec41345c1e8f2df68fa908a7952f5de932723871eb633ecbbff396c9a4", size = 1580707 },
|
|
61
|
+
{ url = "https://files.pythonhosted.org/packages/3d/36/f1a4ce904ae0b6930cfe9afc96d0896f7ec1a620c400405d63783bb95a9c/aiohttp-3.14.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:de538791a80e5d862addbc183f70f0158ac9b9bb872bb147f1fd2a683691e087", size = 1798121 },
|
|
62
|
+
{ url = "https://files.pythonhosted.org/packages/70/0a/e0075ce9ca0279ee1d4f0c0b85f54fea02ebc83c3007651a72bece658fec/aiohttp-3.14.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:6f71173be42d3241d428f760122febb748de0623f44308a6f120d0dd9ec572e3", size = 1767580 },
|
|
63
|
+
{ url = "https://files.pythonhosted.org/packages/3e/61/a0c0a8f327a9c52095cdd8e312391b00d3ed64ab6c72bb5c33d8ec251cf7/aiohttp-3.14.1-cp312-cp312-win32.whl", hash = "sha256:ec8dc383ee57ea3e883477dcca3f11b65d58199f1080acaf4cd6ad9a99698be4", size = 452771 },
|
|
64
|
+
{ url = "https://files.pythonhosted.org/packages/df/d9/ea367c75f16ac9c6cdc8febb25e8318fa21a2b1bc8d6514d4b2d890bface/aiohttp-3.14.1-cp312-cp312-win_amd64.whl", hash = "sha256:2aa92c87868cd13674989f9ee83e5f9f7ea4237589b728048e1f0c8f6caa3271", size = 479873 },
|
|
65
|
+
{ url = "https://files.pythonhosted.org/packages/03/64/8d96784a7851156db8a4c6c3f6f91042fdf39fb15a4cc38c8b3c14833c45/aiohttp-3.14.1-cp312-cp312-win_arm64.whl", hash = "sha256:2c840c90759922cb5e6dda94596e079a30fb5a5ba548e7e0dc00574703940847", size = 448073 },
|
|
63
66
|
]
|
|
64
67
|
|
|
65
68
|
[[package]]
|
|
@@ -378,11 +381,11 @@ sdist = { url = "https://files.pythonhosted.org/packages/f4/7d/aed8cd5e4ca52bb85
|
|
|
378
381
|
|
|
379
382
|
[[package]]
|
|
380
383
|
name = "idna"
|
|
381
|
-
version = "3.
|
|
384
|
+
version = "3.18"
|
|
382
385
|
source = { registry = "https://pypi.org/simple" }
|
|
383
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
386
|
+
sdist = { url = "https://files.pythonhosted.org/packages/cd/63/9496c57188a2ee585e0f1db071d75089a11e98aa86eb99d9d7618fc1edce/idna-3.18.tar.gz", hash = "sha256:ffb385a7e039654cef1ab9ef32c6fafe283c0c0467bba1d9029738ce4a14a848", size = 196711 }
|
|
384
387
|
wheels = [
|
|
385
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
388
|
+
{ url = "https://files.pythonhosted.org/packages/1e/5e/d4e9f1a599fb8e573b7b87160658329fbf28d19eac2718f51fc3def3aa5a/idna-3.18-py3-none-any.whl", hash = "sha256:7f952cbe720b688055e3f87de14f5c3e5fdaa8bc3928985c4077ca689de849a2", size = 65455 },
|
|
386
389
|
]
|
|
387
390
|
|
|
388
391
|
[[package]]
|
|
@@ -648,16 +651,16 @@ wheels = [
|
|
|
648
651
|
|
|
649
652
|
[[package]]
|
|
650
653
|
name = "pygments"
|
|
651
|
-
version = "2.
|
|
654
|
+
version = "2.20.0"
|
|
652
655
|
source = { registry = "https://pypi.org/simple" }
|
|
653
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
656
|
+
sdist = { url = "https://files.pythonhosted.org/packages/c3/b2/bc9c9196916376152d655522fdcebac55e66de6603a76a02bca1b6414f6c/pygments-2.20.0.tar.gz", hash = "sha256:6757cd03768053ff99f3039c1a36d6c0aa0b263438fcab17520b30a303a82b5f", size = 4955991 }
|
|
654
657
|
wheels = [
|
|
655
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
658
|
+
{ url = "https://files.pythonhosted.org/packages/f4/7e/a72dd26f3b0f4f2bf1dd8923c85f7ceb43172af56d63c7383eb62b332364/pygments-2.20.0-py3-none-any.whl", hash = "sha256:81a9e26dd42fd28a23a2d169d86d7ac03b46e2f8b59ed4698fb4785f946d0176", size = 1231151 },
|
|
656
659
|
]
|
|
657
660
|
|
|
658
661
|
[[package]]
|
|
659
662
|
name = "pytest"
|
|
660
|
-
version = "
|
|
663
|
+
version = "9.1.1"
|
|
661
664
|
source = { registry = "https://pypi.org/simple" }
|
|
662
665
|
dependencies = [
|
|
663
666
|
{ name = "colorama", marker = "sys_platform == 'win32'" },
|
|
@@ -666,21 +669,22 @@ dependencies = [
|
|
|
666
669
|
{ name = "pluggy" },
|
|
667
670
|
{ name = "pygments" },
|
|
668
671
|
]
|
|
669
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
672
|
+
sdist = { url = "https://files.pythonhosted.org/packages/e4/47/b9efed96c114afcfa3c9d3fe98a76a1d14c74a9e266d397cf6eb64be5e01/pytest-9.1.1.tar.gz", hash = "sha256:1088fbde8f2b49d95a549a195707afa7a76a3ce9bcadc26b6d71f0ffda5fe313", size = 1636369 }
|
|
670
673
|
wheels = [
|
|
671
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
674
|
+
{ url = "https://files.pythonhosted.org/packages/24/25/1de2678b631f5a49215c6c96fff41ba892b0a34df68d6d80292b1b48aa7f/pytest-9.1.1-py3-none-any.whl", hash = "sha256:37a86b45efb9a47a61a36449063e8e18d0cab3161329fc099eb21783169c4f0c", size = 386536 },
|
|
672
675
|
]
|
|
673
676
|
|
|
674
677
|
[[package]]
|
|
675
678
|
name = "pytest-asyncio"
|
|
676
|
-
version = "1.
|
|
679
|
+
version = "1.4.0"
|
|
677
680
|
source = { registry = "https://pypi.org/simple" }
|
|
678
681
|
dependencies = [
|
|
679
682
|
{ name = "pytest" },
|
|
683
|
+
{ name = "typing-extensions" },
|
|
680
684
|
]
|
|
681
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
685
|
+
sdist = { url = "https://files.pythonhosted.org/packages/43/7c/d36d04db312ecf4298932ef77e6e4a9e8ad017906e24e34f0b0c361a2473/pytest_asyncio-1.4.0.tar.gz", hash = "sha256:c6c0d2259945122819f171a32ecea2c349ead889ee28176caaf492143424be42", size = 58514 }
|
|
682
686
|
wheels = [
|
|
683
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
687
|
+
{ url = "https://files.pythonhosted.org/packages/03/e2/08a497ef684b88559c9cc5f4ad53a37e7b99e727094a86d6ea32536d5d3c/pytest_asyncio-1.4.0-py3-none-any.whl", hash = "sha256:933ca923a23075a87fb7070c0ec272a6848489824d887c85c812670932835aa1", size = 16930 },
|
|
684
688
|
]
|
|
685
689
|
|
|
686
690
|
[[package]]
|
|
@@ -699,7 +703,7 @@ wheels = [
|
|
|
699
703
|
|
|
700
704
|
[[package]]
|
|
701
705
|
name = "requests"
|
|
702
|
-
version = "2.
|
|
706
|
+
version = "2.34.2"
|
|
703
707
|
source = { registry = "https://pypi.org/simple" }
|
|
704
708
|
dependencies = [
|
|
705
709
|
{ name = "certifi" },
|
|
@@ -707,9 +711,9 @@ dependencies = [
|
|
|
707
711
|
{ name = "idna" },
|
|
708
712
|
{ name = "urllib3" },
|
|
709
713
|
]
|
|
710
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
714
|
+
sdist = { url = "https://files.pythonhosted.org/packages/ac/c3/e2a2b89f2d3e2179abd6d00ebd70bff6273f37fb3e0cc209f48b39d00cbf/requests-2.34.2.tar.gz", hash = "sha256:f288924cae4e29463698d6d60bc6a4da69c89185ad1e0bcc4104f584e960b9ed", size = 142856 }
|
|
711
715
|
wheels = [
|
|
712
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
716
|
+
{ url = "https://files.pythonhosted.org/packages/a0/f4/c67b0b3f1b9245e8d266f0f112c500d50e5b4e83cb6f3b71b6528104182a/requests-2.34.2-py3-none-any.whl", hash = "sha256:2a0d60c172f83ac6ab31e4554906c0f3b3588d37b5cb939b1c061f4907e278e0", size = 73075 },
|
|
713
717
|
]
|
|
714
718
|
|
|
715
719
|
[[package]]
|
|
@@ -892,11 +896,11 @@ wheels = [
|
|
|
892
896
|
|
|
893
897
|
[[package]]
|
|
894
898
|
name = "urllib3"
|
|
895
|
-
version = "2.
|
|
899
|
+
version = "2.7.0"
|
|
896
900
|
source = { registry = "https://pypi.org/simple" }
|
|
897
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
901
|
+
sdist = { url = "https://files.pythonhosted.org/packages/53/0c/06f8b233b8fd13b9e5ee11424ef85419ba0d8ba0b3138bf360be2ff56953/urllib3-2.7.0.tar.gz", hash = "sha256:231e0ec3b63ceb14667c67be60f2f2c40a518cb38b03af60abc813da26505f4c", size = 433602 }
|
|
898
902
|
wheels = [
|
|
899
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
903
|
+
{ url = "https://files.pythonhosted.org/packages/7f/3e/5db95bcf282c52709639744ca2a8b149baccf648e39c8cc87553df9eae0c/urllib3-2.7.0-py3-none-any.whl", hash = "sha256:9fb4c81ebbb1ce9531cce37674bbc6f1360472bc18ca9a553ede278ef7276897", size = 131087 },
|
|
900
904
|
]
|
|
901
905
|
|
|
902
906
|
[[package]]
|
graphql_api-1.6.9/VERSION
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
1.6.9
|
|
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
|
{graphql_api-1.6.9 → graphql_api-1.6.10}/docs/content/docs/advanced-features/schema-filtering.md
RENAMED
|
File without changes
|
|
File without changes
|
{graphql_api-1.6.9 → graphql_api-1.6.10}/docs/content/docs/building-applications/documentation.md
RENAMED
|
File without changes
|
{graphql_api-1.6.9 → graphql_api-1.6.10}/docs/content/docs/building-applications/error-handling.md
RENAMED
|
File without changes
|
|
File without changes
|
{graphql_api-1.6.9 → graphql_api-1.6.10}/docs/content/docs/distributed-systems/federation.md
RENAMED
|
File without changes
|
{graphql_api-1.6.9 → graphql_api-1.6.10}/docs/content/docs/distributed-systems/pagination-relay.md
RENAMED
|
File without changes
|
{graphql_api-1.6.9 → graphql_api-1.6.10}/docs/content/docs/distributed-systems/remote-graphql.md
RENAMED
|
File without changes
|
|
File without changes
|
{graphql_api-1.6.9 → graphql_api-1.6.10}/docs/content/docs/fundamentals/async-and-subscriptions.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{graphql_api-1.6.9 → graphql_api-1.6.10}/docs/content/docs/fundamentals/pydantic-and-dataclasses.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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
|