# A highish-level implementation of the HTTP/1.1 wire protocol (RFC 7230), | |
# containing no networking code at all, loosely modelled on hyper-h2's generic | |
# implementation of HTTP/2 (and in particular the h2.connection.H2Connection | |
# class). There's still a bunch of subtle details you need to get right if you | |
# want to make this actually useful, because it doesn't implement all the | |
# semantics to check that what you're asking to write to the wire is sensible, | |
# but at least it gets you out of dealing with the wire itself. | |
from h11._connection import Connection, NEED_DATA, PAUSED | |
from h11._events import ( | |
ConnectionClosed, | |
Data, | |
EndOfMessage, | |
Event, | |
InformationalResponse, | |
Request, | |
Response, | |
) | |
from h11._state import ( | |
CLIENT, | |
CLOSED, | |
DONE, | |
ERROR, | |
IDLE, | |
MIGHT_SWITCH_PROTOCOL, | |
MUST_CLOSE, | |
SEND_BODY, | |
SEND_RESPONSE, | |
SERVER, | |
SWITCHED_PROTOCOL, | |
) | |
from h11._util import LocalProtocolError, ProtocolError, RemoteProtocolError | |
from h11._version import __version__ | |
PRODUCT_ID = "python-h11/" + __version__ | |
__all__ = ( | |
"Connection", | |
"NEED_DATA", | |
"PAUSED", | |
"ConnectionClosed", | |
"Data", | |
"EndOfMessage", | |
"Event", | |
"InformationalResponse", | |
"Request", | |
"Response", | |
"CLIENT", | |
"CLOSED", | |
"DONE", | |
"ERROR", | |
"IDLE", | |
"MUST_CLOSE", | |
"SEND_BODY", | |
"SEND_RESPONSE", | |
"SERVER", | |
"SWITCHED_PROTOCOL", | |
"ProtocolError", | |
"LocalProtocolError", | |
"RemoteProtocolError", | |
) | |