From 6aab16e9f6df06ab68f24422dcc50579f500c0b7 Mon Sep 17 00:00:00 2001
From: Georg Brandl <georg@python.org>
Date: Fri, 17 Feb 2006 19:17:25 +0000
Subject: Move "httpresponses" dict from urllib2 to httplib where it belongs.

---
 Doc/lib/libhttplib.tex |  8 ++++++++
 Doc/lib/liburllib2.tex |  9 ---------
 Lib/BaseHTTPServer.py  | 20 ++++++++++----------
 Lib/httplib.py         | 51 +++++++++++++++++++++++++++++++++++++++++++++++++-
 Lib/urllib2.py         | 49 +-----------------------------------------------
 5 files changed, 69 insertions(+), 68 deletions(-)

diff --git a/Doc/lib/libhttplib.tex b/Doc/lib/libhttplib.tex
index 8f02368..049f6c4 100644
--- a/Doc/lib/libhttplib.tex
+++ b/Doc/lib/libhttplib.tex
@@ -288,6 +288,14 @@ and also the following constants for integer status codes:
     {An HTTP Extension Framework, \rfc{2774}, Section 7}
 \end{tableiii}
 
+\begin{datadesc}{responses}
+This dictionary maps the HTTP 1.1 status codes to the W3C names.
+
+Example: \code{httplib.responses[httplib.NOT_FOUND]} is \code{'Not Found'}.
+\versionadded{2.5}
+\end{datadesc}
+
+
 \subsection{HTTPConnection Objects \label{httpconnection-objects}}
 
 \class{HTTPConnection} instances have the following methods:
diff --git a/Doc/lib/liburllib2.tex b/Doc/lib/liburllib2.tex
index 842b2a3..706c54b 100644
--- a/Doc/lib/liburllib2.tex
+++ b/Doc/lib/liburllib2.tex
@@ -71,15 +71,6 @@ set to \code{500}.
 \end{funcdesc}
 
 
-The following attribute is defined:
-
-\begin{datadesc}{httpresponses}
-A mapping between HTTP status codes and the W3C names.
-
-Example: \code{urllib2.httpresponses[404]} is \code{'Not Found'}.
-\versionadded{2.5}
-\end{datadesc}
-
 The following exceptions are raised as appropriate:
 
 \begin{excdesc}{URLError}
diff --git a/Lib/BaseHTTPServer.py b/Lib/BaseHTTPServer.py
index 1b3d4db..a041ef2 100644
--- a/Lib/BaseHTTPServer.py
+++ b/Lib/BaseHTTPServer.py
@@ -483,7 +483,7 @@ class BaseHTTPRequestHandler(SocketServer.StreamRequestHandler):
 
     # Table mapping response codes to messages; entries have the
     # form {code: (shortmessage, longmessage)}.
