Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes15kdownloads
_status_codes.py163 linesDownload Raw Back to httpx
1from __future__ import annotations2 3from enum import IntEnum4 5__all__ = ["codes"]6 7 8class codes(IntEnum):9    """HTTP status codes and reason phrases10 11    Status codes from the following RFCs are all observed:12 13        * RFC 7231: Hypertext Transfer Protocol (HTTP/1.1), obsoletes 261614        * RFC 6585: Additional HTTP Status Codes15        * RFC 3229: Delta encoding in HTTP16        * RFC 4918: HTTP Extensions for WebDAV, obsoletes 251817        * RFC 5842: Binding Extensions to WebDAV18        * RFC 7238: Permanent Redirect19        * RFC 2295: Transparent Content Negotiation in HTTP20        * RFC 2774: An HTTP Extension Framework21        * RFC 7540: Hypertext Transfer Protocol Version 2 (HTTP/2)22        * RFC 2324: Hyper Text Coffee Pot Control Protocol (HTCPCP/1.0)23        * RFC 7725: An HTTP Status Code to Report Legal Obstacles24        * RFC 8297: An HTTP Status Code for Indicating Hints25        * RFC 8470: Using Early Data in HTTP26    """27 28    def __new__(cls, value: int, phrase: str = "") -> codes:29        obj = int.__new__(cls, value)30        obj._value_ = value31 32        obj.phrase = phrase  # type: ignore[attr-defined]33        return obj34 35    def __str__(self) -> str:36        return str(self.value)37 38    @classmethod39    def get_reason_phrase(cls, value: int) -> str:40        try:41            return codes(value).phrase  # type: ignore42        except ValueError:43            return ""44 45    @classmethod46    def is_informational(cls, value: int) -> bool:47        """48        Returns `True` for 1xx status codes, `False` otherwise.49        """50        return 100 <= value <= 19951 52    @classmethod53    def is_success(cls, value: int) -> bool:54        """55        Returns `True` for 2xx status codes, `False` otherwise.56        """57        return 200 <= value <= 29958 59    @classmethod60    def is_redirect(cls, value: int) -> bool:61        """62        Returns `True` for 3xx status codes, `False` otherwise.63        """64        return 300 <= value <= 39965 66    @classmethod67    def is_client_error(cls, value: int) -> bool:68        """69        Returns `True` for 4xx status codes, `False` otherwise.70        """71        return 400 <= value <= 49972 73    @classmethod74    def is_server_error(cls, value: int) -> bool:75        """76        Returns `True` for 5xx status codes, `False` otherwise.77        """78        return 500 <= value <= 59979 80    @classmethod81    def is_error(cls, value: int) -> bool:82        """83        Returns `True` for 4xx or 5xx status codes, `False` otherwise.84        """85        return 400 <= value <= 59986 87    # informational88    CONTINUE = 100, "Continue"89    SWITCHING_PROTOCOLS = 101, "Switching Protocols"90    PROCESSING = 102, "Processing"91    EARLY_HINTS = 103, "Early Hints"92 93    # success94    OK = 200, "OK"95    CREATED = 201, "Created"96    ACCEPTED = 202, "Accepted"97    NON_AUTHORITATIVE_INFORMATION = 203, "Non-Authoritative Information"98    NO_CONTENT = 204, "No Content"99    RESET_CONTENT = 205, "Reset Content"100    PARTIAL_CONTENT = 206, "Partial Content"101    MULTI_STATUS = 207, "Multi-Status"102    ALREADY_REPORTED = 208, "Already Reported"103    IM_USED = 226, "IM Used"104 105    # redirection106    MULTIPLE_CHOICES = 300, "Multiple Choices"107    MOVED_PERMANENTLY = 301, "Moved Permanently"108    FOUND = 302, "Found"109    SEE_OTHER = 303, "See Other"110    NOT_MODIFIED = 304, "Not Modified"111    USE_PROXY = 305, "Use Proxy"112    TEMPORARY_REDIRECT = 307, "Temporary Redirect"113    PERMANENT_REDIRECT = 308, "Permanent Redirect"114 115    # client error116    BAD_REQUEST = 400, "Bad Request"117    UNAUTHORIZED = 401, "Unauthorized"118    PAYMENT_REQUIRED = 402, "Payment Required"119    FORBIDDEN = 403, "Forbidden"120    NOT_FOUND = 404, "Not Found"121    METHOD_NOT_ALLOWED = 405, "Method Not Allowed"122    NOT_ACCEPTABLE = 406, "Not Acceptable"123    PROXY_AUTHENTICATION_REQUIRED = 407, "Proxy Authentication Required"124    REQUEST_TIMEOUT = 408, "Request Timeout"125    CONFLICT = 409, "Conflict"126    GONE = 410, "Gone"127    LENGTH_REQUIRED = 411, "Length Required"128    PRECONDITION_FAILED = 412, "Precondition Failed"129    REQUEST_ENTITY_TOO_LARGE = 413, "Request Entity Too Large"130    REQUEST_URI_TOO_LONG = 414, "Request-URI Too Long"131    UNSUPPORTED_MEDIA_TYPE = 415, "Unsupported Media Type"132    REQUESTED_RANGE_NOT_SATISFIABLE = 416, "Requested Range Not Satisfiable"133    EXPECTATION_FAILED = 417, "Expectation Failed"134    IM_A_TEAPOT = 418, "I'm a teapot"135    MISDIRECTED_REQUEST = 421, "Misdirected Request"136    UNPROCESSABLE_ENTITY = 422, "Unprocessable Entity"137    LOCKED = 423, "Locked"138    FAILED_DEPENDENCY = 424, "Failed Dependency"139    TOO_EARLY = 425, "Too Early"140    UPGRADE_REQUIRED = 426, "Upgrade Required"141    PRECONDITION_REQUIRED = 428, "Precondition Required"142    TOO_MANY_REQUESTS = 429, "Too Many Requests"143    REQUEST_HEADER_FIELDS_TOO_LARGE = 431, "Request Header Fields Too Large"144    UNAVAILABLE_FOR_LEGAL_REASONS = 451, "Unavailable For Legal Reasons"145 146    # server errors147    INTERNAL_SERVER_ERROR = 500, "Internal Server Error"148    NOT_IMPLEMENTED = 501, "Not Implemented"149    BAD_GATEWAY = 502, "Bad Gateway"150    SERVICE_UNAVAILABLE = 503, "Service Unavailable"151    GATEWAY_TIMEOUT = 504, "Gateway Timeout"152    HTTP_VERSION_NOT_SUPPORTED = 505, "HTTP Version Not Supported"153    VARIANT_ALSO_NEGOTIATES = 506, "Variant Also Negotiates"154    INSUFFICIENT_STORAGE = 507, "Insufficient Storage"155    LOOP_DETECTED = 508, "Loop Detected"156    NOT_EXTENDED = 510, "Not Extended"157    NETWORK_AUTHENTICATION_REQUIRED = 511, "Network Authentication Required"158 159 160# Include lower-case styles for `requests` compatibility.161for code in codes:162    setattr(codes, code._name_.lower(), int(code))163 
codekingpro/portable-devtools · Team Ai