Skip to content

Commit

Permalink
Mark callback and ctx as positional only in call_with methods (#446)
Browse files Browse the repository at this point in the history
Co-authored-by: always-on-duty[bot] <120557446+always-on-duty[bot]@users.noreply.github.com>
  • Loading branch information
FasterSpeeding and always-on-duty[bot] authored Oct 13, 2024
1 parent 12d2bb4 commit 8e1a1e8
Show file tree
Hide file tree
Showing 10 changed files with 301 additions and 246 deletions.
8 changes: 7 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,11 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]
## [0.3.3] - 2024-10-13
### Fixed
- Correctly mark `ctx` and `callback` as positional only in the call_with methods
and functions to avoid conflicting with passed-through keyword arguments.

## [0.3.2] - 2024-10-07
### Changed
- Support Python 3.13.
Expand Down Expand Up @@ -140,7 +145,8 @@ part of Tanjun.
- The public `CallackDescriptor` and `TypeDescriptor` classes as callbacks
are now processed within the client and any necessary caching is kept internal.

[Unreleased]: https://github.com/FasterSpeeding/Alluka/compare/v0.3.2...HEAD
[Unreleased]: https://github.com/FasterSpeeding/Alluka/compare/v0.3.3...HEAD
[0.3.3]: https://github.com/FasterSpeeding/Alluka/compare/v0.3.2...v0.3.3
[0.3.2]: https://github.com/FasterSpeeding/Alluka/compare/v0.3.1...v0.3.2
[0.3.1]: https://github.com/FasterSpeeding/Alluka/compare/v0.3.0...v0.3.1
[0.3.0]: https://github.com/FasterSpeeding/Alluka/compare/v0.2.0...v0.3.0
Expand Down
7 changes: 4 additions & 3 deletions alluka/_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -231,17 +231,18 @@ def call_with_ctx(
self,
ctx: alluka.Context,
callback: collections.Callable[..., _AnyCoro],
/,
*args: typing.Any,
**kwargs: typing.Any,
) -> typing.NoReturn: ...

@typing.overload
def call_with_ctx(
self, ctx: alluka.Context, callback: collections.Callable[..., _T], *args: typing.Any, **kwargs: typing.Any
self, ctx: alluka.Context, callback: collections.Callable[..., _T], /, *args: typing.Any, **kwargs: typing.Any
) -> _T: ...

