OXIESEC PANEL
- Current Dir:
/
/
opt
/
cloudlinux
/
venv
/
lib
/
python3.11
/
site-packages
/
aiohttp
Server IP: 2a02:4780:11:1084:0:327f:3464:10
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
09/05/2025 09:34:06 AM
rwxr-xr-x
📁
.hash
-
02/07/2025 10:01:29 PM
rwxr-xr-x
📄
__init__.py
7.58 KB
12/18/2024 10:23:16 AM
rw-r--r--
📁
__pycache__
-
02/07/2025 11:11:02 PM
rwxr-xr-x
📄
_cparser.pxd
4.22 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
_find_header.pxd
68 bytes
12/18/2024 10:23:16 AM
rw-r--r--
📄
_headers.pxi
1.96 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
_helpers.cpython-311-x86_64-linux-gnu.so
86.01 KB
12/18/2024 10:23:52 AM
rwxr-xr-x
📄
_helpers.pyi
202 bytes
12/18/2024 10:23:16 AM
rw-r--r--
📄
_helpers.pyx
1.02 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
_http_parser.cpython-311-x86_64-linux-gnu.so
569.59 KB
12/18/2024 10:23:52 AM
rwxr-xr-x
📄
_http_parser.pyx
27.4 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
_http_writer.cpython-311-x86_64-linux-gnu.so
75.01 KB
12/18/2024 10:23:52 AM
rwxr-xr-x
📄
_http_writer.pyx
4.47 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
_websocket.cpython-311-x86_64-linux-gnu.so
53.37 KB
12/18/2024 10:23:52 AM
rwxr-xr-x
📄
_websocket.pyx
1.52 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
abc.py
5.37 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
base_protocol.py
2.68 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
client.py
46.17 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
client_exceptions.py
9.19 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
client_proto.py
8.45 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
client_reqrep.py
38.75 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
client_ws.py
10.75 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
compression_utils.py
4.9 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
connector.py
51.56 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
cookiejar.py
13.69 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
formdata.py
5.96 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
hdrs.py
4.5 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
helpers.py
29.55 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
http.py
1.8 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
http_exceptions.py
2.65 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
http_parser.py
34.66 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
http_websocket.py
26.09 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
http_writer.py
5.79 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
locks.py
1.11 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
log.py
325 bytes
12/18/2024 10:23:16 AM
rw-r--r--
📄
multipart.py
31.71 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
payload.py
13.22 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
payload_streamer.py
2.04 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
py.typed
7 bytes
12/18/2024 10:23:16 AM
rw-r--r--
📄
pytest_plugin.py
11.33 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
resolver.py
4.95 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
streams.py
20.35 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
tcp_helpers.py
961 bytes
12/18/2024 10:23:16 AM
rw-r--r--
📄
test_utils.py
19.71 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
tracing.py
14.78 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
typedefs.py
1.44 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
web.py
18.81 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
web_app.py
17.88 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
web_exceptions.py
10.12 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
web_fileresponse.py
11.15 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
web_log.py
7.62 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
web_middlewares.py
3.94 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
web_protocol.py
22.5 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
web_request.py
28.08 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
web_response.py
27.08 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
web_routedef.py
5.99 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
web_runner.py
11.46 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
web_server.py
2.53 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
web_urldispatcher.py
39.12 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
web_ws.py
18.21 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
worker.py
7.78 KB
12/18/2024 10:23:16 AM
rw-r--r--
Editing: abc.py
Close
import asyncio import logging from abc import ABC, abstractmethod from collections.abc import Sized from http.cookies import BaseCookie, Morsel from typing import ( TYPE_CHECKING, Any, Awaitable, Callable, Dict, Generator, Iterable, List, Optional, Tuple, ) from multidict import CIMultiDict from yarl import URL from .helpers import get_running_loop from .typedefs import LooseCookies if TYPE_CHECKING: from .web_app import Application from .web_exceptions import HTTPException from .web_request import BaseRequest, Request from .web_response import StreamResponse else: BaseRequest = Request = Application = StreamResponse = None HTTPException = None class AbstractRouter(ABC): def __init__(self) -> None: self._frozen = False def post_init(self, app: Application) -> None: """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) -> bool: return self._frozen def freeze(self) -> None: """Freeze router.""" self._frozen = True @abstractmethod async def resolve(self, request: Request) -> "AbstractMatchInfo": """Return MATCH_INFO for given request""" class AbstractMatchInfo(ABC): @property # pragma: no branch @abstractmethod def handler(self) -> Callable[[Request], Awaitable[StreamResponse]]: """Execute matched request handler""" @property @abstractmethod def expect_handler( self, ) -> Callable[[Request], Awaitable[Optional[StreamResponse]]]: """Expect handler for 100-continue processing""" @property # pragma: no branch @abstractmethod def http_exception(self) -> Optional[HTTPException]: """HTTPException instance raised on router's resolving, or None""" @abstractmethod # pragma: no branch def get_info(self) -> Dict[str, Any]: """Return a dict with additional info useful for introspection""" @property # pragma: no branch @abstractmethod def apps(self) -> Tuple[Application, ...]: """Stack of nested applications. Top level application is left-most element. """ @abstractmethod def add_app(self, app: Application) -> None: """Add application to the nested apps stack.""" @abstractmethod def freeze(self) -> None: """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: Request) -> None: self._request = request @property def request(self) -> Request: """Request instance.""" return self._request @abstractmethod def __await__(self) -> Generator[Any, None, StreamResponse]: """Execute the view handler.""" class AbstractResolver(ABC): """Abstract DNS resolver.""" @abstractmethod async def resolve(self, host: str, port: int, family: int) -> List[Dict[str, Any]]: """Return IP address for given hostname""" @abstractmethod async def close(self) -> None: """Release resolver""" if TYPE_CHECKING: IterableBase = Iterable[Morsel[str]] else: IterableBase = Iterable ClearCookiePredicate = Callable[["Morsel[str]"], bool] class AbstractCookieJar(Sized, IterableBase): """Abstract Cookie Jar.""" def __init__(self, *, loop: Optional[asyncio.AbstractEventLoop] = None) -> None: self._loop = get_running_loop(loop) @abstractmethod def clear(self, predicate: Optional[ClearCookiePredicate] = None) -> None: """Clear all cookies if no predicate is passed.""" @abstractmethod def clear_domain(self, domain: str) -> None: """Clear all cookies for domain and all subdomains.""" @abstractmethod def update_cookies(self, cookies: LooseCookies, response_url: URL = URL()) -> None: """Update cookies.""" @abstractmethod def filter_cookies(self, request_url: URL) -> "BaseCookie[str]": """Return the jar's cookies filtered by their attributes.""" class AbstractStreamWriter(ABC): """Abstract stream writer.""" buffer_size = 0 output_size = 0 length: Optional[int] = 0 @abstractmethod async def write(self, chunk: bytes) -> None: """Write chunk into stream.""" @abstractmethod async def write_eof(self, chunk: bytes = b"") -> None: """Write last chunk.""" @abstractmethod async def drain(self) -> None: """Flush the write buffer.""" @abstractmethod def enable_compression(self, encoding: str = "deflate") -> None: """Enable HTTP body compression""" @abstractmethod def enable_chunking(self) -> None: """Enable HTTP chunked mode""" @abstractmethod async def write_headers( self, status_line: str, headers: "CIMultiDict[str]" ) -> None: """Write HTTP headers""" class AbstractAccessLogger(ABC): """Abstract writer to access log.""" def __init__(self, logger: logging.Logger, log_format: str) -> None: self.logger = logger self.log_format = log_format @abstractmethod def log(self, request: BaseRequest, response: StreamResponse, time: float) -> None: """Emit log to logger."""