From da52be47690da0d9f78d0dce9ee5c3e4dbef49e1 Mon Sep 17 00:00:00 2001 From: Dong-hee Na Date: Sat, 14 Mar 2020 23:12:01 +0900 Subject: bpo-39509: Update HTTP status code to follow IANA (GH-18294) Add status codes 103 EARLY_HINTS and 425 TOO_EARLY. --- Doc/library/http.rst | 5 +++++ Doc/whatsnew/3.9.rst | 6 ++++++ Lib/http/__init__.py | 4 ++++ Lib/test/test_httplib.py | 2 ++ Misc/NEWS.d/next/Library/2020-02-01-00-03-06.bpo-39509.-YxUSf.rst | 2 ++ 5 files changed, 19 insertions(+) create mode 100644 Misc/NEWS.d/next/Library/2020-02-01-00-03-06.bpo-39509.-YxUSf.rst diff --git a/Doc/library/http.rst b/Doc/library/http.rst index 0e3441c..f120ada2 100644 --- a/Doc/library/http.rst +++ b/Doc/library/http.rst @@ -62,6 +62,7 @@ Code Enum Name Details ``100`` ``CONTINUE`` HTTP/1.1 :rfc:`7231`, Section 6.2.1 ``101`` ``SWITCHING_PROTOCOLS`` HTTP/1.1 :rfc:`7231`, Section 6.2.2 ``102`` ``PROCESSING`` WebDAV :rfc:`2518`, Section 10.1 +``103`` ``EARLY_HINTS`` An HTTP Status Code for Indicating Hints :rfc:`8297` ``200`` ``OK`` HTTP/1.1 :rfc:`7231`, Section 6.3.1 ``201`` ``CREATED`` HTTP/1.1 :rfc:`7231`, Section 6.3.2 ``202`` ``ACCEPTED`` HTTP/1.1 :rfc:`7231`, Section 6.3.3 @@ -102,6 +103,7 @@ Code Enum Name Details ``422`` ``UNPROCESSABLE_ENTITY`` WebDAV :rfc:`4918`, Section 11.2 ``423`` ``LOCKED`` WebDAV :rfc:`4918`, Section 11.3 ``424`` ``FAILED_DEPENDENCY`` WebDAV :rfc:`4918`, Section 11.4 +``425`` ``TOO_EARLY`` Using Early Data in HTTP :rfc:`8470` ``426`` ``UPGRADE_REQUIRED`` HTTP/1.1 :rfc:`7231`, Section 6.5.15 ``428`` ``PRECONDITION_REQUIRED`` Additional HTTP Status Codes :rfc:`6585` ``429`` ``TOO_MANY_REQUESTS`` Additional HTTP Status Codes :rfc:`6585` @@ -130,3 +132,6 @@ equal to the constant name (i.e. ``http.HTTPStatus.OK`` is also available as .. versionadded:: 3.8 Added ``451 UNAVAILABLE_FOR_LEGAL_REASONS`` status code. + +.. versionadded:: 3.9 + Added ``103 EARLY_HINTS`` and ``425 TOO_EARLY`` status codes. diff --git a/Doc/whatsnew/3.9.rst b/Doc/whatsnew/3.9.rst index fc91870..b078e79 100644 --- a/Doc/whatsnew/3.9.rst +++ b/Doc/whatsnew/3.9.rst @@ -232,6 +232,12 @@ Added a new function :func:`gc.is_finalized` to check if an object has been finalized by the garbage collector. (Contributed by Pablo Galindo in :issue:`39322`.) +http +---- + +HTTP status codes ``103 EARLY_HINTS`` and ``425 TOO_EARLY`` are added to +:class:`http.HTTPStatus`. (Contributed by Dong-hee Na in :issue:`39509`.) + imaplib ------- diff --git a/Lib/http/__init__.py b/Lib/http/__init__.py index 350afe7..c8498be 100644 --- a/Lib/http/__init__.py +++ b/Lib/http/__init__.py @@ -17,6 +17,8 @@ class HTTPStatus(IntEnum): * RFC 2774: An HTTP Extension Framework * RFC 7725: An HTTP Status Code to Report Legal Obstacles * RFC 7540: Hypertext Transfer Protocol Version 2 (HTTP/2) + * RFC 8297: An HTTP Status Code for Indicating Hints + * RFC 8470: Using Early Data in HTTP """ def __new__(cls, value, phrase, description=''): obj = int.__new__(cls, value) @@ -31,6 +33,7 @@ class HTTPStatus(IntEnum): SWITCHING_PROTOCOLS = (101, 'Switching Protocols', 'Switching to new protocol; obey Upgrade header') PROCESSING = 102, 'Processing' + EARLY_HINTS = 103, 'Early Hints' # success OK = 200, 'OK', 'Request fulfilled, document follows' @@ -105,6 +108,7 @@ class HTTPStatus(IntEnum): UNPROCESSABLE_ENTITY = 422, 'Unprocessable Entity' LOCKED = 423, 'Locked' FAILED_DEPENDENCY = 424, 'Failed Dependency' + TOO_EARLY = 425, 'Too Early' UPGRADE_REQUIRED = 426, 'Upgrade Required' PRECONDITION_REQUIRED = (428, 'Precondition Required', 'The origin server requires the request to be conditional') diff --git a/Lib/test/test_httplib.py b/Lib/test/test_httplib.py index e1aa414..95eca7e 100644 --- a/Lib/test/test_httplib.py +++ b/Lib/test/test_httplib.py @@ -1440,6 +1440,8 @@ class OfflineTest(TestCase): 'INSUFFICIENT_STORAGE', 'NOT_EXTENDED', 'NETWORK_AUTHENTICATION_REQUIRED', + 'EARLY_HINTS', + 'TOO_EARLY' ] for const in expected: with self.subTest(constant=const): diff --git a/Misc/NEWS.d/next/Library/2020-02-01-00-03-06.bpo-39509.-YxUSf.rst b/Misc/NEWS.d/next/Library/2020-02-01-00-03-06.bpo-39509.-YxUSf.rst new file mode 100644 index 0000000..9969556 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2020-02-01-00-03-06.bpo-39509.-YxUSf.rst @@ -0,0 +1,2 @@ +HTTP status codes ``103 EARLY_HINTS`` and ``425 TOO_EARLY`` are added to +:class:`http.HTTPStatus`. Patch by Dong-hee Na. -- cgit v0.12