import asyncio from abc import ABC, abstractmethod from collections.abc import Iterable, Sized class AbstractRouter(ABC): def __init__(self): self._frozen = False def post_init(self, app): """Post init stage. Not an abstract method for sake of backward compatibility, but if the router wants to be aware of the application it can override this. """ @property def frozen(self): return self._frozen def freeze(self): """Freeze router.""" self._frozen = True @abstractmethod async def resolve(self, request): """Return MATCH_INFO for given request""" class AbstractMatchInfo(ABC): @abstractmethod async def handler(self, request): """Execute matched request handler""" @abstractmethod async def expect_handler(self, request): """Expect handler for 100-continue processing""" @property # pragma: no branch @abstractmethod def http_exception(self): """HTTPException instance raised on router's resolving, or None""" @abstractmethod # pragma: no branch def get_info(self): """Return a dict with additional info useful for introspection""" @property # pragma: no branch @abstractmethod def apps(self): """Stack of nested applications. Top level application is left-most element. """ @abstractmethod def add_app(self, app): """Add application to the nested apps stack.""" @abstractmethod def freeze(self): """Freeze the match info. The method is called after route resolution. After the call .add_app() is forbidden. """ class AbstractView(ABC): """Abstract class based view.""" def __init__(self, request): self._request = request @property def request(self): """Request instance.""" return self._request @abstractmethod def __await__(self): """Execute the view handler.""" class AbstractResolver(ABC): """Abstract DNS resolver.""" @abstractmethod async def resolve(self, hostname): """Return IP address for given hostname""" @abstractmethod async def close(self): """Release resolver""" class AbstractCookieJar(Sized, Iterable): """Abstract Cookie Jar.""" def __init__(self, *, loop=None): self._loop = loop or asyncio.get_event_loop() @abstractmethod def clear(self): """Clear all cookies.""" @abstractmethod def update_cookies(self, cookies, response_url=None): """Update cookies.""" @abstractmethod def filter_cookies(self, request_url): """Return the jar's cookies filtered by their attributes.""" class AbstractStreamWriter(ABC): """Abstract stream writer.""" @abstractmethod async def write(self, chunk): """Write chunk into stream.""" @abstractmethod async def write_eof(self, chunk=b''): """Write last chunk.""" @abstractmethod async def drain(self): """Flush the write buffer.""" class AbstractAccessLogger(ABC): """Abstract writer to access log.""" def __init__(self, logger, log_format): self.logger = logger self.log_format = log_format @abstractmethod def log(self, request, response, time): """Emit log to logger."""
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
__pycache__ | Folder | 0755 |
|
|
__init__.py | File | 1.35 KB | 0644 |
|
_cparser.pxd | File | 3.87 KB | 0644 |
|
_frozenlist.c | File | 279.05 KB | 0644 |
|
_frozenlist.cpython-35m-x86_64-linux-gnu.so | File | 63.73 KB | 0755 |
|
_frozenlist.pyx | File | 2.54 KB | 0644 |
|
_http_parser.c | File | 592.13 KB | 0644 |
|
_http_parser.cpython-35m-x86_64-linux-gnu.so | File | 155.33 KB | 0755 |
|
_http_parser.pyx | File | 20.6 KB | 0644 |
|
_websocket.c | File | 125.34 KB | 0644 |
|
_websocket.cpython-35m-x86_64-linux-gnu.so | File | 24.38 KB | 0755 |
|
_websocket.pyx | File | 1.52 KB | 0644 |
|
abc.py | File | 3.31 KB | 0644 |
|
client.py | File | 31.81 KB | 0644 |
|
client_exceptions.py | File | 5.28 KB | 0644 |
|
client_proto.py | File | 5.74 KB | 0644 |
|
client_reqrep.py | File | 27.95 KB | 0644 |
|
client_ws.py | File | 8.69 KB | 0644 |
|
connector.py | File | 31.81 KB | 0644 |
|
cookiejar.py | File | 9.99 KB | 0644 |
|
formdata.py | File | 5.22 KB | 0644 |
|
frozenlist.py | File | 1.73 KB | 0644 |
|
hdrs.py | File | 3.28 KB | 0644 |
|
helpers.py | File | 22.36 KB | 0644 |
|
http.py | File | 1.26 KB | 0644 |
|
http_exceptions.py | File | 1.93 KB | 0644 |
|
http_parser.py | File | 23.77 KB | 0644 |
|
http_websocket.py | File | 21.49 KB | 0644 |
|
http_writer.py | File | 3.91 KB | 0644 |
|
locks.py | File | 946 B | 0644 |
|
log.py | File | 326 B | 0644 |
|
multipart.py | File | 28.89 KB | 0644 |
|
payload.py | File | 8.2 KB | 0644 |
|
payload_streamer.py | File | 1.49 KB | 0644 |
|
pytest_plugin.py | File | 9.54 KB | 0644 |
|
resolver.py | File | 3.23 KB | 0644 |
|
signals.py | File | 933 B | 0644 |
|
streams.py | File | 16.31 KB | 0644 |
|
tcp_helpers.py | File | 1.38 KB | 0644 |
|
test_utils.py | File | 15.75 KB | 0644 |
|
tracing.py | File | 9.32 KB | 0644 |
|
web.py | File | 7.03 KB | 0644 |
|
web_app.py | File | 9.88 KB | 0644 |
|
web_exceptions.py | File | 8.38 KB | 0644 |
|
web_fileresponse.py | File | 7.51 KB | 0644 |
|
web_middlewares.py | File | 2.6 KB | 0644 |
|
web_protocol.py | File | 17.57 KB | 0644 |
|
web_request.py | File | 20.42 KB | 0644 |
|
web_response.py | File | 20.97 KB | 0644 |
|
web_runner.py | File | 8.05 KB | 0644 |
|
web_server.py | File | 1.29 KB | 0644 |
|
web_urldispatcher.py | File | 32.67 KB | 0644 |
|
web_ws.py | File | 14.34 KB | 0644 |
|
worker.py | File | 6.92 KB | 0644 |
|