def call_with_ctx(
self, ctx: alluka.Context, callback: collections.Callable[..., _T], *args: typing.Any, **kwargs: typing.Any
self, ctx: alluka.Context, callback: collections.Callable[..., _T], /, *args: typing.Any, **kwargs: typing.Any
) -> _T:
# <<inherited docstring from alluka.abc.Client>>.
descriptors = self._build_descriptors(callback)
Expand All @@ -256,7 +257,7 @@ def call_with_ctx(
return result

async def call_with_ctx_async(
self, ctx: alluka.Context, callback: alluka.CallbackSig[_T], *args: typing.Any, **kwargs: typing.Any
self, ctx: alluka.Context, callback: alluka.CallbackSig[_T], /, *args: typing.Any, **kwargs: typing.Any
) -> _T:
# <<inherited docstring from alluka.abc.Client>>.
if descriptors := self._build_descriptors(callback):
Expand Down
27 changes: 16 additions & 11 deletions alluka/abc.py
Original file line number Diff line number Diff line change
Expand Up @@ -183,13 +183,15 @@ async def wrapped_callback(*args: _P.args, **kwargs: _P.kwargs) -> _T:

@typing.overload
def call_with_di(
self, callback: collections.Callable[..., _CoroT[typing.Any]], *args: typing.Any, **kwargs: typing.Any
self, callback: collections.Callable[..., _CoroT[typing.Any]], /, *args: typing.Any, **kwargs: typing.Any
) -> typing.NoReturn: ...

@typing.overload
def call_with_di(self, callback: collections.Callable[..., _T], *args: typing.Any, **kwargs: typing.Any) -> _T: ...
def call_with_di(
self, callback: collections.Callable[..., _T], /, *args: typing.Any, **kwargs: typing.Any
) -> _T: ...

def call_with_di(self, callback: collections.Callable[..., _T], *args: typing.Any, **kwargs: typing.Any) -> _T:
def call_with_di(self, callback: collections.Callable[..., _T], /, *args: typing.Any, **kwargs: typing.Any) -> _T:
"""Call a function with sync dependency injection.
Parameters
Expand Down Expand Up @@ -224,19 +226,20 @@ def call_with_ctx(
self,
ctx: Context,
callback: collections.Callable[..., _CoroT[typing.Any]],
/,
*args: typing.Any,
**kwargs: typing.Any,
) -> typing.NoReturn: ...

@typing.overload
@abc.abstractmethod
def call_with_ctx(
self, ctx: Context, callback: collections.Callable[..., _T], *args: typing.Any, **kwargs: typing.Any
self, ctx: Context, callback: collections.Callable[..., _T], /, *args: typing.Any, **kwargs: typing.Any
) -> _T: ...

@abc.abstractmethod
def call_with_ctx(
self, ctx: Context, callback: collections.Callable[..., _T], *args: typing.Any, **kwargs: typing.Any
self, ctx: Context, callback: collections.Callable[..., _T], /, *args: typing.Any, **kwargs: typing.Any
) -> _T:
"""Call a function with an existing DI context.
Expand Down Expand Up @@ -269,7 +272,7 @@ def call_with_ctx(
If the callback or any of its callback dependencies are async.
"""

async def call_with_async_di(self, callback: CallbackSig[_T], *args: typing.Any, **kwargs: typing.Any) -> _T:
async def call_with_async_di(self, callback: CallbackSig[_T], /, *args: typing.Any, **kwargs: typing.Any) -> _T:
"""Call a function with async dependency injection.
Parameters
Expand Down Expand Up @@ -300,7 +303,7 @@ async def call_with_async_di(self, callback: CallbackSig[_T], *args: typing.Any,

@abc.abstractmethod
async def call_with_ctx_async(
self, ctx: Context, callback: CallbackSig[_T], *args: typing.Any, **kwargs: typing.Any
self, ctx: Context, callback: CallbackSig[_T], /, *args: typing.Any, **kwargs: typing.Any
) -> _T:
"""Asynchronously call a function with a pre-existing DI context.
Expand Down Expand Up @@ -479,13 +482,15 @@ def cache_result(self, callback: CallbackSig[_T], value: _T, /) -> None:

@typing.overload
def call_with_di(
self, callback: collections.Callable[..., _CoroT[typing.Any]], *args: typing.Any, **kwargs: typing.Any
self, callback: collections.Callable[..., _CoroT[typing.Any]], /, *args: typing.Any, **kwargs: typing.Any
) -> typing.NoReturn: ...

@typing.overload
def call_with_di(self, callback: collections.Callable[..., _T], *args: typing.Any, **kwargs: typing.Any) -> _T: ...
def call_with_di(
self, callback: collections.Callable[..., _T], /, *args: typing.Any, **kwargs: typing.Any
) -> _T: ...

def call_with_di(self, callback: collections.Callable[..., _T], *args: typing.Any, **kwargs: typing.Any) -> _T:
def call_with_di(self, callback: collections.Callable[..., _T], /, *args: typing.Any, **kwargs: typing.Any) -> _T:
"""Call a function with the current DI context.
Parameters
Expand Down Expand Up @@ -514,7 +519,7 @@ def call_with_di(self, callback: collections.Callable[..., _T], *args: typing.An
"""
return self.injection_client.call_with_ctx(self, callback, *args, **kwargs)

async def call_with_async_di(self, callback: CallbackSig[_T], *args: typing.Any, **kwargs: typing.Any) -> _T:
async def call_with_async_di(self, callback: CallbackSig[_T], /, *args: typing.Any, **kwargs: typing.Any) -> _T:
"""Asynchronously call a function with the current DI context.
Parameters
Expand Down
138 changes: 64 additions & 74 deletions dev-requirements/tests.txt
Original file line number Diff line number Diff line change
Expand Up @@ -81,79 +81,69 @@ cffi==1.17.1 ; os_name == "nt" and implementation_name != "pypy" and python_full
colorama==0.4.6 ; python_full_version >= "3.9.0" and python_version < "3.14" and sys_platform == "win32" \
--hash=sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44 \
--hash=sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6
coverage[toml]==7.6.1 ; python_full_version >= "3.9.0" and python_version < "3.14" \
--hash=sha256:06a737c882bd26d0d6ee7269b20b12f14a8704807a01056c80bb881a4b2ce6ca \
--hash=sha256:07e2ca0ad381b91350c0ed49d52699b625aab2b44b65e1b4e02fa9df0e92ad2d \
--hash=sha256:0c0420b573964c760df9e9e86d1a9a622d0d27f417e1a949a8a66dd7bcee7bc6 \
--hash=sha256:0dbde0f4aa9a16fa4d754356a8f2e36296ff4d83994b2c9d8398aa32f222f989 \
--hash=sha256:1125ca0e5fd475cbbba3bb67ae20bd2c23a98fac4e32412883f9bcbaa81c314c \
--hash=sha256:13b0a73a0896988f053e4fbb7de6d93388e6dd292b0d87ee51d106f2c11b465b \
--hash=sha256:166811d20dfea725e2e4baa71fffd6c968a958577848d2131f39b60043400223 \
--hash=sha256:170d444ab405852903b7d04ea9ae9b98f98ab6d7e63e1115e82620807519797f \
--hash=sha256:1f4aa8219db826ce6be7099d559f8ec311549bfc4046f7f9fe9b5cea5c581c56 \
--hash=sha256:225667980479a17db1048cb2bf8bfb39b8e5be8f164b8f6628b64f78a72cf9d3 \
--hash=sha256:260933720fdcd75340e7dbe9060655aff3af1f0c5d20f46b57f262ab6c86a5e8 \
--hash=sha256:2bdb062ea438f22d99cba0d7829c2ef0af1d768d1e4a4f528087224c90b132cb \
--hash=sha256:2c09f4ce52cb99dd7505cd0fc8e0e37c77b87f46bc9c1eb03fe3bc9991085388 \
--hash=sha256:3115a95daa9bdba70aea750db7b96b37259a81a709223c8448fa97727d546fe0 \
--hash=sha256:3e0cadcf6733c09154b461f1ca72d5416635e5e4ec4e536192180d34ec160f8a \
--hash=sha256:3f1156e3e8f2872197af3840d8ad307a9dd18e615dc64d9ee41696f287c57ad8 \
--hash=sha256:4421712dbfc5562150f7554f13dde997a2e932a6b5f352edcce948a815efee6f \
--hash=sha256:44df346d5215a8c0e360307d46ffaabe0f5d3502c8a1cefd700b34baf31d411a \
--hash=sha256:502753043567491d3ff6d08629270127e0c31d4184c4c8d98f92c26f65019962 \
--hash=sha256:547f45fa1a93154bd82050a7f3cddbc1a7a4dd2a9bf5cb7d06f4ae29fe94eaf8 \
--hash=sha256:5621a9175cf9d0b0c84c2ef2b12e9f5f5071357c4d2ea6ca1cf01814f45d2391 \
--hash=sha256:609b06f178fe8e9f89ef676532760ec0b4deea15e9969bf754b37f7c40326dbc \
--hash=sha256:645786266c8f18a931b65bfcefdbf6952dd0dea98feee39bd188607a9d307ed2 \
--hash=sha256:6878ef48d4227aace338d88c48738a4258213cd7b74fd9a3d4d7582bb1d8a155 \
--hash=sha256:6a89ecca80709d4076b95f89f308544ec8f7b4727e8a547913a35f16717856cb \
--hash=sha256:6db04803b6c7291985a761004e9060b2bca08da6d04f26a7f2294b8623a0c1a0 \
--hash=sha256:6e2cd258d7d927d09493c8df1ce9174ad01b381d4729a9d8d4e38670ca24774c \
--hash=sha256:6e81d7a3e58882450ec4186ca59a3f20a5d4440f25b1cff6f0902ad890e6748a \
--hash=sha256:702855feff378050ae4f741045e19a32d57d19f3e0676d589df0575008ea5004 \
--hash=sha256:78b260de9790fd81e69401c2dc8b17da47c8038176a79092a89cb2b7d945d060 \
--hash=sha256:7bb65125fcbef8d989fa1dd0e8a060999497629ca5b0efbca209588a73356232 \
--hash=sha256:7dea0889685db8550f839fa202744652e87c60015029ce3f60e006f8c4462c93 \
--hash=sha256:8284cf8c0dd272a247bc154eb6c95548722dce90d098c17a883ed36e67cdb129 \
--hash=sha256:877abb17e6339d96bf08e7a622d05095e72b71f8afd8a9fefc82cf30ed944163 \
--hash=sha256:8929543a7192c13d177b770008bc4e8119f2e1f881d563fc6b6305d2d0ebe9de \
--hash=sha256:8ae539519c4c040c5ffd0632784e21b2f03fc1340752af711f33e5be83a9d6c6 \
--hash=sha256:8f59d57baca39b32db42b83b2a7ba6f47ad9c394ec2076b084c3f029b7afca23 \
--hash=sha256:9054a0754de38d9dbd01a46621636689124d666bad1936d76c0341f7d71bf569 \
--hash=sha256:953510dfb7b12ab69d20135a0662397f077c59b1e6379a768e97c59d852ee51d \
--hash=sha256:95cae0efeb032af8458fc27d191f85d1717b1d4e49f7cb226cf526ff28179778 \
--hash=sha256:9bc572be474cafb617672c43fe989d6e48d3c83af02ce8de73fff1c6bb3c198d \
--hash=sha256:9c56863d44bd1c4fe2abb8a4d6f5371d197f1ac0ebdee542f07f35895fc07f36 \
--hash=sha256:9e0b2df163b8ed01d515807af24f63de04bebcecbd6c3bfeff88385789fdf75a \
--hash=sha256:a09ece4a69cf399510c8ab25e0950d9cf2b42f7b3cb0374f95d2e2ff594478a6 \
--hash=sha256:a1ac0ae2b8bd743b88ed0502544847c3053d7171a3cff9228af618a068ed9c34 \
--hash=sha256:a318d68e92e80af8b00fa99609796fdbcdfef3629c77c6283566c6f02c6d6704 \
--hash=sha256:a4acd025ecc06185ba2b801f2de85546e0b8ac787cf9d3b06e7e2a69f925b106 \
--hash=sha256:a6d3adcf24b624a7b778533480e32434a39ad8fa30c315208f6d3e5542aeb6e9 \
--hash=sha256:a78d169acd38300060b28d600344a803628c3fd585c912cacc9ea8790fe96862 \
--hash=sha256:a95324a9de9650a729239daea117df21f4b9868ce32e63f8b650ebe6cef5595b \
--hash=sha256:abd5fd0db5f4dc9289408aaf34908072f805ff7792632250dcb36dc591d24255 \
--hash=sha256:b06079abebbc0e89e6163b8e8f0e16270124c154dc6e4a47b413dd538859af16 \
--hash=sha256:b43c03669dc4618ec25270b06ecd3ee4fa94c7f9b3c14bae6571ca00ef98b0d3 \
--hash=sha256:b48f312cca9621272ae49008c7f613337c53fadca647d6384cc129d2996d1133 \
--hash=sha256:b5d7b556859dd85f3a541db6a4e0167b86e7273e1cdc973e5b175166bb634fdb \
--hash=sha256:b9f222de8cded79c49bf184bdbc06630d4c58eec9459b939b4a690c82ed05657 \
--hash=sha256:c3c02d12f837d9683e5ab2f3d9844dc57655b92c74e286c262e0fc54213c216d \
--hash=sha256:c44fee9975f04b33331cb8eb272827111efc8930cfd582e0320613263ca849ca \
--hash=sha256:cf4b19715bccd7ee27b6b120e7e9dd56037b9c0681dcc1adc9ba9db3d417fa36 \
--hash=sha256:d0c212c49b6c10e6951362f7c6df3329f04c2b1c28499563d4035d964ab8e08c \
--hash=sha256:d3296782ca4eab572a1a4eca686d8bfb00226300dcefdf43faa25b5242ab8a3e \
--hash=sha256:d85f5e9a5f8b73e2350097c3756ef7e785f55bd71205defa0bfdaf96c31616ff \
--hash=sha256:da511e6ad4f7323ee5702e6633085fb76c2f893aaf8ce4c51a0ba4fc07580ea7 \
--hash=sha256:e05882b70b87a18d937ca6768ff33cc3f72847cbc4de4491c8e73880766718e5 \
--hash=sha256:e61c0abb4c85b095a784ef23fdd4aede7a2628478e7baba7c5e3deba61070a02 \
--hash=sha256:e6a08c0be454c3b3beb105c0596ebdc2371fab6bb90c0c0297f4e58fd7e1012c \
--hash=sha256:e9a6e0eb86070e8ccaedfbd9d38fec54864f3125ab95419970575b42af7541df \
--hash=sha256:ed37bd3c3b063412f7620464a9ac1314d33100329f39799255fb8d3027da50d3 \
--hash=sha256:f1adfc8ac319e1a348af294106bc6a8458a0f1633cc62a1446aebc30c5fa186a \
--hash=sha256:f5796e664fe802da4f57a168c85359a8fbf3eab5e55cd4e4569fbacecc903959 \
--hash=sha256:fc5a77d0c516700ebad189b587de289a20a78324bc54baee03dd486f0855d234 \
--hash=sha256:fd21f6ae3f08b41004dfb433fa895d858f3f5979e7762d052b12aef444e29afc
coverage[toml]==7.6.2 ; python_version >= "3.9" and python_version < "3.14" \
--hash=sha256:078a87519057dacb5d77e333f740708ec2a8f768655f1db07f8dfd28d7a005f0 \
--hash=sha256:087932079c065d7b8ebadd3a0160656c55954144af6439886c8bcf78bbbcde7f \
--hash=sha256:0bbae11c138585c89fb4e991faefb174a80112e1a7557d507aaa07675c62e66b \
--hash=sha256:0ff2ef83d6d0b527b5c9dad73819b24a2f76fdddcfd6c4e7a4d7e73ecb0656b4 \
--hash=sha256:12179eb0575b8900912711688e45474f04ab3934aaa7b624dea7b3c511ecc90f \
--hash=sha256:1e5e92e3e84a8718d2de36cd8387459cba9a4508337b8c5f450ce42b87a9e760 \
--hash=sha256:2186369a654a15628e9c1c9921409a6b3eda833e4b91f3ca2a7d9f77abb4987c \
--hash=sha256:21c0ea0d4db8a36b275cb6fb2437a3715697a4ba3cb7b918d3525cc75f726304 \
--hash=sha256:24500f4b0e03aab60ce575c85365beab64b44d4db837021e08339f61d1fbfe52 \
--hash=sha256:2b636a301e53964550e2f3094484fa5a96e699db318d65398cfba438c5c92171 \
--hash=sha256:343056c5e0737487a5291f5691f4dfeb25b3e3c8699b4d36b92bb0e586219d14 \
--hash=sha256:35a51598f29b2a19e26d0908bd196f771a9b1c5d9a07bf20be0adf28f1ad4f77 \
--hash=sha256:39d3b964abfe1519b9d313ab28abf1d02faea26cd14b27f5283849bf59479ff5 \
--hash=sha256:3ec528ae69f0a139690fad6deac8a7d33629fa61ccce693fdd07ddf7e9931fba \
--hash=sha256:47ccb6e99a3031ffbbd6e7cc041e70770b4fe405370c66a54dbf26a500ded80b \
--hash=sha256:4eea60c79d36a8f39475b1af887663bc3ae4f31289cd216f514ce18d5938df40 \
--hash=sha256:536f77f2bf5797983652d1d55f1a7272a29afcc89e3ae51caa99b2db4e89d658 \
--hash=sha256:5ed69befa9a9fc796fe015a7040c9398722d6b97df73a6b608e9e275fa0932b0 \
--hash=sha256:62ab4231c01e156ece1b3a187c87173f31cbeee83a5e1f6dff17f288dca93345 \
--hash=sha256:667952739daafe9616db19fbedbdb87917eee253ac4f31d70c7587f7ab531b4e \
--hash=sha256:69f251804e052fc46d29d0e7348cdc5fcbfc4861dc4a1ebedef7e78d241ad39e \
--hash=sha256:6c2ba1e0c24d8fae8f2cf0aeb2fc0a2a7f69b6d20bd8d3749fd6b36ecef5edf0 \
--hash=sha256:6e85830eed5b5263ffa0c62428e43cb844296f3b4461f09e4bdb0d44ec190bc2 \
--hash=sha256:7571e8bbecc6ac066256f9de40365ff833553e2e0c0c004f4482facb131820ef \
--hash=sha256:7781f4f70c9b0b39e1b129b10c7d43a4e0c91f90c60435e6da8288efc2b73438 \
--hash=sha256:7926d8d034e06b479797c199747dd774d5e86179f2ce44294423327a88d66ca7 \
--hash=sha256:7b80fbb0da3aebde102a37ef0138aeedff45997e22f8962e5f16ae1742852676 \
--hash=sha256:7fca4a92c8a7a73dee6946471bce6d1443d94155694b893b79e19ca2a540d86e \
--hash=sha256:84c4315577f7cd511d6250ffd0f695c825efe729f4205c0340f7004eda51191f \
--hash=sha256:8d9c5d13927d77af4fbe453953810db766f75401e764727e73a6ee4f82527b3e \
--hash=sha256:9681516288e3dcf0aa7c26231178cc0be6cac9705cac06709f2353c5b406cfea \
--hash=sha256:97df87e1a20deb75ac7d920c812e9326096aa00a9a4b6d07679b4f1f14b06c90 \
--hash=sha256:9bcd51eeca35a80e76dc5794a9dd7cb04b97f0e8af620d54711793bfc1fbba4b \
--hash=sha256:9c6b0c1cafd96213a0327cf680acb39f70e452caf8e9a25aeb05316db9c07f89 \
--hash=sha256:a5f81e68aa62bc0cfca04f7b19eaa8f9c826b53fc82ab9e2121976dc74f131f3 \
--hash=sha256:a663b180b6669c400b4630a24cc776f23a992d38ce7ae72ede2a397ce6b0f170 \
--hash=sha256:a7b2e437fbd8fae5bc7716b9c7ff97aecc95f0b4d56e4ca08b3c8d8adcaadb84 \
--hash=sha256:a867d26f06bcd047ef716175b2696b315cb7571ccb951006d61ca80bbc356e9e \
--hash=sha256:aa68a6cdbe1bc6793a9dbfc38302c11599bbe1837392ae9b1d238b9ef3dafcf1 \
--hash=sha256:ab31fdd643f162c467cfe6a86e9cb5f1965b632e5e65c072d90854ff486d02cf \
--hash=sha256:ad4ef1c56b47b6b9024b939d503ab487231df1f722065a48f4fc61832130b90e \
--hash=sha256:b92f9ca04b3e719d69b02dc4a69debb795af84cb7afd09c5eb5d54b4a1ae2191 \
--hash=sha256:bb21bac7783c1bf6f4bbe68b1e0ff0d20e7e7732cfb7995bc8d96e23aa90fc7b \
--hash=sha256:bf4eeecc9e10f5403ec06138978235af79c9a79af494eb6b1d60a50b49ed2869 \
--hash=sha256:bfde025e2793a22efe8c21f807d276bd1d6a4bcc5ba6f19dbdfc4e7a12160909 \
--hash=sha256:c37faddc8acd826cfc5e2392531aba734b229741d3daec7f4c777a8f0d4993e5 \
--hash=sha256:c71965d1ced48bf97aab79fad56df82c566b4c498ffc09c2094605727c4b7e36 \
--hash=sha256:c9192925acc33e146864b8cf037e2ed32a91fdf7644ae875f5d46cd2ef086a5f \
--hash=sha256:c9df1950fb92d49970cce38100d7e7293c84ed3606eaa16ea0b6bc27175bb667 \
--hash=sha256:cdfcf2e914e2ba653101157458afd0ad92a16731eeba9a611b5cbb3e7124e74b \
--hash=sha256:d03a060ac1a08e10589c27d509bbdb35b65f2d7f3f8d81cf2fa199877c7bc58a \
--hash=sha256:d20c3d1f31f14d6962a4e2f549c21d31e670b90f777ef4171be540fb7fb70f02 \
--hash=sha256:e4ee15b267d2dad3e8759ca441ad450c334f3733304c55210c2a44516e8d5530 \
--hash=sha256:e8ea055b3ea046c0f66217af65bc193bbbeca1c8661dc5fd42698db5795d2627 \
--hash=sha256:ebabdf1c76593a09ee18c1a06cd3022919861365219ea3aca0247ededf6facd6 \
--hash=sha256:ebc94fadbd4a3f4215993326a6a00e47d79889391f5659bf310f55fe5d9f581c \
--hash=sha256:ed5ac02126f74d190fa2cc14a9eb2a5d9837d5863920fa472b02eb1595cdc925 \
--hash=sha256:f01e53575f27097d75d42de33b1b289c74b16891ce576d767ad8c48d17aeb5e0 \
--hash=sha256:f361296ca7054f0936b02525646b2731b32c8074ba6defab524b79b2b7eeac72 \
--hash=sha256:f9035695dadfb397bee9eeaf1dc7fbeda483bf7664a7397a629846800ce6e276 \
--hash=sha256:fcad7d5d2bbfeae1026b395036a8aa5abf67e8038ae7e6a25c7d0f88b10a8e6a \
--hash=sha256:ff797320dcbff57caa6b2301c3913784a010e13b1f6cf4ab3f563f3c5e7919db
exceptiongroup==1.2.2 ; python_version >= "3.9" and python_version < "3.11" \
--hash=sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b \
--hash=sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc
Expand Down Expand Up @@ -205,7 +195,7 @@ sortedcontainers==2.4.0 ; python_full_version >= "3.9.0" and python_version < "3
termcolor==2.5.0 ; python_version >= "3.9" and python_version < "3.14" \
--hash=sha256:37b17b5fc1e604945c2642c872a3764b5d547a48009871aea3edd3afa180afb8 \
--hash=sha256:998d8d27da6d48442e8e1f016119076b690d962507531df4890fcd2db2ef8a6f
tomli==2.0.2 ; python_full_version >= "3.9.0" and python_full_version <= "3.11.0a6" \
tomli==2.0.2 ; python_version >= "3.9" and python_full_version <= "3.11.0a6" \
--hash=sha256:2ebe24485c53d303f690b0ec092806a085f07af5a5aa1464f3931eec36caaa38 \
--hash=sha256:d46d457a85337051c36524bc5349dd91b1877838e2979ac5ced3e710ed8a60ed
trio==0.26.2 ; python_full_version >= "3.9.0" and python_version < "3.14" \
Expand Down
Loading

0 comments on commit 8e1a1e8

Please sign in to comment.