diff --git a/poetry.lock b/poetry.lock index 772545e..1ccaabe 100644 --- a/poetry.lock +++ b/poetry.lock @@ -59,13 +59,13 @@ uvloop = ["uvloop (>=0.15.2)"] [[package]] name = "click" -version = "8.1.7" +version = "8.1.8" description = "Composable command line interface toolkit" optional = false python-versions = ">=3.7" files = [ - {file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"}, - {file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"}, + {file = "click-8.1.8-py3-none-any.whl", hash = "sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2"}, + {file = "click-8.1.8.tar.gz", hash = "sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a"}, ] [package.dependencies] @@ -104,73 +104,73 @@ lz4 = ["lz4"] [[package]] name = "coverage" -version = "7.6.7" +version = "7.6.9" description = "Code coverage measurement for Python" optional = false python-versions = ">=3.9" files = [ - {file = "coverage-7.6.7-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:108bb458827765d538abcbf8288599fee07d2743357bdd9b9dad456c287e121e"}, - {file = "coverage-7.6.7-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c973b2fe4dc445cb865ab369df7521df9c27bf40715c837a113edaa2aa9faf45"}, - {file = "coverage-7.6.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3c6b24007c4bcd0b19fac25763a7cac5035c735ae017e9a349b927cfc88f31c1"}, - {file = "coverage-7.6.7-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:acbb8af78f8f91b3b51f58f288c0994ba63c646bc1a8a22ad072e4e7e0a49f1c"}, - {file = "coverage-7.6.7-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ad32a981bcdedb8d2ace03b05e4fd8dace8901eec64a532b00b15217d3677dd2"}, - {file = "coverage-7.6.7-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:34d23e28ccb26236718a3a78ba72744212aa383141961dd6825f6595005c8b06"}, - {file = "coverage-7.6.7-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e25bacb53a8c7325e34d45dddd2f2fbae0dbc230d0e2642e264a64e17322a777"}, - {file = "coverage-7.6.7-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:af05bbba896c4472a29408455fe31b3797b4d8648ed0a2ccac03e074a77e2314"}, - {file = "coverage-7.6.7-cp310-cp310-win32.whl", hash = "sha256:796c9b107d11d2d69e1849b2dfe41730134b526a49d3acb98ca02f4985eeff7a"}, - {file = "coverage-7.6.7-cp310-cp310-win_amd64.whl", hash = "sha256:987a8e3da7da4eed10a20491cf790589a8e5e07656b6dc22d3814c4d88faf163"}, - {file = "coverage-7.6.7-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7e61b0e77ff4dddebb35a0e8bb5a68bf0f8b872407d8d9f0c726b65dfabe2469"}, - {file = "coverage-7.6.7-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1a5407a75ca4abc20d6252efeb238377a71ce7bda849c26c7a9bece8680a5d99"}, - {file = "coverage-7.6.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:df002e59f2d29e889c37abd0b9ee0d0e6e38c24f5f55d71ff0e09e3412a340ec"}, - {file = "coverage-7.6.7-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:673184b3156cba06154825f25af33baa2671ddae6343f23175764e65a8c4c30b"}, - {file = "coverage-7.6.7-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e69ad502f1a2243f739f5bd60565d14a278be58be4c137d90799f2c263e7049a"}, - {file = "coverage-7.6.7-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:60dcf7605c50ea72a14490d0756daffef77a5be15ed1b9fea468b1c7bda1bc3b"}, - {file = "coverage-7.6.7-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:9c2eb378bebb2c8f65befcb5147877fc1c9fbc640fc0aad3add759b5df79d55d"}, - {file = "coverage-7.6.7-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3c0317288f032221d35fa4cbc35d9f4923ff0dfd176c79c9b356e8ef8ef2dff4"}, - {file = "coverage-7.6.7-cp311-cp311-win32.whl", hash = "sha256:951aade8297358f3618a6e0660dc74f6b52233c42089d28525749fc8267dccd2"}, - {file = "coverage-7.6.7-cp311-cp311-win_amd64.whl", hash = "sha256:5e444b8e88339a2a67ce07d41faabb1d60d1004820cee5a2c2b54e2d8e429a0f"}, - {file = "coverage-7.6.7-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f07ff574986bc3edb80e2c36391678a271d555f91fd1d332a1e0f4b5ea4b6ea9"}, - {file = "coverage-7.6.7-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:49ed5ee4109258973630c1f9d099c7e72c5c36605029f3a91fe9982c6076c82b"}, - {file = "coverage-7.6.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f3e8796434a8106b3ac025fd15417315d7a58ee3e600ad4dbcfddc3f4b14342c"}, - {file = "coverage-7.6.7-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a3b925300484a3294d1c70f6b2b810d6526f2929de954e5b6be2bf8caa1f12c1"}, - {file = "coverage-7.6.7-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3c42ec2c522e3ddd683dec5cdce8e62817afb648caedad9da725001fa530d354"}, - {file = "coverage-7.6.7-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:0266b62cbea568bd5e93a4da364d05de422110cbed5056d69339bd5af5685433"}, - {file = "coverage-7.6.7-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:e5f2a0f161d126ccc7038f1f3029184dbdf8f018230af17ef6fd6a707a5b881f"}, - {file = "coverage-7.6.7-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:c132b5a22821f9b143f87446805e13580b67c670a548b96da945a8f6b4f2efbb"}, - {file = "coverage-7.6.7-cp312-cp312-win32.whl", hash = "sha256:7c07de0d2a110f02af30883cd7dddbe704887617d5c27cf373362667445a4c76"}, - {file = "coverage-7.6.7-cp312-cp312-win_amd64.whl", hash = "sha256:fd49c01e5057a451c30c9b892948976f5d38f2cbd04dc556a82743ba8e27ed8c"}, - {file = "coverage-7.6.7-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:46f21663e358beae6b368429ffadf14ed0a329996248a847a4322fb2e35d64d3"}, - {file = "coverage-7.6.7-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:40cca284c7c310d622a1677f105e8507441d1bb7c226f41978ba7c86979609ab"}, - {file = "coverage-7.6.7-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77256ad2345c29fe59ae861aa11cfc74579c88d4e8dbf121cbe46b8e32aec808"}, - {file = "coverage-7.6.7-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:87ea64b9fa52bf395272e54020537990a28078478167ade6c61da7ac04dc14bc"}, - {file = "coverage-7.6.7-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2d608a7808793e3615e54e9267519351c3ae204a6d85764d8337bd95993581a8"}, - {file = "coverage-7.6.7-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cdd94501d65adc5c24f8a1a0eda110452ba62b3f4aeaba01e021c1ed9cb8f34a"}, - {file = "coverage-7.6.7-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:82c809a62e953867cf57e0548c2b8464207f5f3a6ff0e1e961683e79b89f2c55"}, - {file = "coverage-7.6.7-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:bb684694e99d0b791a43e9fc0fa58efc15ec357ac48d25b619f207c41f2fd384"}, - {file = "coverage-7.6.7-cp313-cp313-win32.whl", hash = "sha256:963e4a08cbb0af6623e61492c0ec4c0ec5c5cf74db5f6564f98248d27ee57d30"}, - {file = "coverage-7.6.7-cp313-cp313-win_amd64.whl", hash = "sha256:14045b8bfd5909196a90da145a37f9d335a5d988a83db34e80f41e965fb7cb42"}, - {file = "coverage-7.6.7-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:f2c7a045eef561e9544359a0bf5784b44e55cefc7261a20e730baa9220c83413"}, - {file = "coverage-7.6.7-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:5dd4e4a49d9c72a38d18d641135d2fb0bdf7b726ca60a103836b3d00a1182acd"}, - {file = "coverage-7.6.7-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5c95e0fa3d1547cb6f021ab72f5c23402da2358beec0a8e6d19a368bd7b0fb37"}, - {file = "coverage-7.6.7-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f63e21ed474edd23f7501f89b53280014436e383a14b9bd77a648366c81dce7b"}, - {file = "coverage-7.6.7-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ead9b9605c54d15be228687552916c89c9683c215370c4a44f1f217d2adcc34d"}, - {file = "coverage-7.6.7-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:0573f5cbf39114270842d01872952d301027d2d6e2d84013f30966313cadb529"}, - {file = "coverage-7.6.7-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:e2c8e3384c12dfa19fa9a52f23eb091a8fad93b5b81a41b14c17c78e23dd1d8b"}, - {file = "coverage-7.6.7-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:70a56a2ec1869e6e9fa69ef6b76b1a8a7ef709972b9cc473f9ce9d26b5997ce3"}, - {file = "coverage-7.6.7-cp313-cp313t-win32.whl", hash = "sha256:dbba8210f5067398b2c4d96b4e64d8fb943644d5eb70be0d989067c8ca40c0f8"}, - {file = "coverage-7.6.7-cp313-cp313t-win_amd64.whl", hash = "sha256:dfd14bcae0c94004baba5184d1c935ae0d1231b8409eb6c103a5fd75e8ecdc56"}, - {file = "coverage-7.6.7-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:37a15573f988b67f7348916077c6d8ad43adb75e478d0910957394df397d2874"}, - {file = "coverage-7.6.7-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b6cce5c76985f81da3769c52203ee94722cd5d5889731cd70d31fee939b74bf0"}, - {file = "coverage-7.6.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a1ab9763d291a17b527ac6fd11d1a9a9c358280adb320e9c2672a97af346ac2c"}, - {file = "coverage-7.6.7-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6cf96ceaa275f071f1bea3067f8fd43bec184a25a962c754024c973af871e1b7"}, - {file = "coverage-7.6.7-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aee9cf6b0134d6f932d219ce253ef0e624f4fa588ee64830fcba193269e4daa3"}, - {file = "coverage-7.6.7-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:2bc3e45c16564cc72de09e37413262b9f99167803e5e48c6156bccdfb22c8327"}, - {file = "coverage-7.6.7-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:623e6965dcf4e28a3debaa6fcf4b99ee06d27218f46d43befe4db1c70841551c"}, - {file = "coverage-7.6.7-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:850cfd2d6fc26f8346f422920ac204e1d28814e32e3a58c19c91980fa74d8289"}, - {file = "coverage-7.6.7-cp39-cp39-win32.whl", hash = "sha256:c296263093f099da4f51b3dff1eff5d4959b527d4f2f419e16508c5da9e15e8c"}, - {file = "coverage-7.6.7-cp39-cp39-win_amd64.whl", hash = "sha256:90746521206c88bdb305a4bf3342b1b7316ab80f804d40c536fc7d329301ee13"}, - {file = "coverage-7.6.7-pp39.pp310-none-any.whl", hash = "sha256:0ddcb70b3a3a57581b450571b31cb774f23eb9519c2aaa6176d3a84c9fc57671"}, - {file = "coverage-7.6.7.tar.gz", hash = "sha256:d79d4826e41441c9a118ff045e4bccb9fdbdcb1d02413e7ea6eb5c87b5439d24"}, + {file = "coverage-7.6.9-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:85d9636f72e8991a1706b2b55b06c27545448baf9f6dbf51c4004609aacd7dcb"}, + {file = "coverage-7.6.9-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:608a7fd78c67bee8936378299a6cb9f5149bb80238c7a566fc3e6717a4e68710"}, + {file = "coverage-7.6.9-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:96d636c77af18b5cb664ddf12dab9b15a0cfe9c0bde715da38698c8cea748bfa"}, + {file = "coverage-7.6.9-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d75cded8a3cff93da9edc31446872d2997e327921d8eed86641efafd350e1df1"}, + {file = "coverage-7.6.9-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f7b15f589593110ae767ce997775d645b47e5cbbf54fd322f8ebea6277466cec"}, + {file = "coverage-7.6.9-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:44349150f6811b44b25574839b39ae35291f6496eb795b7366fef3bd3cf112d3"}, + {file = "coverage-7.6.9-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:d891c136b5b310d0e702e186d70cd16d1119ea8927347045124cb286b29297e5"}, + {file = "coverage-7.6.9-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:db1dab894cc139f67822a92910466531de5ea6034ddfd2b11c0d4c6257168073"}, + {file = "coverage-7.6.9-cp310-cp310-win32.whl", hash = "sha256:41ff7b0da5af71a51b53f501a3bac65fb0ec311ebed1632e58fc6107f03b9198"}, + {file = "coverage-7.6.9-cp310-cp310-win_amd64.whl", hash = "sha256:35371f8438028fdccfaf3570b31d98e8d9eda8bb1d6ab9473f5a390969e98717"}, + {file = "coverage-7.6.9-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:932fc826442132dde42ee52cf66d941f581c685a6313feebed358411238f60f9"}, + {file = "coverage-7.6.9-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:085161be5f3b30fd9b3e7b9a8c301f935c8313dcf928a07b116324abea2c1c2c"}, + {file = "coverage-7.6.9-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ccc660a77e1c2bf24ddbce969af9447a9474790160cfb23de6be4fa88e3951c7"}, + {file = "coverage-7.6.9-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c69e42c892c018cd3c8d90da61d845f50a8243062b19d228189b0224150018a9"}, + {file = "coverage-7.6.9-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0824a28ec542a0be22f60c6ac36d679e0e262e5353203bea81d44ee81fe9c6d4"}, + {file = "coverage-7.6.9-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:4401ae5fc52ad8d26d2a5d8a7428b0f0c72431683f8e63e42e70606374c311a1"}, + {file = "coverage-7.6.9-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:98caba4476a6c8d59ec1eb00c7dd862ba9beca34085642d46ed503cc2d440d4b"}, + {file = "coverage-7.6.9-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ee5defd1733fd6ec08b168bd4f5387d5b322f45ca9e0e6c817ea6c4cd36313e3"}, + {file = "coverage-7.6.9-cp311-cp311-win32.whl", hash = "sha256:f2d1ec60d6d256bdf298cb86b78dd715980828f50c46701abc3b0a2b3f8a0dc0"}, + {file = "coverage-7.6.9-cp311-cp311-win_amd64.whl", hash = "sha256:0d59fd927b1f04de57a2ba0137166d31c1a6dd9e764ad4af552912d70428c92b"}, + {file = "coverage-7.6.9-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:99e266ae0b5d15f1ca8d278a668df6f51cc4b854513daab5cae695ed7b721cf8"}, + {file = "coverage-7.6.9-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9901d36492009a0a9b94b20e52ebfc8453bf49bb2b27bca2c9706f8b4f5a554a"}, + {file = "coverage-7.6.9-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:abd3e72dd5b97e3af4246cdada7738ef0e608168de952b837b8dd7e90341f015"}, + {file = "coverage-7.6.9-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ff74026a461eb0660366fb01c650c1d00f833a086b336bdad7ab00cc952072b3"}, + {file = "coverage-7.6.9-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:65dad5a248823a4996724a88eb51d4b31587aa7aa428562dbe459c684e5787ae"}, + {file = "coverage-7.6.9-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:22be16571504c9ccea919fcedb459d5ab20d41172056206eb2994e2ff06118a4"}, + {file = "coverage-7.6.9-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0f957943bc718b87144ecaee70762bc2bc3f1a7a53c7b861103546d3a403f0a6"}, + {file = "coverage-7.6.9-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0ae1387db4aecb1f485fb70a6c0148c6cdaebb6038f1d40089b1fc84a5db556f"}, + {file = "coverage-7.6.9-cp312-cp312-win32.whl", hash = "sha256:1a330812d9cc7ac2182586f6d41b4d0fadf9be9049f350e0efb275c8ee8eb692"}, + {file = "coverage-7.6.9-cp312-cp312-win_amd64.whl", hash = "sha256:b12c6b18269ca471eedd41c1b6a1065b2f7827508edb9a7ed5555e9a56dcfc97"}, + {file = "coverage-7.6.9-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:899b8cd4781c400454f2f64f7776a5d87bbd7b3e7f7bda0cb18f857bb1334664"}, + {file = "coverage-7.6.9-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:61f70dc68bd36810972e55bbbe83674ea073dd1dcc121040a08cdf3416c5349c"}, + {file = "coverage-7.6.9-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8a289d23d4c46f1a82d5db4abeb40b9b5be91731ee19a379d15790e53031c014"}, + {file = "coverage-7.6.9-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7e216d8044a356fc0337c7a2a0536d6de07888d7bcda76febcb8adc50bdbbd00"}, + {file = "coverage-7.6.9-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3c026eb44f744acaa2bda7493dad903aa5bf5fc4f2554293a798d5606710055d"}, + {file = "coverage-7.6.9-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e77363e8425325384f9d49272c54045bbed2f478e9dd698dbc65dbc37860eb0a"}, + {file = "coverage-7.6.9-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:777abfab476cf83b5177b84d7486497e034eb9eaea0d746ce0c1268c71652077"}, + {file = "coverage-7.6.9-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:447af20e25fdbe16f26e84eb714ba21d98868705cb138252d28bc400381f6ffb"}, + {file = "coverage-7.6.9-cp313-cp313-win32.whl", hash = "sha256:d872ec5aeb086cbea771c573600d47944eea2dcba8be5f3ee649bfe3cb8dc9ba"}, + {file = "coverage-7.6.9-cp313-cp313-win_amd64.whl", hash = "sha256:fd1213c86e48dfdc5a0cc676551db467495a95a662d2396ecd58e719191446e1"}, + {file = "coverage-7.6.9-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:ba9e7484d286cd5a43744e5f47b0b3fb457865baf07bafc6bee91896364e1419"}, + {file = "coverage-7.6.9-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:e5ea1cf0872ee455c03e5674b5bca5e3e68e159379c1af0903e89f5eba9ccc3a"}, + {file = "coverage-7.6.9-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2d10e07aa2b91835d6abec555ec8b2733347956991901eea6ffac295f83a30e4"}, + {file = "coverage-7.6.9-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:13a9e2d3ee855db3dd6ea1ba5203316a1b1fd8eaeffc37c5b54987e61e4194ae"}, + {file = "coverage-7.6.9-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c38bf15a40ccf5619fa2fe8f26106c7e8e080d7760aeccb3722664c8656b030"}, + {file = "coverage-7.6.9-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:d5275455b3e4627c8e7154feaf7ee0743c2e7af82f6e3b561967b1cca755a0be"}, + {file = "coverage-7.6.9-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:8f8770dfc6e2c6a2d4569f411015c8d751c980d17a14b0530da2d7f27ffdd88e"}, + {file = "coverage-7.6.9-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:8d2dfa71665a29b153a9681edb1c8d9c1ea50dfc2375fb4dac99ea7e21a0bcd9"}, + {file = "coverage-7.6.9-cp313-cp313t-win32.whl", hash = "sha256:5e6b86b5847a016d0fbd31ffe1001b63355ed309651851295315031ea7eb5a9b"}, + {file = "coverage-7.6.9-cp313-cp313t-win_amd64.whl", hash = "sha256:97ddc94d46088304772d21b060041c97fc16bdda13c6c7f9d8fcd8d5ae0d8611"}, + {file = "coverage-7.6.9-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:adb697c0bd35100dc690de83154627fbab1f4f3c0386df266dded865fc50a902"}, + {file = "coverage-7.6.9-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:be57b6d56e49c2739cdf776839a92330e933dd5e5d929966fbbd380c77f060be"}, + {file = "coverage-7.6.9-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f1592791f8204ae9166de22ba7e6705fa4ebd02936c09436a1bb85aabca3e599"}, + {file = "coverage-7.6.9-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4e12ae8cc979cf83d258acb5e1f1cf2f3f83524d1564a49d20b8bec14b637f08"}, + {file = "coverage-7.6.9-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bb5555cff66c4d3d6213a296b360f9e1a8e323e74e0426b6c10ed7f4d021e464"}, + {file = "coverage-7.6.9-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:b9389a429e0e5142e69d5bf4a435dd688c14478a19bb901735cdf75e57b13845"}, + {file = "coverage-7.6.9-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:592ac539812e9b46046620341498caf09ca21023c41c893e1eb9dbda00a70cbf"}, + {file = "coverage-7.6.9-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:a27801adef24cc30871da98a105f77995e13a25a505a0161911f6aafbd66e678"}, + {file = "coverage-7.6.9-cp39-cp39-win32.whl", hash = "sha256:8e3c3e38930cfb729cb8137d7f055e5a473ddaf1217966aa6238c88bd9fd50e6"}, + {file = "coverage-7.6.9-cp39-cp39-win_amd64.whl", hash = "sha256:e28bf44afa2b187cc9f41749138a64435bf340adfcacb5b2290c070ce99839d4"}, + {file = "coverage-7.6.9-pp39.pp310-none-any.whl", hash = "sha256:f3ca78518bc6bc92828cd11867b121891d75cae4ea9e908d72030609b996db1b"}, + {file = "coverage-7.6.9.tar.gz", hash = "sha256:4a8d8977b0c6ef5aeadcb644da9e69ae0dcfe66ec7f368c89c72e058bd71164d"}, ] [package.extras] @@ -267,49 +267,49 @@ tests = ["psutil", "pytest (!=3.3.0)", "pytest-cov"] [[package]] name = "mypy" -version = "1.13.0" +version = "1.14.0" description = "Optional static typing for Python" optional = false python-versions = ">=3.8" files = [ - {file = "mypy-1.13.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6607e0f1dd1fb7f0aca14d936d13fd19eba5e17e1cd2a14f808fa5f8f6d8f60a"}, - {file = "mypy-1.13.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8a21be69bd26fa81b1f80a61ee7ab05b076c674d9b18fb56239d72e21d9f4c80"}, - {file = "mypy-1.13.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7b2353a44d2179846a096e25691d54d59904559f4232519d420d64da6828a3a7"}, - {file = "mypy-1.13.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:0730d1c6a2739d4511dc4253f8274cdd140c55c32dfb0a4cf8b7a43f40abfa6f"}, - {file = "mypy-1.13.0-cp310-cp310-win_amd64.whl", hash = "sha256:c5fc54dbb712ff5e5a0fca797e6e0aa25726c7e72c6a5850cfd2adbc1eb0a372"}, - {file = "mypy-1.13.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:581665e6f3a8a9078f28d5502f4c334c0c8d802ef55ea0e7276a6e409bc0d82d"}, - {file = "mypy-1.13.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3ddb5b9bf82e05cc9a627e84707b528e5c7caaa1c55c69e175abb15a761cec2d"}, - {file = "mypy-1.13.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:20c7ee0bc0d5a9595c46f38beb04201f2620065a93755704e141fcac9f59db2b"}, - {file = "mypy-1.13.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3790ded76f0b34bc9c8ba4def8f919dd6a46db0f5a6610fb994fe8efdd447f73"}, - {file = "mypy-1.13.0-cp311-cp311-win_amd64.whl", hash = "sha256:51f869f4b6b538229c1d1bcc1dd7d119817206e2bc54e8e374b3dfa202defcca"}, - {file = "mypy-1.13.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:5c7051a3461ae84dfb5dd15eff5094640c61c5f22257c8b766794e6dd85e72d5"}, - {file = "mypy-1.13.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:39bb21c69a5d6342f4ce526e4584bc5c197fd20a60d14a8624d8743fffb9472e"}, - {file = "mypy-1.13.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:164f28cb9d6367439031f4c81e84d3ccaa1e19232d9d05d37cb0bd880d3f93c2"}, - {file = "mypy-1.13.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a4c1bfcdbce96ff5d96fc9b08e3831acb30dc44ab02671eca5953eadad07d6d0"}, - {file = "mypy-1.13.0-cp312-cp312-win_amd64.whl", hash = "sha256:a0affb3a79a256b4183ba09811e3577c5163ed06685e4d4b46429a271ba174d2"}, - {file = "mypy-1.13.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a7b44178c9760ce1a43f544e595d35ed61ac2c3de306599fa59b38a6048e1aa7"}, - {file = "mypy-1.13.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5d5092efb8516d08440e36626f0153b5006d4088c1d663d88bf79625af3d1d62"}, - {file = "mypy-1.13.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:de2904956dac40ced10931ac967ae63c5089bd498542194b436eb097a9f77bc8"}, - {file = "mypy-1.13.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:7bfd8836970d33c2105562650656b6846149374dc8ed77d98424b40b09340ba7"}, - {file = "mypy-1.13.0-cp313-cp313-win_amd64.whl", hash = "sha256:9f73dba9ec77acb86457a8fc04b5239822df0c14a082564737833d2963677dbc"}, - {file = "mypy-1.13.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:100fac22ce82925f676a734af0db922ecfea991e1d7ec0ceb1e115ebe501301a"}, - {file = "mypy-1.13.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7bcb0bb7f42a978bb323a7c88f1081d1b5dee77ca86f4100735a6f541299d8fb"}, - {file = "mypy-1.13.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bde31fc887c213e223bbfc34328070996061b0833b0a4cfec53745ed61f3519b"}, - {file = "mypy-1.13.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:07de989f89786f62b937851295ed62e51774722e5444a27cecca993fc3f9cd74"}, - {file = "mypy-1.13.0-cp38-cp38-win_amd64.whl", hash = "sha256:4bde84334fbe19bad704b3f5b78c4abd35ff1026f8ba72b29de70dda0916beb6"}, - {file = "mypy-1.13.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:0246bcb1b5de7f08f2826451abd947bf656945209b140d16ed317f65a17dc7dc"}, - {file = "mypy-1.13.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:7f5b7deae912cf8b77e990b9280f170381fdfbddf61b4ef80927edd813163732"}, - {file = "mypy-1.13.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7029881ec6ffb8bc233a4fa364736789582c738217b133f1b55967115288a2bc"}, - {file = "mypy-1.13.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:3e38b980e5681f28f033f3be86b099a247b13c491f14bb8b1e1e134d23bb599d"}, - {file = "mypy-1.13.0-cp39-cp39-win_amd64.whl", hash = "sha256:a6789be98a2017c912ae6ccb77ea553bbaf13d27605d2ca20a76dfbced631b24"}, - {file = "mypy-1.13.0-py3-none-any.whl", hash = "sha256:9c250883f9fd81d212e0952c92dbfcc96fc237f4b7c92f56ac81fd48460b3e5a"}, - {file = "mypy-1.13.0.tar.gz", hash = "sha256:0291a61b6fbf3e6673e3405cfcc0e7650bebc7939659fdca2702958038bd835e"}, + {file = "mypy-1.14.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e971c1c667007f9f2b397ffa80fa8e1e0adccff336e5e77e74cb5f22868bee87"}, + {file = "mypy-1.14.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e86aaeaa3221a278c66d3d673b297232947d873773d61ca3ee0e28b2ff027179"}, + {file = "mypy-1.14.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1628c5c3ce823d296e41e2984ff88c5861499041cb416a8809615d0c1f41740e"}, + {file = "mypy-1.14.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:7fadb29b77fc14a0dd81304ed73c828c3e5cde0016c7e668a86a3e0dfc9f3af3"}, + {file = "mypy-1.14.0-cp310-cp310-win_amd64.whl", hash = "sha256:3fa76988dc760da377c1e5069200a50d9eaaccf34f4ea18428a3337034ab5a44"}, + {file = "mypy-1.14.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6e73c8a154eed31db3445fe28f63ad2d97b674b911c00191416cf7f6459fd49a"}, + {file = "mypy-1.14.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:273e70fcb2e38c5405a188425aa60b984ffdcef65d6c746ea5813024b68c73dc"}, + {file = "mypy-1.14.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1daca283d732943731a6a9f20fdbcaa927f160bc51602b1d4ef880a6fb252015"}, + {file = "mypy-1.14.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:7e68047bedb04c1c25bba9901ea46ff60d5eaac2d71b1f2161f33107e2b368eb"}, + {file = "mypy-1.14.0-cp311-cp311-win_amd64.whl", hash = "sha256:7a52f26b9c9b1664a60d87675f3bae00b5c7f2806e0c2800545a32c325920bcc"}, + {file = "mypy-1.14.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d5326ab70a6db8e856d59ad4cb72741124950cbbf32e7b70e30166ba7bbf61dd"}, + {file = "mypy-1.14.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:bf4ec4980bec1e0e24e5075f449d014011527ae0055884c7e3abc6a99cd2c7f1"}, + {file = "mypy-1.14.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:390dfb898239c25289495500f12fa73aa7f24a4c6d90ccdc165762462b998d63"}, + {file = "mypy-1.14.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:7e026d55ddcd76e29e87865c08cbe2d0104e2b3153a523c529de584759379d3d"}, + {file = "mypy-1.14.0-cp312-cp312-win_amd64.whl", hash = "sha256:585ed36031d0b3ee362e5107ef449a8b5dfd4e9c90ccbe36414ee405ee6b32ba"}, + {file = "mypy-1.14.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e9f6f4c0b27401d14c483c622bc5105eff3911634d576bbdf6695b9a7c1ba741"}, + {file = "mypy-1.14.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:56b2280cedcb312c7a79f5001ae5325582d0d339bce684e4a529069d0e7ca1e7"}, + {file = "mypy-1.14.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:342de51c48bab326bfc77ce056ba08c076d82ce4f5a86621f972ed39970f94d8"}, + {file = "mypy-1.14.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:00df23b42e533e02a6f0055e54de9a6ed491cd8b7ea738647364fd3a39ea7efc"}, + {file = "mypy-1.14.0-cp313-cp313-win_amd64.whl", hash = "sha256:e8c8387e5d9dff80e7daf961df357c80e694e942d9755f3ad77d69b0957b8e3f"}, + {file = "mypy-1.14.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0b16738b1d80ec4334654e89e798eb705ac0c36c8a5c4798496cd3623aa02286"}, + {file = "mypy-1.14.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:10065fcebb7c66df04b05fc799a854b1ae24d9963c8bb27e9064a9bdb43aa8ad"}, + {file = "mypy-1.14.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fbb7d683fa6bdecaa106e8368aa973ecc0ddb79a9eaeb4b821591ecd07e9e03c"}, + {file = "mypy-1.14.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:3498cb55448dc5533e438cd13d6ddd28654559c8c4d1fd4b5ca57a31b81bac01"}, + {file = "mypy-1.14.0-cp38-cp38-win_amd64.whl", hash = "sha256:c7b243408ea43755f3a21a0a08e5c5ae30eddb4c58a80f415ca6b118816e60aa"}, + {file = "mypy-1.14.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:14117b9da3305b39860d0aa34b8f1ff74d209a368829a584eb77524389a9c13e"}, + {file = "mypy-1.14.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:af98c5a958f9c37404bd4eef2f920b94874507e146ed6ee559f185b8809c44cc"}, + {file = "mypy-1.14.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f0b343a1d3989547024377c2ba0dca9c74a2428ad6ed24283c213af8dbb0710b"}, + {file = "mypy-1.14.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:cdb5563c1726c85fb201be383168f8c866032db95e1095600806625b3a648cb7"}, + {file = "mypy-1.14.0-cp39-cp39-win_amd64.whl", hash = "sha256:74e925649c1ee0a79aa7448baf2668d81cc287dc5782cff6a04ee93f40fb8d3f"}, + {file = "mypy-1.14.0-py3-none-any.whl", hash = "sha256:2238d7f93fc4027ed1efc944507683df3ba406445a2b6c96e79666a045aadfab"}, + {file = "mypy-1.14.0.tar.gz", hash = "sha256:822dbd184d4a9804df5a7d5335a68cf7662930e70b8c1bc976645d1509f9a9d6"}, ] [package.dependencies] -mypy-extensions = ">=1.0.0" +mypy_extensions = ">=1.0.0" tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} -typing-extensions = ">=4.6.0" +typing_extensions = ">=4.6.0" [package.extras] dmypy = ["psutil (>=4.0)"] @@ -342,133 +342,150 @@ files = [ [[package]] name = "numpy" -version = "2.1.3" +version = "2.2.1" description = "Fundamental package for array computing in Python" optional = false python-versions = ">=3.10" files = [ - {file = "numpy-2.1.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c894b4305373b9c5576d7a12b473702afdf48ce5369c074ba304cc5ad8730dff"}, - {file = "numpy-2.1.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b47fbb433d3260adcd51eb54f92a2ffbc90a4595f8970ee00e064c644ac788f5"}, - {file = "numpy-2.1.3-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:825656d0743699c529c5943554d223c021ff0494ff1442152ce887ef4f7561a1"}, - {file = "numpy-2.1.3-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:6a4825252fcc430a182ac4dee5a505053d262c807f8a924603d411f6718b88fd"}, - {file = "numpy-2.1.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e711e02f49e176a01d0349d82cb5f05ba4db7d5e7e0defd026328e5cfb3226d3"}, - {file = "numpy-2.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78574ac2d1a4a02421f25da9559850d59457bac82f2b8d7a44fe83a64f770098"}, - {file = "numpy-2.1.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:c7662f0e3673fe4e832fe07b65c50342ea27d989f92c80355658c7f888fcc83c"}, - {file = "numpy-2.1.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:fa2d1337dc61c8dc417fbccf20f6d1e139896a30721b7f1e832b2bb6ef4eb6c4"}, - {file = "numpy-2.1.3-cp310-cp310-win32.whl", hash = "sha256:72dcc4a35a8515d83e76b58fdf8113a5c969ccd505c8a946759b24e3182d1f23"}, - {file = "numpy-2.1.3-cp310-cp310-win_amd64.whl", hash = "sha256:ecc76a9ba2911d8d37ac01de72834d8849e55473457558e12995f4cd53e778e0"}, - {file = "numpy-2.1.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4d1167c53b93f1f5d8a139a742b3c6f4d429b54e74e6b57d0eff40045187b15d"}, - {file = "numpy-2.1.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c80e4a09b3d95b4e1cac08643f1152fa71a0a821a2d4277334c88d54b2219a41"}, - {file = "numpy-2.1.3-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:576a1c1d25e9e02ed7fa5477f30a127fe56debd53b8d2c89d5578f9857d03ca9"}, - {file = "numpy-2.1.3-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:973faafebaae4c0aaa1a1ca1ce02434554d67e628b8d805e61f874b84e136b09"}, - {file = "numpy-2.1.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:762479be47a4863e261a840e8e01608d124ee1361e48b96916f38b119cfda04a"}, - {file = "numpy-2.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc6f24b3d1ecc1eebfbf5d6051faa49af40b03be1aaa781ebdadcbc090b4539b"}, - {file = "numpy-2.1.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:17ee83a1f4fef3c94d16dc1802b998668b5419362c8a4f4e8a491de1b41cc3ee"}, - {file = "numpy-2.1.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:15cb89f39fa6d0bdfb600ea24b250e5f1a3df23f901f51c8debaa6a5d122b2f0"}, - {file = "numpy-2.1.3-cp311-cp311-win32.whl", hash = "sha256:d9beb777a78c331580705326d2367488d5bc473b49a9bc3036c154832520aca9"}, - {file = "numpy-2.1.3-cp311-cp311-win_amd64.whl", hash = "sha256:d89dd2b6da69c4fff5e39c28a382199ddedc3a5be5390115608345dec660b9e2"}, - {file = "numpy-2.1.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f55ba01150f52b1027829b50d70ef1dafd9821ea82905b63936668403c3b471e"}, - {file = "numpy-2.1.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:13138eadd4f4da03074851a698ffa7e405f41a0845a6b1ad135b81596e4e9958"}, - {file = "numpy-2.1.3-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:a6b46587b14b888e95e4a24d7b13ae91fa22386c199ee7b418f449032b2fa3b8"}, - {file = "numpy-2.1.3-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:0fa14563cc46422e99daef53d725d0c326e99e468a9320a240affffe87852564"}, - {file = "numpy-2.1.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8637dcd2caa676e475503d1f8fdb327bc495554e10838019651b76d17b98e512"}, - {file = "numpy-2.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2312b2aa89e1f43ecea6da6ea9a810d06aae08321609d8dc0d0eda6d946a541b"}, - {file = "numpy-2.1.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a38c19106902bb19351b83802531fea19dee18e5b37b36454f27f11ff956f7fc"}, - {file = "numpy-2.1.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:02135ade8b8a84011cbb67dc44e07c58f28575cf9ecf8ab304e51c05528c19f0"}, - {file = "numpy-2.1.3-cp312-cp312-win32.whl", hash = "sha256:e6988e90fcf617da2b5c78902fe8e668361b43b4fe26dbf2d7b0f8034d4cafb9"}, - {file = "numpy-2.1.3-cp312-cp312-win_amd64.whl", hash = "sha256:0d30c543f02e84e92c4b1f415b7c6b5326cbe45ee7882b6b77db7195fb971e3a"}, - {file = "numpy-2.1.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:96fe52fcdb9345b7cd82ecd34547fca4321f7656d500eca497eb7ea5a926692f"}, - {file = "numpy-2.1.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f653490b33e9c3a4c1c01d41bc2aef08f9475af51146e4a7710c450cf9761598"}, - {file = "numpy-2.1.3-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:dc258a761a16daa791081d026f0ed4399b582712e6fc887a95af09df10c5ca57"}, - {file = "numpy-2.1.3-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:016d0f6f5e77b0f0d45d77387ffa4bb89816b57c835580c3ce8e099ef830befe"}, - {file = "numpy-2.1.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c181ba05ce8299c7aa3125c27b9c2167bca4a4445b7ce73d5febc411ca692e43"}, - {file = "numpy-2.1.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5641516794ca9e5f8a4d17bb45446998c6554704d888f86df9b200e66bdcce56"}, - {file = "numpy-2.1.3-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ea4dedd6e394a9c180b33c2c872b92f7ce0f8e7ad93e9585312b0c5a04777a4a"}, - {file = "numpy-2.1.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:b0df3635b9c8ef48bd3be5f862cf71b0a4716fa0e702155c45067c6b711ddcef"}, - {file = "numpy-2.1.3-cp313-cp313-win32.whl", hash = "sha256:50ca6aba6e163363f132b5c101ba078b8cbd3fa92c7865fd7d4d62d9779ac29f"}, - {file = "numpy-2.1.3-cp313-cp313-win_amd64.whl", hash = "sha256:747641635d3d44bcb380d950679462fae44f54b131be347d5ec2bce47d3df9ed"}, - {file = "numpy-2.1.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:996bb9399059c5b82f76b53ff8bb686069c05acc94656bb259b1d63d04a9506f"}, - {file = "numpy-2.1.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:45966d859916ad02b779706bb43b954281db43e185015df6eb3323120188f9e4"}, - {file = "numpy-2.1.3-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:baed7e8d7481bfe0874b566850cb0b85243e982388b7b23348c6db2ee2b2ae8e"}, - {file = "numpy-2.1.3-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:a9f7f672a3388133335589cfca93ed468509cb7b93ba3105fce780d04a6576a0"}, - {file = "numpy-2.1.3-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7aac50327da5d208db2eec22eb11e491e3fe13d22653dce51b0f4109101b408"}, - {file = "numpy-2.1.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4394bc0dbd074b7f9b52024832d16e019decebf86caf909d94f6b3f77a8ee3b6"}, - {file = "numpy-2.1.3-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:50d18c4358a0a8a53f12a8ba9d772ab2d460321e6a93d6064fc22443d189853f"}, - {file = "numpy-2.1.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:14e253bd43fc6b37af4921b10f6add6925878a42a0c5fe83daee390bca80bc17"}, - {file = "numpy-2.1.3-cp313-cp313t-win32.whl", hash = "sha256:08788d27a5fd867a663f6fc753fd7c3ad7e92747efc73c53bca2f19f8bc06f48"}, - {file = "numpy-2.1.3-cp313-cp313t-win_amd64.whl", hash = "sha256:2564fbdf2b99b3f815f2107c1bbc93e2de8ee655a69c261363a1172a79a257d4"}, - {file = "numpy-2.1.3-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:4f2015dfe437dfebbfce7c85c7b53d81ba49e71ba7eadbf1df40c915af75979f"}, - {file = "numpy-2.1.3-pp310-pypy310_pp73-macosx_14_0_x86_64.whl", hash = "sha256:3522b0dfe983a575e6a9ab3a4a4dfe156c3e428468ff08ce582b9bb6bd1d71d4"}, - {file = "numpy-2.1.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c006b607a865b07cd981ccb218a04fc86b600411d83d6fc261357f1c0966755d"}, - {file = "numpy-2.1.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:e14e26956e6f1696070788252dcdff11b4aca4c3e8bd166e0df1bb8f315a67cb"}, - {file = "numpy-2.1.3.tar.gz", hash = "sha256:aa08e04e08aaf974d4458def539dece0d28146d866a39da5639596f4921fd761"}, + {file = "numpy-2.2.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5edb4e4caf751c1518e6a26a83501fda79bff41cc59dac48d70e6d65d4ec4440"}, + {file = "numpy-2.2.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:aa3017c40d513ccac9621a2364f939d39e550c542eb2a894b4c8da92b38896ab"}, + {file = "numpy-2.2.1-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:61048b4a49b1c93fe13426e04e04fdf5a03f456616f6e98c7576144677598675"}, + {file = "numpy-2.2.1-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:7671dc19c7019103ca44e8d94917eba8534c76133523ca8406822efdd19c9308"}, + {file = "numpy-2.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4250888bcb96617e00bfa28ac24850a83c9f3a16db471eca2ee1f1714df0f957"}, + {file = "numpy-2.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a7746f235c47abc72b102d3bce9977714c2444bdfaea7888d241b4c4bb6a78bf"}, + {file = "numpy-2.2.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:059e6a747ae84fce488c3ee397cee7e5f905fd1bda5fb18c66bc41807ff119b2"}, + {file = "numpy-2.2.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f62aa6ee4eb43b024b0e5a01cf65a0bb078ef8c395e8713c6e8a12a697144528"}, + {file = "numpy-2.2.1-cp310-cp310-win32.whl", hash = "sha256:48fd472630715e1c1c89bf1feab55c29098cb403cc184b4859f9c86d4fcb6a95"}, + {file = "numpy-2.2.1-cp310-cp310-win_amd64.whl", hash = "sha256:b541032178a718c165a49638d28272b771053f628382d5e9d1c93df23ff58dbf"}, + {file = "numpy-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:40f9e544c1c56ba8f1cf7686a8c9b5bb249e665d40d626a23899ba6d5d9e1484"}, + {file = "numpy-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f9b57eaa3b0cd8db52049ed0330747b0364e899e8a606a624813452b8203d5f7"}, + {file = "numpy-2.2.1-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:bc8a37ad5b22c08e2dbd27df2b3ef7e5c0864235805b1e718a235bcb200cf1cb"}, + {file = "numpy-2.2.1-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:9036d6365d13b6cbe8f27a0eaf73ddcc070cae584e5ff94bb45e3e9d729feab5"}, + {file = "numpy-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:51faf345324db860b515d3f364eaa93d0e0551a88d6218a7d61286554d190d73"}, + {file = "numpy-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:38efc1e56b73cc9b182fe55e56e63b044dd26a72128fd2fbd502f75555d92591"}, + {file = "numpy-2.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:31b89fa67a8042e96715c68e071a1200c4e172f93b0fbe01a14c0ff3ff820fc8"}, + {file = "numpy-2.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:4c86e2a209199ead7ee0af65e1d9992d1dce7e1f63c4b9a616500f93820658d0"}, + {file = "numpy-2.2.1-cp311-cp311-win32.whl", hash = "sha256:b34d87e8a3090ea626003f87f9392b3929a7bbf4104a05b6667348b6bd4bf1cd"}, + {file = "numpy-2.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:360137f8fb1b753c5cde3ac388597ad680eccbbbb3865ab65efea062c4a1fd16"}, + {file = "numpy-2.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:694f9e921a0c8f252980e85bce61ebbd07ed2b7d4fa72d0e4246f2f8aa6642ab"}, + {file = "numpy-2.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3683a8d166f2692664262fd4900f207791d005fb088d7fdb973cc8d663626faa"}, + {file = "numpy-2.2.1-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:780077d95eafc2ccc3ced969db22377b3864e5b9a0ea5eb347cc93b3ea900315"}, + {file = "numpy-2.2.1-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:55ba24ebe208344aa7a00e4482f65742969a039c2acfcb910bc6fcd776eb4355"}, + {file = "numpy-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9b1d07b53b78bf84a96898c1bc139ad7f10fda7423f5fd158fd0f47ec5e01ac7"}, + {file = "numpy-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5062dc1a4e32a10dc2b8b13cedd58988261416e811c1dc4dbdea4f57eea61b0d"}, + {file = "numpy-2.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:fce4f615f8ca31b2e61aa0eb5865a21e14f5629515c9151850aa936c02a1ee51"}, + {file = "numpy-2.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:67d4cda6fa6ffa073b08c8372aa5fa767ceb10c9a0587c707505a6d426f4e046"}, + {file = "numpy-2.2.1-cp312-cp312-win32.whl", hash = "sha256:32cb94448be47c500d2c7a95f93e2f21a01f1fd05dd2beea1ccd049bb6001cd2"}, + {file = "numpy-2.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:ba5511d8f31c033a5fcbda22dd5c813630af98c70b2661f2d2c654ae3cdfcfc8"}, + {file = "numpy-2.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f1d09e520217618e76396377c81fba6f290d5f926f50c35f3a5f72b01a0da780"}, + {file = "numpy-2.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3ecc47cd7f6ea0336042be87d9e7da378e5c7e9b3c8ad0f7c966f714fc10d821"}, + {file = "numpy-2.2.1-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:f419290bc8968a46c4933158c91a0012b7a99bb2e465d5ef5293879742f8797e"}, + {file = "numpy-2.2.1-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:5b6c390bfaef8c45a260554888966618328d30e72173697e5cabe6b285fb2348"}, + {file = "numpy-2.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:526fc406ab991a340744aad7e25251dd47a6720a685fa3331e5c59fef5282a59"}, + {file = "numpy-2.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f74e6fdeb9a265624ec3a3918430205dff1df7e95a230779746a6af78bc615af"}, + {file = "numpy-2.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:53c09385ff0b72ba79d8715683c1168c12e0b6e84fb0372e97553d1ea91efe51"}, + {file = "numpy-2.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:f3eac17d9ec51be534685ba877b6ab5edc3ab7ec95c8f163e5d7b39859524716"}, + {file = "numpy-2.2.1-cp313-cp313-win32.whl", hash = "sha256:9ad014faa93dbb52c80d8f4d3dcf855865c876c9660cb9bd7553843dd03a4b1e"}, + {file = "numpy-2.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:164a829b6aacf79ca47ba4814b130c4020b202522a93d7bff2202bfb33b61c60"}, + {file = "numpy-2.2.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:4dfda918a13cc4f81e9118dea249e192ab167a0bb1966272d5503e39234d694e"}, + {file = "numpy-2.2.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:733585f9f4b62e9b3528dd1070ec4f52b8acf64215b60a845fa13ebd73cd0712"}, + {file = "numpy-2.2.1-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:89b16a18e7bba224ce5114db863e7029803c179979e1af6ad6a6b11f70545008"}, + {file = "numpy-2.2.1-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:676f4eebf6b2d430300f1f4f4c2461685f8269f94c89698d832cdf9277f30b84"}, + {file = "numpy-2.2.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:27f5cdf9f493b35f7e41e8368e7d7b4bbafaf9660cba53fb21d2cd174ec09631"}, + {file = "numpy-2.2.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c1ad395cf254c4fbb5b2132fee391f361a6e8c1adbd28f2cd8e79308a615fe9d"}, + {file = "numpy-2.2.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:08ef779aed40dbc52729d6ffe7dd51df85796a702afbf68a4f4e41fafdc8bda5"}, + {file = "numpy-2.2.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:26c9c4382b19fcfbbed3238a14abf7ff223890ea1936b8890f058e7ba35e8d71"}, + {file = "numpy-2.2.1-cp313-cp313t-win32.whl", hash = "sha256:93cf4e045bae74c90ca833cba583c14b62cb4ba2cba0abd2b141ab52548247e2"}, + {file = "numpy-2.2.1-cp313-cp313t-win_amd64.whl", hash = "sha256:bff7d8ec20f5f42607599f9994770fa65d76edca264a87b5e4ea5629bce12268"}, + {file = "numpy-2.2.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:7ba9cc93a91d86365a5d270dee221fdc04fb68d7478e6bf6af650de78a8339e3"}, + {file = "numpy-2.2.1-pp310-pypy310_pp73-macosx_14_0_x86_64.whl", hash = "sha256:3d03883435a19794e41f147612a77a8f56d4e52822337844fff3d4040a142964"}, + {file = "numpy-2.2.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4511d9e6071452b944207c8ce46ad2f897307910b402ea5fa975da32e0102800"}, + {file = "numpy-2.2.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:5c5cc0cbabe9452038ed984d05ac87910f89370b9242371bd9079cb4af61811e"}, + {file = "numpy-2.2.1.tar.gz", hash = "sha256:45681fd7128c8ad1c379f0ca0776a8b0c6583d2f69889ddac01559dfe4390918"}, ] [[package]] name = "orjson" -version = "3.10.11" +version = "3.10.12" description = "Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy" optional = false python-versions = ">=3.8" files = [ - {file = "orjson-3.10.11-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:6dade64687f2bd7c090281652fe18f1151292d567a9302b34c2dbb92a3872f1f"}, - {file = "orjson-3.10.11-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:82f07c550a6ccd2b9290849b22316a609023ed851a87ea888c0456485a7d196a"}, - {file = "orjson-3.10.11-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bd9a187742d3ead9df2e49240234d728c67c356516cf4db018833a86f20ec18c"}, - {file = "orjson-3.10.11-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:77b0fed6f209d76c1c39f032a70df2d7acf24b1812ca3e6078fd04e8972685a3"}, - {file = "orjson-3.10.11-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:63fc9d5fe1d4e8868f6aae547a7b8ba0a2e592929245fff61d633f4caccdcdd6"}, - {file = "orjson-3.10.11-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:65cd3e3bb4fbb4eddc3c1e8dce10dc0b73e808fcb875f9fab40c81903dd9323e"}, - {file = "orjson-3.10.11-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:6f67c570602300c4befbda12d153113b8974a3340fdcf3d6de095ede86c06d92"}, - {file = "orjson-3.10.11-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:1f39728c7f7d766f1f5a769ce4d54b5aaa4c3f92d5b84817053cc9995b977acc"}, - {file = "orjson-3.10.11-cp310-none-win32.whl", hash = "sha256:1789d9db7968d805f3d94aae2c25d04014aae3a2fa65b1443117cd462c6da647"}, - {file = "orjson-3.10.11-cp310-none-win_amd64.whl", hash = "sha256:5576b1e5a53a5ba8f8df81872bb0878a112b3ebb1d392155f00f54dd86c83ff6"}, - {file = "orjson-3.10.11-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:1444f9cb7c14055d595de1036f74ecd6ce15f04a715e73f33bb6326c9cef01b6"}, - {file = "orjson-3.10.11-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cdec57fe3b4bdebcc08a946db3365630332dbe575125ff3d80a3272ebd0ddafe"}, - {file = "orjson-3.10.11-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4eed32f33a0ea6ef36ccc1d37f8d17f28a1d6e8eefae5928f76aff8f1df85e67"}, - {file = "orjson-3.10.11-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:80df27dd8697242b904f4ea54820e2d98d3f51f91e97e358fc13359721233e4b"}, - {file = "orjson-3.10.11-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:705f03cee0cb797256d54de6695ef219e5bc8c8120b6654dd460848d57a9af3d"}, - {file = "orjson-3.10.11-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:03246774131701de8e7059b2e382597da43144a9a7400f178b2a32feafc54bd5"}, - {file = "orjson-3.10.11-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8b5759063a6c940a69c728ea70d7c33583991c6982915a839c8da5f957e0103a"}, - {file = "orjson-3.10.11-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:677f23e32491520eebb19c99bb34675daf5410c449c13416f7f0d93e2cf5f981"}, - {file = "orjson-3.10.11-cp311-none-win32.whl", hash = "sha256:a11225d7b30468dcb099498296ffac36b4673a8398ca30fdaec1e6c20df6aa55"}, - {file = "orjson-3.10.11-cp311-none-win_amd64.whl", hash = "sha256:df8c677df2f9f385fcc85ab859704045fa88d4668bc9991a527c86e710392bec"}, - {file = "orjson-3.10.11-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:360a4e2c0943da7c21505e47cf6bd725588962ff1d739b99b14e2f7f3545ba51"}, - {file = "orjson-3.10.11-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:496e2cb45de21c369079ef2d662670a4892c81573bcc143c4205cae98282ba97"}, - {file = "orjson-3.10.11-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7dfa8db55c9792d53c5952900c6a919cfa377b4f4534c7a786484a6a4a350c19"}, - {file = "orjson-3.10.11-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:51f3382415747e0dbda9dade6f1e1a01a9d37f630d8c9049a8ed0e385b7a90c0"}, - {file = "orjson-3.10.11-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f35a1b9f50a219f470e0e497ca30b285c9f34948d3c8160d5ad3a755d9299433"}, - {file = "orjson-3.10.11-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e2f3b7c5803138e67028dde33450e054c87e0703afbe730c105f1fcd873496d5"}, - {file = "orjson-3.10.11-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:f91d9eb554310472bd09f5347950b24442600594c2edc1421403d7610a0998fd"}, - {file = "orjson-3.10.11-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:dfbb2d460a855c9744bbc8e36f9c3a997c4b27d842f3d5559ed54326e6911f9b"}, - {file = "orjson-3.10.11-cp312-none-win32.whl", hash = "sha256:d4a62c49c506d4d73f59514986cadebb7e8d186ad510c518f439176cf8d5359d"}, - {file = "orjson-3.10.11-cp312-none-win_amd64.whl", hash = "sha256:f1eec3421a558ff7a9b010a6c7effcfa0ade65327a71bb9b02a1c3b77a247284"}, - {file = "orjson-3.10.11-cp313-cp313-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:c46294faa4e4d0eb73ab68f1a794d2cbf7bab33b1dda2ac2959ffb7c61591899"}, - {file = "orjson-3.10.11-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:52e5834d7d6e58a36846e059d00559cb9ed20410664f3ad156cd2cc239a11230"}, - {file = "orjson-3.10.11-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a2fc947e5350fdce548bfc94f434e8760d5cafa97fb9c495d2fef6757aa02ec0"}, - {file = "orjson-3.10.11-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0efabbf839388a1dab5b72b5d3baedbd6039ac83f3b55736eb9934ea5494d258"}, - {file = "orjson-3.10.11-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a3f29634260708c200c4fe148e42b4aae97d7b9fee417fbdd74f8cfc265f15b0"}, - {file = "orjson-3.10.11-cp313-none-win32.whl", hash = "sha256:1a1222ffcee8a09476bbdd5d4f6f33d06d0d6642df2a3d78b7a195ca880d669b"}, - {file = "orjson-3.10.11-cp313-none-win_amd64.whl", hash = "sha256:bc274ac261cc69260913b2d1610760e55d3c0801bb3457ba7b9004420b6b4270"}, - {file = "orjson-3.10.11-cp38-cp38-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:19b3763e8bbf8ad797df6b6b5e0fc7c843ec2e2fc0621398534e0c6400098f87"}, - {file = "orjson-3.10.11-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1be83a13312e5e58d633580c5eb8d0495ae61f180da2722f20562974188af205"}, - {file = "orjson-3.10.11-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:afacfd1ab81f46dedd7f6001b6d4e8de23396e4884cd3c3436bd05defb1a6446"}, - {file = "orjson-3.10.11-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cb4d0bea56bba596723d73f074c420aec3b2e5d7d30698bc56e6048066bd560c"}, - {file = "orjson-3.10.11-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:96ed1de70fcb15d5fed529a656df29f768187628727ee2788344e8a51e1c1350"}, - {file = "orjson-3.10.11-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4bfb30c891b530f3f80e801e3ad82ef150b964e5c38e1fb8482441c69c35c61c"}, - {file = "orjson-3.10.11-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:d496c74fc2b61341e3cefda7eec21b7854c5f672ee350bc55d9a4997a8a95204"}, - {file = "orjson-3.10.11-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:655a493bac606655db9a47fe94d3d84fc7f3ad766d894197c94ccf0c5408e7d3"}, - {file = "orjson-3.10.11-cp38-none-win32.whl", hash = "sha256:b9546b278c9fb5d45380f4809e11b4dd9844ca7aaf1134024503e134ed226161"}, - {file = "orjson-3.10.11-cp38-none-win_amd64.whl", hash = "sha256:b592597fe551d518f42c5a2eb07422eb475aa8cfdc8c51e6da7054b836b26782"}, - {file = "orjson-3.10.11-cp39-cp39-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:c95f2ecafe709b4e5c733b5e2768ac569bed308623c85806c395d9cca00e08af"}, - {file = "orjson-3.10.11-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:80c00d4acded0c51c98754fe8218cb49cb854f0f7eb39ea4641b7f71732d2cb7"}, - {file = "orjson-3.10.11-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:461311b693d3d0a060439aa669c74f3603264d4e7a08faa68c47ae5a863f352d"}, - {file = "orjson-3.10.11-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:52ca832f17d86a78cbab86cdc25f8c13756ebe182b6fc1a97d534051c18a08de"}, - {file = "orjson-3.10.11-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f4c57ea78a753812f528178aa2f1c57da633754c91d2124cb28991dab4c79a54"}, - {file = "orjson-3.10.11-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b7fcfc6f7ca046383fb954ba528587e0f9336828b568282b27579c49f8e16aad"}, - {file = "orjson-3.10.11-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:86b9dd983857970c29e4c71bb3e95ff085c07d3e83e7c46ebe959bac07ebd80b"}, - {file = "orjson-3.10.11-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:4d83f87582d223e54efb2242a79547611ba4ebae3af8bae1e80fa9a0af83bb7f"}, - {file = "orjson-3.10.11-cp39-none-win32.whl", hash = "sha256:9fd0ad1c129bc9beb1154c2655f177620b5beaf9a11e0d10bac63ef3fce96950"}, - {file = "orjson-3.10.11-cp39-none-win_amd64.whl", hash = "sha256:10f416b2a017c8bd17f325fb9dee1fb5cdd7a54e814284896b7c3f2763faa017"}, - {file = "orjson-3.10.11.tar.gz", hash = "sha256:e35b6d730de6384d5b2dab5fd23f0d76fae8bbc8c353c2f78210aa5fa4beb3ef"}, + {file = "orjson-3.10.12-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:ece01a7ec71d9940cc654c482907a6b65df27251255097629d0dea781f255c6d"}, + {file = "orjson-3.10.12-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c34ec9aebc04f11f4b978dd6caf697a2df2dd9b47d35aa4cc606cabcb9df69d7"}, + {file = "orjson-3.10.12-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fd6ec8658da3480939c79b9e9e27e0db31dffcd4ba69c334e98c9976ac29140e"}, + {file = "orjson-3.10.12-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f17e6baf4cf01534c9de8a16c0c611f3d94925d1701bf5f4aff17003677d8ced"}, + {file = "orjson-3.10.12-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6402ebb74a14ef96f94a868569f5dccf70d791de49feb73180eb3c6fda2ade56"}, + {file = "orjson-3.10.12-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0000758ae7c7853e0a4a6063f534c61656ebff644391e1f81698c1b2d2fc8cd2"}, + {file = "orjson-3.10.12-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:888442dcee99fd1e5bd37a4abb94930915ca6af4db50e23e746cdf4d1e63db13"}, + {file = "orjson-3.10.12-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:c1f7a3ce79246aa0e92f5458d86c54f257fb5dfdc14a192651ba7ec2c00f8a05"}, + {file = "orjson-3.10.12-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:802a3935f45605c66fb4a586488a38af63cb37aaad1c1d94c982c40dcc452e85"}, + {file = "orjson-3.10.12-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:1da1ef0113a2be19bb6c557fb0ec2d79c92ebd2fed4cfb1b26bab93f021fb885"}, + {file = "orjson-3.10.12-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:7a3273e99f367f137d5b3fecb5e9f45bcdbfac2a8b2f32fbc72129bbd48789c2"}, + {file = "orjson-3.10.12-cp310-none-win32.whl", hash = "sha256:475661bf249fd7907d9b0a2a2421b4e684355a77ceef85b8352439a9163418c3"}, + {file = "orjson-3.10.12-cp310-none-win_amd64.whl", hash = "sha256:87251dc1fb2b9e5ab91ce65d8f4caf21910d99ba8fb24b49fd0c118b2362d509"}, + {file = "orjson-3.10.12-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:a734c62efa42e7df94926d70fe7d37621c783dea9f707a98cdea796964d4cf74"}, + {file = "orjson-3.10.12-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:750f8b27259d3409eda8350c2919a58b0cfcd2054ddc1bd317a643afc646ef23"}, + {file = "orjson-3.10.12-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bb52c22bfffe2857e7aa13b4622afd0dd9d16ea7cc65fd2bf318d3223b1b6252"}, + {file = "orjson-3.10.12-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:440d9a337ac8c199ff8251e100c62e9488924c92852362cd27af0e67308c16ef"}, + {file = "orjson-3.10.12-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9e15c06491c69997dfa067369baab3bf094ecb74be9912bdc4339972323f252"}, + {file = "orjson-3.10.12-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:362d204ad4b0b8724cf370d0cd917bb2dc913c394030da748a3bb632445ce7c4"}, + {file = "orjson-3.10.12-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2b57cbb4031153db37b41622eac67329c7810e5f480fda4cfd30542186f006ae"}, + {file = "orjson-3.10.12-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:165c89b53ef03ce0d7c59ca5c82fa65fe13ddf52eeb22e859e58c237d4e33b9b"}, + {file = "orjson-3.10.12-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:5dee91b8dfd54557c1a1596eb90bcd47dbcd26b0baaed919e6861f076583e9da"}, + {file = "orjson-3.10.12-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:77a4e1cfb72de6f905bdff061172adfb3caf7a4578ebf481d8f0530879476c07"}, + {file = "orjson-3.10.12-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:038d42c7bc0606443459b8fe2d1f121db474c49067d8d14c6a075bbea8bf14dd"}, + {file = "orjson-3.10.12-cp311-none-win32.whl", hash = "sha256:03b553c02ab39bed249bedd4abe37b2118324d1674e639b33fab3d1dafdf4d79"}, + {file = "orjson-3.10.12-cp311-none-win_amd64.whl", hash = "sha256:8b8713b9e46a45b2af6b96f559bfb13b1e02006f4242c156cbadef27800a55a8"}, + {file = "orjson-3.10.12-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:53206d72eb656ca5ac7d3a7141e83c5bbd3ac30d5eccfe019409177a57634b0d"}, + {file = "orjson-3.10.12-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac8010afc2150d417ebda810e8df08dd3f544e0dd2acab5370cfa6bcc0662f8f"}, + {file = "orjson-3.10.12-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ed459b46012ae950dd2e17150e838ab08215421487371fa79d0eced8d1461d70"}, + {file = "orjson-3.10.12-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8dcb9673f108a93c1b52bfc51b0af422c2d08d4fc710ce9c839faad25020bb69"}, + {file = "orjson-3.10.12-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:22a51ae77680c5c4652ebc63a83d5255ac7d65582891d9424b566fb3b5375ee9"}, + {file = "orjson-3.10.12-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:910fdf2ac0637b9a77d1aad65f803bac414f0b06f720073438a7bd8906298192"}, + {file = "orjson-3.10.12-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:24ce85f7100160936bc2116c09d1a8492639418633119a2224114f67f63a4559"}, + {file = "orjson-3.10.12-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8a76ba5fc8dd9c913640292df27bff80a685bed3a3c990d59aa6ce24c352f8fc"}, + {file = "orjson-3.10.12-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:ff70ef093895fd53f4055ca75f93f047e088d1430888ca1229393a7c0521100f"}, + {file = "orjson-3.10.12-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:f4244b7018b5753ecd10a6d324ec1f347da130c953a9c88432c7fbc8875d13be"}, + {file = "orjson-3.10.12-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:16135ccca03445f37921fa4b585cff9a58aa8d81ebcb27622e69bfadd220b32c"}, + {file = "orjson-3.10.12-cp312-none-win32.whl", hash = "sha256:2d879c81172d583e34153d524fcba5d4adafbab8349a7b9f16ae511c2cee8708"}, + {file = "orjson-3.10.12-cp312-none-win_amd64.whl", hash = "sha256:fc23f691fa0f5c140576b8c365bc942d577d861a9ee1142e4db468e4e17094fb"}, + {file = "orjson-3.10.12-cp313-cp313-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:47962841b2a8aa9a258b377f5188db31ba49af47d4003a32f55d6f8b19006543"}, + {file = "orjson-3.10.12-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6334730e2532e77b6054e87ca84f3072bee308a45a452ea0bffbbbc40a67e296"}, + {file = "orjson-3.10.12-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:accfe93f42713c899fdac2747e8d0d5c659592df2792888c6c5f829472e4f85e"}, + {file = "orjson-3.10.12-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a7974c490c014c48810d1dede6c754c3cc46598da758c25ca3b4001ac45b703f"}, + {file = "orjson-3.10.12-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:3f250ce7727b0b2682f834a3facff88e310f52f07a5dcfd852d99637d386e79e"}, + {file = "orjson-3.10.12-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:f31422ff9486ae484f10ffc51b5ab2a60359e92d0716fcce1b3593d7bb8a9af6"}, + {file = "orjson-3.10.12-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5f29c5d282bb2d577c2a6bbde88d8fdcc4919c593f806aac50133f01b733846e"}, + {file = "orjson-3.10.12-cp313-none-win32.whl", hash = "sha256:f45653775f38f63dc0e6cd4f14323984c3149c05d6007b58cb154dd080ddc0dc"}, + {file = "orjson-3.10.12-cp313-none-win_amd64.whl", hash = "sha256:229994d0c376d5bdc91d92b3c9e6be2f1fbabd4cc1b59daae1443a46ee5e9825"}, + {file = "orjson-3.10.12-cp38-cp38-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:7d69af5b54617a5fac5c8e5ed0859eb798e2ce8913262eb522590239db6c6763"}, + {file = "orjson-3.10.12-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ed119ea7d2953365724a7059231a44830eb6bbb0cfead33fcbc562f5fd8f935"}, + {file = "orjson-3.10.12-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9c5fc1238ef197e7cad5c91415f524aaa51e004be5a9b35a1b8a84ade196f73f"}, + {file = "orjson-3.10.12-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:43509843990439b05f848539d6f6198d4ac86ff01dd024b2f9a795c0daeeab60"}, + {file = "orjson-3.10.12-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f72e27a62041cfb37a3de512247ece9f240a561e6c8662276beaf4d53d406db4"}, + {file = "orjson-3.10.12-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9a904f9572092bb6742ab7c16c623f0cdccbad9eeb2d14d4aa06284867bddd31"}, + {file = "orjson-3.10.12-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:855c0833999ed5dc62f64552db26f9be767434917d8348d77bacaab84f787d7b"}, + {file = "orjson-3.10.12-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:897830244e2320f6184699f598df7fb9db9f5087d6f3f03666ae89d607e4f8ed"}, + {file = "orjson-3.10.12-cp38-cp38-musllinux_1_2_armv7l.whl", hash = "sha256:0b32652eaa4a7539f6f04abc6243619c56f8530c53bf9b023e1269df5f7816dd"}, + {file = "orjson-3.10.12-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:36b4aa31e0f6a1aeeb6f8377769ca5d125db000f05c20e54163aef1d3fe8e833"}, + {file = "orjson-3.10.12-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:5535163054d6cbf2796f93e4f0dbc800f61914c0e3c4ed8499cf6ece22b4a3da"}, + {file = "orjson-3.10.12-cp38-none-win32.whl", hash = "sha256:90a5551f6f5a5fa07010bf3d0b4ca2de21adafbbc0af6cb700b63cd767266cb9"}, + {file = "orjson-3.10.12-cp38-none-win_amd64.whl", hash = "sha256:703a2fb35a06cdd45adf5d733cf613cbc0cb3ae57643472b16bc22d325b5fb6c"}, + {file = "orjson-3.10.12-cp39-cp39-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:f29de3ef71a42a5822765def1febfb36e0859d33abf5c2ad240acad5c6a1b78d"}, + {file = "orjson-3.10.12-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:de365a42acc65d74953f05e4772c974dad6c51cfc13c3240899f534d611be967"}, + {file = "orjson-3.10.12-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:91a5a0158648a67ff0004cb0df5df7dcc55bfc9ca154d9c01597a23ad54c8d0c"}, + {file = "orjson-3.10.12-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c47ce6b8d90fe9646a25b6fb52284a14ff215c9595914af63a5933a49972ce36"}, + {file = "orjson-3.10.12-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0eee4c2c5bfb5c1b47a5db80d2ac7aaa7e938956ae88089f098aff2c0f35d5d8"}, + {file = "orjson-3.10.12-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:35d3081bbe8b86587eb5c98a73b97f13d8f9fea685cf91a579beddacc0d10566"}, + {file = "orjson-3.10.12-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:73c23a6e90383884068bc2dba83d5222c9fcc3b99a0ed2411d38150734236755"}, + {file = "orjson-3.10.12-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:5472be7dc3269b4b52acba1433dac239215366f89dc1d8d0e64029abac4e714e"}, + {file = "orjson-3.10.12-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:7319cda750fca96ae5973efb31b17d97a5c5225ae0bc79bf5bf84df9e1ec2ab6"}, + {file = "orjson-3.10.12-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:74d5ca5a255bf20b8def6a2b96b1e18ad37b4a122d59b154c458ee9494377f80"}, + {file = "orjson-3.10.12-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:ff31d22ecc5fb85ef62c7d4afe8301d10c558d00dd24274d4bbe464380d3cd69"}, + {file = "orjson-3.10.12-cp39-none-win32.whl", hash = "sha256:c22c3ea6fba91d84fcb4cda30e64aff548fcf0c44c876e681f47d61d24b12e6b"}, + {file = "orjson-3.10.12-cp39-none-win_amd64.whl", hash = "sha256:be604f60d45ace6b0b33dd990a66b4526f1a7a186ac411c942674625456ca548"}, + {file = "orjson-3.10.12.tar.gz", hash = "sha256:0a78bbda3aea0f9f079057ee1ee8a1ecf790d4f1af88dd67493c6b8ee52506ff"}, ] [[package]] @@ -540,22 +557,19 @@ testing = ["pytest", "pytest-benchmark"] [[package]] name = "pydantic" -version = "2.9.2" +version = "2.10.4" description = "Data validation using Python type hints" optional = false python-versions = ">=3.8" files = [ - {file = "pydantic-2.9.2-py3-none-any.whl", hash = "sha256:f048cec7b26778210e28a0459867920654d48e5e62db0958433636cde4254f12"}, - {file = "pydantic-2.9.2.tar.gz", hash = "sha256:d155cef71265d1e9807ed1c32b4c8deec042a44a50a4188b25ac67ecd81a9c0f"}, + {file = "pydantic-2.10.4-py3-none-any.whl", hash = "sha256:597e135ea68be3a37552fb524bc7d0d66dcf93d395acd93a00682f1efcb8ee3d"}, + {file = "pydantic-2.10.4.tar.gz", hash = "sha256:82f12e9723da6de4fe2ba888b5971157b3be7ad914267dea8f05f82b28254f06"}, ] [package.dependencies] annotated-types = ">=0.6.0" -pydantic-core = "2.23.4" -typing-extensions = [ - {version = ">=4.12.2", markers = "python_version >= \"3.13\""}, - {version = ">=4.6.1", markers = "python_version < \"3.13\""}, -] +pydantic-core = "2.27.2" +typing-extensions = ">=4.12.2" [package.extras] email = ["email-validator (>=2.0.0)"] @@ -563,100 +577,111 @@ timezone = ["tzdata"] [[package]] name = "pydantic-core" -version = "2.23.4" +version = "2.27.2" description = "Core functionality for Pydantic validation and serialization" optional = false python-versions = ">=3.8" files = [ - {file = "pydantic_core-2.23.4-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:b10bd51f823d891193d4717448fab065733958bdb6a6b351967bd349d48d5c9b"}, - {file = "pydantic_core-2.23.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:4fc714bdbfb534f94034efaa6eadd74e5b93c8fa6315565a222f7b6f42ca1166"}, - {file = "pydantic_core-2.23.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:63e46b3169866bd62849936de036f901a9356e36376079b05efa83caeaa02ceb"}, - {file = "pydantic_core-2.23.4-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ed1a53de42fbe34853ba90513cea21673481cd81ed1be739f7f2efb931b24916"}, - {file = "pydantic_core-2.23.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cfdd16ab5e59fc31b5e906d1a3f666571abc367598e3e02c83403acabc092e07"}, - {file = "pydantic_core-2.23.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:255a8ef062cbf6674450e668482456abac99a5583bbafb73f9ad469540a3a232"}, - {file = "pydantic_core-2.23.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4a7cd62e831afe623fbb7aabbb4fe583212115b3ef38a9f6b71869ba644624a2"}, - {file = "pydantic_core-2.23.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f09e2ff1f17c2b51f2bc76d1cc33da96298f0a036a137f5440ab3ec5360b624f"}, - {file = "pydantic_core-2.23.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:e38e63e6f3d1cec5a27e0afe90a085af8b6806ee208b33030e65b6516353f1a3"}, - {file = "pydantic_core-2.23.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:0dbd8dbed2085ed23b5c04afa29d8fd2771674223135dc9bc937f3c09284d071"}, - {file = "pydantic_core-2.23.4-cp310-none-win32.whl", hash = "sha256:6531b7ca5f951d663c339002e91aaebda765ec7d61b7d1e3991051906ddde119"}, - {file = "pydantic_core-2.23.4-cp310-none-win_amd64.whl", hash = "sha256:7c9129eb40958b3d4500fa2467e6a83356b3b61bfff1b414c7361d9220f9ae8f"}, - {file = "pydantic_core-2.23.4-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:77733e3892bb0a7fa797826361ce8a9184d25c8dffaec60b7ffe928153680ba8"}, - {file = "pydantic_core-2.23.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1b84d168f6c48fabd1f2027a3d1bdfe62f92cade1fb273a5d68e621da0e44e6d"}, - {file = "pydantic_core-2.23.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:df49e7a0861a8c36d089c1ed57d308623d60416dab2647a4a17fe050ba85de0e"}, - {file = "pydantic_core-2.23.4-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ff02b6d461a6de369f07ec15e465a88895f3223eb75073ffea56b84d9331f607"}, - {file = "pydantic_core-2.23.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:996a38a83508c54c78a5f41456b0103c30508fed9abcad0a59b876d7398f25fd"}, - {file = "pydantic_core-2.23.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d97683ddee4723ae8c95d1eddac7c192e8c552da0c73a925a89fa8649bf13eea"}, - {file = "pydantic_core-2.23.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:216f9b2d7713eb98cb83c80b9c794de1f6b7e3145eef40400c62e86cee5f4e1e"}, - {file = "pydantic_core-2.23.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6f783e0ec4803c787bcea93e13e9932edab72068f68ecffdf86a99fd5918878b"}, - {file = "pydantic_core-2.23.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:d0776dea117cf5272382634bd2a5c1b6eb16767c223c6a5317cd3e2a757c61a0"}, - {file = "pydantic_core-2.23.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d5f7a395a8cf1621939692dba2a6b6a830efa6b3cee787d82c7de1ad2930de64"}, - {file = "pydantic_core-2.23.4-cp311-none-win32.whl", hash = "sha256:74b9127ffea03643e998e0c5ad9bd3811d3dac8c676e47db17b0ee7c3c3bf35f"}, - {file = "pydantic_core-2.23.4-cp311-none-win_amd64.whl", hash = "sha256:98d134c954828488b153d88ba1f34e14259284f256180ce659e8d83e9c05eaa3"}, - {file = "pydantic_core-2.23.4-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:f3e0da4ebaef65158d4dfd7d3678aad692f7666877df0002b8a522cdf088f231"}, - {file = "pydantic_core-2.23.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f69a8e0b033b747bb3e36a44e7732f0c99f7edd5cea723d45bc0d6e95377ffee"}, - {file = "pydantic_core-2.23.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:723314c1d51722ab28bfcd5240d858512ffd3116449c557a1336cbe3919beb87"}, - {file = "pydantic_core-2.23.4-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bb2802e667b7051a1bebbfe93684841cc9351004e2badbd6411bf357ab8d5ac8"}, - {file = "pydantic_core-2.23.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d18ca8148bebe1b0a382a27a8ee60350091a6ddaf475fa05ef50dc35b5df6327"}, - {file = "pydantic_core-2.23.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:33e3d65a85a2a4a0dc3b092b938a4062b1a05f3a9abde65ea93b233bca0e03f2"}, - {file = "pydantic_core-2.23.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:128585782e5bfa515c590ccee4b727fb76925dd04a98864182b22e89a4e6ed36"}, - {file = "pydantic_core-2.23.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:68665f4c17edcceecc112dfed5dbe6f92261fb9d6054b47d01bf6371a6196126"}, - {file = "pydantic_core-2.23.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:20152074317d9bed6b7a95ade3b7d6054845d70584216160860425f4fbd5ee9e"}, - {file = "pydantic_core-2.23.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:9261d3ce84fa1d38ed649c3638feefeae23d32ba9182963e465d58d62203bd24"}, - {file = "pydantic_core-2.23.4-cp312-none-win32.whl", hash = "sha256:4ba762ed58e8d68657fc1281e9bb72e1c3e79cc5d464be146e260c541ec12d84"}, - {file = "pydantic_core-2.23.4-cp312-none-win_amd64.whl", hash = "sha256:97df63000f4fea395b2824da80e169731088656d1818a11b95f3b173747b6cd9"}, - {file = "pydantic_core-2.23.4-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:7530e201d10d7d14abce4fb54cfe5b94a0aefc87da539d0346a484ead376c3cc"}, - {file = "pydantic_core-2.23.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:df933278128ea1cd77772673c73954e53a1c95a4fdf41eef97c2b779271bd0bd"}, - {file = "pydantic_core-2.23.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0cb3da3fd1b6a5d0279a01877713dbda118a2a4fc6f0d821a57da2e464793f05"}, - {file = "pydantic_core-2.23.4-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:42c6dcb030aefb668a2b7009c85b27f90e51e6a3b4d5c9bc4c57631292015b0d"}, - {file = "pydantic_core-2.23.4-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:696dd8d674d6ce621ab9d45b205df149399e4bb9aa34102c970b721554828510"}, - {file = "pydantic_core-2.23.4-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2971bb5ffe72cc0f555c13e19b23c85b654dd2a8f7ab493c262071377bfce9f6"}, - {file = "pydantic_core-2.23.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8394d940e5d400d04cad4f75c0598665cbb81aecefaca82ca85bd28264af7f9b"}, - {file = "pydantic_core-2.23.4-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0dff76e0602ca7d4cdaacc1ac4c005e0ce0dcfe095d5b5259163a80d3a10d327"}, - {file = "pydantic_core-2.23.4-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:7d32706badfe136888bdea71c0def994644e09fff0bfe47441deaed8e96fdbc6"}, - {file = "pydantic_core-2.23.4-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ed541d70698978a20eb63d8c5d72f2cc6d7079d9d90f6b50bad07826f1320f5f"}, - {file = "pydantic_core-2.23.4-cp313-none-win32.whl", hash = "sha256:3d5639516376dce1940ea36edf408c554475369f5da2abd45d44621cb616f769"}, - {file = "pydantic_core-2.23.4-cp313-none-win_amd64.whl", hash = "sha256:5a1504ad17ba4210df3a045132a7baeeba5a200e930f57512ee02909fc5c4cb5"}, - {file = "pydantic_core-2.23.4-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:d4488a93b071c04dc20f5cecc3631fc78b9789dd72483ba15d423b5b3689b555"}, - {file = "pydantic_core-2.23.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:81965a16b675b35e1d09dd14df53f190f9129c0202356ed44ab2728b1c905658"}, - {file = "pydantic_core-2.23.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4ffa2ebd4c8530079140dd2d7f794a9d9a73cbb8e9d59ffe24c63436efa8f271"}, - {file = "pydantic_core-2.23.4-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:61817945f2fe7d166e75fbfb28004034b48e44878177fc54d81688e7b85a3665"}, - {file = "pydantic_core-2.23.4-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:29d2c342c4bc01b88402d60189f3df065fb0dda3654744d5a165a5288a657368"}, - {file = "pydantic_core-2.23.4-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5e11661ce0fd30a6790e8bcdf263b9ec5988e95e63cf901972107efc49218b13"}, - {file = "pydantic_core-2.23.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9d18368b137c6295db49ce7218b1a9ba15c5bc254c96d7c9f9e924a9bc7825ad"}, - {file = "pydantic_core-2.23.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ec4e55f79b1c4ffb2eecd8a0cfba9955a2588497d96851f4c8f99aa4a1d39b12"}, - {file = "pydantic_core-2.23.4-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:374a5e5049eda9e0a44c696c7ade3ff355f06b1fe0bb945ea3cac2bc336478a2"}, - {file = "pydantic_core-2.23.4-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:5c364564d17da23db1106787675fc7af45f2f7b58b4173bfdd105564e132e6fb"}, - {file = "pydantic_core-2.23.4-cp38-none-win32.whl", hash = "sha256:d7a80d21d613eec45e3d41eb22f8f94ddc758a6c4720842dc74c0581f54993d6"}, - {file = "pydantic_core-2.23.4-cp38-none-win_amd64.whl", hash = "sha256:5f5ff8d839f4566a474a969508fe1c5e59c31c80d9e140566f9a37bba7b8d556"}, - {file = "pydantic_core-2.23.4-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:a4fa4fc04dff799089689f4fd502ce7d59de529fc2f40a2c8836886c03e0175a"}, - {file = "pydantic_core-2.23.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0a7df63886be5e270da67e0966cf4afbae86069501d35c8c1b3b6c168f42cb36"}, - {file = "pydantic_core-2.23.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dcedcd19a557e182628afa1d553c3895a9f825b936415d0dbd3cd0bbcfd29b4b"}, - {file = "pydantic_core-2.23.4-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5f54b118ce5de9ac21c363d9b3caa6c800341e8c47a508787e5868c6b79c9323"}, - {file = "pydantic_core-2.23.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:86d2f57d3e1379a9525c5ab067b27dbb8a0642fb5d454e17a9ac434f9ce523e3"}, - {file = "pydantic_core-2.23.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:de6d1d1b9e5101508cb37ab0d972357cac5235f5c6533d1071964c47139257df"}, - {file = "pydantic_core-2.23.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1278e0d324f6908e872730c9102b0112477a7f7cf88b308e4fc36ce1bdb6d58c"}, - {file = "pydantic_core-2.23.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9a6b5099eeec78827553827f4c6b8615978bb4b6a88e5d9b93eddf8bb6790f55"}, - {file = "pydantic_core-2.23.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:e55541f756f9b3ee346b840103f32779c695a19826a4c442b7954550a0972040"}, - {file = "pydantic_core-2.23.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a5c7ba8ffb6d6f8f2ab08743be203654bb1aaa8c9dcb09f82ddd34eadb695605"}, - {file = "pydantic_core-2.23.4-cp39-none-win32.whl", hash = "sha256:37b0fe330e4a58d3c58b24d91d1eb102aeec675a3db4c292ec3928ecd892a9a6"}, - {file = "pydantic_core-2.23.4-cp39-none-win_amd64.whl", hash = "sha256:1498bec4c05c9c787bde9125cfdcc63a41004ff167f495063191b863399b1a29"}, - {file = "pydantic_core-2.23.4-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:f455ee30a9d61d3e1a15abd5068827773d6e4dc513e795f380cdd59932c782d5"}, - {file = "pydantic_core-2.23.4-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:1e90d2e3bd2c3863d48525d297cd143fe541be8bbf6f579504b9712cb6b643ec"}, - {file = "pydantic_core-2.23.4-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2e203fdf807ac7e12ab59ca2bfcabb38c7cf0b33c41efeb00f8e5da1d86af480"}, - {file = "pydantic_core-2.23.4-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e08277a400de01bc72436a0ccd02bdf596631411f592ad985dcee21445bd0068"}, - {file = "pydantic_core-2.23.4-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f220b0eea5965dec25480b6333c788fb72ce5f9129e8759ef876a1d805d00801"}, - {file = "pydantic_core-2.23.4-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:d06b0c8da4f16d1d1e352134427cb194a0a6e19ad5db9161bf32b2113409e728"}, - {file = "pydantic_core-2.23.4-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:ba1a0996f6c2773bd83e63f18914c1de3c9dd26d55f4ac302a7efe93fb8e7433"}, - {file = "pydantic_core-2.23.4-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:9a5bce9d23aac8f0cf0836ecfc033896aa8443b501c58d0602dbfd5bd5b37753"}, - {file = "pydantic_core-2.23.4-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:78ddaaa81421a29574a682b3179d4cf9e6d405a09b99d93ddcf7e5239c742e21"}, - {file = "pydantic_core-2.23.4-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:883a91b5dd7d26492ff2f04f40fbb652de40fcc0afe07e8129e8ae779c2110eb"}, - {file = "pydantic_core-2.23.4-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88ad334a15b32a791ea935af224b9de1bf99bcd62fabf745d5f3442199d86d59"}, - {file = "pydantic_core-2.23.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:233710f069d251feb12a56da21e14cca67994eab08362207785cf8c598e74577"}, - {file = "pydantic_core-2.23.4-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:19442362866a753485ba5e4be408964644dd6a09123d9416c54cd49171f50744"}, - {file = "pydantic_core-2.23.4-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:624e278a7d29b6445e4e813af92af37820fafb6dcc55c012c834f9e26f9aaaef"}, - {file = "pydantic_core-2.23.4-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f5ef8f42bec47f21d07668a043f077d507e5bf4e668d5c6dfe6aaba89de1a5b8"}, - {file = "pydantic_core-2.23.4-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:aea443fffa9fbe3af1a9ba721a87f926fe548d32cab71d188a6ede77d0ff244e"}, - {file = "pydantic_core-2.23.4.tar.gz", hash = "sha256:2584f7cf844ac4d970fba483a717dbe10c1c1c96a969bf65d61ffe94df1b2863"}, + {file = "pydantic_core-2.27.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:2d367ca20b2f14095a8f4fa1210f5a7b78b8a20009ecced6b12818f455b1e9fa"}, + {file = "pydantic_core-2.27.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:491a2b73db93fab69731eaee494f320faa4e093dbed776be1a829c2eb222c34c"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7969e133a6f183be60e9f6f56bfae753585680f3b7307a8e555a948d443cc05a"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3de9961f2a346257caf0aa508a4da705467f53778e9ef6fe744c038119737ef5"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e2bb4d3e5873c37bb3dd58714d4cd0b0e6238cebc4177ac8fe878f8b3aa8e74c"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:280d219beebb0752699480fe8f1dc61ab6615c2046d76b7ab7ee38858de0a4e7"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47956ae78b6422cbd46f772f1746799cbb862de838fd8d1fbd34a82e05b0983a"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:14d4a5c49d2f009d62a2a7140d3064f686d17a5d1a268bc641954ba181880236"}, + {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:337b443af21d488716f8d0b6164de833e788aa6bd7e3a39c005febc1284f4962"}, + {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:03d0f86ea3184a12f41a2d23f7ccb79cdb5a18e06993f8a45baa8dfec746f0e9"}, + {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7041c36f5680c6e0f08d922aed302e98b3745d97fe1589db0a3eebf6624523af"}, + {file = "pydantic_core-2.27.2-cp310-cp310-win32.whl", hash = "sha256:50a68f3e3819077be2c98110c1f9dcb3817e93f267ba80a2c05bb4f8799e2ff4"}, + {file = "pydantic_core-2.27.2-cp310-cp310-win_amd64.whl", hash = "sha256:e0fd26b16394ead34a424eecf8a31a1f5137094cabe84a1bcb10fa6ba39d3d31"}, + {file = "pydantic_core-2.27.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:8e10c99ef58cfdf2a66fc15d66b16c4a04f62bca39db589ae8cba08bc55331bc"}, + {file = "pydantic_core-2.27.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:26f32e0adf166a84d0cb63be85c562ca8a6fa8de28e5f0d92250c6b7e9e2aff7"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c19d1ea0673cd13cc2f872f6c9ab42acc4e4f492a7ca9d3795ce2b112dd7e15"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5e68c4446fe0810e959cdff46ab0a41ce2f2c86d227d96dc3847af0ba7def306"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d9640b0059ff4f14d1f37321b94061c6db164fbe49b334b31643e0528d100d99"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:40d02e7d45c9f8af700f3452f329ead92da4c5f4317ca9b896de7ce7199ea459"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1c1fd185014191700554795c99b347d64f2bb637966c4cfc16998a0ca700d048"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d81d2068e1c1228a565af076598f9e7451712700b673de8f502f0334f281387d"}, + {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:1a4207639fb02ec2dbb76227d7c751a20b1a6b4bc52850568e52260cae64ca3b"}, + {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:3de3ce3c9ddc8bbd88f6e0e304dea0e66d843ec9de1b0042b0911c1663ffd474"}, + {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:30c5f68ded0c36466acede341551106821043e9afaad516adfb6e8fa80a4e6a6"}, + {file = "pydantic_core-2.27.2-cp311-cp311-win32.whl", hash = "sha256:c70c26d2c99f78b125a3459f8afe1aed4d9687c24fd677c6a4436bc042e50d6c"}, + {file = "pydantic_core-2.27.2-cp311-cp311-win_amd64.whl", hash = "sha256:08e125dbdc505fa69ca7d9c499639ab6407cfa909214d500897d02afb816e7cc"}, + {file = "pydantic_core-2.27.2-cp311-cp311-win_arm64.whl", hash = "sha256:26f0d68d4b235a2bae0c3fc585c585b4ecc51382db0e3ba402a22cbc440915e4"}, + {file = "pydantic_core-2.27.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:9e0c8cfefa0ef83b4da9588448b6d8d2a2bf1a53c3f1ae5fca39eb3061e2f0b0"}, + {file = "pydantic_core-2.27.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:83097677b8e3bd7eaa6775720ec8e0405f1575015a463285a92bfdfe254529ef"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:172fce187655fece0c90d90a678424b013f8fbb0ca8b036ac266749c09438cb7"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:519f29f5213271eeeeb3093f662ba2fd512b91c5f188f3bb7b27bc5973816934"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:05e3a55d124407fffba0dd6b0c0cd056d10e983ceb4e5dbd10dda135c31071d6"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9c3ed807c7b91de05e63930188f19e921d1fe90de6b4f5cd43ee7fcc3525cb8c"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6fb4aadc0b9a0c063206846d603b92030eb6f03069151a625667f982887153e2"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:28ccb213807e037460326424ceb8b5245acb88f32f3d2777427476e1b32c48c4"}, + {file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:de3cd1899e2c279b140adde9357c4495ed9d47131b4a4eaff9052f23398076b3"}, + {file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:220f892729375e2d736b97d0e51466252ad84c51857d4d15f5e9692f9ef12be4"}, + {file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a0fcd29cd6b4e74fe8ddd2c90330fd8edf2e30cb52acda47f06dd615ae72da57"}, + {file = "pydantic_core-2.27.2-cp312-cp312-win32.whl", hash = "sha256:1e2cb691ed9834cd6a8be61228471d0a503731abfb42f82458ff27be7b2186fc"}, + {file = "pydantic_core-2.27.2-cp312-cp312-win_amd64.whl", hash = "sha256:cc3f1a99a4f4f9dd1de4fe0312c114e740b5ddead65bb4102884b384c15d8bc9"}, + {file = "pydantic_core-2.27.2-cp312-cp312-win_arm64.whl", hash = "sha256:3911ac9284cd8a1792d3cb26a2da18f3ca26c6908cc434a18f730dc0db7bfa3b"}, + {file = "pydantic_core-2.27.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:7d14bd329640e63852364c306f4d23eb744e0f8193148d4044dd3dacdaacbd8b"}, + {file = "pydantic_core-2.27.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:82f91663004eb8ed30ff478d77c4d1179b3563df6cdb15c0817cd1cdaf34d154"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:71b24c7d61131bb83df10cc7e687433609963a944ccf45190cfc21e0887b08c9"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fa8e459d4954f608fa26116118bb67f56b93b209c39b008277ace29937453dc9"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ce8918cbebc8da707ba805b7fd0b382816858728ae7fe19a942080c24e5b7cd1"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:eda3f5c2a021bbc5d976107bb302e0131351c2ba54343f8a496dc8783d3d3a6a"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bd8086fa684c4775c27f03f062cbb9eaa6e17f064307e86b21b9e0abc9c0f02e"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8d9b3388db186ba0c099a6d20f0604a44eabdeef1777ddd94786cdae158729e4"}, + {file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:7a66efda2387de898c8f38c0cf7f14fca0b51a8ef0b24bfea5849f1b3c95af27"}, + {file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:18a101c168e4e092ab40dbc2503bdc0f62010e95d292b27827871dc85450d7ee"}, + {file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ba5dd002f88b78a4215ed2f8ddbdf85e8513382820ba15ad5ad8955ce0ca19a1"}, + {file = "pydantic_core-2.27.2-cp313-cp313-win32.whl", hash = "sha256:1ebaf1d0481914d004a573394f4be3a7616334be70261007e47c2a6fe7e50130"}, + {file = "pydantic_core-2.27.2-cp313-cp313-win_amd64.whl", hash = "sha256:953101387ecf2f5652883208769a79e48db18c6df442568a0b5ccd8c2723abee"}, + {file = "pydantic_core-2.27.2-cp313-cp313-win_arm64.whl", hash = "sha256:ac4dbfd1691affb8f48c2c13241a2e3b60ff23247cbcf981759c768b6633cf8b"}, + {file = "pydantic_core-2.27.2-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:d3e8d504bdd3f10835468f29008d72fc8359d95c9c415ce6e767203db6127506"}, + {file = "pydantic_core-2.27.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:521eb9b7f036c9b6187f0b47318ab0d7ca14bd87f776240b90b21c1f4f149320"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:85210c4d99a0114f5a9481b44560d7d1e35e32cc5634c656bc48e590b669b145"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d716e2e30c6f140d7560ef1538953a5cd1a87264c737643d481f2779fc247fe1"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f66d89ba397d92f840f8654756196d93804278457b5fbede59598a1f9f90b228"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:669e193c1c576a58f132e3158f9dfa9662969edb1a250c54d8fa52590045f046"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fdbe7629b996647b99c01b37f11170a57ae675375b14b8c13b8518b8320ced5"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d262606bf386a5ba0b0af3b97f37c83d7011439e3dc1a9298f21efb292e42f1a"}, + {file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:cabb9bcb7e0d97f74df8646f34fc76fbf793b7f6dc2438517d7a9e50eee4f14d"}, + {file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_armv7l.whl", hash = "sha256:d2d63f1215638d28221f664596b1ccb3944f6e25dd18cd3b86b0a4c408d5ebb9"}, + {file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:bca101c00bff0adb45a833f8451b9105d9df18accb8743b08107d7ada14bd7da"}, + {file = "pydantic_core-2.27.2-cp38-cp38-win32.whl", hash = "sha256:f6f8e111843bbb0dee4cb6594cdc73e79b3329b526037ec242a3e49012495b3b"}, + {file = "pydantic_core-2.27.2-cp38-cp38-win_amd64.whl", hash = "sha256:fd1aea04935a508f62e0d0ef1f5ae968774a32afc306fb8545e06f5ff5cdf3ad"}, + {file = "pydantic_core-2.27.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:c10eb4f1659290b523af58fa7cffb452a61ad6ae5613404519aee4bfbf1df993"}, + {file = "pydantic_core-2.27.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ef592d4bad47296fb11f96cd7dc898b92e795032b4894dfb4076cfccd43a9308"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c61709a844acc6bf0b7dce7daae75195a10aac96a596ea1b776996414791ede4"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:42c5f762659e47fdb7b16956c71598292f60a03aa92f8b6351504359dbdba6cf"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4c9775e339e42e79ec99c441d9730fccf07414af63eac2f0e48e08fd38a64d76"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:57762139821c31847cfb2df63c12f725788bd9f04bc2fb392790959b8f70f118"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0d1e85068e818c73e048fe28cfc769040bb1f475524f4745a5dc621f75ac7630"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:097830ed52fd9e427942ff3b9bc17fab52913b2f50f2880dc4a5611446606a54"}, + {file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:044a50963a614ecfae59bb1eaf7ea7efc4bc62f49ed594e18fa1e5d953c40e9f"}, + {file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_armv7l.whl", hash = "sha256:4e0b4220ba5b40d727c7f879eac379b822eee5d8fff418e9d3381ee45b3b0362"}, + {file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5e4f4bb20d75e9325cc9696c6802657b58bc1dbbe3022f32cc2b2b632c3fbb96"}, + {file = "pydantic_core-2.27.2-cp39-cp39-win32.whl", hash = "sha256:cca63613e90d001b9f2f9a9ceb276c308bfa2a43fafb75c8031c4f66039e8c6e"}, + {file = "pydantic_core-2.27.2-cp39-cp39-win_amd64.whl", hash = "sha256:77d1bca19b0f7021b3a982e6f903dcd5b2b06076def36a652e3907f596e29f67"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:2bf14caea37e91198329b828eae1618c068dfb8ef17bb33287a7ad4b61ac314e"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:b0cb791f5b45307caae8810c2023a184c74605ec3bcbb67d13846c28ff731ff8"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:688d3fd9fcb71f41c4c015c023d12a79d1c4c0732ec9eb35d96e3388a120dcf3"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d591580c34f4d731592f0e9fe40f9cc1b430d297eecc70b962e93c5c668f15f"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:82f986faf4e644ffc189a7f1aafc86e46ef70372bb153e7001e8afccc6e54133"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:bec317a27290e2537f922639cafd54990551725fc844249e64c523301d0822fc"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:0296abcb83a797db256b773f45773da397da75a08f5fcaef41f2044adec05f50"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:0d75070718e369e452075a6017fbf187f788e17ed67a3abd47fa934d001863d9"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:7e17b560be3c98a8e3aa66ce828bdebb9e9ac6ad5466fba92eb74c4c95cb1151"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:c33939a82924da9ed65dab5a65d427205a73181d8098e79b6b426bdf8ad4e656"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:00bad2484fa6bda1e216e7345a798bd37c68fb2d97558edd584942aa41b7d278"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c817e2b40aba42bac6f457498dacabc568c3b7a986fc9ba7c8d9d260b71485fb"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:251136cdad0cb722e93732cb45ca5299fb56e1344a833640bf93b2803f8d1bfd"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d2088237af596f0a524d3afc39ab3b036e8adb054ee57cbb1dcf8e09da5b29cc"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:d4041c0b966a84b4ae7a09832eb691a35aec90910cd2dbe7a208de59be77965b"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:8083d4e875ebe0b864ffef72a4304827015cff328a1be6e22cc850753bfb122b"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f141ee28a0ad2123b6611b6ceff018039df17f32ada8b534e6aa039545a3efb2"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7d0c8399fcc1848491f00e0314bd59fb34a9c008761bcb422a057670c3f65e35"}, + {file = "pydantic_core-2.27.2.tar.gz", hash = "sha256:eb026e5a4c1fee05726072337ff51d1efb6f59090b7da90d30ea58625b1ffb39"}, ] [package.dependencies] @@ -664,13 +689,13 @@ typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0" [[package]] name = "pyright" -version = "1.1.389" +version = "1.1.391" description = "Command line wrapper for pyright" optional = false python-versions = ">=3.7" files = [ - {file = "pyright-1.1.389-py3-none-any.whl", hash = "sha256:41e9620bba9254406dc1f621a88ceab5a88af4c826feb4f614d95691ed243a60"}, - {file = "pyright-1.1.389.tar.gz", hash = "sha256:716bf8cc174ab8b4dcf6828c3298cac05c5ed775dda9910106a5dcfe4c7fe220"}, + {file = "pyright-1.1.391-py3-none-any.whl", hash = "sha256:54fa186f8b3e8a55a44ebfa842636635688670c6896dcf6cf4a7fc75062f4d15"}, + {file = "pyright-1.1.391.tar.gz", hash = "sha256:66b2d42cdf5c3cbab05f2f4b76e8bec8aa78e679bfa0b6ad7b923d9e027cadb2"}, ] [package.dependencies] @@ -735,6 +760,7 @@ files = [ {file = "ruamel.yaml.clib-0.2.12-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f66efbc1caa63c088dead1c4170d148eabc9b80d95fb75b6c92ac0aad2437d76"}, {file = "ruamel.yaml.clib-0.2.12-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:22353049ba4181685023b25b5b51a574bce33e7f51c759371a7422dcae5402a6"}, {file = "ruamel.yaml.clib-0.2.12-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:932205970b9f9991b34f55136be327501903f7c66830e9760a8ffb15b07f05cd"}, + {file = "ruamel.yaml.clib-0.2.12-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a52d48f4e7bf9005e8f0a89209bf9a73f7190ddf0489eee5eb51377385f59f2a"}, {file = "ruamel.yaml.clib-0.2.12-cp310-cp310-win32.whl", hash = "sha256:3eac5a91891ceb88138c113f9db04f3cebdae277f5d44eaa3651a4f573e6a5da"}, {file = "ruamel.yaml.clib-0.2.12-cp310-cp310-win_amd64.whl", hash = "sha256:ab007f2f5a87bd08ab1499bdf96f3d5c6ad4dcfa364884cb4549aa0154b13a28"}, {file = "ruamel.yaml.clib-0.2.12-cp311-cp311-macosx_13_0_arm64.whl", hash = "sha256:4a6679521a58256a90b0d89e03992c15144c5f3858f40d7c18886023d7943db6"}, @@ -743,6 +769,7 @@ files = [ {file = "ruamel.yaml.clib-0.2.12-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:811ea1594b8a0fb466172c384267a4e5e367298af6b228931f273b111f17ef52"}, {file = "ruamel.yaml.clib-0.2.12-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:cf12567a7b565cbf65d438dec6cfbe2917d3c1bdddfce84a9930b7d35ea59642"}, {file = "ruamel.yaml.clib-0.2.12-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:7dd5adc8b930b12c8fc5b99e2d535a09889941aa0d0bd06f4749e9a9397c71d2"}, + {file = "ruamel.yaml.clib-0.2.12-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1492a6051dab8d912fc2adeef0e8c72216b24d57bd896ea607cb90bb0c4981d3"}, {file = "ruamel.yaml.clib-0.2.12-cp311-cp311-win32.whl", hash = "sha256:bd0a08f0bab19093c54e18a14a10b4322e1eacc5217056f3c063bd2f59853ce4"}, {file = "ruamel.yaml.clib-0.2.12-cp311-cp311-win_amd64.whl", hash = "sha256:a274fb2cb086c7a3dea4322ec27f4cb5cc4b6298adb583ab0e211a4682f241eb"}, {file = "ruamel.yaml.clib-0.2.12-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:20b0f8dc160ba83b6dcc0e256846e1a02d044e13f7ea74a3d1d56ede4e48c632"}, @@ -751,6 +778,7 @@ files = [ {file = "ruamel.yaml.clib-0.2.12-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:749c16fcc4a2b09f28843cda5a193e0283e47454b63ec4b81eaa2242f50e4ccd"}, {file = "ruamel.yaml.clib-0.2.12-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:bf165fef1f223beae7333275156ab2022cffe255dcc51c27f066b4370da81e31"}, {file = "ruamel.yaml.clib-0.2.12-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:32621c177bbf782ca5a18ba4d7af0f1082a3f6e517ac2a18b3974d4edf349680"}, + {file = "ruamel.yaml.clib-0.2.12-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:b82a7c94a498853aa0b272fd5bc67f29008da798d4f93a2f9f289feb8426a58d"}, {file = "ruamel.yaml.clib-0.2.12-cp312-cp312-win32.whl", hash = "sha256:e8c4ebfcfd57177b572e2040777b8abc537cdef58a2120e830124946aa9b42c5"}, {file = "ruamel.yaml.clib-0.2.12-cp312-cp312-win_amd64.whl", hash = "sha256:0467c5965282c62203273b838ae77c0d29d7638c8a4e3a1c8bdd3602c10904e4"}, {file = "ruamel.yaml.clib-0.2.12-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:4c8c5d82f50bb53986a5e02d1b3092b03622c02c2eb78e29bec33fd9593bae1a"}, @@ -759,6 +787,7 @@ files = [ {file = "ruamel.yaml.clib-0.2.12-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:96777d473c05ee3e5e3c3e999f5d23c6f4ec5b0c38c098b3a5229085f74236c6"}, {file = "ruamel.yaml.clib-0.2.12-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:3bc2a80e6420ca8b7d3590791e2dfc709c88ab9152c00eeb511c9875ce5778bf"}, {file = "ruamel.yaml.clib-0.2.12-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:e188d2699864c11c36cdfdada94d781fd5d6b0071cd9c427bceb08ad3d7c70e1"}, + {file = "ruamel.yaml.clib-0.2.12-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:4f6f3eac23941b32afccc23081e1f50612bdbe4e982012ef4f5797986828cd01"}, {file = "ruamel.yaml.clib-0.2.12-cp313-cp313-win32.whl", hash = "sha256:6442cb36270b3afb1b4951f060eccca1ce49f3d087ca1ca4563a6eb479cb3de6"}, {file = "ruamel.yaml.clib-0.2.12-cp313-cp313-win_amd64.whl", hash = "sha256:e5b8daf27af0b90da7bb903a876477a9e6d7270be6146906b276605997c7e9a3"}, {file = "ruamel.yaml.clib-0.2.12-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:fc4b630cd3fa2cf7fce38afa91d7cfe844a9f75d7f0f36393fa98815e911d987"}, @@ -767,6 +796,7 @@ files = [ {file = "ruamel.yaml.clib-0.2.12-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e2f1c3765db32be59d18ab3953f43ab62a761327aafc1594a2a1fbe038b8b8a7"}, {file = "ruamel.yaml.clib-0.2.12-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:d85252669dc32f98ebcd5d36768f5d4faeaeaa2d655ac0473be490ecdae3c285"}, {file = "ruamel.yaml.clib-0.2.12-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:e143ada795c341b56de9418c58d028989093ee611aa27ffb9b7f609c00d813ed"}, + {file = "ruamel.yaml.clib-0.2.12-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:2c59aa6170b990d8d2719323e628aaf36f3bfbc1c26279c0eeeb24d05d2d11c7"}, {file = "ruamel.yaml.clib-0.2.12-cp39-cp39-win32.whl", hash = "sha256:beffaed67936fbbeffd10966a4eb53c402fafd3d6833770516bf7314bc6ffa12"}, {file = "ruamel.yaml.clib-0.2.12-cp39-cp39-win_amd64.whl", hash = "sha256:040ae85536960525ea62868b642bdb0c2cc6021c9f9d507810c0c604e66f5a7b"}, {file = "ruamel.yaml.clib-0.2.12.tar.gz", hash = "sha256:6c8fbb13ec503f99a91901ab46e0b07ae7941cd527393187039aec586fdfd36f"}, @@ -774,29 +804,29 @@ files = [ [[package]] name = "ruff" -version = "0.7.4" +version = "0.8.4" description = "An extremely fast Python linter and code formatter, written in Rust." optional = false python-versions = ">=3.7" files = [ - {file = "ruff-0.7.4-py3-none-linux_armv6l.whl", hash = "sha256:a4919925e7684a3f18e18243cd6bea7cfb8e968a6eaa8437971f681b7ec51478"}, - {file = "ruff-0.7.4-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:cfb365c135b830778dda8c04fb7d4280ed0b984e1aec27f574445231e20d6c63"}, - {file = "ruff-0.7.4-py3-none-macosx_11_0_arm64.whl", hash = "sha256:63a569b36bc66fbadec5beaa539dd81e0527cb258b94e29e0531ce41bacc1f20"}, - {file = "ruff-0.7.4-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0d06218747d361d06fd2fdac734e7fa92df36df93035db3dc2ad7aa9852cb109"}, - {file = "ruff-0.7.4-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e0cea28d0944f74ebc33e9f934238f15c758841f9f5edd180b5315c203293452"}, - {file = "ruff-0.7.4-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:80094ecd4793c68b2571b128f91754d60f692d64bc0d7272ec9197fdd09bf9ea"}, - {file = "ruff-0.7.4-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:997512325c6620d1c4c2b15db49ef59543ef9cd0f4aa8065ec2ae5103cedc7e7"}, - {file = "ruff-0.7.4-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:00b4cf3a6b5fad6d1a66e7574d78956bbd09abfd6c8a997798f01f5da3d46a05"}, - {file = "ruff-0.7.4-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7dbdc7d8274e1422722933d1edddfdc65b4336abf0b16dfcb9dedd6e6a517d06"}, - {file = "ruff-0.7.4-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e92dfb5f00eaedb1501b2f906ccabfd67b2355bdf117fea9719fc99ac2145bc"}, - {file = "ruff-0.7.4-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:3bd726099f277d735dc38900b6a8d6cf070f80828877941983a57bca1cd92172"}, - {file = "ruff-0.7.4-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:2e32829c429dd081ee5ba39aef436603e5b22335c3d3fff013cd585806a6486a"}, - {file = "ruff-0.7.4-py3-none-musllinux_1_2_i686.whl", hash = "sha256:662a63b4971807623f6f90c1fb664613f67cc182dc4d991471c23c541fee62dd"}, - {file = "ruff-0.7.4-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:876f5e09eaae3eb76814c1d3b68879891d6fde4824c015d48e7a7da4cf066a3a"}, - {file = "ruff-0.7.4-py3-none-win32.whl", hash = "sha256:75c53f54904be42dd52a548728a5b572344b50d9b2873d13a3f8c5e3b91f5cac"}, - {file = "ruff-0.7.4-py3-none-win_amd64.whl", hash = "sha256:745775c7b39f914238ed1f1b0bebed0b9155a17cd8bc0b08d3c87e4703b990d6"}, - {file = "ruff-0.7.4-py3-none-win_arm64.whl", hash = "sha256:11bff065102c3ae9d3ea4dc9ecdfe5a5171349cdd0787c1fc64761212fc9cf1f"}, - {file = "ruff-0.7.4.tar.gz", hash = "sha256:cd12e35031f5af6b9b93715d8c4f40360070b2041f81273d0527683d5708fce2"}, + {file = "ruff-0.8.4-py3-none-linux_armv6l.whl", hash = "sha256:58072f0c06080276804c6a4e21a9045a706584a958e644353603d36ca1eb8a60"}, + {file = "ruff-0.8.4-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:ffb60904651c00a1e0b8df594591770018a0f04587f7deeb3838344fe3adabac"}, + {file = "ruff-0.8.4-py3-none-macosx_11_0_arm64.whl", hash = "sha256:6ddf5d654ac0d44389f6bf05cee4caeefc3132a64b58ea46738111d687352296"}, + {file = "ruff-0.8.4-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e248b1f0fa2749edd3350a2a342b67b43a2627434c059a063418e3d375cfe643"}, + {file = "ruff-0.8.4-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bf197b98ed86e417412ee3b6c893f44c8864f816451441483253d5ff22c0e81e"}, + {file = "ruff-0.8.4-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c41319b85faa3aadd4d30cb1cffdd9ac6b89704ff79f7664b853785b48eccdf3"}, + {file = "ruff-0.8.4-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:9f8402b7c4f96463f135e936d9ab77b65711fcd5d72e5d67597b543bbb43cf3f"}, + {file = "ruff-0.8.4-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e4e56b3baa9c23d324ead112a4fdf20db9a3f8f29eeabff1355114dd96014604"}, + {file = "ruff-0.8.4-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:736272574e97157f7edbbb43b1d046125fce9e7d8d583d5d65d0c9bf2c15addf"}, + {file = "ruff-0.8.4-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e5fe710ab6061592521f902fca7ebcb9fabd27bc7c57c764298b1c1f15fff720"}, + {file = "ruff-0.8.4-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:13e9ec6d6b55f6da412d59953d65d66e760d583dd3c1c72bf1f26435b5bfdbae"}, + {file = "ruff-0.8.4-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:97d9aefef725348ad77d6db98b726cfdb075a40b936c7984088804dfd38268a7"}, + {file = "ruff-0.8.4-py3-none-musllinux_1_2_i686.whl", hash = "sha256:ab78e33325a6f5374e04c2ab924a3367d69a0da36f8c9cb6b894a62017506111"}, + {file = "ruff-0.8.4-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:8ef06f66f4a05c3ddbc9121a8b0cecccd92c5bf3dd43b5472ffe40b8ca10f0f8"}, + {file = "ruff-0.8.4-py3-none-win32.whl", hash = "sha256:552fb6d861320958ca5e15f28b20a3d071aa83b93caee33a87b471f99a6c0835"}, + {file = "ruff-0.8.4-py3-none-win_amd64.whl", hash = "sha256:f21a1143776f8656d7f364bd264a9d60f01b7f52243fbe90e7670c0dfe0cf65d"}, + {file = "ruff-0.8.4-py3-none-win_arm64.whl", hash = "sha256:9183dd615d8df50defa8b1d9a074053891ba39025cf5ae88e8bcb52edcc4bf08"}, + {file = "ruff-0.8.4.tar.gz", hash = "sha256:0d5f89f254836799af1615798caa5f80b7f935d7a670fad66c5007928e57ace8"}, ] [[package]] @@ -812,13 +842,43 @@ files = [ [[package]] name = "tomli" -version = "2.1.0" +version = "2.2.1" description = "A lil' TOML parser" optional = false python-versions = ">=3.8" files = [ - {file = "tomli-2.1.0-py3-none-any.whl", hash = "sha256:a5c57c3d1c56f5ccdf89f6523458f60ef716e210fc47c4cfb188c5ba473e0391"}, - {file = "tomli-2.1.0.tar.gz", hash = "sha256:3f646cae2aec94e17d04973e4249548320197cfabdf130015d023de4b74d8ab8"}, + {file = "tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249"}, + {file = "tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6"}, + {file = "tomli-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ece47d672db52ac607a3d9599a9d48dcb2f2f735c6c2d1f34130085bb12b112a"}, + {file = "tomli-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6972ca9c9cc9f0acaa56a8ca1ff51e7af152a9f87fb64623e31d5c83700080ee"}, + {file = "tomli-2.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c954d2250168d28797dd4e3ac5cf812a406cd5a92674ee4c8f123c889786aa8e"}, + {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8dd28b3e155b80f4d54beb40a441d366adcfe740969820caf156c019fb5c7ec4"}, + {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e59e304978767a54663af13c07b3d1af22ddee3bb2fb0618ca1593e4f593a106"}, + {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:33580bccab0338d00994d7f16f4c4ec25b776af3ffaac1ed74e0b3fc95e885a8"}, + {file = "tomli-2.2.1-cp311-cp311-win32.whl", hash = "sha256:465af0e0875402f1d226519c9904f37254b3045fc5084697cefb9bdde1ff99ff"}, + {file = "tomli-2.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:2d0f2fdd22b02c6d81637a3c95f8cd77f995846af7414c5c4b8d0545afa1bc4b"}, + {file = "tomli-2.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4a8f6e44de52d5e6c657c9fe83b562f5f4256d8ebbfe4ff922c495620a7f6cea"}, + {file = "tomli-2.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8d57ca8095a641b8237d5b079147646153d22552f1c637fd3ba7f4b0b29167a8"}, + {file = "tomli-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e340144ad7ae1533cb897d406382b4b6fede8890a03738ff1683af800d54192"}, + {file = "tomli-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db2b95f9de79181805df90bedc5a5ab4c165e6ec3fe99f970d0e302f384ad222"}, + {file = "tomli-2.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40741994320b232529c802f8bc86da4e1aa9f413db394617b9a256ae0f9a7f77"}, + {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:400e720fe168c0f8521520190686ef8ef033fb19fc493da09779e592861b78c6"}, + {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:02abe224de6ae62c19f090f68da4e27b10af2b93213d36cf44e6e1c5abd19fdd"}, + {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b82ebccc8c8a36f2094e969560a1b836758481f3dc360ce9a3277c65f374285e"}, + {file = "tomli-2.2.1-cp312-cp312-win32.whl", hash = "sha256:889f80ef92701b9dbb224e49ec87c645ce5df3fa2cc548664eb8a25e03127a98"}, + {file = "tomli-2.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:7fc04e92e1d624a4a63c76474610238576942d6b8950a2d7f908a340494e67e4"}, + {file = "tomli-2.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f4039b9cbc3048b2416cc57ab3bda989a6fcf9b36cf8937f01a6e731b64f80d7"}, + {file = "tomli-2.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:286f0ca2ffeeb5b9bd4fcc8d6c330534323ec51b2f52da063b11c502da16f30c"}, + {file = "tomli-2.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a92ef1a44547e894e2a17d24e7557a5e85a9e1d0048b0b5e7541f76c5032cb13"}, + {file = "tomli-2.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9316dc65bed1684c9a98ee68759ceaed29d229e985297003e494aa825ebb0281"}, + {file = "tomli-2.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e85e99945e688e32d5a35c1ff38ed0b3f41f43fad8df0bdf79f72b2ba7bc5272"}, + {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ac065718db92ca818f8d6141b5f66369833d4a80a9d74435a268c52bdfa73140"}, + {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:d920f33822747519673ee656a4b6ac33e382eca9d331c87770faa3eef562aeb2"}, + {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a198f10c4d1b1375d7687bc25294306e551bf1abfa4eace6650070a5c1ae2744"}, + {file = "tomli-2.2.1-cp313-cp313-win32.whl", hash = "sha256:d3f5614314d758649ab2ab3a62d4f2004c825922f9e370b29416484086b264ec"}, + {file = "tomli-2.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:a38aa0308e754b0e3c67e344754dff64999ff9b513e691d0e786265c93583c69"}, + {file = "tomli-2.2.1-py3-none-any.whl", hash = "sha256:cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc"}, + {file = "tomli-2.2.1.tar.gz", hash = "sha256:cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff"}, ] [[package]] @@ -835,4 +895,4 @@ files = [ [metadata] lock-version = "2.0" python-versions = ">=3.10,<3.14" -content-hash = "225a12c74e0d396a4410b06afafda668ada5fd17766f9957760b748777659330" +content-hash = "1d9c49d01d3718031018269d63c26ff2034905573e363c24a135bacb06b5f390" diff --git a/pydantic_numpy/__init__.py b/pydantic_numpy/__init__.py index bac44f7..a5b3afb 100644 --- a/pydantic_numpy/__init__.py +++ b/pydantic_numpy/__init__.py @@ -1,4 +1,3 @@ from pydantic_numpy.helper.annotation import np_array_pydantic_annotated_typing -from pydantic_numpy.typing.n_dimensional import * __all__ = ["np_array_pydantic_annotated_typing", "model", "typing"] diff --git a/pydantic_numpy/helper/annotation.py b/pydantic_numpy/helper/annotation.py index d0488c1..1cc8fe9 100644 --- a/pydantic_numpy/helper/annotation.py +++ b/pydantic_numpy/helper/annotation.py @@ -1,6 +1,6 @@ from collections.abc import Sequence from pathlib import Path -from typing import Any, Callable, ClassVar, Iterable, Optional, Union +from typing import Any, Callable, ClassVar, Iterable, Optional, Union, cast import numpy as np import numpy.typing as npt @@ -55,12 +55,12 @@ def pd_np_native_numpy_array_to_data_dict_serializer(array_like: npt.ArrayLike) """ array = np.array(array_like) - if issubclass(array.dtype.type, np.timedelta64) or issubclass(array.dtype.type, np.datetime64): - data = array.astype(int).tolist() - else: - data = array.astype(float).tolist() + data = array.astype( + int if issubclass(array.dtype.type, np.timedelta64) or issubclass(array.dtype.type, np.datetime64) else float + ).tolist() + cast_data = cast(list, data) - return NumpyArrayTypeData(data_type=str(array.dtype), data=data) + return NumpyArrayTypeData(data_type=str(array.dtype), data=cast_data) def pd_np_native_numpy_array_json_schema_from_type_data( diff --git a/pydantic_numpy/typing/__init__.py b/pydantic_numpy/typing/__init__.py index 19d9d34..0e7b88c 100644 --- a/pydantic_numpy/typing/__init__.py +++ b/pydantic_numpy/typing/__init__.py @@ -1,8 +1,4 @@ -from pydantic_numpy.typing.i_dimensional import * -from pydantic_numpy.typing.ii_dimensional import * -from pydantic_numpy.typing.iii_dimensional import * -from pydantic_numpy.typing.n_dimensional import * -from pydantic_numpy.typing.strict_data_type.i_dimensional import * -from pydantic_numpy.typing.strict_data_type.ii_dimensional import * -from pydantic_numpy.typing.strict_data_type.iii_dimensional import * -from pydantic_numpy.typing.strict_data_type.n_dimensional import * +from pydantic_numpy.typing.type_safe.i_dimensional import * +from pydantic_numpy.typing.type_safe.ii_dimensional import * +from pydantic_numpy.typing.type_safe.iii_dimensional import * +from pydantic_numpy.typing.type_safe.n_dimensional import * diff --git a/pydantic_numpy/typing/strict_data_type/__init__.py b/pydantic_numpy/typing/type_safe/__init__.py similarity index 100% rename from pydantic_numpy/typing/strict_data_type/__init__.py rename to pydantic_numpy/typing/type_safe/__init__.py diff --git a/pydantic_numpy/typing/strict_data_type/i_dimensional.py b/pydantic_numpy/typing/type_safe/i_dimensional.py similarity index 67% rename from pydantic_numpy/typing/strict_data_type/i_dimensional.py rename to pydantic_numpy/typing/type_safe/i_dimensional.py index 056f6f2..503ad67 100644 --- a/pydantic_numpy/typing/strict_data_type/i_dimensional.py +++ b/pydantic_numpy/typing/type_safe/i_dimensional.py @@ -1,116 +1,122 @@ -from typing import Annotated +from typing import Annotated, Any, TypeAlias import numpy as np from pydantic_numpy.helper.annotation import NpArrayPydanticAnnotation -NpStrict1DArrayInt64 = Annotated[ +Np1DArray: TypeAlias = Annotated[ + np.ndarray[tuple[int], np.dtype[Any]], + NpArrayPydanticAnnotation.factory(data_type=None, dimensions=1, strict_data_typing=False), +] + +Np1DArrayInt64: TypeAlias = Annotated[ np.ndarray[tuple[int], np.dtype[np.int64]], NpArrayPydanticAnnotation.factory(data_type=np.int64, dimensions=1, strict_data_typing=True), ] -NpStrict1DArrayInt32 = Annotated[ +Np1DArrayInt32: TypeAlias = Annotated[ np.ndarray[tuple[int], np.dtype[np.int32]], NpArrayPydanticAnnotation.factory(data_type=np.int32, dimensions=1, strict_data_typing=True), ] -NpStrict1DArrayInt16 = Annotated[ +Np1DArrayInt16: TypeAlias = Annotated[ np.ndarray[tuple[int], np.dtype[np.int16]], NpArrayPydanticAnnotation.factory(data_type=np.int16, dimensions=1, strict_data_typing=True), ] -NpStrict1DArrayInt8 = Annotated[ +Np1DArrayInt8: TypeAlias = Annotated[ np.ndarray[tuple[int], np.dtype[np.int8]], NpArrayPydanticAnnotation.factory(data_type=np.int8, dimensions=1, strict_data_typing=True), ] -NpStrict1DArrayUint64 = Annotated[ +Np1DArrayUint64: TypeAlias = Annotated[ np.ndarray[tuple[int], np.dtype[np.uint64]], NpArrayPydanticAnnotation.factory(data_type=np.uint64, dimensions=1, strict_data_typing=True), ] -NpStrict1DArrayUint32 = Annotated[ +Np1DArrayUint32: TypeAlias = Annotated[ np.ndarray[tuple[int], np.dtype[np.uint32]], NpArrayPydanticAnnotation.factory(data_type=np.uint32, dimensions=1, strict_data_typing=True), ] -NpStrict1DArrayUint16 = Annotated[ +Np1DArrayUint16: TypeAlias = Annotated[ np.ndarray[tuple[int], np.dtype[np.uint16]], NpArrayPydanticAnnotation.factory(data_type=np.uint16, dimensions=1, strict_data_typing=True), ] -NpStrict1DArrayUint8 = Annotated[ +Np1DArrayUint8: TypeAlias = Annotated[ np.ndarray[tuple[int], np.dtype[np.uint8]], NpArrayPydanticAnnotation.factory(data_type=np.uint8, dimensions=1, strict_data_typing=True), ] -NpStrict1DArrayFpLongDouble = Annotated[ +Np1DArrayFpLongDouble: TypeAlias = Annotated[ np.ndarray[tuple[int], np.dtype[np.longdouble]], NpArrayPydanticAnnotation.factory(data_type=np.longdouble, dimensions=1, strict_data_typing=True), ] -NpStrict1DArrayFp64 = Annotated[ +Np1DArrayFp64: TypeAlias = Annotated[ np.ndarray[tuple[int], np.dtype[np.float64]], NpArrayPydanticAnnotation.factory(data_type=np.float64, dimensions=1, strict_data_typing=True), ] -NpStrict1DArrayFp32 = Annotated[ +Np1DArrayFp32: TypeAlias = Annotated[ np.ndarray[tuple[int], np.dtype[np.float32]], NpArrayPydanticAnnotation.factory(data_type=np.float32, dimensions=1, strict_data_typing=True), ] -NpStrict1DArrayFp16 = Annotated[ +Np1DArrayFp16: TypeAlias = Annotated[ np.ndarray[tuple[int], np.dtype[np.float16]], NpArrayPydanticAnnotation.factory(data_type=np.float16, dimensions=1, strict_data_typing=True), ] -NpStrict1DArrayComplexLongDouble = Annotated[ +Np1DArrayComplexLongDouble: TypeAlias = Annotated[ np.ndarray[tuple[int], np.dtype[np.clongdouble]], NpArrayPydanticAnnotation.factory(data_type=np.clongdouble, dimensions=1, strict_data_typing=True), ] -NpStrict1DArrayComplex128 = Annotated[ +Np1DArrayComplex128: TypeAlias = Annotated[ np.ndarray[tuple[int], np.dtype[np.complex128]], NpArrayPydanticAnnotation.factory(data_type=np.complex128, dimensions=1, strict_data_typing=True), ] -NpStrict1DArrayComplex64 = Annotated[ +Np1DArrayComplex64: TypeAlias = Annotated[ np.ndarray[tuple[int], np.dtype[np.complex64]], NpArrayPydanticAnnotation.factory(data_type=np.complex64, dimensions=1, strict_data_typing=True), ] -NpStrict1DArrayBool = Annotated[ +Np1DArrayBool: TypeAlias = Annotated[ np.ndarray[tuple[int], np.dtype[np.bool_]], NpArrayPydanticAnnotation.factory(data_type=np.bool_, dimensions=1, strict_data_typing=True), ] -NpStrict1DArrayDatetime64 = Annotated[ +Np1DArrayDatetime64: TypeAlias = Annotated[ np.ndarray[tuple[int], np.dtype[np.datetime64]], NpArrayPydanticAnnotation.factory(data_type=np.datetime64, dimensions=1, strict_data_typing=True), ] -NpStrict1DArrayTimedelta64 = Annotated[ +Np1DArrayTimedelta64: TypeAlias = Annotated[ np.ndarray[tuple[int], np.dtype[np.timedelta64]], NpArrayPydanticAnnotation.factory(data_type=np.timedelta64, dimensions=1, strict_data_typing=True), ] __all__ = [ - "NpStrict1DArrayInt64", - "NpStrict1DArrayInt32", - "NpStrict1DArrayInt16", - "NpStrict1DArrayInt8", - "NpStrict1DArrayUint64", - "NpStrict1DArrayUint32", - "NpStrict1DArrayUint16", - "NpStrict1DArrayUint8", - "NpStrict1DArrayFpLongDouble", - "NpStrict1DArrayFp64", - "NpStrict1DArrayFp32", - "NpStrict1DArrayFp16", - "NpStrict1DArrayComplexLongDouble", - "NpStrict1DArrayComplex128", - "NpStrict1DArrayComplex64", - "NpStrict1DArrayBool", - "NpStrict1DArrayDatetime64", - "NpStrict1DArrayTimedelta64", + "Np1DArray", + "Np1DArrayInt64", + "Np1DArrayInt32", + "Np1DArrayInt16", + "Np1DArrayInt8", + "Np1DArrayUint64", + "Np1DArrayUint32", + "Np1DArrayUint16", + "Np1DArrayUint8", + "Np1DArrayFpLongDouble", + "Np1DArrayFp64", + "Np1DArrayFp32", + "Np1DArrayFp16", + "Np1DArrayComplexLongDouble", + "Np1DArrayComplex128", + "Np1DArrayComplex64", + "Np1DArrayBool", + "Np1DArrayDatetime64", + "Np1DArrayTimedelta64", ] diff --git a/pydantic_numpy/typing/strict_data_type/ii_dimensional.py b/pydantic_numpy/typing/type_safe/ii_dimensional.py similarity index 67% rename from pydantic_numpy/typing/strict_data_type/ii_dimensional.py rename to pydantic_numpy/typing/type_safe/ii_dimensional.py index 6f07236..068e7d0 100644 --- a/pydantic_numpy/typing/strict_data_type/ii_dimensional.py +++ b/pydantic_numpy/typing/type_safe/ii_dimensional.py @@ -1,116 +1,122 @@ -from typing import Annotated +from typing import Annotated, Any, TypeAlias import numpy as np from pydantic_numpy.helper.annotation import NpArrayPydanticAnnotation -NpStrict2DArrayInt64 = Annotated[ +Np2DArray: TypeAlias = Annotated[ + np.ndarray[tuple[int, int], np.dtype[Any]], + NpArrayPydanticAnnotation.factory(data_type=None, dimensions=2, strict_data_typing=False), +] + +Np2DArrayInt64: TypeAlias = Annotated[ np.ndarray[tuple[int, int], np.dtype[np.int64]], NpArrayPydanticAnnotation.factory(data_type=np.int64, dimensions=2, strict_data_typing=True), ] -NpStrict2DArrayInt32 = Annotated[ +Np2DArrayInt32: TypeAlias = Annotated[ np.ndarray[tuple[int, int], np.dtype[np.int32]], NpArrayPydanticAnnotation.factory(data_type=np.int32, dimensions=2, strict_data_typing=True), ] -NpStrict2DArrayInt16 = Annotated[ +Np2DArrayInt16: TypeAlias = Annotated[ np.ndarray[tuple[int, int], np.dtype[np.int16]], NpArrayPydanticAnnotation.factory(data_type=np.int16, dimensions=2, strict_data_typing=True), ] -NpStrict2DArrayInt8 = Annotated[ +Np2DArrayInt8: TypeAlias = Annotated[ np.ndarray[tuple[int, int], np.dtype[np.int8]], NpArrayPydanticAnnotation.factory(data_type=np.int8, dimensions=2, strict_data_typing=True), ] -NpStrict2DArrayUint64 = Annotated[ +Np2DArrayUint64: TypeAlias = Annotated[ np.ndarray[tuple[int, int], np.dtype[np.uint64]], NpArrayPydanticAnnotation.factory(data_type=np.uint64, dimensions=2, strict_data_typing=True), ] -NpStrict2DArrayUint32 = Annotated[ +Np2DArrayUint32: TypeAlias = Annotated[ np.ndarray[tuple[int, int], np.dtype[np.uint32]], NpArrayPydanticAnnotation.factory(data_type=np.uint32, dimensions=2, strict_data_typing=True), ] -NpStrict2DArrayUint16 = Annotated[ +Np2DArrayUint16: TypeAlias = Annotated[ np.ndarray[tuple[int, int], np.dtype[np.uint16]], NpArrayPydanticAnnotation.factory(data_type=np.uint16, dimensions=2, strict_data_typing=True), ] -NpStrict2DArrayUint8 = Annotated[ +Np2DArrayUint8: TypeAlias = Annotated[ np.ndarray[tuple[int, int], np.dtype[np.uint8]], NpArrayPydanticAnnotation.factory(data_type=np.uint8, dimensions=2, strict_data_typing=True), ] -NpStrict2DArrayFpLongDouble = Annotated[ +Np2DArrayFpLongDouble: TypeAlias = Annotated[ np.ndarray[tuple[int, int], np.dtype[np.longdouble]], NpArrayPydanticAnnotation.factory(data_type=np.longdouble, dimensions=2, strict_data_typing=True), ] -NpStrict2DArrayFp64 = Annotated[ +Np2DArrayFp64: TypeAlias = Annotated[ np.ndarray[tuple[int, int], np.dtype[np.float64]], NpArrayPydanticAnnotation.factory(data_type=np.float64, dimensions=2, strict_data_typing=True), ] -NpStrict2DArrayFp32 = Annotated[ +Np2DArrayFp32: TypeAlias = Annotated[ np.ndarray[tuple[int, int], np.dtype[np.float32]], NpArrayPydanticAnnotation.factory(data_type=np.float32, dimensions=2, strict_data_typing=True), ] -NpStrict2DArrayFp16 = Annotated[ +Np2DArrayFp16: TypeAlias = Annotated[ np.ndarray[tuple[int, int], np.dtype[np.float16]], NpArrayPydanticAnnotation.factory(data_type=np.float16, dimensions=2, strict_data_typing=True), ] -NpStrict2DArrayComplexLongDouble = Annotated[ +Np2DArrayComplexLongDouble: TypeAlias = Annotated[ np.ndarray[tuple[int, int], np.dtype[np.clongdouble]], NpArrayPydanticAnnotation.factory(data_type=np.clongdouble, dimensions=2, strict_data_typing=True), ] -NpStrict2DArrayComplex128 = Annotated[ +Np2DArrayComplex128: TypeAlias = Annotated[ np.ndarray[tuple[int, int], np.dtype[np.complex128]], NpArrayPydanticAnnotation.factory(data_type=np.complex128, dimensions=2, strict_data_typing=True), ] -NpStrict2DArrayComplex64 = Annotated[ +Np2DArrayComplex64: TypeAlias = Annotated[ np.ndarray[tuple[int, int], np.dtype[np.complex64]], NpArrayPydanticAnnotation.factory(data_type=np.complex64, dimensions=2, strict_data_typing=True), ] -NpStrict2DArrayBool = Annotated[ +Np2DArrayBool: TypeAlias = Annotated[ np.ndarray[tuple[int, int], np.dtype[np.bool_]], NpArrayPydanticAnnotation.factory(data_type=np.bool_, dimensions=2, strict_data_typing=True), ] -NpStrict2DArrayDatetime64 = Annotated[ +Np2DArrayDatetime64: TypeAlias = Annotated[ np.ndarray[tuple[int, int], np.dtype[np.datetime64]], NpArrayPydanticAnnotation.factory(data_type=np.datetime64, dimensions=2, strict_data_typing=True), ] -NpStrict2DArrayTimedelta64 = Annotated[ +Np2DArrayTimedelta64: TypeAlias = Annotated[ np.ndarray[tuple[int, int], np.dtype[np.timedelta64]], NpArrayPydanticAnnotation.factory(data_type=np.timedelta64, dimensions=2, strict_data_typing=True), ] __all__ = [ - "NpStrict2DArrayInt64", - "NpStrict2DArrayInt32", - "NpStrict2DArrayInt16", - "NpStrict2DArrayInt8", - "NpStrict2DArrayUint64", - "NpStrict2DArrayUint32", - "NpStrict2DArrayUint16", - "NpStrict2DArrayUint8", - "NpStrict2DArrayFpLongDouble", - "NpStrict2DArrayFp64", - "NpStrict2DArrayFp32", - "NpStrict2DArrayFp16", - "NpStrict2DArrayComplexLongDouble", - "NpStrict2DArrayComplex128", - "NpStrict2DArrayComplex64", - "NpStrict2DArrayBool", - "NpStrict2DArrayDatetime64", - "NpStrict2DArrayTimedelta64", + "Np2DArray", + "Np2DArrayInt64", + "Np2DArrayInt32", + "Np2DArrayInt16", + "Np2DArrayInt8", + "Np2DArrayUint64", + "Np2DArrayUint32", + "Np2DArrayUint16", + "Np2DArrayUint8", + "Np2DArrayFpLongDouble", + "Np2DArrayFp64", + "Np2DArrayFp32", + "Np2DArrayFp16", + "Np2DArrayComplexLongDouble", + "Np2DArrayComplex128", + "Np2DArrayComplex64", + "Np2DArrayBool", + "Np2DArrayDatetime64", + "Np2DArrayTimedelta64", ] diff --git a/pydantic_numpy/typing/strict_data_type/iii_dimensional.py b/pydantic_numpy/typing/type_safe/iii_dimensional.py similarity index 68% rename from pydantic_numpy/typing/strict_data_type/iii_dimensional.py rename to pydantic_numpy/typing/type_safe/iii_dimensional.py index 89314bc..b6b83f8 100644 --- a/pydantic_numpy/typing/strict_data_type/iii_dimensional.py +++ b/pydantic_numpy/typing/type_safe/iii_dimensional.py @@ -1,116 +1,122 @@ -from typing import Annotated +from typing import Annotated, Any, TypeAlias import numpy as np from pydantic_numpy.helper.annotation import NpArrayPydanticAnnotation -NpStrict3DArrayInt64 = Annotated[ +Np3DArray: TypeAlias = Annotated[ + np.ndarray[tuple[int, int, int], np.dtype[Any]], + NpArrayPydanticAnnotation.factory(data_type=None, dimensions=3, strict_data_typing=False), +] + +Np3DArrayInt64: TypeAlias = Annotated[ np.ndarray[tuple[int, int, int], np.dtype[np.int64]], NpArrayPydanticAnnotation.factory(data_type=np.int64, dimensions=3, strict_data_typing=True), ] -NpStrict3DArrayInt32 = Annotated[ +Np3DArrayInt32: TypeAlias = Annotated[ np.ndarray[tuple[int, int, int], np.dtype[np.int32]], NpArrayPydanticAnnotation.factory(data_type=np.int32, dimensions=3, strict_data_typing=True), ] -NpStrict3DArrayInt16 = Annotated[ +Np3DArrayInt16: TypeAlias = Annotated[ np.ndarray[tuple[int, int, int], np.dtype[np.int16]], NpArrayPydanticAnnotation.factory(data_type=np.int16, dimensions=3, strict_data_typing=True), ] -NpStrict3DArrayInt8 = Annotated[ +Np3DArrayInt8: TypeAlias = Annotated[ np.ndarray[tuple[int, int, int], np.dtype[np.int8]], NpArrayPydanticAnnotation.factory(data_type=np.int8, dimensions=3, strict_data_typing=True), ] -NpStrict3DArrayUint64 = Annotated[ +Np3DArrayUint64: TypeAlias = Annotated[ np.ndarray[tuple[int, int, int], np.dtype[np.uint64]], NpArrayPydanticAnnotation.factory(data_type=np.uint64, dimensions=3, strict_data_typing=True), ] -NpStrict3DArrayUint32 = Annotated[ +Np3DArrayUint32: TypeAlias = Annotated[ np.ndarray[tuple[int, int, int], np.dtype[np.uint32]], NpArrayPydanticAnnotation.factory(data_type=np.uint32, dimensions=3, strict_data_typing=True), ] -NpStrict3DArrayUint16 = Annotated[ +Np3DArrayUint16: TypeAlias = Annotated[ np.ndarray[tuple[int, int, int], np.dtype[np.uint16]], NpArrayPydanticAnnotation.factory(data_type=np.uint16, dimensions=3, strict_data_typing=True), ] -NpStrict3DArrayUint8 = Annotated[ +Np3DArrayUint8: TypeAlias = Annotated[ np.ndarray[tuple[int, int, int], np.dtype[np.uint8]], NpArrayPydanticAnnotation.factory(data_type=np.uint8, dimensions=3, strict_data_typing=True), ] -NpStrict3DArrayFpLongDouble = Annotated[ +Np3DArrayFpLongDouble: TypeAlias = Annotated[ np.ndarray[tuple[int, int, int], np.dtype[np.longdouble]], NpArrayPydanticAnnotation.factory(data_type=np.longdouble, dimensions=3, strict_data_typing=True), ] -NpStrict3DArrayFp64 = Annotated[ +Np3DArrayFp64: TypeAlias = Annotated[ np.ndarray[tuple[int, int, int], np.dtype[np.float64]], NpArrayPydanticAnnotation.factory(data_type=np.float64, dimensions=3, strict_data_typing=True), ] -NpStrict3DArrayFp32 = Annotated[ +Np3DArrayFp32: TypeAlias = Annotated[ np.ndarray[tuple[int, int, int], np.dtype[np.float32]], NpArrayPydanticAnnotation.factory(data_type=np.float32, dimensions=3, strict_data_typing=True), ] -NpStrict3DArrayFp16 = Annotated[ +Np3DArrayFp16: TypeAlias = Annotated[ np.ndarray[tuple[int, int, int], np.dtype[np.float16]], NpArrayPydanticAnnotation.factory(data_type=np.float16, dimensions=3, strict_data_typing=True), ] -NpStrict3DArrayComplexLongDouble = Annotated[ +Np3DArrayComplexLongDouble: TypeAlias = Annotated[ np.ndarray[tuple[int, int, int], np.dtype[np.clongdouble]], NpArrayPydanticAnnotation.factory(data_type=np.clongdouble, dimensions=3, strict_data_typing=True), ] -NpStrict3DArrayComplex128 = Annotated[ +Np3DArrayComplex128: TypeAlias = Annotated[ np.ndarray[tuple[int, int, int], np.dtype[np.complex128]], NpArrayPydanticAnnotation.factory(data_type=np.complex128, dimensions=3, strict_data_typing=True), ] -NpStrict3DArrayComplex64 = Annotated[ +Np3DArrayComplex64: TypeAlias = Annotated[ np.ndarray[tuple[int, int, int], np.dtype[np.complex64]], NpArrayPydanticAnnotation.factory(data_type=np.complex64, dimensions=3, strict_data_typing=True), ] -NpStrict3DArrayBool = Annotated[ +Np3DArrayBool: TypeAlias = Annotated[ np.ndarray[tuple[int, int, int], np.dtype[np.bool_]], NpArrayPydanticAnnotation.factory(data_type=np.bool_, dimensions=3, strict_data_typing=True), ] -NpStrict3DArrayDatetime64 = Annotated[ +Np3DArrayDatetime64: TypeAlias = Annotated[ np.ndarray[tuple[int, int, int], np.dtype[np.datetime64]], NpArrayPydanticAnnotation.factory(data_type=np.datetime64, dimensions=3, strict_data_typing=True), ] -NpStrict3DArrayTimedelta64 = Annotated[ +Np3DArrayTimedelta64: TypeAlias = Annotated[ np.ndarray[tuple[int, int, int], np.dtype[np.timedelta64]], NpArrayPydanticAnnotation.factory(data_type=np.timedelta64, dimensions=3, strict_data_typing=True), ] __all__ = [ - "NpStrict3DArrayInt64", - "NpStrict3DArrayInt32", - "NpStrict3DArrayInt16", - "NpStrict3DArrayInt8", - "NpStrict3DArrayUint64", - "NpStrict3DArrayUint32", - "NpStrict3DArrayUint16", - "NpStrict3DArrayUint8", - "NpStrict3DArrayFpLongDouble", - "NpStrict3DArrayFp64", - "NpStrict3DArrayFp32", - "NpStrict3DArrayFp16", - "NpStrict3DArrayComplexLongDouble", - "NpStrict3DArrayComplex128", - "NpStrict3DArrayComplex64", - "NpStrict3DArrayBool", - "NpStrict3DArrayDatetime64", - "NpStrict3DArrayTimedelta64", + "Np3DArray", + "Np3DArrayInt64", + "Np3DArrayInt32", + "Np3DArrayInt16", + "Np3DArrayInt8", + "Np3DArrayUint64", + "Np3DArrayUint32", + "Np3DArrayUint16", + "Np3DArrayUint8", + "Np3DArrayFpLongDouble", + "Np3DArrayFp64", + "Np3DArrayFp32", + "Np3DArrayFp16", + "Np3DArrayComplexLongDouble", + "Np3DArrayComplex128", + "Np3DArrayComplex64", + "Np3DArrayBool", + "Np3DArrayDatetime64", + "Np3DArrayTimedelta64", ] diff --git a/pydantic_numpy/typing/strict_data_type/n_dimensional.py b/pydantic_numpy/typing/type_safe/n_dimensional.py similarity index 66% rename from pydantic_numpy/typing/strict_data_type/n_dimensional.py rename to pydantic_numpy/typing/type_safe/n_dimensional.py index 500471c..a58a4ec 100644 --- a/pydantic_numpy/typing/strict_data_type/n_dimensional.py +++ b/pydantic_numpy/typing/type_safe/n_dimensional.py @@ -1,116 +1,122 @@ -from typing import Annotated, Any +from typing import Annotated, Any, TypeAlias import numpy as np from pydantic_numpy.helper.annotation import NpArrayPydanticAnnotation -NpStrictNDArrayInt64 = Annotated[ +NpNDArray: TypeAlias = Annotated[ + np.ndarray[Any, np.dtype[Any]], + NpArrayPydanticAnnotation.factory(data_type=None, dimensions=None, strict_data_typing=False), +] + +NpNDArrayInt64: TypeAlias = Annotated[ np.ndarray[Any, np.dtype[np.int64]], NpArrayPydanticAnnotation.factory(data_type=np.int64, dimensions=None, strict_data_typing=True), ] -NpStrictNDArrayInt32 = Annotated[ +NpNDArrayInt32: TypeAlias = Annotated[ np.ndarray[Any, np.dtype[np.int32]], NpArrayPydanticAnnotation.factory(data_type=np.int32, dimensions=None, strict_data_typing=True), ] -NpStrictNDArrayInt16 = Annotated[ +NpNDArrayInt16: TypeAlias = Annotated[ np.ndarray[Any, np.dtype[np.int16]], NpArrayPydanticAnnotation.factory(data_type=np.int16, dimensions=None, strict_data_typing=True), ] -NpStrictNDArrayInt8 = Annotated[ +NpNDArrayInt8: TypeAlias = Annotated[ np.ndarray[Any, np.dtype[np.int8]], NpArrayPydanticAnnotation.factory(data_type=np.int8, dimensions=None, strict_data_typing=True), ] -NpStrictNDArrayUint64 = Annotated[ +NpNDArrayUint64: TypeAlias = Annotated[ np.ndarray[Any, np.dtype[np.uint64]], NpArrayPydanticAnnotation.factory(data_type=np.uint64, dimensions=None, strict_data_typing=True), ] -NpStrictNDArrayUint32 = Annotated[ +NpNDArrayUint32: TypeAlias = Annotated[ np.ndarray[Any, np.dtype[np.uint32]], NpArrayPydanticAnnotation.factory(data_type=np.uint32, dimensions=None, strict_data_typing=True), ] -NpStrictNDArrayUint16 = Annotated[ +NpNDArrayUint16: TypeAlias = Annotated[ np.ndarray[Any, np.dtype[np.uint16]], NpArrayPydanticAnnotation.factory(data_type=np.uint16, dimensions=None, strict_data_typing=True), ] -NpStrictNDArrayUint8 = Annotated[ +NpNDArrayUint8: TypeAlias = Annotated[ np.ndarray[Any, np.dtype[np.uint8]], NpArrayPydanticAnnotation.factory(data_type=np.uint8, dimensions=None, strict_data_typing=True), ] -NpStrictNDArrayFpLongDouble = Annotated[ +NpNDArrayFpLongDouble: TypeAlias = Annotated[ np.ndarray[Any, np.dtype[np.longdouble]], NpArrayPydanticAnnotation.factory(data_type=np.longdouble, dimensions=None, strict_data_typing=True), ] -NpStrictNDArrayFp64 = Annotated[ +NpNDArrayFp64: TypeAlias = Annotated[ np.ndarray[Any, np.dtype[np.float64]], NpArrayPydanticAnnotation.factory(data_type=np.float64, dimensions=None, strict_data_typing=True), ] -NpStrictNDArrayFp32 = Annotated[ +NpNDArrayFp32: TypeAlias = Annotated[ np.ndarray[Any, np.dtype[np.float32]], NpArrayPydanticAnnotation.factory(data_type=np.float32, dimensions=None, strict_data_typing=True), ] -NpStrictNDArrayFp16 = Annotated[ +NpNDArrayFp16: TypeAlias = Annotated[ np.ndarray[Any, np.dtype[np.float16]], NpArrayPydanticAnnotation.factory(data_type=np.float16, dimensions=None, strict_data_typing=True), ] -NpStrictNDArrayComplexLongDouble = Annotated[ +NpNDArrayComplexLongDouble: TypeAlias = Annotated[ np.ndarray[Any, np.dtype[np.clongdouble]], NpArrayPydanticAnnotation.factory(data_type=np.clongdouble, dimensions=None, strict_data_typing=True), ] -NpStrictNDArrayComplex128 = Annotated[ +NpNDArrayComplex128: TypeAlias = Annotated[ np.ndarray[Any, np.dtype[np.complex128]], NpArrayPydanticAnnotation.factory(data_type=np.complex128, dimensions=None, strict_data_typing=True), ] -NpStrictNDArrayComplex64 = Annotated[ +NpNDArrayComplex64: TypeAlias = Annotated[ np.ndarray[Any, np.dtype[np.complex64]], NpArrayPydanticAnnotation.factory(data_type=np.complex64, dimensions=None, strict_data_typing=True), ] -NpStrictNDArrayBool = Annotated[ +NpNDArrayBool: TypeAlias = Annotated[ np.ndarray[Any, np.dtype[np.bool_]], NpArrayPydanticAnnotation.factory(data_type=np.bool_, dimensions=None, strict_data_typing=True), ] -NpStrictNDArrayDatetime64 = Annotated[ +NpNDArrayDatetime64: TypeAlias = Annotated[ np.ndarray[Any, np.dtype[np.datetime64]], NpArrayPydanticAnnotation.factory(data_type=np.datetime64, dimensions=None, strict_data_typing=True), ] -NpStrictNDArrayTimedelta64 = Annotated[ +NpNDArrayTimedelta64: TypeAlias = Annotated[ np.ndarray[Any, np.dtype[np.timedelta64]], NpArrayPydanticAnnotation.factory(data_type=np.timedelta64, dimensions=None, strict_data_typing=True), ] __all__ = [ - "NpStrictNDArrayInt64", - "NpStrictNDArrayInt32", - "NpStrictNDArrayInt16", - "NpStrictNDArrayInt8", - "NpStrictNDArrayUint64", - "NpStrictNDArrayUint32", - "NpStrictNDArrayUint16", - "NpStrictNDArrayUint8", - "NpStrictNDArrayFpLongDouble", - "NpStrictNDArrayFp64", - "NpStrictNDArrayFp32", - "NpStrictNDArrayFp16", - "NpStrictNDArrayComplexLongDouble", - "NpStrictNDArrayComplex128", - "NpStrictNDArrayComplex64", - "NpStrictNDArrayBool", - "NpStrictNDArrayDatetime64", - "NpStrictNDArrayTimedelta64", + "NpNDArray", + "NpNDArrayInt64", + "NpNDArrayInt32", + "NpNDArrayInt16", + "NpNDArrayInt8", + "NpNDArrayUint64", + "NpNDArrayUint32", + "NpNDArrayUint16", + "NpNDArrayUint8", + "NpNDArrayFpLongDouble", + "NpNDArrayFp64", + "NpNDArrayFp32", + "NpNDArrayFp16", + "NpNDArrayComplexLongDouble", + "NpNDArrayComplex128", + "NpNDArrayComplex64", + "NpNDArrayBool", + "NpNDArrayDatetime64", + "NpNDArrayTimedelta64", ] diff --git a/pydantic_numpy/typing/with_loader/__init__.py b/pydantic_numpy/typing/with_loader/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/pydantic_numpy/typing/i_dimensional.py b/pydantic_numpy/typing/with_loader/i_dimensional.py similarity index 71% rename from pydantic_numpy/typing/i_dimensional.py rename to pydantic_numpy/typing/with_loader/i_dimensional.py index 5740134..a648128 100644 --- a/pydantic_numpy/typing/i_dimensional.py +++ b/pydantic_numpy/typing/with_loader/i_dimensional.py @@ -1,4 +1,4 @@ -from typing import Annotated, Any, Union +from typing import Annotated, Any, TypeAlias, Union import numpy as np from pydantic import FilePath @@ -6,119 +6,119 @@ from pydantic_numpy.helper.annotation import NpArrayPydanticAnnotation from pydantic_numpy.model import MultiArrayNumpyFile -Np1DArray = Annotated[ +NpLoading1DArray: TypeAlias = Annotated[ Union[np.ndarray[tuple[int], np.dtype[Any]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=None, dimensions=1, strict_data_typing=False), ] -Np1DArrayInt64 = Annotated[ +NpLoading1DArrayInt64: TypeAlias = Annotated[ Union[np.ndarray[tuple[int], np.dtype[np.int64]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.int64, dimensions=1, strict_data_typing=False), ] -Np1DArrayInt32 = Annotated[ +NpLoading1DArrayInt32: TypeAlias = Annotated[ Union[np.ndarray[tuple[int], np.dtype[np.int32]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.int32, dimensions=1, strict_data_typing=False), ] -Np1DArrayInt16 = Annotated[ +NpLoading1DArrayInt16: TypeAlias = Annotated[ Union[np.ndarray[tuple[int], np.dtype[np.int16]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.int16, dimensions=1, strict_data_typing=False), ] -Np1DArrayInt8 = Annotated[ +NpLoading1DArrayInt8: TypeAlias = Annotated[ Union[np.ndarray[tuple[int], np.dtype[np.int8]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.int8, dimensions=1, strict_data_typing=False), ] -Np1DArrayUint64 = Annotated[ +NpLoading1DArrayUint64: TypeAlias = Annotated[ Union[np.ndarray[tuple[int], np.dtype[np.uint64]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.uint64, dimensions=1, strict_data_typing=False), ] -Np1DArrayUint32 = Annotated[ +NpLoading1DArrayUint32: TypeAlias = Annotated[ Union[np.ndarray[tuple[int], np.dtype[np.uint32]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.uint32, dimensions=1, strict_data_typing=False), ] -Np1DArrayUint16 = Annotated[ +NpLoading1DArrayUint16: TypeAlias = Annotated[ Union[np.ndarray[tuple[int], np.dtype[np.uint16]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.uint16, dimensions=1, strict_data_typing=False), ] -Np1DArrayUint8 = Annotated[ +NpLoading1DArrayUint8: TypeAlias = Annotated[ Union[np.ndarray[tuple[int], np.dtype[np.uint8]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.uint8, dimensions=1, strict_data_typing=False), ] -Np1DArrayFpLongDouble = Annotated[ +NpLoading1DArrayFpLongDouble: TypeAlias = Annotated[ Union[np.ndarray[tuple[int], np.dtype[np.longdouble]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.longdouble, dimensions=1, strict_data_typing=False), ] -Np1DArrayFp64 = Annotated[ +NpLoading1DArrayFp64: TypeAlias = Annotated[ Union[np.ndarray[tuple[int], np.dtype[np.float64]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.float64, dimensions=1, strict_data_typing=False), ] -Np1DArrayFp32 = Annotated[ +NpLoading1DArrayFp32: TypeAlias = Annotated[ Union[np.ndarray[tuple[int], np.dtype[np.float32]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.float32, dimensions=1, strict_data_typing=False), ] -Np1DArrayFp16 = Annotated[ +NpLoading1DArrayFp16: TypeAlias = Annotated[ Union[np.ndarray[tuple[int], np.dtype[np.float16]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.float16, dimensions=1, strict_data_typing=False), ] -Np1DArrayComplexLongDouble = Annotated[ +NpLoading1DArrayComplexLongDouble: TypeAlias = Annotated[ Union[np.ndarray[tuple[int], np.dtype[np.clongdouble]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.clongdouble, dimensions=1, strict_data_typing=False), ] -Np1DArrayComplex128 = Annotated[ +NpLoading1DArrayComplex128: TypeAlias = Annotated[ Union[np.ndarray[tuple[int], np.dtype[np.complex128]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.complex128, dimensions=1, strict_data_typing=False), ] -Np1DArrayComplex64 = Annotated[ +NpLoading1DArrayComplex64: TypeAlias = Annotated[ Union[np.ndarray[tuple[int], np.dtype[np.complex64]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.complex64, dimensions=1, strict_data_typing=False), ] -Np1DArrayBool = Annotated[ +NpLoading1DArrayBool: TypeAlias = Annotated[ Union[np.ndarray[tuple[int], np.dtype[np.bool_]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.bool_, dimensions=1, strict_data_typing=False), ] -Np1DArrayDatetime64 = Annotated[ +NpLoading1DArrayDatetime64: TypeAlias = Annotated[ Union[np.ndarray[tuple[int], np.dtype[np.datetime64]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.datetime64, dimensions=1, strict_data_typing=False), ] -Np1DArrayTimedelta64 = Annotated[ +NpLoading1DArrayTimedelta64: TypeAlias = Annotated[ Union[np.ndarray[tuple[int], np.dtype[np.timedelta64]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.timedelta64, dimensions=1, strict_data_typing=False), ] __all__ = [ - "Np1DArray", - "Np1DArrayInt64", - "Np1DArrayInt32", - "Np1DArrayInt16", - "Np1DArrayInt8", - "Np1DArrayUint64", - "Np1DArrayUint32", - "Np1DArrayUint16", - "Np1DArrayUint8", - "Np1DArrayFpLongDouble", - "Np1DArrayFp64", - "Np1DArrayFp32", - "Np1DArrayFp16", - "Np1DArrayComplexLongDouble", - "Np1DArrayComplex128", - "Np1DArrayComplex64", - "Np1DArrayBool", - "Np1DArrayDatetime64", - "Np1DArrayTimedelta64", + "NpLoading1DArray", + "NpLoading1DArrayInt64", + "NpLoading1DArrayInt32", + "NpLoading1DArrayInt16", + "NpLoading1DArrayInt8", + "NpLoading1DArrayUint64", + "NpLoading1DArrayUint32", + "NpLoading1DArrayUint16", + "NpLoading1DArrayUint8", + "NpLoading1DArrayFpLongDouble", + "NpLoading1DArrayFp64", + "NpLoading1DArrayFp32", + "NpLoading1DArrayFp16", + "NpLoading1DArrayComplexLongDouble", + "NpLoading1DArrayComplex128", + "NpLoading1DArrayComplex64", + "NpLoading1DArrayBool", + "NpLoading1DArrayDatetime64", + "NpLoading1DArrayTimedelta64", ] diff --git a/pydantic_numpy/typing/ii_dimensional.py b/pydantic_numpy/typing/with_loader/ii_dimensional.py similarity index 71% rename from pydantic_numpy/typing/ii_dimensional.py rename to pydantic_numpy/typing/with_loader/ii_dimensional.py index d1b9b6b..f71907d 100644 --- a/pydantic_numpy/typing/ii_dimensional.py +++ b/pydantic_numpy/typing/with_loader/ii_dimensional.py @@ -1,4 +1,4 @@ -from typing import Annotated, Any, Union +from typing import Annotated, Any, TypeAlias, Union import numpy as np from pydantic import FilePath @@ -6,119 +6,119 @@ from pydantic_numpy.helper.annotation import NpArrayPydanticAnnotation from pydantic_numpy.model import MultiArrayNumpyFile -Np2DArray = Annotated[ +NpLoading2DArray: TypeAlias = Annotated[ Union[np.ndarray[tuple[int, int], np.dtype[Any]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=None, dimensions=2, strict_data_typing=False), ] -Np2DArrayInt64 = Annotated[ +NpLoading2DArrayInt64: TypeAlias = Annotated[ Union[np.ndarray[tuple[int, int], np.dtype[np.int64]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.int64, dimensions=2, strict_data_typing=False), ] -Np2DArrayInt32 = Annotated[ +NpLoading2DArrayInt32: TypeAlias = Annotated[ Union[np.ndarray[tuple[int, int], np.dtype[np.int32]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.int32, dimensions=2, strict_data_typing=False), ] -Np2DArrayInt16 = Annotated[ +NpLoading2DArrayInt16: TypeAlias = Annotated[ Union[np.ndarray[tuple[int, int], np.dtype[np.int16]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.int16, dimensions=2, strict_data_typing=False), ] -Np2DArrayInt8 = Annotated[ +NpLoading2DArrayInt8: TypeAlias = Annotated[ Union[np.ndarray[tuple[int, int], np.dtype[np.int8]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.int8, dimensions=2, strict_data_typing=False), ] -Np2DArrayUint64 = Annotated[ +NpLoading2DArrayUint64: TypeAlias = Annotated[ Union[np.ndarray[tuple[int, int], np.dtype[np.uint64]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.uint64, dimensions=2, strict_data_typing=False), ] -Np2DArrayUint32 = Annotated[ +NpLoading2DArrayUint32: TypeAlias = Annotated[ Union[np.ndarray[tuple[int, int], np.dtype[np.uint32]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.uint32, dimensions=2, strict_data_typing=False), ] -Np2DArrayUint16 = Annotated[ +NpLoading2DArrayUint16: TypeAlias = Annotated[ Union[np.ndarray[tuple[int, int], np.dtype[np.uint16]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.uint16, dimensions=2, strict_data_typing=False), ] -Np2DArrayUint8 = Annotated[ +NpLoading2DArrayUint8: TypeAlias = Annotated[ Union[np.ndarray[tuple[int, int], np.dtype[np.uint8]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.uint8, dimensions=2, strict_data_typing=False), ] -Np2DArrayFpLongDouble = Annotated[ +NpLoading2DArrayFpLongDouble: TypeAlias = Annotated[ Union[np.ndarray[tuple[int, int], np.dtype[np.longdouble]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.longdouble, dimensions=2, strict_data_typing=False), ] -Np2DArrayFp64 = Annotated[ +NpLoading2DArrayFp64: TypeAlias = Annotated[ Union[np.ndarray[tuple[int, int], np.dtype[np.float64]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.float64, dimensions=2, strict_data_typing=False), ] -Np2DArrayFp32 = Annotated[ +NpLoading2DArrayFp32: TypeAlias = Annotated[ Union[np.ndarray[tuple[int, int], np.dtype[np.float32]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.float32, dimensions=2, strict_data_typing=False), ] -Np2DArrayFp16 = Annotated[ +NpLoading2DArrayFp16: TypeAlias = Annotated[ Union[np.ndarray[tuple[int, int], np.dtype[np.float16]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.float16, dimensions=2, strict_data_typing=False), ] -Np2DArrayComplexLongDouble = Annotated[ +NpLoading2DArrayComplexLongDouble: TypeAlias = Annotated[ Union[np.ndarray[tuple[int, int], np.dtype[np.clongdouble]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.clongdouble, dimensions=2, strict_data_typing=False), ] -Np2DArrayComplex128 = Annotated[ +NpLoading2DArrayComplex128: TypeAlias = Annotated[ Union[np.ndarray[tuple[int, int], np.dtype[np.complex128]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.complex128, dimensions=2, strict_data_typing=False), ] -Np2DArrayComplex64 = Annotated[ +NpLoading2DArrayComplex64: TypeAlias = Annotated[ Union[np.ndarray[tuple[int, int], np.dtype[np.complex64]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.complex64, dimensions=2, strict_data_typing=False), ] -Np2DArrayBool = Annotated[ +NpLoading2DArrayBool: TypeAlias = Annotated[ Union[np.ndarray[tuple[int, int], np.dtype[np.bool_]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.bool_, dimensions=2, strict_data_typing=False), ] -Np2DArrayDatetime64 = Annotated[ +NpLoading2DArrayDatetime64: TypeAlias = Annotated[ Union[np.ndarray[tuple[int, int], np.dtype[np.datetime64]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.datetime64, dimensions=2, strict_data_typing=False), ] -Np2DArrayTimedelta64 = Annotated[ +NpLoading2DArrayTimedelta64: TypeAlias = Annotated[ Union[np.ndarray[tuple[int, int], np.dtype[np.timedelta64]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.timedelta64, dimensions=2, strict_data_typing=False), ] __all__ = [ - "Np2DArray", - "Np2DArrayInt64", - "Np2DArrayInt32", - "Np2DArrayInt16", - "Np2DArrayInt8", - "Np2DArrayUint64", - "Np2DArrayUint32", - "Np2DArrayUint16", - "Np2DArrayUint8", - "Np2DArrayFpLongDouble", - "Np2DArrayFp64", - "Np2DArrayFp32", - "Np2DArrayFp16", - "Np2DArrayComplexLongDouble", - "Np2DArrayComplex128", - "Np2DArrayComplex64", - "Np2DArrayBool", - "Np2DArrayDatetime64", - "Np2DArrayTimedelta64", + "NpLoading2DArray", + "NpLoading2DArrayInt64", + "NpLoading2DArrayInt32", + "NpLoading2DArrayInt16", + "NpLoading2DArrayInt8", + "NpLoading2DArrayUint64", + "NpLoading2DArrayUint32", + "NpLoading2DArrayUint16", + "NpLoading2DArrayUint8", + "NpLoading2DArrayFpLongDouble", + "NpLoading2DArrayFp64", + "NpLoading2DArrayFp32", + "NpLoading2DArrayFp16", + "NpLoading2DArrayComplexLongDouble", + "NpLoading2DArrayComplex128", + "NpLoading2DArrayComplex64", + "NpLoading2DArrayBool", + "NpLoading2DArrayDatetime64", + "NpLoading2DArrayTimedelta64", ] diff --git a/pydantic_numpy/typing/iii_dimensional.py b/pydantic_numpy/typing/with_loader/iii_dimensional.py similarity index 72% rename from pydantic_numpy/typing/iii_dimensional.py rename to pydantic_numpy/typing/with_loader/iii_dimensional.py index ebc665a..ede5816 100644 --- a/pydantic_numpy/typing/iii_dimensional.py +++ b/pydantic_numpy/typing/with_loader/iii_dimensional.py @@ -1,4 +1,4 @@ -from typing import Annotated, Any, Union +from typing import Annotated, Any, TypeAlias, Union import numpy as np from pydantic import FilePath @@ -6,119 +6,119 @@ from pydantic_numpy.helper.annotation import NpArrayPydanticAnnotation from pydantic_numpy.model import MultiArrayNumpyFile -Np3DArray = Annotated[ +NpLoading3DArray: TypeAlias = Annotated[ Union[np.ndarray[tuple[int, int, int], np.dtype[Any]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=None, dimensions=3, strict_data_typing=False), ] -Np3DArrayInt64 = Annotated[ +NpLoading3DArrayInt64: TypeAlias = Annotated[ Union[np.ndarray[tuple[int, int, int], np.dtype[np.int64]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.int64, dimensions=3, strict_data_typing=False), ] -Np3DArrayInt32 = Annotated[ +NpLoading3DArrayInt32: TypeAlias = Annotated[ Union[np.ndarray[tuple[int, int, int], np.dtype[np.int32]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.int32, dimensions=3, strict_data_typing=False), ] -Np3DArrayInt16 = Annotated[ +NpLoading3DArrayInt16: TypeAlias = Annotated[ Union[np.ndarray[tuple[int, int, int], np.dtype[np.int16]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.int16, dimensions=3, strict_data_typing=False), ] -Np3DArrayInt8 = Annotated[ +NpLoading3DArrayInt8: TypeAlias = Annotated[ Union[np.ndarray[tuple[int, int, int], np.dtype[np.int8]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.int8, dimensions=3, strict_data_typing=False), ] -Np3DArrayUint64 = Annotated[ +NpLoading3DArrayUint64: TypeAlias = Annotated[ Union[np.ndarray[tuple[int, int, int], np.dtype[np.uint64]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.uint64, dimensions=3, strict_data_typing=False), ] -Np3DArrayUint32 = Annotated[ +NpLoading3DArrayUint32: TypeAlias = Annotated[ Union[np.ndarray[tuple[int, int, int], np.dtype[np.uint32]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.uint32, dimensions=3, strict_data_typing=False), ] -Np3DArrayUint16 = Annotated[ +NpLoading3DArrayUint16: TypeAlias = Annotated[ Union[np.ndarray[tuple[int, int, int], np.dtype[np.uint16]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.uint16, dimensions=3, strict_data_typing=False), ] -Np3DArrayUint8 = Annotated[ +NpLoading3DArrayUint8: TypeAlias = Annotated[ Union[np.ndarray[tuple[int, int, int], np.dtype[np.uint8]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.uint8, dimensions=3, strict_data_typing=False), ] -Np3DArrayFpLongDouble = Annotated[ +NpLoading3DArrayFpLongDouble: TypeAlias = Annotated[ Union[np.ndarray[tuple[int, int, int], np.dtype[np.longdouble]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.longdouble, dimensions=3, strict_data_typing=False), ] -Np3DArrayFp64 = Annotated[ +NpLoading3DArrayFp64: TypeAlias = Annotated[ Union[np.ndarray[tuple[int, int, int], np.dtype[np.float64]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.float64, dimensions=3, strict_data_typing=False), ] -Np3DArrayFp32 = Annotated[ +NpLoading3DArrayFp32: TypeAlias = Annotated[ Union[np.ndarray[tuple[int, int, int], np.dtype[np.float32]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.float32, dimensions=3, strict_data_typing=False), ] -Np3DArrayFp16 = Annotated[ +NpLoading3DArrayFp16: TypeAlias = Annotated[ Union[np.ndarray[tuple[int, int, int], np.dtype[np.float16]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.float16, dimensions=3, strict_data_typing=False), ] -Np3DArrayComplexLongDouble = Annotated[ +NpLoading3DArrayComplexLongDouble: TypeAlias = Annotated[ Union[np.ndarray[tuple[int, int, int], np.dtype[np.clongdouble]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.clongdouble, dimensions=3, strict_data_typing=False), ] -Np3DArrayComplex128 = Annotated[ +NpLoading3DArrayComplex128: TypeAlias = Annotated[ Union[np.ndarray[tuple[int, int, int], np.dtype[np.complex128]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.complex128, dimensions=3, strict_data_typing=False), ] -Np3DArrayComplex64 = Annotated[ +NpLoading3DArrayComplex64: TypeAlias = Annotated[ Union[np.ndarray[tuple[int, int, int], np.dtype[np.complex64]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.complex64, dimensions=3, strict_data_typing=False), ] -Np3DArrayBool = Annotated[ +NpLoading3DArrayBool: TypeAlias = Annotated[ Union[np.ndarray[tuple[int, int, int], np.dtype[np.bool_]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.bool_, dimensions=3, strict_data_typing=False), ] -Np3DArrayDatetime64 = Annotated[ +NpLoading3DArrayDatetime64: TypeAlias = Annotated[ Union[np.ndarray[tuple[int, int, int], np.dtype[np.datetime64]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.datetime64, dimensions=3, strict_data_typing=False), ] -Np3DArrayTimedelta64 = Annotated[ +NpLoading3DArrayTimedelta64: TypeAlias = Annotated[ Union[np.ndarray[tuple[int, int, int], np.dtype[np.timedelta64]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.timedelta64, dimensions=3, strict_data_typing=False), ] __all__ = [ - "Np3DArray", - "Np3DArrayInt64", - "Np3DArrayInt32", - "Np3DArrayInt16", - "Np3DArrayInt8", - "Np3DArrayUint64", - "Np3DArrayUint32", - "Np3DArrayUint16", - "Np3DArrayUint8", - "Np3DArrayFpLongDouble", - "Np3DArrayFp64", - "Np3DArrayFp32", - "Np3DArrayFp16", - "Np3DArrayComplexLongDouble", - "Np3DArrayComplex128", - "Np3DArrayComplex64", - "Np3DArrayBool", - "Np3DArrayDatetime64", - "Np3DArrayTimedelta64", + "NpLoading3DArray", + "NpLoading3DArrayInt64", + "NpLoading3DArrayInt32", + "NpLoading3DArrayInt16", + "NpLoading3DArrayInt8", + "NpLoading3DArrayUint64", + "NpLoading3DArrayUint32", + "NpLoading3DArrayUint16", + "NpLoading3DArrayUint8", + "NpLoading3DArrayFpLongDouble", + "NpLoading3DArrayFp64", + "NpLoading3DArrayFp32", + "NpLoading3DArrayFp16", + "NpLoading3DArrayComplexLongDouble", + "NpLoading3DArrayComplex128", + "NpLoading3DArrayComplex64", + "NpLoading3DArrayBool", + "NpLoading3DArrayDatetime64", + "NpLoading3DArrayTimedelta64", ] diff --git a/pydantic_numpy/typing/n_dimensional.py b/pydantic_numpy/typing/with_loader/n_dimensional.py similarity index 70% rename from pydantic_numpy/typing/n_dimensional.py rename to pydantic_numpy/typing/with_loader/n_dimensional.py index af4f9f4..27b8bcb 100644 --- a/pydantic_numpy/typing/n_dimensional.py +++ b/pydantic_numpy/typing/with_loader/n_dimensional.py @@ -1,4 +1,4 @@ -from typing import Annotated, Any, Union +from typing import Annotated, Any, TypeAlias, Union import numpy as np from pydantic import FilePath @@ -6,119 +6,119 @@ from pydantic_numpy.helper.annotation import NpArrayPydanticAnnotation from pydantic_numpy.model import MultiArrayNumpyFile -NpNDArray = Annotated[ +NpLoadingNDArray: TypeAlias = Annotated[ Union[np.ndarray[Any, np.dtype[Any]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=None, dimensions=None, strict_data_typing=False), ] -NpNDArrayInt64 = Annotated[ +NpLoadingNDArrayInt64: TypeAlias = Annotated[ Union[np.ndarray[Any, np.dtype[np.int64]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.int64, dimensions=None, strict_data_typing=False), ] -NpNDArrayInt32 = Annotated[ +NpLoadingNDArrayInt32: TypeAlias = Annotated[ Union[np.ndarray[Any, np.dtype[np.int32]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.int32, dimensions=None, strict_data_typing=False), ] -NpNDArrayInt16 = Annotated[ +NpLoadingNDArrayInt16: TypeAlias = Annotated[ Union[np.ndarray[Any, np.dtype[np.int16]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.int16, dimensions=None, strict_data_typing=False), ] -NpNDArrayInt8 = Annotated[ +NpLoadingNDArrayInt8: TypeAlias = Annotated[ Union[np.ndarray[Any, np.dtype[np.int8]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.int8, dimensions=None, strict_data_typing=False), ] -NpNDArrayUint64 = Annotated[ +NpLoadingNDArrayUint64: TypeAlias = Annotated[ Union[np.ndarray[Any, np.dtype[np.uint64]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.uint64, dimensions=None, strict_data_typing=False), ] -NpNDArrayUint32 = Annotated[ +NpLoadingNDArrayUint32: TypeAlias = Annotated[ Union[np.ndarray[Any, np.dtype[np.uint32]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.uint32, dimensions=None, strict_data_typing=False), ] -NpNDArrayUint16 = Annotated[ +NpLoadingNDArrayUint16: TypeAlias = Annotated[ Union[np.ndarray[Any, np.dtype[np.uint16]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.uint16, dimensions=None, strict_data_typing=False), ] -NpNDArrayUint8 = Annotated[ +NpLoadingNDArrayUint8: TypeAlias = Annotated[ Union[np.ndarray[Any, np.dtype[np.uint8]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.uint8, dimensions=None, strict_data_typing=False), ] -NpNDArrayFpLongDouble = Annotated[ +NpLoadingNDArrayFpLongDouble: TypeAlias = Annotated[ Union[np.ndarray[Any, np.dtype[np.longdouble]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.longdouble, dimensions=None, strict_data_typing=False), ] -NpNDArrayFp64 = Annotated[ +NpLoadingNDArrayFp64: TypeAlias = Annotated[ Union[np.ndarray[Any, np.dtype[np.float64]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.float64, dimensions=None, strict_data_typing=False), ] -NpNDArrayFp32 = Annotated[ +NpLoadingNDArrayFp32: TypeAlias = Annotated[ Union[np.ndarray[Any, np.dtype[np.float32]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.float32, dimensions=None, strict_data_typing=False), ] -NpNDArrayFp16 = Annotated[ +NpLoadingNDArrayFp16: TypeAlias = Annotated[ Union[np.ndarray[Any, np.dtype[np.float16]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.float16, dimensions=None, strict_data_typing=False), ] -NpNDArrayComplexLongDouble = Annotated[ +NpLoadingNDArrayComplexLongDouble: TypeAlias = Annotated[ Union[np.ndarray[Any, np.dtype[np.clongdouble]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.clongdouble, dimensions=None, strict_data_typing=False), ] -NpNDArrayComplex128 = Annotated[ +NpLoadingNDArrayComplex128: TypeAlias = Annotated[ Union[np.ndarray[Any, np.dtype[np.complex128]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.complex128, dimensions=None, strict_data_typing=False), ] -NpNDArrayComplex64 = Annotated[ +NpLoadingNDArrayComplex64: TypeAlias = Annotated[ Union[np.ndarray[Any, np.dtype[np.complex64]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.complex64, dimensions=None, strict_data_typing=False), ] -NpNDArrayBool = Annotated[ +NpLoadingNDArrayBool: TypeAlias = Annotated[ Union[np.ndarray[Any, np.dtype[np.bool_]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.bool_, dimensions=None, strict_data_typing=False), ] -NpNDArrayDatetime64 = Annotated[ +NpLoadingNDArrayDatetime64: TypeAlias = Annotated[ Union[np.ndarray[Any, np.dtype[np.datetime64]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.datetime64, dimensions=None, strict_data_typing=False), ] -NpNDArrayTimedelta64 = Annotated[ +NpLoadingNDArrayTimedelta64: TypeAlias = Annotated[ Union[np.ndarray[Any, np.dtype[np.timedelta64]], FilePath, MultiArrayNumpyFile], NpArrayPydanticAnnotation.factory(data_type=np.timedelta64, dimensions=None, strict_data_typing=False), ] __all__ = [ - "NpNDArray", - "NpNDArrayInt64", - "NpNDArrayInt32", - "NpNDArrayInt16", - "NpNDArrayInt8", - "NpNDArrayUint64", - "NpNDArrayUint32", - "NpNDArrayUint16", - "NpNDArrayUint8", - "NpNDArrayFpLongDouble", - "NpNDArrayFp64", - "NpNDArrayFp32", - "NpNDArrayFp16", - "NpNDArrayComplexLongDouble", - "NpNDArrayComplex128", - "NpNDArrayComplex64", - "NpNDArrayBool", - "NpNDArrayDatetime64", - "NpNDArrayTimedelta64", + "NpLoadingNDArray", + "NpLoadingNDArrayInt64", + "NpLoadingNDArrayInt32", + "NpLoadingNDArrayInt16", + "NpLoadingNDArrayInt8", + "NpLoadingNDArrayUint64", + "NpLoadingNDArrayUint32", + "NpLoadingNDArrayUint16", + "NpLoadingNDArrayUint8", + "NpLoadingNDArrayFpLongDouble", + "NpLoadingNDArrayFp64", + "NpLoadingNDArrayFp32", + "NpLoadingNDArrayFp16", + "NpLoadingNDArrayComplexLongDouble", + "NpLoadingNDArrayComplex128", + "NpLoadingNDArrayComplex64", + "NpLoadingNDArrayBool", + "NpLoadingNDArrayDatetime64", + "NpLoadingNDArrayTimedelta64", ] diff --git a/pyproject.toml b/pyproject.toml index 94720d6..a67592c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,12 +1,12 @@ [tool.poetry] name = "pydantic_numpy" -version = "7.0.0" +version = "8.0.0" description = "Pydantic Model integration of the NumPy array" authors = ["Can H. Tartanoglu", "Christoph Heindl"] maintainers = ["Can H. Tartanoglu "] readme = "README.md" homepage = "https://github.com/caniko/pydantic-numpy" -license = "BSD-4" +license = "BSD-3-Clause" keywords = ["pydantic", "numpy", "typing", "validation"] classifiers = [ @@ -22,7 +22,7 @@ python = ">=3.10,<3.14" compress-pickle = { version = "*", extras = ["lz4"] } ruamel-yaml = "^0.18.5" -numpy = ">=2.0.0" +numpy = "^2" pydantic = "^2.0" semver = "^3.0.1" diff --git a/tests/helper/testing_groups.py b/tests/helper/testing_groups.py index da17945..dbdd582 100644 --- a/tests/helper/testing_groups.py +++ b/tests/helper/testing_groups.py @@ -103,80 +103,80 @@ ] # Data type strict -strict_data_type_1d_array_typing_dimensions = [ - (np.array([0]), np.int64, NpStrict1DArrayInt64, 1), - (np.array([0], dtype=np.int32), np.int32, NpStrict1DArrayInt32, 1), - (np.array([0], dtype=np.int16), np.int16, NpStrict1DArrayInt16, 1), - (np.array([0], dtype=np.int8), np.int8, NpStrict1DArrayInt8, 1), - (np.array([0], dtype=np.uint64), np.uint64, NpStrict1DArrayUint64, 1), - (np.array([0], dtype=np.uint32), np.uint32, NpStrict1DArrayUint32, 1), - (np.array([0], dtype=np.uint16), np.uint16, NpStrict1DArrayUint16, 1), - (np.array([0], dtype=np.uint8), np.uint8, NpStrict1DArrayUint8, 1), - (np.array([0.0]), np.float64, NpStrict1DArrayFp64, 1), - (np.array([0.0], dtype=np.float32), np.float32, NpStrict1DArrayFp32, 1), - (np.array([0.0], dtype=np.float16), np.float16, NpStrict1DArrayFp16, 1), - (np.array([0.0 + 0.0j]), np.complex128, NpStrict1DArrayComplex128, 1), - (np.array([0.0 + 0.0j], dtype=np.complex64), np.complex64, NpStrict1DArrayComplex64, 1), - (np.array([False]), np.bool_, NpStrict1DArrayBool, 1), - (np.array([0], dtype=np.timedelta64), np.timedelta64, NpStrict1DArrayTimedelta64, 1), +type_safe_data_type_1d_array_typing_dimensions = [ + (np.array([0]), np.int64, Np1DArrayInt64, 1), + (np.array([0], dtype=np.int32), np.int32, Np1DArrayInt32, 1), + (np.array([0], dtype=np.int16), np.int16, Np1DArrayInt16, 1), + (np.array([0], dtype=np.int8), np.int8, Np1DArrayInt8, 1), + (np.array([0], dtype=np.uint64), np.uint64, Np1DArrayUint64, 1), + (np.array([0], dtype=np.uint32), np.uint32, Np1DArrayUint32, 1), + (np.array([0], dtype=np.uint16), np.uint16, Np1DArrayUint16, 1), + (np.array([0], dtype=np.uint8), np.uint8, Np1DArrayUint8, 1), + (np.array([0.0]), np.float64, Np1DArrayFp64, 1), + (np.array([0.0], dtype=np.float32), np.float32, Np1DArrayFp32, 1), + (np.array([0.0], dtype=np.float16), np.float16, Np1DArrayFp16, 1), + (np.array([0.0 + 0.0j]), np.complex128, Np1DArrayComplex128, 1), + (np.array([0.0 + 0.0j], dtype=np.complex64), np.complex64, Np1DArrayComplex64, 1), + (np.array([False]), np.bool_, Np1DArrayBool, 1), + (np.array([0], dtype=np.timedelta64), np.timedelta64, Np1DArrayTimedelta64, 1), ] -strict_data_type_2d_array_typing_dimensions = [ - (np.array([[0]]), np.int64, NpStrict2DArrayInt64, 2), - (np.array([[0]], dtype=np.int32), np.int32, NpStrict2DArrayInt32, 2), - (np.array([[0]], dtype=np.int16), np.int16, NpStrict2DArrayInt16, 2), - (np.array([[0]], dtype=np.int8), np.int8, NpStrict2DArrayInt8, 2), - (np.array([[0]], dtype=np.uint64), np.uint64, NpStrict2DArrayUint64, 2), - (np.array([[0]], dtype=np.uint32), np.uint32, NpStrict2DArrayUint32, 2), - (np.array([[0]], dtype=np.uint16), np.uint16, NpStrict2DArrayUint16, 2), - (np.array([[0]], dtype=np.uint8), np.uint8, NpStrict2DArrayUint8, 2), - (np.array([[0.0]]), np.float64, NpStrict2DArrayFp64, 2), - (np.array([[0.0]], dtype=np.float32), np.float32, NpStrict2DArrayFp32, 2), - (np.array([[0.0]], dtype=np.float16), np.float16, NpStrict2DArrayFp16, 2), - (np.array([[0.0 + 0.0j]]), np.complex128, NpStrict2DArrayComplex128, 2), - (np.array([[0.0 + 0.0j]], dtype=np.complex64), np.complex64, NpStrict2DArrayComplex64, 2), - (np.array([[False]]), np.bool_, NpStrict2DArrayBool, 2), - (np.array([[0]], dtype=np.timedelta64), np.timedelta64, NpStrict2DArrayTimedelta64, 2), +type_safe_data_type_2d_array_typing_dimensions = [ + (np.array([[0]]), np.int64, Np2DArrayInt64, 2), + (np.array([[0]], dtype=np.int32), np.int32, Np2DArrayInt32, 2), + (np.array([[0]], dtype=np.int16), np.int16, Np2DArrayInt16, 2), + (np.array([[0]], dtype=np.int8), np.int8, Np2DArrayInt8, 2), + (np.array([[0]], dtype=np.uint64), np.uint64, Np2DArrayUint64, 2), + (np.array([[0]], dtype=np.uint32), np.uint32, Np2DArrayUint32, 2), + (np.array([[0]], dtype=np.uint16), np.uint16, Np2DArrayUint16, 2), + (np.array([[0]], dtype=np.uint8), np.uint8, Np2DArrayUint8, 2), + (np.array([[0.0]]), np.float64, Np2DArrayFp64, 2), + (np.array([[0.0]], dtype=np.float32), np.float32, Np2DArrayFp32, 2), + (np.array([[0.0]], dtype=np.float16), np.float16, Np2DArrayFp16, 2), + (np.array([[0.0 + 0.0j]]), np.complex128, Np2DArrayComplex128, 2), + (np.array([[0.0 + 0.0j]], dtype=np.complex64), np.complex64, Np2DArrayComplex64, 2), + (np.array([[False]]), np.bool_, Np2DArrayBool, 2), + (np.array([[0]], dtype=np.timedelta64), np.timedelta64, Np2DArrayTimedelta64, 2), ] -strict_data_type_3d_array_typing_dimensions = [ - (np.array([[[0]]]), np.int64, NpStrict3DArrayInt64, 3), - (np.array([[[0]]], dtype=np.int32), np.int32, NpStrict3DArrayInt32, 3), - (np.array([[[0]]], dtype=np.int16), np.int16, NpStrict3DArrayInt16, 3), - (np.array([[[0]]], dtype=np.int8), np.int8, NpStrict3DArrayInt8, 3), - (np.array([[[0]]], dtype=np.uint64), np.uint64, NpStrict3DArrayUint64, 3), - (np.array([[[0]]], dtype=np.uint32), np.uint32, NpStrict3DArrayUint32, 3), - (np.array([[[0]]], dtype=np.uint16), np.uint16, NpStrict3DArrayUint16, 3), - (np.array([[[0]]], dtype=np.uint8), np.uint8, NpStrict3DArrayUint8, 3), - (np.array([[[0.0]]]), np.float64, NpStrict3DArrayFp64, 3), - (np.array([[[0.0]]], dtype=np.float32), np.float32, NpStrict3DArrayFp32, 3), - (np.array([[[0.0]]], dtype=np.float16), np.float16, NpStrict3DArrayFp16, 3), - (np.array([[[0.0 + 0.0j]]]), np.complex128, NpStrict3DArrayComplex128, 3), - (np.array([[[0.0 + 0.0j]]], dtype=np.complex64), np.complex64, NpStrict3DArrayComplex64, 3), - (np.array([[[False]]]), np.bool_, NpStrict3DArrayBool, 3), - (np.array([[[0]]], dtype=np.timedelta64), np.timedelta64, NpStrict3DArrayTimedelta64, 3), +type_safe_data_type_3d_array_typing_dimensions = [ + (np.array([[[0]]]), np.int64, Np3DArrayInt64, 3), + (np.array([[[0]]], dtype=np.int32), np.int32, Np3DArrayInt32, 3), + (np.array([[[0]]], dtype=np.int16), np.int16, Np3DArrayInt16, 3), + (np.array([[[0]]], dtype=np.int8), np.int8, Np3DArrayInt8, 3), + (np.array([[[0]]], dtype=np.uint64), np.uint64, Np3DArrayUint64, 3), + (np.array([[[0]]], dtype=np.uint32), np.uint32, Np3DArrayUint32, 3), + (np.array([[[0]]], dtype=np.uint16), np.uint16, Np3DArrayUint16, 3), + (np.array([[[0]]], dtype=np.uint8), np.uint8, Np3DArrayUint8, 3), + (np.array([[[0.0]]]), np.float64, Np3DArrayFp64, 3), + (np.array([[[0.0]]], dtype=np.float32), np.float32, Np3DArrayFp32, 3), + (np.array([[[0.0]]], dtype=np.float16), np.float16, Np3DArrayFp16, 3), + (np.array([[[0.0 + 0.0j]]]), np.complex128, Np3DArrayComplex128, 3), + (np.array([[[0.0 + 0.0j]]], dtype=np.complex64), np.complex64, Np3DArrayComplex64, 3), + (np.array([[[False]]]), np.bool_, Np3DArrayBool, 3), + (np.array([[[0]]], dtype=np.timedelta64), np.timedelta64, Np3DArrayTimedelta64, 3), ] -strict_data_type_nd_array_typing_dimensions = [ - (np.array([0]), np.int64, NpStrictNDArrayInt64, None), - (np.array([0], dtype=np.int32), np.int32, NpStrictNDArrayInt32, None), - (np.array([0], dtype=np.int16), np.int16, NpStrictNDArrayInt16, None), - (np.array([0], dtype=np.int8), np.int8, NpStrictNDArrayInt8, None), - (np.array([0], dtype=np.uint64), np.uint64, NpStrictNDArrayUint64, None), - (np.array([0], dtype=np.uint32), np.uint32, NpStrictNDArrayUint32, None), - (np.array([0], dtype=np.uint16), np.uint16, NpStrictNDArrayUint16, None), - (np.array([0], dtype=np.uint8), np.uint8, NpStrictNDArrayUint8, None), - (np.array([0.0]), np.float64, NpStrictNDArrayFp64, None), - (np.array([0.0], dtype=np.float32), np.float32, NpStrictNDArrayFp32, None), - (np.array([0.0], dtype=np.float16), np.float16, NpStrictNDArrayFp16, None), - (np.array([0.0 + 0.0j]), np.complex128, NpStrictNDArrayComplex128, None), - (np.array([0.0 + 0.0j], dtype=np.complex64), np.complex64, NpStrictNDArrayComplex64, None), - (np.array([False]), np.bool_, NpStrictNDArrayBool, None), - (np.array([0], dtype=np.timedelta64), np.timedelta64, NpStrictNDArrayTimedelta64, None), +type_safe_data_type_nd_array_typing_dimensions = [ + (np.array([0]), np.int64, NpNDArrayInt64, None), + (np.array([0], dtype=np.int32), np.int32, NpNDArrayInt32, None), + (np.array([0], dtype=np.int16), np.int16, NpNDArrayInt16, None), + (np.array([0], dtype=np.int8), np.int8, NpNDArrayInt8, None), + (np.array([0], dtype=np.uint64), np.uint64, NpNDArrayUint64, None), + (np.array([0], dtype=np.uint32), np.uint32, NpNDArrayUint32, None), + (np.array([0], dtype=np.uint16), np.uint16, NpNDArrayUint16, None), + (np.array([0], dtype=np.uint8), np.uint8, NpNDArrayUint8, None), + (np.array([0.0]), np.float64, NpNDArrayFp64, None), + (np.array([0.0], dtype=np.float32), np.float32, NpNDArrayFp32, None), + (np.array([0.0], dtype=np.float16), np.float16, NpNDArrayFp16, None), + (np.array([0.0 + 0.0j]), np.complex128, NpNDArrayComplex128, None), + (np.array([0.0 + 0.0j], dtype=np.complex64), np.complex64, NpNDArrayComplex64, None), + (np.array([False]), np.bool_, NpNDArrayBool, None), + (np.array([0], dtype=np.timedelta64), np.timedelta64, NpNDArrayTimedelta64, None), ] -strict_data_type_array_typing_dimensions = [ - *strict_data_type_1d_array_typing_dimensions, - *strict_data_type_2d_array_typing_dimensions, - *strict_data_type_3d_array_typing_dimensions, - *strict_data_type_nd_array_typing_dimensions, +type_safe_data_type_array_typing_dimensions = [ + *type_safe_data_type_1d_array_typing_dimensions, + *type_safe_data_type_2d_array_typing_dimensions, + *type_safe_data_type_3d_array_typing_dimensions, + *type_safe_data_type_nd_array_typing_dimensions, ] dimension_testing_group = [ @@ -187,8 +187,8 @@ if platform.system() != "Windows": - def get_strict_data_type_nd_array_typing_dimensions_128_bit(): + def get_type_safe_data_type_nd_array_typing_dimensions_128_bit(): return [ - (np.array([0.0], dtype=np.float128), np.float128, NpStrictNDArrayFpLongDouble, None), - (np.array([0.0 + 0.0j], dtype=np.complex256), np.complex256, NpStrictNDArrayComplexLongDouble, None), + (np.array([0.0], dtype=np.float128), np.float128, NpNDArrayFpLongDouble, None), + (np.array([0.0 + 0.0j], dtype=np.complex256), np.complex256, NpNDArrayComplexLongDouble, None), ] diff --git a/tests/model.py b/tests/model.py index 2f6fa92..a3af34e 100644 --- a/tests/model.py +++ b/tests/model.py @@ -1,6 +1,5 @@ -from pydantic_numpy import NpNDArray from pydantic_numpy.model import NumpyModel -from pydantic_numpy.typing import Np1DArray +from pydantic_numpy.typing import Np1DArray, NpNDArray class NpNDArrayModel(NumpyModel): diff --git a/tests/test_annotation.py b/tests/test_annotation.py index d789149..6be44d6 100644 --- a/tests/test_annotation.py +++ b/tests/test_annotation.py @@ -8,19 +8,21 @@ from pydantic_numpy.helper.annotation import NpArrayPydanticAnnotation -def test_custom_serializer(): - def custom_serializer(array: np.ndarray) -> list[float]: - return array.astype(float).tolist() +def _custom_serializer(array: np.ndarray) -> list[float]: + return array.astype(float).tolist() + - Np1DArray: TypeAlias = Annotated[ - np.ndarray[tuple[int], np.dtype[Any]], - NpArrayPydanticAnnotation.factory( - data_type=None, dimensions=1, strict_data_typing=False, serialize_numpy_array_to_json=custom_serializer - ), - ] +_Np1DArray: TypeAlias = Annotated[ + np.ndarray[tuple[int], np.dtype[Any]], + NpArrayPydanticAnnotation.factory( + data_type=None, dimensions=1, strict_data_typing=False, serialize_numpy_array_to_json=_custom_serializer + ), +] + +def test_custom_serializer(): class FooModel(BaseModel): - arr: Np1DArray + arr: _Np1DArray foo_model = FooModel(arr=np.zeros(42)) diff --git a/tests/test_typing.py b/tests/test_typing.py index 0d3035d..ad53784 100644 --- a/tests/test_typing.py +++ b/tests/test_typing.py @@ -18,8 +18,8 @@ from tests.helper.testing_groups import ( data_type_array_typing_dimensions, data_type_nd_array_typing_dimensions_without_complex, - strict_data_type_nd_array_typing_dimensions, supported_data_types, + type_safe_data_type_nd_array_typing_dimensions, ) @@ -31,7 +31,7 @@ def test_correct_type( @pytest.mark.parametrize( - "numpy_array, numpy_dtype, pydantic_typing, dimensions", strict_data_type_nd_array_typing_dimensions + "numpy_array, numpy_dtype, pydantic_typing, dimensions", type_safe_data_type_nd_array_typing_dimensions ) @pytest.mark.parametrize("bad_numpy_array, wrong_numpy_type", supported_data_types) def test_wrong_dtype_type( @@ -56,7 +56,7 @@ def test_wrong_dimension(): if platform.system() == "Linux": from tests.helper.testing_groups import ( - get_strict_data_type_nd_array_typing_dimensions_128_bit, + get_type_safe_data_type_nd_array_typing_dimensions_128_bit, ) @pytest.mark.parametrize( @@ -120,7 +120,7 @@ def test_multi_array_numpy_error_on_reading_single_array_file( @pytest.mark.parametrize( "numpy_array, numpy_dtype, pydantic_typing, dimensions", - get_strict_data_type_nd_array_typing_dimensions_128_bit(), + get_type_safe_data_type_nd_array_typing_dimensions_128_bit(), ) def test_correct_128_bit_type( numpy_array: npt.ArrayLike, numpy_dtype: npt.DTypeLike, pydantic_typing, dimensions: Optional[int] @@ -129,7 +129,7 @@ def test_correct_128_bit_type( @pytest.mark.parametrize( "numpy_array, numpy_dtype, pydantic_typing, dimensions", - get_strict_data_type_nd_array_typing_dimensions_128_bit(), + get_type_safe_data_type_nd_array_typing_dimensions_128_bit(), ) @pytest.mark.parametrize("bad_numpy_array, wrong_numpy_type", supported_data_types) def test_wrong_dtype_128_bit_type( diff --git a/typegen/generate_typing.py b/typegen/generate_typing.py index c3910af..62c5d7b 100644 --- a/typegen/generate_typing.py +++ b/typegen/generate_typing.py @@ -18,7 +18,7 @@ def write_annotations(output_folder: Path, strict: bool) -> None: ------- None """ - generate_template = _generate_strict_template if strict else _generate_union_template + generate_template = _generate_type_safe_template if strict else _generate_union_template for dimensions in _DIMENSION_TYPES: contents = "\n".join(_annotate_type(dimensions, type_name, strict) for type_name in _DATA_TYPES) all_types = "\n".join( @@ -30,7 +30,7 @@ def write_annotations(output_folder: Path, strict: bool) -> None: f.write(generate_template(dimensions, contents, all_types)) -_DATA_TYPES: Final = { +_DATA_TYPES: Final[dict[str, str]] = { "": "None", "Int64": "np.int64", "Int32": "np.int32", @@ -52,28 +52,28 @@ def write_annotations(output_folder: Path, strict: bool) -> None: "Timedelta64": "np.timedelta64", } -_DIMENSION_TYPES: Final = { +_DIMENSION_TYPES: Final[dict[int, str]] = { 0: "Any", 1: "tuple[int]", 2: "tuple[int, int]", 3: "tuple[int, int, int]", } -_DIMENSIONS_TO_PREFIX: Final = { +_DIMENSIONS_TO_PREFIX: Final[dict[int, str]] = { 0: "NDArray", 1: "1DArray", 2: "2DArray", 3: "3DArray", } -_DIMENSIONS_TO_FILENAME: Final = { +_DIMENSIONS_TO_FILENAME: Final[dict[int, str]] = { 0: "n_dimensional.py", 1: "i_dimensional.py", 2: "ii_dimensional.py", 3: "iii_dimensional.py", } -_SPACES: Final = " " +_SPACES: Final[str] = " " def _unindent(text: str) -> str: @@ -89,7 +89,7 @@ def _quote(text: str) -> str: def _type_name_with_prefix(dimensions: int, type_name: str, strict: bool) -> str: - strict_prefix = "Strict" if strict else "" + strict_prefix = "" if strict else "Loading" dimension_prefix = _DIMENSIONS_TO_PREFIX[dimensions] return f"Np{strict_prefix}{dimension_prefix}{type_name}" @@ -106,23 +106,20 @@ def _annotate_type(dimensions: int, type_name: str, strict: bool) -> str: dimension_type = _DIMENSION_TYPES[dimensions] type_with_prefix = _type_name_with_prefix(dimensions, type_name, strict) data_type = _DATA_TYPES[type_name] - if data_type == "None" and strict: - return "" dtype = "Any" if data_type == "None" else data_type T = _strict_type(dimension_type, dtype) if strict else _union_type(dimension_type, dtype) dim = dimensions if dimensions > 0 else None - annotation = f"""{type_with_prefix} = Annotated[ + annotation = f"""{type_with_prefix}: TypeAlias = Annotated[ {T}, - NpArrayPydanticAnnotation.factory(data_type={data_type}, dimensions={dim}, strict_data_typing={strict}), + NpArrayPydanticAnnotation.factory(data_type={data_type}, dimensions={dim}, strict_data_typing={data_type != "None" and strict}), ] """ return _unindent(annotation) -def _generate_strict_template(dimensions: int, contents: str, all_types: str) -> str: - from_typing = "from typing import Annotated, Any" if dimensions == 0 else "from typing import Annotated" - template = f"""{from_typing} +def _generate_type_safe_template(dimensions: int, contents: str, all_types: str) -> str: + template = f"""from typing import Annotated, Any, TypeAlias import numpy as np @@ -138,7 +135,7 @@ def _generate_strict_template(dimensions: int, contents: str, all_types: str) -> def _generate_union_template(dimensions: int, contents: str, all_types: str) -> str: - template = f"""from typing import Annotated, Any, Union + template = f"""from typing import Annotated, Any, TypeAlias, Union import numpy as np from pydantic import FilePath @@ -156,13 +153,9 @@ def _generate_union_template(dimensions: int, contents: str, all_types: str) -> def _list_all_types(dimensions: int, strict: bool) -> list[str]: - return [ - _type_name_with_prefix(dimensions, type_name, strict) - for type_name in _DATA_TYPES - if not (type_name == "" and strict) - ] + return [_type_name_with_prefix(dimensions, type_name, strict) for type_name in _DATA_TYPES] if __name__ == "__main__": - write_annotations(Path("pydantic_numpy/typing"), strict=False) - write_annotations(Path("pydantic_numpy/typing/strict_data_type"), strict=True) + write_annotations(Path("pydantic_numpy/typing/with_loader"), strict=False) + write_annotations(Path("pydantic_numpy/typing/type_safe"), strict=True)