Spaces:
Runtime error
Runtime error
| r""" | |
| The ``codes`` object defines a mapping from common names for HTTP statuses | |
| to their numerical codes, accessible either as attributes or as dictionary | |
| items. | |
| Example:: | |
| >>> import requests | |
| >>> requests.codes['temporary_redirect'] | |
| 307 | |
| >>> requests.codes.teapot | |
| 418 | |
| >>> requests.codes['\o/'] | |
| 200 | |
| Some codes have multiple names, and both upper- and lower-case versions of | |
| the names are allowed. For example, ``codes.ok``, ``codes.OK``, and | |
| ``codes.okay`` all correspond to the HTTP status code 200. | |
| """ | |
| from .structures import LookupDict | |
| _codes = { | |
| # Informational. | |
| 100: ("continue",), | |
| 101: ("switching_protocols",), | |
| 102: ("processing",), | |
| 103: ("checkpoint",), | |
| 122: ("uri_too_long", "request_uri_too_long"), | |
| 200: ("ok", "okay", "all_ok", "all_okay", "all_good", "\\o/", "β"), | |
| 201: ("created",), | |
| 202: ("accepted",), | |
| 203: ("non_authoritative_info", "non_authoritative_information"), | |
| 204: ("no_content",), | |
| 205: ("reset_content", "reset"), | |
| 206: ("partial_content", "partial"), | |
| 207: ("multi_status", "multiple_status", "multi_stati", "multiple_stati"), | |
| 208: ("already_reported",), | |
| 226: ("im_used",), | |
| # Redirection. | |
| 300: ("multiple_choices",), | |
| 301: ("moved_permanently", "moved", "\\o-"), | |
| 302: ("found",), | |
| 303: ("see_other", "other"), | |
| 304: ("not_modified",), | |
| 305: ("use_proxy",), | |
| 306: ("switch_proxy",), | |
| 307: ("temporary_redirect", "temporary_moved", "temporary"), | |
| 308: ( | |
| "permanent_redirect", | |
| "resume_incomplete", | |
| "resume", | |
| ), # "resume" and "resume_incomplete" to be removed in 3.0 | |
| # Client Error. | |
| 400: ("bad_request", "bad"), | |
| 401: ("unauthorized",), | |
| 402: ("payment_required", "payment"), | |
| 403: ("forbidden",), | |
| 404: ("not_found", "-o-"), | |
| 405: ("method_not_allowed", "not_allowed"), | |
| 406: ("not_acceptable",), | |
| 407: ("proxy_authentication_required", "proxy_auth", "proxy_authentication"), | |
| 408: ("request_timeout", "timeout"), | |
| 409: ("conflict",), | |
| 410: ("gone",), | |
| 411: ("length_required",), | |
| 412: ("precondition_failed", "precondition"), | |
| 413: ("request_entity_too_large",), | |
| 414: ("request_uri_too_large",), | |
| 415: ("unsupported_media_type", "unsupported_media", "media_type"), | |
| 416: ( | |
| "requested_range_not_satisfiable", | |
| "requested_range", | |
| "range_not_satisfiable", | |
| ), | |
| 417: ("expectation_failed",), | |
| 418: ("im_a_teapot", "teapot", "i_am_a_teapot"), | |
| 421: ("misdirected_request",), | |
| 422: ("unprocessable_entity", "unprocessable"), | |
| 423: ("locked",), | |
| 424: ("failed_dependency", "dependency"), | |
| 425: ("unordered_collection", "unordered"), | |
| 426: ("upgrade_required", "upgrade"), | |
| 428: ("precondition_required", "precondition"), | |
| 429: ("too_many_requests", "too_many"), | |
| 431: ("header_fields_too_large", "fields_too_large"), | |
| 444: ("no_response", "none"), | |
| 449: ("retry_with", "retry"), | |
| 450: ("blocked_by_windows_parental_controls", "parental_controls"), | |
| 451: ("unavailable_for_legal_reasons", "legal_reasons"), | |
| 499: ("client_closed_request",), | |
| # Server Error. | |
| 500: ("internal_server_error", "server_error", "/o\\", "β"), | |
| 501: ("not_implemented",), | |
| 502: ("bad_gateway",), | |
| 503: ("service_unavailable", "unavailable"), | |
| 504: ("gateway_timeout",), | |
| 505: ("http_version_not_supported", "http_version"), | |
| 506: ("variant_also_negotiates",), | |
| 507: ("insufficient_storage",), | |
| 509: ("bandwidth_limit_exceeded", "bandwidth"), | |
| 510: ("not_extended",), | |
| 511: ("network_authentication_required", "network_auth", "network_authentication"), | |
| } | |
| codes = LookupDict(name="status_codes") | |
| def _init(): | |
| for code, titles in _codes.items(): | |
| for title in titles: | |
| setattr(codes, title, code) | |
| if not title.startswith(("\\", "/")): | |
| setattr(codes, title.upper(), code) | |
| def doc(code): | |
| names = ", ".join(f"``{n}``" for n in _codes[code]) | |
| return "* %d: %s" % (code, names) | |
| global __doc__ | |
| __doc__ = ( | |
| __doc__ + "\n" + "\n".join(doc(code) for code in sorted(_codes)) | |
| if __doc__ is not None | |
| else None | |
| ) | |
| _init() | |