34 lines
1.0 KiB
Python
34 lines
1.0 KiB
Python
# -*- coding: utf-8 -*-
|
|
"""
|
|
proxy.py
|
|
~~~~~~~~
|
|
⚡⚡⚡ Fast, Lightweight, Pluggable, TLS interception capable proxy server focused on
|
|
Network monitoring, controls & Application development, testing, debugging.
|
|
|
|
:copyright: (c) 2013-present by Abhinav Singh and contributors.
|
|
:license: BSD, see LICENSE for more details.
|
|
|
|
.. spelling::
|
|
|
|
http
|
|
"""
|
|
from typing import Any, Optional, TYPE_CHECKING
|
|
|
|
if TYPE_CHECKING: # pragma: no cover
|
|
from ..parser import HttpParser
|
|
|
|
|
|
class HttpProtocolException(Exception):
|
|
"""Top level :exc:`HttpProtocolException` exception class.
|
|
|
|
All exceptions raised during execution of HTTP request lifecycle MUST
|
|
inherit :exc:`HttpProtocolException` base class. Implement
|
|
``response()`` method to optionally return custom response to client.
|
|
"""
|
|
|
|
def __init__(self, message: Optional[str] = None, **kwargs: Any) -> None:
|
|
super().__init__(message or 'Reason unknown')
|
|
|
|
def response(self, request: 'HttpParser') -> Optional[memoryview]:
|
|
return None # pragma: no cover
|