asgi-tools 1.0.10__cp311-cp311-win_amd64.whl → 1.2.0__cp311-cp311-win_amd64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
asgi_tools/view.py CHANGED
@@ -1,7 +1,7 @@
1
1
  from __future__ import annotations
2
2
 
3
3
  import inspect
4
- from typing import TYPE_CHECKING, Final, Optional
4
+ from typing import TYPE_CHECKING, Final
5
5
 
6
6
  if TYPE_CHECKING:
7
7
  from collections.abc import Awaitable
@@ -57,7 +57,7 @@ class HTTPView:
57
57
  return self(request, **opts)
58
58
 
59
59
  @classmethod
60
- def __route__(cls, router: Router, *paths: str, methods: Optional[TMethods] = None, **params):
60
+ def __route__(cls, router: Router, *paths: str, methods: TMethods | None = None, **params):
61
61
  """Bind the class view to the given router."""
62
62
  view_methods = dict(inspect.getmembers(cls, inspect.isfunction))
63
63
  methods = methods or [m for m in HTTP_METHODS if m.lower() in view_methods]
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: asgi-tools
3
- Version: 1.0.10
3
+ Version: 1.2.0
4
4
  Summary: ASGI Toolkit to build web applications
5
5
  Author-email: Kirill Klenov <horneds@gmail.com>
6
6
  License: MIT License
@@ -13,49 +13,51 @@ Classifier: Intended Audience :: Developers
13
13
  Classifier: License :: OSI Approved :: MIT License
14
14
  Classifier: Programming Language :: Python
15
15
  Classifier: Programming Language :: Python :: 3
16
- Classifier: Programming Language :: Python :: 3.9
17
16
  Classifier: Programming Language :: Python :: 3.10
18
17
  Classifier: Programming Language :: Python :: 3.11
19
18
  Classifier: Programming Language :: Python :: 3.12
19
+ Classifier: Programming Language :: Python :: 3.13
20
20
  Classifier: Programming Language :: Python :: Implementation :: PyPy
21
21
  Classifier: Programming Language :: Cython
22
22
  Classifier: Topic :: Internet :: WWW/HTTP
23
23
  Classifier: Framework :: AsyncIO
24
24
  Classifier: Framework :: Trio
25
- Requires-Python: >=3.9
25
+ Requires-Python: >=3.10
26
26
  Description-Content-Type: text/x-rst
27
27
  License-File: LICENSE
28
- Requires-Dist: http-router >=4.0.0
29
- Requires-Dist: multidict
28
+ Requires-Dist: http-router>=4.0.0
29
+ Requires-Dist: multidict>=6.6.3
30
30
  Requires-Dist: sniffio
31
- Requires-Dist: yarl >=1.8.2
32
- Requires-Dist: async-timeout ; python_version < "3.11"
33
- Provides-Extra: dev
34
- Requires-Dist: bump2version ; extra == 'dev'
35
- Requires-Dist: tox ; extra == 'dev'
36
- Requires-Dist: cython ; extra == 'dev'
37
- Requires-Dist: pre-commit ; extra == 'dev'
38
- Requires-Dist: sphinx ; extra == 'dev'
39
- Requires-Dist: pydata-sphinx-theme ; extra == 'dev'
40
- Provides-Extra: examples
41
- Requires-Dist: uvicorn[standard] ; extra == 'examples'
42
- Requires-Dist: jinja2 ; extra == 'examples'
43
- Requires-Dist: httpx ; extra == 'examples'
44
- Provides-Extra: orjson
45
- Requires-Dist: orjson ; extra == 'orjson'
31
+ Requires-Dist: yarl>=1.8.2
32
+ Requires-Dist: async-timeout; python_version < "3.11"
46
33
  Provides-Extra: tests