-    # See http://www.w3.org/hypertext/WWW/Protocols/HTTP/HTRESP.html
+    # See RFC 2616.
     responses = {
         100: ('Continue', 'Request received, please continue'),
         101: ('Switching Protocols',
@@ -494,7 +494,7 @@ class BaseHTTPRequestHandler(SocketServer.StreamRequestHandler):
         202: ('Accepted',
               'Request accepted, processing continues off-line'),
         203: ('Non-Authoritative Information', 'Request fulfilled from cache'),
-        204: ('No response', 'Request fulfilled, nothing follows'),
+        204: ('No Content', 'Request fulfilled, nothing follows'),
         205: ('Reset Content', 'Clear input form for further input.'),
         206: ('Partial Content', 'Partial content follows.'),
 
@@ -503,7 +503,7 @@ class BaseHTTPRequestHandler(SocketServer.StreamRequestHandler):
         301: ('Moved Permanently', 'Object moved permanently -- see URI list'),
         302: ('Found', 'Object moved temporarily -- see URI list'),
         303: ('See Other', 'Object moved -- see Method and URL list'),
-        304: ('Not modified',
+        304: ('Not Modified',
               'Document has not changed since given time'),
         305: ('Use Proxy',
               'You must use proxy specified in Location to access this '
@@ -511,11 +511,11 @@ class BaseHTTPRequestHandler(SocketServer.StreamRequestHandler):
         307: ('Temporary Redirect',
               'Object moved temporarily -- see URI list'),
 
-        400: ('Bad request',
+        400: ('Bad Request',
               'Bad request syntax or unsupported method'),
         401: ('Unauthorized',
               'No permission -- see authorization schemes'),
-        402: ('Payment required',
+        402: ('Payment Required',
               'No payment -- see charging schemes'),
         403: ('Forbidden',
               'Request forbidden -- authorization will not help'),
@@ -525,7 +525,7 @@ class BaseHTTPRequestHandler(SocketServer.StreamRequestHandler):
         406: ('Not Acceptable', 'URI not available in preferred format.'),
         407: ('Proxy Authentication Required', 'You must authenticate with '
               'this proxy before proceeding.'),
-        408: ('Request Time-out', 'Request timed out; try again later.'),
+        408: ('Request Timeout', 'Request timed out; try again later.'),
         409: ('Conflict', 'Request conflict.'),
         410: ('Gone',
               'URI no longer exists and has been permanently removed.'),
@@ -539,15 +539,15 @@ class BaseHTTPRequestHandler(SocketServer.StreamRequestHandler):
         417: ('Expectation Failed',
               'Expect condition could not be satisfied.'),
 
-        500: ('Internal error', 'Server got itself in trouble'),
+        500: ('Internal Server Error', 'Server got itself in trouble'),
         501: ('Not Implemented',
               'Server does not support this operation'),
         502: ('Bad Gateway', 'Invalid responses from another server/proxy.'),
-        503: ('Service temporarily overloaded',
+        503: ('Service Unavailable',
               'The server cannot process the request due to a high load'),
-        504: ('Gateway timeout',
+        504: ('Gateway Timeout',
               'The gateway server did not receive a timely response'),
-        505: ('HTTP Version not supported', 'Cannot fulfill request.'),
+        505: ('HTTP Version Not Supported', 'Cannot fulfill request.'),
         }
 
 
diff --git a/Lib/httplib.py b/Lib/httplib.py
index 5c82edd..b4bd536 100644
--- a/Lib/httplib.py
+++ b/Lib/httplib.py
@@ -81,7 +81,7 @@ __all__ = ["HTTP", "HTTPResponse", "HTTPConnection", "HTTPSConnection",
            "UnknownTransferEncoding", "UnimplementedFileMode",
            "IncompleteRead", "InvalidURL", "ImproperConnectionState",
            "CannotSendRequest", "CannotSendHeader", "ResponseNotReady",
-           "BadStatusLine", "error"]
+           "BadStatusLine", "error", "responses"]
 
 HTTP_PORT = 80
 HTTPS_PORT = 443
@@ -153,6 +153,55 @@ HTTP_VERSION_NOT_SUPPORTED = 505
 INSUFFICIENT_STORAGE = 507
 NOT_EXTENDED = 510
 
+# Mapping status codes to official W3C names
+responses = {
+    100: 'Continue',
+    101: 'Switching Protocols',
+
+    200: 'OK',
+    201: 'Created',
+    202: 'Accepted',
+    203: 'Non-Authoritative Information',
+    204: 'No Content',
+    205: 'Reset Content',
+    206: 'Partial Content',
+
+    300: 'Multiple Choices',
+    301: 'Moved Permanently',
+    302: 'Found',
+    303: 'See Other',
+    304: 'Not Modified',
+    305: 'Use Proxy',
+    306: '(Unused)',
+    307: 'Temporary Redirect',
+
+    400: 'Bad Request',
+    401: 'Unauthorized',
+    402: 'Payment Required',
+    403: 'Forbidden',
+    404: 'Not Found',
+    405: 'Method Not Allowed',
+    406: 'Not Acceptable',
+    407: 'Proxy Authentication Required',
+    408: 'Request Timeout',
+    409: 'Conflict',
+    410: 'Gone',
+    411: 'Length Required',
+    412: 'Precondition Failed',
+    413: 'Request Entity Too Large',
+    414: 'Request-URI Too Long',
+    415: 'Unsupported Media Type',
+    416: 'Requested Range Not Satisfiable',
+    417: 'Expectation Failed',
+
+    500: 'Internal Server Error',
+    501: 'Not Implemented',
+    502: 'Bad Gateway',
+    503: 'Service Unavailable',
+    504: 'Gateway Timeout',
+    505: 'HTTP Version Not Supported',
+}
+
 # maximal amount of data to read at one time in _safe_read
 MAXAMOUNT = 1048576
 
diff --git a/Lib/urllib2.py b/Lib/urllib2.py
index ba0d5b5..34d99fc 100644
--- a/Lib/urllib2.py
+++ b/Lib/urllib2.py
@@ -1296,51 +1296,4 @@ class OpenerFactory:
                 ph = ph()
             opener.add_handler(ph)
 
-# Mapping status codes to official W3C names
-httpresponses = {
-    100: 'Continue',
-    101: 'Switching Protocols',
-
-    200: 'OK',
-    201: 'Created',
-    202: 'Accepted',
-    203: 'Non-Authoritative Information',
-    204: 'No Content',
-    205: 'Reset Content',
-    206: 'Partial Content',
-
-    300: 'Multiple Choices',
-    301: 'Moved Permanently',
-    302: 'Found',
-    303: 'See Other',
-    304: 'Not Modified',
-    305: 'Use Proxy',
-    306: '(Unused)',
-    307: 'Temporary Redirect',
-
-    400: 'Bad Request',
-    401: 'Unauthorized',
-    402: 'Payment Required',
-    403: 'Forbidden',
-    404: 'Not Found',
-    405: 'Method Not Allowed',
-    406: 'Not Acceptable',
-    407: 'Proxy Authentication Required',
-    408: 'Request Timeout',
-    409: 'Conflict',
-    410: 'Gone',
-    411: 'Length Required',
-    412: 'Precondition Failed',
-    413: 'Request Entity Too Large',
-    414: 'Request-URI Too Long',
-    415: 'Unsupported Media Type',
-    416: 'Requested Range Not Satisfiable',
-    417: 'Expectation Failed',
-
-    500: 'Internal Server Error',
-    501: 'Not Implemented',
-    502: 'Bad Gateway',
-    503: 'Service Unavailable',
-    504: 'Gateway Timeout',
-    505: 'HTTP Version Not Supported',
-}
+
-- 
cgit v0.12

