This is an automated email from the ASF dual-hosted git repository.

lidavidm pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow-adbc.git


The following commit(s) were added to refs/heads/main by this push:
     new 70ee2fe73 test(c/driver/postgresql): add JSON, JSONB cases (#4381)
70ee2fe73 is described below

commit 70ee2fe73eef286781e019a879fb8b182efd23d7
Author: David Li <[email protected]>
AuthorDate: Thu Jun 11 20:27:25 2026 -0700

    test(c/driver/postgresql): add JSON, JSONB cases (#4381)
    
    * Update the validation suite version.
    * Add cases for JSON, JSONB.
    * Update the table in the documentation.
    
    Closes #4179.
---
 c/driver/postgresql/validation/pyproject.toml      |   2 +-
 c/driver/postgresql/validation/pytest.ini          |   1 +
 .../validation/queries/ingest/decimal.txtcase      |   1 +
 c/driver/postgresql/validation/tests/conftest.py   |   1 +
 c/driver/postgresql/validation/tests/postgresql.py |   2 +
 c/driver/postgresql/validation/uv.lock             | 368 ++++++++++++++-------
 docs/source/driver/postgresql.rst                  |   4 +
 7 files changed, 251 insertions(+), 128 deletions(-)

diff --git a/c/driver/postgresql/validation/pyproject.toml 
b/c/driver/postgresql/validation/pyproject.toml
index 8c3c55839..0d335574e 100644
--- a/c/driver/postgresql/validation/pyproject.toml
+++ b/c/driver/postgresql/validation/pyproject.toml
@@ -24,4 +24,4 @@ dependencies = [
 ]
 
 [tool.uv.sources]
-adbc-drivers-validation = { git = 
"https://github.com/adbc-drivers/validation";, rev = 
"551046350f8225c5e115ecefec27f86f71e3a4aa" }
+adbc-drivers-validation = { git = 
"https://github.com/adbc-drivers/validation";, rev = 
"ffb8c9e9b76b2953525e67f5305497587ced1edd" }
diff --git a/c/driver/postgresql/validation/pytest.ini 
b/c/driver/postgresql/validation/pytest.ini
index 73579bb9d..c23d1e88e 100644
--- a/c/driver/postgresql/validation/pytest.ini
+++ b/c/driver/postgresql/validation/pytest.ini
@@ -22,6 +22,7 @@ xfail_strict = true
 
 markers =
     feature: test for a driver-specific feature
+    requires_features
 
 filterwarnings =
     error
diff --git a/c/driver/postgresql/validation/queries/ingest/decimal.txtcase 
b/c/driver/postgresql/validation/queries/ingest/decimal.txtcase
index 81bc7bf87..a4d079ab3 100644
--- a/c/driver/postgresql/validation/queries/ingest/decimal.txtcase
+++ b/c/driver/postgresql/validation/queries/ingest/decimal.txtcase
@@ -43,3 +43,4 @@
 {"idx": 2, "value": "-123.45"}
 {"idx": 3, "value": "9999999.99"}
 {"idx": 4, "value": "-9999999.99"}
+{"idx": 5, "value": null}
diff --git a/c/driver/postgresql/validation/tests/conftest.py 
b/c/driver/postgresql/validation/tests/conftest.py
index 8381e4df0..465b2eaca 100644
--- a/c/driver/postgresql/validation/tests/conftest.py
+++ b/c/driver/postgresql/validation/tests/conftest.py
@@ -23,6 +23,7 @@ import pytest
 from adbc_drivers_validation.tests.conftest import (  # noqa: F401
     conn,
     conn_factory,
+    db_kwargs,
     manual_test,
     noci,
     pytest_addoption,
diff --git a/c/driver/postgresql/validation/tests/postgresql.py 
b/c/driver/postgresql/validation/tests/postgresql.py
index eab178f42..b46226f38 100644
--- a/c/driver/postgresql/validation/tests/postgresql.py
+++ b/c/driver/postgresql/validation/tests/postgresql.py
@@ -31,6 +31,7 @@ class PostgreSQLQuirks(model.DriverQuirks):
     features = model.DriverFeatures(
         connection_get_table_schema=True,
         connection_transactions=True,
+        get_objects=True,
         get_objects_constraints_foreign=False,
         get_objects_constraints_primary=False,
         get_objects_constraints_unique=False,
@@ -40,6 +41,7 @@ class PostgreSQLQuirks(model.DriverQuirks):
         statement_bulk_ingest_temporary=False,
         statement_execute_schema=True,
         statement_get_parameter_schema=True,
+        statement_prepare=True,
         statement_rows_affected=True,
         statement_rows_affected_ddl=False,
         current_catalog="postgres",
diff --git a/c/driver/postgresql/validation/uv.lock 
b/c/driver/postgresql/validation/uv.lock
index adf8a0106..40f7f13e4 100644
--- a/c/driver/postgresql/validation/uv.lock
+++ b/c/driver/postgresql/validation/uv.lock
@@ -4,47 +4,60 @@ requires-python = ">=3.13"
 
 [[package]]
 name = "adbc-driver-manager"
-version = "1.9.0"
+version = "1.11.0"
 source = { registry = "https://pypi.org/simple"; }
 dependencies = [
     { name = "typing-extensions" },
 ]
-sdist = { url = 
"https://files.pythonhosted.org/packages/cd/b4/09a85ca2bb2ba53d6577745a0aae0766393b69d0ae1e645ff4d34bee6866/adbc_driver_manager-1.9.0.tar.gz";,
 hash = 
"sha256:d6687acf57f92e469e78d53df6baf70ab62f8886ba8f2e0b25613aecd1807ae9", size 
= 205762, upload-time = "2025-11-07T01:46:55.953Z" }
+sdist = { url = 
"https://files.pythonhosted.org/packages/e9/5e/50aab18cb501e42d3aca3cd2cc26c6637094fcaf5b6576e350c444188f1f/adbc_driver_manager-1.11.0.tar.gz";,
 hash = 
"sha256:c64aaabeb5810109ab3d2961008f1b014e9f2d87b3df4416c2a080a40237af50", size 
= 233059, upload-time = "2026-04-07T00:17:28.263Z" }
 wheels = [
-    { url = 
"https://files.pythonhosted.org/packages/d9/e7/17a9738b8e6f549606f049f616b01b9517288022bf384cf6f2ef3127288c/adbc_driver_manager-1.9.0-cp313-cp313-macosx_10_15_x86_64.whl";,
 hash = 
"sha256:7f9db5a3b38d4b9042b97dbee3c739b0a075585fbe2c11cdd60ba817a1618b03", size 
= 537614, upload-time = "2025-11-07T01:45:42.433Z" },
-    { url = 
"https://files.pythonhosted.org/packages/ee/de/ae8d9a532dba87b61201bf64678b142afb07782c014539cef81681f0fa35/adbc_driver_manager-1.9.0-cp313-cp313-macosx_11_0_arm64.whl";,
 hash = 
"sha256:fe4affd71f7facdaf4c04839846b090c945586c36d0fd79cd7fb5a3251d36f85", size 
= 516016, upload-time = "2025-11-07T01:45:44.195Z" },
-    { url = 
"https://files.pythonhosted.org/packages/a5/e7/c3039fd725636d1d25c339223027a7f999ac23048d4437ab5ad22f42ecdd/adbc_driver_manager-1.9.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl";,
 hash = 
"sha256:0a7961db77730ce0ab326a225dc534b43d4017b28a30703eaac7e3cdf1e5fb7d", size 
= 3108213, upload-time = "2025-11-07T01:45:46.27Z" },
-    { url = 
"https://files.pythonhosted.org/packages/e8/74/60407d06a3263155495e730e8fa671db976c918aea16b5471de16025b811/adbc_driver_manager-1.9.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl";,
 hash = 
"sha256:f1a8ba1ad7c4b50f5486401cc1bf04d313f74065f0d752ab0145292ab746f0fb", size 
= 3131425, upload-time = "2025-11-07T01:45:48.312Z" },
-    { url = 
"https://files.pythonhosted.org/packages/35/28/260053893ca51b1f06e2fe652ee267cbfe359a2c4c8312dc0307a0f54579/adbc_driver_manager-1.9.0-cp313-cp313-win_amd64.whl";,
 hash = 
"sha256:21e0ab1adb0c804955279b0a919ba8dec5264db1e85e43a89af9fbbf8a8e52c9", size 
= 706437, upload-time = "2025-11-07T01:45:57.327Z" },
-    { url = 
"https://files.pythonhosted.org/packages/30/79/4b478c9023c772ce36fb0dabc6bb49e8fe513e53a606e4bb6819589ddb54/adbc_driver_manager-1.9.0-cp313-cp313t-macosx_10_15_x86_64.whl";,
 hash = 
"sha256:74f57cee4168ce79babc8c33468bc8eae6917aefc72f2493b0c24164c9a4c29b", size 
= 552602, upload-time = "2025-11-07T01:45:50.348Z" },
-    { url = 
"https://files.pythonhosted.org/packages/60/56/0613a0a4b307a2bba587fa2b6bd573c0aa433696134272f3ac9b98f38746/adbc_driver_manager-1.9.0-cp313-cp313t-macosx_11_0_arm64.whl";,
 hash = 
"sha256:0dbda004d4cc4354bb14bed27451e248022298bd898b246b884a46fc880a93da", size 
= 533874, upload-time = "2025-11-07T01:45:51.696Z" },
-    { url = 
"https://files.pythonhosted.org/packages/7b/5c/d0a1cfe1b27d982ab3a2dfb1a56482d5ed3e601d2d47a6b20cbcc172fd30/adbc_driver_manager-1.9.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl";,
 hash = 
"sha256:5377949e913483792ae30fac86be04ba377e4be12023d4db709c7eb870a196c1", size 
= 3170532, upload-time = "2025-11-07T01:45:54.039Z" },
-    { url = 
"https://files.pythonhosted.org/packages/f6/26/e7ebccfce5b77c84386975d42f87fa2debd11dded7350ef493cccbb8c0bf/adbc_driver_manager-1.9.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl";,
 hash = 
"sha256:da8e2611c657599936968774ec39919c9edbbea6cffc4484c23df5bcb6657e08", size 
= 3160151, upload-time = "2025-11-07T01:45:55.797Z" },
-    { url = 
"https://files.pythonhosted.org/packages/29/54/d39e9cec6518e734d3390e751ef2f6fd98dbca776809d8739cda23b98408/adbc_driver_manager-1.9.0-cp314-cp314-macosx_10_15_x86_64.whl";,
 hash = 
"sha256:36707df1bbe577d9e625186c933a4b4b3db0e16332cdb67b89af1de699029748", size 
= 537297, upload-time = "2025-11-07T01:45:58.737Z" },
-    { url = 
"https://files.pythonhosted.org/packages/5d/e2/c1ddf128b669f336ee42fea6d275ebfaf732cefb0ba1e37a2fb46c70c0fe/adbc_driver_manager-1.9.0-cp314-cp314-macosx_11_0_arm64.whl";,
 hash = 
"sha256:88fb2f5f6a9934065f08241979bfd9442b797bb290dc8930d4f75e2568f72096", size 
= 516607, upload-time = "2025-11-07T01:46:00.538Z" },
-    { url = 
"https://files.pythonhosted.org/packages/4e/3a/f2c34724f8244e316cbb9a550e66c8afb786c72be0eef1e6e0f0a4943ddb/adbc_driver_manager-1.9.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl";,
 hash = 
"sha256:843bbcc78638cd408524c5474d8c83817142bfa5ad49693c056c7cf3d87b8e14", size 
= 3104038, upload-time = "2025-11-07T01:46:02.42Z" },
-    { url = 
"https://files.pythonhosted.org/packages/5f/ba/9bca6e811d0196d0070b19cee8f1019bfb250d494f98d79445ed8fd22fd6/adbc_driver_manager-1.9.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl";,
 hash = 
"sha256:33763cdd67ccc9574d15e1affcf3cdaf74351a93d91e6f85ed92704da732c150", size 
= 3111355, upload-time = "2025-11-07T01:46:03.908Z" },
-    { url = 
"https://files.pythonhosted.org/packages/55/16/6e5895b661028a94ca0c96e174e3531c9e703afbcae3fd0260956094bfa9/adbc_driver_manager-1.9.0-cp314-cp314-win_amd64.whl";,
 hash = 
"sha256:c5995b029cc99d80f2dc4bd34c41320fe8185da0fdc115d424f7699d1d7ffbac", size 
= 721478, upload-time = "2025-11-07T01:46:12.358Z" },
-    { url = 
"https://files.pythonhosted.org/packages/97/d5/7c9ac5cc73e710245bed0685982c806799b8206f2f4ce39a83c902d2e313/adbc_driver_manager-1.9.0-cp314-cp314t-macosx_10_15_x86_64.whl";,
 hash = 
"sha256:3629bdc16eb0180c86dd17931066e1567a92f6fccd515b9e4eb5098ef906d9bf", size 
= 552607, upload-time = "2025-11-07T01:46:05.21Z" },
-    { url = 
"https://files.pythonhosted.org/packages/0c/9c/f8c59509228cbdf22d40fa4182d64f9e93c02307f028b0ae218973543fe0/adbc_driver_manager-1.9.0-cp314-cp314t-macosx_11_0_arm64.whl";,
 hash = 
"sha256:d68b9c6c91ac97919ecc9255ccefda020fb6784b6aeb43d6d7b8a3509dc534f5", size 
= 533799, upload-time = "2025-11-07T01:46:06.726Z" },
-    { url = 
"https://files.pythonhosted.org/packages/73/ee/ed402b9766ae3fe1b699965157720cf95222d86d152f766e5eff34d18599/adbc_driver_manager-1.9.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl";,
 hash = 
"sha256:12d012ebb18f46037dc36079222449dc4f2f9b8a5df753a0653a35ff211fefa2", size 
= 3170551, upload-time = "2025-11-07T01:46:08.745Z" },
-    { url = 
"https://files.pythonhosted.org/packages/e3/5a/c7377ae2f3d4518b6e28e1a01e279e2ac060887c02a09911aba3b34f1ee1/adbc_driver_manager-1.9.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl";,
 hash = 
"sha256:af252317c41aaea1de9ec40bfbaf300c773dfb2bd4445aa819b118349e84ebd4", size 
= 3159071, upload-time = "2025-11-07T01:46:10.743Z" },
+    { url = 
"https://files.pythonhosted.org/packages/57/a4/a5e1a49b88bc248a6489fd5221369aca0df06761b858af926e702f36abb7/adbc_driver_manager-1.11.0-cp313-cp313-macosx_10_15_x86_64.whl";,
 hash = 
"sha256:300b07f4c1113b113e18dddcb9d96dd8b84f09fa35f8e4e3e8a2f112f291142c", size 
= 608355, upload-time = "2026-04-07T00:15:55.907Z" },
+    { url = 
"https://files.pythonhosted.org/packages/30/38/21bf51455d170199981462ecb8765153d1340dcff3f696910f44fe0535e5/adbc_driver_manager-1.11.0-cp313-cp313-macosx_11_0_arm64.whl";,
 hash = 
"sha256:f577be7c4730a43bae08f88105317d7e1d519d02a94aaa98da694358084a4735", size 
= 582871, upload-time = "2026-04-07T00:15:57.605Z" },
+    { url = 
"https://files.pythonhosted.org/packages/4c/aa/40bdf0f612bd88eb2fdad70e1cd3f88b8619a0ec66c312acd61170f61837/adbc_driver_manager-1.11.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl";,
 hash = 
"sha256:c980f81730752cdb98881357c238e87110e1810e4a69c7627c2211bd576b6230", size 
= 4670178, upload-time = "2026-04-07T00:15:59.516Z" },
+    { url = 
"https://files.pythonhosted.org/packages/ba/8c/8dcb40ed4f4ce3ccd1bda988e8d8bd37984ba223a339433d336502966697/adbc_driver_manager-1.11.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl";,
 hash = 
"sha256:cbc93830500a2f0db7b32501a4f88678fac14b9a9921d94d919439a5b65099e6", size 
= 4746822, upload-time = "2026-04-07T00:16:02.437Z" },
+    { url = 
"https://files.pythonhosted.org/packages/07/b9/df5ac9db38ce4b683d19d94fb8a296d48306b1712d93f38ef25d7c36c253/adbc_driver_manager-1.11.0-cp313-cp313-win_amd64.whl";,
 hash = 
"sha256:0c27cff12cdf074d9052bf8c4775ed1904053189a70497fa7b5746f0dbe326d8", size 
= 771492, upload-time = "2026-04-07T00:16:15.651Z" },
+    { url = 
"https://files.pythonhosted.org/packages/8f/af/4e050e6dbb0dfed99d631351bc47b6520d073529ac619bbecb5ad4adf015/adbc_driver_manager-1.11.0-cp313-cp313t-macosx_10_15_x86_64.whl";,
 hash = 
"sha256:d8fdeb10ea464dce88feffe23f35cc37a44ac6bad4e90e793416a3c60afb354f", size 
= 625664, upload-time = "2026-04-07T00:16:04.311Z" },
+    { url = 
"https://files.pythonhosted.org/packages/47/f8/a009ecc7f889feb9cf3546bfb4e998ac88399eb06e2c75dd7d2972384bf7/adbc_driver_manager-1.11.0-cp313-cp313t-macosx_11_0_arm64.whl";,
 hash = 
"sha256:cc565ed5d9f8c7974bbaff60c30c8330dae5a903592618a303291db4227b3d54", size 
= 603642, upload-time = "2026-04-07T00:16:06.758Z" },
+    { url = 
"https://files.pythonhosted.org/packages/53/c4/15af4bf5a3bfb76eead95a8cd5e1117098e64d046c3bb6eea0f502266523/adbc_driver_manager-1.11.0-cp313-cp313t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl";,
 hash = 
"sha256:9523ca4e8943aa7b43958762bc9d1cb0b5355cd84855359a91c54a4bae9a75df", size 
= 4733746, upload-time = "2026-04-07T00:16:09.5Z" },
+    { url = 
"https://files.pythonhosted.org/packages/40/72/dd76e63f8e787f2c313354e51152750f802061e21b4511e1bd9db467eca1/adbc_driver_manager-1.11.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl";,
 hash = 
"sha256:54dc142fc8065e13c6347fb3f2acb48430e3cab6863f27276a2b53594cc055b5", size 
= 4773869, upload-time = "2026-04-07T00:16:13.438Z" },
+    { url = 
"https://files.pythonhosted.org/packages/73/98/7a94f2aa7dbf470d4933a059bd66ee830fcea64422f95513dc9ab5fab910/adbc_driver_manager-1.11.0-cp314-cp314-macosx_10_15_x86_64.whl";,
 hash = 
"sha256:f6fcd6fe4f82f8f2fc83948ed2b0b549d0831253d449f5734603cc03850e4f47", size 
= 609370, upload-time = "2026-04-07T00:16:18.336Z" },
+    { url = 
"https://files.pythonhosted.org/packages/fa/c3/bd62e3094a07bb5a3eebd4e185953df02e1b3582091872457899a1a12d74/adbc_driver_manager-1.11.0-cp314-cp314-macosx_11_0_arm64.whl";,
 hash = 
"sha256:4b4293fc88d0683b6ea9fe1b7d7498c5ae9b4f53a93369c760cfa753a22039c0", size 
= 585560, upload-time = "2026-04-07T00:16:20.566Z" },
+    { url = 
"https://files.pythonhosted.org/packages/19/6c/4aabac7ed4d5944f544b7cf7881d50fe4b34eac908605291b633a53be875/adbc_driver_manager-1.11.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl";,
 hash = 
"sha256:5a2d6d1971ce104e41e3969afee8d5782ebcb06bf496606aa4eed2005fbead43", size 
= 4668783, upload-time = "2026-04-07T00:16:23.798Z" },
+    { url = 
"https://files.pythonhosted.org/packages/47/67/3bf52e5ec427b0b88cbaa8e059b6c79851db0742db712a5f58a0e3f666be/adbc_driver_manager-1.11.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl";,
 hash = 
"sha256:24ef0e33bab3b0480e85d954f88664b578ea045efdc644681c5a487982818e5f", size 
= 4735326, upload-time = "2026-04-07T00:16:27.348Z" },
+    { url = 
"https://files.pythonhosted.org/packages/33/64/5247eb91f9902e7111bf7a75c1af4da7a1818e31a26a754d97d0f0df7dcb/adbc_driver_manager-1.11.0-cp314-cp314-win_amd64.whl";,
 hash = 
"sha256:830efd3f212a6360ad66c09fd95171a26a1006a51c893f72238dfb50e0f35e13", size 
= 789628, upload-time = "2026-04-07T00:16:42.101Z" },
+    { url = 
"https://files.pythonhosted.org/packages/5f/57/9186febf1a550f7d8935aa9842bffbe3ff9848de2bdef066acd6a86f5bf8/adbc_driver_manager-1.11.0-cp314-cp314t-macosx_10_15_x86_64.whl";,
 hash = 
"sha256:b5e97d4cb3f5a798e18c802dd1f3d1bf7b77d763cdc707ac295907bf223d1ae8", size 
= 626086, upload-time = "2026-04-07T00:16:29.184Z" },
+    { url = 
"https://files.pythonhosted.org/packages/11/53/6e988bfbf8292cbf59b663e1e3ba6efe94f703c74061f8c0d2b182963899/adbc_driver_manager-1.11.0-cp314-cp314t-macosx_11_0_arm64.whl";,
 hash = 
"sha256:2e4e155cae12667aa383750d879e177ada3ab0c351f8306d96e33fbe6949f6f4", size 
= 604608, upload-time = "2026-04-07T00:16:31.14Z" },
+    { url = 
"https://files.pythonhosted.org/packages/33/d6/e9cb77e9840b12382da49cc22a93c224d9607969b76b0062bf6114119f61/adbc_driver_manager-1.11.0-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl";,
 hash = 
"sha256:dfb736661f95eb8fc185a4b9951b2e61734633c7448e8d3d937e93ef1d9e5c08", size 
= 4738703, upload-time = "2026-04-07T00:16:34.416Z" },
+    { url = 
"https://files.pythonhosted.org/packages/c0/b3/c1b800c313e4e2cb7bec4a5334d4c89329eb021317c9fb3e3794a49e02d0/adbc_driver_manager-1.11.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl";,
 hash = 
"sha256:e87a6f2b70baf21d3c52b280a17e2e8516197a4670b9a080a07dd255f2ab6e9d", size 
= 4778585, upload-time = "2026-04-07T00:16:37.775Z" },
+    { url = 
"https://files.pythonhosted.org/packages/04/3d/dc32f50d0ad1d748461422c7a6cad2a49b778aa4fdcbebe08e38789d7898/adbc_driver_manager-1.11.0-cp314-cp314t-win_amd64.whl";,
 hash = 
"sha256:b853e613c6c8afbe7a3fcea0098c88b935a4d1e1b046813aed1fe7363c7b8fc7", size 
= 830178, upload-time = "2026-04-07T00:16:40.247Z" },
 ]
 
 [[package]]
 name = "adbc-drivers-validation"
 version = "0.1"
-source = { git = 
"https://github.com/adbc-drivers/validation?rev=551046350f8225c5e115ecefec27f86f71e3a4aa#551046350f8225c5e115ecefec27f86f71e3a4aa";
 }
+source = { git = 
"https://github.com/adbc-drivers/validation?rev=ffb8c9e9b76b2953525e67f5305497587ced1edd#ffb8c9e9b76b2953525e67f5305497587ced1edd";
 }
 dependencies = [
     { name = "adbc-driver-manager" },
     { name = "bidict" },
     { name = "duckdb" },
     { name = "jinja2" },
+    { name = "plpygis" },
     { name = "pyarrow" },
+    { name = "pydantic" },
     { name = "pytest" },
+    { name = "sqlglot" },
     { name = "whenever" },
 ]
 
+[[package]]
+name = "annotated-types"
+version = "0.7.0"
+source = { registry = "https://pypi.org/simple"; }
+sdist = { url = 
"https://files.pythonhosted.org/packages/ee/67/531ea369ba64dcff5ec9c3402f9f51bf748cec26dde048a2f973a4eea7f5/annotated_types-0.7.0.tar.gz";,
 hash = 
"sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89", size 
= 16081, upload-time = "2024-05-20T21:33:25.928Z" }
+wheels = [
+    { url = 
"https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl";,
 hash = 
"sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53", size 
= 13643, upload-time = "2024-05-20T21:33:24.1Z" },
+]
+
 [[package]]
 name = "bidict"
 version = "0.23.1"
@@ -65,24 +78,24 @@ wheels = [
 
 [[package]]
 name = "duckdb"
-version = "1.4.3"
+version = "1.5.3"
 source = { registry = "https://pypi.org/simple"; }
-sdist = { url = 
"https://files.pythonhosted.org/packages/7f/da/17c3eb5458af69d54dedc8d18e4a32ceaa8ce4d4c699d45d6d8287e790c3/duckdb-1.4.3.tar.gz";,
 hash = 
"sha256:fea43e03604c713e25a25211ada87d30cd2a044d8f27afab5deba26ac49e5268", size 
= 18478418, upload-time = "2025-12-09T10:59:22.945Z" }
+sdist = { url = 
"https://files.pythonhosted.org/packages/69/00/d579dcb2a536b6ea3a2563cdad6844f77d81a9b2d4b22a858097f2468acf/duckdb-1.5.3.tar.gz";,
 hash = 
"sha256:df39428eb130faa35ae96fd35245bdeae6ecf43936250b116b5fead568eb9f16", size 
= 18026640, upload-time = "2026-05-20T11:55:31.901Z" }
 wheels = [
-    { url = 
"https://files.pythonhosted.org/packages/fd/76/288cca43a10ddd082788e1a71f1dc68d9130b5d078c3ffd0edf2f3a8719f/duckdb-1.4.3-cp313-cp313-macosx_10_13_universal2.whl";,
 hash = 
"sha256:16952ac05bd7e7b39946695452bf450db1ebbe387e1e7178e10f593f2ea7b9a8", size 
= 29033392, upload-time = "2025-12-09T10:58:34.631Z" },
-    { url = 
"https://files.pythonhosted.org/packages/64/07/cbad3d3da24af4d1add9bccb5fb390fac726ffa0c0cebd29bf5591cef334/duckdb-1.4.3-cp313-cp313-macosx_10_13_x86_64.whl";,
 hash = 
"sha256:de984cd24a6cbefdd6d4a349f7b9a46e583ca3e58ce10d8def0b20a6e5fcbe78", size 
= 15414567, upload-time = "2025-12-09T10:58:37.051Z" },
-    { url = 
"https://files.pythonhosted.org/packages/c4/19/57af0cc66ba2ffb8900f567c9aec188c6ab2a7b3f2260e9c6c3c5f9b57b1/duckdb-1.4.3-cp313-cp313-macosx_11_0_arm64.whl";,
 hash = 
"sha256:1e5457dda91b67258aae30fb1a0df84183a9f6cd27abac1d5536c0d876c6dfa1", size 
= 13740960, upload-time = "2025-12-09T10:58:39.658Z" },
-    { url = 
"https://files.pythonhosted.org/packages/73/dd/23152458cf5fd51e813fadda60b9b5f011517634aa4bb9301f5f3aa951d8/duckdb-1.4.3-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl";,
 hash = 
"sha256:006aca6a6d6736c441b02ff5c7600b099bb8b7f4de094b8b062137efddce42df", size 
= 18484312, upload-time = "2025-12-09T10:58:42.054Z" },
-    { url = 
"https://files.pythonhosted.org/packages/1a/7b/adf3f611f11997fc429d4b00a730604b65d952417f36a10c4be6e38e064d/duckdb-1.4.3-cp313-cp313-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl";,
 hash = 
"sha256:a2813f4635f4d6681cc3304020374c46aca82758c6740d7edbc237fe3aae2744", size 
= 20495571, upload-time = "2025-12-09T10:58:44.646Z" },
-    { url = 
"https://files.pythonhosted.org/packages/40/d5/6b7ddda7713a788ab2d622c7267ec317718f2bdc746ce1fca49b7ff0e50f/duckdb-1.4.3-cp313-cp313-win_amd64.whl";,
 hash = 
"sha256:6db124f53a3edcb32b0a896ad3519e37477f7e67bf4811cb41ab60c1ef74e4c8", size 
= 12335680, upload-time = "2025-12-09T10:58:46.883Z" },
-    { url = 
"https://files.pythonhosted.org/packages/e8/28/0670135cf54525081fded9bac1254f78984e3b96a6059cd15aca262e3430/duckdb-1.4.3-cp313-cp313-win_arm64.whl";,
 hash = 
"sha256:a8b0a8764e1b5dd043d168c8f749314f7a1252b5a260fa415adaa26fa3b958fd", size 
= 13075161, upload-time = "2025-12-09T10:58:49.47Z" },
-    { url = 
"https://files.pythonhosted.org/packages/b6/f4/a38651e478fa41eeb8e43a0a9c0d4cd8633adea856e3ac5ac95124b0fdbf/duckdb-1.4.3-cp314-cp314-macosx_10_15_universal2.whl";,
 hash = 
"sha256:316711a9e852bcfe1ed6241a5f654983f67e909e290495f3562cccdf43be8180", size 
= 29042272, upload-time = "2025-12-09T10:58:51.826Z" },
-    { url = 
"https://files.pythonhosted.org/packages/16/de/2cf171a66098ce5aeeb7371511bd2b3d7b73a2090603b0b9df39f8aaf814/duckdb-1.4.3-cp314-cp314-macosx_10_15_x86_64.whl";,
 hash = 
"sha256:9e625b2b4d52bafa1fd0ebdb0990c3961dac8bb00e30d327185de95b68202131", size 
= 15419343, upload-time = "2025-12-09T10:58:54.439Z" },
-    { url = 
"https://files.pythonhosted.org/packages/35/28/6b0a7830828d4e9a37420d87e80fe6171d2869a9d3d960bf5d7c3b8c7ee4/duckdb-1.4.3-cp314-cp314-macosx_11_0_arm64.whl";,
 hash = 
"sha256:130c6760f6c573f9c9fe9aba56adba0fab48811a4871b7b8fd667318b4a3e8da", size 
= 13748905, upload-time = "2025-12-09T10:58:56.656Z" },
-    { url = 
"https://files.pythonhosted.org/packages/15/4d/778628e194d63967870873b9581c8a6b4626974aa4fbe09f32708a2d3d3a/duckdb-1.4.3-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl";,
 hash = 
"sha256:20c88effaa557a11267706b01419c542fe42f893dee66e5a6daa5974ea2d4a46", size 
= 18487261, upload-time = "2025-12-09T10:58:58.866Z" },
-    { url = 
"https://files.pythonhosted.org/packages/c6/5f/87e43af2e4a0135f9675449563e7c2f9b6f1fe6a2d1691c96b091f3904dd/duckdb-1.4.3-cp314-cp314-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl";,
 hash = 
"sha256:1b35491db98ccd11d151165497c084a9d29d3dc42fc80abea2715a6c861ca43d", size 
= 20497138, upload-time = "2025-12-09T10:59:01.241Z" },
-    { url = 
"https://files.pythonhosted.org/packages/94/41/abec537cc7c519121a2a83b9a6f180af8915fabb433777dc147744513e74/duckdb-1.4.3-cp314-cp314-win_amd64.whl";,
 hash = 
"sha256:23b12854032c1a58d0452e2b212afa908d4ce64171862f3792ba9a596ba7c765", size 
= 12836056, upload-time = "2025-12-09T10:59:03.388Z" },
-    { url = 
"https://files.pythonhosted.org/packages/b1/5a/8af5b96ce5622b6168854f479ce846cf7fb589813dcc7d8724233c37ded3/duckdb-1.4.3-cp314-cp314-win_arm64.whl";,
 hash = 
"sha256:90f241f25cffe7241bf9f376754a5845c74775e00e1c5731119dc88cd71e0cb2", size 
= 13527759, upload-time = "2025-12-09T10:59:05.496Z" },
+    { url = 
"https://files.pythonhosted.org/packages/cc/9c/a528eb09d8be51954c485864bd06753e616939a080cbc3dd4417e8c94a57/duckdb-1.5.3-cp313-cp313-macosx_10_13_universal2.whl";,
 hash = 
"sha256:e75a6122c12579a99848517f6f00a4e342aebda3590c30fe9b5cc5f39d5e6afc", size 
= 32626254, upload-time = "2026-05-20T11:54:53.65Z" },
+    { url = 
"https://files.pythonhosted.org/packages/ec/3c/1534c0a6db347c05eb7d0f6ecfb7aefbe74cbff398e4892a8fd1903a20e8/duckdb-1.5.3-cp313-cp313-macosx_10_13_x86_64.whl";,
 hash = 
"sha256:fd3963c1cb9d9567777f4a898a9dbe388a2fe9724681801b1e7d6d93eecf1b76", size 
= 17300917, upload-time = "2026-05-20T11:54:56.628Z" },
+    { url = 
"https://files.pythonhosted.org/packages/23/fa/beafb91e6e152d2161c4a9cbc472334c87607eb61ad7104b5a7fa8d8d7b1/duckdb-1.5.3-cp313-cp313-macosx_11_0_arm64.whl";,
 hash = 
"sha256:3d5db8c0b55e072cf437948ebb5d7e23d7b9d03d905fa5f9145583e65aa447f7", size 
= 15449411, upload-time = "2026-05-20T11:54:59.089Z" },
+    { url = 
"https://files.pythonhosted.org/packages/50/0a/49b6fe04e2fcd63729eb607dadd44818dde77342a4f5ce086c6c92f1dd4d/duckdb-1.5.3-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl";,
 hash = 
"sha256:0ce80aed7a538422129a57eaca9141e3afb51f8bf562b1908b1576c9725b5b22", size 
= 19333120, upload-time = "2026-05-20T11:55:01.727Z" },
+    { url = 
"https://files.pythonhosted.org/packages/63/4c/0907c3f76adb9dd90e67610b31e0304a35814e65c4c41a354a262c09b885/duckdb-1.5.3-cp313-cp313-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl";,
 hash = 
"sha256:787df63824f07bf18022dbc3b8ca4b2bfab0ebe616464f55c6e8cd0f59ea762e", size 
= 21453266, upload-time = "2026-05-20T11:55:04.5Z" },
+    { url = 
"https://files.pythonhosted.org/packages/6d/9c/d2f23a7803ddbbd9413f7572ecf66a15120ed5ced7ce5c73e698c1406b76/duckdb-1.5.3-cp313-cp313-win_amd64.whl";,
 hash = 
"sha256:bb5bb5dcdd09d62ee60f0ddbbef918e71cce304ffe28428b1131949d39ffaabf", size 
= 13118640, upload-time = "2026-05-20T11:55:07.389Z" },
+    { url = 
"https://files.pythonhosted.org/packages/27/d5/7ba2316415bcdab6edd765bbbe35c2ca8a3800f2fe695cd70e3cdb997f09/duckdb-1.5.3-cp313-cp313-win_arm64.whl";,
 hash = 
"sha256:2fa17ecdd5d3db122836cb71bb93601c2106a3be883c17dffddc02fbf3fa7888", size 
= 13926409, upload-time = "2026-05-20T11:55:10.166Z" },
+    { url = 
"https://files.pythonhosted.org/packages/a5/c2/d4b6f8a5e4d3bc25773be6da76a99d9661ebbf3552c007c460d2dd59dbf8/duckdb-1.5.3-cp314-cp314-macosx_10_15_universal2.whl";,
 hash = 
"sha256:4bfa9a4dadf71e83e2c4eaca2f9421c82a54defecc1b0b4c0be95e2389dec4fe", size 
= 32636685, upload-time = "2026-05-20T11:55:13.158Z" },
+    { url = 
"https://files.pythonhosted.org/packages/42/58/e835c8298979d29db7a62cb5acc29e9b57aeaca7cdde2fcd3ac980f5cb18/duckdb-1.5.3-cp314-cp314-macosx_10_15_x86_64.whl";,
 hash = 
"sha256:aea7baf67ad7e1829ac76f67d7dcbd7fb1f57c3eb179d55ac30952df4709ae30", size 
= 17308134, upload-time = "2026-05-20T11:55:16.194Z" },
+    { url = 
"https://files.pythonhosted.org/packages/c9/46/617b51363f5613418c8b224b3cce16b58e6dde80904566bec232579c1d4e/duckdb-1.5.3-cp314-cp314-macosx_11_0_arm64.whl";,
 hash = 
"sha256:0b0b4f088a65d77e1217ce5d7eff889e63fedc44281200d899ff47c84d8ff836", size 
= 15449891, upload-time = "2026-05-20T11:55:18.687Z" },
+    { url = 
"https://files.pythonhosted.org/packages/b3/72/354146656e8d9ba3853d3a5ee80a481b8c5f70edfc3d5ae80a8c4479c967/duckdb-1.5.3-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl";,
 hash = 
"sha256:fe8d0c1f6a120aa03fa6e0d03897c71a1842e6cf7afd31d181348391f7108fe1", size 
= 19338499, upload-time = "2026-05-20T11:55:21.34Z" },
+    { url = 
"https://files.pythonhosted.org/packages/56/8f/65fc623b51448f2bfba1a9ec6ab3debb4664c0876c0113a5e782600b53ac/duckdb-1.5.3-cp314-cp314-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl";,
 hash = 
"sha256:d0405eae18ec6e8210a471c97dbfe87a7e4d605274b7fe572a1f276e92158f13", size 
= 21455828, upload-time = "2026-05-20T11:55:23.847Z" },
+    { url = 
"https://files.pythonhosted.org/packages/2b/db/d0274cbe9f5fe219f77c0bdf900ac77103569e83c102a4225ce04cbc607d/duckdb-1.5.3-cp314-cp314-win_amd64.whl";,
 hash = 
"sha256:33ae08b3e818d7613d8936744b67718c2062c2f530376895bfd89efb51b81538", size 
= 13640011, upload-time = "2026-05-20T11:55:26.276Z" },
+    { url = 
"https://files.pythonhosted.org/packages/07/5d/8f1899b8bef291caf953992fcd6c24df9f29387a35645e58c2504a5ca473/duckdb-1.5.3-cp314-cp314-win_arm64.whl";,
 hash = 
"sha256:746433e49bbc667b4df283153415fbe37e9083e0eff6c3cd6e54de7536869cd4", size 
= 14411554, upload-time = "2026-05-20T11:55:29.037Z" },
 ]
 
 [[package]]
@@ -167,6 +180,15 @@ wheels = [
     { url = 
"https://files.pythonhosted.org/packages/20/12/38679034af332785aac8774540895e234f4d07f7545804097de4b666afd8/packaging-25.0-py3-none-any.whl";,
 hash = 
"sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484", size 
= 66469, upload-time = "2025-04-19T11:48:57.875Z" },
 ]
 
+[[package]]
+name = "plpygis"
+version = "0.6.1"
+source = { registry = "https://pypi.org/simple"; }
+sdist = { url = 
"https://files.pythonhosted.org/packages/15/b0/58b5ee5caffff4fec4445443d5076012ec911f4e9e694172050adc5305d8/plpygis-0.6.1.tar.gz";,
 hash = 
"sha256:30a119b3d5a60e285a7a66ee95b65a5efcc0d569b2d02d3183e736bbad7f748b", size 
= 34513, upload-time = "2025-09-30T06:43:54.483Z" }
+wheels = [
+    { url = 
"https://files.pythonhosted.org/packages/54/ff/5135eb38650e5a39612d13734379c37d1caceb59404cc1461813c0406cdb/plpygis-0.6.1-py3-none-any.whl";,
 hash = 
"sha256:79bccb916ab6768d15af505ec9d2a2f894735c5c8eef18ba7dc9fa46a697ec08", size 
= 25476, upload-time = "2025-09-30T06:43:52.649Z" },
+]
+
 [[package]]
 name = "pluggy"
 version = "1.6.0"
@@ -185,42 +207,113 @@ dependencies = [
 ]
 
 [package.metadata]
-requires-dist = [{ name = "adbc-drivers-validation", git = 
"https://github.com/adbc-drivers/validation?rev=551046350f8225c5e115ecefec27f86f71e3a4aa";
 }]
+requires-dist = [{ name = "adbc-drivers-validation", git = 
"https://github.com/adbc-drivers/validation?rev=ffb8c9e9b76b2953525e67f5305497587ced1edd";
 }]
 
 [[package]]
 name = "pyarrow"
-version = "22.0.0"
+version = "24.0.0"
 source = { registry = "https://pypi.org/simple"; }
-sdist = { url = 
"https://files.pythonhosted.org/packages/30/53/04a7fdc63e6056116c9ddc8b43bc28c12cdd181b85cbeadb79278475f3ae/pyarrow-22.0.0.tar.gz";,
 hash = 
"sha256:3d600dc583260d845c7d8a6db540339dd883081925da2bd1c5cb808f720b3cd9", size 
= 1151151, upload-time = "2025-10-24T12:30:00.762Z" }
+sdist = { url = 
"https://files.pythonhosted.org/packages/91/13/13e1069b351bdc3881266e11147ffccf687505dbb0ea74036237f5d454a5/pyarrow-24.0.0.tar.gz";,
 hash = 
"sha256:85fe721a14dd823aca09127acbb06c3ca723efbd436c004f16bca601b04dcc83", size 
= 1180261, upload-time = "2026-04-21T10:51:25.837Z" }
 wheels = [
-    { url = 
"https://files.pythonhosted.org/packages/a6/d6/d0fac16a2963002fc22c8fa75180a838737203d558f0ed3b564c4a54eef5/pyarrow-22.0.0-cp313-cp313-macosx_12_0_arm64.whl";,
 hash = 
"sha256:e6e95176209257803a8b3d0394f21604e796dadb643d2f7ca21b66c9c0b30c9a", size 
= 34204629, upload-time = "2025-10-24T10:06:20.274Z" },
-    { url = 
"https://files.pythonhosted.org/packages/c6/9c/1d6357347fbae062ad3f17082f9ebc29cc733321e892c0d2085f42a2212b/pyarrow-22.0.0-cp313-cp313-macosx_12_0_x86_64.whl";,
 hash = 
"sha256:001ea83a58024818826a9e3f89bf9310a114f7e26dfe404a4c32686f97bd7901", size 
= 35985783, upload-time = "2025-10-24T10:06:27.301Z" },
-    { url = 
"https://files.pythonhosted.org/packages/ff/c0/782344c2ce58afbea010150df07e3a2f5fdad299cd631697ae7bd3bac6e3/pyarrow-22.0.0-cp313-cp313-manylinux_2_28_aarch64.whl";,
 hash = 
"sha256:ce20fe000754f477c8a9125543f1936ea5b8867c5406757c224d745ed033e691", size 
= 45020999, upload-time = "2025-10-24T10:06:35.387Z" },
-    { url = 
"https://files.pythonhosted.org/packages/1b/8b/5362443737a5307a7b67c1017c42cd104213189b4970bf607e05faf9c525/pyarrow-22.0.0-cp313-cp313-manylinux_2_28_x86_64.whl";,
 hash = 
"sha256:e0a15757fccb38c410947df156f9749ae4a3c89b2393741a50521f39a8cf202a", size 
= 47724601, upload-time = "2025-10-24T10:06:43.551Z" },
-    { url = 
"https://files.pythonhosted.org/packages/69/4d/76e567a4fc2e190ee6072967cb4672b7d9249ac59ae65af2d7e3047afa3b/pyarrow-22.0.0-cp313-cp313-musllinux_1_2_aarch64.whl";,
 hash = 
"sha256:cedb9dd9358e4ea1d9bce3665ce0797f6adf97ff142c8e25b46ba9cdd508e9b6", size 
= 48001050, upload-time = "2025-10-24T10:06:52.284Z" },
-    { url = 
"https://files.pythonhosted.org/packages/01/5e/5653f0535d2a1aef8223cee9d92944cb6bccfee5cf1cd3f462d7cb022790/pyarrow-22.0.0-cp313-cp313-musllinux_1_2_x86_64.whl";,
 hash = 
"sha256:252be4a05f9d9185bb8c18e83764ebcfea7185076c07a7a662253af3a8c07941", size 
= 50307877, upload-time = "2025-10-24T10:07:02.405Z" },
-    { url = 
"https://files.pythonhosted.org/packages/2d/f8/1d0bd75bf9328a3b826e24a16e5517cd7f9fbf8d34a3184a4566ef5a7f29/pyarrow-22.0.0-cp313-cp313-win_amd64.whl";,
 hash = 
"sha256:a4893d31e5ef780b6edcaf63122df0f8d321088bb0dee4c8c06eccb1ca28d145", size 
= 27977099, upload-time = "2025-10-24T10:08:07.259Z" },
-    { url = 
"https://files.pythonhosted.org/packages/90/81/db56870c997805bf2b0f6eeeb2d68458bf4654652dccdcf1bf7a42d80903/pyarrow-22.0.0-cp313-cp313t-macosx_12_0_arm64.whl";,
 hash = 
"sha256:f7fe3dbe871294ba70d789be16b6e7e52b418311e166e0e3cba9522f0f437fb1", size 
= 34336685, upload-time = "2025-10-24T10:07:11.47Z" },
-    { url = 
"https://files.pythonhosted.org/packages/1c/98/0727947f199aba8a120f47dfc229eeb05df15bcd7a6f1b669e9f882afc58/pyarrow-22.0.0-cp313-cp313t-macosx_12_0_x86_64.whl";,
 hash = 
"sha256:ba95112d15fd4f1105fb2402c4eab9068f0554435e9b7085924bcfaac2cc306f", size 
= 36032158, upload-time = "2025-10-24T10:07:18.626Z" },
-    { url = 
"https://files.pythonhosted.org/packages/96/b4/9babdef9c01720a0785945c7cf550e4acd0ebcd7bdd2e6f0aa7981fa85e2/pyarrow-22.0.0-cp313-cp313t-manylinux_2_28_aarch64.whl";,
 hash = 
"sha256:c064e28361c05d72eed8e744c9605cbd6d2bb7481a511c74071fd9b24bc65d7d", size 
= 44892060, upload-time = "2025-10-24T10:07:26.002Z" },
-    { url = 
"https://files.pythonhosted.org/packages/f8/ca/2f8804edd6279f78a37062d813de3f16f29183874447ef6d1aadbb4efa0f/pyarrow-22.0.0-cp313-cp313t-manylinux_2_28_x86_64.whl";,
 hash = 
"sha256:6f9762274496c244d951c819348afbcf212714902742225f649cf02823a6a10f", size 
= 47504395, upload-time = "2025-10-24T10:07:34.09Z" },
-    { url = 
"https://files.pythonhosted.org/packages/b9/f0/77aa5198fd3943682b2e4faaf179a674f0edea0d55d326d83cb2277d9363/pyarrow-22.0.0-cp313-cp313t-musllinux_1_2_aarch64.whl";,
 hash = 
"sha256:a9d9ffdc2ab696f6b15b4d1f7cec6658e1d788124418cb30030afbae31c64746", size 
= 48066216, upload-time = "2025-10-24T10:07:43.528Z" },
-    { url = 
"https://files.pythonhosted.org/packages/79/87/a1937b6e78b2aff18b706d738c9e46ade5bfcf11b294e39c87706a0089ac/pyarrow-22.0.0-cp313-cp313t-musllinux_1_2_x86_64.whl";,
 hash = 
"sha256:ec1a15968a9d80da01e1d30349b2b0d7cc91e96588ee324ce1b5228175043e95", size 
= 50288552, upload-time = "2025-10-24T10:07:53.519Z" },
-    { url = 
"https://files.pythonhosted.org/packages/60/ae/b5a5811e11f25788ccfdaa8f26b6791c9807119dffcf80514505527c384c/pyarrow-22.0.0-cp313-cp313t-win_amd64.whl";,
 hash = 
"sha256:bba208d9c7decf9961998edf5c65e3ea4355d5818dd6cd0f6809bec1afb951cc", size 
= 28262504, upload-time = "2025-10-24T10:08:00.932Z" },
-    { url = 
"https://files.pythonhosted.org/packages/bd/b0/0fa4d28a8edb42b0a7144edd20befd04173ac79819547216f8a9f36f9e50/pyarrow-22.0.0-cp314-cp314-macosx_12_0_arm64.whl";,
 hash = 
"sha256:9bddc2cade6561f6820d4cd73f99a0243532ad506bc510a75a5a65a522b2d74d", size 
= 34224062, upload-time = "2025-10-24T10:08:14.101Z" },
-    { url = 
"https://files.pythonhosted.org/packages/0f/a8/7a719076b3c1be0acef56a07220c586f25cd24de0e3f3102b438d18ae5df/pyarrow-22.0.0-cp314-cp314-macosx_12_0_x86_64.whl";,
 hash = 
"sha256:e70ff90c64419709d38c8932ea9fe1cc98415c4f87ea8da81719e43f02534bc9", size 
= 35990057, upload-time = "2025-10-24T10:08:21.842Z" },
-    { url = 
"https://files.pythonhosted.org/packages/89/3c/359ed54c93b47fb6fe30ed16cdf50e3f0e8b9ccfb11b86218c3619ae50a8/pyarrow-22.0.0-cp314-cp314-manylinux_2_28_aarch64.whl";,
 hash = 
"sha256:92843c305330aa94a36e706c16209cd4df274693e777ca47112617db7d0ef3d7", size 
= 45068002, upload-time = "2025-10-24T10:08:29.034Z" },
-    { url = 
"https://files.pythonhosted.org/packages/55/fc/4945896cc8638536ee787a3bd6ce7cec8ec9acf452d78ec39ab328efa0a1/pyarrow-22.0.0-cp314-cp314-manylinux_2_28_x86_64.whl";,
 hash = 
"sha256:6dda1ddac033d27421c20d7a7943eec60be44e0db4e079f33cc5af3b8280ccde", size 
= 47737765, upload-time = "2025-10-24T10:08:38.559Z" },
-    { url = 
"https://files.pythonhosted.org/packages/cd/5e/7cb7edeb2abfaa1f79b5d5eb89432356155c8426f75d3753cbcb9592c0fd/pyarrow-22.0.0-cp314-cp314-musllinux_1_2_aarch64.whl";,
 hash = 
"sha256:84378110dd9a6c06323b41b56e129c504d157d1a983ce8f5443761eb5256bafc", size 
= 48048139, upload-time = "2025-10-24T10:08:46.784Z" },
-    { url = 
"https://files.pythonhosted.org/packages/88/c6/546baa7c48185f5e9d6e59277c4b19f30f48c94d9dd938c2a80d4d6b067c/pyarrow-22.0.0-cp314-cp314-musllinux_1_2_x86_64.whl";,
 hash = 
"sha256:854794239111d2b88b40b6ef92aa478024d1e5074f364033e73e21e3f76b25e0", size 
= 50314244, upload-time = "2025-10-24T10:08:55.771Z" },
-    { url = 
"https://files.pythonhosted.org/packages/3c/79/755ff2d145aafec8d347bf18f95e4e81c00127f06d080135dfc86aea417c/pyarrow-22.0.0-cp314-cp314-win_amd64.whl";,
 hash = 
"sha256:b883fe6fd85adad7932b3271c38ac289c65b7337c2c132e9569f9d3940620730", size 
= 28757501, upload-time = "2025-10-24T10:09:59.891Z" },
-    { url = 
"https://files.pythonhosted.org/packages/0e/d2/237d75ac28ced3147912954e3c1a174df43a95f4f88e467809118a8165e0/pyarrow-22.0.0-cp314-cp314t-macosx_12_0_arm64.whl";,
 hash = 
"sha256:7a820d8ae11facf32585507c11f04e3f38343c1e784c9b5a8b1da5c930547fe2", size 
= 34355506, upload-time = "2025-10-24T10:09:02.953Z" },
-    { url = 
"https://files.pythonhosted.org/packages/1e/2c/733dfffe6d3069740f98e57ff81007809067d68626c5faef293434d11bd6/pyarrow-22.0.0-cp314-cp314t-macosx_12_0_x86_64.whl";,
 hash = 
"sha256:c6ec3675d98915bf1ec8b3c7986422682f7232ea76cad276f4c8abd5b7319b70", size 
= 36047312, upload-time = "2025-10-24T10:09:10.334Z" },
-    { url = 
"https://files.pythonhosted.org/packages/7c/2b/29d6e3782dc1f299727462c1543af357a0f2c1d3c160ce199950d9ca51eb/pyarrow-22.0.0-cp314-cp314t-manylinux_2_28_aarch64.whl";,
 hash = 
"sha256:3e739edd001b04f654b166204fc7a9de896cf6007eaff33409ee9e50ceaff754", size 
= 45081609, upload-time = "2025-10-24T10:09:18.61Z" },
-    { url = 
"https://files.pythonhosted.org/packages/8d/42/aa9355ecc05997915af1b7b947a7f66c02dcaa927f3203b87871c114ba10/pyarrow-22.0.0-cp314-cp314t-manylinux_2_28_x86_64.whl";,
 hash = 
"sha256:7388ac685cab5b279a41dfe0a6ccd99e4dbf322edfb63e02fc0443bf24134e91", size 
= 47703663, upload-time = "2025-10-24T10:09:27.369Z" },
-    { url = 
"https://files.pythonhosted.org/packages/ee/62/45abedde480168e83a1de005b7b7043fd553321c1e8c5a9a114425f64842/pyarrow-22.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl";,
 hash = 
"sha256:f633074f36dbc33d5c05b5dc75371e5660f1dbf9c8b1d95669def05e5425989c", size 
= 48066543, upload-time = "2025-10-24T10:09:34.908Z" },
-    { url = 
"https://files.pythonhosted.org/packages/84/e9/7878940a5b072e4f3bf998770acafeae13b267f9893af5f6d4ab3904b67e/pyarrow-22.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl";,
 hash = 
"sha256:4c19236ae2402a8663a2c8f21f1870a03cc57f0bef7e4b6eb3238cc82944de80", size 
= 50288838, upload-time = "2025-10-24T10:09:44.394Z" },
-    { url = 
"https://files.pythonhosted.org/packages/7b/03/f335d6c52b4a4761bcc83499789a1e2e16d9d201a58c327a9b5cc9a41bd9/pyarrow-22.0.0-cp314-cp314t-win_amd64.whl";,
 hash = 
"sha256:0c34fe18094686194f204a3b1787a27456897d8a2d62caf84b61e8dfbc0252ae", size 
= 29185594, upload-time = "2025-10-24T10:09:53.111Z" },
+    { url = 
"https://files.pythonhosted.org/packages/6f/d3/a1abf004482026ddc17f4503db227787fa3cfe41ec5091ff20e4fea55e57/pyarrow-24.0.0-cp313-cp313-macosx_12_0_arm64.whl";,
 hash = 
"sha256:02b001b3ed4723caa44f6cd1af2d5c86aa2cf9971dacc2ffa55b21237713dfba", size 
= 34976759, upload-time = "2026-04-21T10:48:07.258Z" },
+    { url = 
"https://files.pythonhosted.org/packages/4f/4a/34f0a36d28a2dd32225301b79daad44e243dc1a2bb77d43b60749be255c4/pyarrow-24.0.0-cp313-cp313-macosx_12_0_x86_64.whl";,
 hash = 
"sha256:04920d6a71aabd08a0417709efce97d45ea8e6fb733d9ca9ecffb13c67839f68", size 
= 36658471, upload-time = "2026-04-21T10:48:13.347Z" },
+    { url = 
"https://files.pythonhosted.org/packages/1f/78/543b94712ae8bb1a6023bcc1acf1a740fbff8286747c289cd9468fced2a5/pyarrow-24.0.0-cp313-cp313-manylinux_2_28_aarch64.whl";,
 hash = 
"sha256:a964266397740257f16f7bb2e4f08a0c81454004beab8ff59dd531b73610e9f2", size 
= 45675981, upload-time = "2026-04-21T10:48:20.201Z" },
+    { url = 
"https://files.pythonhosted.org/packages/84/9f/8fb7c222b100d314137fa40ec050de56cd8c6d957d1cfff685ce72f15b17/pyarrow-24.0.0-cp313-cp313-manylinux_2_28_x86_64.whl";,
 hash = 
"sha256:6f066b179d68c413374294bc1735f68475457c933258df594443bb9d88ddc2a0", size 
= 48859172, upload-time = "2026-04-21T10:48:27.541Z" },
+    { url = 
"https://files.pythonhosted.org/packages/a7/d3/1ea72538e6c8b3b475ed78d1049a2c518e655761ea50fe1171fc855fcab7/pyarrow-24.0.0-cp313-cp313-musllinux_1_2_aarch64.whl";,
 hash = 
"sha256:1183baeb14c5f587b1ec52831e665718ce632caab84b7cd6b85fd44f96114495", size 
= 49385733, upload-time = "2026-04-21T10:48:34.7Z" },
+    { url = 
"https://files.pythonhosted.org/packages/c3/be/c3d8b06a1ba35f2260f8e1f771abbee7d5e345c0937aab90675706b1690a/pyarrow-24.0.0-cp313-cp313-musllinux_1_2_x86_64.whl";,
 hash = 
"sha256:806f24b4085453c197a5078218d1ee08783ebbba271badd153d1ae22a3ee804f", size 
= 51934335, upload-time = "2026-04-21T10:48:42.099Z" },
+    { url = 
"https://files.pythonhosted.org/packages/9c/62/89e07a1e7329d2cde3e3c6994ba0839a24977a2beda8be6005ea3d860b99/pyarrow-24.0.0-cp313-cp313-win_amd64.whl";,
 hash = 
"sha256:e4505fc6583f7b05ab854934896bcac8253b04ac1171a77dfb73efef92076d91", size 
= 27271748, upload-time = "2026-04-21T10:49:42.532Z" },
+    { url = 
"https://files.pythonhosted.org/packages/17/1a/cff3a59f80b5b1658549d46611b67163f65e0664431c076ad728bf9d5af4/pyarrow-24.0.0-cp313-cp313t-macosx_12_0_arm64.whl";,
 hash = 
"sha256:1a4e45017efbf115032e4475ee876d525e0e36c742214fbe405332480ecd6275", size 
= 35238554, upload-time = "2026-04-21T10:48:48.526Z" },
+    { url = 
"https://files.pythonhosted.org/packages/a8/99/cce0f42a327bfef2c420fb6078a3eb834826e5d6697bf3009fe11d2ad051/pyarrow-24.0.0-cp313-cp313t-macosx_12_0_x86_64.whl";,
 hash = 
"sha256:7986f1fa71cee060ad00758bcc79d3a93bab8559bf978fab9e53472a2e25a17b", size 
= 36782301, upload-time = "2026-04-21T10:48:55.181Z" },
+    { url = 
"https://files.pythonhosted.org/packages/2a/66/8e560d5ff6793ca29aca213c53eec0dd482dd46cb93b2819e5aab52e4252/pyarrow-24.0.0-cp313-cp313t-manylinux_2_28_aarch64.whl";,
 hash = 
"sha256:d3e0b61e8efb24ed38898e5cdc5fffa9124be480008d401a1f8071500494ae42", size 
= 45721929, upload-time = "2026-04-21T10:49:03.676Z" },
+    { url = 
"https://files.pythonhosted.org/packages/27/0c/a26e25505d030716e078d9f16eb74973cbf0b33b672884e9f9da1c83b871/pyarrow-24.0.0-cp313-cp313t-manylinux_2_28_x86_64.whl";,
 hash = 
"sha256:55a3bc1e3df3b5567b7d27ef551b2283f0c68a5e86f1cd56abc569da4f31335b", size 
= 48825365, upload-time = "2026-04-21T10:49:11.714Z" },
+    { url = 
"https://files.pythonhosted.org/packages/5f/eb/771f9ecb0c65e73fe9dccdd1717901b9594f08c4515d000c7c62df573811/pyarrow-24.0.0-cp313-cp313t-musllinux_1_2_aarch64.whl";,
 hash = 
"sha256:641f795b361874ac9da5294f8f443dfdbee355cf2bd9e3b8d97aaac2306b9b37", size 
= 49451819, upload-time = "2026-04-21T10:49:21.474Z" },
+    { url = 
"https://files.pythonhosted.org/packages/48/da/61ae89a88732f5a785646f3ec6125dbb640fa98a540eb2b9889caa561403/pyarrow-24.0.0-cp313-cp313t-musllinux_1_2_x86_64.whl";,
 hash = 
"sha256:8adc8e6ce5fccf5dc707046ae4914fd537def529709cc0d285d37a7f9cd442ca", size 
= 51909252, upload-time = "2026-04-21T10:49:31.164Z" },
+    { url = 
"https://files.pythonhosted.org/packages/cb/1a/8dd5cafab7b66573fa91c03d06d213356ad4edd71813aa75e08ce2b3a844/pyarrow-24.0.0-cp313-cp313t-win_amd64.whl";,
 hash = 
"sha256:9b18371ad2f44044b81a8d23bc2d8a9b6a6226dca775e8e16cfee640473d6c5d", size 
= 27388127, upload-time = "2026-04-21T10:49:37.334Z" },
+    { url = 
"https://files.pythonhosted.org/packages/ad/80/d022a34ff05d2cbedd8ccf841fc1f532ecfa9eb5ed1711b56d0e0ea71fc9/pyarrow-24.0.0-cp314-cp314-macosx_12_0_arm64.whl";,
 hash = 
"sha256:1cc9057f0319e26333b357e17f3c2c022f1a83739b48a88b25bfd5fa2dc18838", size 
= 35007997, upload-time = "2026-04-21T10:49:48.796Z" },
+    { url = 
"https://files.pythonhosted.org/packages/1a/ff/f01485fda6f4e5d441afb8dd5e7681e4db18826c1e271852f5d3957d6a80/pyarrow-24.0.0-cp314-cp314-macosx_12_0_x86_64.whl";,
 hash = 
"sha256:e6f1278ee4785b6db21229374a1c9e54ec7c549de5d1efc9630b6207de7e170b", size 
= 36678720, upload-time = "2026-04-21T10:49:55.858Z" },
+    { url = 
"https://files.pythonhosted.org/packages/9e/c2/2d2d5fea814237923f71b36495211f20b43a1576f9a4d6da7e751a64ec6f/pyarrow-24.0.0-cp314-cp314-manylinux_2_28_aarch64.whl";,
 hash = 
"sha256:adbbedc55506cbdabb830890444fb856bfb0060c46c6f8026c6c2f2cf86ae795", size 
= 45741852, upload-time = "2026-04-21T10:50:04.624Z" },
+    { url = 
"https://files.pythonhosted.org/packages/8e/3a/28ba9c1c1ebdbb5f1b94dfebb46f207e52e6a554b7fe4132540fde29a3a0/pyarrow-24.0.0-cp314-cp314-manylinux_2_28_x86_64.whl";,
 hash = 
"sha256:ae8a1145af31d903fa9bb166824d7abe9b4681a000b0159c9fb99c11bc11ad26", size 
= 48889852, upload-time = "2026-04-21T10:50:12.293Z" },
+    { url = 
"https://files.pythonhosted.org/packages/df/51/4a389acfd31dca009f8fb82d7f510bb4130f2b3a8e18cf00194d0687d8ac/pyarrow-24.0.0-cp314-cp314-musllinux_1_2_aarch64.whl";,
 hash = 
"sha256:d7027eba1df3b2069e2e8d80f644fa0918b68c46432af3d088ddd390d063ecde", size 
= 49445207, upload-time = "2026-04-21T10:50:20.677Z" },
+    { url = 
"https://files.pythonhosted.org/packages/19/4b/0bab2b23d2ae901b1b9a03c0efd4b2d070256f8ce3fc43f6e58c167b2081/pyarrow-24.0.0-cp314-cp314-musllinux_1_2_x86_64.whl";,
 hash = 
"sha256:e56a1ffe9bf7b727432b89104cc0849c21582949dd7bdcb34f17b2001a351a76", size 
= 51954117, upload-time = "2026-04-21T10:50:29.14Z" },
+    { url = 
"https://files.pythonhosted.org/packages/29/88/f4e9145da0417b3d2c12035a8492b35ff4a3dbc653e614fcfb51d9dedb38/pyarrow-24.0.0-cp314-cp314-win_amd64.whl";,
 hash = 
"sha256:38be1808cdd068605b787e6ca9119b27eb275a0234e50212c3492331680c3b1e", size 
= 28001155, upload-time = "2026-04-21T10:51:22.337Z" },
+    { url = 
"https://files.pythonhosted.org/packages/79/4f/46a49a63f43526da895b1a45bbb51d5baf8e4d77159f8528fc3e5490007f/pyarrow-24.0.0-cp314-cp314t-macosx_12_0_arm64.whl";,
 hash = 
"sha256:418e48ce50a45a6a6c73c454677203a9c75c966cb1e92ca3370959185f197a05", size 
= 35250387, upload-time = "2026-04-21T10:50:35.552Z" },
+    { url = 
"https://files.pythonhosted.org/packages/a0/da/d5e0cd5ef00796922404806d5f00325cdadc3441ce2c13fe7115f2df9a64/pyarrow-24.0.0-cp314-cp314t-macosx_12_0_x86_64.whl";,
 hash = 
"sha256:2f16197705a230a78270cdd4ea8a1d57e86b2fdcbc34a1f6aebc72e65c986f9a", size 
= 36797102, upload-time = "2026-04-21T10:50:42.417Z" },
+    { url = 
"https://files.pythonhosted.org/packages/34/c7/5904145b0a593a05236c882933d439b5720f0a145381179063722fbfc123/pyarrow-24.0.0-cp314-cp314t-manylinux_2_28_aarch64.whl";,
 hash = 
"sha256:fb24ac194bfc5e86839d7dcd52092ee31e5fe6733fe11f5e3b06ef0812b20072", size 
= 45745118, upload-time = "2026-04-21T10:50:49.324Z" },
+    { url = 
"https://files.pythonhosted.org/packages/13/d3/cca42fe166d1c6e4d5b80e530b7949104d10e17508a90ae202dac205ce2a/pyarrow-24.0.0-cp314-cp314t-manylinux_2_28_x86_64.whl";,
 hash = 
"sha256:9700ebd9a51f5895ce75ff4ac4b3c47a7d4b42bc618be8e713e5d56bacf5f931", size 
= 48844765, upload-time = "2026-04-21T10:50:55.579Z" },
+    { url = 
"https://files.pythonhosted.org/packages/b0/49/942c3b79878ba928324d1e17c274ed84581db8c0a749b24bcf4cbdf15bd3/pyarrow-24.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl";,
 hash = 
"sha256:d8ddd2768da81d3ee08cfea9b597f4abb4e8e1dc8ae7e204b608d23a0d3ab699", size 
= 49471890, upload-time = "2026-04-21T10:51:02.439Z" },
+    { url = 
"https://files.pythonhosted.org/packages/76/97/ff71431000a75d84135a1ace5ca4ba11726a231a8007bbb320a4c54075d5/pyarrow-24.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl";,
 hash = 
"sha256:61a3d7eaa97a14768b542f3d284dc6400dd2470d9f080708b13cd46b6ae18136", size 
= 51932250, upload-time = "2026-04-21T10:51:10.576Z" },
+    { url = 
"https://files.pythonhosted.org/packages/51/be/6f79d55816d5c22557cf27533543d5d70dfe692adfbee4b99f2760674f38/pyarrow-24.0.0-cp314-cp314t-win_amd64.whl";,
 hash = 
"sha256:c91d00057f23b8d353039520dc3a6c09d8608164c692e9f59a175a42b2ae0c19", size 
= 28131282, upload-time = "2026-04-21T10:51:16.815Z" },
+]
+
+[[package]]
+name = "pydantic"
+version = "2.13.4"
+source = { registry = "https://pypi.org/simple"; }
+dependencies = [
+    { name = "annotated-types" },
+    { name = "pydantic-core" },
+    { name = "typing-extensions" },
+    { name = "typing-inspection" },
+]
+sdist = { url = 
"https://files.pythonhosted.org/packages/18/a5/b60d21ac674192f8ab0ba4e9fd860690f9b4a6e51ca5df118733b487d8d6/pydantic-2.13.4.tar.gz";,
 hash = 
"sha256:c40756b57adaa8b1efeeced5c196f3f3b7c435f90e84ea7f443901bec8099ef6", size 
= 844775, upload-time = "2026-05-06T13:43:05.343Z" }
+wheels = [
+    { url = 
"https://files.pythonhosted.org/packages/fd/7b/122376b1fd3c62c1ed9dc80c931ace4844b3c55407b6fb2d199377c9736f/pydantic-2.13.4-py3-none-any.whl";,
 hash = 
"sha256:45a282cde31d808236fd7ea9d919b128653c8b38b393d1c4ab335c62924d9aba", size 
= 472262, upload-time = "2026-05-06T13:43:02.641Z" },
+]
+
+[[package]]
+name = "pydantic-core"
+version = "2.46.4"
+source = { registry = "https://pypi.org/simple"; }
+dependencies = [
+    { name = "typing-extensions" },
+]
+sdist = { url = 
"https://files.pythonhosted.org/packages/9d/56/921726b776ace8d8f5db44c4ef961006580d91dc52b803c489fafd1aa249/pydantic_core-2.46.4.tar.gz";,
 hash = 
"sha256:62f875393d7f270851f20523dd2e29f082bcc82292d66db2b64ea71f64b6e1c1", size 
= 471464, upload-time = "2026-05-06T13:37:06.98Z" }
+wheels = [
+    { url = 
"https://files.pythonhosted.org/packages/51/a2/5d30b469c5267a17b39dec53208222f76a8d351dfac4af661888c5aee77d/pydantic_core-2.46.4-cp313-cp313-macosx_10_12_x86_64.whl";,
 hash = 
"sha256:5d5902252db0d3cedf8d4a1bc68f70eeb430f7e4c7104c8c476753519b423008", size 
= 2106306, upload-time = "2026-05-06T13:37:48.029Z" },
+    { url = 
"https://files.pythonhosted.org/packages/c1/81/4fa520eaffa8bd7d1525e644cd6d39e7d60b1592bc5b516693c7340b50f1/pydantic_core-2.46.4-cp313-cp313-macosx_11_0_arm64.whl";,
 hash = 
"sha256:c94f0688e7b8d0a67abf40e57a7eaaecd17cc9586706a31b76c031f63df052b4", size 
= 1951906, upload-time = "2026-05-06T13:37:17.012Z" },
+    { url = 
"https://files.pythonhosted.org/packages/03/d5/fd02da45b659668b05923b17ba3a0100a0a3d5541e3bd8fcc4ecb711309e/pydantic_core-2.46.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";,
 hash = 
"sha256:f027324c56cd5406ca49c124b0db10e56c69064fec039acc571c29020cc87c76", size 
= 1976802, upload-time = "2026-05-06T13:37:35.113Z" },
+    { url = 
"https://files.pythonhosted.org/packages/21/f2/95727e1368be3d3ed485eaab7adbd7dda408f33f7a36e8b48e0144002b91/pydantic_core-2.46.4-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl";,
 hash = 
"sha256:e739fee756ba1010f8bcccb534252e85a35fe45ae92c295a06059ce58b74ccd3", size 
= 2052446, upload-time = "2026-05-06T13:37:12.313Z" },
+    { url = 
"https://files.pythonhosted.org/packages/9c/86/5d99feea3f77c7234b8718075b23db11532773c1a0dbd9b9490215dc2eeb/pydantic_core-2.46.4-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl";,
 hash = 
"sha256:9d56801be94b86a9da183e5f3766e6310752b99ff647e38b09a9500d88e46e76", size 
= 2232757, upload-time = "2026-05-06T13:39:01.149Z" },
+    { url = 
"https://files.pythonhosted.org/packages/d2/3a/508ac615935ef7588cf6d9e9b91309fdc2da751af865e02a9098de88258c/pydantic_core-2.46.4-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl";,
 hash = 
"sha256:2412e734dcb48da14d4e4006b82b46b74f2518b8a26ee7e58c6844a6cd6d03c4", size 
= 2309275, upload-time = "2026-05-06T13:37:41.406Z" },
+    { url = 
"https://files.pythonhosted.org/packages/07/f8/41db9de19d7987d6b04715a02b3b40aea467000275d9d758ffaa31af7d50/pydantic_core-2.46.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl";,
 hash = 
"sha256:9551187363ffc0de2a00b2e47c25aeaeb1020b69b668762966df15fc5659dd5a", size 
= 2094467, upload-time = "2026-05-06T13:39:18.847Z" },
+    { url = 
"https://files.pythonhosted.org/packages/2c/e2/f35033184cb11d0052daf4416e8e10a502ea2ac006fc4f459aee872727d1/pydantic_core-2.46.4-cp313-cp313-manylinux_2_31_riscv64.whl";,
 hash = 
"sha256:0186750b482eefa11d7f435892b09c5c606193ef3375bcf94aa00ae6bfb66262", size 
= 2134417, upload-time = "2026-05-06T13:40:17.944Z" },
+    { url = 
"https://files.pythonhosted.org/packages/7e/7b/6ceeb1cc90e193862f444ebe373d8fdf613f0a82572dde03fb10734c6c71/pydantic_core-2.46.4-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl";,
 hash = 
"sha256:5855698a4856556d86e8e6cd8434bc3ac0314ee8e12089ae0e143f64c6256e4e", size 
= 2179782, upload-time = "2026-05-06T13:40:32.618Z" },
+    { url = 
"https://files.pythonhosted.org/packages/5a/f2/c8d7773ede6af08036423a00ae0ceffce266c3c52a096c435d68c896083f/pydantic_core-2.46.4-cp313-cp313-musllinux_1_1_aarch64.whl";,
 hash = 
"sha256:cbaf13819775b7f769bf4a1f066cb6df7a28d4480081a589828ef190226881cd", size 
= 2188782, upload-time = "2026-05-06T13:36:51.018Z" },
+    { url = 
"https://files.pythonhosted.org/packages/59/31/0c864784e31f09f05cdd87606f08923b9c9e7f6e51dd27f20f62f975ce9f/pydantic_core-2.46.4-cp313-cp313-musllinux_1_1_armv7l.whl";,
 hash = 
"sha256:633147d34cf4550417f12e2b1a0383973bdf5cdfde212cb09e9a581cf10820be", size 
= 2328334, upload-time = "2026-05-06T13:40:37.764Z" },
+    { url = 
"https://files.pythonhosted.org/packages/c2/eb/4f6c8a41efa30baa755590f4141abf3a8c370fab610915733e74134a7270/pydantic_core-2.46.4-cp313-cp313-musllinux_1_1_x86_64.whl";,
 hash = 
"sha256:82cf5301172168103724d49a1444d3378cb20cdee30b116a1bd6031236298a5d", size 
= 2372986, upload-time = "2026-05-06T13:39:34.152Z" },
+    { url = 
"https://files.pythonhosted.org/packages/5b/24/b375a480d53113860c299764bfe9f349a3dc9108b3adc0d7f0d786492ebf/pydantic_core-2.46.4-cp313-cp313-win32.whl";,
 hash = 
"sha256:9fa8ae11da9e2b3126c6426f147e0fba88d96d65921799bb30c6abd1cb2c97fb", size 
= 1973693, upload-time = "2026-05-06T13:37:55.072Z" },
+    { url = 
"https://files.pythonhosted.org/packages/7e/e8/cff247591966f2d22ec8c003cd7587e27b7ba7b81ab2fb888e3ab75dc285/pydantic_core-2.46.4-cp313-cp313-win_amd64.whl";,
 hash = 
"sha256:6b3ace8194b0e5204818c92802dcdca7fc6d88aabbb799d7c795540d9cd6d292", size 
= 2071819, upload-time = "2026-05-06T13:38:49.139Z" },
+    { url = 
"https://files.pythonhosted.org/packages/c6/1a/f4aee670d5670e9e148e0c82c7db98d780be566c6e6a97ee8035528ca0b3/pydantic_core-2.46.4-cp313-cp313-win_arm64.whl";,
 hash = 
"sha256:184c081504d17f1c1066e430e117142b2c77d9448a97f7b65c6ac9fd9aee238d", size 
= 2027411, upload-time = "2026-05-06T13:40:45.796Z" },
+    { url = 
"https://files.pythonhosted.org/packages/8d/74/228a26ddad29c6672b805d9fd78e8d251cd04004fa7eed0e622096cd0250/pydantic_core-2.46.4-cp314-cp314-macosx_10_12_x86_64.whl";,
 hash = 
"sha256:428e04521a40150c85216fc8b85e8d39fece235a9cf5e383761238c7fa9b96fb", size 
= 2102079, upload-time = "2026-05-06T13:38:41.019Z" },
+    { url = 
"https://files.pythonhosted.org/packages/ad/1f/8970b150a4b4365623ae00fc88603491f763c627311ae8031e3111356d6e/pydantic_core-2.46.4-cp314-cp314-macosx_11_0_arm64.whl";,
 hash = 
"sha256:23ace664830ee0bfe014a0c7bc248b1f7f25ed7ad103852c317624a1083af462", size 
= 1952179, upload-time = "2026-05-06T13:36:59.812Z" },
+    { url = 
"https://files.pythonhosted.org/packages/95/30/5211a831ae054928054b2f79731661087a2bc5c01e825c672b3a4a8f1b3e/pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";,
 hash = 
"sha256:ce5c1d2a8b27468f433ca974829c44060b8097eedc39933e3c206a90ee49c4a9", size 
= 1978926, upload-time = "2026-05-06T13:37:39.933Z" },
+    { url = 
"https://files.pythonhosted.org/packages/57/e9/689668733b1eb67adeef047db3c2e8788fcf65a7fd9c9e2b46b7744fe245/pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl";,
 hash = 
"sha256:7283d57845ecf5a163403eb0702dfc220cc4fbdd18919cb5ccea4f95ee1cdab4", size 
= 2046785, upload-time = "2026-05-06T13:38:01.995Z" },
+    { url = 
"https://files.pythonhosted.org/packages/60/d9/6715260422ff50a2109878fd24d948a6c3446bb2664f34ee78cd972b3acd/pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl";,
 hash = 
"sha256:8daafc69c93ee8a0204506a3b6b30f586ef54028f52aeeeb5c4cfc5184fd5914", size 
= 2228733, upload-time = "2026-05-06T13:40:50.371Z" },
+    { url = 
"https://files.pythonhosted.org/packages/18/ae/fdb2f64316afca925640f8e70bb1a564b0ec2721c1389e25b8eb4bf9a299/pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl";,
 hash = 
"sha256:cd2213145bcc2ba85884d0ac63d222fece9209678f77b9b4d76f054c561adb28", size 
= 2307534, upload-time = "2026-05-06T13:37:21.531Z" },
+    { url = 
"https://files.pythonhosted.org/packages/89/1d/8eff589b45bb8190a9d12c49cfad0f176a5cbd1534908a6b5125e2886239/pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl";,
 hash = 
"sha256:7a5f930472650a82629163023e630d160863fce524c616f4e5186e5de9d9a49b", size 
= 2099732, upload-time = "2026-05-06T13:39:31.942Z" },
+    { url = 
"https://files.pythonhosted.org/packages/06/d5/ee5a3366637fee41dee51a1fc91562dcf12ddbc68fda34e6b253da2324bb/pydantic_core-2.46.4-cp314-cp314-manylinux_2_31_riscv64.whl";,
 hash = 
"sha256:c1b3f518abeca3aa13c712fd202306e145abf59a18b094a6bafb2d2bbf59192c", size 
= 2129627, upload-time = "2026-05-06T13:37:25.033Z" },
+    { url = 
"https://files.pythonhosted.org/packages/94/33/2414be571d2c6a6c4d08be21f9292b6d3fdb08949a97b6dfe985017821db/pydantic_core-2.46.4-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl";,
 hash = 
"sha256:1a7dd0b3ee80d90150e3495a3a13ac34dbcbfd4f012996a6a1d8900e91b5c0fb", size 
= 2179141, upload-time = "2026-05-06T13:37:14.046Z" },
+    { url = 
"https://files.pythonhosted.org/packages/7b/79/7daa95be995be0eecc4cf75064cb33f9bbbfe3fe0158caf2f0d4a996a5c7/pydantic_core-2.46.4-cp314-cp314-musllinux_1_1_aarch64.whl";,
 hash = 
"sha256:3fb702cd90b0446a3a1c5e470bfa0dd23c0233b676a9099ddcc964fa6ca13898", size 
= 2184325, upload-time = "2026-05-06T13:36:53.615Z" },
+    { url = 
"https://files.pythonhosted.org/packages/9f/cb/d0a382f5c0de8a222dc61c65348e0ce831b1f68e0a018450d31c2cace3a5/pydantic_core-2.46.4-cp314-cp314-musllinux_1_1_armv7l.whl";,
 hash = 
"sha256:b8458003118a712e66286df6a707db01c52c0f52f7db8e4a38f0da1d3b94fc4e", size 
= 2323990, upload-time = "2026-05-06T13:40:29.971Z" },
+    { url = 
"https://files.pythonhosted.org/packages/05/db/d9ba624cc4a5aced1598e88c04fdbd8310c8a69b9d38b9a3d39ce3a61ed7/pydantic_core-2.46.4-cp314-cp314-musllinux_1_1_x86_64.whl";,
 hash = 
"sha256:372429a130e469c9cd698925ce5fc50940b7a1336b0d82038e63d5bbc4edc519", size 
= 2369978, upload-time = "2026-05-06T13:37:23.027Z" },
+    { url = 
"https://files.pythonhosted.org/packages/f2/20/d15df15ba918c423461905802bfd2981c3af0bfa0e40d05e13edbfa48bc3/pydantic_core-2.46.4-cp314-cp314-win32.whl";,
 hash = 
"sha256:85bb3611ff1802f3ee7fdd7dbff26b56f343fb432d57a4728fdd49b6ef35e2f4", size 
= 1966354, upload-time = "2026-05-06T13:38:03.499Z" },
+    { url = 
"https://files.pythonhosted.org/packages/fc/b6/6b8de4c0a7d7ab3004c439c80c5c1e0a3e8d78bbae19379b01960383d9e5/pydantic_core-2.46.4-cp314-cp314-win_amd64.whl";,
 hash = 
"sha256:811ff8e9c313ab425368bcbb36e5c4ebd7108c2bbf4e4089cfbb0b01eff63fac", size 
= 2072238, upload-time = "2026-05-06T13:39:40.807Z" },
+    { url = 
"https://files.pythonhosted.org/packages/32/36/51eb763beec1f4cf59b1db243a7dcc39cbb41230f050a09b9d69faaf0a48/pydantic_core-2.46.4-cp314-cp314-win_arm64.whl";,
 hash = 
"sha256:bfec22eab3c8cc2ceec0248aec886624116dc079afa027ecc8ad4a7e62010f8a", size 
= 2018251, upload-time = "2026-05-06T13:37:26.72Z" },
+    { url = 
"https://files.pythonhosted.org/packages/e8/91/855af51d625b23aa987116a19e231d2aaef9c4a415273ddc189b79a45fee/pydantic_core-2.46.4-cp314-cp314t-macosx_10_12_x86_64.whl";,
 hash = 
"sha256:af8244b2bef6aaad6d92cda81372de7f8c8d36c9f0c3ea36e827c60e7d9467a0", size 
= 2099593, upload-time = "2026-05-06T13:39:47.682Z" },
+    { url = 
"https://files.pythonhosted.org/packages/fb/1b/8784a54c65edb5f49f0a14d6977cf1b209bba85a4c77445b255c2de58ab3/pydantic_core-2.46.4-cp314-cp314t-macosx_11_0_arm64.whl";,
 hash = 
"sha256:5a4330cdbc57162e4b3aa303f588ba752257694c9c9be3e7ebb11b4aca659b5d", size 
= 1935226, upload-time = "2026-05-06T13:40:40.428Z" },
+    { url = 
"https://files.pythonhosted.org/packages/e8/e7/1955d28d1afc56dd4b3ad7cc0cf39df1b9852964cf16e5d13912756d6d6b/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";,
 hash = 
"sha256:29c61fc04a3d840155ff08e475a04809278972fe6aef51e2720554e96367e34b", size 
= 1974605, upload-time = "2026-05-06T13:37:32.029Z" },
+    { url = 
"https://files.pythonhosted.org/packages/93/e2/3fedbf0ba7a22850e6e9fd78117f1c0f10f950182344d8a6c535d468fdd8/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl";,
 hash = 
"sha256:c50f2528cf200c5eed56faf3f4e22fcd5f38c157a8b78576e6ba3168ec35f000", size 
= 2030777, upload-time = "2026-05-06T13:38:55.239Z" },
+    { url = 
"https://files.pythonhosted.org/packages/f8/61/46be275fcaaba0b4f5b9669dd852267ce1ff616592dccf7a7845588df091/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl";,
 hash = 
"sha256:0cbe8b01f948de4286c74cdd6c667aceb38f5c1e26f0693b3983d9d74887c65e", size 
= 2236641, upload-time = "2026-05-06T13:37:08.096Z" },
+    { url = 
"https://files.pythonhosted.org/packages/60/db/12e93e46a8bac9988be3c016860f83293daea8c716c029c9ace279036f2f/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl";,
 hash = 
"sha256:617d7e2ca7dcb8c5cf6bcb8c59b8832c94b36196bbf1cbd1bfb56ed341905edd", size 
= 2286404, upload-time = "2026-05-06T13:40:20.221Z" },
+    { url = 
"https://files.pythonhosted.org/packages/e2/4a/4d8b19008f38d31c53b8219cfedc2e3d5de5fe99d90076b7e767de29274f/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl";,
 hash = 
"sha256:7027560ee92211647d0d34e3f7cd6f50da56399d26a9c8ad0da286d3869a53f3", size 
= 2109219, upload-time = "2026-05-06T13:38:12.153Z" },
+    { url = 
"https://files.pythonhosted.org/packages/88/70/3cbc40978fefb7bb09c6708d40d4ad1a5d70fd7213c3d17f971de868ec1f/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_31_riscv64.whl";,
 hash = 
"sha256:f99626688942fb746e545232e7726926f3be91b5975f8b55327665fafda991c7", size 
= 2110594, upload-time = "2026-05-06T13:40:02.971Z" },
+    { url = 
"https://files.pythonhosted.org/packages/9d/20/b8d36736216e29491125531685b2f9e61aa5b4b2599893f8268551da3338/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl";,
 hash = 
"sha256:fc3e9034a63de20e15e8ade85358bc6efc614008cab72898b4b4952bea0509ff", size 
= 2159542, upload-time = "2026-05-06T13:39:27.506Z" },
+    { url = 
"https://files.pythonhosted.org/packages/1d/a2/367df868eb584dacf6bf82a389272406d7178e301c4ac82545ab98bc2dd9/pydantic_core-2.46.4-cp314-cp314t-musllinux_1_1_aarch64.whl";,
 hash = 
"sha256:97e7cf2be5c77b7d1a9713a05605d49460d02c6078d38d8bef3cbe323c548424", size 
= 2168146, upload-time = "2026-05-06T13:38:31.93Z" },
+    { url = 
"https://files.pythonhosted.org/packages/c1/b8/4460f77f7e201893f649a29ab355dddd3beee8a97bcb1a320db414f9a06e/pydantic_core-2.46.4-cp314-cp314t-musllinux_1_1_armv7l.whl";,
 hash = 
"sha256:3bf92c5d0e00fefaab325a4d27828fe6b6e2a21848686b5b60d2d9eeb09d76c6", size 
= 2306309, upload-time = "2026-05-06T13:37:44.717Z" },
+    { url = 
"https://files.pythonhosted.org/packages/64/c4/be2639293acd87dc8ddbcec41a73cee9b2ebf996fe6d892a1a74e88ad3f7/pydantic_core-2.46.4-cp314-cp314t-musllinux_1_1_x86_64.whl";,
 hash = 
"sha256:3ecbc122d18468d06ca279dc26a8c2e2d5acb10943bb35e36ae92096dc3b5565", size 
= 2369736, upload-time = "2026-05-06T13:37:05.645Z" },
+    { url = 
"https://files.pythonhosted.org/packages/30/a6/9f9f380dbb301f67023bf8f707aaa75daadf84f7152d95c410fd7e81d994/pydantic_core-2.46.4-cp314-cp314t-win32.whl";,
 hash = 
"sha256:e846ae7835bf0703ae43f534ab79a867146dadd59dc9ca5c8b53d5c8f7c9ef02", size 
= 1955575, upload-time = "2026-05-06T13:38:51.116Z" },
+    { url = 
"https://files.pythonhosted.org/packages/40/1f/f1eb9eb350e795d1af8586289746f5c5677d16043040d63710e22abc43c9/pydantic_core-2.46.4-cp314-cp314t-win_amd64.whl";,
 hash = 
"sha256:2108ba5c1c1eca18030634489dc544844144ee36357f2f9f780b93e7ddbb44b5", size 
= 2051624, upload-time = "2026-05-06T13:38:21.672Z" },
+    { url = 
"https://files.pythonhosted.org/packages/f6/d2/42dd53d0a85c27606f316d3aa5d2869c4e8470a5ed6dec30e4a1abe19192/pydantic_core-2.46.4-cp314-cp314t-win_arm64.whl";,
 hash = 
"sha256:4fcbe087dbc2068af7eda3aa87634eba216dbda64d1ae73c8684b621d33f6596", size 
= 2017325, upload-time = "2026-05-06T13:40:52.723Z" },
 ]
 
 [[package]]
@@ -248,6 +341,15 @@ wheels = [
     { url = 
"https://files.pythonhosted.org/packages/d4/24/a372aaf5c9b7208e7112038812994107bc65a84cd00e0354a88c2c77a617/pytest-9.0.3-py3-none-any.whl";,
 hash = 
"sha256:2c5efc453d45394fdd706ade797c0a81091eccd1d6e4bccfcd476e2b8e0ab5d9", size 
= 375249, upload-time = "2026-04-07T17:16:16.13Z" },
 ]
 
+[[package]]
+name = "sqlglot"
+version = "30.10.0"
+source = { registry = "https://pypi.org/simple"; }
+sdist = { url = 
"https://files.pythonhosted.org/packages/84/23/68932577cac288a0b7267ab8cea3e0e8a90809ed52a37b8514a795ea0433/sqlglot-30.10.0.tar.gz";,
 hash = 
"sha256:be915f765813ba7ec7c6037732a738cb36811737b5ea6258ba99268043ef74a6", size 
= 5888815, upload-time = "2026-06-09T10:10:05.661Z" }
+wheels = [
+    { url = 
"https://files.pythonhosted.org/packages/d0/09/4f82db061c866e1bc3b620f852a1516881683ffce76c33180a5b6a0a6a34/sqlglot-30.10.0-py3-none-any.whl";,
 hash = 
"sha256:540e5dfee4c6b65a3b5d93517a2573bb7546681e95d530d0e4e1702415d8835e", size 
= 696535, upload-time = "2026-06-09T10:10:03.437Z" },
+]
+
 [[package]]
 name = "typing-extensions"
 version = "4.15.0"
@@ -257,6 +359,18 @@ wheels = [
     { url = 
"https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl";,
 hash = 
"sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548", size 
= 44614, upload-time = "2025-08-25T13:49:24.86Z" },
 ]
 
+[[package]]
+name = "typing-inspection"
+version = "0.4.2"
+source = { registry = "https://pypi.org/simple"; }
+dependencies = [
+    { name = "typing-extensions" },
+]
+sdist = { url = 
"https://files.pythonhosted.org/packages/55/e3/70399cb7dd41c10ac53367ae42139cf4b1ca5f36bb3dc6c9d33acdb43655/typing_inspection-0.4.2.tar.gz";,
 hash = 
"sha256:ba561c48a67c5958007083d386c3295464928b01faa735ab8547c5692e87f464", size 
= 75949, upload-time = "2025-10-01T02:14:41.687Z" }
+wheels = [
+    { url = 
"https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl";,
 hash = 
"sha256:4ed1cacbdc298c220f1bd249ed5287caa16f34d44ef4e9c3d0cbad5b521545e7", size 
= 14611, upload-time = "2025-10-01T02:14:40.154Z" },
+]
+
 [[package]]
 name = "tzdata"
 version = "2025.3"
@@ -280,69 +394,69 @@ wheels = [
 
 [[package]]
 name = "whenever"
-version = "0.9.4"
+version = "0.10.0"
 source = { registry = "https://pypi.org/simple"; }
 dependencies = [
     { name = "tzdata", marker = "sys_platform == 'win32'" },
     { name = "tzlocal", marker = "sys_platform != 'darwin' and sys_platform != 
'linux'" },
 ]
-sdist = { url = 
"https://files.pythonhosted.org/packages/11/5b/7fa1578e6bba4732d2d02275cb438c2d64ca04660e326cb7018cfd4a3af2/whenever-0.9.4.tar.gz";,
 hash = 
"sha256:d04104cba52253374c47c42fa84f66fe17d454559a374999200bc1b3dbb34b10", size 
= 259324, upload-time = "2025-12-18T20:46:42.132Z" }
+sdist = { url = 
"https://files.pythonhosted.org/packages/fd/13/281bc0bc19f0e2e9559a22137607271d6e684b0f9bcbaf0a95b95a5e9258/whenever-0.10.0.tar.gz";,
 hash = 
"sha256:a5ef2b5493531de95294080495d4d9bce9691b4b3d681c6952c7a8b3d52d7a04", size 
= 429588, upload-time = "2026-04-05T18:43:50.199Z" }
 wheels = [
-    { url = 
"https://files.pythonhosted.org/packages/95/83/2b8454b73278fc6daf60360a5e13fe666df8b7686272fe7012dc9d4c086b/whenever-0.9.4-cp313-cp313-macosx_10_12_x86_64.whl";,
 hash = 
"sha256:969a6df01ff3086d6be06f4766be413e4ad174cca1d023077aacf9fa25d7a26f", size 
= 465529, upload-time = "2025-12-18T20:46:16.287Z" },
-    { url = 
"https://files.pythonhosted.org/packages/d7/95/1b32ae824ece99ec1ad154f78cec1e092171666167d47df83039fa35804a/whenever-0.9.4-cp313-cp313-macosx_11_0_arm64.whl";,
 hash = 
"sha256:7b56922b939050964e9cfbf3304371e42ee00d39d2a3b7203f0fa171ff74bcbc", size 
= 442774, upload-time = "2025-12-18T20:46:04.406Z" },
-    { url = 
"https://files.pythonhosted.org/packages/e2/10/b63b29ead140d671cefa50718e1e7c7a228e8eb335e009f72c154d8fcb2a/whenever-0.9.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";,
 hash = 
"sha256:134f22416e00f9c7df53d8c7373b86104afc72b232687fab55204b2d751468eb", size 
= 460534, upload-time = "2025-12-18T20:44:08.516Z" },
-    { url = 
"https://files.pythonhosted.org/packages/7a/ec/43777157ac8304ba410ea10518268969117ac7b702e77f8775ad2fb63dda/whenever-0.9.4-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl";,
 hash = 
"sha256:779f5ddedcfb7d3f7216f1d72bd8fc2955d17a2e96fcc6ff06b83ee7a0716d28", size 
= 505608, upload-time = "2025-12-18T20:44:30.434Z" },
-    { url = 
"https://files.pythonhosted.org/packages/4d/3a/61994f2523223a3cfb67d2559026e88e72091c16cb2815a156a92ca5b3ac/whenever-0.9.4-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl";,
 hash = 
"sha256:990f735f9d6cacf15b8e586c5edd3a750c29bf19f151d5975749648ac64101cb", size 
= 497794, upload-time = "2025-12-18T20:44:52.172Z" },
-    { url = 
"https://files.pythonhosted.org/packages/f6/1c/8b3f26fd997234ea4c27d77fcc84e6d5e8b0bebc8c96223df5c614bb1c01/whenever-0.9.4-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl";,
 hash = 
"sha256:851d673907b6cbab2f5ca2776845e59c950bc677f59784d3de75d77d09419da0", size 
= 528437, upload-time = "2025-12-18T20:45:04.075Z" },
-    { url = 
"https://files.pythonhosted.org/packages/38/1b/1d3af9103dc3f0758f01e5c90113753254cc47ab9a3767a726d2dafcf5aa/whenever-0.9.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl";,
 hash = 
"sha256:a4759b9a45c1d280efd1b794e9c9fa6b6ac4708cbdad102e71ae487cafa4f3e3", size 
= 488625, upload-time = "2025-12-18T20:45:40.73Z" },
-    { url = 
"https://files.pythonhosted.org/packages/af/f0/de12c87f0f8bdd2e7a600072e42ccc036d46df8f64589516eedb0122341a/whenever-0.9.4-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl";,
 hash = 
"sha256:bbf4f272be7f79d546248bb5549c4210aad5b1e3fff1fc0588975a6c7e16962a", size 
= 527445, upload-time = "2025-12-18T20:45:15.555Z" },
-    { url = 
"https://files.pythonhosted.org/packages/87/5f/636c48df446330a8ef534e1c26ae5d7af600742df9ac88192b776d7df7f0/whenever-0.9.4-cp313-cp313-musllinux_1_2_aarch64.whl";,
 hash = 
"sha256:365556f1c296c402695e3c7378e844ca120fefc4e3e6285307883a21ed104b5b", size 
= 640191, upload-time = "2025-12-18T20:44:19.105Z" },
-    { url = 
"https://files.pythonhosted.org/packages/b8/11/1c8c65d816c33b8b2be4b9800a09ecb169e8ebdae2a3084600599d0a49dc/whenever-0.9.4-cp313-cp313-musllinux_1_2_armv7l.whl";,
 hash = 
"sha256:056d8e6eccdf9bf43cdb7986eea61533cf16189dd1c6e66f962e95ec3bcbba15", size 
= 776454, upload-time = "2025-12-18T20:44:41.153Z" },
-    { url = 
"https://files.pythonhosted.org/packages/62/b4/5b917499b8e629f93e820d7e8cfda682389cfe4878a37e084a3eca8dd8a2/whenever-0.9.4-cp313-cp313-musllinux_1_2_i686.whl";,
 hash = 
"sha256:fcf0c8ad2464986ee27b7b516170f8904d0928d48105e2ce7623384900764e86", size 
= 739971, upload-time = "2025-12-18T20:45:27.571Z" },
-    { url = 
"https://files.pythonhosted.org/packages/d6/02/ef4404a442184ff8bb5176e946749a2788bff1055573dfc3cd25a015034c/whenever-0.9.4-cp313-cp313-musllinux_1_2_x86_64.whl";,
 hash = 
"sha256:bf6e4a79f4d491a7f757f6a4f69a3f47cf572c9afc63b2fa69b1582ca49c00ff", size 
= 698639, upload-time = "2025-12-18T20:45:52.044Z" },
-    { url = 
"https://files.pythonhosted.org/packages/7e/b7/cbd377837431cee9a35b26277858ee27e44ea745ea3c73e46b54df12a020/whenever-0.9.4-cp313-cp313-win32.whl";,
 hash = 
"sha256:73972a32c5712cbcbb9f5fdea27d06fd4092ce5cab906d609a54fbeee4a01b9c", size 
= 416114, upload-time = "2026-01-11T11:31:09.037Z" },
-    { url = 
"https://files.pythonhosted.org/packages/b3/b9/3bf77080ff29fc5615c5f9e26fb86b3cd0f76db8606f52d6b25a5117cbc4/whenever-0.9.4-cp313-cp313-win_amd64.whl";,
 hash = 
"sha256:54482cc1a95c1eee88532b4eb59c89bfdae12f41478b0f7b6f0f4f01edd524ac", size 
= 440446, upload-time = "2026-01-11T11:31:13.074Z" },
-    { url = 
"https://files.pythonhosted.org/packages/a0/af/de30633ba49b6c98c47cde278245e6d67d95cb6508c33112bfed24de2c26/whenever-0.9.4-cp313-cp313t-macosx_10_12_x86_64.whl";,
 hash = 
"sha256:7a6ee0313519145b5b541407f0df0f889b36e7e55e887cfe3486c35a28edd757", size 
= 465302, upload-time = "2025-12-18T20:46:17.62Z" },
-    { url = 
"https://files.pythonhosted.org/packages/88/6a/393d26796020ce43fb4d1db7702f28668723609af8f73682208d80571f90/whenever-0.9.4-cp313-cp313t-macosx_11_0_arm64.whl";,
 hash = 
"sha256:5db3d96356b33f76dbbcd646092eeac2906326c4d3dbde880cc196409026c7ec", size 
= 441218, upload-time = "2025-12-18T20:46:05.743Z" },
-    { url = 
"https://files.pythonhosted.org/packages/51/e6/10d56f4989ef0dd8b46106da769ffd99184ff16dd136ebe4a7b0a5b55308/whenever-0.9.4-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";,
 hash = 
"sha256:ff4bd0abc8ded80b9db7bc3aceb9cf418128e2c6191455ad9e50fddb2849b6b7", size 
= 459116, upload-time = "2025-12-18T20:44:09.649Z" },
-    { url = 
"https://files.pythonhosted.org/packages/f4/7d/d3fad7462fc8c589b831d32b2f779d1c316d8f114b3d1d9fa15efaf3849f/whenever-0.9.4-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl";,
 hash = 
"sha256:d0f21175e656b81e6b6a292b7d83c516ffa64b5bddffb3b0e273c0aa9c5448ff", size 
= 504564, upload-time = "2025-12-18T20:44:31.644Z" },
-    { url = 
"https://files.pythonhosted.org/packages/0a/32/7dfdd3072e8d5954f1e6eee663024d820cb61958f7b0c5645fccaee3bbad/whenever-0.9.4-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl";,
 hash = 
"sha256:c8447366b535b6cd9647986f01c6f666092424c282e7be7fbece61fb9e4e1dd6", size 
= 496239, upload-time = "2025-12-18T20:44:53.592Z" },
-    { url = 
"https://files.pythonhosted.org/packages/21/e0/7aa8024b9ef7d68b3c42a92fed614f723ab11a5941c575a950b5008d7381/whenever-0.9.4-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl";,
 hash = 
"sha256:0d3b5a6d9c432512e6dd49368947e7e1a4a623a3a44436d5b08dfa0f5ca4af91", size 
= 526630, upload-time = "2025-12-18T20:45:05.504Z" },
-    { url = 
"https://files.pythonhosted.org/packages/55/e6/5c09979a96a03f208a69150ef84e91cf9f253d16c6db88dfde9677c713c6/whenever-0.9.4-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl";,
 hash = 
"sha256:5f071c29c5127007bb08080f8eb83c4355a6f74dddca21d9e9f80e0a7e4fec28", size 
= 488714, upload-time = "2025-12-18T20:45:42.464Z" },
-    { url = 
"https://files.pythonhosted.org/packages/15/ff/21bd7139f482ea6bf43adaefde5a27ab5a7843bdd515308e6abb0d3fa325/whenever-0.9.4-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl";,
 hash = 
"sha256:43a6dee8910dd98ee21e7471a8ec558b7490face136bb4fd1d28cb4324c8c88d", size 
= 528157, upload-time = "2025-12-18T20:45:16.893Z" },
-    { url = 
"https://files.pythonhosted.org/packages/c6/80/2af5a3bb29ef74ac3595b110a6d4cdc28878643f31ba53432a804c3c3730/whenever-0.9.4-cp313-cp313t-musllinux_1_2_aarch64.whl";,
 hash = 
"sha256:9dcabe075cdc347c61c087bdd70e1f10252bf99a1e9d0dadb36f3b50f9a5e4fa", size 
= 638700, upload-time = "2025-12-18T20:44:20.239Z" },
-    { url = 
"https://files.pythonhosted.org/packages/6e/4d/b47e412171a92c3d951d39b7b786881ced0de47b4117ae72cab864560919/whenever-0.9.4-cp313-cp313t-musllinux_1_2_armv7l.whl";,
 hash = 
"sha256:50f59da886008eac23bcc0d46aec8833031e6023d744c7fa2110b0c9a3808729", size 
= 775590, upload-time = "2025-12-18T20:44:42.419Z" },
-    { url = 
"https://files.pythonhosted.org/packages/6a/61/61964af070564f42f35c4d77694aae3892dfd02e68a1c45c4cb809e38ffd/whenever-0.9.4-cp313-cp313t-musllinux_1_2_i686.whl";,
 hash = 
"sha256:32f1011efaebc18620cb3eff084ff085c17551f3a147613d7400e96315198dae", size 
= 738826, upload-time = "2025-12-18T20:45:29.006Z" },
-    { url = 
"https://files.pythonhosted.org/packages/99/6b/f784ba158cefca3e085db276869b88012e66ba77302fa2b4e6f36002924a/whenever-0.9.4-cp313-cp313t-musllinux_1_2_x86_64.whl";,
 hash = 
"sha256:71df13063165248bde8822d2bf6871db4fe3bbc3a09ebc8abde104e63cdcc34a", size 
= 698920, upload-time = "2025-12-18T20:45:53.433Z" },
-    { url = 
"https://files.pythonhosted.org/packages/f6/76/3b909b719adb3b15e2e6f0289d811f6eca936cffa5f9fd539ccdb2954847/whenever-0.9.4-cp313-cp313t-win32.whl";,
 hash = 
"sha256:9de1713941c79ed0dd51bad7c50324d9615568f3d9db92382538f0c74f69b2b1", size 
= 419973, upload-time = "2025-12-18T20:46:27.538Z" },
-    { url = 
"https://files.pythonhosted.org/packages/07/2f/c86754eb7924a004a9b14349514b39fa02718ec5ead86ef88a0b9f648bb3/whenever-0.9.4-cp313-cp313t-win_amd64.whl";,
 hash = 
"sha256:ff002c29205863ea375da3a24267972871adc0f66d16ebd11c410492b589f901", size 
= 434921, upload-time = "2025-12-18T20:46:36.778Z" },
-    { url = 
"https://files.pythonhosted.org/packages/3a/46/63d105d9fec2e859fd7712b00fd339c4a71254efa2f59f13716cb4a9b2e9/whenever-0.9.4-cp314-cp314-macosx_10_12_x86_64.whl";,
 hash = 
"sha256:c02937d48f49699bb0c1011930215933a06022a8de6a038a70e3d9903062cf1b", size 
= 467017, upload-time = "2025-12-18T20:46:18.94Z" },
-    { url = 
"https://files.pythonhosted.org/packages/c7/bf/b74ac11c89db9728e822d7a21c588615313f47d864a8b119f0e357d2487b/whenever-0.9.4-cp314-cp314-macosx_11_0_arm64.whl";,
 hash = 
"sha256:39f111eeb80def72f73b6724d44538dcaa9158bc7fd69c3d7ebc910353485e5e", size 
= 444664, upload-time = "2025-12-18T20:46:07.546Z" },
-    { url = 
"https://files.pythonhosted.org/packages/17/35/413e29b347198b6924fc32ef0a176f042af6d5b08523dce79886fcaa66d6/whenever-0.9.4-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";,
 hash = 
"sha256:15316db8703f0131bbc32ad05564c48d3975a8826584fe2104d6581478d2e93b", size 
= 461951, upload-time = "2025-12-18T20:44:11.205Z" },
-    { url = 
"https://files.pythonhosted.org/packages/09/80/3b13d564b3be20ccb66886a23b70da3e83cc1553dfd679b7e61447b95130/whenever-0.9.4-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl";,
 hash = 
"sha256:d467e869f0387f6304525ebca272b7c67a41d835ebe992eb723e337df51091c1", size 
= 506790, upload-time = "2025-12-18T20:44:32.895Z" },
-    { url = 
"https://files.pythonhosted.org/packages/65/a0/66632f9db682dfa00ee754d693c6dc11ed516d53488b0d769e8830b3f7cf/whenever-0.9.4-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl";,
 hash = 
"sha256:94aede0f685454f91448ec16307eda4e7b0f55f6c1dddc9bfc013de0e19575d5", size 
= 498040, upload-time = "2025-12-18T20:44:54.892Z" },
-    { url = 
"https://files.pythonhosted.org/packages/e2/3e/73f6668c79fdfe96893eea751a749cccae1d69eb58b03194ad1d43e8e602/whenever-0.9.4-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl";,
 hash = 
"sha256:4d184a0006202c0fa5476c74bb65e24a95da3694b365947901742cc5f42ce38a", size 
= 529284, upload-time = "2025-12-18T20:45:07.123Z" },
-    { url = 
"https://files.pythonhosted.org/packages/51/66/602b172589b368904f75d7f2c8adab5d2e1b1c934536ed60bd7a2fb1b71d/whenever-0.9.4-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl";,
 hash = 
"sha256:83a86861a3107de6547717c0ed802c66c783f963de6e95f137b39a4449b0521c", size 
= 490778, upload-time = "2025-12-18T20:45:43.928Z" },
-    { url = 
"https://files.pythonhosted.org/packages/b5/db/c570d7770d4f0e5ef8e98054b263956de79cf3ea8e15695322b16e6ece76/whenever-0.9.4-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl";,
 hash = 
"sha256:c7d90eee4140cc216115e0526ff598d72c3930f571bedb52710c9073e101f602", size 
= 529688, upload-time = "2025-12-18T20:45:18.244Z" },
-    { url = 
"https://files.pythonhosted.org/packages/23/7b/c70549db0dc550791e1803ba6e44cf14b5f02f32e0c01abd2a1a7f22756d/whenever-0.9.4-cp314-cp314-musllinux_1_2_aarch64.whl";,
 hash = 
"sha256:6e0bb39950e7af76f20a91624409b869abe20632b0a8e9ec468dad932dec1d1d", size 
= 641517, upload-time = "2025-12-18T20:44:22.099Z" },
-    { url = 
"https://files.pythonhosted.org/packages/1e/ed/90106e8aaeb3ead1f769bc3b54ed4012ce85f729e023d5cee5a73e4690e6/whenever-0.9.4-cp314-cp314-musllinux_1_2_armv7l.whl";,
 hash = 
"sha256:1508441442b77c723d7c4212314ea451fb085f6f3908807dfa13811af90c1b2e", size 
= 777669, upload-time = "2025-12-18T20:44:44.089Z" },
-    { url = 
"https://files.pythonhosted.org/packages/ca/11/0ddd49db6d01528f4255df539c913595b74e350929353019ad360ac95ceb/whenever-0.9.4-cp314-cp314-musllinux_1_2_i686.whl";,
 hash = 
"sha256:a9fa16db92b55e14e77c0d277a94009100e453eb800dcf0bb2d4a3e97ec15103", size 
= 741471, upload-time = "2025-12-18T20:45:31.222Z" },
-    { url = 
"https://files.pythonhosted.org/packages/9f/bf/4bec2004a032040da0cb9e37b2789ea7949e4391f878ff653edf8d3f2048/whenever-0.9.4-cp314-cp314-musllinux_1_2_x86_64.whl";,
 hash = 
"sha256:171f228b19b00388da7e52d9c929de5a6d5151129f8ed3c60702e55239740ea1", size 
= 700984, upload-time = "2025-12-18T20:45:54.657Z" },
-    { url = 
"https://files.pythonhosted.org/packages/82/81/46da062c6937b532f40398914dda84bdb53986deb87a375e376cfb188bee/whenever-0.9.4-cp314-cp314-win32.whl";,
 hash = 
"sha256:58997986869597e5460003345462a80daf8df788e25a782ac105bf8551b5135b", size 
= 418944, upload-time = "2026-01-11T11:31:11.873Z" },
-    { url = 
"https://files.pythonhosted.org/packages/85/c8/8d6868d0bff6c6ba5709ca02a47685a9e808ec20b2194c814c632de12f72/whenever-0.9.4-cp314-cp314-win_amd64.whl";,
 hash = 
"sha256:a452a232cccfc85a3ce3bdb0ba6eee958111b8c55dfc8705b6324138b513726c", size 
= 442118, upload-time = "2026-01-11T11:31:14.642Z" },
-    { url = 
"https://files.pythonhosted.org/packages/ca/7d/9e529a1b4a770845ad8b249e15806281639bf9bac3ccd9b56b33b5283cf5/whenever-0.9.4-cp314-cp314t-macosx_10_12_x86_64.whl";,
 hash = 
"sha256:2c38baa6eefee66ba0bdccc831e9f4533a64086b5c64b08669ea814e3e796b7a", size 
= 466810, upload-time = "2025-12-18T20:46:20.34Z" },
-    { url = 
"https://files.pythonhosted.org/packages/e9/96/8a0500ac957e236bd653d731fb955924f1e87398ef0cf99914aedcbc7dee/whenever-0.9.4-cp314-cp314t-macosx_11_0_arm64.whl";,
 hash = 
"sha256:15ef457760a46bc22f1db827eb98971f84a150e3fdcc5cc9ac92aaa5925e231f", size 
= 443212, upload-time = "2025-12-18T20:46:09.071Z" },
-    { url = 
"https://files.pythonhosted.org/packages/00/78/6334d3f446af741bc548a084085ef0b2adf91a4d0dbf3c6dee628573c06d/whenever-0.9.4-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";,
 hash = 
"sha256:fd8edd595469d48cd2f4349120bc795394835cc851d257edc595a8db60aa9582", size 
= 460266, upload-time = "2025-12-18T20:44:12.478Z" },
-    { url = 
"https://files.pythonhosted.org/packages/f0/f6/3670d5601da93dcc04907fd0ac1862071742e08c9c33539ae9b192547185/whenever-0.9.4-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl";,
 hash = 
"sha256:a38955482ab1daa259291937915347aae6997af14a1dd4d68d7a0a4541464583", size 
= 504698, upload-time = "2025-12-18T20:44:34.066Z" },
-    { url = 
"https://files.pythonhosted.org/packages/c7/9d/0407dde2f1fd8c361978a7dc7425c2dafb73b6c2224124e4e7e652c7dd95/whenever-0.9.4-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl";,
 hash = 
"sha256:fe0bf7299894948f7ffb1c3ad75ae33084cfb77cdecd47d62331b31c81110831", size 
= 496414, upload-time = "2025-12-18T20:44:56.238Z" },
-    { url = 
"https://files.pythonhosted.org/packages/36/0c/993225642c2b34b4e88bf0a7e1f102eb5ed9e39cc07925b8dda484040cd1/whenever-0.9.4-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl";,
 hash = 
"sha256:b9f25607c7fbe936ebbb6c94be2bcaa2fb3fb599cd3ca40c2af1b0d8f8606e20", size 
= 527466, upload-time = "2025-12-18T20:45:08.463Z" },
-    { url = 
"https://files.pythonhosted.org/packages/c1/b8/10b6f68701b884c6b711a6686a73d005170f7b4872337204e1266aa9e864/whenever-0.9.4-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl";,
 hash = 
"sha256:ce1329a7aa9ef39f02164c54eb420a78a0ff5a86fcbedd76975059ed5efdf80a", size 
= 490409, upload-time = "2025-12-18T20:45:45.255Z" },
-    { url = 
"https://files.pythonhosted.org/packages/df/e6/ff2c17b380d80ce684d1af57852195a2b40009689b813b96665307678098/whenever-0.9.4-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl";,
 hash = 
"sha256:67d5e736a30f8fdd3d65e78cfab21d1e4824b847a4caeddcf4d7077a5ece0a36", size 
= 529026, upload-time = "2025-12-18T20:45:19.571Z" },
-    { url = 
"https://files.pythonhosted.org/packages/c8/28/0daf67d5e9ea8ad0179bb8747cbe47eb2ba24335aa541f06699eb60561fb/whenever-0.9.4-cp314-cp314t-musllinux_1_2_aarch64.whl";,
 hash = 
"sha256:2dbd42a1e5039155f47cc1d63c21ead6013441eff9b130891a4be87ef126ad91", size 
= 640099, upload-time = "2025-12-18T20:44:23.286Z" },
-    { url = 
"https://files.pythonhosted.org/packages/b8/ac/6dda71976ac64aaf6599c0e23490a97da41262008c77c602f8ccb04988d5/whenever-0.9.4-cp314-cp314t-musllinux_1_2_armv7l.whl";,
 hash = 
"sha256:d8d7b92f8deffdc48b305d13243a61ef8cd8732e28c173cf0e3dec0d1454cd1a", size 
= 775768, upload-time = "2025-12-18T20:44:45.76Z" },
-    { url = 
"https://files.pythonhosted.org/packages/1e/bb/5e29977f4c7b3f9a672ca1664ae7b1ecd8efcba708a0f47481d93d4c633b/whenever-0.9.4-cp314-cp314t-musllinux_1_2_i686.whl";,
 hash = 
"sha256:334e0febba4b3bfd925f4c4c14a457b683f23e237b5f698791359bcd512149d9", size 
= 740055, upload-time = "2025-12-18T20:45:33.105Z" },
-    { url = 
"https://files.pythonhosted.org/packages/3e/1b/05b7846e001e22c12a4beea10d5bcf115a1262e8b15bb7aa243a1911e42b/whenever-0.9.4-cp314-cp314t-musllinux_1_2_x86_64.whl";,
 hash = 
"sha256:7ab37211c24d962630623e59706c46cae65e55042a7f0ba82c252698ff82e728", size 
= 700784, upload-time = "2025-12-18T20:45:56.529Z" },
-    { url = 
"https://files.pythonhosted.org/packages/bc/20/0e62de9f52ff5ed9d9af18446e7f9c2ae8fc1f67cf71dc5117f0f151402c/whenever-0.9.4-cp314-cp314t-win32.whl";,
 hash = 
"sha256:376d3e3f2cb805dc5d889caeea15d4ee6401080ba78b97fd378b86850a2d5454", size 
= 420839, upload-time = "2025-12-18T20:46:29.473Z" },
-    { url = 
"https://files.pythonhosted.org/packages/3a/68/52996f6fa0595fcfb84d6695df15ff9d80a86609f3034c6a17829a8085e6/whenever-0.9.4-cp314-cp314t-win_amd64.whl";,
 hash = 
"sha256:f603214f8eb33f497262c0ae819106c0c76cf1dc39b9d1e8ff408265c98275ba", size 
= 437159, upload-time = "2025-12-18T20:46:38.262Z" },
-    { url = 
"https://files.pythonhosted.org/packages/9f/e7/84381106a701c812652405f4d74093f6da7c2748a639084fd2c092cd2c78/whenever-0.9.4-py3-none-any.whl";,
 hash = 
"sha256:b373ece2ad5cf4667848af3057aefa8fbb443d20e721cf4259602cc801f9d176", size 
= 64872, upload-time = "2025-12-18T20:46:40.888Z" },
+    { url = 
"https://files.pythonhosted.org/packages/b1/ac/b69f67cf0834d5d6e5151bbccd06e25315ababd77672f314cb2bddee5e80/whenever-0.10.0-cp313-cp313-macosx_10_12_x86_64.whl";,
 hash = 
"sha256:c3665bc09c0bd373ee96a276d4379171650a1df634b54c8d173835f79b34b0cd", size 
= 600205, upload-time = "2026-04-05T18:41:56.903Z" },
+    { url = 
"https://files.pythonhosted.org/packages/42/31/d8d2e2d7cb684062a46ca84ee3d24930d63e51095bac3c6236a2df2b5393/whenever-0.10.0-cp313-cp313-macosx_11_0_arm64.whl";,
 hash = 
"sha256:5a3c1d8691ef80e59381e813e7020634042cdb5303c31600bea7a3c9725111c6", size 
= 579778, upload-time = "2026-04-05T18:41:58.607Z" },
+    { url = 
"https://files.pythonhosted.org/packages/37/ef/d2dd2365bb82f7092e6f3563c35e2fb25bdfa4ea5654343a57f5c6dc660c/whenever-0.10.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";,
 hash = 
"sha256:7ad35c9eabfab4487c57dce4ba763afa80e1bdccdc8f2a07ef1698ac471c51fa", size 
= 596390, upload-time = "2026-04-05T18:42:00.904Z" },
+    { url = 
"https://files.pythonhosted.org/packages/c9/f6/d1734ef1431283ba35d110baf44986cff140c8c5586779f9d41e3ca83444/whenever-0.10.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl";,
 hash = 
"sha256:b040cb5e0a8ab1e7ea0fbb09e53f197130dc96b17bbf008f9be8876a90660e34", size 
= 651455, upload-time = "2026-04-05T18:42:02.725Z" },
+    { url = 
"https://files.pythonhosted.org/packages/6a/50/5a246269b543ca86f6fd4c815e09252e70776dbb704b7453ae05a72bacc6/whenever-0.10.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl";,
 hash = 
"sha256:e7430f5ba42f9f123ec82697ad45ba7515721ac9f60ff079d228df5f160a48f0", size 
= 635385, upload-time = "2026-04-05T18:42:04.958Z" },
+    { url = 
"https://files.pythonhosted.org/packages/b9/de/8b9f474bbfa8e426a1e4f7a47ec37677780004c87190cc616c921362f4cd/whenever-0.10.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl";,
 hash = 
"sha256:688756233e5a701a93f3cd8f70236271cead0b2cb18343199f0102837ff4c14b", size 
= 647615, upload-time = "2026-04-05T18:42:06.741Z" },
+    { url = 
"https://files.pythonhosted.org/packages/5f/10/15ab8f01b7aea24c2c10935c3adee60a26753788e6d36a1fc8f6a779422d/whenever-0.10.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl";,
 hash = 
"sha256:91dcdd5582503d5ae15e5bf036125a26042a65685b0c46b953cf583123ee6ff4", size 
= 617400, upload-time = "2026-04-05T18:42:08.767Z" },
+    { url = 
"https://files.pythonhosted.org/packages/40/46/c4d3c3de6e61b01862cf650e29eea58ad7e527da1ccd6f3737272b4e7f25/whenever-0.10.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl";,
 hash = 
"sha256:1d4ead25c65553edc962f64f0db204230a695a58abc66fe6174a785de2765452", size 
= 669967, upload-time = "2026-04-05T18:42:10.531Z" },
+    { url = 
"https://files.pythonhosted.org/packages/88/42/8629a289761766d507148f622b8e667d6799b631a9ceaf233f1fc0383523/whenever-0.10.0-cp313-cp313-musllinux_1_2_aarch64.whl";,
 hash = 
"sha256:2d313bbd10128be0335f6cfbda8a27c91466edb00032e72d5ec45c9821f94b4f", size 
= 772531, upload-time = "2026-04-05T18:42:12.738Z" },
+    { url = 
"https://files.pythonhosted.org/packages/c8/f3/a1ecce2c5dcf16cec9ab4e0cd3eddd26f2f676d9af0dafdec39d9b7e39e0/whenever-0.10.0-cp313-cp313-musllinux_1_2_armv7l.whl";,
 hash = 
"sha256:5069ff0fcca43fc3452f0fd11da611e269135a62821cbae671728b29726165c5", size 
= 927231, upload-time = "2026-04-05T18:42:14.937Z" },
+    { url = 
"https://files.pythonhosted.org/packages/21/7e/98c307eb2285b06ea757b2a2eac23198596242e9de7954aa2992ef40a1c0/whenever-0.10.0-cp313-cp313-musllinux_1_2_i686.whl";,
 hash = 
"sha256:34e5ffc3e7c926264949ca30ae72a3b65b472982e87d7b023ef1a79e1565ea82", size 
= 880405, upload-time = "2026-04-05T18:42:17.094Z" },
+    { url = 
"https://files.pythonhosted.org/packages/a9/91/503d04c2f79319563b7540acfbca61829e419661e7ee6035d4a5dd86cf83/whenever-0.10.0-cp313-cp313-musllinux_1_2_x86_64.whl";,
 hash = 
"sha256:6bc61755003efc685c3b097ce0be2e104e9a2d39dbbb1381b7e8dca5e29301d4", size 
= 829944, upload-time = "2026-04-05T18:42:18.759Z" },
+    { url = 
"https://files.pythonhosted.org/packages/78/53/8f57c6e1c0e4b578dd5b9b1a6a39ecdac1602e31973df376ff2cc569b5ef/whenever-0.10.0-cp313-cp313-win32.whl";,
 hash = 
"sha256:a23a7d112a57200422912f963cd7ac0cda1f3729c1b51da675e4830f94a86af5", size 
= 559464, upload-time = "2026-04-05T18:42:20.475Z" },
+    { url = 
"https://files.pythonhosted.org/packages/43/48/7e2a8fc167b6eb40c91db102c4268c7b90376fd6b74336b0d7ea6c32057d/whenever-0.10.0-cp313-cp313-win_amd64.whl";,
 hash = 
"sha256:3f87bd9f59d74e9d79ea0ade64d655e4c394b9916a55c8a91afb5ef870f0df01", size 
= 560157, upload-time = "2026-04-05T18:42:22.434Z" },
+    { url = 
"https://files.pythonhosted.org/packages/41/46/a2f01cb2b0020195f46aee927e8b19f55594db4b5c58112cf50d36d4b4e3/whenever-0.10.0-cp313-cp313t-macosx_10_12_x86_64.whl";,
 hash = 
"sha256:e8bbe9bd956ea4a94357d707583efecaae37613cdaf303eb2e31894d2257a630", size 
= 599293, upload-time = "2026-04-05T18:42:24.171Z" },
+    { url = 
"https://files.pythonhosted.org/packages/c1/f2/4c5a8b8c277b9c6b61ada806d4a9870376ddef5f96473d94def5509c451b/whenever-0.10.0-cp313-cp313t-macosx_11_0_arm64.whl";,
 hash = 
"sha256:075b268cbd6d1a9787232e6571aaabd443d17f9bc58dee7919e91b7e4eb78e6d", size 
= 579760, upload-time = "2026-04-05T18:42:26.114Z" },
+    { url = 
"https://files.pythonhosted.org/packages/85/75/981c69e0520067d5061d92a5aa95b8b8a5609380459e53c013dfc5820a13/whenever-0.10.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";,
 hash = 
"sha256:8936a86eaefba4d0cf357412817c5a36b99d1dc9ea8cfbad07effe739a204406", size 
= 597080, upload-time = "2026-04-05T18:42:28.221Z" },
+    { url = 
"https://files.pythonhosted.org/packages/e7/9e/00c79782ac16b5e22c87417db2bcc4f3150d03f44d2d9ea115383c9f7336/whenever-0.10.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl";,
 hash = 
"sha256:4f5571e66d47080060bc935d99211a148af44a41feb2a2770f87620bbfd06e0b", size 
= 652741, upload-time = "2026-04-05T18:42:30.342Z" },
+    { url = 
"https://files.pythonhosted.org/packages/65/73/50207dd249606cdf77d50cc1cb581d7349e2b72e38dbd17fcca0023cb87d/whenever-0.10.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl";,
 hash = 
"sha256:bc24a7531a7a7e4a90f7ddec1065985b2865c88000a39df6d9daad359bf02fa1", size 
= 635757, upload-time = "2026-04-05T18:42:32.545Z" },
+    { url = 
"https://files.pythonhosted.org/packages/65/c5/a8fb5a43c396fb50186ebd04ea85fa7d8f75444b6b1a1321e06422035692/whenever-0.10.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl";,
 hash = 
"sha256:0f1aab159f692dd7aa80c1ea725a9ca68f06955830dd9311fe982090b3cdb69d", size 
= 648037, upload-time = "2026-04-05T18:42:34.352Z" },
+    { url = 
"https://files.pythonhosted.org/packages/22/d9/44ae1e98bcb0d126c3794b88d4e620cebb2c3635061e230365dae937784f/whenever-0.10.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl";,
 hash = 
"sha256:d75774ffa8955bc920b3a4d2ca39f5f03e90a8bb76f9611e5ce7c2c2594d87e5", size 
= 616592, upload-time = "2026-04-05T18:42:36.6Z" },
+    { url = 
"https://files.pythonhosted.org/packages/eb/39/bfbd34662b09e14b05e9be6aad9a09f4cb2324fb3484920b368354d38e9f/whenever-0.10.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl";,
 hash = 
"sha256:e13d0c70a2af7d051612cc52a224e7c0629459fb4e3b87b7edd32a14d282ea13", size 
= 669382, upload-time = "2026-04-05T18:42:38.46Z" },
+    { url = 
"https://files.pythonhosted.org/packages/35/d7/cc8b659cfd3474f558f0e1644a3d3682df3a4a5620a12b6b98d5a2762ce5/whenever-0.10.0-cp313-cp313t-musllinux_1_2_aarch64.whl";,
 hash = 
"sha256:e907bc52b1d6a17e0f537e856e1ee2fb87971e3a4dd4a2bd06633e967b779198", size 
= 773353, upload-time = "2026-04-05T18:42:40.835Z" },
+    { url = 
"https://files.pythonhosted.org/packages/58/67/99759706ab3f4caa50a950582203744f4d1ade96358ef8f91eb5c3958f2a/whenever-0.10.0-cp313-cp313t-musllinux_1_2_armv7l.whl";,
 hash = 
"sha256:27bda9b1a216203069c6ee0bdb0ce5c352467b5e610446c676017f8e2ba430fd", size 
= 928836, upload-time = "2026-04-05T18:42:42.568Z" },
+    { url = 
"https://files.pythonhosted.org/packages/dc/30/acadd0e5c8a7831ab27736d5c84f1a8e8ade66224681c5c0f1dd71d8bcc1/whenever-0.10.0-cp313-cp313t-musllinux_1_2_i686.whl";,
 hash = 
"sha256:53b7b1a74d9b88c3734381914679f18413d80d8098e7069d51a38e77d277c04c", size 
= 879889, upload-time = "2026-04-05T18:42:44.751Z" },
+    { url = 
"https://files.pythonhosted.org/packages/65/e9/2ed538c0f644da6dacf21878c85f49282926290b5f27ec42edc698d72e89/whenever-0.10.0-cp313-cp313t-musllinux_1_2_x86_64.whl";,
 hash = 
"sha256:581570285d2dafb92180bc5861c021fdac1d1a4bd2027ea1366a8192d613e4f5", size 
= 829542, upload-time = "2026-04-05T18:42:46.533Z" },
+    { url = 
"https://files.pythonhosted.org/packages/35/26/40ed44f826ebe4f07eb5d89b2956b84eb3c2aaae02ee119ee510f64d7dd8/whenever-0.10.0-cp313-cp313t-win32.whl";,
 hash = 
"sha256:4d230aedc4ae9734b6c91294e77e58c0fb4c7520459ebcaad084d9de1bbcee08", size 
= 560958, upload-time = "2026-04-05T18:42:48.667Z" },
+    { url = 
"https://files.pythonhosted.org/packages/77/cc/f78d0977d40ecb5ec6c457b93db5149b6aa8442db5b87b74ef7ef58ec4f9/whenever-0.10.0-cp313-cp313t-win_amd64.whl";,
 hash = 
"sha256:a5a4b3eb358a3df33d91fbc011695508fce0e2d6ded64d7b71ff1e3f6df2509d", size 
= 558924, upload-time = "2026-04-05T18:42:50.724Z" },
+    { url = 
"https://files.pythonhosted.org/packages/e8/89/65861b886729b89c6e1f4331562427ee2d5d12cde94c4001afad508cc662/whenever-0.10.0-cp314-cp314-macosx_10_12_x86_64.whl";,
 hash = 
"sha256:6c884c6b206a63070ce1f58301a332e3b6606b53821d87f8b8e304a436bfbd26", size 
= 600633, upload-time = "2026-04-05T18:42:52.665Z" },
+    { url = 
"https://files.pythonhosted.org/packages/f5/eb/2b3ef4807ceffcd7a447386350f180e8a130e87a642dd3f74c159eaa2573/whenever-0.10.0-cp314-cp314-macosx_11_0_arm64.whl";,
 hash = 
"sha256:5a3c0712e41512c8063da2ea8da28b0db2445c74514143f464ccb44c907ac1ef", size 
= 582013, upload-time = "2026-04-05T18:42:54.53Z" },
+    { url = 
"https://files.pythonhosted.org/packages/75/6f/a2ca2635fae996e030ab30b1ce0e1b54dbe19bbee5b303314eb5e53053bd/whenever-0.10.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";,
 hash = 
"sha256:4e96cf6c3b05b9aa4412d11e72bf50c001abda57e47b985ec31614e2efeeb9bc", size 
= 597635, upload-time = "2026-04-05T18:42:56.584Z" },
+    { url = 
"https://files.pythonhosted.org/packages/ef/ee/fca46b640a2b843c3bfedd3d9aa7d7f417d1f0fa447f0fec9a3d6d2d3ee9/whenever-0.10.0-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl";,
 hash = 
"sha256:1746fa35a3f598bee76aa92841c175b65926a49856ebc58116394ca46f0a9b7d", size 
= 653223, upload-time = "2026-04-05T18:42:58.315Z" },
+    { url = 
"https://files.pythonhosted.org/packages/25/ef/4606964c6ca217b7932a600148fcc981a6cd722715d545e2975ee6bbefcc/whenever-0.10.0-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl";,
 hash = 
"sha256:9c78ea92143b37c6922bc05cfd53e90e3322396a1e4ecd2db662b16cb990c414", size 
= 636816, upload-time = "2026-04-05T18:43:00.025Z" },
+    { url = 
"https://files.pythonhosted.org/packages/bb/22/a77ca0c5e6507116b94400d5a5bf3182b350532933dd2296cd9fcd116551/whenever-0.10.0-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl";,
 hash = 
"sha256:91a1b778b8ee154d70921cbf63e6a0949251a5ab93f077f1fa89167ff5e91b35", size 
= 648596, upload-time = "2026-04-05T18:43:01.879Z" },
+    { url = 
"https://files.pythonhosted.org/packages/b9/4a/f4e3620f9542b092f31c3de6810e137cc1c01c33a5a25cc3f90a138b98a3/whenever-0.10.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl";,
 hash = 
"sha256:5219a2663757dec9303fad9328fee2b06a64757cd316cf5fa4060b0bc2e4d032", size 
= 619185, upload-time = "2026-04-05T18:43:03.792Z" },
+    { url = 
"https://files.pythonhosted.org/packages/10/55/902d311917ce27115b522b5a647ba4d805045ed49a2fe95407ea132d46ac/whenever-0.10.0-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl";,
 hash = 
"sha256:0dbd9b90d9279e95ff717a2f112822162ab4f3da04382a9dd0dd21e8daf28cf6", size 
= 671891, upload-time = "2026-04-05T18:43:05.834Z" },
+    { url = 
"https://files.pythonhosted.org/packages/98/6f/bea8a92476b785fe55803ad524384d82ce691ff81ec6ef5078c555c06fdf/whenever-0.10.0-cp314-cp314-musllinux_1_2_aarch64.whl";,
 hash = 
"sha256:86bb8042c6a40c29f4397e87bb5c89777f8e50111ce902d5665c3299cb7b3fc9", size 
= 773395, upload-time = "2026-04-05T18:43:07.895Z" },
+    { url = 
"https://files.pythonhosted.org/packages/db/42/633b34d89e45c2e283f63d4461420d7c5a20209bdff54bd041971e1e4c61/whenever-0.10.0-cp314-cp314-musllinux_1_2_armv7l.whl";,
 hash = 
"sha256:4083b5ae49323a2ed6d64fec9a665ac5dfafedd1e0d75591e26eb4f385216fc4", size 
= 929175, upload-time = "2026-04-05T18:43:09.913Z" },
+    { url = 
"https://files.pythonhosted.org/packages/77/c0/cb6d0932da859f136a09d807e15de7e8d6832303744226434ee2f3fba3bf/whenever-0.10.0-cp314-cp314-musllinux_1_2_i686.whl";,
 hash = 
"sha256:4e1ae2efdaaab4f1b51a50f2a0e576687c0be798fe0ec185b1b673f9a24d039c", size 
= 883239, upload-time = "2026-04-05T18:43:11.812Z" },
+    { url = 
"https://files.pythonhosted.org/packages/0b/28/fd94b38a979c619fdc81a94765fdb5717b94f8288b7e4834a95858fdfba5/whenever-0.10.0-cp314-cp314-musllinux_1_2_x86_64.whl";,
 hash = 
"sha256:7059ffb2ac2a8b4fc7c95f0db7a083fdb2eeb14034856a9277a000beaf7ecb31", size 
= 831475, upload-time = "2026-04-05T18:43:13.686Z" },
+    { url = 
"https://files.pythonhosted.org/packages/56/ba/9afc25161daaafabb59b1f71559e65e8a5c0d9073a47f669775a802503a9/whenever-0.10.0-cp314-cp314-win32.whl";,
 hash = 
"sha256:de5b2be02fa15e2b36e2de0e48185f872154d2aac9e66240aa2f4d6cbd79d1e0", size 
= 563167, upload-time = "2026-04-05T18:43:15.577Z" },
+    { url = 
"https://files.pythonhosted.org/packages/c5/b2/8ad678802988ac7ad4937372cf8562f5c267d8ce605194a9409d4c1b9d82/whenever-0.10.0-cp314-cp314-win_amd64.whl";,
 hash = 
"sha256:2a214d0d72db76611034a18f5d103663131f0d5b7a2518d571dbf121d766f446", size 
= 561210, upload-time = "2026-04-05T18:43:17.43Z" },
+    { url = 
"https://files.pythonhosted.org/packages/3f/04/ee9cea596f5b5366f35cc1fdc351edb82233d7d5787e905b352ec9a193fb/whenever-0.10.0-cp314-cp314t-macosx_10_12_x86_64.whl";,
 hash = 
"sha256:74008d13bbf6ee6c3d53e6b4e00dc2b9c2dd23b4d59543c58a0700a9622e3c43", size 
= 600820, upload-time = "2026-04-05T18:43:19.615Z" },
+    { url = 
"https://files.pythonhosted.org/packages/8c/d7/124aecf53b82e5db2e9dd27d67c293dfd3f83f77efbc313c0a9617a9c1f0/whenever-0.10.0-cp314-cp314t-macosx_11_0_arm64.whl";,
 hash = 
"sha256:060f6d710dc10b8ad87b1be59be0c67eda07b272095d32f23fa5483c01bbfbde", size 
= 581826, upload-time = "2026-04-05T18:43:21.428Z" },
+    { url = 
"https://files.pythonhosted.org/packages/fd/71/8138baa7a6789b9a7f1ca88b81e0ebd2bec22e7ab879b08ef8923f0f757f/whenever-0.10.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";,
 hash = 
"sha256:c34c72bab3d4387d83fd4b84b8ebdd706a12e39438ec56aff506ebb1318bdf8f", size 
= 598139, upload-time = "2026-04-05T18:43:23.683Z" },
+    { url = 
"https://files.pythonhosted.org/packages/58/62/c1b6abba7b108c59515d4b8e889b7cb53fc8c5bbf82f91868f74b9ce5828/whenever-0.10.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl";,
 hash = 
"sha256:424641f831f7678fffbac1eb61cb32259fbfb3835813f84b59d66a4cfc8507a7", size 
= 653912, upload-time = "2026-04-05T18:43:25.534Z" },
+    { url = 
"https://files.pythonhosted.org/packages/0c/35/c0dbe2119b53d7fd7721f95537b650736fada242b4786f4eba9ebfd2578c/whenever-0.10.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl";,
 hash = 
"sha256:19fd25cdfebb82da8bc901c5fc701b230af5c9737455edd78d93f22f023f053a", size 
= 637727, upload-time = "2026-04-05T18:43:27.492Z" },
+    { url = 
"https://files.pythonhosted.org/packages/8b/7e/134b9ca00ed2e1a913fd766745160c103405bb6e7fa5094c08dc9394506f/whenever-0.10.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl";,
 hash = 
"sha256:a82849f50fe3ed25ae30d3c0f65ad772d6d9652b4c1f687c6d092b04fc4dc88a", size 
= 649651, upload-time = "2026-04-05T18:43:29.679Z" },
+    { url = 
"https://files.pythonhosted.org/packages/da/8a/b6223ddc515810cf69653c6ea24fff7f4f638d183baa86f824ada1b79996/whenever-0.10.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl";,
 hash = 
"sha256:f9dba313ce89af668f519db441a3901341789e1b428ca51f0b4d930d7423748a", size 
= 619009, upload-time = "2026-04-05T18:43:31.948Z" },
+    { url = 
"https://files.pythonhosted.org/packages/d7/e9/f7bb8a72935d64c3a753ad137259575fa98503c837d08b459b1c920348fb/whenever-0.10.0-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl";,
 hash = 
"sha256:229c1b06e31a5089342dd2680eeb96c7194bbd1ccdbc35b688b1f21379022b63", size 
= 671544, upload-time = "2026-04-05T18:43:33.838Z" },
+    { url = 
"https://files.pythonhosted.org/packages/43/7d/bbfe6deff3147b8f18ec63b8f91bb7c507003441b4a1006fbb42a9f1ce2a/whenever-0.10.0-cp314-cp314t-musllinux_1_2_aarch64.whl";,
 hash = 
"sha256:9fef6e1379f31fc3fdb9a0221130a06d8572a7791cb0e8ef3713009b96525184", size 
= 775094, upload-time = "2026-04-05T18:43:35.667Z" },
+    { url = 
"https://files.pythonhosted.org/packages/8d/e0/7449e7c22206123224e46864a90498038966608ab6c266faa893e44ec9ac/whenever-0.10.0-cp314-cp314t-musllinux_1_2_armv7l.whl";,
 hash = 
"sha256:782e564cda904e83e1c5f95ff0b68d7fc0d322d5b740e32b573a3e038299a04b", size 
= 929505, upload-time = "2026-04-05T18:43:37.607Z" },
+    { url = 
"https://files.pythonhosted.org/packages/2e/06/81203b1fa283c95b932363403334db4a4af4ab1b8208eb949315cc60eed3/whenever-0.10.0-cp314-cp314t-musllinux_1_2_i686.whl";,
 hash = 
"sha256:203c9c0c02846bd5d47b767c5ef45c94658cf25f8eff537039e7d03f354c9db2", size 
= 882725, upload-time = "2026-04-05T18:43:39.526Z" },
+    { url = 
"https://files.pythonhosted.org/packages/dd/97/e5bcb2670ec99bb4a8b6fcbac24b706bf80e59761b07e75bd3eb8910f597/whenever-0.10.0-cp314-cp314t-musllinux_1_2_x86_64.whl";,
 hash = 
"sha256:2dae6ebc9008af8e4022e61f3fa7a69f96a283dfd18a4064b441f17772b78808", size 
= 831773, upload-time = "2026-04-05T18:43:41.504Z" },
+    { url = 
"https://files.pythonhosted.org/packages/e0/82/b351bf95bd95efe13e215398bfa5627e84e32408ebdf8568a483d3f4d9aa/whenever-0.10.0-cp314-cp314t-win32.whl";,
 hash = 
"sha256:743220a5fa5b4e60f64d2e8f29eba258d8703dace9b640f38eda4ccd13ac559e", size 
= 563834, upload-time = "2026-04-05T18:43:43.966Z" },
+    { url = 
"https://files.pythonhosted.org/packages/53/43/62f04f661286ce2c93310fb0682c1c6665c9804567923861b2382676c91d/whenever-0.10.0-cp314-cp314t-win_amd64.whl";,
 hash = 
"sha256:8f7482cc1b1d019fbcfad83b31f783b0eaf5390aada329f044dc04921bb5ea2b", size 
= 560313, upload-time = "2026-04-05T18:43:46.293Z" },
+    { url = 
"https://files.pythonhosted.org/packages/ed/b5/38fba836844233b961a0026d96f39f893eab63757e7757fd1d16fb02aa80/whenever-0.10.0-py3-none-any.whl";,
 hash = 
"sha256:70feda454af6b2c231abd428b9430cd75492a000ca1d1edc42976d6fea265eec", size 
= 119264, upload-time = "2026-04-05T18:43:48.077Z" },
 ]
diff --git a/docs/source/driver/postgresql.rst 
b/docs/source/driver/postgresql.rst
index b28a1ecbe..cc77b84b0 100644
--- a/docs/source/driver/postgresql.rst
+++ b/docs/source/driver/postgresql.rst
@@ -263,6 +263,10 @@ being read or written.
      - int32
    * - INTERVAL
      - month_day_nano_interval
+   * - JSON
+     - utf8
+   * - JSONB
+     - utf8
    * - NUMERIC
      - utf8 [#numeric-utf8]_
    * - REAL

Reply via email to