47
- Requires-Dist: aiofile ; extra == 'tests'
48
- Requires-Dist: pytest ; extra == 'tests'
49
- Requires-Dist: pytest-aio[curio,trio] >=1.1.0 ; extra == 'tests'
50
- Requires-Dist: pytest-benchmark ; extra == 'tests'
51
- Requires-Dist: PyYAML ; extra == 'tests'
52
- Requires-Dist: ruff ; extra == 'tests'
53
- Requires-Dist: ujson ; (implementation_name == "cpython") and extra == 'tests'
54
- Requires-Dist: uvloop ; (implementation_name == "cpython") and extra == 'tests'
55
- Requires-Dist: pytest-mypy ; (implementation_name == "cpython") and extra == 'tests'
56
- Requires-Dist: exceptiongroup ; (python_version < "3.11") and extra == 'tests'
34
+ Requires-Dist: aiofile; extra == "tests"
35
+ Requires-Dist: pytest; extra == "tests"
36
+ Requires-Dist: pytest-aio[curio,trio]>=1.2.0; extra == "tests"
37
+ Requires-Dist: pytest-benchmark; extra == "tests"
38
+ Requires-Dist: PyYAML; extra == "tests"
39
+ Requires-Dist: ruff; extra == "tests"
40
+ Requires-Dist: mypy; extra == "tests"
41
+ Requires-Dist: exceptiongroup; python_version < "3.11" and extra == "tests"
42
+ Requires-Dist: ujson; implementation_name == "cpython" and extra == "tests"
43
+ Requires-Dist: uvloop; implementation_name == "cpython" and extra == "tests"
44
+ Requires-Dist: pytest-mypy; implementation_name == "cpython" and extra == "tests"
57
45
  Provides-Extra: ujson
58
- Requires-Dist: ujson ; extra == 'ujson'
46
+ Requires-Dist: ujson; extra == "ujson"
47
+ Provides-Extra: orjson
48
+ Requires-Dist: orjson; extra == "orjson"
49
+ Provides-Extra: examples
50
+ Requires-Dist: uvicorn[standard]; extra == "examples"
51
+ Requires-Dist: jinja2; extra == "examples"
52
+ Requires-Dist: httpx; extra == "examples"
53
+ Provides-Extra: dev
54
+ Requires-Dist: bump2version; extra == "dev"
55
+ Requires-Dist: tox; extra == "dev"
56
+ Requires-Dist: cython; extra == "dev"
57
+ Requires-Dist: pre-commit; extra == "dev"
58
+ Requires-Dist: sphinx; extra == "dev"
59
+ Requires-Dist: pydata-sphinx-theme; extra == "dev"
60
+ Dynamic: license-file
59
61
 
60
62
  .. image:: https://raw.githubusercontent.com/klen/asgi-tools/develop/.github/assets/asgi-tools.png
61
63
  :height: 100
@@ -143,7 +145,7 @@ A Quick Example
143
145
 
144
146
  You can use any of ASGI-Tools components independently.
145
147
 
146
- Dispite this ASGI-Tools contains App_ helper to quickly build ASGI
148
+ Despite this ASGI-Tools contains App_ helper to quickly build ASGI
147
149
  applications. For instance:
148
150
 
149
151
  Save this to ``app.py``.
@@ -199,7 +201,7 @@ Licensed under a `MIT license`_.
199
201
  .. _klen: https://github.com/klen
200
202
  .. _uvicorn: http://www.uvicorn.org/
201
203
  .. _daphne: https://github.com/django/daphne/
202
- .. _hypercorn: https://pgjones.gitlab.io/hypercorn/
204
+ .. _hypercorn: https://github.com/pgjones/hypercorn/
203
205
 
204
206
  .. _Request: https://klen.github.io/asgi-tools/api.html#request
205
207
  .. _Response: https://klen.github.io/asgi-tools/api.html#responses
