diff --git a/py/BUILD.bazel b/py/BUILD.bazel index 9588b9b0444ba..79b79bd402207 100644 --- a/py/BUILD.bazel +++ b/py/BUILD.bazel @@ -312,7 +312,7 @@ py_wheel( "trio~=0.30.0", "trio-websocket~=0.12.2", "certifi>=2025.4.26", - "typing_extensions~=4.13.2", + "typing_extensions~=4.14.0", "websocket-client~=1.8.0", ], strip_path_prefixes = [ diff --git a/py/pyproject.toml b/py/pyproject.toml index 10582aaefcdac..46e6b03d3e1ee 100644 --- a/py/pyproject.toml +++ b/py/pyproject.toml @@ -29,7 +29,7 @@ dependencies = [ "trio~=0.30.0", "trio-websocket~=0.12.2", "certifi>=2025.4.26", - "typing_extensions~=4.13.2", + "typing_extensions~=4.14.0", "websocket-client~=1.8.0", ] diff --git a/py/requirements.txt b/py/requirements.txt index 713d9c5413495..4094855ba24ba 100644 --- a/py/requirements.txt +++ b/py/requirements.txt @@ -1,12 +1,12 @@ async-generator==1.10 attrs==25.3.0 -cachetools==5.5.2 +cachetools==6.0.0 certifi==2025.4.26 cffi==1.17.1 chardet==5.2.0 charset-normalizer==3.4.2 colorama==0.4.6 -cryptography==44.0.3 +cryptography==45.0.3 debugpy==1.8.14 distlib==0.3.9 docutils==0.21.2 @@ -26,22 +26,22 @@ keyring==25.6.0 markdown-it-py==3.0.0 mdurl==0.1.2 more-itertools==10.7.0 -multidict==6.4.3 +multidict==6.4.4 nh3==0.2.21 outcome==1.3.0.post0 packaging==25.0 platformdirs==4.3.8 -pluggy==1.5.0 +pluggy==1.6.0 py==1.11.0 pycparser==2.22 Pygments==2.19.1 -pyOpenSSL==25.0.0 +pyOpenSSL==25.1.0 pyparsing==3.2.3 -pyproject-api==1.9.0 +pyproject-api==1.9.1 PySocks==1.7.1 -pytest==8.3.5 +pytest==8.4.0 pytest-instafail==0.5.0 -pytest-mock==3.14.0 +pytest-mock==3.14.1 pytest-trio==0.8.0 readme_renderer==44.0 requests==2.32.3 @@ -52,13 +52,13 @@ SecretStorage==3.3.3 sniffio==1.3.1 sortedcontainers==2.4.0 toml==0.10.2 -tox==4.25.0 +tox==4.26.0 trio==0.30.0 trio-websocket==0.12.2 twine==6.1.0 -typing_extensions==4.13.2 +typing_extensions==4.14.0 urllib3[socks]==2.4.0 virtualenv==20.31.2 websocket-client==1.8.0 wsproto==1.2.0 -zipp==3.21.0 +zipp==3.22.0 diff --git a/py/requirements_lock.txt b/py/requirements_lock.txt index 5079639bfa9bf..1c68fa8278486 100644 --- a/py/requirements_lock.txt +++ b/py/requirements_lock.txt @@ -19,9 +19,9 @@ backports-tarfile==1.2.0 \ --hash=sha256:77e284d754527b01fb1e6fa8a1afe577858ebe4e9dad8919e34c862cb399bc34 \ --hash=sha256:d75e02c268746e1b8144c278978b6e98e85de6ad16f8e4b0844a154557eca991 # via jaraco-context -cachetools==5.5.2 \ - --hash=sha256:1a661caa9175d26759571b2e19580f9d6393969e5dfca11fdb1f947a23e640d4 \ - --hash=sha256:d26a22bcc62eb95c3beabd9f1ee5e820d3d2704fe2967cbe350e20c8ffcd3f0a +cachetools==6.0.0 \ + --hash=sha256:82e73ba88f7b30228b5507dce1a1f878498fc669d972aef2dde4f3a3c24f103e \ + --hash=sha256:f225782b84438f828328fc2ad74346522f27e5b1440f4e9fd18b20ebfd1aa2cf # via # -r py/requirements.txt # tox @@ -210,44 +210,44 @@ colorama==0.4.6 \ # via # -r py/requirements.txt # tox -cryptography==44.0.3 \ - --hash=sha256:02f55fb4f8b79c1221b0961488eaae21015b69b210e18c386b69de182ebb1259 \ - --hash=sha256:157f1f3b8d941c2bd8f3ffee0af9b049c9665c39d3da9db2dc338feca5e98a43 \ - --hash=sha256:192ed30fac1728f7587c6f4613c29c584abdc565d7417c13904708db10206645 \ - --hash=sha256:21a83f6f35b9cc656d71b5de8d519f566df01e660ac2578805ab245ffd8523f8 \ - --hash=sha256:25cd194c39fa5a0aa4169125ee27d1172097857b27109a45fadc59653ec06f44 \ - --hash=sha256:3883076d5c4cc56dbef0b898a74eb6992fdac29a7b9013870b34efe4ddb39a0d \ - --hash=sha256:3bb0847e6363c037df8f6ede57d88eaf3410ca2267fb12275370a76f85786a6f \ - --hash=sha256:3be3f649d91cb182c3a6bd336de8b61a0a71965bd13d1a04a0e15b39c3d5809d \ - --hash=sha256:3f07943aa4d7dad689e3bb1638ddc4944cc5e0921e3c227486daae0e31a05e54 \ - --hash=sha256:479d92908277bed6e1a1c69b277734a7771c2b78633c224445b5c60a9f4bc1d9 \ - --hash=sha256:4ffc61e8f3bf5b60346d89cd3d37231019c17a081208dfbbd6e1605ba03fa137 \ - --hash=sha256:5639c2b16764c6f76eedf722dbad9a0914960d3489c0cc38694ddf9464f1bb2f \ - --hash=sha256:58968d331425a6f9eedcee087f77fd3c927c88f55368f43ff7e0a19891f2642c \ - --hash=sha256:5d186f32e52e66994dce4f766884bcb9c68b8da62d61d9d215bfe5fb56d21334 \ - --hash=sha256:5d20cc348cca3a8aa7312f42ab953a56e15323800ca3ab0706b8cd452a3a056c \ - --hash=sha256:6866df152b581f9429020320e5eb9794c8780e90f7ccb021940d7f50ee00ae0b \ - --hash=sha256:7d5fe7195c27c32a64955740b949070f21cba664604291c298518d2e255931d2 \ - --hash=sha256:896530bc9107b226f265effa7ef3f21270f18a2026bc09fed1ebd7b66ddf6375 \ - --hash=sha256:962bc30480a08d133e631e8dfd4783ab71cc9e33d5d7c1e192f0b7c06397bb88 \ - --hash=sha256:978631ec51a6bbc0b7e58f23b68a8ce9e5f09721940933e9c217068388789fe5 \ - --hash=sha256:9b4d4a5dbee05a2c390bf212e78b99434efec37b17a4bff42f50285c5c8c9647 \ - --hash=sha256:ab0b005721cc0039e885ac3503825661bd9810b15d4f374e473f8c89b7d5460c \ - --hash=sha256:af653022a0c25ef2e3ffb2c673a50e5a0d02fecc41608f4954176f1933b12359 \ - --hash=sha256:b0cc66c74c797e1db750aaa842ad5b8b78e14805a9b5d1348dc603612d3e3ff5 \ - --hash=sha256:b424563394c369a804ecbee9b06dfb34997f19d00b3518e39f83a5642618397d \ - --hash=sha256:c138abae3a12a94c75c10499f1cbae81294a6f983b3af066390adee73f433028 \ - --hash=sha256:c6cd67722619e4d55fdb42ead64ed8843d64638e9c07f4011163e46bc512cf01 \ - --hash=sha256:c91fc8e8fd78af553f98bc7f2a1d8db977334e4eea302a4bfd75b9461c2d8904 \ - --hash=sha256:cad399780053fb383dc067475135e41c9fe7d901a97dd5d9c5dfb5611afc0d7d \ - --hash=sha256:cb90f60e03d563ca2445099edf605c16ed1d5b15182d21831f58460c48bffb93 \ - --hash=sha256:dad80b45c22e05b259e33ddd458e9e2ba099c86ccf4e88db7bbab4b747b18d06 \ - --hash=sha256:dd3db61b8fe5be220eee484a17233287d0be6932d056cf5738225b9c05ef4fff \ - --hash=sha256:e28d62e59a4dbd1d22e747f57d4f00c459af22181f0b2f787ea83f5a876d7c76 \ - --hash=sha256:e909df4053064a97f1e6565153ff8bb389af12c5c8d29c343308760890560aff \ - --hash=sha256:f3ffef566ac88f75967d7abd852ed5f182da252d23fac11b4766da3957766759 \ - --hash=sha256:fc3c9babc1e1faefd62704bb46a69f359a9819eb0292e40df3fb6e3574715cd4 \ - --hash=sha256:fe19d8bc5536a91a24a8133328880a41831b6c5df54599a8417b62fe015d3053 +cryptography==45.0.3 \ + --hash=sha256:00094838ecc7c6594171e8c8a9166124c1197b074cfca23645cee573910d76bc \ + --hash=sha256:050ce5209d5072472971e6efbfc8ec5a8f9a841de5a4db0ebd9c2e392cb81972 \ + --hash=sha256:232954730c362638544758a8160c4ee1b832dc011d2c41a306ad8f7cccc5bb0b \ + --hash=sha256:25286aacb947286620a31f78f2ed1a32cded7be5d8b729ba3fb2c988457639e4 \ + --hash=sha256:2f8f8f0b73b885ddd7f3d8c2b2234a7d3ba49002b0223f58cfde1bedd9563c56 \ + --hash=sha256:38deed72285c7ed699864f964a3f4cf11ab3fb38e8d39cfcd96710cd2b5bb716 \ + --hash=sha256:3ad69eeb92a9de9421e1f6685e85a10fbcfb75c833b42cc9bc2ba9fb00da4710 \ + --hash=sha256:5555365a50efe1f486eed6ac7062c33b97ccef409f5970a0b6f205a7cfab59c8 \ + --hash=sha256:555e5e2d3a53b4fabeca32835878b2818b3f23966a4efb0d566689777c5a12c8 \ + --hash=sha256:57a6500d459e8035e813bd8b51b671977fb149a8c95ed814989da682314d0782 \ + --hash=sha256:5833bb4355cb377ebd880457663a972cd044e7f49585aee39245c0d592904578 \ + --hash=sha256:71320fbefd05454ef2d457c481ba9a5b0e540f3753354fff6f780927c25d19b0 \ + --hash=sha256:7573d9eebaeceeb55285205dbbb8753ac1e962af3d9640791d12b36864065e71 \ + --hash=sha256:92d5f428c1a0439b2040435a1d6bc1b26ebf0af88b093c3628913dd464d13fa1 \ + --hash=sha256:97787952246a77d77934d41b62fb1b6f3581d83f71b44796a4158d93b8f5c490 \ + --hash=sha256:9bb5bf55dcb69f7067d80354d0a348368da907345a2c448b0babc4215ccd3497 \ + --hash=sha256:9cc80ce69032ffa528b5e16d217fa4d8d4bb7d6ba8659c1b4d74a1b0f4235fca \ + --hash=sha256:9e4253ed8f5948a3589b3caee7ad9a5bf218ffd16869c516535325fece163dcc \ + --hash=sha256:9eda14f049d7f09c2e8fb411dda17dd6b16a3c76a1de5e249188a32aeb92de19 \ + --hash=sha256:a2b56de3417fd5f48773ad8e91abaa700b678dc7fe1e0c757e1ae340779acf7b \ + --hash=sha256:af3f92b1dc25621f5fad065288a44ac790c5798e986a34d393ab27d2b27fcff9 \ + --hash=sha256:c5edcb90da1843df85292ef3a313513766a78fbbb83f584a5a58fb001a5a9d57 \ + --hash=sha256:c824c9281cb628015bfc3c59335163d4ca0540d49de4582d6c2637312907e4b1 \ + --hash=sha256:c92519d242703b675ccefd0f0562eb45e74d438e001f8ab52d628e885751fb06 \ + --hash=sha256:ca932e11218bcc9ef812aa497cdf669484870ecbcf2d99b765d6c27a86000942 \ + --hash=sha256:cb6ab89421bc90e0422aca911c69044c2912fc3debb19bb3c1bfe28ee3dff6ab \ + --hash=sha256:cfd84777b4b6684955ce86156cfb5e08d75e80dc2585e10d69e47f014f0a5342 \ + --hash=sha256:d377dde61c5d67eb4311eace661c3efda46c62113ff56bf05e2d679e02aebb5b \ + --hash=sha256:d54ae41e6bd70ea23707843021c778f151ca258081586f0cfa31d936ae43d1b2 \ + --hash=sha256:dc10ec1e9f21f33420cc05214989544727e776286c1c16697178978327b95c9c \ + --hash=sha256:ec21313dd335c51d7877baf2972569f40a4291b76a0ce51391523ae358d05899 \ + --hash=sha256:ec64ee375b5aaa354b2b273c921144a660a511f9df8785e6d1c942967106438e \ + --hash=sha256:ed43d396f42028c1f47b5fec012e9e12631266e3825e95c00e3cf94d472dac49 \ + --hash=sha256:edd6d51869beb7f0d472e902ef231a9b7689508e83880ea16ca3311a00bf5ce7 \ + --hash=sha256:f22af3c78abfbc7cbcdf2c55d23c3e022e1a462ee2481011d518c7fb9c9f3d65 \ + --hash=sha256:fae1e637f527750811588e4582988932c222f8251f7b7ea93739acb624e1487f \ + --hash=sha256:fed5aaca1750e46db870874c9c273cd5182a9e9deb16f06f7bdffdb5c2bde4b9 # via # -r py/requirements.txt # pyopenssl @@ -396,111 +396,111 @@ more-itertools==10.7.0 \ # -r py/requirements.txt # jaraco-classes # jaraco-functools -multidict==6.4.3 \ - --hash=sha256:032efeab3049e37eef2ff91271884303becc9e54d740b492a93b7e7266e23756 \ - --hash=sha256:062428944a8dc69df9fdc5d5fc6279421e5f9c75a9ee3f586f274ba7b05ab3c8 \ - --hash=sha256:0bb8f8302fbc7122033df959e25777b0b7659b1fd6bcb9cb6bed76b5de67afef \ - --hash=sha256:0d4b31f8a68dccbcd2c0ea04f0e014f1defc6b78f0eb8b35f2265e8716a6df0c \ - --hash=sha256:0ecdc12ea44bab2807d6b4a7e5eef25109ab1c82a8240d86d3c1fc9f3b72efd5 \ - --hash=sha256:0ee1bf613c448997f73fc4efb4ecebebb1c02268028dd4f11f011f02300cf1e8 \ - --hash=sha256:11990b5c757d956cd1db7cb140be50a63216af32cd6506329c2c59d732d802db \ - --hash=sha256:1535cec6443bfd80d028052e9d17ba6ff8a5a3534c51d285ba56c18af97e9713 \ - --hash=sha256:1748cb2743bedc339d63eb1bca314061568793acd603a6e37b09a326334c9f44 \ - --hash=sha256:1b2019317726f41e81154df636a897de1bfe9228c3724a433894e44cd2512378 \ - --hash=sha256:1c152c49e42277bc9a2f7b78bd5fa10b13e88d1b0328221e7aef89d5c60a99a5 \ - --hash=sha256:1f1c2f58f08b36f8475f3ec6f5aeb95270921d418bf18f90dffd6be5c7b0e676 \ - --hash=sha256:1f4e0334d7a555c63f5c8952c57ab6f1c7b4f8c7f3442df689fc9f03df315c08 \ - --hash=sha256:1f6f90700881438953eae443a9c6f8a509808bc3b185246992c4233ccee37fea \ - --hash=sha256:224b79471b4f21169ea25ebc37ed6f058040c578e50ade532e2066562597b8a9 \ - --hash=sha256:236966ca6c472ea4e2d3f02f6673ebfd36ba3f23159c323f5a496869bc8e47c9 \ - --hash=sha256:2427370f4a255262928cd14533a70d9738dfacadb7563bc3b7f704cc2360fc4e \ - --hash=sha256:24a8caa26521b9ad09732972927d7b45b66453e6ebd91a3c6a46d811eeb7349b \ - --hash=sha256:255dac25134d2b141c944b59a0d2f7211ca12a6d4779f7586a98b4b03ea80508 \ - --hash=sha256:26ae9ad364fc61b936fb7bf4c9d8bd53f3a5b4417142cd0be5c509d6f767e2f1 \ - --hash=sha256:2e329114f82ad4b9dd291bef614ea8971ec119ecd0f54795109976de75c9a852 \ - --hash=sha256:3002a856367c0b41cad6784f5b8d3ab008eda194ed7864aaa58f65312e2abcac \ - --hash=sha256:30a3ebdc068c27e9d6081fca0e2c33fdf132ecea703a72ea216b81a66860adde \ - --hash=sha256:30c433a33be000dd968f5750722eaa0991037be0be4a9d453eba121774985bc8 \ - --hash=sha256:31469d5832b5885adeb70982e531ce86f8c992334edd2f2254a10fa3182ac504 \ - --hash=sha256:32a998bd8a64ca48616eac5a8c1cc4fa38fb244a3facf2eeb14abe186e0f6cc5 \ - --hash=sha256:3307b48cd156153b117c0ea54890a3bdbf858a5b296ddd40dc3852e5f16e9b02 \ - --hash=sha256:389cfefb599edf3fcfd5f64c0410da686f90f5f5e2c4d84e14f6797a5a337af4 \ - --hash=sha256:3ada0b058c9f213c5f95ba301f922d402ac234f1111a7d8fd70f1b99f3c281ec \ - --hash=sha256:3b73e7227681f85d19dec46e5b881827cd354aabe46049e1a61d2f9aaa4e285a \ - --hash=sha256:3ccdde001578347e877ca4f629450973c510e88e8865d5aefbcb89b852ccc666 \ - --hash=sha256:3cd06d88cb7398252284ee75c8db8e680aa0d321451132d0dba12bc995f0adcc \ - --hash=sha256:3cf62f8e447ea2c1395afa289b332e49e13d07435369b6f4e41f887db65b40bf \ - --hash=sha256:3d75e621e7d887d539d6e1d789f0c64271c250276c333480a9e1de089611f790 \ - --hash=sha256:422a5ec315018e606473ba1f5431e064cf8b2a7468019233dcf8082fabad64c8 \ - --hash=sha256:43173924fa93c7486402217fab99b60baf78d33806af299c56133a3755f69589 \ - --hash=sha256:43fe10524fb0a0514be3954be53258e61d87341008ce4914f8e8b92bee6f875d \ - --hash=sha256:4543d8dc6470a82fde92b035a92529317191ce993533c3c0c68f56811164ed07 \ - --hash=sha256:4eb33b0bdc50acd538f45041f5f19945a1f32b909b76d7b117c0c25d8063df56 \ - --hash=sha256:5427a2679e95a642b7f8b0f761e660c845c8e6fe3141cddd6b62005bd133fc21 \ - --hash=sha256:578568c4ba5f2b8abd956baf8b23790dbfdc953e87d5b110bce343b4a54fc9e7 \ - --hash=sha256:59fe01ee8e2a1e8ceb3f6dbb216b09c8d9f4ef1c22c4fc825d045a147fa2ebc9 \ - --hash=sha256:5e3929269e9d7eff905d6971d8b8c85e7dbc72c18fb99c8eae6fe0a152f2e343 \ - --hash=sha256:61ed4d82f8a1e67eb9eb04f8587970d78fe7cddb4e4d6230b77eda23d27938f9 \ - --hash=sha256:64bc2bbc5fba7b9db5c2c8d750824f41c6994e3882e6d73c903c2afa78d091e4 \ - --hash=sha256:659318c6c8a85f6ecfc06b4e57529e5a78dfdd697260cc81f683492ad7e9435a \ - --hash=sha256:66eb80dd0ab36dbd559635e62fba3083a48a252633164857a1d1684f14326427 \ - --hash=sha256:6b5a272bc7c36a2cd1b56ddc6bff02e9ce499f9f14ee4a45c45434ef083f2459 \ - --hash=sha256:6d79cf5c0c6284e90f72123f4a3e4add52d6c6ebb4a9054e88df15b8d08444c6 \ - --hash=sha256:7146a8742ea71b5d7d955bffcef58a9e6e04efba704b52a460134fefd10a8208 \ - --hash=sha256:740915eb776617b57142ce0bb13b7596933496e2f798d3d15a20614adf30d229 \ - --hash=sha256:75482f43465edefd8a5d72724887ccdcd0c83778ded8f0cb1e0594bf71736cc0 \ - --hash=sha256:7a76534263d03ae0cfa721fea40fd2b5b9d17a6f85e98025931d41dc49504474 \ - --hash=sha256:7d50d4abf6729921e9613d98344b74241572b751c6b37feed75fb0c37bd5a817 \ - --hash=sha256:805031c2f599eee62ac579843555ed1ce389ae00c7e9f74c2a1b45e0564a88dd \ - --hash=sha256:8aac2eeff69b71f229a405c0a4b61b54bade8e10163bc7b44fcd257949620618 \ - --hash=sha256:8b6fcf6054fc4114a27aa865f8840ef3d675f9316e81868e0ad5866184a6cba5 \ - --hash=sha256:8bd2b875f4ca2bb527fe23e318ddd509b7df163407b0fb717df229041c6df5d3 \ - --hash=sha256:8eac0c49df91b88bf91f818e0a24c1c46f3622978e2c27035bfdca98e0e18124 \ - --hash=sha256:909f7d43ff8f13d1adccb6a397094adc369d4da794407f8dd592c51cf0eae4b1 \ - --hash=sha256:995015cf4a3c0d72cbf453b10a999b92c5629eaf3a0c3e1efb4b5c1f602253bb \ - --hash=sha256:99592bd3162e9c664671fd14e578a33bfdba487ea64bcb41d281286d3c870ad7 \ - --hash=sha256:9c64f4ddb3886dd8ab71b68a7431ad4aa01a8fa5be5b11543b29674f29ca0ba3 \ - --hash=sha256:9e78006af1a7c8a8007e4f56629d7252668344442f66982368ac06522445e375 \ - --hash=sha256:9f35de41aec4b323c71f54b0ca461ebf694fb48bec62f65221f52e0017955b39 \ - --hash=sha256:a059ad6b80de5b84b9fa02a39400319e62edd39d210b4e4f8c4f1243bdac4752 \ - --hash=sha256:a2b0fabae7939d09d7d16a711468c385272fa1b9b7fb0d37e51143585d8e72e0 \ - --hash=sha256:a54ec568f1fc7f3c313c2f3b16e5db346bf3660e1309746e7fccbbfded856188 \ - --hash=sha256:a62d78a1c9072949018cdb05d3c533924ef8ac9bcb06cbf96f6d14772c5cd451 \ - --hash=sha256:a7bd27f7ab3204f16967a6f899b3e8e9eb3362c0ab91f2ee659e0345445e0078 \ - --hash=sha256:a7be07e5df178430621c716a63151165684d3e9958f2bbfcb644246162007ab7 \ - --hash=sha256:ab583ac203af1d09034be41458feeab7863c0635c650a16f15771e1386abf2d7 \ - --hash=sha256:abcfed2c4c139f25c2355e180bcc077a7cae91eefbb8b3927bb3f836c9586f1f \ - --hash=sha256:acc9fa606f76fc111b4569348cc23a771cb52c61516dcc6bcef46d612edb483b \ - --hash=sha256:ae93e0ff43b6f6892999af64097b18561691ffd835e21a8348a441e256592e1f \ - --hash=sha256:b038f10e23f277153f86f95c777ba1958bcd5993194fda26a1d06fae98b2f00c \ - --hash=sha256:b128dbf1c939674a50dd0b28f12c244d90e5015e751a4f339a96c54f7275e291 \ - --hash=sha256:b1b389ae17296dd739015d5ddb222ee99fd66adeae910de21ac950e00979d897 \ - --hash=sha256:b57e28dbc031d13916b946719f213c494a517b442d7b48b29443e79610acd887 \ - --hash=sha256:b90e27b4674e6c405ad6c64e515a505c6d113b832df52fdacb6b1ffd1fa9a1d1 \ - --hash=sha256:b9cb19dfd83d35b6ff24a4022376ea6e45a2beba8ef3f0836b8a4b288b6ad685 \ - --hash=sha256:ba46b51b6e51b4ef7bfb84b82f5db0dc5e300fb222a8a13b8cd4111898a869cf \ - --hash=sha256:be8751869e28b9c0d368d94f5afcb4234db66fe8496144547b4b6d6a0645cfc6 \ - --hash=sha256:c23831bdee0a2a3cf21be057b5e5326292f60472fb6c6f86392bbf0de70ba731 \ - --hash=sha256:c2e98c840c9c8e65c0e04b40c6c5066c8632678cd50c8721fdbcd2e09f21a507 \ - --hash=sha256:c56c179839d5dcf51d565132185409d1d5dd8e614ba501eb79023a6cab25576b \ - --hash=sha256:c605a2b2dc14282b580454b9b5d14ebe0668381a3a26d0ac39daa0ca115eb2ae \ - --hash=sha256:ce5b3082e86aee80b3925ab4928198450d8e5b6466e11501fe03ad2191c6d777 \ - --hash=sha256:d4e8535bd4d741039b5aad4285ecd9b902ef9e224711f0b6afda6e38d7ac02c7 \ - --hash=sha256:daeac9dd30cda8703c417e4fddccd7c4dc0c73421a0b54a7da2713be125846be \ - --hash=sha256:dd53893675b729a965088aaadd6a1f326a72b83742b056c1065bdd2e2a42b4df \ - --hash=sha256:e1eb72c741fd24d5a28242ce72bb61bc91f8451877131fa3fe930edb195f7054 \ - --hash=sha256:e413152e3212c4d39f82cf83c6f91be44bec9ddea950ce17af87fbf4e32ca6b2 \ - --hash=sha256:ead46b0fa1dcf5af503a46e9f1c2e80b5d95c6011526352fa5f42ea201526124 \ - --hash=sha256:eccb67b0e78aa2e38a04c5ecc13bab325a43e5159a181a9d1a6723db913cbb3c \ - --hash=sha256:edf74dc5e212b8c75165b435c43eb0d5e81b6b300a938a4eb82827119115e840 \ - --hash=sha256:f2882bf27037eb687e49591690e5d491e677272964f9ec7bc2abbe09108bdfb8 \ - --hash=sha256:f6f19170197cc29baccd33ccc5b5d6a331058796485857cf34f7635aa25fb0cd \ - --hash=sha256:f84627997008390dd15762128dcf73c3365f4ec0106739cde6c20a07ed198ec8 \ - --hash=sha256:f901a5aace8e8c25d78960dcc24c870c8d356660d3b49b93a78bf38eb682aac3 \ - --hash=sha256:f92c7f62d59373cd93bc9969d2da9b4b21f78283b1379ba012f7ee8127b3152e \ - --hash=sha256:fb6214fe1750adc2a1b801a199d64b5a67671bf76ebf24c730b157846d0e90d2 \ - --hash=sha256:fbd8d737867912b6c5f99f56782b8cb81f978a97b4437a1c476de90a3e41c9a1 \ - --hash=sha256:fbf226ac85f7d6b6b9ba77db4ec0704fde88463dc17717aec78ec3c8546c70ad +multidict==6.4.4 \ + --hash=sha256:0327ad2c747a6600e4797d115d3c38a220fdb28e54983abe8964fd17e95ae83c \ + --hash=sha256:058cc59b9e9b143cc56715e59e22941a5d868c322242278d28123a5d09cdf6b0 \ + --hash=sha256:0d2b9712211b860d123815a80b859075d86a4d54787e247d7fbee9db6832cf1c \ + --hash=sha256:0e05c39962baa0bb19a6b210e9b1422c35c093b651d64246b6c2e1a7e242d9fd \ + --hash=sha256:0f14ea68d29b43a9bf37953881b1e3eb75b2739e896ba4a6aa4ad4c5b9ffa145 \ + --hash=sha256:169c4ba7858176b797fe551d6e99040c531c775d2d57b31bcf4de6d7a669847f \ + --hash=sha256:19d08b4f22eae45bb018b9f06e2838c1e4b853c67628ef8ae126d99de0da6395 \ + --hash=sha256:1d0121ccce8c812047d8d43d691a1ad7641f72c4f730474878a5aeae1b8ead8c \ + --hash=sha256:232b7237e57ec3c09be97206bfb83a0aa1c5d7d377faa019c68a210fa35831f1 \ + --hash=sha256:2e543a40e4946cf70a88a3be87837a3ae0aebd9058ba49e91cacb0b2cd631e2b \ + --hash=sha256:329ae97fc2f56f44d91bc47fe0972b1f52d21c4b7a2ac97040da02577e2daca2 \ + --hash=sha256:3312f63261b9df49be9d57aaa6abf53a6ad96d93b24f9cc16cf979956355ce6e \ + --hash=sha256:33a12ebac9f380714c298cbfd3e5b9c0c4e89c75fe612ae496512ee51028915f \ + --hash=sha256:343892a27d1a04d6ae455ecece12904d242d299ada01633d94c4f431d68a8c49 \ + --hash=sha256:3e9f1cd61a0ab857154205fb0b1f3d3ace88d27ebd1409ab7af5096e409614cd \ + --hash=sha256:3ef4e9096ff86dfdcbd4a78253090ba13b1d183daa11b973e842465d94ae1772 \ + --hash=sha256:4219390fb5bf8e548e77b428bb36a21d9382960db5321b74d9d9987148074d6b \ + --hash=sha256:496bcf01c76a70a31c3d746fd39383aad8d685ce6331e4c709e9af4ced5fa221 \ + --hash=sha256:49a29d7133b1fc214e818bbe025a77cc6025ed9a4f407d2850373ddde07fd04a \ + --hash=sha256:4d7b50b673ffb4ff4366e7ab43cf1f0aef4bd3608735c5fbdf0bdb6f690da411 \ + --hash=sha256:4efc31dfef8c4eeb95b6b17d799eedad88c4902daba39ce637e23a17ea078915 \ + --hash=sha256:4f5f29794ac0e73d2a06ac03fd18870adc0135a9d384f4a306a951188ed02f95 \ + --hash=sha256:4ffc3c6a37e048b5395ee235e4a2a0d639c2349dffa32d9367a42fc20d399772 \ + --hash=sha256:50855d03e9e4d66eab6947ba688ffb714616f985838077bc4b490e769e48da51 \ + --hash=sha256:51d662c072579f63137919d7bb8fc250655ce79f00c82ecf11cab678f335062e \ + --hash=sha256:530d86827a2df6504526106b4c104ba19044594f8722d3e87714e847c74a0275 \ + --hash=sha256:5363f9b2a7f3910e5c87d8b1855c478c05a2dc559ac57308117424dfaad6805c \ + --hash=sha256:55ae0721c1513e5e3210bca4fc98456b980b0c2c016679d3d723119b6b202c42 \ + --hash=sha256:5883d6ee0fd9d8a48e9174df47540b7545909841ac82354c7ae4cbe9952603bd \ + --hash=sha256:5bce06b83be23225be1905dcdb6b789064fae92499fbc458f59a8c0e68718601 \ + --hash=sha256:5e0ba18a9afd495f17c351d08ebbc4284e9c9f7971d715f196b79636a4d0de44 \ + --hash=sha256:5e2bcda30d5009996ff439e02a9f2b5c3d64a20151d34898c000a6281faa3781 \ + --hash=sha256:603f39bd1cf85705c6c1ba59644b480dfe495e6ee2b877908de93322705ad7cf \ + --hash=sha256:60d849912350da557fe7de20aa8cf394aada6980d0052cc829eeda4a0db1c1db \ + --hash=sha256:622f26ea6a7e19b7c48dd9228071f571b2fbbd57a8cd71c061e848f281550e6b \ + --hash=sha256:632a3bf8f1787f7ef7d3c2f68a7bde5be2f702906f8b5842ad6da9d974d0aab3 \ + --hash=sha256:66ed0731f8e5dfd8369a883b6e564aca085fb9289aacabd9decd70568b9a30de \ + --hash=sha256:69133376bc9a03f8c47343d33f91f74a99c339e8b58cea90433d8e24bb298031 \ + --hash=sha256:69ee9e6ba214b5245031b76233dd95408a0fd57fdb019ddcc1ead4790932a8e8 \ + --hash=sha256:6a2f58a66fe2c22615ad26156354005391e26a2f3721c3621504cd87c1ea87bf \ + --hash=sha256:6a602151dbf177be2450ef38966f4be3467d41a86c6a845070d12e17c858a156 \ + --hash=sha256:6ed5ae5605d4ad5a049fad2a28bb7193400700ce2f4ae484ab702d1e3749c3f9 \ + --hash=sha256:73484a94f55359780c0f458bbd3c39cb9cf9c182552177d2136e828269dee529 \ + --hash=sha256:75493f28dbadecdbb59130e74fe935288813301a8554dc32f0c631b6bdcdf8b0 \ + --hash=sha256:7cf3bd54c56aa16fdb40028d545eaa8d051402b61533c21e84046e05513d5780 \ + --hash=sha256:7e23f2f841fcb3ebd4724a40032d32e0892fbba4143e43d2a9e7695c5e50e6bd \ + --hash=sha256:7f3d3b3c34867579ea47cbd6c1f2ce23fbfd20a273b6f9e3177e256584f1eacc \ + --hash=sha256:82ffabefc8d84c2742ad19c37f02cde5ec2a1ee172d19944d380f920a340e4b9 \ + --hash=sha256:83ec4967114295b8afd120a8eec579920c882831a3e4c3331d591a8e5bfbbc0f \ + --hash=sha256:87a728af265e08f96b6318ebe3c0f68b9335131f461efab2fc64cc84a44aa6ed \ + --hash=sha256:87cb72263946b301570b0f63855569a24ee8758aaae2cd182aae7d95fbc92ca7 \ + --hash=sha256:8adee3ac041145ffe4488ea73fa0a622b464cc25340d98be76924d0cda8545ff \ + --hash=sha256:8cc403092a49509e8ef2d2fd636a8ecefc4698cc57bbe894606b14579bc2a955 \ + --hash=sha256:8cd8f81f1310182362fb0c7898145ea9c9b08a71081c5963b40ee3e3cac589b1 \ + --hash=sha256:8ffb40b74400e4455785c2fa37eba434269149ec525fc8329858c862e4b35373 \ + --hash=sha256:93ec84488a384cd7b8a29c2c7f467137d8a73f6fe38bb810ecf29d1ade011a7c \ + --hash=sha256:941f1bec2f5dbd51feeb40aea654c2747f811ab01bdd3422a48a4e4576b7d76a \ + --hash=sha256:98af87593a666f739d9dba5d0ae86e01b0e1a9cfcd2e30d2d361fbbbd1a9162d \ + --hash=sha256:995f985e2e268deaf17867801b859a282e0448633f1310e3704b30616d269d69 \ + --hash=sha256:9abcf56a9511653fa1d052bfc55fbe53dbee8f34e68bd6a5a038731b0ca42d15 \ + --hash=sha256:9bbf7bd39822fd07e3609b6b4467af4c404dd2b88ee314837ad1830a7f4a8299 \ + --hash=sha256:9c17341ee04545fd962ae07330cb5a39977294c883485c8d74634669b1f7fe04 \ + --hash=sha256:9f193eeda1857f8e8d3079a4abd258f42ef4a4bc87388452ed1e1c4d2b0c8740 \ + --hash=sha256:9faf1b1dcaadf9f900d23a0e6d6c8eadd6a95795a0e57fcca73acce0eb912065 \ + --hash=sha256:9fcad2945b1b91c29ef2b4050f590bfcb68d8ac8e0995a74e659aa57e8d78e01 \ + --hash=sha256:a145c550900deb7540973c5cdb183b0d24bed6b80bf7bddf33ed8f569082535e \ + --hash=sha256:a4d1cb1327c6082c4fce4e2a438483390964c02213bc6b8d782cf782c9b1471f \ + --hash=sha256:a887b77f51d3d41e6e1a63cf3bc7ddf24de5939d9ff69441387dfefa58ac2e26 \ + --hash=sha256:a920f9cf2abdf6e493c519492d892c362007f113c94da4c239ae88429835bad1 \ + --hash=sha256:aff4cafea2d120327d55eadd6b7f1136a8e5a0ecf6fb3b6863e8aca32cd8e50a \ + --hash=sha256:b0f1987787f5f1e2076b59692352ab29a955b09ccc433c1f6b8e8e18666f608b \ + --hash=sha256:b308402608493638763abc95f9dc0030bbd6ac6aff784512e8ac3da73a88af08 \ + --hash=sha256:b61e98c3e2a861035aaccd207da585bdcacef65fe01d7a0d07478efac005e028 \ + --hash=sha256:b9eb4c59c54421a32b3273d4239865cb14ead53a606db066d7130ac80cc8ec93 \ + --hash=sha256:ba852168d814b2c73333073e1c7116d9395bea69575a01b0b3c89d2d5a87c8fb \ + --hash=sha256:bb5ac9e5bfce0e6282e7f59ff7b7b9a74aa8e5c60d38186a4637f5aa764046ad \ + --hash=sha256:bb61ffd3ab8310d93427e460f565322c44ef12769f51f77277b4abad7b6f7223 \ + --hash=sha256:bbfcb60396f9bcfa63e017a180c3105b8c123a63e9d1428a36544e7d37ca9e20 \ + --hash=sha256:bd4557071b561a8b3b6075c3ce93cf9bfb6182cb241805c3d66ced3b75eff4ac \ + --hash=sha256:be06e73c06415199200e9a2324a11252a3d62030319919cde5e6950ffeccf72e \ + --hash=sha256:c04157266344158ebd57b7120d9b0b35812285d26d0e78193e17ef57bfe2979a \ + --hash=sha256:c10d17371bff801af0daf8b073c30b6cf14215784dc08cd5c43ab5b7b8029bbc \ + --hash=sha256:c27e5dcf520923d6474d98b96749e6805f7677e93aaaf62656005b8643f907ab \ + --hash=sha256:c93a6fb06cc8e5d3628b2b5fda215a5db01e8f08fc15fadd65662d9b857acbe4 \ + --hash=sha256:cbebaa076aaecad3d4bb4c008ecc73b09274c952cf6a1b78ccfd689e51f5a5b0 \ + --hash=sha256:cc5d83c6619ca5c9672cb78b39ed8542f1975a803dee2cda114ff73cbb076edd \ + --hash=sha256:d1a20707492db9719a05fc62ee215fd2c29b22b47c1b1ba347f9abc831e26683 \ + --hash=sha256:d1f7cbd4f1f44ddf5fd86a8675b7679176eae770f2fc88115d6dddb6cefb59bc \ + --hash=sha256:d21c1212171cf7da703c5b0b7a0e85be23b720818aef502ad187d627316d5645 \ + --hash=sha256:d2fa86af59f8fc1972e121ade052145f6da22758f6996a197d69bb52f8204e7e \ + --hash=sha256:d5b1cc3ab8c31d9ebf0faa6e3540fb91257590da330ffe6d2393d4208e638925 \ + --hash=sha256:d693307856d1ef08041e8b6ff01d5b4618715007d288490ce2c7e29013c12b9a \ + --hash=sha256:d6b15c55721b1b115c5ba178c77104123745b1417527ad9641a4c5e2047450f0 \ + --hash=sha256:d832c608f94b9f92a0ec8b7e949be7792a642b6e535fcf32f3e28fab69eeb046 \ + --hash=sha256:d83f18315b9fca5db2452d1881ef20f79593c4aa824095b62cb280019ef7aa3d \ + --hash=sha256:d877447e7368c7320832acb7159557e49b21ea10ffeb135c1077dbbc0816b598 \ + --hash=sha256:dc388f75a1c00000824bf28b7633e40854f4127ede80512b44c3cfeeea1839a2 \ + --hash=sha256:dc8c9736d8574b560634775ac0def6bdc1661fc63fa27ffdfc7264c565bcb4f2 \ + --hash=sha256:e32053d6d3a8b0dfe49fde05b496731a0e6099a4df92154641c00aa76786aef5 \ + --hash=sha256:e5f8a146184da7ea12910a4cec51ef85e44f6268467fb489c3caf0cd512f29c2 \ + --hash=sha256:ecde56ea2439b96ed8a8d826b50c57364612ddac0438c39e473fafad7ae1c23b \ + --hash=sha256:f682c42003c7264134bfe886376299db4cc0c6cd06a3295b41b347044bcb5482 \ + --hash=sha256:fad6daaed41021934917f4fb03ca2db8d8a4d79bf89b17ebe77228eb6710c003 \ + --hash=sha256:fc60f91c02e11dfbe3ff4e1219c085695c339af72d1641800fe6075b91850c8f # via -r py/requirements.txt nh3==0.2.21 \ --hash=sha256:087ffadfdcd497658c3adc797258ce0f06be8a537786a7217649fc1c0c60c293 \ @@ -554,9 +554,9 @@ platformdirs==4.3.8 \ # -r py/requirements.txt # tox # virtualenv -pluggy==1.5.0 \ - --hash=sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1 \ - --hash=sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669 +pluggy==1.6.0 \ + --hash=sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3 \ + --hash=sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746 # via # -r py/requirements.txt # pytest @@ -576,19 +576,20 @@ pygments==2.19.1 \ --hash=sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c # via # -r py/requirements.txt + # pytest # readme-renderer # rich -pyopenssl==25.0.0 \ - --hash=sha256:424c247065e46e76a37411b9ab1782541c23bb658bf003772c3405fbaa128e90 \ - --hash=sha256:cd2cef799efa3936bb08e8ccb9433a575722b9dd986023f1cabc4ae64e9dac16 +pyopenssl==25.1.0 \ + --hash=sha256:2b11f239acc47ac2e5aca04fd7fa829800aeee22a2eb30d744572a157bd8a1ab \ + --hash=sha256:8d031884482e0c67ee92bf9a4d8cceb08d92aba7136432ffb0703c5280fc205b # via -r py/requirements.txt pyparsing==3.2.3 \ --hash=sha256:a749938e02d6fd0b59b356ca504a24982314bb090c383e3cf201c95ef7e2bfcf \ --hash=sha256:b9c13f1ab8b3b542f72e28f634bad4de758ab3ce4546e4301970ad6fa77c38be # via -r py/requirements.txt -pyproject-api==1.9.0 \ - --hash=sha256:326df9d68dea22d9d98b5243c46e3ca3161b07a1b9b18e213d1e24fd0e605766 \ - --hash=sha256:7e8a9854b2dfb49454fae421cb86af43efbb2b2454e5646ffb7623540321ae6e +pyproject-api==1.9.1 \ + --hash=sha256:43c9918f49daab37e302038fc1aed54a8c7a91a9fa935d00b9a485f37e0f5335 \ + --hash=sha256:7d6238d92f8962773dd75b5f0c4a6a27cce092a14b623b811dba656f3b628948 # via # -r py/requirements.txt # tox @@ -599,9 +600,9 @@ pysocks==1.7.1 \ # via # -r py/requirements.txt # urllib3 -pytest==8.3.5 \ - --hash=sha256:c69214aa47deac29fad6c2a4f590b9c4a9fdb16a403176fe154b79c0b4d4d820 \ - --hash=sha256:f4efe70cc14e511565ac476b57c279e12a855b11f48f212af1080ef2263d3845 +pytest==8.4.0 \ + --hash=sha256:14d920b48472ea0dbf68e45b96cd1ffda4705f33307dcc86c676c1b5104838a6 \ + --hash=sha256:f40f825768ad76c0977cbacdf1fd37c6f7a468e460ea6a0636078f8972d4517e # via # -r py/requirements.txt # pytest-instafail @@ -611,9 +612,9 @@ pytest-instafail==0.5.0 \ --hash=sha256:33a606f7e0c8e646dc3bfee0d5e3a4b7b78ef7c36168cfa1f3d93af7ca706c9e \ --hash=sha256:6855414487e9e4bb76a118ce952c3c27d3866af15487506c4ded92eb72387819 # via -r py/requirements.txt -pytest-mock==3.14.0 \ - --hash=sha256:0b72c38033392a5f4621342fe11e9219ac11ec9d375f8e2a0c164539e0d70f6f \ - --hash=sha256:2719255a1efeceadbc056d6bf3df3d1c5015530fb40cf347c0f9afac88410bd0 +pytest-mock==3.14.1 \ + --hash=sha256:159e9edac4c451ce77a5cdb9fc5d1100708d2dd4ba3c3df572f14097351af80e \ + --hash=sha256:178aefcd11307d874b4cd3100344e7e2d888d9791a6a1d9bfe90fbc1b74fd1d0 # via -r py/requirements.txt pytest-trio==0.8.0 \ --hash=sha256:8363db6336a79e6c53375a2123a41ddbeccc4aa93f93788651641789a56fb52e \ @@ -710,9 +711,9 @@ tomli==2.2.1 \ # pyproject-api # pytest # tox -tox==4.25.0 \ - --hash=sha256:4dfdc7ba2cc6fdc6688dde1b21e7b46ff6c41795fb54586c91a3533317b5255c \ - --hash=sha256:dd67f030317b80722cf52b246ff42aafd3ed27ddf331c415612d084304cf5e52 +tox==4.26.0 \ + --hash=sha256:75f17aaf09face9b97bd41645028d9f722301e912be8b4c65a3f938024560224 \ + --hash=sha256:a83b3b67b0159fa58e44e646505079e35a43317a62d2ae94725e0586266faeca # via -r py/requirements.txt trio==0.30.0 \ --hash=sha256:0781c857c0c81f8f51e0089929a26b5bb63d57f927728a5586f7e36171f064df \ @@ -729,9 +730,9 @@ twine==6.1.0 \ --hash=sha256:a47f973caf122930bf0fbbf17f80b83bc1602c9ce393c7845f289a3001dc5384 \ --hash=sha256:be324f6272eff91d07ee93f251edf232fc647935dd585ac003539b42404a8dbd # via -r py/requirements.txt -typing-extensions==4.13.2 \ - --hash=sha256:a439e7c04b49fec3e5d3e2beaa21755cadbbdc391694e28ccdd36ca4a1408f8c \ - --hash=sha256:e6c81219bd689f51865d9e372991c540bda33a0379d5573cddb9a3a23f7caaef +typing-extensions==4.14.0 \ + --hash=sha256:8676b788e32f02ab42d9e7c61324048ae4c6d844a399eebace3d4979d75ceef4 \ + --hash=sha256:a1514509136dd0b477638fc68d6a91497af5076466ad0fa6c338e44e359944af # via # -r py/requirements.txt # exceptiongroup @@ -762,9 +763,9 @@ wsproto==1.2.0 \ # via # -r py/requirements.txt # trio-websocket -zipp==3.21.0 \ - --hash=sha256:2c9958f6430a2040341a52eb608ed6dd93ef4392e02ffe219417c1b28b5dd1f4 \ - --hash=sha256:ac1bbe05fd2991f160ebce24ffbac5f6d11d83dc90891255885223d42b3cd931 +zipp==3.22.0 \ + --hash=sha256:dd2f28c3ce4bc67507bfd3781d21b7bb2be31103b51a4553ad7d90b84e57ace5 \ + --hash=sha256:fe208f65f2aca48b81f9e6fd8cf7b8b32c26375266b009b413d45306b6148343 # via # -r py/requirements.txt # importlib-metadata diff --git a/py/tox.ini b/py/tox.ini index 5704cd541bd1e..2080c8d7b77d9 100644 --- a/py/tox.ini +++ b/py/tox.ini @@ -32,9 +32,9 @@ setenv = [testenv:mypy] skip_install = true deps = - mypy==1.15.0 - lxml==5.3.2 - types-urllib3==1.26.25 + mypy==1.16.0 + lxml==5.4.0 + types-urllib3==1.26.25.14 types-certifi==2021.10.8.3 trio-typing==0.10.0 commands = diff --git a/scripts/update_py_dependencies.sh b/scripts/update_py_dependencies.sh new file mode 100755 index 0000000000000..7655679ee8ac8 --- /dev/null +++ b/scripts/update_py_dependencies.sh @@ -0,0 +1,80 @@ +#!/usr/bin/env bash +# +# This script updates the development dependendencies used for the Python bindings. +# +# When you run it, it will: +# - create and activate a temporary virtual env +# - install the current package dependencies from `py/requirements.txt` +# - upgrade the package dependencies to the latest versions available on PyPI +# - run `pip freeze` to generate a new `py/requirements.txt` file +# - run `bazel run //py:requirements.update` to generate a new `py/requirements_lock.txt` file +# - deactivate and remove the temporary virtual env +# +# After running this script, you should also manually check package dependency versions in +# `py/pyproject.toml`, `py/tox.ini` and `py/BUILD.bazel`, and update those if needed. +# +# Once all dependencies are updated, create a new Pull Request with the changes. + +set -e + +REQUIREMENTS_FILE="./py/requirements.txt" +VENV="./temp_virtualenv" + +cd "$(git rev-parse --show-toplevel)" + +if [[ ! -f "${REQUIREMENTS_FILE}" ]]; then + echo "can't find: ${REQUIREMENTS_FILE}" + exit 1 +fi + +if [[ -d "${VENV}" ]]; then + echo "${VENV} already exists" + exit 1 +fi + +echo "creating virtual env: ${VENV}" +python3 -m venv "${VENV}" + +echo "activating virtual env" +source "${VENV}/bin/activate" + +echo "upgrading pip" +python -m pip install --upgrade pip > /dev/null + +echo "installing dev dependencies from: ${REQUIREMENTS_FILE}" +pip install -r "${REQUIREMENTS_FILE}" > /dev/null + +echo "upgrading outdated dependencies ..." +echo +pip list --outdated | while read -r line; do + if [[ ! "${line}" =~ "Version Latest" && ! "${line}" =~ "----" ]]; then + read -ra fields <<< "${line}" + package="${fields[0]}" + echo "upgrading ${package} from ${fields[1]} to ${fields[2]}" + pip install --upgrade "${package}==${fields[2]}" > /dev/null + fi +done + +echo +echo "generating new ${REQUIREMENTS_FILE}" +pip freeze > "${REQUIREMENTS_FILE}" +# `pip freeze` doesn't show package "extras", so we explicitly add it here for urllib3 +if [[ "${OSTYPE}" == "linux"* ]]; then + sed -i "s/urllib3/urllib3[socks]/g" "${REQUIREMENTS_FILE}" # GNU sed +else + sed -i "" "s/urllib3/urllib3[socks]/g" "${REQUIREMENTS_FILE}" +fi + +echo "generating new lock file" +bazel run //py:requirements.update + +echo +echo "deleting virtual env: ${VENV}" +deactivate +rm -rf "${VENV}" + +echo +git status + +echo +echo "done!"