PHP 8.0.30
Preview: web_server.py Size: 2.01 KB
/proc/self/root/opt/alt/python37/lib64/python3.7/site-packages/aiohttp/web_server.py

"""Low level HTTP server."""
import asyncio
from typing import Any, Awaitable, Callable, Dict, List, Optional  # noqa

from .abc import AbstractStreamWriter
from .helpers import get_running_loop
from .http_parser import RawRequestMessage
from .streams import StreamReader
from .web_protocol import RequestHandler, _RequestFactory, _RequestHandler
from .web_request import BaseRequest

__all__ = ("Server",)


class Server:
    def __init__(
        self,
        handler: _RequestHandler,
        *,
        request_factory: Optional[_RequestFactory] = None,
        loop: Optional[asyncio.AbstractEventLoop] = None,
        **kwargs: Any
    ) -> None:
        self._loop = get_running_loop(loop)
        self._connections = {}  # type: Dict[RequestHandler, asyncio.Transport]
        self._kwargs = kwargs
        self.requests_count = 0
        self.request_handler = handler
        self.request_factory = request_factory or self._make_request

    @property
    def connections(self) -> List[RequestHandler]:
        return list(self._connections.keys())

    def connection_made(
        self, handler: RequestHandler, transport: asyncio.Transport
    ) -> None:
        self._connections[handler] = transport

    def connection_lost(
        self, handler: RequestHandler, exc: Optional[BaseException] = None
    ) -> None:
        if handler in self._connections:
            del self._connections[handler]

    def _make_request(
        self,
        message: RawRequestMessage,
        payload: StreamReader,
        protocol: RequestHandler,
        writer: AbstractStreamWriter,
        task: "asyncio.Task[None]",
    ) -> BaseRequest:
        return BaseRequest(message, payload, protocol, writer, task, self._loop)

    async def shutdown(self, timeout: Optional[float] = None) -> None:
        coros = [conn.shutdown(timeout) for conn in self._connections]
        await asyncio.gather(*coros)
        self._connections.clear()

    def __call__(self) -> RequestHandler:
        return RequestHandler(self, loop=self._loop, **self._kwargs)

Directory Contents

Dirs: 2 × Files: 64