@@ -0,0 +1,29 @@
1
+ asgi_tools/__init__.py,sha256=kBeeiOV5kHCjKhEkmN-55Q6mZ3LqwbygJHMKETM4n18,1493
2
+ asgi_tools/_compat.py,sha256=hK9JUaYGrOAHACsPzkf4yp3Qz4ttAhFUaguS3vMdjfk,7742
3
+ asgi_tools/app.py,sha256=B9V7fmWafbBuxJ0TxeTFwytkLSHKRgZby3UtVoG3MlE,11093
4
+ asgi_tools/constants.py,sha256=kgkeofmY_8tKF_V-3Xjj0CnAxF3IuYHYWPhSbmRko1w,134
5
+ asgi_tools/errors.py,sha256=xkYWpPk7i11fKaRFCN070EdFq6KrqGli1eDNMDsq3GQ,575
6
+ asgi_tools/forms.c,sha256=5YFDRlwc2lwU0sfZcB8CHTkGnN3HErxu3roYyD2tepU,846100
7
+ asgi_tools/forms.cp311-win_amd64.pyd,sha256=Rr8OzrrjTaeRQXMcxKPDmE38C_FKQpowhZw7yslzIXA,119808
8
+ asgi_tools/forms.py,sha256=YHxevjoOoNIgR2JRCEiCz_EeHmtZwiDzzdy1rBaL6jc,5225
9
+ asgi_tools/forms.pyx,sha256=EYrZ1J_QDptrEcLBXZYFD9fk7odZoBNTqsdkSMTZ4Zw,5507
10
+ asgi_tools/logs.py,sha256=mX_SHbUZ0_SkUTQ_ZGo2vBNNltgDswwxv-yUv-RuY2g,154
11
+ asgi_tools/middleware.py,sha256=V0PAB7k10zxMT11caKwDOC69Mk8A_--PI4YMCmGGUU0,15606
12
+ asgi_tools/multipart.c,sha256=-2-QCBzX54BRopl_DL_1fnFPZ8cv3CYnQbzD6z-QuCw,863242
13
+ asgi_tools/multipart.cp311-win_amd64.pyd,sha256=VknInCe9rM-FPzyODrpxtOIuc9Jij1b18BMo1XS8oMc,100352
14
+ asgi_tools/multipart.pxd,sha256=C-I70NJjJXA_bYUAIDgf3K8f7aCn7Ttuzu_QxHz45Gk,759
15
+ asgi_tools/multipart.py,sha256=ojkkDmcZH7T-AwbK8G4dNMdArVi4t-BcSxG0ubOt2aw,22296
16
+ asgi_tools/multipart.pyx,sha256=MS2Gsp4mh_4LML-Qb24NWP2Fq5U8sSU7_NrO-awiSPM,22494
17
+ asgi_tools/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
18
+ asgi_tools/request.py,sha256=sil4potk0RVMLAUspZUvesIeuFAcAZpnww3oizMYKps,11139
19
+ asgi_tools/response.py,sha256=EVsslBc-8R0JbK6vQBXN7fMMLyl20ocnpzeg4yJ20Gc,19222
20
+ asgi_tools/router.py,sha256=HjgwDV4B1UvJOvMXN-W7A2HTm9_BQmzsF9pOBoa33Po,455
21
+ asgi_tools/tests.py,sha256=GxUaLUYHeyCNE8powBcJFjCAcEPMwK4dldsj6aElQxc,13349
22
+ asgi_tools/types.py,sha256=TR1sdIw7RPd5ZmRnPfEuW5ztdAU-4qP0LHMdZQZm0YQ,957
23
+ asgi_tools/utils.py,sha256=PlAx3prwfSxKG6W0e-8DMN0-aGyKfPu-BibxODcWE9Y,2923
24
+ asgi_tools/view.py,sha256=hDbJ1zTvJkAGn7_-9vfqzESLzAyTxsRO8q-iossVRRw,1994
25
+ asgi_tools-1.2.0.dist-info/licenses/LICENSE,sha256=NtZMr5jqCHVbUM1wX_U3F3XwMo881ao3rOevOirLocU,1091
26
+ asgi_tools-1.2.0.dist-info/METADATA,sha256=1TeV-PXFtotr1aVurknDpbmh-9fN_swcVumlM1TKgwo,7352
27
+ asgi_tools-1.2.0.dist-info/WHEEL,sha256=JLOMsP7F5qtkAkINx5UnzbFguf8CqZeraV8o04b0I8I,101
28
+ asgi_tools-1.2.0.dist-info/top_level.txt,sha256=-6i6ebKuJ0cSaXJ3KWPmJLKUbmBE2UsuA2b7BcZMJSk,11
29
+ asgi_tools-1.2.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (72.1.0)
2
+ Generator: setuptools (80.9.0)
3
3
  Root-Is-Purelib: false
4
4
  Tag: cp311-cp311-win_amd64
5
5
 
