Mercurial > repos > jpayne > bioproject_to_srr_2
comparison requests/status_codes.py @ 7:5eb2d5e3bf22
planemo upload for repository https://toolrepo.galaxytrakr.org/view/jpayne/bioproject_to_srr_2/556cac4fb538
author | jpayne |
---|---|
date | Sun, 05 May 2024 23:32:17 -0400 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
6:b2745907b1eb | 7:5eb2d5e3bf22 |
---|---|
1 r""" | |
2 The ``codes`` object defines a mapping from common names for HTTP statuses | |
3 to their numerical codes, accessible either as attributes or as dictionary | |
4 items. | |
5 | |
6 Example:: | |
7 | |
8 >>> import requests | |
9 >>> requests.codes['temporary_redirect'] | |
10 307 | |
11 >>> requests.codes.teapot | |
12 418 | |
13 >>> requests.codes['\o/'] | |
14 200 | |
15 | |
16 Some codes have multiple names, and both upper- and lower-case versions of | |
17 the names are allowed. For example, ``codes.ok``, ``codes.OK``, and | |
18 ``codes.okay`` all correspond to the HTTP status code 200. | |
19 """ | |
20 | |
21 from .structures import LookupDict | |
22 | |
23 _codes = { | |
24 # Informational. | |
25 100: ("continue",), | |
26 101: ("switching_protocols",), | |
27 102: ("processing",), | |
28 103: ("checkpoint",), | |
29 122: ("uri_too_long", "request_uri_too_long"), | |
30 200: ("ok", "okay", "all_ok", "all_okay", "all_good", "\\o/", "✓"), | |
31 201: ("created",), | |
32 202: ("accepted",), | |
33 203: ("non_authoritative_info", "non_authoritative_information"), | |
34 204: ("no_content",), | |
35 205: ("reset_content", "reset"), | |
36 206: ("partial_content", "partial"), | |
37 207: ("multi_status", "multiple_status", "multi_stati", "multiple_stati"), | |
38 208: ("already_reported",), | |
39 226: ("im_used",), | |
40 # Redirection. | |
41 300: ("multiple_choices",), | |
42 301: ("moved_permanently", "moved", "\\o-"), | |
43 302: ("found",), | |
44 303: ("see_other", "other"), | |
45 304: ("not_modified",), | |
46 305: ("use_proxy",), | |
47 306: ("switch_proxy",), | |
48 307: ("temporary_redirect", "temporary_moved", "temporary"), | |
49 308: ( | |
50 "permanent_redirect", | |
51 "resume_incomplete", | |
52 "resume", | |
53 ), # "resume" and "resume_incomplete" to be removed in 3.0 | |
54 # Client Error. | |
55 400: ("bad_request", "bad"), | |
56 401: ("unauthorized",), | |
57 402: ("payment_required", "payment"), | |
58 403: ("forbidden",), | |
59 404: ("not_found", "-o-"), | |
60 405: ("method_not_allowed", "not_allowed"), | |
61 406: ("not_acceptable",), | |
62 407: ("proxy_authentication_required", "proxy_auth", "proxy_authentication"), | |
63 408: ("request_timeout", "timeout"), | |
64 409: ("conflict",), | |
65 410: ("gone",), | |
66 411: ("length_required",), | |
67 412: ("precondition_failed", "precondition"), | |
68 413: ("request_entity_too_large",), | |
69 414: ("request_uri_too_large",), | |
70 415: ("unsupported_media_type", "unsupported_media", "media_type"), | |
71 416: ( | |
72 "requested_range_not_satisfiable", | |
73 "requested_range", | |
74 "range_not_satisfiable", | |
75 ), | |
76 417: ("expectation_failed",), | |
77 418: ("im_a_teapot", "teapot", "i_am_a_teapot"), | |
78 421: ("misdirected_request",), | |
79 422: ("unprocessable_entity", "unprocessable"), | |
80 423: ("locked",), | |
81 424: ("failed_dependency", "dependency"), | |
82 425: ("unordered_collection", "unordered"), | |
83 426: ("upgrade_required", "upgrade"), | |
84 428: ("precondition_required", "precondition"), | |
85 429: ("too_many_requests", "too_many"), | |
86 431: ("header_fields_too_large", "fields_too_large"), | |
87 444: ("no_response", "none"), | |
88 449: ("retry_with", "retry"), | |
89 450: ("blocked_by_windows_parental_controls", "parental_controls"), | |
90 451: ("unavailable_for_legal_reasons", "legal_reasons"), | |
91 499: ("client_closed_request",), | |
92 # Server Error. | |
93 500: ("internal_server_error", "server_error", "/o\\", "✗"), | |
94 501: ("not_implemented",), | |
95 502: ("bad_gateway",), | |
96 503: ("service_unavailable", "unavailable"), | |
97 504: ("gateway_timeout",), | |
98 505: ("http_version_not_supported", "http_version"), | |
99 506: ("variant_also_negotiates",), | |
100 507: ("insufficient_storage",), | |
101 509: ("bandwidth_limit_exceeded", "bandwidth"), | |
102 510: ("not_extended",), | |
103 511: ("network_authentication_required", "network_auth", "network_authentication"), | |
104 } | |
105 | |
106 codes = LookupDict(name="status_codes") | |
107 | |
108 | |
109 def _init(): | |
110 for code, titles in _codes.items(): | |
111 for title in titles: | |
112 setattr(codes, title, code) | |
113 if not title.startswith(("\\", "/")): | |
114 setattr(codes, title.upper(), code) | |
115 | |
116 def doc(code): | |
117 names = ", ".join(f"``{n}``" for n in _codes[code]) | |
118 return "* %d: %s" % (code, names) | |
119 | |
120 global __doc__ | |
121 __doc__ = ( | |
122 __doc__ + "\n" + "\n".join(doc(code) for code in sorted(_codes)) | |
123 if __doc__ is not None | |
124 else None | |
125 ) | |
126 | |
127 | |
128 _init() |