This is an automated email from the ASF dual-hosted git repository.
potiuk pushed a commit to branch ci-upgrade-main
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/ci-upgrade-main by this push:
new b188b158f18 Fix CI breakages from the dependency upgrade
b188b158f18 is described below
commit b188b158f18a496629f3e78b5614c580358d5c25
Author: Jarek Potiuk <[email protected]>
AuthorDate: Mon Oct 19 17:02:21 2026 +0200
Fix CI breakages from the dependency upgrade
- snowflake: snowflake-sqlalchemy (up to 1.11.1) cannot be imported on
SQLAlchemy 2.1, which made ORMSelectCompileState private. Cap
sqlalchemy<2.1 in the provider; the workspace lock resolves back to
SQLAlchemy 2.0.54. Removing the cap is tracked in #75118.
- airflow-core: type the dag_display_name and duration hybrid expressions
against the class (type[...] -> ColumnElement) and fix _get_dialect's
return type, so mypy holds on SQLAlchemy 2.0 and 2.1.
- common.ai: declare the OpenAI Decisions and System One vendors added in
pydantic-ai 2.53/2.55; reject sqlglot >= 30.22's exp.ListStage
(Snowflake LIST/LS @stage) on the allow_writes path; adapt tests to
pydantic-ai's streamed Anthropic requests and new request counting, and
to sqlglot's MySQL "--+" tokenization.
Generated-by: Claude Opus 5
---
airflow-core/src/airflow/models/backfill.py | 2 +-
airflow-core/src/airflow/models/dag.py | 7 +-
airflow-core/src/airflow/models/dagrun.py | 4 +-
providers/common/ai/provider.yaml | 2 +
.../providers/common/ai/get_provider_info.py | 2 +
.../providers/common/ai/utils/sql_validation.py | 12 +-
.../ai/tests/unit/common/ai/operators/test_llm.py | 5 +-
.../tests/unit/common/ai/test_provider_metadata.py | 19 ++-
.../unit/common/ai/utils/test_prompt_cache.py | 38 ++++-
.../unit/common/ai/utils/test_sql_validation.py | 4 +-
providers/snowflake/README.rst | 1 +
providers/snowflake/docs/index.rst | 1 +
providers/snowflake/pyproject.toml | 5 +
uv.lock | 177 +++++++++------------
14 files changed, 153 insertions(+), 126 deletions(-)
diff --git a/airflow-core/src/airflow/models/backfill.py
b/airflow-core/src/airflow/models/backfill.py
index 8e74f3e7fab..de6ef45edfe 100644
--- a/airflow-core/src/airflow/models/backfill.py
+++ b/airflow-core/src/airflow/models/backfill.py
@@ -220,7 +220,7 @@ class Backfill(Base):
@duration.expression # type: ignore[no-redef]
def duration(cls) -> Any:
@provide_session
- def _get_dialect(*, session: Session = NEW_SESSION) -> str:
+ def _get_dialect(*, session: Session = NEW_SESSION) -> str | None:
return get_dialect_name(session=session)
dialect_name = _get_dialect()
diff --git a/airflow-core/src/airflow/models/dag.py
b/airflow-core/src/airflow/models/dag.py
index a073155438d..814f6e74298 100644
--- a/airflow-core/src/airflow/models/dag.py
+++ b/airflow-core/src/airflow/models/dag.py
@@ -83,6 +83,7 @@ if TYPE_CHECKING:
from dateutil.relativedelta import relativedelta
from sqlalchemy.orm.state import InstanceState
+ from sqlalchemy.sql.elements import ColumnElement
from airflow.sdk import Context
from airflow.serialization.definitions.assets import (
@@ -650,15 +651,15 @@ class DagModel(Base):
return self._dag_display_property_value or self.dag_id
@dag_display_name.expression # type: ignore[no-redef]
- def dag_display_name(self) -> str:
+ def dag_display_name(cls: type[DagModel]) -> ColumnElement[Any]:
"""
Expression part of the ``dag_display`` name hybrid property.
:meta private:
"""
return case(
- (self._dag_display_property_value.is_not(None),
self._dag_display_property_value),
- else_=self.dag_id,
+ (cls._dag_display_property_value.is_not(None),
cls._dag_display_property_value),
+ else_=cls.dag_id,
)
@classmethod
diff --git a/airflow-core/src/airflow/models/dagrun.py
b/airflow-core/src/airflow/models/dagrun.py
index e052006b69e..fc116ab20bf 100644
--- a/airflow-core/src/airflow/models/dagrun.py
+++ b/airflow-core/src/airflow/models/dagrun.py
@@ -122,7 +122,7 @@ if TYPE_CHECKING:
from pydantic import NonNegativeInt
from sqlalchemy.engine import ScalarResult
from sqlalchemy.orm import Session
- from sqlalchemy.sql.elements import Case, ColumnElement
+ from sqlalchemy.sql.elements import ColumnElement
from sqlalchemy.sql.selectable import Select
from airflow.api_fastapi.execution_api.datamodels.taskinstance import (
@@ -585,7 +585,7 @@ class DagRun(Base, LoggingMixin):
@duration.expression # type: ignore[no-redef]
@provide_session
- def duration(cls, *, session: Session = NEW_SESSION) -> Case:
+ def duration(cls: type[DagRun], *, session: Session = NEW_SESSION) ->
ColumnElement[Any]:
dialect_name = get_dialect_name(session)
if dialect_name == "mysql":
return func.timestampdiff(text("SECOND"), cls.start_date,
cls.end_date)
diff --git a/providers/common/ai/provider.yaml
b/providers/common/ai/provider.yaml
index 8e18d02cd5b..2398a1f8bf2 100644
--- a/providers/common/ai/provider.yaml
+++ b/providers/common/ai/provider.yaml
@@ -197,11 +197,13 @@ connection-types:
- Nebius
- Ollama
- OpenAI
+ - OpenAI Decisions
- OpenRouter
- OVHcloud
- Pydantic AI Gateway
- SambaNova
- Snowflake Cortex
+ - System One
- Together AI
- TypeSafe
- Vercel AI Gateway
diff --git
a/providers/common/ai/src/airflow/providers/common/ai/get_provider_info.py
b/providers/common/ai/src/airflow/providers/common/ai/get_provider_info.py
index 3af5ce60876..19775160600 100644
--- a/providers/common/ai/src/airflow/providers/common/ai/get_provider_info.py
+++ b/providers/common/ai/src/airflow/providers/common/ai/get_provider_info.py
@@ -170,11 +170,13 @@ def get_provider_info():
"Nebius",
"Ollama",
"OpenAI",
+ "OpenAI Decisions",
"OpenRouter",
"OVHcloud",
"Pydantic AI Gateway",
"SambaNova",
"Snowflake Cortex",
+ "System One",
"Together AI",
"TypeSafe",
"Vercel AI Gateway",
diff --git
a/providers/common/ai/src/airflow/providers/common/ai/utils/sql_validation.py
b/providers/common/ai/src/airflow/providers/common/ai/utils/sql_validation.py
index 14601f5b98b..17d0120b15e 100644
---
a/providers/common/ai/src/airflow/providers/common/ai/utils/sql_validation.py
+++
b/providers/common/ai/src/airflow/providers/common/ai/utils/sql_validation.py
@@ -69,6 +69,9 @@ DEFAULT_ALLOWED_TYPES: tuple[type[exp.Expr], ...] = (
exp.Except,
)
+# Snowflake ``LIST``/``LS @stage``; sqlglot >= 30.22 only (older releases
mis-parse it as exp.Alias).
+_LIST_STAGE: type[exp.Expr] | None = getattr(exp, "ListStage", None)
+
# Read-only metadata statements that introspect the schema without touching
data:
# - Describe: DESCRIBE / DESC <table> (and EXPLAIN on some dialects)
# - Show: SHOW TABLES / SHOW COLUMNS / SHOW DATABASES, etc.
@@ -323,10 +326,11 @@ def collect_table_references(
continue
# A bare aliased expression is never a valid top-level statement --
sqlglot only
# produces one by mis-parsing input it does not model. Snowflake
``LIST @stage`` /
- # ``LS @stage`` (list a stage's files) parse this way, as ``Column AS
Parameter``.
- # Read-only mode already rejects it via the statement-type allow-list;
this also
- # refuses it on the ``allow_writes`` path, where only this scan runs.
- if isinstance(stmt, exp.Alias):
+ # ``LS @stage`` (list a stage's files) parse this way, as ``Column AS
Parameter``,
+ # before sqlglot 30.22, which models them as ``exp.ListStage`` instead.
+ # Read-only mode already rejects both via the statement-type
allow-list; this also
+ # refuses them on the ``allow_writes`` path, where only this scan runs.
+ if isinstance(stmt, exp.Alias) or (_LIST_STAGE is not None and
isinstance(stmt, _LIST_STAGE)):
unverifiable.append("a statement sqlglot could not parse as a
query (e.g. Snowflake LIST @stage)")
continue
# A function whose string argument reaches a file, another table, or a
program
diff --git a/providers/common/ai/tests/unit/common/ai/operators/test_llm.py
b/providers/common/ai/tests/unit/common/ai/operators/test_llm.py
index 862b2e119a0..dec9efaa1b4 100644
--- a/providers/common/ai/tests/unit/common/ai/operators/test_llm.py
+++ b/providers/common/ai/tests/unit/common/ai/operators/test_llm.py
@@ -358,7 +358,10 @@ class TestLLMOperator:
op.execute(context=usage_budget_context)
pushes = {c.kwargs["key"]: c.kwargs["value"] for c in
ti.xcom_push.call_args_list}
- assert pushes["usage"]["requests"] == 1
+ # Not `requests`: pydantic-ai >= 2.54 counts only responses the agent
acted on, so the
+ # capped response's request is no longer counted, though its tokens
and cost still are.
+ assert pushes["usage"]["input_tokens"] == 100
+ assert pushes["usage"]["output_tokens"] == 50
assert pushes["usage"]["cost"] == str(PRICED_COST)
@patch("airflow.providers.common.ai.operators.llm.PydanticAIHook",
autospec=True)
diff --git a/providers/common/ai/tests/unit/common/ai/test_provider_metadata.py
b/providers/common/ai/tests/unit/common/ai/test_provider_metadata.py
index c628c3a24e6..16a3aa58232 100644
--- a/providers/common/ai/tests/unit/common/ai/test_provider_metadata.py
+++ b/providers/common/ai/tests/unit/common/ai/test_provider_metadata.py
@@ -81,10 +81,12 @@ LABELS = {
"nebius": "Nebius",
"ollama": "Ollama",
"openai": "OpenAI",
+ "openai_decisions": "OpenAI Decisions",
"openrouter": "OpenRouter",
"ovhcloud": "OVHcloud",
"sambanova": "SambaNova",
"snowflake": "Snowflake Cortex",
+ "system_one": "System One",
"together": "Together AI",
"typesafe": "TypeSafe",
"vercel": "Vercel AI Gateway",
@@ -163,14 +165,15 @@ requires_openai_codex_module = pytest.mark.skipif(
# `provider.yaml`'s vendor list is derived from a current pydantic-ai, but the
provider
# supports `pydantic-ai-slim>=2.33.0` (`pyproject.toml`) and CI's "Low dep
tests" job installs
# exactly that floor. Vendors upstream added after the floor are legitimately
absent there --
-# bisected empirically: `vllm` landed in 2.38.0, `github_copilot` in 2.42.0,
and `typesafe` in
-# 2.45.0 (`openai_codex` also landed after the floor, in 2.41.0, but is
excluded from this
-# reasoning -- see `OPENAI_CODEX_AVAILABLE_FROM` above) -- so only the
"installed but not
-# declared" direction holds on every supported version. The opposite direction
("declared but
-# not installed") is a real drift signal solely from the release that carries
every vendor
-# currently declared, i.e. the latest of the three, `typesafe`'s 2.45.0: raise
this when a
-# newly declared vendor lands in a later release.
-ALL_DECLARED_VENDORS_AVAILABLE_FROM = Version("2.45.0")
+# bisected empirically: `vllm` landed in 2.38.0, `github_copilot` in 2.42.0,
`typesafe` in
+# 2.45.0, `system_one` in 2.53.0 and `openai_decisions` in 2.55.0
(`openai_codex` also landed
+# after the floor, in 2.41.0, but is excluded from this reasoning -- see
+# `OPENAI_CODEX_AVAILABLE_FROM` above) -- so only the "installed but not
declared" direction
+# holds on every supported version. The opposite direction ("declared but not
installed") is a
+# real drift signal solely from the release that carries every vendor
currently declared, i.e.
+# the latest of them, `openai_decisions`'s 2.55.0: raise this when a newly
declared vendor lands
+# in a later release.
+ALL_DECLARED_VENDORS_AVAILABLE_FROM = Version("2.55.0")
requires_all_declared_vendors = pytest.mark.skipif(
Version(Version(version("pydantic-ai-slim")).base_version) <
ALL_DECLARED_VENDORS_AVAILABLE_FROM,
diff --git
a/providers/common/ai/tests/unit/common/ai/utils/test_prompt_cache.py
b/providers/common/ai/tests/unit/common/ai/utils/test_prompt_cache.py
index e6c37ad98cd..43c6f1f2710 100644
--- a/providers/common/ai/tests/unit/common/ai/utils/test_prompt_cache.py
+++ b/providers/common/ai/tests/unit/common/ai/utils/test_prompt_cache.py
@@ -141,6 +141,35 @@ class TestPromptCaching:
assert {*ALL_DEFAULTS, "anthropic_cache"} == PROMPT_CACHE_SETTING_NAMES
+_ANTHROPIC_OK_STREAM = "".join(
+ f"event: {event['type']}\ndata: {json.dumps(event)}\n\n"
+ for event in [
+ {
+ "type": "message_start",
+ "message": {
+ "id": "msg_1",
+ "type": "message",
+ "role": "assistant",
+ "model": "claude-sonnet-4-5",
+ "content": [],
+ "stop_reason": None,
+ "stop_sequence": None,
+ "usage": {"input_tokens": 10, "output_tokens": 0},
+ },
+ },
+ {"type": "content_block_start", "index": 0, "content_block": {"type":
"text", "text": ""}},
+ {"type": "content_block_delta", "index": 0, "delta": {"type":
"text_delta", "text": "ok"}},
+ {"type": "content_block_stop", "index": 0},
+ {
+ "type": "message_delta",
+ "delta": {"stop_reason": "end_turn", "stop_sequence": None},
+ "usage": {"output_tokens": 1},
+ },
+ {"type": "message_stop"},
+ ]
+).encode()
+
+
class TestPromptCachingOnTheAnthropicWire:
"""What an Anthropic model actually sends, captured at the HTTP
transport."""
@@ -149,7 +178,14 @@ class TestPromptCachingOnTheAnthropicWire:
bodies: list[dict[str, Any]] = []
def handler(request: httpx2.Request) -> httpx2.Response:
- bodies.append(json.loads(request.content))
+ body = json.loads(request.content)
+ bodies.append(body)
+ # pydantic-ai >= 2.52 streams whenever its default max_tokens
exceeds the SDK's
+ # non-streaming limit and the client timeout is not the SDK
default, as here.
+ if body.get("stream"):
+ return httpx2.Response(
+ 200, headers={"content-type": "text/event-stream"},
content=_ANTHROPIC_OK_STREAM
+ )
return httpx2.Response(
200,
json={
diff --git
a/providers/common/ai/tests/unit/common/ai/utils/test_sql_validation.py
b/providers/common/ai/tests/unit/common/ai/utils/test_sql_validation.py
index f21cecd41f2..2fd6d31ce41 100644
--- a/providers/common/ai/tests/unit/common/ai/utils/test_sql_validation.py
+++ b/providers/common/ai/tests/unit/common/ai/utils/test_sql_validation.py
@@ -418,7 +418,9 @@ class TestCollectTableReferences:
def test_flags_inline_comment_as_unverifiable(self, sql, dialect):
"""Comments hide parser-vs-engine differentials (MySQL executable
comments), so reject them."""
scan = collect_table_references(parse_sql(sql, dialect=dialect))
- assert scan.unverifiable_sources
+ # Newer sqlglot tokenizes MySQL's `--+1` as arithmetic, as MySQL does
(a comment needs
+ # whitespace after `--`); with no differential left, `secret` is then
a scanned table.
+ assert scan.unverifiable_sources or ("", "", "secret") in scan.tables
@pytest.mark.parametrize(
"sql",
diff --git a/providers/snowflake/README.rst b/providers/snowflake/README.rst
index d1e5c5a50af..a9cb1e91c25 100644
--- a/providers/snowflake/README.rst
+++ b/providers/snowflake/README.rst
@@ -67,6 +67,7 @@ PIP package Version required
``pyOpenSSL`` ``>=22.1.0``
``snowflake-connector-python`` ``>=3.17.0``
``snowflake-sqlalchemy`` ``>=1.7.0``
+``sqlalchemy`` ``>=1.4.54,<2.1``
``snowflake-snowpark-python`` ``>=1.17.0,<9999; python_version <
"3.12"``
``snowflake-snowpark-python`` ``>=1.27.0,<9999; python_version
>= "3.12" and python_version < "3.14"``
``setuptools`` ``>=80.0.0,<9999``
diff --git a/providers/snowflake/docs/index.rst
b/providers/snowflake/docs/index.rst
index c307c9f68c7..61814dab216 100644
--- a/providers/snowflake/docs/index.rst
+++ b/providers/snowflake/docs/index.rst
@@ -116,6 +116,7 @@ PIP package Version required
``pyOpenSSL`` ``>=22.1.0``
``snowflake-connector-python`` ``>=3.17.0``
``snowflake-sqlalchemy`` ``>=1.7.0``
+``sqlalchemy`` ``>=1.4.54,<2.1``
``snowflake-snowpark-python`` ``>=1.17.0,<9999; python_version <
"3.12"``
``snowflake-snowpark-python`` ``>=1.27.0,<9999; python_version
>= "3.12" and python_version < "3.14"``
``setuptools`` ``>=80.0.0,<9999``
diff --git a/providers/snowflake/pyproject.toml
b/providers/snowflake/pyproject.toml
index 9270516206b..946814c8152 100644
--- a/providers/snowflake/pyproject.toml
+++ b/providers/snowflake/pyproject.toml
@@ -77,6 +77,11 @@ dependencies = [
# 3.17.0 is the first version with Workload Identity Federation
(WORKLOAD_IDENTITY authenticator).
"snowflake-connector-python>=3.17.0",
"snowflake-sqlalchemy>=1.7.0",
+ # snowflake-sqlalchemy (up to 1.11.1) subclasses
sqlalchemy.orm.context.ORMSelectCompileState, which
+ # SQLAlchemy 2.1 made private, so importing it fails; 2.0.0rc2 itself
declares sqlalchemy<2.1.
+ # Remove the cap once snowflake-sqlalchemy supports SQLAlchemy 2.1;
+ # tracked at https://github.com/apache/airflow/issues/75118
+ "sqlalchemy>=1.4.54,<2.1",
# The "<9999" is a hint to the pip resolver to resolve this requirement
early,
# can be removed when the pip resolver is improved
"snowflake-snowpark-python>=1.17.0,<9999;python_version<'3.12'",
diff --git a/uv.lock b/uv.lock
index 4d664ce8b3f..314b0b9b0f8 100644
--- a/uv.lock
+++ b/uv.lock
@@ -17,12 +17,12 @@ resolution-markers = [
"python_full_version == '3.12.*' and sys_platform == 'emscripten'",
"(python_full_version == '3.12.*' and platform_machine != 'arm64' and
sys_platform == 'darwin') or (python_full_version == '3.12.*' and sys_platform
!= 'darwin' and sys_platform != 'emscripten' and sys_platform != 'win32')",
"python_full_version >= '3.11.5' and python_full_version < '3.12' and
platform_machine == 'arm64' and sys_platform == 'darwin'",
- "python_full_version < '3.11.5' and platform_machine == 'arm64' and
sys_platform == 'darwin'",
"python_full_version >= '3.11.5' and python_full_version < '3.12' and
sys_platform == 'win32'",
- "python_full_version < '3.11.5' and sys_platform == 'win32'",
"python_full_version >= '3.11.5' and python_full_version < '3.12' and
sys_platform == 'emscripten'",
- "python_full_version < '3.11.5' and sys_platform == 'emscripten'",
"(python_full_version >= '3.11.5' and python_full_version < '3.12' and
platform_machine != 'arm64' and sys_platform == 'darwin') or
(python_full_version >= '3.11.5' and python_full_version < '3.12' and
sys_platform != 'darwin' and sys_platform != 'emscripten' and sys_platform !=
'win32')",
+ "python_full_version < '3.11.5' and platform_machine == 'arm64' and
sys_platform == 'darwin'",
+ "python_full_version < '3.11.5' and sys_platform == 'win32'",
+ "python_full_version < '3.11.5' and sys_platform == 'emscripten'",
"(python_full_version < '3.11.5' and platform_machine != 'arm64' and
sys_platform == 'darwin') or (python_full_version < '3.11.5' and sys_platform
!= 'darwin' and sys_platform != 'emscripten' and sys_platform != 'win32')",
]
@@ -8236,6 +8236,7 @@ dependencies = [
{ name = "snowflake-snowpark-python", marker = "python_full_version <
'3.14'" },
{ name = "snowflake-sqlalchemy", version = "1.11.1", source = { registry =
"https://pypi.org/simple" }, marker = "python_full_version < '3.15'" },
{ name = "snowflake-sqlalchemy", version = "2.0.0rc1", source = { registry
= "https://pypi.org/simple" }, marker = "python_full_version >= '3.15'" },
+ { name = "sqlalchemy" },
]
[package.optional-dependencies]
@@ -8287,6 +8288,7 @@ requires-dist = [
{ name = "snowflake-snowpark-python", marker = "python_full_version <
'3.12'", specifier = ">=1.17.0,<9999" },
{ name = "snowflake-snowpark-python", marker = "python_full_version >=
'3.12' and python_full_version < '3.14'", specifier = ">=1.27.0,<9999" },
{ name = "snowflake-sqlalchemy", specifier = ">=1.7.0" },
+ { name = "sqlalchemy", specifier = ">=1.4.54,<2.1" },
]
provides-extras = ["common-ai", "microsoft-azure", "openlineage"]
@@ -12259,12 +12261,12 @@ version = "1.3.1"
source = { registry = "https://pypi.org/simple" }
resolution-markers = [
"python_full_version >= '3.11.5' and python_full_version < '3.12' and
platform_machine == 'arm64' and sys_platform == 'darwin'",
- "python_full_version < '3.11.5' and platform_machine == 'arm64' and
sys_platform == 'darwin'",
"python_full_version >= '3.11.5' and python_full_version < '3.12' and
sys_platform == 'win32'",
- "python_full_version < '3.11.5' and sys_platform == 'win32'",
"python_full_version >= '3.11.5' and python_full_version < '3.12' and
sys_platform == 'emscripten'",
- "python_full_version < '3.11.5' and sys_platform == 'emscripten'",
"(python_full_version >= '3.11.5' and python_full_version < '3.12' and
platform_machine != 'arm64' and sys_platform == 'darwin') or
(python_full_version >= '3.11.5' and python_full_version < '3.12' and
sys_platform != 'darwin' and sys_platform != 'emscripten' and sys_platform !=
'win32')",
+ "python_full_version < '3.11.5' and platform_machine == 'arm64' and
sys_platform == 'darwin'",
+ "python_full_version < '3.11.5' and sys_platform == 'win32'",
+ "python_full_version < '3.11.5' and sys_platform == 'emscripten'",
"(python_full_version < '3.11.5' and platform_machine != 'arm64' and
sys_platform == 'darwin') or (python_full_version < '3.11.5' and sys_platform
!= 'darwin' and sys_platform != 'emscripten' and sys_platform != 'win32')",
]
dependencies = [
@@ -12817,12 +12819,12 @@ resolution-markers = [
"python_full_version == '3.12.*' and sys_platform == 'emscripten'",
"(python_full_version == '3.12.*' and platform_machine != 'arm64' and
sys_platform == 'darwin') or (python_full_version == '3.12.*' and sys_platform
!= 'darwin' and sys_platform != 'emscripten' and sys_platform != 'win32')",
"python_full_version >= '3.11.5' and python_full_version < '3.12' and
platform_machine == 'arm64' and sys_platform == 'darwin'",
- "python_full_version < '3.11.5' and platform_machine == 'arm64' and
sys_platform == 'darwin'",
"python_full_version >= '3.11.5' and python_full_version < '3.12' and
sys_platform == 'win32'",
- "python_full_version < '3.11.5' and sys_platform == 'win32'",
"python_full_version >= '3.11.5' and python_full_version < '3.12' and
sys_platform == 'emscripten'",
- "python_full_version < '3.11.5' and sys_platform == 'emscripten'",
"(python_full_version >= '3.11.5' and python_full_version < '3.12' and
platform_machine != 'arm64' and sys_platform == 'darwin') or
(python_full_version >= '3.11.5' and python_full_version < '3.12' and
sys_platform != 'darwin' and sys_platform != 'emscripten' and sys_platform !=
'win32')",
+ "python_full_version < '3.11.5' and platform_machine == 'arm64' and
sys_platform == 'darwin'",
+ "python_full_version < '3.11.5' and sys_platform == 'win32'",
+ "python_full_version < '3.11.5' and sys_platform == 'emscripten'",
"(python_full_version < '3.11.5' and platform_machine != 'arm64' and
sys_platform == 'darwin') or (python_full_version < '3.11.5' and sys_platform
!= 'darwin' and sys_platform != 'emscripten' and sys_platform != 'win32')",
]
sdist = { url =
"https://files.pythonhosted.org/packages/0f/59/e19834834cb01a32febfbb0f8a23a9088088f5d45991824ff2bc3b5e8acb/filelock-3.32.7.tar.gz",
hash =
"sha256:37b8a3d9811b0f9aef7e5ec5c71bb320de52df51e6ca9bcd6f5ad81187660da7", size
= 225154, upload-time = "2026-09-16T00:24:20.907Z" }
@@ -13426,12 +13428,12 @@ resolution-markers = [
"python_full_version == '3.12.*' and sys_platform == 'emscripten'",
"(python_full_version == '3.12.*' and platform_machine != 'arm64' and
sys_platform == 'darwin') or (python_full_version == '3.12.*' and sys_platform
!= 'darwin' and sys_platform != 'emscripten' and sys_platform != 'win32')",
"python_full_version >= '3.11.5' and python_full_version < '3.12' and
platform_machine == 'arm64' and sys_platform == 'darwin'",
- "python_full_version < '3.11.5' and platform_machine == 'arm64' and
sys_platform == 'darwin'",
"python_full_version >= '3.11.5' and python_full_version < '3.12' and
sys_platform == 'win32'",
- "python_full_version < '3.11.5' and sys_platform == 'win32'",
"python_full_version >= '3.11.5' and python_full_version < '3.12' and
sys_platform == 'emscripten'",
- "python_full_version < '3.11.5' and sys_platform == 'emscripten'",
"(python_full_version >= '3.11.5' and python_full_version < '3.12' and
platform_machine != 'arm64' and sys_platform == 'darwin') or
(python_full_version >= '3.11.5' and python_full_version < '3.12' and
sys_platform != 'darwin' and sys_platform != 'emscripten' and sys_platform !=
'win32')",
+ "python_full_version < '3.11.5' and platform_machine == 'arm64' and
sys_platform == 'darwin'",
+ "python_full_version < '3.11.5' and sys_platform == 'win32'",
+ "python_full_version < '3.11.5' and sys_platform == 'emscripten'",
"(python_full_version < '3.11.5' and platform_machine != 'arm64' and
sys_platform == 'darwin') or (python_full_version < '3.11.5' and sys_platform
!= 'darwin' and sys_platform != 'emscripten' and sys_platform != 'win32')",
]
dependencies = [
@@ -16655,12 +16657,12 @@ resolution-markers = [
"python_full_version == '3.12.*' and sys_platform == 'emscripten'",
"(python_full_version == '3.12.*' and platform_machine != 'arm64' and
sys_platform == 'darwin') or (python_full_version == '3.12.*' and sys_platform
!= 'darwin' and sys_platform != 'emscripten' and sys_platform != 'win32')",
"python_full_version >= '3.11.5' and python_full_version < '3.12' and
platform_machine == 'arm64' and sys_platform == 'darwin'",
- "python_full_version < '3.11.5' and platform_machine == 'arm64' and
sys_platform == 'darwin'",
"python_full_version >= '3.11.5' and python_full_version < '3.12' and
sys_platform == 'win32'",
- "python_full_version < '3.11.5' and sys_platform == 'win32'",
"python_full_version >= '3.11.5' and python_full_version < '3.12' and
sys_platform == 'emscripten'",
- "python_full_version < '3.11.5' and sys_platform == 'emscripten'",
"(python_full_version >= '3.11.5' and python_full_version < '3.12' and
platform_machine != 'arm64' and sys_platform == 'darwin') or
(python_full_version >= '3.11.5' and python_full_version < '3.12' and
sys_platform != 'darwin' and sys_platform != 'emscripten' and sys_platform !=
'win32')",
+ "python_full_version < '3.11.5' and platform_machine == 'arm64' and
sys_platform == 'darwin'",
+ "python_full_version < '3.11.5' and sys_platform == 'win32'",
+ "python_full_version < '3.11.5' and sys_platform == 'emscripten'",
"(python_full_version < '3.11.5' and platform_machine != 'arm64' and
sys_platform == 'darwin') or (python_full_version < '3.11.5' and sys_platform
!= 'darwin' and sys_platform != 'emscripten' and sys_platform != 'win32')",
]
dependencies = [
@@ -18456,12 +18458,12 @@ version = "3.6.1"
source = { registry = "https://pypi.org/simple" }
resolution-markers = [
"python_full_version >= '3.11.5' and python_full_version < '3.12' and
platform_machine == 'arm64' and sys_platform == 'darwin'",
- "python_full_version < '3.11.5' and platform_machine == 'arm64' and
sys_platform == 'darwin'",
"python_full_version >= '3.11.5' and python_full_version < '3.12' and
sys_platform == 'win32'",
- "python_full_version < '3.11.5' and sys_platform == 'win32'",
"python_full_version >= '3.11.5' and python_full_version < '3.12' and
sys_platform == 'emscripten'",
- "python_full_version < '3.11.5' and sys_platform == 'emscripten'",
"(python_full_version >= '3.11.5' and python_full_version < '3.12' and
platform_machine != 'arm64' and sys_platform == 'darwin') or
(python_full_version >= '3.11.5' and python_full_version < '3.12' and
sys_platform != 'darwin' and sys_platform != 'emscripten' and sys_platform !=
'win32')",
+ "python_full_version < '3.11.5' and platform_machine == 'arm64' and
sys_platform == 'darwin'",
+ "python_full_version < '3.11.5' and sys_platform == 'win32'",
+ "python_full_version < '3.11.5' and sys_platform == 'emscripten'",
"(python_full_version < '3.11.5' and platform_machine != 'arm64' and
sys_platform == 'darwin') or (python_full_version < '3.11.5' and sys_platform
!= 'darwin' and sys_platform != 'emscripten' and sys_platform != 'win32')",
]
sdist = { url =
"https://files.pythonhosted.org/packages/6a/51/63fe664f3908c97be9d2e4f1158eb633317598cfa6e1fc14af5383f17512/networkx-3.6.1.tar.gz",
hash =
"sha256:26b7c357accc0c8cde558ad486283728b65b6a95d85ee1cd66bafab4c8168509", size
= 2517025, upload-time = "2025-12-08T17:02:39.908Z" }
@@ -22205,7 +22207,6 @@ source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "click" },
{ name = "filelock", version = "3.32.7", source = { registry =
"https://pypi.org/simple" } },
- { name = "filelock", version = "4.2.0", source = { registry =
"https://pypi.org/simple" }, marker = "python_version < '0'" },
{ name = "jsonschema" },
{ name = "msgpack" },
{ name = "packaging" },
@@ -22945,12 +22946,12 @@ version = "1.17.1"
source = { registry = "https://pypi.org/simple" }
resolution-markers = [
"python_full_version >= '3.11.5' and python_full_version < '3.12' and
platform_machine == 'arm64' and sys_platform == 'darwin'",
- "python_full_version < '3.11.5' and platform_machine == 'arm64' and
sys_platform == 'darwin'",
"python_full_version >= '3.11.5' and python_full_version < '3.12' and
sys_platform == 'win32'",
- "python_full_version < '3.11.5' and sys_platform == 'win32'",
"python_full_version >= '3.11.5' and python_full_version < '3.12' and
sys_platform == 'emscripten'",
- "python_full_version < '3.11.5' and sys_platform == 'emscripten'",
"(python_full_version >= '3.11.5' and python_full_version < '3.12' and
platform_machine != 'arm64' and sys_platform == 'darwin') or
(python_full_version >= '3.11.5' and python_full_version < '3.12' and
sys_platform != 'darwin' and sys_platform != 'emscripten' and sys_platform !=
'win32')",
+ "python_full_version < '3.11.5' and platform_machine == 'arm64' and
sys_platform == 'darwin'",
+ "python_full_version < '3.11.5' and sys_platform == 'win32'",
+ "python_full_version < '3.11.5' and sys_platform == 'emscripten'",
"(python_full_version < '3.11.5' and platform_machine != 'arm64' and
sys_platform == 'darwin') or (python_full_version < '3.11.5' and sys_platform
!= 'darwin' and sys_platform != 'emscripten' and sys_platform != 'win32')",
]
dependencies = [
@@ -23424,12 +23425,12 @@ resolution-markers = [
"python_full_version == '3.12.*' and sys_platform == 'emscripten'",
"(python_full_version == '3.12.*' and platform_machine != 'arm64' and
sys_platform == 'darwin') or (python_full_version == '3.12.*' and sys_platform
!= 'darwin' and sys_platform != 'emscripten' and sys_platform != 'win32')",
"python_full_version >= '3.11.5' and python_full_version < '3.12' and
platform_machine == 'arm64' and sys_platform == 'darwin'",
- "python_full_version < '3.11.5' and platform_machine == 'arm64' and
sys_platform == 'darwin'",
"python_full_version >= '3.11.5' and python_full_version < '3.12' and
sys_platform == 'win32'",
- "python_full_version < '3.11.5' and sys_platform == 'win32'",
"python_full_version >= '3.11.5' and python_full_version < '3.12' and
sys_platform == 'emscripten'",
- "python_full_version < '3.11.5' and sys_platform == 'emscripten'",
"(python_full_version >= '3.11.5' and python_full_version < '3.12' and
platform_machine != 'arm64' and sys_platform == 'darwin') or
(python_full_version >= '3.11.5' and python_full_version < '3.12' and
sys_platform != 'darwin' and sys_platform != 'emscripten' and sys_platform !=
'win32')",
+ "python_full_version < '3.11.5' and platform_machine == 'arm64' and
sys_platform == 'darwin'",
+ "python_full_version < '3.11.5' and sys_platform == 'win32'",
+ "python_full_version < '3.11.5' and sys_platform == 'emscripten'",
"(python_full_version < '3.11.5' and platform_machine != 'arm64' and
sys_platform == 'darwin') or (python_full_version < '3.11.5' and sys_platform
!= 'darwin' and sys_platform != 'emscripten' and sys_platform != 'win32')",
]
dependencies = [
@@ -23558,12 +23559,12 @@ resolution-markers = [
"python_full_version == '3.12.*' and sys_platform == 'emscripten'",
"(python_full_version == '3.12.*' and platform_machine != 'arm64' and
sys_platform == 'darwin') or (python_full_version == '3.12.*' and sys_platform
!= 'darwin' and sys_platform != 'emscripten' and sys_platform != 'win32')",
"python_full_version >= '3.11.5' and python_full_version < '3.12' and
platform_machine == 'arm64' and sys_platform == 'darwin'",
- "python_full_version < '3.11.5' and platform_machine == 'arm64' and
sys_platform == 'darwin'",
"python_full_version >= '3.11.5' and python_full_version < '3.12' and
sys_platform == 'win32'",
- "python_full_version < '3.11.5' and sys_platform == 'win32'",
"python_full_version >= '3.11.5' and python_full_version < '3.12' and
sys_platform == 'emscripten'",
- "python_full_version < '3.11.5' and sys_platform == 'emscripten'",
"(python_full_version >= '3.11.5' and python_full_version < '3.12' and
platform_machine != 'arm64' and sys_platform == 'darwin') or
(python_full_version >= '3.11.5' and python_full_version < '3.12' and
sys_platform != 'darwin' and sys_platform != 'emscripten' and sys_platform !=
'win32')",
+ "python_full_version < '3.11.5' and platform_machine == 'arm64' and
sys_platform == 'darwin'",
+ "python_full_version < '3.11.5' and sys_platform == 'win32'",
+ "python_full_version < '3.11.5' and sys_platform == 'emscripten'",
"(python_full_version < '3.11.5' and platform_machine != 'arm64' and
sys_platform == 'darwin') or (python_full_version < '3.11.5' and sys_platform
!= 'darwin' and sys_platform != 'emscripten' and sys_platform != 'win32')",
]
dependencies = [
@@ -23652,12 +23653,12 @@ version = "9.0.4"
source = { registry = "https://pypi.org/simple" }
resolution-markers = [
"python_full_version >= '3.11.5' and python_full_version < '3.12' and
platform_machine == 'arm64' and sys_platform == 'darwin'",
- "python_full_version < '3.11.5' and platform_machine == 'arm64' and
sys_platform == 'darwin'",
"python_full_version >= '3.11.5' and python_full_version < '3.12' and
sys_platform == 'win32'",
- "python_full_version < '3.11.5' and sys_platform == 'win32'",
"python_full_version >= '3.11.5' and python_full_version < '3.12' and
sys_platform == 'emscripten'",
- "python_full_version < '3.11.5' and sys_platform == 'emscripten'",
"(python_full_version >= '3.11.5' and python_full_version < '3.12' and
platform_machine != 'arm64' and sys_platform == 'darwin') or
(python_full_version >= '3.11.5' and python_full_version < '3.12' and
sys_platform != 'darwin' and sys_platform != 'emscripten' and sys_platform !=
'win32')",
+ "python_full_version < '3.11.5' and platform_machine == 'arm64' and
sys_platform == 'darwin'",
+ "python_full_version < '3.11.5' and sys_platform == 'win32'",
+ "python_full_version < '3.11.5' and sys_platform == 'emscripten'",
"(python_full_version < '3.11.5' and platform_machine != 'arm64' and
sys_platform == 'darwin') or (python_full_version < '3.11.5' and sys_platform
!= 'darwin' and sys_platform != 'emscripten' and sys_platform != 'win32')",
]
dependencies = [
@@ -23969,84 +23970,50 @@ wheels = [
[[package]]
name = "sqlalchemy"
-version = "2.1.4"
+version = "2.0.54"
source = { registry = "https://pypi.org/simple" }
dependencies = [
+ { name = "greenlet", marker = "platform_machine == 'AMD64' or
platform_machine == 'WIN32' or platform_machine == 'aarch64' or
platform_machine == 'amd64' or platform_machine == 'ppc64le' or
platform_machine == 'win32' or platform_machine == 'x86_64'" },
{ name = "typing-extensions" },
]
-sdist = { url =
"https://files.pythonhosted.org/packages/1f/44/311bac6b6ef81e4dfd0287d04900108b1f5c00c9761dd3c0a2b7b9d0f86b/sqlalchemy-2.1.4.tar.gz",
hash =
"sha256:7bd7ad604487daa7eab8716471c29a7185f17b5287ce73bb7bc79fea050d8cfd", size
= 10544216, upload-time = "2026-10-07T17:33:59.116Z" }
-wheels = [
- { url =
"https://files.pythonhosted.org/packages/18/cd/264493ea522b887ac71949d442ef6a49ca04504e1090b427e878a71d5bb2/sqlalchemy-2.1.4-cp311-cp311-macosx_11_0_arm64.whl",
hash =
"sha256:a6d147c31e189541ae7cd990482c4f960f9e8abce186551225fa355856dbf1a5", size
= 2463376, upload-time = "2026-10-07T18:17:21.503Z" },
- { url =
"https://files.pythonhosted.org/packages/59/16/1dbc3674709e945d113cfe0f652431cfeda0aa5999c0737444e7e4a416f8/sqlalchemy-2.1.4-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
hash =
"sha256:55072780d1aae84dea443ce27edeb745f6cc4d19ad89416abbb6b49712080e7c", size
= 4628615, upload-time = "2026-10-07T18:37:37.947Z" },
- { url =
"https://files.pythonhosted.org/packages/ec/24/0640dfb48fde362b83eaa122691457cb9a13f51d50cd6064ddcfba667c71/sqlalchemy-2.1.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl",
hash =
"sha256:343a0493a81278bfe30be1ec81214a55f2f44aaa4662d230be359ab2aa18cc2a", size
= 4650872, upload-time = "2026-10-07T18:24:42.632Z" },
- { url =
"https://files.pythonhosted.org/packages/ea/e4/5aec21a9e6ffadc919854fef1cd92b6f699ee204811e78ae1b1f9733da7e/sqlalchemy-2.1.4-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl",
hash =
"sha256:8080022e101afb17565dc5a358a165ff4a20cd97b20b4db49ebed66315b3c733", size
= 4380816, upload-time = "2026-10-07T18:59:39.313Z" },
- { url =
"https://files.pythonhosted.org/packages/e7/2b/7aaf2b01d4d9c7168a55e0c318ab494ab436b434ebdfd4977fee5fabddf9/sqlalchemy-2.1.4-cp311-cp311-musllinux_1_2_aarch64.whl",
hash =
"sha256:948dff080b5ac00c8e63bf9e59fa70e386cca1476f55c672a72b6ec12e5cdb05", size
= 4566541, upload-time = "2026-10-07T18:37:40.136Z" },
- { url =
"https://files.pythonhosted.org/packages/e3/61/3e4df04dd09d1db05ea31a2d7dc015aed26e33fefaca610eecbfe9b8d26b/sqlalchemy-2.1.4-cp311-cp311-musllinux_1_2_riscv64.whl",
hash =
"sha256:12642e105b4e0cb2ca8428037368c1cbcded7b9d0344174607174d82b700e1eb", size
= 4377842, upload-time = "2026-10-07T18:59:42.612Z" },
- { url =
"https://files.pythonhosted.org/packages/53/4f/c983249adefed608b0cdc13bffe43a47a032316548e81bfdb4b6282a5b56/sqlalchemy-2.1.4-cp311-cp311-musllinux_1_2_x86_64.whl",
hash =
"sha256:976bd3fecfcfa58d69eab67e76325f564ed775aa0c0accf138ae17324b461431", size
= 4621091, upload-time = "2026-10-07T18:24:44.894Z" },
- { url =
"https://files.pythonhosted.org/packages/ee/90/257469b63c8cfad892b796c54a1392b3dfef93ee9273af5a8f49065d77ce/sqlalchemy-2.1.4-cp311-cp311-win32.whl",
hash =
"sha256:e2ace725a430e5b303fc3c422196966328ce77fb4fd053ad85572b46ed5fb71a", size
= 2379577, upload-time = "2026-10-07T18:24:56.929Z" },
- { url =
"https://files.pythonhosted.org/packages/3d/53/eae7fc135ac36ebc6385e87975ed5672d6311f0350f0358f38906a877f2c/sqlalchemy-2.1.4-cp311-cp311-win_amd64.whl",
hash =
"sha256:3c998d70e60fc95e93e5971395818c50f8a34396a6352075256fefac6b5cf81b", size
= 2430336, upload-time = "2026-10-07T18:24:58.751Z" },
- { url =
"https://files.pythonhosted.org/packages/81/fb/73b7ad29f65d9a114a3b42fe10ddf654bc360855dd29455381d4c7c34f97/sqlalchemy-2.1.4-cp311-cp311-win_arm64.whl",
hash =
"sha256:d045e63095828d2f1fd84d499936e6791522c15c390373fc755f118e4040393a", size
= 2394934, upload-time = "2026-10-07T18:22:34.762Z" },
- { url =
"https://files.pythonhosted.org/packages/49/5e/cb5b078e007340661b010fa8bd31ce27468f88e09b35266544df4e0c52ca/sqlalchemy-2.1.4-cp312-cp312-macosx_11_0_arm64.whl",
hash =
"sha256:f953be9ba26039a24a5205c65d33518b608ce6f4f0f4e9b9c14eaf42a10dfc52", size
= 2466469, upload-time = "2026-10-07T18:17:24.049Z" },
- { url =
"https://files.pythonhosted.org/packages/b1/98/44e2fdc5bc053dae559bf4f4eb7967ceecbad162299ecfc8de2edc3fcbe7/sqlalchemy-2.1.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
hash =
"sha256:1ac64fce94c5b389062d2e3806db5dc780447591e0dfd5ead218c884f0703f2e", size
= 4668213, upload-time = "2026-10-07T18:37:42.294Z" },
- { url =
"https://files.pythonhosted.org/packages/08/25/ed2262f964687b06f10c2c98b2dc9c9ed211f7cc11702879969a9ac217e4/sqlalchemy-2.1.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl",
hash =
"sha256:3e5045fb6aadbb0f978ab9b9d8822f7b7a97d2281814e7d13d791155664eace3", size
= 4720857, upload-time = "2026-10-07T18:24:46.842Z" },
- { url =
"https://files.pythonhosted.org/packages/4d/d4/fab64c61d5d22ddbb077afd1e6b29b498bdacdf6406a03f53566e7e01686/sqlalchemy-2.1.4-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl",
hash =
"sha256:e3a026436c51f296aa1d01243909a3b76490950e927824b10899a083cc26e7c3", size
= 4369351, upload-time = "2026-10-07T18:59:45.483Z" },
- { url =
"https://files.pythonhosted.org/packages/d9/e4/33413f0fafbcf3b332320aac2c1e40f3b4f17e56359a9474cb10de4bee8b/sqlalchemy-2.1.4-cp312-cp312-musllinux_1_2_aarch64.whl",
hash =
"sha256:71040390ef01c85e9d26e5c83cb0c5942dcc8725c49186430af160ce2f54234d", size
= 4591496, upload-time = "2026-10-07T18:37:44.433Z" },
- { url =
"https://files.pythonhosted.org/packages/bb/65/19821440cbd5c93da053d627b3e402eff11ff252bfae37700645b3c155a4/sqlalchemy-2.1.4-cp312-cp312-musllinux_1_2_riscv64.whl",
hash =
"sha256:07c60abaffb980b7382f2c75be8a5279c2b5df2626a0f5d751dd942799bf3b5c", size
= 4362379, upload-time = "2026-10-07T18:59:48.278Z" },
- { url =
"https://files.pythonhosted.org/packages/01/e3/168a0f93efd6ec40f59645a7e45ab08918e0bc8ecf07656e4ca09acdcc30/sqlalchemy-2.1.4-cp312-cp312-musllinux_1_2_x86_64.whl",
hash =
"sha256:a577e2127e52b0fe2bc54c73abb375a20ffe6f59fbc5568ccafc233f5bfcf8ef", size
= 4667997, upload-time = "2026-10-07T18:24:48.72Z" },
- { url =
"https://files.pythonhosted.org/packages/54/79/0a852ef65864acd8d577d7aa6f67146167382bd6faee7a7586b9e6e28275/sqlalchemy-2.1.4-cp312-cp312-win32.whl",
hash =
"sha256:6c79e0c824d51c586757ecd342160bbdede9010df04bb71b9bbfffd5c7b6ee29", size
= 2376664, upload-time = "2026-10-07T18:25:00.637Z" },
- { url =
"https://files.pythonhosted.org/packages/27/b9/a5934263bb1d712f743289ca224ab3b87e3570ac157802291e37ab85d365/sqlalchemy-2.1.4-cp312-cp312-win_amd64.whl",
hash =
"sha256:dffa69d2f3ba1933c1c1882dbef8fb3231b33eb19263e8b8c5cea24995071f06", size
= 2429357, upload-time = "2026-10-07T18:25:02.565Z" },
- { url =
"https://files.pythonhosted.org/packages/a5/fa/a2323d81384ff214aa189057b7455b63623e66f28208b982e86c3cb042f5/sqlalchemy-2.1.4-cp312-cp312-win_arm64.whl",
hash =
"sha256:e30524ae24e31d83e1b5f734862882c442f4158e3566f2c5f5e9bd3c659bb517", size
= 2388756, upload-time = "2026-10-07T18:22:36.025Z" },
- { url =
"https://files.pythonhosted.org/packages/dc/e4/23174288ed2c03d6dbd5dfacd69e28303ee95f49642a8ed0544932999fb6/sqlalchemy-2.1.4-cp313-cp313-macosx_11_0_arm64.whl",
hash =
"sha256:70006e9e6157200b795beeee04bd5cb15bccb40a14de595eb9f5dcf5945ed244", size
= 2460507, upload-time = "2026-10-07T18:04:40.044Z" },
- { url =
"https://files.pythonhosted.org/packages/9f/ac/254fadc98bfd600445b976e81c6d777b08a728a415c3b77a8c8d35b89a83/sqlalchemy-2.1.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
hash =
"sha256:3341ddc430733cd961bc064889f42712a0b4056733a21c83176842aad67d12a6", size
= 4594505, upload-time = "2026-10-07T18:16:58.768Z" },
- { url =
"https://files.pythonhosted.org/packages/83/6f/ac7beddc57c9c87bd77bc1c158fcbcdc20822f1873bf33ea3480d04e865f/sqlalchemy-2.1.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl",
hash =
"sha256:98f7a4bfeaed3722804f737ae2bd4077b35e57d6f4531fe612bac8160cda5acd", size
= 4647364, upload-time = "2026-10-07T18:34:51.721Z" },
- { url =
"https://files.pythonhosted.org/packages/0a/82/fc3891f261c4738a8b90cfdd805fe292d1af3b77f680a63b7349304c74e5/sqlalchemy-2.1.4-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl",
hash =
"sha256:ec5d079935f67febe0ab8a3a203ad591b99508adc34ae0027f696dcb20373537", size
= 4311619, upload-time = "2026-10-07T18:38:44.002Z" },
- { url =
"https://files.pythonhosted.org/packages/b0/1a/160c1320ab20e764a29721dc3fe7c31af34e291c652dca875d1ca6022b9a/sqlalchemy-2.1.4-cp313-cp313-musllinux_1_2_aarch64.whl",
hash =
"sha256:3d675b0856b6703b29d023517a4c19fecfbb55214ff5c72cd813527e40aed9b4", size
= 4518031, upload-time = "2026-10-07T18:17:05.615Z" },
- { url =
"https://files.pythonhosted.org/packages/30/2c/15a204333896e5dc63cb089ea20ca3ebc3c892bedf9fa00cc1a65e20d7b5/sqlalchemy-2.1.4-cp313-cp313-musllinux_1_2_riscv64.whl",
hash =
"sha256:a0bb9ee6a38cb36240dc88da11888348f61506047be54de3f09496c3b0ead6f5", size
= 4312818, upload-time = "2026-10-07T18:38:46.541Z" },
- { url =
"https://files.pythonhosted.org/packages/a6/55/5e78d288f198598f278b4b7baef42f18e039b14b1e1045e9df3cf571300d/sqlalchemy-2.1.4-cp313-cp313-musllinux_1_2_x86_64.whl",
hash =
"sha256:61a2c48771cf314b6613d327c795902bbc0eb6d6169deb23b35004ba6ad6cc0d", size
= 4608584, upload-time = "2026-10-07T18:34:53.69Z" },
- { url =
"https://files.pythonhosted.org/packages/ab/f6/e83b93ecc6e6528623fd7aa2af27ff0660d22354b78fe6ccad03f9ecbd9f/sqlalchemy-2.1.4-cp313-cp313-win32.whl",
hash =
"sha256:3fd608a06bafa768ad5711df4e17eb058bdc490e9df7d39b12a90947471e8712", size
= 2373880, upload-time = "2026-10-07T18:22:11.722Z" },
- { url =
"https://files.pythonhosted.org/packages/8f/46/afb02975023db6aa4b8608177c2fae17d0b435d9cbfcb5df4fa6e65a8078/sqlalchemy-2.1.4-cp313-cp313-win_amd64.whl",
hash =
"sha256:b756d74527c56a7e4cfae297f7930c1d75bdf4b23f214c8c13779746d28060cb", size
= 2424430, upload-time = "2026-10-07T18:22:23.688Z" },
- { url =
"https://files.pythonhosted.org/packages/21/e5/76dc82d59186b98b27589b33b01175c0d49512679276170271d9384418e2/sqlalchemy-2.1.4-cp313-cp313-win_arm64.whl",
hash =
"sha256:a64d54015233f824f171009977bfbb6b08bd0347b700cf17cb047ffb94c4148f", size
= 2385057, upload-time = "2026-10-07T18:11:48.248Z" },
- { url =
"https://files.pythonhosted.org/packages/43/b0/6675a01f4e6215e0a809d28a800953294ab31370fe8c4bb3eb9e28c0b5a6/sqlalchemy-2.1.4-cp314-cp314-macosx_11_0_arm64.whl",
hash =
"sha256:7a2f6164c0527cd8fc4cea79a5c9d8369ffee417b8ba444a42342f36b91deb75", size
= 2463645, upload-time = "2026-10-07T18:04:41.615Z" },
- { url =
"https://files.pythonhosted.org/packages/7e/24/4630a4009ea08a0769d5ff6517c7fc978f6a63eba32e08c44b98c284d7e4/sqlalchemy-2.1.4-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
hash =
"sha256:6929a11ad26a91a4efd891c1252b373c2e88f056910b83ec6030ed3f2cbcb734", size
= 4587911, upload-time = "2026-10-07T18:17:12.512Z" },
- { url =
"https://files.pythonhosted.org/packages/0e/02/953686f44448b92cc628245687a242799b6eb11ef30ad2bc7adacd51986d/sqlalchemy-2.1.4-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl",
hash =
"sha256:14528d37d7d46a92f2a483f188f7fecd86cdd789254a0412b960c9fc5e9efd6d", size
= 4617539, upload-time = "2026-10-07T18:34:55.826Z" },
- { url =
"https://files.pythonhosted.org/packages/13/23/a44288ab4fa12e51c9d390e7d798d70a45669ddcbddc9dd9b5948eb1aa3f/sqlalchemy-2.1.4-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl",
hash =
"sha256:d2cb669c6bd1f19caf51db6e3c4fdd4cbb76f9db3ef81c3aeb5e288d9bae101b", size
= 4310883, upload-time = "2026-10-07T18:38:50.265Z" },
- { url =
"https://files.pythonhosted.org/packages/a3/39/1c441ac015767f619a9e6cc306905bb042f94b84f2a1e930e989e9c6e209/sqlalchemy-2.1.4-cp314-cp314-musllinux_1_2_aarch64.whl",
hash =
"sha256:63dc25b21fd9a41dc09b7aada4b3b0d97cf4b6414f74bced6ac45326bc799ac9", size
= 4516511, upload-time = "2026-10-07T18:17:14.368Z" },
- { url =
"https://files.pythonhosted.org/packages/2f/b9/f54ea5ccb27d9a712d90d1617050bee761df25dc1fb5e0b7d2aa867deb51/sqlalchemy-2.1.4-cp314-cp314-musllinux_1_2_riscv64.whl",
hash =
"sha256:308f96d24e773d64609a2a0d1161a068f9f6e9165523bc4e07aa9c45f0c4213f", size
= 4312314, upload-time = "2026-10-07T18:38:53.249Z" },
- { url =
"https://files.pythonhosted.org/packages/df/9a/c1e39287ee988e4c2e25c619959b8fb15b297734be040653fe85b57517ee/sqlalchemy-2.1.4-cp314-cp314-musllinux_1_2_x86_64.whl",
hash =
"sha256:93b9416b9011a3b7689a933e04ac9f61d15686b6cb1948ebc1f41467153116c3", size
= 4577833, upload-time = "2026-10-07T18:34:57.829Z" },
- { url =
"https://files.pythonhosted.org/packages/41/78/5f1ae1911d2b20ccdb39ee522118533a4b5262b6e5e06bbcbb1ebd1f4617/sqlalchemy-2.1.4-cp314-cp314-win32.whl",
hash =
"sha256:89db94855287fdac98d74595cf13ea59fbffa608d6400ff972b0fd4c036d873f", size
= 2380724, upload-time = "2026-10-07T18:22:25.374Z" },
- { url =
"https://files.pythonhosted.org/packages/ca/93/4dfa4ce15d082011fb94e06e7c6b4c2957a3f0ddeb8fe9b89d007bc058d7/sqlalchemy-2.1.4-cp314-cp314-win_amd64.whl",
hash =
"sha256:080f8d853aac5bb5620f0ae6f46527397cf18dce0ec2b478b478469ef3cae2c4", size
= 2431689, upload-time = "2026-10-07T18:22:27.144Z" },
- { url =
"https://files.pythonhosted.org/packages/1a/c4/6f6c29eaf459c4c2d9b7d24e300bab32043f8f8a936df863f3b886b5564a/sqlalchemy-2.1.4-cp314-cp314-win_arm64.whl",
hash =
"sha256:64d41be1dd88f184de1931f0173f4827122a1b49fd1150656641200c0bdf640c", size
= 2396106, upload-time = "2026-10-07T18:11:49.528Z" },
- { url =
"https://files.pythonhosted.org/packages/a5/e9/48f851411665e394f60c669d1f9494d660f5f1fe46e275f9615cfc812a98/sqlalchemy-2.1.4-cp314-cp314t-macosx_11_0_arm64.whl",
hash =
"sha256:84272f329c15081a1e09b4a7261118b4e8a547f43e00fca98e55bbdf19eff3be", size
= 2503038, upload-time = "2026-10-07T18:19:41.094Z" },
- { url =
"https://files.pythonhosted.org/packages/41/ed/bf83068bda4051d7fd719c14cefc15d8466ef1e3656b9f4401b0509b11e0/sqlalchemy-2.1.4-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
hash =
"sha256:7b3f58bd26fc010ea28976d401845e4e6ce02e1b7c0288b3ea9c9a3c396f0bcc", size
= 4919623, upload-time = "2026-10-07T18:16:45.399Z" },
- { url =
"https://files.pythonhosted.org/packages/56/de/57eb70d56b70d22a9360d658b195834ecfdeff7a7bc5c2e3a7fa7a8f7823/sqlalchemy-2.1.4-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl",
hash =
"sha256:82d728075d42bd457d09655cf22e99d772a648c6f67e86743a4f05b7d063ca18", size
= 4830238, upload-time = "2026-10-07T18:37:04.468Z" },
- { url =
"https://files.pythonhosted.org/packages/70/3d/c410e9e79a53fff4c04444da609fed6404868d250f11fe8bc53d827bfb0e/sqlalchemy-2.1.4-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl",
hash =
"sha256:0970394ec5d9e397aafc5bc5fa2b7f8b58cb191f2703006b19a96ef4bf00b8d9", size
= 4508380, upload-time = "2026-10-07T18:38:44.277Z" },
- { url =
"https://files.pythonhosted.org/packages/1f/c3/01b93821ba35b5b162e79c613279d960a120767694f656da1c1374dd3ed3/sqlalchemy-2.1.4-cp314-cp314t-musllinux_1_2_aarch64.whl",
hash =
"sha256:6005f2f5fcd67fdd721446128e6a2a1d18f77387a604fbd26b0006a086b33096", size
= 4775311, upload-time = "2026-10-07T18:16:47.724Z" },
- { url =
"https://files.pythonhosted.org/packages/c7/88/0b40754e4d851d33548792062c23467a3d8dc07f2eff90cb19e4c404fb4c/sqlalchemy-2.1.4-cp314-cp314t-musllinux_1_2_riscv64.whl",
hash =
"sha256:0e01a3e199ae219381c4889993c5584b1b905fffe6830f639adb6770036a8913", size
= 4508558, upload-time = "2026-10-07T18:38:47.857Z" },
- { url =
"https://files.pythonhosted.org/packages/d3/2f/3916954eca5596d9e93fccd2ec0e45fd8c65981debac0ec4617639ded6ba/sqlalchemy-2.1.4-cp314-cp314t-musllinux_1_2_x86_64.whl",
hash =
"sha256:22129e7d00ac66b291840c4dc83a9c497456ab5bffa682dcbfdc2356f9e49e5a", size
= 4767114, upload-time = "2026-10-07T18:37:06.792Z" },
- { url =
"https://files.pythonhosted.org/packages/6b/d6/6a29716aec6ae17cd77e27b5e0dedc68cf9068594f2b601806c1d146427a/sqlalchemy-2.1.4-cp314-cp314t-win32.whl",
hash =
"sha256:bc33d3e59d4e84b8866cc9ba13732585e37212dbe3542cb09f232682b36f47a5", size
= 2439584, upload-time = "2026-10-07T18:22:44.434Z" },
- { url =
"https://files.pythonhosted.org/packages/34/79/2f0b33647d2d26f098269096c1864c0b4e81095354cdedb95192647f47cd/sqlalchemy-2.1.4-cp314-cp314t-win_amd64.whl",
hash =
"sha256:346d144e8912ae087b10d3c2081657cb634728600693eee6dbb71d7eb4768101", size
= 2507217, upload-time = "2026-10-07T18:22:46.176Z" },
- { url =
"https://files.pythonhosted.org/packages/93/e5/869c1ac0a21e17e4617b6a7828b50320bedb7074b6d67aec59299be5cdba/sqlalchemy-2.1.4-cp314-cp314t-win_arm64.whl",
hash =
"sha256:3e5de57c71b3460e2ca6137e82cd3cb8c9f711f301f50d5c77156fdb9c822999", size
= 2425329, upload-time = "2026-10-07T18:12:20.595Z" },
- { url =
"https://files.pythonhosted.org/packages/2b/8e/a082a165b473dae45d2f2f79be15f5c405ac579830c64253efbf04695177/sqlalchemy-2.1.4-cp315-cp315-macosx_11_0_arm64.whl",
hash =
"sha256:418786f05387ddb66ee683a1d016c5a8d9bf7be921e6ee8f285c7b6ac961a731", size
= 2463572, upload-time = "2026-10-07T18:11:12.053Z" },
- { url =
"https://files.pythonhosted.org/packages/d1/35/74db254005ecb384533973b157ba1fc3fe5bc41a5bc6e0500ab8369c49e6/sqlalchemy-2.1.4-cp315-cp315-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
hash =
"sha256:283914efed30e4d44301e36ac90ad048570538b8a70f072fe01578d9b205d09c", size
= 4591740, upload-time = "2026-10-07T18:01:00.314Z" },
- { url =
"https://files.pythonhosted.org/packages/70/81/5cadd72b0c26b6ee7c1e6950cb9f0cfc383246a842314a1b2a87f455db25/sqlalchemy-2.1.4-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl",
hash =
"sha256:3d2eacdbeb990b80235763860923c60a8393745b66f7149a734980c65896da72", size
= 4627040, upload-time = "2026-10-07T18:09:24.836Z" },
- { url =
"https://files.pythonhosted.org/packages/8e/78/aed93cc373f61b57625e1f9f84bbf12358e32e935e64fa098f3a446e1203/sqlalchemy-2.1.4-cp315-cp315-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl",
hash =
"sha256:e43fca5fdd5f34a3f8c54107a3648d3139de8bbf596a189f3f0de94bd84949bb", size
= 4333103, upload-time = "2026-10-07T18:33:48.275Z" },
- { url =
"https://files.pythonhosted.org/packages/e0/31/ecc6bbd365671cdc512a59d42afa7c34b2833a8d841754918ae3f62d36dd/sqlalchemy-2.1.4-cp315-cp315-musllinux_1_2_aarch64.whl",
hash =
"sha256:2e1b5343d315b10a4a71da481729f66f830a561595e02b61e8a5a65d658325ac", size
= 4519962, upload-time = "2026-10-07T18:01:02.268Z" },
- { url =
"https://files.pythonhosted.org/packages/58/58/9f8f6157c2252aefe73f4a0b3859413bb720d14321aa7f367c691949aaf8/sqlalchemy-2.1.4-cp315-cp315-musllinux_1_2_riscv64.whl",
hash =
"sha256:42c37c06adcecf444e8c981f7e9237a41bdd445c83da0df9e08b4ad958becbbc", size
= 4331935, upload-time = "2026-10-07T18:33:50.334Z" },
- { url =
"https://files.pythonhosted.org/packages/97/de/a4ae4b95d17607004f01e9a085fb221087c557bbad77a3d87d5d0a5fd8bc/sqlalchemy-2.1.4-cp315-cp315-musllinux_1_2_x86_64.whl",
hash =
"sha256:bab7f51d38766d6a64da2b41976f1b3f9cc2ff37d3f2f63bdbac876199f3a48e", size
= 4589275, upload-time = "2026-10-07T18:09:26.872Z" },
- { url =
"https://files.pythonhosted.org/packages/65/27/56f69293a01279ac0e6077b8c358eb0f1c2afc6aa17428414a86c8871042/sqlalchemy-2.1.4-cp315-cp315-win32.whl",
hash =
"sha256:1541ba5bf0f232cd61f9ef3df78c93977c72ba6031506a0e6d057b2a3ddb76e9", size
= 2380494, upload-time = "2026-10-07T18:04:25.637Z" },
- { url =
"https://files.pythonhosted.org/packages/2c/7c/ff7e29f95996ed49b950afd531b89e7c8d15addb41735643d07090550090/sqlalchemy-2.1.4-cp315-cp315-win_amd64.whl",
hash =
"sha256:596a95611c217cb19c21f02f43c637cb507cab71dcf0467c5c7d98fcdd703007", size
= 2431760, upload-time = "2026-10-07T18:04:27.275Z" },
- { url =
"https://files.pythonhosted.org/packages/76/8c/4eaa4978760cd632093ea272e7c4f88223619202f5481f897e67d4377409/sqlalchemy-2.1.4-cp315-cp315-win_arm64.whl",
hash =
"sha256:0d1ca95e42ce3c18818f170b741d30a33b292c6f6b9a202ffd717e28fc99b8c7", size
= 2395807, upload-time = "2026-10-07T18:30:54.962Z" },
- { url =
"https://files.pythonhosted.org/packages/be/7b/b806fbfc61ade37c4f3aecec0874c345fb297b56a3743116dcefa3e4700d/sqlalchemy-2.1.4-cp315-cp315t-macosx_11_0_arm64.whl",
hash =
"sha256:0f672ed6972164fec94a8f0b21dcf8545080d0727866335fb8adf9f4764ce6ec", size
= 2499195, upload-time = "2026-10-07T18:19:42.835Z" },
- { url =
"https://files.pythonhosted.org/packages/fc/ba/4f9fba8340222f09287e936d7b76e6911a4e507c7d6373ada770e8f697d5/sqlalchemy-2.1.4-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
hash =
"sha256:72e3fa41d1fdab87d4e88bbdd69c9522e2795549fbe7b07bcf4ae9ec175f4b11", size
= 4896914, upload-time = "2026-10-07T18:16:53.18Z" },
- { url =
"https://files.pythonhosted.org/packages/55/34/c4aeec7bee453badd8b0e02c2021a13bd70ef01038303d05326e99f595b6/sqlalchemy-2.1.4-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl",
hash =
"sha256:cb2cb98d056e63e353ed697750004e07c79b054d73059ba3184ca3bb07296bea", size
= 4846593, upload-time = "2026-10-07T18:37:08.766Z" },
- { url =
"https://files.pythonhosted.org/packages/82/54/6dd8504364e5f5efd328e98fea963e5a2e978ff8dcba70d95231314f82a9/sqlalchemy-2.1.4-cp315-cp315t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl",
hash =
"sha256:1d66fdcc5506e0f8bb8d3f4f95125220a7cd6c46e8b1762750f01e9639973dd8", size
= 4494821, upload-time = "2026-10-07T18:38:51.166Z" },
- { url =
"https://files.pythonhosted.org/packages/df/42/dc584c098bce29578fd0611cd6f36830e06b4dd2505d3020a0b592f4cf08/sqlalchemy-2.1.4-cp315-cp315t-musllinux_1_2_aarch64.whl",
hash =
"sha256:81f802c96dbf96e59c6982fa1b87da7868920fb0c27b9b81e560a62f57c2ccfb", size
= 4752545, upload-time = "2026-10-07T18:16:55.711Z" },
- { url =
"https://files.pythonhosted.org/packages/8c/41/69a70c1419bea97e80f65ce09f4f626df464752b276f4f3d69ff6fbf2325/sqlalchemy-2.1.4-cp315-cp315t-musllinux_1_2_riscv64.whl",
hash =
"sha256:acf8982c70471a68aa90d1aba08b48860c55b3357ec84ccb0f09368ead2ce099", size
= 4494093, upload-time = "2026-10-07T18:38:54.37Z" },
- { url =
"https://files.pythonhosted.org/packages/ef/bd/d296c2223e8417b350db215d94dcd344bc0dfe9deb7d810a21f7d8cd0b14/sqlalchemy-2.1.4-cp315-cp315t-musllinux_1_2_x86_64.whl",
hash =
"sha256:778094c83e36c430756a7e1a1ac66fc3cffb2c6a1067958fe6b920abcec7bc5a", size
= 4771973, upload-time = "2026-10-07T18:37:10.93Z" },
- { url =
"https://files.pythonhosted.org/packages/13/4c/c3a10d9da10e4e60808ffd1825547b383c0d7ca9e56d15cdae47c04e752e/sqlalchemy-2.1.4-cp315-cp315t-win32.whl",
hash =
"sha256:963348422b22f760e9462e56bc32bf4d95d224cc5b8c79a3c6e3b786d3d2a2b2", size
= 2436383, upload-time = "2026-10-07T18:22:48.162Z" },
- { url =
"https://files.pythonhosted.org/packages/51/de/8045d4ad1fd3a66c3b9bb576f3734c86015e19ae2f1617af92eb63cf9e58/sqlalchemy-2.1.4-cp315-cp315t-win_amd64.whl",
hash =
"sha256:fba3500e170d25f581e053009edeb0b158116084d91d465de218718d336b67c3", size
= 2502237, upload-time = "2026-10-07T18:22:50.196Z" },
- { url =
"https://files.pythonhosted.org/packages/6b/4b/245e2315d331cc15765a2373e068445fbd28eb63beb23ea862828808c0bf/sqlalchemy-2.1.4-cp315-cp315t-win_arm64.whl",
hash =
"sha256:0a9a464bc360856b7ea9bf8aa26aab92ca115dd08149cb0e004063d5db13584b", size
= 2420917, upload-time = "2026-10-07T18:12:21.876Z" },
- { url =
"https://files.pythonhosted.org/packages/f7/62/dbf11a262f6fbb41390cab2d8e47a30ec0961018b68201607b599dd489f5/sqlalchemy-2.1.4-py3-none-any.whl",
hash =
"sha256:0b96edcc2cd60fe1e35f67a46f4eb076e57297841b9eae949ac5f196593f00a7", size
= 2054935, upload-time = "2026-10-07T18:01:16.403Z" },
+sdist = { url =
"https://files.pythonhosted.org/packages/29/9c/271aa905cf2964f841371a97f3e63ab692bf51b4423d0491e67bc7f64037/sqlalchemy-2.0.54.tar.gz",
hash =
"sha256:baa8521e8ee9f24e75dfc7aaabc08020e551ef0d48d7c3e3536f5cddf277586b", size
= 9969559, upload-time = "2026-09-15T21:06:57.337Z" }
+wheels = [
+ { url =
"https://files.pythonhosted.org/packages/76/bf/7339b18ef05c03335a32f077e450c8040eab0c952c2964e32cd889eafc22/sqlalchemy-2.0.54-cp311-cp311-macosx_11_0_arm64.whl",
hash =
"sha256:7d03084f3352dd92048cb19c71d90f116d076c9c7937e0ebc7752c4685de6d38", size
= 2187776, upload-time = "2026-09-15T22:32:35.535Z" },
+ { url =
"https://files.pythonhosted.org/packages/9b/bb/3b6f5f3f51582d63af4c88b1e70da7888e936dee6b86a237b7633fb3f216/sqlalchemy-2.0.54-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
hash =
"sha256:92622fbbda1b1fe1632f3402a6e516a93c0e41d9158839c6b3dfb12117f26b72", size
= 3428952, upload-time = "2026-09-15T22:40:14.441Z" },
+ { url =
"https://files.pythonhosted.org/packages/77/d5/ffd6b59795ebec81d582ad866f71ec7c73d356768e0442c6a07bba61c40c/sqlalchemy-2.0.54-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl",
hash =
"sha256:5800ddea045c2c860ef1d359a07a3066c7c0c426f45e3abc3874e116cb3c6937", size
= 3428566, upload-time = "2026-09-15T22:35:33.739Z" },
+ { url =
"https://files.pythonhosted.org/packages/63/ff/1f0bffb0653b30711e2445a48968eff9412b4e5bf0870f1e72e8a69595ef/sqlalchemy-2.0.54-cp311-cp311-musllinux_1_2_aarch64.whl",
hash =
"sha256:1019abef05a4b5eafc8eae6fb483167fa28a4dbe5f518d577b744f31a5276a37", size
= 3377697, upload-time = "2026-09-15T22:40:16.494Z" },
+ { url =
"https://files.pythonhosted.org/packages/97/76/774906be0d41cc4a14ecfbc015112fb7d0a3f1c3393f2c179d10388f8f0b/sqlalchemy-2.0.54-cp311-cp311-musllinux_1_2_x86_64.whl",
hash =
"sha256:b67749f7da3985a529cefbb1474783cb91ef44371cb9713630bade3de908760d", size
= 3402966, upload-time = "2026-09-15T22:35:35.726Z" },
+ { url =
"https://files.pythonhosted.org/packages/cd/bb/1d7fe50ace612bf342d3440d8b09544746949120326c3dc487cfc2592fba/sqlalchemy-2.0.54-cp311-cp311-win32.whl",
hash =
"sha256:2f61a70b3b82e2ec7ad6a4f2301422b9ca93ff06917983e41317bcae878bddf6", size
= 2142297, upload-time = "2026-09-15T21:25:19.917Z" },
+ { url =
"https://files.pythonhosted.org/packages/d6/49/18fe80f64b1f6bcd422e649e40a78031f8624b2fde22ca54e950dfa6e25a/sqlalchemy-2.0.54-cp311-cp311-win_amd64.whl",
hash =
"sha256:1d887fbd5d248e250807bd801e697fc73e3b44866ce5f093dbc90512e75bde25", size
= 2169222, upload-time = "2026-09-15T21:25:21.114Z" },
+ { url =
"https://files.pythonhosted.org/packages/c6/30/75504fd1d70458000e85a3e772333dd0fbf80254b0dc4d41c99922e4d112/sqlalchemy-2.0.54-cp312-cp312-macosx_11_0_arm64.whl",
hash =
"sha256:ffba7eb2d67c7505e82a0902aa854d8824b74c28a183820d6a8bd3cfd0f812c2", size
= 2187596, upload-time = "2026-09-15T22:32:37.031Z" },
+ { url =
"https://files.pythonhosted.org/packages/a2/3d/5dfbb9528a391186a99986daecc5cbe003f34408dee91db8f5cdcf917040/sqlalchemy-2.0.54-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
hash =
"sha256:63cae7210fea9899e0bf35c1f1ae55d3ddd9c6d47cae8b6b43d945afa79dd65b", size
= 3448745, upload-time = "2026-09-15T22:40:18.168Z" },
+ { url =
"https://files.pythonhosted.org/packages/d9/93/34fdc4a4faced77037a6b3ba1db1acd92e9bd12c21e229b327edd1d3e881/sqlalchemy-2.0.54-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl",
hash =
"sha256:68d994e9b0d0423a02a20039631fa6fcbb7fa829a992f7605025774940305d19", size
= 3466644, upload-time = "2026-09-15T22:35:37.7Z" },
+ { url =
"https://files.pythonhosted.org/packages/66/68/4beab40ae60ac3d679dbbb46bc0d2bb277013264a0bde37ecaf4b6780e98/sqlalchemy-2.0.54-cp312-cp312-musllinux_1_2_aarch64.whl",
hash =
"sha256:3de32cc6721eb42c3aad35bcfb244bb7a18f66c00f3582aae6281d6287a339b5", size
= 3401519, upload-time = "2026-09-15T22:40:19.907Z" },
+ { url =
"https://files.pythonhosted.org/packages/e5/df/a24757e3249b1c7c1c5f0317666d16a8ab901ba239819ecef29eb4ed172e/sqlalchemy-2.0.54-cp312-cp312-musllinux_1_2_x86_64.whl",
hash =
"sha256:d31a2bc06a854ee52dd86b455be4df7c750b28817e2d1b884e31fff126c4fd7b", size
= 3432590, upload-time = "2026-09-15T22:35:39.434Z" },
+ { url =
"https://files.pythonhosted.org/packages/d9/0c/69559e3d90d200fbfe9c44aff39a9ff4e506b1a3e9557a203d69df721244/sqlalchemy-2.0.54-cp312-cp312-win32.whl",
hash =
"sha256:32de6deded25e8b9b11d07428d496ff24dfbc882b8e990c177266948cb5f3d9e", size
= 2140825, upload-time = "2026-09-15T21:25:22.444Z" },
+ { url =
"https://files.pythonhosted.org/packages/d9/10/4a0f7113664c2877906db143709c52ddbd28a88e4d51f0b520bc30048ba7/sqlalchemy-2.0.54-cp312-cp312-win_amd64.whl",
hash =
"sha256:d65f8ca742ef1e1e14bc417ef59dc2ddf207a7b66b30cfdc6152447314e030cf", size
= 2170005, upload-time = "2026-09-15T21:25:23.885Z" },
+ { url =
"https://files.pythonhosted.org/packages/aa/1c/021ccd7a838425f52e67c02edc541e8d53be8a27a103e684e14b18aac17b/sqlalchemy-2.0.54-cp313-cp313-macosx_11_0_arm64.whl",
hash =
"sha256:b374e3bc91e246a942592a98ba6a23be76fff21358b00546ac8c0ebc0fd0e00b", size
= 2184259, upload-time = "2026-09-15T22:28:59.153Z" },
+ { url =
"https://files.pythonhosted.org/packages/74/8f/f95de908a4af7ac3a6925cdcb837a93274f608925a0fbc786df38811bccf/sqlalchemy-2.0.54-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
hash =
"sha256:31d5458672a6f72db2c087f4a5098b3c8503ea0254186ff29205d63afa9401a4", size
= 3398792, upload-time = "2026-09-15T22:29:35.218Z" },
+ { url =
"https://files.pythonhosted.org/packages/84/26/bd327a1a6be223e438c98ac8faf299307d83797225a81f3b209607a9fd98/sqlalchemy-2.0.54-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl",
hash =
"sha256:cad78d04254967bdbcccbed5e631d88fe4868530946ab0929aa45e9032849518", size
= 3417562, upload-time = "2026-09-15T22:40:32.637Z" },
+ { url =
"https://files.pythonhosted.org/packages/4b/b1/f13a8fe8e8e167d8e65484b91b827897b8a5ca1efd7ba6e87a5f63412fed/sqlalchemy-2.0.54-cp313-cp313-musllinux_1_2_aarch64.whl",
hash =
"sha256:48611087a75d26d798003645c688c7d3cfc26b89dbe4a2c568d6b378d330deae", size
= 3349138, upload-time = "2026-09-15T22:29:36.729Z" },
+ { url =
"https://files.pythonhosted.org/packages/b1/b7/5fd58f03281a74c57f02f509433e1be58a79d9f5b0e14020e665e0dcb614/sqlalchemy-2.0.54-cp313-cp313-musllinux_1_2_x86_64.whl",
hash =
"sha256:d6adf80277372a89910a0f3ccfe960b846d279dc55b366dd5c5ec07f41c84758", size
= 3382943, upload-time = "2026-09-15T22:40:34.587Z" },
+ { url =
"https://files.pythonhosted.org/packages/4b/73/e29fa88dfc809857a55e6523911d345d00cab4adf87032c21ade8874223c/sqlalchemy-2.0.54-cp313-cp313-win32.whl",
hash =
"sha256:264460333ed0b177cbb1956355d0ee4e0cab83fb415c934ce12a25db2e7be39c", size
= 2138931, upload-time = "2026-09-15T22:42:51.801Z" },
+ { url =
"https://files.pythonhosted.org/packages/89/9d/885e7491836f3dad368c74f0d5b93551d37b0ec66c9e8753240ee988308f/sqlalchemy-2.0.54-cp313-cp313-win_amd64.whl",
hash =
"sha256:cf89e92bf0d4204a6afcc17af27b9271ed9c7e34e17d6f80c085d431ea4a1747", size
= 2166496, upload-time = "2026-09-15T22:42:53.603Z" },
+ { url =
"https://files.pythonhosted.org/packages/ab/c0/4a6503c9d22d6d00a5631082ab1484222ecf7d573db791e0f53161bf7745/sqlalchemy-2.0.54-cp314-cp314-macosx_11_0_arm64.whl",
hash =
"sha256:abd6b21bc58e91c1932eb5d6d7f1bd44a551dfec7b6a7f517c3638ccd67233a0", size
= 2185899, upload-time = "2026-09-15T22:29:00.581Z" },
+ { url =
"https://files.pythonhosted.org/packages/12/28/f4424f618bd1f373761a32a821d53ce2c257350e9894bae9b968cb03d8fd/sqlalchemy-2.0.54-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
hash =
"sha256:5417322b3c025dd82918725d3bf09ec105fac95efc195722b8b06e1d9c381139", size
= 3394763, upload-time = "2026-09-15T22:29:38.131Z" },
+ { url =
"https://files.pythonhosted.org/packages/59/d2/7f0c77f8e042cb5f28275fea29c3080b4ac6fd4b3fdd7f59ff1ef3e28c11/sqlalchemy-2.0.54-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl",
hash =
"sha256:6f84099e4b04a5c2d44500a2a8302eee5af4bc6fee63e8c6e9cf6786e747280e", size
= 3402800, upload-time = "2026-09-15T22:40:36.509Z" },
+ { url =
"https://files.pythonhosted.org/packages/af/32/3eaa930bcf71d17a72587081d2706a5fb97ab3f11a7e0fb838f581f7cff1/sqlalchemy-2.0.54-cp314-cp314-musllinux_1_2_aarch64.whl",
hash =
"sha256:a0956dc754d3884da7fe60097110ec7a8a105d26afa2f0844468f4b1598c6912", size
= 3341469, upload-time = "2026-09-15T22:29:39.682Z" },
+ { url =
"https://files.pythonhosted.org/packages/eb/cc/cddb6cbd4408e5c55b3bf722be26b9d3b54d42509f901b7ecc15debd3d1f/sqlalchemy-2.0.54-cp314-cp314-musllinux_1_2_x86_64.whl",
hash =
"sha256:87ba8834318b0d8dc94fc6f405d071b5c08be32a6c3fd68107fd6952ee949615", size
= 3373232, upload-time = "2026-09-15T22:40:39.181Z" },
+ { url =
"https://files.pythonhosted.org/packages/34/2f/9c2aa5efc642b7f3b985d13565cd1a5e78856e079ef3022796fea5180498/sqlalchemy-2.0.54-cp314-cp314-win32.whl",
hash =
"sha256:842540e4382472f23c79589995752648d14696a8200d0807ed8c5c59c92ade44", size
= 2142018, upload-time = "2026-09-15T22:42:55.118Z" },
+ { url =
"https://files.pythonhosted.org/packages/e2/0b/3594f1f51769feb3022d686135dc5d8682a12345ed15ae61d0c0ca42cbee/sqlalchemy-2.0.54-cp314-cp314-win_amd64.whl",
hash =
"sha256:f4e8f955d13af83fb4e35c3472e5377ee22d3445eada1e5e48199588edb69835", size
= 2169220, upload-time = "2026-09-15T22:42:56.727Z" },
+ { url =
"https://files.pythonhosted.org/packages/c3/a5/c211a9a7af83222509519407e16a4db760c6df3d03be69ebc5414d465321/sqlalchemy-2.0.54-cp314-cp314t-macosx_11_0_arm64.whl",
hash =
"sha256:ca05f4e7852cf48083b0cf157e4f9504b7068780422a50fa82f45353b8c5e14a", size
= 2208458, upload-time = "2026-09-15T22:30:05.718Z" },
+ { url =
"https://files.pythonhosted.org/packages/cb/2e/490ad7b3731116cb48ba170f7722eaa99a89707193e54389ca84b7ad55af/sqlalchemy-2.0.54-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
hash =
"sha256:18a8b6417cbb7b735cf91c2b59453c2a554cefa0a8d7bd15aa35740739410d77", size
= 3660585, upload-time = "2026-09-15T22:36:06.649Z" },
+ { url =
"https://files.pythonhosted.org/packages/eb/25/15dfe6814847eeda773bd58ab6cf42a94b0176e5cf25a578fc1165777160/sqlalchemy-2.0.54-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl",
hash =
"sha256:4e55a0b96a1577a1e108c91ccdeeb9cd92768f28ce206597311c3bf6d6423abd", size
= 3624442, upload-time = "2026-09-15T22:36:38.377Z" },
+ { url =
"https://files.pythonhosted.org/packages/aa/19/724d0a6a2fb2a86ff2d6008e581c258f722d9b7d8e52adc7b79085febdd4/sqlalchemy-2.0.54-cp314-cp314t-musllinux_1_2_aarch64.whl",
hash =
"sha256:69cab115c40fd02c5a22c68e4ee630fa6ef9a1650f1de944419aab1f7096fc4f", size
= 3562972, upload-time = "2026-09-15T22:36:08.581Z" },
+ { url =
"https://files.pythonhosted.org/packages/49/bb/9df1bd81c2f2d000cf5e7a1b1a9b331468a3aab939ad983355e701fa42b2/sqlalchemy-2.0.54-cp314-cp314t-musllinux_1_2_x86_64.whl",
hash =
"sha256:e08397c6c42f53b2488acde9108b8bfefd52d7afd1bf2f03d2ffcab7a204aceb", size
= 3576479, upload-time = "2026-09-15T22:36:40.272Z" },
+ { url =
"https://files.pythonhosted.org/packages/df/c0/b5775465d3b89061d7c46057c31c56ff8fb6c509550b2b0c6570ffc248b3/sqlalchemy-2.0.54-cp314-cp314t-win32.whl",
hash =
"sha256:b9086b8ad48280ef6a7ba68262d5e44f7db1c4cb1973e8cdae8a9f467ae66f51", size
= 2174794, upload-time = "2026-09-15T22:31:45.925Z" },
+ { url =
"https://files.pythonhosted.org/packages/77/f8/296c2e46b4ccd3f29b00b954ef2f195dde32f98e352ed21de1d292cedc0d/sqlalchemy-2.0.54-cp314-cp314t-win_amd64.whl",
hash =
"sha256:b67c1744e453af833667fc1b84de07adb4a64f3536ef52a8ec5ac2b941d43970", size
= 2211942, upload-time = "2026-09-15T22:31:47.368Z" },
+ { url =
"https://files.pythonhosted.org/packages/24/a1/bd5e3e99bc9c8863b51ac5b9b03008a7f2da8c6b59695992f5c654e1265b/sqlalchemy-2.0.54-py3-none-any.whl",
hash =
"sha256:7e33a631ab1474f8fe6b910bd1a07b7b8009c4c78cdd3fb18001b03e3bc2e1d2", size
= 1958015, upload-time = "2026-09-15T22:24:22.95Z" },
]
[package.optional-dependencies]