Name Size Perms Modified Actions
.hash DIR
- drwxr-xr-x 2023-12-06 03:19:40
Edit Download
- drwxr-xr-x 2023-12-06 03:19:40
Edit Download
5.38 KB lrw-r--r-- 2021-11-14 20:05:00
Edit Download
2.64 KB lrw-r--r-- 2021-11-14 20:05:00
Edit Download
43.87 KB lrw-r--r-- 2021-11-14 20:05:00
Edit Download
9.06 KB lrw-r--r-- 2021-11-14 20:05:00
Edit Download
8.00 KB lrw-r--r-- 2021-11-14 20:05:00
Edit Download
36.02 KB lrw-r--r-- 2021-11-14 20:05:00
Edit Download
10.29 KB lrw-r--r-- 2021-11-14 20:05:00
Edit Download
49.66 KB lrw-r--r-- 2021-11-14 20:05:00
Edit Download
13.25 KB lrw-r--r-- 2021-11-14 20:05:00
Edit Download
5.98 KB lrw-r--r-- 2021-11-14 20:05:00
Edit Download
4.61 KB lrw-r--r-- 2021-11-14 20:05:00
Edit Download
25.63 KB lrw-r--r-- 2021-11-14 20:05:00
Edit Download
1.78 KB lrw-r--r-- 2021-11-14 20:05:00
Edit Download
2.53 KB lrw-r--r-- 2021-11-14 20:05:00
Edit Download
31.83 KB lrw-r--r-- 2021-11-14 20:05:00
Edit Download
24.76 KB lrw-r--r-- 2021-11-14 20:05:00
Edit Download
5.84 KB lrw-r--r-- 2021-11-14 20:05:00
Edit Download
1.13 KB lrw-r--r-- 2021-11-14 20:05:00
Edit Download
325 B lrw-r--r-- 2021-11-14 20:05:00
Edit Download
31.68 KB lrw-r--r-- 2021-11-14 20:05:00
Edit Download
13.38 KB lrw-r--r-- 2021-11-14 20:05:00
Edit Download
2.06 KB lrw-r--r-- 2021-11-14 20:05:00
Edit Download
7 B lrw-r--r-- 2021-11-14 20:05:00
Edit Download
11.50 KB lrw-r--r-- 2021-11-14 20:05:00
Edit Download
4.97 KB lrw-r--r-- 2021-11-14 20:05:00
Edit Download
20.35 KB lrw-r--r-- 2021-11-14 20:05:00
Edit Download
962 B lrw-r--r-- 2021-11-14 20:05:00
Edit Download
20.72 KB lrw-r--r-- 2021-11-14 20:05:00
Edit Download
14.95 KB lrw-r--r-- 2021-11-14 20:05:00
Edit Download
1.72 KB lrw-r--r-- 2021-11-14 20:05:00
Edit Download
17.51 KB lrw-r--r-- 2021-11-14 20:05:00
Edit Download
16.86 KB lrw-r--r-- 2021-11-14 20:05:00
Edit Download
9.87 KB lrw-r--r-- 2021-11-14 20:05:00
Edit Download
10.53 KB lrw-r--r-- 2021-11-14 20:05:00
Edit Download
7.39 KB lrw-r--r-- 2021-11-14 20:05:00
Edit Download
4.04 KB lrw-r--r-- 2021-11-14 20:05:00
Edit Download
22.02 KB lrw-r--r-- 2021-11-14 20:05:00
Edit Download
27.23 KB lrw-r--r-- 2021-11-14 20:05:00
Edit Download
26.92 KB lrw-r--r-- 2021-11-14 20:05:00
Edit Download
5.90 KB lrw-r--r-- 2021-11-14 20:05:00
Edit Download
10.93 KB lrw-r--r-- 2021-11-14 20:05:00
Edit Download
2.01 KB lrw-r--r-- 2021-11-14 20:05:00
Edit Download
38.62 KB lrw-r--r-- 2021-11-14 20:05:00
Edit Download
16.85 KB lrw-r--r-- 2021-11-14 20:05:00
Edit Download
8.57 KB lrw-r--r-- 2021-11-14 20:05:00
Edit Download
4.88 KB lrw-r--r-- 2021-11-14 20:05:00
Edit Download
183.17 KB lrw-r--r-- 2021-11-14 20:05:14
Edit Download
170 B lrw-r--r-- 2021-11-14 20:05:00
Edit Download
68 B lrw-r--r-- 2021-11-14 20:05:00
Edit Download
1.96 KB lrw-r--r-- 2021-11-14 20:05:14
Edit Download
207.99 KB lrw-r--r-- 2021-11-14 20:05:15
Edit Download
66.12 KB lrwxr-xr-x 2023-11-14 11:36:54
Edit Download
202 B lrw-r--r-- 2021-11-14 20:05:00
Edit Download
1.02 KB lrw-r--r-- 2021-11-14 20:05:00
Edit Download
955.26 KB lrw-r--r-- 2021-11-14 20:05:16
Edit Download
523.54 KB lrwxr-xr-x 2023-11-14 11:36:54
Edit Download
25.95 KB lrw-r--r-- 2021-11-14 20:05:00
Edit Download
216.08 KB lrw-r--r-- 2021-11-14 20:05:14
Edit Download
61.20 KB lrwxr-xr-x 2023-11-14 11:36:54
Edit Download
4.47 KB lrw-r--r-- 2021-11-14 20:05:00
Edit Download
135.18 KB lrw-r--r-- 2021-11-14 20:05:15
Edit Download
37.37 KB lrwxr-xr-x 2023-11-14 11:36:54
Edit Download
1.52 KB lrw-r--r-- 2021-11-14 20:05:00
Edit Download
6.71 KB lrw-r--r-- 2021-11-14 20:05:00
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).