From 07bf8666c152af8141f448ecdef62666f5a96315 Mon Sep 17 00:00:00 2001 From: Faster Speeding Date: Fri, 10 Mar 2023 16:36:56 +0000 Subject: [PATCH 1/4] Add typing-extensions as a dependency --- dev-requirements/tests.in | 1 + dev-requirements/type-checking.in | 1 + pyproject.toml | 2 +- 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/dev-requirements/tests.in b/dev-requirements/tests.in index a9ca3ec0..e51f31c4 100644 --- a/dev-requirements/tests.in +++ b/dev-requirements/tests.in @@ -1,3 +1,4 @@ +-r ./constraints.in -r ../piped/python/base-requirements/tests.in # Comes with a builtin pytest plugin. diff --git a/dev-requirements/type-checking.in b/dev-requirements/type-checking.in index 43132323..f8db787a 100644 --- a/dev-requirements/type-checking.in +++ b/dev-requirements/type-checking.in @@ -1,3 +1,4 @@ +-r ./constraints.in -r ./tests.in -r ../piped/python/base-requirements/nox.in -r ../piped/python/base-requirements/type-checking.in diff --git a/pyproject.toml b/pyproject.toml index 0c5af0f8..5c4cb008 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -28,7 +28,7 @@ classifiers = [ "Topic :: Utilities", "Typing :: Typed" ] -dependencies = [] +dependencies = ["typing-extensions>=4.5"] dynamic = ["description"] [project.urls] From 896f1db31da2f63ef4cef624cb1e677185029be4 Mon Sep 17 00:00:00 2001 From: "always-on-duty[bot]" <120557446+always-on-duty[bot]@users.noreply.github.com> Date: Fri, 10 Mar 2023 16:41:03 +0000 Subject: [PATCH 2/4] Freeze PR dependency changes --- dev-requirements/constraints.in | 1 + dev-requirements/constraints.txt | 9 ++ dev-requirements/tests.txt | 3 + dev-requirements/type-checking.txt | 152 ++++++++++++++--------------- 4 files changed, 89 insertions(+), 76 deletions(-) create mode 100644 dev-requirements/constraints.in create mode 100644 dev-requirements/constraints.txt diff --git a/dev-requirements/constraints.in b/dev-requirements/constraints.in new file mode 100644 index 00000000..2dd412d1 --- /dev/null +++ b/dev-requirements/constraints.in @@ -0,0 +1 @@ +typing-extensions>=4.5 diff --git a/dev-requirements/constraints.txt b/dev-requirements/constraints.txt new file mode 100644 index 00000000..aa30fb1c --- /dev/null +++ b/dev-requirements/constraints.txt @@ -0,0 +1,9 @@ +# +# This file is autogenerated by pip-compile-cross-platform +# To update, run: +# +# pip-compile-cross-platform dev-requirements/constraints.in --output-file dev-requirements/constraints.txt --min-python-version 3.9.0,<3.13 +# +typing-extensions==4.5.0 ; python_full_version >= "3.9.0" and python_version < "3.13" \ + --hash=sha256:5cb5f4a79139d699607b3ef622a1dedafa84e115ab0024e0d9c044a9479ca7cb \ + --hash=sha256:fb33085c39dd998ac16d1431ebc293a8b3eedd00fd4a32de0ff79002c19511b4 diff --git a/dev-requirements/tests.txt b/dev-requirements/tests.txt index e4534709..11c9a477 100644 --- a/dev-requirements/tests.txt +++ b/dev-requirements/tests.txt @@ -184,3 +184,6 @@ tomli==2.0.1 ; python_full_version >= "3.9.0" and python_full_version <= "3.11.0 trio==0.22.0 ; python_full_version >= "3.9.0" and python_version < "3.13" \ --hash=sha256:ce68f1c5400a47b137c5a4de72c7c901bd4e7a24fbdebfe9b41de8c6c04eaacf \ --hash=sha256:f1dd0780a89bfc880c7c7994519cb53f62aacb2c25ff487001c0052bd721cdf0 +typing-extensions==4.5.0 ; python_full_version >= "3.9.0" and python_version < "3.13" \ + --hash=sha256:5cb5f4a79139d699607b3ef622a1dedafa84e115ab0024e0d9c044a9479ca7cb \ + --hash=sha256:fb33085c39dd998ac16d1431ebc293a8b3eedd00fd4a32de0ff79002c19511b4 diff --git a/dev-requirements/type-checking.txt b/dev-requirements/type-checking.txt index 77dacb8c..9ffba7ce 100644 --- a/dev-requirements/type-checking.txt +++ b/dev-requirements/type-checking.txt @@ -7,9 +7,9 @@ anyio==3.6.2 ; python_full_version >= "3.9.0" and python_version < "3.13" \ --hash=sha256:25ea0d673ae30af41a0c442f81cf3b38c7e79fdc7b60335a4c14e05eb0947421 \ --hash=sha256:fbbe32bd270d2a2ef3ed1c5d45041250284e31fc0a4df4a5a6071842051a51e3 -argcomplete==2.0.6 ; python_full_version >= "3.9.0" and python_version < "3.13" \ - --hash=sha256:6c2170b3e0ab54683cb28d319b65261bde1f11388be688b68118b7d281e34c94 \ - --hash=sha256:dc33528d96727882b576b24bc89ed038f3c6abbb6855ff9bb6be23384afff9d6 +argcomplete==2.1.1 ; python_full_version >= "3.9.0" and python_version < "3.13" \ + --hash=sha256:17041f55b8c45099428df6ce6d0d282b892471a78c71375d24f227e21c13f8c5 \ + --hash=sha256:72e08340852d32544459c0c19aad1b48aa2c3a96de8c6e5742456b4f538ca52f async-generator==1.10 ; python_full_version >= "3.9.0" and python_version < "3.13" \ --hash=sha256:01c7bf666359b4967d2cda0000cc2e4af16a0ae098cbffcb8472fb9e8ad6585b \ --hash=sha256:6ebb3d106c12920aaae42ccb6f787ef5eefdcdd166ea3d628fa8476abe712144 @@ -214,33 +214,33 @@ markupsafe==2.1.2 ; python_full_version >= "3.9.0" and python_version < "3.13" \ mypy-extensions==1.0.0 ; python_full_version >= "3.9.0" and python_version < "3.13" \ --hash=sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d \ --hash=sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782 -mypy==1.0.1 ; python_full_version >= "3.9.0" and python_version < "3.13" \ - --hash=sha256:0af4f0e20706aadf4e6f8f8dc5ab739089146b83fd53cb4a7e0e850ef3de0bb6 \ - --hash=sha256:15b5a824b58c7c822c51bc66308e759243c32631896743f030daf449fe3677f3 \ - --hash=sha256:17455cda53eeee0a4adb6371a21dd3dbf465897de82843751cf822605d152c8c \ - --hash=sha256:2013226d17f20468f34feddd6aae4635a55f79626549099354ce641bc7d40262 \ - --hash=sha256:24189f23dc66f83b839bd1cce2dfc356020dfc9a8bae03978477b15be61b062e \ - --hash=sha256:27a0f74a298769d9fdc8498fcb4f2beb86f0564bcdb1a37b58cbbe78e55cf8c0 \ - --hash=sha256:28cea5a6392bb43d266782983b5a4216c25544cd7d80be681a155ddcdafd152d \ - --hash=sha256:448de661536d270ce04f2d7dddaa49b2fdba6e3bd8a83212164d4174ff43aa65 \ - --hash=sha256:48525aec92b47baed9b3380371ab8ab6e63a5aab317347dfe9e55e02aaad22e8 \ - --hash=sha256:5bc8d6bd3b274dd3846597855d96d38d947aedba18776aa998a8d46fabdaed76 \ - --hash=sha256:5deb252fd42a77add936b463033a59b8e48eb2eaec2976d76b6878d031933fe4 \ - --hash=sha256:5f546ac34093c6ce33f6278f7c88f0f147a4849386d3bf3ae193702f4fe31407 \ - --hash=sha256:5fdd63e4f50e3538617887e9aee91855368d9fc1dea30da743837b0df7373bc4 \ - --hash=sha256:65b122a993d9c81ea0bfde7689b3365318a88bde952e4dfa1b3a8b4ac05d168b \ - --hash=sha256:71a808334d3f41ef011faa5a5cd8153606df5fc0b56de5b2e89566c8093a0c9a \ - --hash=sha256:920169f0184215eef19294fa86ea49ffd4635dedfdea2b57e45cb4ee85d5ccaf \ - --hash=sha256:93a85495fb13dc484251b4c1fd7a5ac370cd0d812bbfc3b39c1bafefe95275d5 \ - --hash=sha256:a2948c40a7dd46c1c33765718936669dc1f628f134013b02ff5ac6c7ef6942bf \ - --hash=sha256:c6c2ccb7af7154673c591189c3687b013122c5a891bb5651eca3db8e6c6c55bd \ - --hash=sha256:c96b8a0c019fe29040d520d9257d8c8f122a7343a8307bf8d6d4a43f5c5bfcc8 \ - --hash=sha256:d42a98e76070a365a1d1c220fcac8aa4ada12ae0db679cb4d910fabefc88b994 \ - --hash=sha256:dbeb24514c4acbc78d205f85dd0e800f34062efcc1f4a4857c57e4b4b8712bff \ - --hash=sha256:e60d0b09f62ae97a94605c3f73fd952395286cf3e3b9e7b97f60b01ddfbbda88 \ - --hash=sha256:e64f48c6176e243ad015e995de05af7f22bbe370dbb5b32bd6988438ec873919 \ - --hash=sha256:e831662208055b006eef68392a768ff83596035ffd6d846786578ba1714ba8f6 \ - --hash=sha256:eda5c8b9949ed411ff752b9a01adda31afe7eae1e53e946dbdf9db23865e66c4 +mypy==1.1.1 ; python_full_version >= "3.9.0" and python_version < "3.13" \ + --hash=sha256:0a28a76785bf57655a8ea5eb0540a15b0e781c807b5aa798bd463779988fa1d5 \ + --hash=sha256:19ba15f9627a5723e522d007fe708007bae52b93faab00f95d72f03e1afa9598 \ + --hash=sha256:21b437be1c02712a605591e1ed1d858aba681757a1e55fe678a15c2244cd68a5 \ + --hash=sha256:26cdd6a22b9b40b2fd71881a8a4f34b4d7914c679f154f43385ca878a8297389 \ + --hash=sha256:2888ce4fe5aae5a673386fa232473014056967f3904f5abfcf6367b5af1f612a \ + --hash=sha256:2b0c373d071593deefbcdd87ec8db91ea13bd8f1328d44947e88beae21e8d5e9 \ + --hash=sha256:315ac73cc1cce4771c27d426b7ea558fb4e2836f89cb0296cbe056894e3a1f78 \ + --hash=sha256:39c7119335be05630611ee798cc982623b9e8f0cff04a0b48dfc26100e0b97af \ + --hash=sha256:4b398d8b1f4fba0e3c6463e02f8ad3346f71956b92287af22c9b12c3ec965a9f \ + --hash=sha256:4e4e8b362cdf99ba00c2b218036002bdcdf1e0de085cdb296a49df03fb31dfc4 \ + --hash=sha256:59bbd71e5c58eed2e992ce6523180e03c221dcd92b52f0e792f291d67b15a71c \ + --hash=sha256:5b5f81b40d94c785f288948c16e1f2da37203c6006546c5d947aab6f90aefef2 \ + --hash=sha256:5cb14ff9919b7df3538590fc4d4c49a0f84392237cbf5f7a816b4161c061829e \ + --hash=sha256:61bf08362e93b6b12fad3eab68c4ea903a077b87c90ac06c11e3d7a09b56b9c1 \ + --hash=sha256:64cc3afb3e9e71a79d06e3ed24bb508a6d66f782aff7e56f628bf35ba2e0ba51 \ + --hash=sha256:69b35d1dcb5707382810765ed34da9db47e7f95b3528334a3c999b0c90fe523f \ + --hash=sha256:9401e33814cec6aec8c03a9548e9385e0e228fc1b8b0a37b9ea21038e64cdd8a \ + --hash=sha256:a380c041db500e1410bb5b16b3c1c35e61e773a5c3517926b81dfdab7582be54 \ + --hash=sha256:ae9ceae0f5b9059f33dbc62dea087e942c0ccab4b7a003719cb70f9b8abfa32f \ + --hash=sha256:b7c7b708fe9a871a96626d61912e3f4ddd365bf7f39128362bc50cbd74a634d5 \ + --hash=sha256:c1c10fa12df1232c936830839e2e935d090fc9ee315744ac33b8a32216b93707 \ + --hash=sha256:ce61663faf7a8e5ec6f456857bfbcec2901fbdb3ad958b778403f63b9e606a1b \ + --hash=sha256:d64c28e03ce40d5303450f547e07418c64c241669ab20610f273c9e6290b4b0b \ + --hash=sha256:d809f88734f44a0d44959d795b1e6f64b2bbe0ea4d9cc4776aa588bb4229fc1c \ + --hash=sha256:dbb19c9f662e41e474e0cff502b7064a7edc6764f5262b6cd91d698163196799 \ + --hash=sha256:ef6a01e563ec6a4940784c574d33f6ac1943864634517984471642908b30b6f7 nodeenv==1.7.0 ; python_full_version >= "3.9.0" and python_version < "3.13" \ --hash=sha256:27083a7b96a25f2f5e1d8cb4b6317ee8aeda3bdd121394e5ac54e498028a042e \ --hash=sha256:e0e7f7dfb85fc5394c6fe1e8fa98131a2473e04311a45afb6508f7cf1836fa2b @@ -253,55 +253,55 @@ outcome==1.2.0 ; python_full_version >= "3.9.0" and python_version < "3.13" \ packaging==23.0 ; python_full_version >= "3.9.0" and python_version < "3.13" \ --hash=sha256:714ac14496c3e68c99c29b00845f7a2b85f3bb6f1078fd9f72fd20f0570002b2 \ --hash=sha256:b6ad297f8907de0fa2fe1ccbd26fdaf387f5f47c7275fedf8cce89f99446cf97 -platformdirs==3.1.0 ; python_full_version >= "3.9.0" and python_version < "3.13" \ - --hash=sha256:13b08a53ed71021350c9e300d4ea8668438fb0046ab3937ac9a29913a1a1350a \ - --hash=sha256:accc3665857288317f32c7bebb5a8e482ba717b474f3fc1d18ca7f9214be0cef +platformdirs==3.1.1 ; python_full_version >= "3.9.0" and python_version < "3.13" \ + --hash=sha256:024996549ee88ec1a9aa99ff7f8fc819bb59e2c3477b410d90a16d32d6e707aa \ + --hash=sha256:e5986afb596e4bb5bde29a79ac9061aa955b94fca2399b7aaac4090860920dd8 pluggy==1.0.0 ; python_full_version >= "3.9.0" and python_version < "3.13" \ --hash=sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159 \ --hash=sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3 pycparser==2.21 ; python_full_version >= "3.9.0" and os_name == "nt" and implementation_name != "pypy" and python_version < "3.13" \ --hash=sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9 \ --hash=sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206 -pydantic==1.10.5 ; python_full_version >= "3.9.0" and python_version < "3.13" \ - --hash=sha256:1fd326aff5d6c36f05735c7c9b3d5b0e933b4ca52ad0b6e4b38038d82703d35b \ - --hash=sha256:2185a3b3d98ab4506a3f6707569802d2d92c3a7ba3a9a35683a7709ea6c2aaa2 \ - --hash=sha256:261f357f0aecda005934e413dfd7aa4077004a174dafe414a8325e6098a8e419 \ - --hash=sha256:305d0376c516b0dfa1dbefeae8c21042b57b496892d721905a6ec6b79494a66d \ - --hash=sha256:3257bd714de9db2102b742570a56bf7978e90441193acac109b1f500290f5718 \ - --hash=sha256:3353072625ea2a9a6c81ad01b91e5c07fa70deb06368c71307529abf70d23325 \ - --hash=sha256:36e44a4de37b8aecffa81c081dbfe42c4d2bf9f6dff34d03dce157ec65eb0f15 \ - --hash=sha256:3bb99cf9655b377db1a9e47fa4479e3330ea96f4123c6c8200e482704bf1eda2 \ - --hash=sha256:3f9d9b2be177c3cb6027cd67fbf323586417868c06c3c85d0d101703136e6b31 \ - --hash=sha256:45edea10b75d3da43cfda12f3792833a3fa70b6eee4db1ed6aed528cef17c74e \ - --hash=sha256:51782fd81f09edcf265823c3bf43ff36d00db246eca39ee765ef58dc8421a642 \ - --hash=sha256:532e97c35719f137ee5405bd3eeddc5c06eb91a032bc755a44e34a712420daf3 \ - --hash=sha256:58e41dd1e977531ac6073b11baac8c013f3cd8706a01d3dc74e86955be8b2c0c \ - --hash=sha256:5920824fe1e21cbb3e38cf0f3dd24857c8959801d1031ce1fac1d50857a03bfb \ - --hash=sha256:5f3bc8f103b56a8c88021d481410874b1f13edf6e838da607dcb57ecff9b4594 \ - --hash=sha256:63200cd8af1af2c07964546b7bc8f217e8bda9d0a2ef0ee0c797b36353914984 \ - --hash=sha256:663d2dd78596c5fa3eb996bc3f34b8c2a592648ad10008f98d1348be7ae212fb \ - --hash=sha256:6a4b0aab29061262065bbdede617ef99cc5914d1bf0ddc8bcd8e3d7928d85bd6 \ - --hash=sha256:6bb0452d7b8516178c969d305d9630a3c9b8cf16fcf4713261c9ebd465af0d73 \ - --hash=sha256:72ef3783be8cbdef6bca034606a5de3862be6b72415dc5cb1fb8ddbac110049a \ - --hash=sha256:76c930ad0746c70f0368c4596020b736ab65b473c1f9b3872310a835d852eb19 \ - --hash=sha256:7c5b94d598c90f2f46b3a983ffb46ab806a67099d118ae0da7ef21a2a4033b28 \ - --hash=sha256:7ce1612e98c6326f10888df951a26ec1a577d8df49ddcaea87773bfbe23ba5cc \ - --hash=sha256:8481dca324e1c7b715ce091a698b181054d22072e848b6fc7895cd86f79b4449 \ - --hash=sha256:87f831e81ea0589cd18257f84386bf30154c5f4bed373b7b75e5cb0b5d53ea87 \ - --hash=sha256:9a9d9155e2a9f38b2eb9374c88f02fd4d6851ae17b65ee786a87d032f87008f8 \ - --hash=sha256:9e337ac83686645a46db0e825acceea8e02fca4062483f40e9ae178e8bd1103a \ - --hash=sha256:b429f7c457aebb7fbe7cd69c418d1cd7c6fdc4d3c8697f45af78b8d5a7955760 \ - --hash=sha256:b473d00ccd5c2061fd896ac127b7755baad233f8d996ea288af14ae09f8e0d1e \ - --hash=sha256:bd46a0e6296346c477e59a954da57beaf9c538da37b9df482e50f836e4a7d4bb \ - --hash=sha256:c428c0f64a86661fb4873495c4fac430ec7a7cef2b8c1c28f3d1a7277f9ea5ab \ - --hash=sha256:c9e5b778b6842f135902e2d82624008c6a79710207e28e86966cd136c621bfee \ - --hash=sha256:ca9075ab3de9e48b75fa8ccb897c34ccc1519177ad8841d99f7fd74cf43be5bf \ - --hash=sha256:f582cac9d11c227c652d3ce8ee223d94eb06f4228b52a8adaafa9fa62e73d5c9 \ - --hash=sha256:f5bee6c523d13944a1fdc6f0525bc86dbbd94372f17b83fa6331aabacc8fd08e \ - --hash=sha256:f836444b4c5ece128b23ec36a446c9ab7f9b0f7981d0d27e13a7c366ee163f8a -pyright==1.1.296 ; python_full_version >= "3.9.0" and python_version < "3.13" \ - --hash=sha256:51cc5f05807b1fb53f9f0e14736b8f772b500a3ba4e0edeb99727e68e700d9ea \ - --hash=sha256:6c3cd394473e55a516ebe443d02b83e63456ef29f052dcf8e64e7875c1418fa6 +pydantic==1.10.6 ; python_full_version >= "3.9.0" and python_version < "3.13" \ + --hash=sha256:012c99a9c0d18cfde7469aa1ebff922e24b0c706d03ead96940f5465f2c9cf62 \ + --hash=sha256:0abd9c60eee6201b853b6c4be104edfba4f8f6c5f3623f8e1dba90634d63eb35 \ + --hash=sha256:12e837fd320dd30bd625be1b101e3b62edc096a49835392dcf418f1a5ac2b832 \ + --hash=sha256:163e79386c3547c49366e959d01e37fc30252285a70619ffc1b10ede4758250a \ + --hash=sha256:189318051c3d57821f7233ecc94708767dd67687a614a4e8f92b4a020d4ffd06 \ + --hash=sha256:1c84583b9df62522829cbc46e2b22e0ec11445625b5acd70c5681ce09c9b11c4 \ + --hash=sha256:3091d2eaeda25391405e36c2fc2ed102b48bac4b384d42b2267310abae350ca6 \ + --hash=sha256:32937835e525d92c98a1512218db4eed9ddc8f4ee2a78382d77f54341972c0e7 \ + --hash=sha256:3a2be0a0f32c83265fd71a45027201e1278beaa82ea88ea5b345eea6afa9ac7f \ + --hash=sha256:3ac1cd4deed871dfe0c5f63721e29debf03e2deefa41b3ed5eb5f5df287c7b70 \ + --hash=sha256:3ce13a558b484c9ae48a6a7c184b1ba0e5588c5525482681db418268e5f86186 \ + --hash=sha256:415a3f719ce518e95a92effc7ee30118a25c3d032455d13e121e3840985f2efd \ + --hash=sha256:43cdeca8d30de9a897440e3fb8866f827c4c31f6c73838e3a01a14b03b067b1d \ + --hash=sha256:476f6674303ae7965730a382a8e8d7fae18b8004b7b69a56c3d8fa93968aa21c \ + --hash=sha256:4c19eb5163167489cb1e0161ae9220dadd4fc609a42649e7e84a8fa8fff7a80f \ + --hash=sha256:4ca83739c1263a044ec8b79df4eefc34bbac87191f0a513d00dd47d46e307a65 \ + --hash=sha256:528dcf7ec49fb5a84bf6fe346c1cc3c55b0e7603c2123881996ca3ad79db5bfc \ + --hash=sha256:53de12b4608290992a943801d7756f18a37b7aee284b9ffa794ee8ea8153f8e2 \ + --hash=sha256:587d92831d0115874d766b1f5fddcdde0c5b6c60f8c6111a394078ec227fca6d \ + --hash=sha256:60184e80aac3b56933c71c48d6181e630b0fbc61ae455a63322a66a23c14731a \ + --hash=sha256:6195ca908045054dd2d57eb9c39a5fe86409968b8040de8c2240186da0769da7 \ + --hash=sha256:61f1f08adfaa9cc02e0cbc94f478140385cbd52d5b3c5a657c2fceb15de8d1fb \ + --hash=sha256:72cb30894a34d3a7ab6d959b45a70abac8a2a93b6480fc5a7bfbd9c935bdc4fb \ + --hash=sha256:751f008cd2afe812a781fd6aa2fb66c620ca2e1a13b6a2152b1ad51553cb4b77 \ + --hash=sha256:89f15277d720aa57e173954d237628a8d304896364b9de745dcb722f584812c7 \ + --hash=sha256:8c32b6bba301490d9bb2bf5f631907803135e8085b6aa3e5fe5a770d46dd0160 \ + --hash=sha256:acc6783751ac9c9bc4680379edd6d286468a1dc8d7d9906cd6f1186ed682b2b0 \ + --hash=sha256:b1eb6610330a1dfba9ce142ada792f26bbef1255b75f538196a39e9e90388bf4 \ + --hash=sha256:b243b564cea2576725e77aeeda54e3e0229a168bc587d536cd69941e6797543d \ + --hash=sha256:b41822064585fea56d0116aa431fbd5137ce69dfe837b599e310034171996084 \ + --hash=sha256:bbd5c531b22928e63d0cb1868dee76123456e1de2f1cb45879e9e7a3f3f1779b \ + --hash=sha256:cf95adb0d1671fc38d8c43dd921ad5814a735e7d9b4d9e437c088002863854fd \ + --hash=sha256:e277bd18339177daa62a294256869bbe84df1fb592be2716ec62627bb8d7c81d \ + --hash=sha256:ea4e2a7cb409951988e79a469f609bba998a576e6d7b9791ae5d1e0619e1c0f2 \ + --hash=sha256:f9289065611c48147c1dd1fd344e9d57ab45f1d99b0fb26c51f1cf72cd9bcd31 \ + --hash=sha256:fd9b9e98068fa1068edfc9eabde70a7132017bdd4f362f8b4fd0abed79c33083 +pyright==1.1.298 ; python_full_version >= "3.9.0" and python_version < "3.13" \ + --hash=sha256:94a26bf56ba4eef582dffa61be20aa913db3096f4ee102c4c86592f0bced857d \ + --hash=sha256:b492371519706459324eb2b468e2f57ae943568469b5353dbd2e44b281677198 pytest-cov==4.0.0 ; python_full_version >= "3.9.0" and python_version < "3.13" \ --hash=sha256:2feb1b751d66a8bd934e5edfa2e961d11309dc37b73b0eabe73b5945fee20f6b \ --hash=sha256:996b79efde6433cdbd0088872dbc5fb3ed7fe1578b68cdbba634f14bb8dd0470 @@ -314,9 +314,9 @@ pytest-xdist==3.2.0 ; python_full_version >= "3.9.0" and python_version < "3.13" pytest==7.2.2 ; python_full_version >= "3.9.0" and python_version < "3.13" \ --hash=sha256:130328f552dcfac0b1cec75c12e3f005619dc5f874f0a06e8ff7263f0ee6225e \ --hash=sha256:c99ab0c73aceb050f68929bc93af19ab6db0558791c6a0715723abe9d0ade9d4 -setuptools==67.5.1 ; python_full_version >= "3.9.0" and python_version < "3.13" \ - --hash=sha256:15136a251127da2d2e77ac7a1bc231eb504654f7e3346d93613a13f2e2787535 \ - --hash=sha256:1c39d42bda4cb89f7fdcad52b6762e3c309ec8f8715b27c684176b7d71283242 +setuptools==67.6.0 ; python_full_version >= "3.9.0" and python_version < "3.13" \ + --hash=sha256:2ee892cd5f29f3373097f5a814697e397cf3ce313616df0af11231e2ad118077 \ + --hash=sha256:b78aaa36f6b90a074c1fa651168723acbf45d14cb1196b6f02c0fd07f17623b2 sniffio==1.3.0 ; python_full_version >= "3.9.0" and python_version < "3.13" \ --hash=sha256:e60305c5e5d314f5389259b7f22aaa33d8f7dee49763119234af3755c55b9101 \ --hash=sha256:eecefdce1e5bbfb7ad2eeaabf7c1eeb404d7757c379bd1f7e5cce9d8bf425384 From ca268796be218d6e4f969757b3b322cae8e89d96 Mon Sep 17 00:00:00 2001 From: Faster Speeding Date: Fri, 10 Mar 2023 17:25:55 +0000 Subject: [PATCH 3/4] Add ceiling to typing-extensions constraint --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 5c4cb008..97d15b61 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -28,7 +28,7 @@ classifiers = [ "Topic :: Utilities", "Typing :: Typed" ] -dependencies = ["typing-extensions>=4.5"] +dependencies = ["typing-extensions>=4.5, <5"] dynamic = ["description"] [project.urls] From abe8bff1dfbbc36a1ab2550c4ee67bed3cde3bcd Mon Sep 17 00:00:00 2001 From: Faster Speeding Date: Mon, 24 Jul 2023 13:31:28 +0100 Subject: [PATCH 4/4] tmp commit --- alluka/_types.py | 3 +++ alluka/_visitor.py | 22 ++++++++++++++++++---- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/alluka/_types.py b/alluka/_types.py index 88607cfb..0a88317d 100644 --- a/alluka/_types.py +++ b/alluka/_types.py @@ -45,12 +45,15 @@ class _UndefinedEnum(enum.Enum): UNDEFINED = object() + NO_PASS = object() UNDEFINED = _UndefinedEnum.UNDEFINED """Singleton used internally to indicate that a value is undefined.""" UndefinedOr = typing.Union[_T, typing.Literal[_UndefinedEnum.UNDEFINED]] """Union for a value which may be undefined.""" +NO_PASS = _UndefinedEnum.NO_PASS +""""Singleton used internally to mark as don't pass when no value was assigned.""" class InjectedCallback: diff --git a/alluka/_visitor.py b/alluka/_visitor.py index 00179ea7..830ae35f 100644 --- a/alluka/_visitor.py +++ b/alluka/_visitor.py @@ -40,6 +40,8 @@ from . import _types # pyright: ignore [ reportPrivateUsage ] from ._vendor import inspect +import typing_extensions + if sys.version_info >= (3, 10): _UnionTypes = frozenset((typing.Union, types.UnionType)) _NoneType = types.NoneType @@ -175,11 +177,10 @@ def _parse_type( def _annotation_to_type( self, value: typing.Any, /, default: _types.UndefinedOr[typing.Any] = _types.UNDEFINED ) -> _types.InjectedTuple: - if typing.get_origin(value) is typing.Annotated: + origin = typing.get_origin(value) + if origin is typing.Annotated: args = typing.get_args(value) - # The first "type" arg of annotated will always be flatterned to a type. - # so we don't have to deal with Annotated nesting". - value = args[0] + return self._annotation_to_type(args[0], default=default) return self._parse_type(value, default=default) @@ -214,6 +215,19 @@ def visit_annotation(self, annotation: Annotation, /) -> typing.Optional[_types. def visit_callback(self, callback: Callback, /) -> dict[str, _types.InjectedTuple]: results: dict[str, _types.InjectedTuple] = {} for name, value in callback.parameters.items(): + if value.kind is value.POSITIONAL_OR_KEYWORD: + annotation = typing_extensions.get_origin(callback.resolve_annotation(name)) + if annotation is not typing_extensions.Unpack: + continue + + typed_dict = typing_extensions.get_args(annotation)[0] + if not typing_extensions.is_typeddict(typed_dict): + continue + + + continue + + for node in self._NODES: result = node(callback, name).accept(self) if not result: