Source code for runtimepy.net.http.version
"""
A module implementing an interface for HTTP versions.
"""
DEFAULT_MAJOR = 1
DEFAULT_MINOR = 1
[docs]
class HttpVersion:
"""A class implementing a simple HTTP version interface."""
def __init__(self, version_raw: str) -> None:
"""Initialize this instance."""
http_str, version = version_raw.split("/")
assert http_str == "HTTP"
version_major, version_minor = version.split(".")
self.major = int(version_major)
self.minor = int(version_minor)
[docs]
@staticmethod
def create(
major: int = DEFAULT_MAJOR, minor: int = DEFAULT_MINOR
) -> "HttpVersion":
"""Create a version instance."""
return HttpVersion(HttpVersion.version_str(major=major, minor=minor))
[docs]
@staticmethod
def version_str(
major: int = DEFAULT_MAJOR, minor: int = DEFAULT_MINOR
) -> str:
"""Get version information as a string."""
return f"HTTP/{major}.{minor}"
def __str__(self) -> str:
"""Get this instance as a string."""
return HttpVersion.version_str(major=self.major, minor=self.minor)