@@ -1,29 +0,0 @@
1
- asgi_tools/__init__.py,sha256=sQPr3iwhrvb8dOqDAz74ma8eEo1OogtkWlUDvzN0kps,1477
2
- asgi_tools/_compat.py,sha256=yEqOtcg9hHbUjY-iaHt6M9XM1Lk8JzTHUVLg7OdgfQg,7800
3
- asgi_tools/app.py,sha256=af_wNiyRBciCJwSbHDHacJbvaVpbbUolu_jj8W12olY,8360
4
- asgi_tools/constants.py,sha256=kgkeofmY_8tKF_V-3Xjj0CnAxF3IuYHYWPhSbmRko1w,134
5
- asgi_tools/errors.py,sha256=xkYWpPk7i11fKaRFCN070EdFq6KrqGli1eDNMDsq3GQ,575
6
- asgi_tools/forms.c,sha256=n9gOkUdYDEiAUaF9Pk1iUnxkGTwSr2hBaj_OxDeKH1A,817615
7
- asgi_tools/forms.cp311-win_amd64.pyd,sha256=G4Rq4g1hFGo6RGsNoKl9OHZ4uadSm7_lpQwudJ9tlIw,137728
8
- asgi_tools/forms.py,sha256=aLrQNMMlYU0R6tiqNYeESPlqdLHtDOM8oQeP-YjYxyw,5241
9
- asgi_tools/forms.pyx,sha256=EYrZ1J_QDptrEcLBXZYFD9fk7odZoBNTqsdkSMTZ4Zw,5507
10
- asgi_tools/logs.py,sha256=mX_SHbUZ0_SkUTQ_ZGo2vBNNltgDswwxv-yUv-RuY2g,154
11
- asgi_tools/middleware.py,sha256=sobMSTlvHcMX_bZgu9ctCEeZga-3bEZhtnvyNUbfKbI,15452
12
- asgi_tools/multipart.c,sha256=GWAAGUkk9X-i6_jHgXkuA2S0qusLt5ttJ1jG7HAICxg,814957
13
- asgi_tools/multipart.cp311-win_amd64.pyd,sha256=D46tHXKWiI63oNY4OtkoW8DS6GVqZeQ_uH13CE28a5w,107520
14
- asgi_tools/multipart.pxd,sha256=C-I70NJjJXA_bYUAIDgf3K8f7aCn7Ttuzu_QxHz45Gk,759
15
- asgi_tools/multipart.py,sha256=BhtBgzJ3i3fLXb-c4xMEc4Y7RKt_MOwYDE_niCijdzc,22322
16
- asgi_tools/multipart.pyx,sha256=MS2Gsp4mh_4LML-Qb24NWP2Fq5U8sSU7_NrO-awiSPM,22494
17
- asgi_tools/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
18
- asgi_tools/request.py,sha256=64l-iUVl6FgTqkzj1lj8IbgampRTCBZL_6eP9M7ycRc,10728
19
- asgi_tools/response.py,sha256=PHjgsMhieXHNRy9pw5a_m9Gb8DozS5y8OHb1gz8pVpY,19407
20
- asgi_tools/router.py,sha256=HjgwDV4B1UvJOvMXN-W7A2HTm9_BQmzsF9pOBoa33Po,455
21
- asgi_tools/tests.py,sha256=hLypjqCb4D75Y7N7nLQoD6R-9KPkjU1gxo1j0IkXq5U,13449
22
- asgi_tools/types.py,sha256=TR1sdIw7RPd5ZmRnPfEuW5ztdAU-4qP0LHMdZQZm0YQ,957
23
- asgi_tools/utils.py,sha256=PlAx3prwfSxKG6W0e-8DMN0-aGyKfPu-BibxODcWE9Y,2923
24
- asgi_tools/view.py,sha256=rPgCOxmadYxNyaBhpuasfKXyKwJm_qopGCmWpB0AbCE,2007
25
- asgi_tools-1.0.10.dist-info/LICENSE,sha256=NtZMr5jqCHVbUM1wX_U3F3XwMo881ao3rOevOirLocU,1091
26
- asgi_tools-1.0.10.dist-info/METADATA,sha256=u95lX4hbzfKAfUyqUc-nSCHiQ6fp4BYZdP30a8nvtqY,7314
27
- asgi_tools-1.0.10.dist-info/WHEEL,sha256=SAw8ns6kJWJnXnbRE00TtcpGWx44Z3WvjJsDRxwIxr8,101
28
- asgi_tools-1.0.10.dist-info/top_level.txt,sha256=-6i6ebKuJ0cSaXJ3KWPmJLKUbmBE2UsuA2b7BcZMJSk,11
29
- asgi_tools-1.0.10.dist-info/RECORD,,