diff --git a/CHANGELOG.md b/CHANGELOG.md index efd5912..303d86b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,10 +11,15 @@ Please see [MIGRATING.md](./MIGRATING.md) for information on breaking changes. ### Added +- Connections returned from the LDLite.connect_db* methods are now isolated from the ones used internally. + ### Fixed ### Changed +- psycopg3 is now used for internal operations. LDLite.connect_db_postgres will return a psycopg3 connection instead of psycopg2 in the next major release. +- psycopg2 is now installed using the binary version. + ### Removed ## [3.1.4] - September 2025 diff --git a/pylock.maximal.toml b/pylock.maximal.toml index 43cd6d9..d04a769 100644 --- a/pylock.maximal.toml +++ b/pylock.maximal.toml @@ -210,12 +210,39 @@ marker = "python_version >= \"3.13\" and \"default\" in dependency_groups" dependencies = [] [[packages]] -name = "psycopg2" -version = "2.9.10" +name = "psycopg" +version = "3.2.10" requires-python = ">=3.8" -sdist = {name = "psycopg2-2.9.10.tar.gz", url = "https://files.pythonhosted.org/packages/62/51/2007ea29e605957a17ac6357115d0c1a1b60c8c984951c19419b3474cdfd/psycopg2-2.9.10.tar.gz", hashes = {sha256 = "12ec0b40b0273f95296233e8750441339298e6a572f7039da5b260e3c8b60e11"}} +sdist = {name = "psycopg-3.2.10.tar.gz", url = "https://files.pythonhosted.org/packages/a9/f1/0258a123c045afaf3c3b60c22ccff077bceeb24b8dc2c593270899353bd0/psycopg-3.2.10.tar.gz", hashes = {sha256 = "0bce99269d16ed18401683a8569b2c5abd94f72f8364856d56c0389bcd50972a"}} wheels = [ - {name = "psycopg2-2.9.10-cp313-cp313-win_amd64.whl",url = "https://files.pythonhosted.org/packages/ae/49/a6cfc94a9c483b1fa401fbcb23aca7892f60c7269c5ffa2ac408364f80dc/psycopg2-2.9.10-cp313-cp313-win_amd64.whl",hashes = {sha256 = "91fd603a2155da8d0cfcdbf8ab24a2d54bca72795b90d2a3ed2b6da8d979dee2"}}, + {name = "psycopg-3.2.10-py3-none-any.whl",url = "https://files.pythonhosted.org/packages/4a/90/422ffbbeeb9418c795dae2a768db860401446af0c6768bc061ce22325f58/psycopg-3.2.10-py3-none-any.whl",hashes = {sha256 = "ab5caf09a9ec42e314a21f5216dbcceac528e0e05142e42eea83a3b28b320ac3"}}, +] +marker = "python_version >= \"3.13\" and \"default\" in dependency_groups" + +[packages.tool.pdm] +dependencies = [ + "backports-zoneinfo>=0.2.0; python_version < \"3.9\"", + "typing-extensions>=4.6; python_version < \"3.13\"", + "tzdata; sys_platform == \"win32\"", +] + +[[packages]] +name = "psycopg2-binary" +version = "2.9.10" +requires-python = ">=3.8" +sdist = {name = "psycopg2-binary-2.9.10.tar.gz", url = "https://files.pythonhosted.org/packages/cb/0e/bdc8274dc0585090b4e3432267d7be4dfbfd8971c0fa59167c711105a6bf/psycopg2-binary-2.9.10.tar.gz", hashes = {sha256 = "4b3df0e6990aa98acda57d983942eff13d824135fe2250e6522edaa782a06de2"}} +wheels = [ + {name = "psycopg2_binary-2.9.10-cp313-cp313-macosx_12_0_x86_64.whl",url = "https://files.pythonhosted.org/packages/3e/30/d41d3ba765609c0763505d565c4d12d8f3c79793f0d0f044ff5a28bf395b/psycopg2_binary-2.9.10-cp313-cp313-macosx_12_0_x86_64.whl",hashes = {sha256 = "26540d4a9a4e2b096f1ff9cce51253d0504dca5a85872c7f7be23be5a53eb18d"}}, + {name = "psycopg2_binary-2.9.10-cp313-cp313-macosx_14_0_arm64.whl",url = "https://files.pythonhosted.org/packages/35/44/257ddadec7ef04536ba71af6bc6a75ec05c5343004a7ec93006bee66c0bc/psycopg2_binary-2.9.10-cp313-cp313-macosx_14_0_arm64.whl",hashes = {sha256 = "e217ce4d37667df0bc1c397fdcd8de5e81018ef305aed9415c3b093faaeb10fb"}}, + {name = "psycopg2_binary-2.9.10-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",url = "https://files.pythonhosted.org/packages/1b/11/48ea1cd11de67f9efd7262085588790a95d9dfcd9b8a687d46caf7305c1a/psycopg2_binary-2.9.10-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",hashes = {sha256 = "245159e7ab20a71d989da00f280ca57da7641fa2cdcf71749c193cea540a74f7"}}, + {name = "psycopg2_binary-2.9.10-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl",url = "https://files.pythonhosted.org/packages/62/e0/62ce5ee650e6c86719d621a761fe4bc846ab9eff8c1f12b1ed5741bf1c9b/psycopg2_binary-2.9.10-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl",hashes = {sha256 = "3c4ded1a24b20021ebe677b7b08ad10bf09aac197d6943bfe6fec70ac4e4690d"}}, + {name = "psycopg2_binary-2.9.10-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",url = "https://files.pythonhosted.org/packages/27/ce/63f946c098611f7be234c0dd7cb1ad68b0b5744d34f68062bb3c5aa510c8/psycopg2_binary-2.9.10-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",hashes = {sha256 = "3abb691ff9e57d4a93355f60d4f4c1dd2d68326c968e7db17ea96df3c023ef73"}}, + {name = "psycopg2_binary-2.9.10-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",url = "https://files.pythonhosted.org/packages/43/25/c603cd81402e69edf7daa59b1602bd41eb9859e2824b8c0855d748366ac9/psycopg2_binary-2.9.10-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",hashes = {sha256 = "8608c078134f0b3cbd9f89b34bd60a943b23fd33cc5f065e8d5f840061bd0673"}}, + {name = "psycopg2_binary-2.9.10-cp313-cp313-musllinux_1_2_aarch64.whl",url = "https://files.pythonhosted.org/packages/5f/d6/8708d8c6fca531057fa170cdde8df870e8b6a9b136e82b361c65e42b841e/psycopg2_binary-2.9.10-cp313-cp313-musllinux_1_2_aarch64.whl",hashes = {sha256 = "230eeae2d71594103cd5b93fd29d1ace6420d0b86f4778739cb1a5a32f607d1f"}}, + {name = "psycopg2_binary-2.9.10-cp313-cp313-musllinux_1_2_i686.whl",url = "https://files.pythonhosted.org/packages/ce/ac/5b1ea50fc08a9df82de7e1771537557f07c2632231bbab652c7e22597908/psycopg2_binary-2.9.10-cp313-cp313-musllinux_1_2_i686.whl",hashes = {sha256 = "bb89f0a835bcfc1d42ccd5f41f04870c1b936d8507c6df12b7737febc40f0909"}}, + {name = "psycopg2_binary-2.9.10-cp313-cp313-musllinux_1_2_ppc64le.whl",url = "https://files.pythonhosted.org/packages/c4/fc/504d4503b2abc4570fac3ca56eb8fed5e437bf9c9ef13f36b6621db8ef00/psycopg2_binary-2.9.10-cp313-cp313-musllinux_1_2_ppc64le.whl",hashes = {sha256 = "f0c2d907a1e102526dd2986df638343388b94c33860ff3bbe1384130828714b1"}}, + {name = "psycopg2_binary-2.9.10-cp313-cp313-musllinux_1_2_x86_64.whl",url = "https://files.pythonhosted.org/packages/b2/d1/323581e9273ad2c0dbd1902f3fb50c441da86e894b6e25a73c3fda32c57e/psycopg2_binary-2.9.10-cp313-cp313-musllinux_1_2_x86_64.whl",hashes = {sha256 = "f8157bed2f51db683f31306aa497311b560f2265998122abe1dce6428bd86567"}}, + {name = "psycopg2_binary-2.9.10-cp313-cp313-win_amd64.whl",url = "https://files.pythonhosted.org/packages/08/50/d13ea0a054189ae1bc21af1d85b6f8bb9bbc5572991055d70ad9006fe2d6/psycopg2_binary-2.9.10-cp313-cp313-win_amd64.whl",hashes = {sha256 = "27422aa5f11fbcd9b18da48373eb67081243662f9b46e6fd07c3eb46e4535142"}}, ] marker = "python_version >= \"3.13\" and \"default\" in dependency_groups" @@ -633,8 +660,21 @@ marker = "python_version >= \"3.13\" and \"types\" in dependency_groups" [packages.tool.pdm] dependencies = [] +[[packages]] +name = "tzdata" +version = "2025.2" +requires-python = ">=2" +sdist = {name = "tzdata-2025.2.tar.gz", url = "https://files.pythonhosted.org/packages/95/32/1a225d6164441be760d75c2c42e2780dc0873fe382da3e98a2e1e48361e5/tzdata-2025.2.tar.gz", hashes = {sha256 = "b60a638fcc0daffadf82fe0f57e53d06bdec2f36c4df66280ae79bce6bd6f2b9"}} +wheels = [ + {name = "tzdata-2025.2-py2.py3-none-any.whl",url = "https://files.pythonhosted.org/packages/5c/23/c7abc0ca0a1526a0774eca151daeb8de62ec457e77262b66b359c3c7679e/tzdata-2025.2-py2.py3-none-any.whl",hashes = {sha256 = "1a403fada01ff9221ca8044d701868fa132215d84beb92242d9acd2147f667a8"}}, +] +marker = "sys_platform == \"win32\" and python_version >= \"3.13\" and \"default\" in dependency_groups" + +[packages.tool.pdm] +dependencies = [] + [tool.pdm] -hashes = {sha256 = "8f79d3a116fb2aeff8263d46e00c1f48dbba637f607c3da738af719783d85afe"} +hashes = {sha256 = "993642e8053f231239acbb7c445ace66bc6705d078056cf64d5ce3729d4d43c3"} strategy = ["inherit_metadata", "static_urls"] [[tool.pdm.targets]] diff --git a/pylock.minimal.toml b/pylock.minimal.toml index e6aa2bd..66189f3 100644 --- a/pylock.minimal.toml +++ b/pylock.minimal.toml @@ -251,17 +251,63 @@ marker = "\"default\" in dependency_groups" dependencies = [] [[packages]] -name = "psycopg2" -version = "2.9.5" +name = "psycopg" +version = "3.0" requires-python = ">=3.6" -sdist = {name = "psycopg2-2.9.5.tar.gz", url = "https://files.pythonhosted.org/packages/89/d6/cd8c46417e0f7a16b4b0fc321f4ab676a59250d08fce5b64921897fb07cc/psycopg2-2.9.5.tar.gz", hashes = {sha256 = "a5246d2e683a972e2187a8714b5c2cf8156c064629f9a9b1a873c1730d9e245a"}} +sdist = {name = "psycopg-3.0.tar.gz", url = "https://files.pythonhosted.org/packages/2a/1d/77fd95c963b8e066de8b49e592e7e912ae53a24275f04a4d5279f67e454a/psycopg-3.0.tar.gz", hashes = {sha256 = "82bce906431f44e81d72fbe0b924a71eebec09189bcf0dd16003e33960e36efa"}} wheels = [ - {name = "psycopg2-2.9.5-cp311-cp311-win32.whl",url = "https://files.pythonhosted.org/packages/9f/1f/df4c9ab12634dc89c71c2184b2524adccd804af2bacc8968a7c831642338/psycopg2-2.9.5-cp311-cp311-win32.whl",hashes = {sha256 = "093e3894d2d3c592ab0945d9eba9d139c139664dcf83a1c440b8a7aa9bb21955"}}, - {name = "psycopg2-2.9.5-cp311-cp311-win_amd64.whl",url = "https://files.pythonhosted.org/packages/23/b2/679ba212dd7fc5f726913053756b23344d5520b4fa49c2a93af31d0f4508/psycopg2-2.9.5-cp311-cp311-win_amd64.whl",hashes = {sha256 = "920bf418000dd17669d2904472efeab2b20546efd0548139618f8fa305d1d7ad"}}, - {name = "psycopg2-2.9.5-cp310-cp310-win32.whl",url = "https://files.pythonhosted.org/packages/04/51/00ed720de223485a56c28b404747b96806679e720f4c97a75bdd556a01f4/psycopg2-2.9.5-cp310-cp310-win32.whl",hashes = {sha256 = "d3ef67e630b0de0779c42912fe2cbae3805ebaba30cda27fea2a3de650a9414f"}}, - {name = "psycopg2-2.9.5-cp310-cp310-win_amd64.whl",url = "https://files.pythonhosted.org/packages/af/4f/3abf262dc49cb70c2fbb6d38a9a8956a0c79ba2d102e457958bc4f21660f/psycopg2-2.9.5-cp310-cp310-win_amd64.whl",hashes = {sha256 = "4cb9936316d88bfab614666eb9e32995e794ed0f8f6b3b718666c22819c1d7ee"}}, - {name = "psycopg2-2.9.5-cp39-cp39-win32.whl",url = "https://files.pythonhosted.org/packages/c8/80/9c4a7f453fbef2acc65a66f79def6b048787f5ff82005682a98252311e68/psycopg2-2.9.5-cp39-cp39-win32.whl",hashes = {sha256 = "322fd5fca0b1113677089d4ebd5222c964b1760e361f151cbb2706c4912112c5"}}, - {name = "psycopg2-2.9.5-cp39-cp39-win_amd64.whl",url = "https://files.pythonhosted.org/packages/10/db/a34baee6275fcc371ecdb30040042ed2a548f18c29339ea9ca2406a35cba/psycopg2-2.9.5-cp39-cp39-win_amd64.whl",hashes = {sha256 = "190d51e8c1b25a47484e52a79638a8182451d6f6dff99f26ad9bd81e5359a0fa"}}, + {name = "psycopg-3.0-py3-none-any.whl",url = "https://files.pythonhosted.org/packages/d8/31/9ce982570ebb20d092ba4d029ed2702634789bc0cc8deb0c09ba6e22e4db/psycopg-3.0-py3-none-any.whl",hashes = {sha256 = "65b9fb8838dae61040ad3e0cfc184d4ffd17f740ef4c0353d76050a6eb061a9c"}}, +] +marker = "\"default\" in dependency_groups" + +[packages.tool.pdm] +dependencies = [ + "typing-extensions; python_version < \"3.8\"", + "backports-zoneinfo; python_version < \"3.9\"", +] + +[[packages]] +name = "psycopg2-binary" +version = "2.9.5" +requires-python = ">=3.6" +sdist = {name = "psycopg2-binary-2.9.5.tar.gz", url = "https://files.pythonhosted.org/packages/8c/45/77147700f5088efaf9235a3a62b611b594d477a5c5613b5316d0ebd18be0/psycopg2-binary-2.9.5.tar.gz", hashes = {sha256 = "33e632d0885b95a8b97165899006c40e9ecdc634a529dca7b991eb7de4ece41c"}} +wheels = [ + {name = "psycopg2_binary-2.9.5-cp311-cp311-macosx_10_9_universal2.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl",url = "https://files.pythonhosted.org/packages/71/00/bcdc61fb9c96f122fa8d1afb0608160b5b7fbba935ce8058e6b74520cade/psycopg2_binary-2.9.5-cp311-cp311-macosx_10_9_universal2.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl",hashes = {sha256 = "426c2ae999135d64e6a18849a7d1ad0e1bd007277e4a8f4752eaa40a96b550ff"}}, + {name = "psycopg2_binary-2.9.5-cp311-cp311-macosx_11_0_arm64.whl",url = "https://files.pythonhosted.org/packages/ce/0b/71b366318c88ce6517561048b3310388c12cfe6bd038e3531cda9fe30327/psycopg2_binary-2.9.5-cp311-cp311-macosx_11_0_arm64.whl",hashes = {sha256 = "7cf1d44e710ca3a9ce952bda2855830fe9f9017ed6259e01fcd71ea6287565f5"}}, + {name = "psycopg2_binary-2.9.5-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl",url = "https://files.pythonhosted.org/packages/e1/9b/da86cea11053996728cf473d02d63a2137a74834a0e93af4ee4c42c993ae/psycopg2_binary-2.9.5-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl",hashes = {sha256 = "024030b13bdcbd53d8a93891a2cf07719715724fc9fee40243f3bd78b4264b8f"}}, + {name = "psycopg2_binary-2.9.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",url = "https://files.pythonhosted.org/packages/36/af/a9f06e2469e943364b2383b45b3209b40350c105281948df62153394b4a9/psycopg2_binary-2.9.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",hashes = {sha256 = "bcda1c84a1c533c528356da5490d464a139b6e84eb77cc0b432e38c5c6dd7882"}}, + {name = "psycopg2_binary-2.9.5-cp311-cp311-manylinux_2_24_aarch64.whl",url = "https://files.pythonhosted.org/packages/b9/97/61d8794442b50456f3263ca263af9fde2a1fde93811b74fe0c5a9519f6ca/psycopg2_binary-2.9.5-cp311-cp311-manylinux_2_24_aarch64.whl",hashes = {sha256 = "2ef892cabdccefe577088a79580301f09f2a713eb239f4f9f62b2b29cafb0577"}}, + {name = "psycopg2_binary-2.9.5-cp311-cp311-manylinux_2_24_ppc64le.whl",url = "https://files.pythonhosted.org/packages/62/ed/2b7b8727677e2d4b5d53a962a2c9e11d7d141b9a5cb8681b37110d953341/psycopg2_binary-2.9.5-cp311-cp311-manylinux_2_24_ppc64le.whl",hashes = {sha256 = "af0516e1711995cb08dc19bbd05bec7dbdebf4185f68870595156718d237df3e"}}, + {name = "psycopg2_binary-2.9.5-cp311-cp311-musllinux_1_1_aarch64.whl",url = "https://files.pythonhosted.org/packages/b0/82/27c5e2442ba10ab4f01de9c3bf2043581aa8e80e2f64fb64d9cc2eb847d6/psycopg2_binary-2.9.5-cp311-cp311-musllinux_1_1_aarch64.whl",hashes = {sha256 = "e72c91bda9880f097c8aa3601a2c0de6c708763ba8128006151f496ca9065935"}}, + {name = "psycopg2_binary-2.9.5-cp311-cp311-musllinux_1_1_i686.whl",url = "https://files.pythonhosted.org/packages/66/e7/4764b10034b1323d33758823883034c1347f6ebeaf2b45b60f076749d360/psycopg2_binary-2.9.5-cp311-cp311-musllinux_1_1_i686.whl",hashes = {sha256 = "e67b3c26e9b6d37b370c83aa790bbc121775c57bfb096c2e77eacca25fd0233b"}}, + {name = "psycopg2_binary-2.9.5-cp311-cp311-musllinux_1_1_ppc64le.whl",url = "https://files.pythonhosted.org/packages/fa/52/ecd23580763212731eec723313ee3678484ed7de0d22214f6b70120aaa29/psycopg2_binary-2.9.5-cp311-cp311-musllinux_1_1_ppc64le.whl",hashes = {sha256 = "5fc447058d083b8c6ac076fc26b446d44f0145308465d745fba93a28c14c9e32"}}, + {name = "psycopg2_binary-2.9.5-cp311-cp311-musllinux_1_1_x86_64.whl",url = "https://files.pythonhosted.org/packages/e3/57/7b776b14f68532be17659a20741f17457e0583c800ddcc3610270cec584c/psycopg2_binary-2.9.5-cp311-cp311-musllinux_1_1_x86_64.whl",hashes = {sha256 = "d892bfa1d023c3781a3cab8dd5af76b626c483484d782e8bd047c180db590e4c"}}, + {name = "psycopg2_binary-2.9.5-cp311-cp311-win32.whl",url = "https://files.pythonhosted.org/packages/32/85/8a6dbcf799136e6085e0cfb869babb8e19843df23c405a65840bc22f6dbf/psycopg2_binary-2.9.5-cp311-cp311-win32.whl",hashes = {sha256 = "2abccab84d057723d2ca8f99ff7b619285d40da6814d50366f61f0fc385c3903"}}, + {name = "psycopg2_binary-2.9.5-cp311-cp311-win_amd64.whl",url = "https://files.pythonhosted.org/packages/89/ca/4eb68b87bb664a6f6c56b72ac876626c8c036b086892fb6cc803c8d38d2b/psycopg2_binary-2.9.5-cp311-cp311-win_amd64.whl",hashes = {sha256 = "bef7e3f9dc6f0c13afdd671008534be5744e0e682fb851584c8c3a025ec09720"}}, + {name = "psycopg2_binary-2.9.5-cp310-cp310-macosx_10_15_x86_64.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl",url = "https://files.pythonhosted.org/packages/53/4f/8216992bcb530c6e599f8276a27b87b5cbbc06423e68eb2668413481214c/psycopg2_binary-2.9.5-cp310-cp310-macosx_10_15_x86_64.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl",hashes = {sha256 = "0775d6252ccb22b15da3b5d7adbbf8cfe284916b14b6dc0ff503a23edb01ee85"}}, + {name = "psycopg2_binary-2.9.5-cp310-cp310-macosx_11_0_arm64.whl",url = "https://files.pythonhosted.org/packages/c7/4e/c94d534a29f17b4b54b5a7e4020e9e4dc51641a9cdce806323df68d0f5ca/psycopg2_binary-2.9.5-cp310-cp310-macosx_11_0_arm64.whl",hashes = {sha256 = "2ec46ed947801652c9643e0b1dc334cfb2781232e375ba97312c2fc256597632"}}, + {name = "psycopg2_binary-2.9.5-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl",url = "https://files.pythonhosted.org/packages/03/b8/f85694de7d17b37bc4bdc31e8e623b9727c4b7491b1e7b752f2d8b5cc8e0/psycopg2_binary-2.9.5-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl",hashes = {sha256 = "3520d7af1ebc838cc6084a3281145d5cd5bdd43fdef139e6db5af01b92596cb7"}}, + {name = "psycopg2_binary-2.9.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",url = "https://files.pythonhosted.org/packages/72/29/e16ac3d2722f2a3bc20823e6acc30d9ad56136652cce1324502adf94da1f/psycopg2_binary-2.9.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",hashes = {sha256 = "5cbc554ba47ecca8cd3396ddaca85e1ecfe3e48dd57dc5e415e59551affe568e"}}, + {name = "psycopg2_binary-2.9.5-cp310-cp310-manylinux_2_24_aarch64.whl",url = "https://files.pythonhosted.org/packages/67/8d/aab7e25dd2961eb355eb889e1a668cd49635243e9b9051ac5b2f5fb7a84f/psycopg2_binary-2.9.5-cp310-cp310-manylinux_2_24_aarch64.whl",hashes = {sha256 = "5d28ecdf191db558d0c07d0f16524ee9d67896edf2b7990eea800abeb23ebd61"}}, + {name = "psycopg2_binary-2.9.5-cp310-cp310-manylinux_2_24_ppc64le.whl",url = "https://files.pythonhosted.org/packages/25/62/b73e3441e5a291b0ea3559face0ad70ee53b10d20ebe8bf01e48006abd3e/psycopg2_binary-2.9.5-cp310-cp310-manylinux_2_24_ppc64le.whl",hashes = {sha256 = "b9c33d4aef08dfecbd1736ceab8b7b3c4358bf10a0121483e5cd60d3d308cc64"}}, + {name = "psycopg2_binary-2.9.5-cp310-cp310-musllinux_1_1_aarch64.whl",url = "https://files.pythonhosted.org/packages/5c/26/5000a9f311162dc560aecc8c141bee498e061140c22b0a301a84bc5d0e0f/psycopg2_binary-2.9.5-cp310-cp310-musllinux_1_1_aarch64.whl",hashes = {sha256 = "05b3d479425e047c848b9782cd7aac9c6727ce23181eb9647baf64ffdfc3da41"}}, + {name = "psycopg2_binary-2.9.5-cp310-cp310-musllinux_1_1_i686.whl",url = "https://files.pythonhosted.org/packages/95/d5/bbaf6ea0fb7d555e86656b67e03c7bf6506ef3fdfd73470e93ce7073db19/psycopg2_binary-2.9.5-cp310-cp310-musllinux_1_1_i686.whl",hashes = {sha256 = "1e491e6489a6cb1d079df8eaa15957c277fdedb102b6a68cfbf40c4994412fd0"}}, + {name = "psycopg2_binary-2.9.5-cp310-cp310-musllinux_1_1_ppc64le.whl",url = "https://files.pythonhosted.org/packages/17/e7/58947b0f3e6f7ed244bbc7831e42fcf1ef582e8a6c13364cb2cdf19724a3/psycopg2_binary-2.9.5-cp310-cp310-musllinux_1_1_ppc64le.whl",hashes = {sha256 = "9e32cedc389bcb76d9f24ea8a012b3cb8385ee362ea437e1d012ffaed106c17d"}}, + {name = "psycopg2_binary-2.9.5-cp310-cp310-musllinux_1_1_x86_64.whl",url = "https://files.pythonhosted.org/packages/91/f2/556cc32bbf1271310a6cc74f3f2852b2b8dd3231789d942bda4f4625231e/psycopg2_binary-2.9.5-cp310-cp310-musllinux_1_1_x86_64.whl",hashes = {sha256 = "46850a640df62ae940e34a163f72e26aca1f88e2da79148e1862faaac985c302"}}, + {name = "psycopg2_binary-2.9.5-cp310-cp310-win32.whl",url = "https://files.pythonhosted.org/packages/4a/49/ba8b695e63f49e09331347731253909d853dc6e5316740ef7cf0389460d9/psycopg2_binary-2.9.5-cp310-cp310-win32.whl",hashes = {sha256 = "3d790f84201c3698d1bfb404c917f36e40531577a6dda02e45ba29b64d539867"}}, + {name = "psycopg2_binary-2.9.5-cp310-cp310-win_amd64.whl",url = "https://files.pythonhosted.org/packages/e6/a9/00b93fee5384a6e0d5fef8fecc753c9729d1f911eea90f8628a4a6310855/psycopg2_binary-2.9.5-cp310-cp310-win_amd64.whl",hashes = {sha256 = "1764546ffeaed4f9428707be61d68972eb5ede81239b46a45843e0071104d0dd"}}, + {name = "psycopg2_binary-2.9.5-cp39-cp39-macosx_10_15_x86_64.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl",url = "https://files.pythonhosted.org/packages/fa/88/e44363a9c68abfab4f596850636b4be496d479845877a507a73a651ef623/psycopg2_binary-2.9.5-cp39-cp39-macosx_10_15_x86_64.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl",hashes = {sha256 = "25382c7d174c679ce6927c16b6fbb68b10e56ee44b1acb40671e02d29f2fce7c"}}, + {name = "psycopg2_binary-2.9.5-cp39-cp39-macosx_11_0_arm64.whl",url = "https://files.pythonhosted.org/packages/63/db/67c2a94c3d89c48a2a4efc2029f6dc082faa3bc3dd14de49346c126c9600/psycopg2_binary-2.9.5-cp39-cp39-macosx_11_0_arm64.whl",hashes = {sha256 = "9c38d3869238e9d3409239bc05bc27d6b7c99c2a460ea337d2814b35fb4fea1b"}}, + {name = "psycopg2_binary-2.9.5-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl",url = "https://files.pythonhosted.org/packages/db/c8/9f58d89b864f052a2e99cb3a9fd3e64c20984b1319b5d207eb629b4f9c40/psycopg2_binary-2.9.5-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl",hashes = {sha256 = "5c6527c8efa5226a9e787507652dd5ba97b62d29b53c371a85cd13f957fe4d42"}}, + {name = "psycopg2_binary-2.9.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",url = "https://files.pythonhosted.org/packages/62/25/5b84c484aefa78f91366eea8b778de797681a5bc626b569555011874de58/psycopg2_binary-2.9.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",hashes = {sha256 = "e59137cdb970249ae60be2a49774c6dfb015bd0403f05af1fe61862e9626642d"}}, + {name = "psycopg2_binary-2.9.5-cp39-cp39-manylinux_2_24_aarch64.whl",url = "https://files.pythonhosted.org/packages/31/48/e7fe28aca3e2bf3b5fd6f73f681c0be26837b680c815b7cf53b0311a5a28/psycopg2_binary-2.9.5-cp39-cp39-manylinux_2_24_aarch64.whl",hashes = {sha256 = "d4c7b3a31502184e856df1f7bbb2c3735a05a8ce0ade34c5277e1577738a5c91"}}, + {name = "psycopg2_binary-2.9.5-cp39-cp39-manylinux_2_24_ppc64le.whl",url = "https://files.pythonhosted.org/packages/d7/4a/96d3d343ba3d7f1408f091e43bc6265267b625421e1a4aa5f4ea210013e1/psycopg2_binary-2.9.5-cp39-cp39-manylinux_2_24_ppc64le.whl",hashes = {sha256 = "b9a794cef1d9c1772b94a72eec6da144c18e18041d294a9ab47669bc77a80c1d"}}, + {name = "psycopg2_binary-2.9.5-cp39-cp39-musllinux_1_1_aarch64.whl",url = "https://files.pythonhosted.org/packages/0e/07/c689d0c42e86da7e055e3298a3854931c38e8332e571e6cdf71cedec4aa3/psycopg2_binary-2.9.5-cp39-cp39-musllinux_1_1_aarch64.whl",hashes = {sha256 = "c5254cbd4f4855e11cebf678c1a848a3042d455a22a4ce61349c36aafd4c2267"}}, + {name = "psycopg2_binary-2.9.5-cp39-cp39-musllinux_1_1_i686.whl",url = "https://files.pythonhosted.org/packages/ff/e2/e82829bbf209d9fa4ca5df95b244eab30ee170d6c3ba2bf8f0a8a02c64bf/psycopg2_binary-2.9.5-cp39-cp39-musllinux_1_1_i686.whl",hashes = {sha256 = "c5e65c6ac0ae4bf5bef1667029f81010b6017795dcb817ba5c7b8a8d61fab76f"}}, + {name = "psycopg2_binary-2.9.5-cp39-cp39-musllinux_1_1_ppc64le.whl",url = "https://files.pythonhosted.org/packages/29/e5/9dc756e4eb496764199ca1fbee235e0b6b935c987922af2243e6e0001d24/psycopg2_binary-2.9.5-cp39-cp39-musllinux_1_1_ppc64le.whl",hashes = {sha256 = "74eddec4537ab1f701a1647214734bc52cee2794df748f6ae5908e00771f180a"}}, + {name = "psycopg2_binary-2.9.5-cp39-cp39-musllinux_1_1_x86_64.whl",url = "https://files.pythonhosted.org/packages/f1/39/6e2d51b2f35b4e272f9380797e1b838a1d2086f06414ea837f62a3505243/psycopg2_binary-2.9.5-cp39-cp39-musllinux_1_1_x86_64.whl",hashes = {sha256 = "01ad49d68dd8c5362e4bfb4158f2896dc6e0c02e87b8a3770fc003459f1a4425"}}, + {name = "psycopg2_binary-2.9.5-cp39-cp39-win32.whl",url = "https://files.pythonhosted.org/packages/8f/c6/cc416da1edbeaf8e9c69eb811d4495920a6dc7fe71b689ce67db1e84bfce/psycopg2_binary-2.9.5-cp39-cp39-win32.whl",hashes = {sha256 = "937880290775033a743f4836aa253087b85e62784b63fd099ee725d567a48aa1"}}, + {name = "psycopg2_binary-2.9.5-cp39-cp39-win_amd64.whl",url = "https://files.pythonhosted.org/packages/3e/97/d8bda00145b96d79dc9ff6790640e6b1c503c2ccadd76a45fef8dc342b95/psycopg2_binary-2.9.5-cp39-cp39-win_amd64.whl",hashes = {sha256 = "484405b883630f3e74ed32041a87456c5e0e63a8e3429aa93e8714c366d62bd1"}}, ] marker = "\"default\" in dependency_groups" @@ -801,7 +847,7 @@ dependencies = [ ] [tool.pdm] -hashes = {sha256 = "8f79d3a116fb2aeff8263d46e00c1f48dbba637f607c3da738af719783d85afe"} +hashes = {sha256 = "993642e8053f231239acbb7c445ace66bc6705d078056cf64d5ce3729d4d43c3"} strategy = ["direct_minimal_versions", "inherit_metadata", "static_urls"] [[tool.pdm.targets]] diff --git a/pylock.toml b/pylock.toml index d274855..7b801c5 100644 --- a/pylock.toml +++ b/pylock.toml @@ -360,20 +360,86 @@ marker = "\"default\" in dependency_groups" dependencies = [] [[packages]] -name = "psycopg2" +name = "psycopg" +version = "3.2.10" +requires-python = ">=3.8" +sdist = {name = "psycopg-3.2.10.tar.gz", url = "https://files.pythonhosted.org/packages/a9/f1/0258a123c045afaf3c3b60c22ccff077bceeb24b8dc2c593270899353bd0/psycopg-3.2.10.tar.gz", hashes = {sha256 = "0bce99269d16ed18401683a8569b2c5abd94f72f8364856d56c0389bcd50972a"}} +wheels = [ + {name = "psycopg-3.2.10-py3-none-any.whl",url = "https://files.pythonhosted.org/packages/4a/90/422ffbbeeb9418c795dae2a768db860401446af0c6768bc061ce22325f58/psycopg-3.2.10-py3-none-any.whl",hashes = {sha256 = "ab5caf09a9ec42e314a21f5216dbcceac528e0e05142e42eea83a3b28b320ac3"}}, +] +marker = "\"default\" in dependency_groups" + +[packages.tool.pdm] +dependencies = [ + "backports-zoneinfo>=0.2.0; python_version < \"3.9\"", + "typing-extensions>=4.6; python_version < \"3.13\"", + "tzdata; sys_platform == \"win32\"", +] + +[[packages]] +name = "psycopg2-binary" version = "2.9.10" requires-python = ">=3.8" -sdist = {name = "psycopg2-2.9.10.tar.gz", url = "https://files.pythonhosted.org/packages/62/51/2007ea29e605957a17ac6357115d0c1a1b60c8c984951c19419b3474cdfd/psycopg2-2.9.10.tar.gz", hashes = {sha256 = "12ec0b40b0273f95296233e8750441339298e6a572f7039da5b260e3c8b60e11"}} -wheels = [ - {name = "psycopg2-2.9.10-cp313-cp313-win_amd64.whl",url = "https://files.pythonhosted.org/packages/ae/49/a6cfc94a9c483b1fa401fbcb23aca7892f60c7269c5ffa2ac408364f80dc/psycopg2-2.9.10-cp313-cp313-win_amd64.whl",hashes = {sha256 = "91fd603a2155da8d0cfcdbf8ab24a2d54bca72795b90d2a3ed2b6da8d979dee2"}}, - {name = "psycopg2-2.9.10-cp312-cp312-win32.whl",url = "https://files.pythonhosted.org/packages/3d/16/4623fad6076448df21c1a870c93a9774ad8a7b4dd1660223b59082dd8fec/psycopg2-2.9.10-cp312-cp312-win32.whl",hashes = {sha256 = "65a63d7ab0e067e2cdb3cf266de39663203d38d6a8ed97f5ca0cb315c73fe067"}}, - {name = "psycopg2-2.9.10-cp312-cp312-win_amd64.whl",url = "https://files.pythonhosted.org/packages/66/de/baed128ae0fc07460d9399d82e631ea31a1f171c0c4ae18f9808ac6759e3/psycopg2-2.9.10-cp312-cp312-win_amd64.whl",hashes = {sha256 = "4a579d6243da40a7b3182e0430493dbd55950c493d8c68f4eec0b302f6bbf20e"}}, - {name = "psycopg2-2.9.10-cp311-cp311-win32.whl",url = "https://files.pythonhosted.org/packages/20/a2/c51ca3e667c34e7852157b665e3d49418e68182081060231d514dd823225/psycopg2-2.9.10-cp311-cp311-win32.whl",hashes = {sha256 = "47c4f9875125344f4c2b870e41b6aad585901318068acd01de93f3677a6522c2"}}, - {name = "psycopg2-2.9.10-cp311-cp311-win_amd64.whl",url = "https://files.pythonhosted.org/packages/33/39/5a9a229bb5414abeb86e33b8fc8143ab0aecce5a7f698a53e31367d30caa/psycopg2-2.9.10-cp311-cp311-win_amd64.whl",hashes = {sha256 = "0435034157049f6846e95103bd8f5a668788dd913a7c30162ca9503fdf542cb4"}}, - {name = "psycopg2-2.9.10-cp310-cp310-win32.whl",url = "https://files.pythonhosted.org/packages/0a/a9/146b6bdc0d33539a359f5e134ee6dda9173fb8121c5b96af33fa299e50c4/psycopg2-2.9.10-cp310-cp310-win32.whl",hashes = {sha256 = "5df2b672140f95adb453af93a7d669d7a7bf0a56bcd26f1502329166f4a61716"}}, - {name = "psycopg2-2.9.10-cp310-cp310-win_amd64.whl",url = "https://files.pythonhosted.org/packages/47/50/c509e56f725fd2572b59b69bd964edaf064deebf1c896b2452f6b46fdfb3/psycopg2-2.9.10-cp310-cp310-win_amd64.whl",hashes = {sha256 = "c6f7b8561225f9e711a9c47087388a97fdc948211c10a4bccbf0ba68ab7b3b5a"}}, - {name = "psycopg2-2.9.10-cp39-cp39-win32.whl",url = "https://files.pythonhosted.org/packages/5f/29/bc9639b9c50abd93a8274fd2deffbf70b2a65aa9e7881e63ea6bc4319e84/psycopg2-2.9.10-cp39-cp39-win32.whl",hashes = {sha256 = "9d5b3b94b79a844a986d029eee38998232451119ad653aea42bb9220a8c5066b"}}, - {name = "psycopg2-2.9.10-cp39-cp39-win_amd64.whl",url = "https://files.pythonhosted.org/packages/2c/f8/0be7d99d24656b689d83ac167240c3527efb0b161d814fb1dd58329ddf75/psycopg2-2.9.10-cp39-cp39-win_amd64.whl",hashes = {sha256 = "88138c8dedcbfa96408023ea2b0c369eda40fe5d75002c0964c78f46f11fa442"}}, +sdist = {name = "psycopg2-binary-2.9.10.tar.gz", url = "https://files.pythonhosted.org/packages/cb/0e/bdc8274dc0585090b4e3432267d7be4dfbfd8971c0fa59167c711105a6bf/psycopg2-binary-2.9.10.tar.gz", hashes = {sha256 = "4b3df0e6990aa98acda57d983942eff13d824135fe2250e6522edaa782a06de2"}} +wheels = [ + {name = "psycopg2_binary-2.9.10-cp313-cp313-macosx_12_0_x86_64.whl",url = "https://files.pythonhosted.org/packages/3e/30/d41d3ba765609c0763505d565c4d12d8f3c79793f0d0f044ff5a28bf395b/psycopg2_binary-2.9.10-cp313-cp313-macosx_12_0_x86_64.whl",hashes = {sha256 = "26540d4a9a4e2b096f1ff9cce51253d0504dca5a85872c7f7be23be5a53eb18d"}}, + {name = "psycopg2_binary-2.9.10-cp313-cp313-macosx_14_0_arm64.whl",url = "https://files.pythonhosted.org/packages/35/44/257ddadec7ef04536ba71af6bc6a75ec05c5343004a7ec93006bee66c0bc/psycopg2_binary-2.9.10-cp313-cp313-macosx_14_0_arm64.whl",hashes = {sha256 = "e217ce4d37667df0bc1c397fdcd8de5e81018ef305aed9415c3b093faaeb10fb"}}, + {name = "psycopg2_binary-2.9.10-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",url = "https://files.pythonhosted.org/packages/1b/11/48ea1cd11de67f9efd7262085588790a95d9dfcd9b8a687d46caf7305c1a/psycopg2_binary-2.9.10-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",hashes = {sha256 = "245159e7ab20a71d989da00f280ca57da7641fa2cdcf71749c193cea540a74f7"}}, + {name = "psycopg2_binary-2.9.10-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl",url = "https://files.pythonhosted.org/packages/62/e0/62ce5ee650e6c86719d621a761fe4bc846ab9eff8c1f12b1ed5741bf1c9b/psycopg2_binary-2.9.10-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl",hashes = {sha256 = "3c4ded1a24b20021ebe677b7b08ad10bf09aac197d6943bfe6fec70ac4e4690d"}}, + {name = "psycopg2_binary-2.9.10-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",url = "https://files.pythonhosted.org/packages/27/ce/63f946c098611f7be234c0dd7cb1ad68b0b5744d34f68062bb3c5aa510c8/psycopg2_binary-2.9.10-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",hashes = {sha256 = "3abb691ff9e57d4a93355f60d4f4c1dd2d68326c968e7db17ea96df3c023ef73"}}, + {name = "psycopg2_binary-2.9.10-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",url = "https://files.pythonhosted.org/packages/43/25/c603cd81402e69edf7daa59b1602bd41eb9859e2824b8c0855d748366ac9/psycopg2_binary-2.9.10-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",hashes = {sha256 = "8608c078134f0b3cbd9f89b34bd60a943b23fd33cc5f065e8d5f840061bd0673"}}, + {name = "psycopg2_binary-2.9.10-cp313-cp313-musllinux_1_2_aarch64.whl",url = "https://files.pythonhosted.org/packages/5f/d6/8708d8c6fca531057fa170cdde8df870e8b6a9b136e82b361c65e42b841e/psycopg2_binary-2.9.10-cp313-cp313-musllinux_1_2_aarch64.whl",hashes = {sha256 = "230eeae2d71594103cd5b93fd29d1ace6420d0b86f4778739cb1a5a32f607d1f"}}, + {name = "psycopg2_binary-2.9.10-cp313-cp313-musllinux_1_2_i686.whl",url = "https://files.pythonhosted.org/packages/ce/ac/5b1ea50fc08a9df82de7e1771537557f07c2632231bbab652c7e22597908/psycopg2_binary-2.9.10-cp313-cp313-musllinux_1_2_i686.whl",hashes = {sha256 = "bb89f0a835bcfc1d42ccd5f41f04870c1b936d8507c6df12b7737febc40f0909"}}, + {name = "psycopg2_binary-2.9.10-cp313-cp313-musllinux_1_2_ppc64le.whl",url = "https://files.pythonhosted.org/packages/c4/fc/504d4503b2abc4570fac3ca56eb8fed5e437bf9c9ef13f36b6621db8ef00/psycopg2_binary-2.9.10-cp313-cp313-musllinux_1_2_ppc64le.whl",hashes = {sha256 = "f0c2d907a1e102526dd2986df638343388b94c33860ff3bbe1384130828714b1"}}, + {name = "psycopg2_binary-2.9.10-cp313-cp313-musllinux_1_2_x86_64.whl",url = "https://files.pythonhosted.org/packages/b2/d1/323581e9273ad2c0dbd1902f3fb50c441da86e894b6e25a73c3fda32c57e/psycopg2_binary-2.9.10-cp313-cp313-musllinux_1_2_x86_64.whl",hashes = {sha256 = "f8157bed2f51db683f31306aa497311b560f2265998122abe1dce6428bd86567"}}, + {name = "psycopg2_binary-2.9.10-cp313-cp313-win_amd64.whl",url = "https://files.pythonhosted.org/packages/08/50/d13ea0a054189ae1bc21af1d85b6f8bb9bbc5572991055d70ad9006fe2d6/psycopg2_binary-2.9.10-cp313-cp313-win_amd64.whl",hashes = {sha256 = "27422aa5f11fbcd9b18da48373eb67081243662f9b46e6fd07c3eb46e4535142"}}, + {name = "psycopg2_binary-2.9.10-cp312-cp312-macosx_12_0_x86_64.whl",url = "https://files.pythonhosted.org/packages/49/7d/465cc9795cf76f6d329efdafca74693714556ea3891813701ac1fee87545/psycopg2_binary-2.9.10-cp312-cp312-macosx_12_0_x86_64.whl",hashes = {sha256 = "880845dfe1f85d9d5f7c412efea7a08946a46894537e4e5d091732eb1d34d9a0"}}, + {name = "psycopg2_binary-2.9.10-cp312-cp312-macosx_14_0_arm64.whl",url = "https://files.pythonhosted.org/packages/8b/31/6d225b7b641a1a2148e3ed65e1aa74fc86ba3fee850545e27be9e1de893d/psycopg2_binary-2.9.10-cp312-cp312-macosx_14_0_arm64.whl",hashes = {sha256 = "9440fa522a79356aaa482aa4ba500b65f28e5d0e63b801abf6aa152a29bd842a"}}, + {name = "psycopg2_binary-2.9.10-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",url = "https://files.pythonhosted.org/packages/30/b7/a68c2b4bff1cbb1728e3ec864b2d92327c77ad52edcd27922535a8366f68/psycopg2_binary-2.9.10-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",hashes = {sha256 = "e3923c1d9870c49a2d44f795df0c889a22380d36ef92440ff618ec315757e539"}}, + {name = "psycopg2_binary-2.9.10-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl",url = "https://files.pythonhosted.org/packages/0b/b1/cfedc0e0e6f9ad61f8657fd173b2f831ce261c02a08c0b09c652b127d813/psycopg2_binary-2.9.10-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl",hashes = {sha256 = "7b2c956c028ea5de47ff3a8d6b3cc3330ab45cf0b7c3da35a2d6ff8420896526"}}, + {name = "psycopg2_binary-2.9.10-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",url = "https://files.pythonhosted.org/packages/18/ed/0a8e4153c9b769f59c02fb5e7914f20f0b2483a19dae7bf2db54b743d0d0/psycopg2_binary-2.9.10-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",hashes = {sha256 = "f758ed67cab30b9a8d2833609513ce4d3bd027641673d4ebc9c067e4d208eec1"}}, + {name = "psycopg2_binary-2.9.10-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",url = "https://files.pythonhosted.org/packages/10/db/d09da68c6a0cdab41566b74e0a6068a425f077169bed0946559b7348ebe9/psycopg2_binary-2.9.10-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",hashes = {sha256 = "8cd9b4f2cfab88ed4a9106192de509464b75a906462fb846b936eabe45c2063e"}}, + {name = "psycopg2_binary-2.9.10-cp312-cp312-musllinux_1_2_aarch64.whl",url = "https://files.pythonhosted.org/packages/94/28/4d6f8c255f0dfffb410db2b3f9ac5218d959a66c715c34cac31081e19b95/psycopg2_binary-2.9.10-cp312-cp312-musllinux_1_2_aarch64.whl",hashes = {sha256 = "6dc08420625b5a20b53551c50deae6e231e6371194fa0651dbe0fb206452ae1f"}}, + {name = "psycopg2_binary-2.9.10-cp312-cp312-musllinux_1_2_i686.whl",url = "https://files.pythonhosted.org/packages/05/f7/20d7bf796593c4fea95e12119d6cc384ff1f6141a24fbb7df5a668d29d29/psycopg2_binary-2.9.10-cp312-cp312-musllinux_1_2_i686.whl",hashes = {sha256 = "d7cd730dfa7c36dbe8724426bf5612798734bff2d3c3857f36f2733f5bfc7c00"}}, + {name = "psycopg2_binary-2.9.10-cp312-cp312-musllinux_1_2_ppc64le.whl",url = "https://files.pythonhosted.org/packages/4d/e4/0c407ae919ef626dbdb32835a03b6737013c3cc7240169843965cada2bdf/psycopg2_binary-2.9.10-cp312-cp312-musllinux_1_2_ppc64le.whl",hashes = {sha256 = "155e69561d54d02b3c3209545fb08938e27889ff5a10c19de8d23eb5a41be8a5"}}, + {name = "psycopg2_binary-2.9.10-cp312-cp312-musllinux_1_2_x86_64.whl",url = "https://files.pythonhosted.org/packages/2d/70/aa69c9f69cf09a01da224909ff6ce8b68faeef476f00f7ec377e8f03be70/psycopg2_binary-2.9.10-cp312-cp312-musllinux_1_2_x86_64.whl",hashes = {sha256 = "c3cc28a6fd5a4a26224007712e79b81dbaee2ffb90ff406256158ec4d7b52b47"}}, + {name = "psycopg2_binary-2.9.10-cp312-cp312-win32.whl",url = "https://files.pythonhosted.org/packages/d3/bd/213e59854fafe87ba47814bf413ace0dcee33a89c8c8c814faca6bc7cf3c/psycopg2_binary-2.9.10-cp312-cp312-win32.whl",hashes = {sha256 = "ec8a77f521a17506a24a5f626cb2aee7850f9b69a0afe704586f63a464f3cd64"}}, + {name = "psycopg2_binary-2.9.10-cp312-cp312-win_amd64.whl",url = "https://files.pythonhosted.org/packages/92/29/06261ea000e2dc1e22907dbbc483a1093665509ea586b29b8986a0e56733/psycopg2_binary-2.9.10-cp312-cp312-win_amd64.whl",hashes = {sha256 = "18c5ee682b9c6dd3696dad6e54cc7ff3a1a9020df6a5c0f861ef8bfd338c3ca0"}}, + {name = "psycopg2_binary-2.9.10-cp311-cp311-macosx_12_0_x86_64.whl",url = "https://files.pythonhosted.org/packages/9c/8f/9feb01291d0d7a0a4c6a6bab24094135c2b59c6a81943752f632c75896d6/psycopg2_binary-2.9.10-cp311-cp311-macosx_12_0_x86_64.whl",hashes = {sha256 = "04392983d0bb89a8717772a193cfaac58871321e3ec69514e1c4e0d4957b5aff"}}, + {name = "psycopg2_binary-2.9.10-cp311-cp311-macosx_14_0_arm64.whl",url = "https://files.pythonhosted.org/packages/15/30/346e4683532011561cd9c8dfeac6a8153dd96452fee0b12666058ab7893c/psycopg2_binary-2.9.10-cp311-cp311-macosx_14_0_arm64.whl",hashes = {sha256 = "1a6784f0ce3fec4edc64e985865c17778514325074adf5ad8f80636cd029ef7c"}}, + {name = "psycopg2_binary-2.9.10-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",url = "https://files.pythonhosted.org/packages/66/6e/4efebe76f76aee7ec99166b6c023ff8abdc4e183f7b70913d7c047701b79/psycopg2_binary-2.9.10-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",hashes = {sha256 = "b5f86c56eeb91dc3135b3fd8a95dc7ae14c538a2f3ad77a19645cf55bab1799c"}}, + {name = "psycopg2_binary-2.9.10-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl",url = "https://files.pythonhosted.org/packages/7f/fd/ff83313f86b50f7ca089b161b8e0a22bb3c319974096093cd50680433fdb/psycopg2_binary-2.9.10-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl",hashes = {sha256 = "2b3d2491d4d78b6b14f76881905c7a8a8abcf974aad4a8a0b065273a0ed7a2cb"}}, + {name = "psycopg2_binary-2.9.10-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",url = "https://files.pythonhosted.org/packages/e6/c4/bfadd202dcda8333a7ccafdc51c541dbdfce7c2c7cda89fa2374455d795f/psycopg2_binary-2.9.10-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",hashes = {sha256 = "2286791ececda3a723d1910441c793be44625d86d1a4e79942751197f4d30341"}}, + {name = "psycopg2_binary-2.9.10-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",url = "https://files.pythonhosted.org/packages/5d/f1/09f45ac25e704ac954862581f9f9ae21303cc5ded3d0b775532b407f0e90/psycopg2_binary-2.9.10-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",hashes = {sha256 = "512d29bb12608891e349af6a0cccedce51677725a921c07dba6342beaf576f9a"}}, + {name = "psycopg2_binary-2.9.10-cp311-cp311-musllinux_1_2_aarch64.whl",url = "https://files.pythonhosted.org/packages/9e/2e/9beaea078095cc558f215e38f647c7114987d9febfc25cb2beed7c3582a5/psycopg2_binary-2.9.10-cp311-cp311-musllinux_1_2_aarch64.whl",hashes = {sha256 = "5a507320c58903967ef7384355a4da7ff3f28132d679aeb23572753cbf2ec10b"}}, + {name = "psycopg2_binary-2.9.10-cp311-cp311-musllinux_1_2_i686.whl",url = "https://files.pythonhosted.org/packages/01/9e/ef93c5d93f3dc9fc92786ffab39e323b9aed066ba59fdc34cf85e2722271/psycopg2_binary-2.9.10-cp311-cp311-musllinux_1_2_i686.whl",hashes = {sha256 = "6d4fa1079cab9018f4d0bd2db307beaa612b0d13ba73b5c6304b9fe2fb441ff7"}}, + {name = "psycopg2_binary-2.9.10-cp311-cp311-musllinux_1_2_ppc64le.whl",url = "https://files.pythonhosted.org/packages/a5/f0/049e9631e3268fe4c5a387f6fc27e267ebe199acf1bc1bc9cbde4bd6916c/psycopg2_binary-2.9.10-cp311-cp311-musllinux_1_2_ppc64le.whl",hashes = {sha256 = "851485a42dbb0bdc1edcdabdb8557c09c9655dfa2ca0460ff210522e073e319e"}}, + {name = "psycopg2_binary-2.9.10-cp311-cp311-musllinux_1_2_x86_64.whl",url = "https://files.pythonhosted.org/packages/dc/9a/bcb8773b88e45fb5a5ea8339e2104d82c863a3b8558fbb2aadfe66df86b3/psycopg2_binary-2.9.10-cp311-cp311-musllinux_1_2_x86_64.whl",hashes = {sha256 = "35958ec9e46432d9076286dda67942ed6d968b9c3a6a2fd62b48939d1d78bf68"}}, + {name = "psycopg2_binary-2.9.10-cp311-cp311-win32.whl",url = "https://files.pythonhosted.org/packages/e2/6b/144336a9bf08a67d217b3af3246abb1d027095dab726f0687f01f43e8c03/psycopg2_binary-2.9.10-cp311-cp311-win32.whl",hashes = {sha256 = "ecced182e935529727401b24d76634a357c71c9275b356efafd8a2a91ec07392"}}, + {name = "psycopg2_binary-2.9.10-cp311-cp311-win_amd64.whl",url = "https://files.pythonhosted.org/packages/61/69/3b3d7bd583c6d3cbe5100802efa5beacaacc86e37b653fc708bf3d6853b8/psycopg2_binary-2.9.10-cp311-cp311-win_amd64.whl",hashes = {sha256 = "ee0e8c683a7ff25d23b55b11161c2663d4b099770f6085ff0a20d4505778d6b4"}}, + {name = "psycopg2_binary-2.9.10-cp310-cp310-macosx_12_0_x86_64.whl",url = "https://files.pythonhosted.org/packages/7a/81/331257dbf2801cdb82105306042f7a1637cc752f65f2bb688188e0de5f0b/psycopg2_binary-2.9.10-cp310-cp310-macosx_12_0_x86_64.whl",hashes = {sha256 = "0ea8e3d0ae83564f2fc554955d327fa081d065c8ca5cc6d2abb643e2c9c1200f"}}, + {name = "psycopg2_binary-2.9.10-cp310-cp310-macosx_14_0_arm64.whl",url = "https://files.pythonhosted.org/packages/e7/9a/7f4f2f031010bbfe6a02b4a15c01e12eb6b9b7b358ab33229f28baadbfc1/psycopg2_binary-2.9.10-cp310-cp310-macosx_14_0_arm64.whl",hashes = {sha256 = "3e9c76f0ac6f92ecfc79516a8034a544926430f7b080ec5a0537bca389ee0906"}}, + {name = "psycopg2_binary-2.9.10-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",url = "https://files.pythonhosted.org/packages/e5/57/8ddd4b374fa811a0b0a0f49b6abad1cde9cb34df73ea3348cc283fcd70b4/psycopg2_binary-2.9.10-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",hashes = {sha256 = "2ad26b467a405c798aaa1458ba09d7e2b6e5f96b1ce0ac15d82fd9f95dc38a92"}}, + {name = "psycopg2_binary-2.9.10-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl",url = "https://files.pythonhosted.org/packages/f9/66/d1e52c20d283f1f3a8e7e5c1e06851d432f123ef57b13043b4f9b21ffa1f/psycopg2_binary-2.9.10-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl",hashes = {sha256 = "270934a475a0e4b6925b5f804e3809dd5f90f8613621d062848dd82f9cd62007"}}, + {name = "psycopg2_binary-2.9.10-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",url = "https://files.pythonhosted.org/packages/a0/cb/592d44a9546aba78f8a1249021fe7c59d3afb8a0ba51434d6610cc3462b6/psycopg2_binary-2.9.10-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",hashes = {sha256 = "48b338f08d93e7be4ab2b5f1dbe69dc5e9ef07170fe1f86514422076d9c010d0"}}, + {name = "psycopg2_binary-2.9.10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",url = "https://files.pythonhosted.org/packages/64/33/c8548560b94b7617f203d7236d6cdf36fe1a5a3645600ada6efd79da946f/psycopg2_binary-2.9.10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",hashes = {sha256 = "7f4152f8f76d2023aac16285576a9ecd2b11a9895373a1f10fd9db54b3ff06b4"}}, + {name = "psycopg2_binary-2.9.10-cp310-cp310-musllinux_1_2_aarch64.whl",url = "https://files.pythonhosted.org/packages/b0/0e/c2da0db5bea88a3be52307f88b75eec72c4de62814cbe9ee600c29c06334/psycopg2_binary-2.9.10-cp310-cp310-musllinux_1_2_aarch64.whl",hashes = {sha256 = "32581b3020c72d7a421009ee1c6bf4a131ef5f0a968fab2e2de0c9d2bb4577f1"}}, + {name = "psycopg2_binary-2.9.10-cp310-cp310-musllinux_1_2_i686.whl",url = "https://files.pythonhosted.org/packages/15/d7/774afa1eadb787ddf41aab52d4c62785563e29949613c958955031408ae6/psycopg2_binary-2.9.10-cp310-cp310-musllinux_1_2_i686.whl",hashes = {sha256 = "2ce3e21dc3437b1d960521eca599d57408a695a0d3c26797ea0f72e834c7ffe5"}}, + {name = "psycopg2_binary-2.9.10-cp310-cp310-musllinux_1_2_ppc64le.whl",url = "https://files.pythonhosted.org/packages/5e/ed/440dc3f5991a8c6172a1cde44850ead0e483a375277a1aef7cfcec00af07/psycopg2_binary-2.9.10-cp310-cp310-musllinux_1_2_ppc64le.whl",hashes = {sha256 = "e984839e75e0b60cfe75e351db53d6db750b00de45644c5d1f7ee5d1f34a1ce5"}}, + {name = "psycopg2_binary-2.9.10-cp310-cp310-musllinux_1_2_x86_64.whl",url = "https://files.pythonhosted.org/packages/03/be/2cc8f4282898306732d2ae7b7378ae14e8df3c1231b53579efa056aae887/psycopg2_binary-2.9.10-cp310-cp310-musllinux_1_2_x86_64.whl",hashes = {sha256 = "3c4745a90b78e51d9ba06e2088a2fe0c693ae19cc8cb051ccda44e8df8a6eb53"}}, + {name = "psycopg2_binary-2.9.10-cp310-cp310-win32.whl",url = "https://files.pythonhosted.org/packages/d0/12/fb8e4f485d98c570e00dad5800e9a2349cfe0f71a767c856857160d343a5/psycopg2_binary-2.9.10-cp310-cp310-win32.whl",hashes = {sha256 = "e5720a5d25e3b99cd0dc5c8a440570469ff82659bb09431c1439b92caf184d3b"}}, + {name = "psycopg2_binary-2.9.10-cp310-cp310-win_amd64.whl",url = "https://files.pythonhosted.org/packages/22/4f/217cd2471ecf45d82905dd09085e049af8de6cfdc008b6663c3226dc1c98/psycopg2_binary-2.9.10-cp310-cp310-win_amd64.whl",hashes = {sha256 = "3c18f74eb4386bf35e92ab2354a12c17e5eb4d9798e4c0ad3a00783eae7cd9f1"}}, + {name = "psycopg2_binary-2.9.10-cp39-cp39-macosx_12_0_x86_64.whl",url = "https://files.pythonhosted.org/packages/a2/bc/e77648009b6e61af327c607543f65fdf25bcfb4100f5a6f3bdb62ddac03c/psycopg2_binary-2.9.10-cp39-cp39-macosx_12_0_x86_64.whl",hashes = {sha256 = "7a813c8bdbaaaab1f078014b9b0b13f5de757e2b5d9be6403639b298a04d218b"}}, + {name = "psycopg2_binary-2.9.10-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",url = "https://files.pythonhosted.org/packages/e0/e8/5a12211a1f5b959f3e3ccd342eace60c1f26422f53e06d687821dc268780/psycopg2_binary-2.9.10-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",hashes = {sha256 = "d00924255d7fc916ef66e4bf22f354a940c67179ad3fd7067d7a0a9c84d2fbfc"}}, + {name = "psycopg2_binary-2.9.10-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl",url = "https://files.pythonhosted.org/packages/47/ed/5932b0458a7fc61237b653df050513c8d18a6f4083cc7f90dcef967f7bce/psycopg2_binary-2.9.10-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl",hashes = {sha256 = "7559bce4b505762d737172556a4e6ea8a9998ecac1e39b5233465093e8cee697"}}, + {name = "psycopg2_binary-2.9.10-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",url = "https://files.pythonhosted.org/packages/71/df/8047d85c3d23864aca4613c3be1ea0fe61dbe4e050a89ac189f9dce4403e/psycopg2_binary-2.9.10-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",hashes = {sha256 = "e8b58f0a96e7a1e341fc894f62c1177a7c83febebb5ff9123b579418fdc8a481"}}, + {name = "psycopg2_binary-2.9.10-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",url = "https://files.pythonhosted.org/packages/f3/de/6157e4ef242920e8f2749f7708d5cc8815414bdd4a27a91996e7cd5c80df/psycopg2_binary-2.9.10-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",hashes = {sha256 = "6b269105e59ac96aba877c1707c600ae55711d9dcd3fc4b5012e4af68e30c648"}}, + {name = "psycopg2_binary-2.9.10-cp39-cp39-musllinux_1_2_aarch64.whl",url = "https://files.pythonhosted.org/packages/25/f9/0fc49efd2d4d6db3a8d0a3f5749b33a0d3fdd872cad49fbf5bfce1c50027/psycopg2_binary-2.9.10-cp39-cp39-musllinux_1_2_aarch64.whl",hashes = {sha256 = "79625966e176dc97ddabc142351e0409e28acf4660b88d1cf6adb876d20c490d"}}, + {name = "psycopg2_binary-2.9.10-cp39-cp39-musllinux_1_2_i686.whl",url = "https://files.pythonhosted.org/packages/57/bc/2ed1bd182219065692ed458d218d311b0b220b20662d25d913bc4e8d3549/psycopg2_binary-2.9.10-cp39-cp39-musllinux_1_2_i686.whl",hashes = {sha256 = "8aabf1c1a04584c168984ac678a668094d831f152859d06e055288fa515e4d30"}}, + {name = "psycopg2_binary-2.9.10-cp39-cp39-musllinux_1_2_ppc64le.whl",url = "https://files.pythonhosted.org/packages/71/2a/43f77a9b8ee0b10e2de784d97ddc099d9fe0d9eec462a006e4d2cc74756d/psycopg2_binary-2.9.10-cp39-cp39-musllinux_1_2_ppc64le.whl",hashes = {sha256 = "19721ac03892001ee8fdd11507e6a2e01f4e37014def96379411ca99d78aeb2c"}}, + {name = "psycopg2_binary-2.9.10-cp39-cp39-musllinux_1_2_x86_64.whl",url = "https://files.pythonhosted.org/packages/57/86/d2943df70469e6afab3b5b8e1367fccc61891f46de436b24ddee6f2c8404/psycopg2_binary-2.9.10-cp39-cp39-musllinux_1_2_x86_64.whl",hashes = {sha256 = "7f5d859928e635fa3ce3477704acee0f667b3a3d3e4bb109f2b18d4005f38287"}}, + {name = "psycopg2_binary-2.9.10-cp39-cp39-win32.whl",url = "https://files.pythonhosted.org/packages/85/21/195d69371330983aa16139e60ba855d0a18164c9295f3a3696be41bbcd54/psycopg2_binary-2.9.10-cp39-cp39-win32.whl",hashes = {sha256 = "3216ccf953b3f267691c90c6fe742e45d890d8272326b4a8b20850a03d05b7b8"}}, + {name = "psycopg2_binary-2.9.10-cp39-cp39-win_amd64.whl",url = "https://files.pythonhosted.org/packages/ad/53/73196ebc19d6fbfc22427b982fbc98698b7b9c361e5e7707e3a3247cf06d/psycopg2_binary-2.9.10-cp39-cp39-win_amd64.whl",hashes = {sha256 = "30e34c4e97964805f715206c7b789d54a78b70f3ff19fbe590104b71c45600e5"}}, ] marker = "\"default\" in dependency_groups" @@ -530,6 +596,19 @@ marker = "\"test\" in dependency_groups" [packages.tool.pdm] dependencies = [] +[[packages]] +name = "typing-extensions" +version = "4.15.0" +requires-python = ">=3.9" +sdist = {name = "typing_extensions-4.15.0.tar.gz", url = "https://files.pythonhosted.org/packages/72/94/1a15dd82efb362ac84269196e94cf00f187f7ed21c242792a923cdb1c61f/typing_extensions-4.15.0.tar.gz", hashes = {sha256 = "0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466"}} +wheels = [ + {name = "typing_extensions-4.15.0-py3-none-any.whl",url = "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl",hashes = {sha256 = "f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548"}}, +] +marker = "\"default\" in dependency_groups or \"lint\" in dependency_groups or \"test\" in dependency_groups" + +[packages.tool.pdm] +dependencies = [] + [[packages]] name = "colorama" version = "0.4.6" @@ -558,19 +637,6 @@ dependencies = [ "typing-extensions>=4.6.0; python_version < \"3.13\"", ] -[[packages]] -name = "typing-extensions" -version = "4.15.0" -requires-python = ">=3.9" -sdist = {name = "typing_extensions-4.15.0.tar.gz", url = "https://files.pythonhosted.org/packages/72/94/1a15dd82efb362ac84269196e94cf00f187f7ed21c242792a923cdb1c61f/typing_extensions-4.15.0.tar.gz", hashes = {sha256 = "0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466"}} -wheels = [ - {name = "typing_extensions-4.15.0-py3-none-any.whl",url = "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl",hashes = {sha256 = "f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548"}}, -] -marker = "\"default\" in dependency_groups or \"lint\" in dependency_groups or \"test\" in dependency_groups" - -[packages.tool.pdm] -dependencies = [] - [[packages]] name = "httpx" version = "0.28.1" @@ -885,8 +951,21 @@ marker = "\"types\" in dependency_groups" [packages.tool.pdm] dependencies = [] +[[packages]] +name = "tzdata" +version = "2025.2" +requires-python = ">=2" +sdist = {name = "tzdata-2025.2.tar.gz", url = "https://files.pythonhosted.org/packages/95/32/1a225d6164441be760d75c2c42e2780dc0873fe382da3e98a2e1e48361e5/tzdata-2025.2.tar.gz", hashes = {sha256 = "b60a638fcc0daffadf82fe0f57e53d06bdec2f36c4df66280ae79bce6bd6f2b9"}} +wheels = [ + {name = "tzdata-2025.2-py2.py3-none-any.whl",url = "https://files.pythonhosted.org/packages/5c/23/c7abc0ca0a1526a0774eca151daeb8de62ec457e77262b66b359c3c7679e/tzdata-2025.2-py2.py3-none-any.whl",hashes = {sha256 = "1a403fada01ff9221ca8044d701868fa132215d84beb92242d9acd2147f667a8"}}, +] +marker = "sys_platform == \"win32\" and \"default\" in dependency_groups" + +[packages.tool.pdm] +dependencies = [] + [tool.pdm] -hashes = {sha256 = "8f79d3a116fb2aeff8263d46e00c1f48dbba637f607c3da738af719783d85afe"} +hashes = {sha256 = "993642e8053f231239acbb7c445ace66bc6705d078056cf64d5ce3729d4d43c3"} strategy = ["inherit_metadata", "static_urls"] [[tool.pdm.targets]] diff --git a/pyproject.toml b/pyproject.toml index 3b10813..e6651d6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -12,11 +12,12 @@ authors = [ ] dependencies = [ "duckdb>=0.6.1", - "psycopg2>=2.9.5", + "psycopg2-binary>=2.9.5", "tqdm>=4.64.1", "XlsxWriter>=3.0.6", "httpx-folio>=0.2.3", "orjson>=2.2.1", + "psycopg>=3.0", ] requires-python = ">=3.9" readme = "README.md" diff --git a/src/ldlite/__init__.py b/src/ldlite/__init__.py index d1b8dc2..d506d76 100644 --- a/src/ldlite/__init__.py +++ b/src/ldlite/__init__.py @@ -41,6 +41,7 @@ from typing import TYPE_CHECKING, NoReturn, cast import duckdb +import psycopg import psycopg2 from httpx_folio.auth import FolioParams from tqdm import tqdm @@ -122,8 +123,8 @@ def _connect_db_duckdb( self.dbtype = DBType.DUCKDB fn = filename if filename is not None else ":memory:" db = duckdb.connect(database=fn) - self.db = cast("dbapi.DBAPIConnection", db) - return db + self.db = cast("dbapi.DBAPIConnection", db.cursor()) + return db.cursor() def connect_db_postgresql(self, dsn: str) -> psycopg2.extensions.connection: """Connects to a PostgreSQL database for storing data. @@ -132,15 +133,21 @@ def connect_db_postgresql(self, dsn: str) -> psycopg2.extensions.connection: connection to the database which can be used to submit SQL queries. The returned connection defaults to autocommit mode. + This will return a psycopg3 connection in the next major release of LDLite. + Example: db = ld.connect_db_postgresql(dsn='dbname=ld host=localhost user=ldlite') """ self.dbtype = DBType.POSTGRES - db = psycopg2.connect(dsn) + db = psycopg.connect(dsn) self.db = cast("dbapi.DBAPIConnection", db) autocommit(self.db, self.dbtype, True) - return db + + ret_db = psycopg2.connect(dsn) + ret_db.rollback() + ret_db.set_session(autocommit=True) + return ret_db def experimental_connect_db_sqlite( self, @@ -163,9 +170,11 @@ def experimental_connect_db_sqlite( """ self.dbtype = DBType.SQLITE - fn = filename if filename is not None else ":memory:" + fn = filename if filename is not None else "file::memory:?cache=shared" self.db = sqlite3.connect(fn) - autocommit(self.db, self.dbtype, True) + + db = sqlite3.connect(fn) + autocommit(db, self.dbtype, True) return self.db def _check_folio(self) -> None: @@ -466,7 +475,7 @@ def query( # noqa: C901, PLR0912, PLR0913, PLR0915 cur.execute( "CREATE INDEX ON " + sqlid(t) + " (" + sqlid(attr.name) + ")", ) - except (RuntimeError, psycopg2.Error): + except (RuntimeError, psycopg.Error): pass finally: cur.close() diff --git a/src/ldlite/_jsonx.py b/src/ldlite/_jsonx.py index 89a1a04..efce0d3 100644 --- a/src/ldlite/_jsonx.py +++ b/src/ldlite/_jsonx.py @@ -6,7 +6,7 @@ from typing import TYPE_CHECKING, Literal, Union import duckdb -import psycopg2 +import psycopg from tqdm import tqdm from ._camelcase import decode_camel_case @@ -106,12 +106,12 @@ def _old_drop_json_tables(db: dbapi.DBAPIConnection, table: str) -> None: cur2 = db.cursor() try: cur2.execute("DROP TABLE " + sqlid(t)) - except (psycopg2.Error, duckdb.CatalogException, sqlite3.OperationalError): + except (psycopg.Error, duckdb.CatalogException, sqlite3.OperationalError): continue finally: cur2.close() except ( - psycopg2.Error, + psycopg.errors.UndefinedTable, sqlite3.OperationalError, duckdb.CatalogException, ): @@ -122,7 +122,7 @@ def _old_drop_json_tables(db: dbapi.DBAPIConnection, table: str) -> None: try: cur.execute("DROP TABLE " + jtable_sql) except ( - psycopg2.Error, + psycopg.errors.UndefinedTable, duckdb.CatalogException, sqlite3.OperationalError, ): @@ -143,12 +143,16 @@ def drop_json_tables(db: dbapi.DBAPIConnection, table: str) -> None: cur2 = db.cursor() try: cur2.execute("DROP TABLE " + sqlid(t)) - except (psycopg2.Error, duckdb.CatalogException, sqlite3.OperationalError): + except ( + psycopg.errors.UndefinedTable, + duckdb.CatalogException, + sqlite3.OperationalError, + ): continue finally: cur2.close() except ( - psycopg2.Error, + psycopg.errors.UndefinedTable, duckdb.CatalogException, sqlite3.OperationalError, ): @@ -159,7 +163,7 @@ def drop_json_tables(db: dbapi.DBAPIConnection, table: str) -> None: try: cur.execute("DROP TABLE " + tcatalog_sql) except ( - psycopg2.Error, + psycopg.errors.UndefinedTable, duckdb.CatalogException, sqlite3.OperationalError, ): @@ -361,7 +365,7 @@ def _transform_array_data( # noqa: PLR0913 q += "," + str(i + 1) + "," + encode_sql(dbtype, value) + ")" try: cur.execute(q) - except (RuntimeError, psycopg2.Error) as e: + except (RuntimeError, psycopg.Error) as e: raise RuntimeError("error executing SQL: " + q) from e row_ids[table] += 1 @@ -477,7 +481,7 @@ def _transform_data( # noqa: PLR0913 q += ")" try: cur.execute(q) - except (RuntimeError, psycopg2.Error) as e: + except (RuntimeError, psycopg.Error) as e: raise RuntimeError("error executing SQL: " + q) from e row_ids[table] += 1 @@ -656,7 +660,7 @@ def transform_json( # noqa: C901, PLR0912, PLR0913, PLR0915 pbar.close() except ( RuntimeError, - psycopg2.Error, + psycopg.Error, sqlite3.OperationalError, duckdb.CatalogException, ) as e: @@ -684,7 +688,7 @@ def transform_json( # noqa: C901, PLR0912, PLR0913, PLR0915 ) except ( RuntimeError, - psycopg2.Error, + psycopg.Error, sqlite3.OperationalError, duckdb.CatalogException, ) as e: diff --git a/src/ldlite/_sqlx.py b/src/ldlite/_sqlx.py index 562a51f..34615f0 100644 --- a/src/ldlite/_sqlx.py +++ b/src/ldlite/_sqlx.py @@ -8,7 +8,7 @@ import sqlite3 import duckdb - import psycopg2 + import psycopg from _typeshed import dbapi from ._jsonx import JsonValue @@ -34,11 +34,11 @@ def as_duckdb( def as_postgres( db: dbapi.DBAPIConnection, dbtype: DBType, -) -> psycopg2.extensions.connection | None: +) -> psycopg.Connection | None: if dbtype != DBType.POSTGRES: return None - return cast("psycopg2.extensions.connection", db) + return cast("psycopg.Connection", db) def as_sqlite( @@ -63,7 +63,7 @@ def strip_schema(table: str) -> str: def autocommit(db: dbapi.DBAPIConnection, dbtype: DBType, enable: bool) -> None: if (pgdb := as_postgres(db, dbtype)) is not None: pgdb.rollback() - pgdb.set_session(autocommit=enable) + pgdb.set_autocommit(enable) if (sql3db := as_sqlite(db, dbtype)) is not None: sql3db.rollback()