runtimepy.net.http package#

Submodules#

runtimepy.net.http.common module#

A module containing shared interfaces for HTTP.

class runtimepy.net.http.common.HeadersMixin(lines: list[str] = None)[source]#

Bases: ABC

A class implementing a mixin for HTTP header fields.

property content_length: int#

Get a value for context length.

abstractmethod from_lines(lines: list[str]) None[source]#

Update this request from line data.

get(key: str, default: str = None) str | None[source]#

Get a possible header value.

abstractmethod log(logger: Logger | LoggerAdapter[Any], out: bool, **kwargs) None[source]#

Log information about this response header.

write_field_lines(stream: TextIO) None[source]#

Write field lines to a stream.

runtimepy.net.http.common.normalize_method(data: str | HTTPMethod) HTTPMethod[source]#

Normalize HTTP method data.

runtimepy.net.http.header module#

A module implementing interfaces for HTTP headers.

class runtimepy.net.http.header.RequestHeader(method: str | ~http.HTTPMethod = <HTTPMethod.GET>, target: str = '/', major: int = 1, minor: int = 1)[source]#

Bases: HeadersMixin

A class implementing an HTTP-request header.

from_lines(lines: list[str]) None[source]#

Update this request from line data.

log(logger: Logger | LoggerAdapter[Any], out: bool, level: int = 10, **_) None[source]#

Log information about this request header.

property request_line: str#

Get this response’s status line.

runtimepy.net.http.request_target module#

A module implementing a simple request-target (3.2) interface.

class runtimepy.net.http.request_target.RequestTarget(method: HTTPMethod, request_target_raw: str)[source]#

Bases: object

A class implementing HTTP’s request-target definition.

property path: str#

Get the path for this request.

runtimepy.net.http.response module#

A module implementing HTTP-response interfaces.

class runtimepy.net.http.response.ResponseHeader(major: int = 1, minor: int = 1, status: HTTPStatus = HTTPStatus.OK, reason: str = '', content_type: str = 'application/octet-stream')[source]#

Bases: HeadersMixin

A class implementing an HTTP-response header.

from_lines(lines: list[str]) None[source]#

Update this request from line data.

log(logger: Logger | LoggerAdapter[Any], out: bool, **_) None[source]#

Log information about this response header.

property status_line: str#

Get this response’s status line.

runtimepy.net.http.state module#

A module implementing an HTTP-header processing state interface.

class runtimepy.net.http.state.HeaderProcessingState(lines: list[str], line: str)[source]#

Bases: object

A container for header-related processing state.

static create() HeaderProcessingState[source]#

Create a default instance.

line: str#
lines: list[str]#
service(buffer: ByteFifo, kind: type[T]) T | None[source]#

Continue processing the input fifo as if it contains request-header data.

runtimepy.net.http.version module#

A module implementing an interface for HTTP versions.

class runtimepy.net.http.version.HttpVersion(version_raw: str)[source]#

Bases: object

A class implementing a simple HTTP version interface.

static create(major: int = 1, minor: int = 1) HttpVersion[source]#

Create a version instance.

static version_str(major: int = 1, minor: int = 1) str[source]#

Get version information as a string.

Module contents#

A module implementing an HTTP-message processing interface.

class runtimepy.net.http.HttpMessageProcessor[source]#

Bases: object

A class implementing HTTP/1.1 (RFC 9112) message processing from a byte stream.

ingest(data: bytes, kind: type[T]) Iterator[tuple[T, bytes | None]][source]#

Process a binary frame.