Skip to content

Commit 12af5fc

Browse files
committed
Use typing_estensions.Protocol on all supported Python versions
1 parent 72095b9 commit 12af5fc

File tree

2 files changed

+22
-30
lines changed

2 files changed

+22
-30
lines changed

aiohttp_jinja2/__init__.py

Lines changed: 21 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import asyncio
22
import functools
3-
import sys
43
import warnings
54
from typing import (
65
Any,
@@ -20,11 +19,12 @@
2019
import jinja2
2120
from aiohttp import web
2221
from aiohttp.abc import AbstractView
22+
from typing_extensions import Protocol
2323

2424
from .helpers import GLOBAL_HELPERS
2525
from .typedefs import Filters
2626

27-
__version__ = "1.3.0"
27+
__version__ = "1.4.0"
2828

2929
__all__ = ("setup", "get_env", "render_template", "render_string", "template")
3030

@@ -40,33 +40,25 @@
4040
_T = TypeVar("_T")
4141
_AbstractView = TypeVar("_AbstractView", bound=AbstractView)
4242

43-
if sys.version_info >= (3, 8):
44-
from typing import Protocol
45-
46-
class _TemplateWrapper(Protocol):
47-
@overload
48-
def __call__(
49-
self, func: _SimpleTemplateHandler
50-
) -> Callable[[web.Request], Awaitable[web.StreamResponse]]:
51-
...
52-
53-
@overload
54-
def __call__(
55-
self, func: Callable[[_AbstractView], _TemplateReturnType]
56-
) -> Callable[[_AbstractView], Awaitable[web.StreamResponse]]:
57-
...
58-
59-
@overload
60-
def __call__(
61-
self, func: Callable[[_T, web.Request], _TemplateReturnType]
62-
) -> Callable[[_T, web.Request], Awaitable[web.StreamResponse]]:
63-
...
64-
65-
66-
else:
67-
_TemplateHandler = Callable[..., _TemplateReturnType]
68-
_WebHandler = Callable[..., Awaitable[web.StreamResponse]]
69-
_TemplateWrapper = Callable[[_TemplateHandler], _WebHandler]
43+
44+
class _TemplateWrapper(Protocol):
45+
@overload
46+
def __call__(
47+
self, func: _SimpleTemplateHandler
48+
) -> Callable[[web.Request], Awaitable[web.StreamResponse]]:
49+
...
50+
51+
@overload
52+
def __call__(
53+
self, func: Callable[[_AbstractView], _TemplateReturnType]
54+
) -> Callable[[_AbstractView], Awaitable[web.StreamResponse]]:
55+
...
56+
57+
@overload
58+
def __call__(
59+
self, func: Callable[[_T, web.Request], _TemplateReturnType]
60+
) -> Callable[[_T, web.Request], Awaitable[web.StreamResponse]]:
61+
...
7062

7163

7264
def setup(

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ def read(f):
2929
return open(os.path.join(os.path.dirname(__file__), f)).read().strip()
3030

3131

32-
install_requires = ["aiohttp>=3.6.3", "jinja2>=2.10.1"]
32+
install_requires = ["aiohttp>=3.6.3", "jinja2>=2.10.1", "typing_extensions>=3.7.4"]
3333

3434

3535
setup(

0 commit comments

Comments
 (0)