]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-91219: http - use subclassing to override index_pages attribute (GH-100731)
authorEthan Furman <ethan@stoneleaf.us>
Tue, 3 Jan 2023 23:20:08 +0000 (15:20 -0800)
committerGitHub <noreply@github.com>
Tue, 3 Jan 2023 23:20:08 +0000 (15:20 -0800)
Remove previously added parameter to `__init__`, and recommend subclassing to modify the `index_pages` attribute instead.

Doc/library/http.server.rst
Lib/http/server.py
Misc/NEWS.d/next/Library/2023-01-03-11-06-28.gh-issue-91219.s5IFCw.rst [new file with mode: 0644]

index 3290b9beab3ed943d61de8f0f1095b5f85f8504f..ae75e6dc5fdcf3b2d91ecd5d5b7095ddfa95aa5a 100644 (file)
@@ -413,6 +413,11 @@ the current directory::
        print("serving at port", PORT)
        httpd.serve_forever()
 
+
+:class:`SimpleHTTPRequestHandler` can also be subclassed to enhance behavior,
+such as using different index file names by overriding the class attribute
+:attr:`index_pages`.
+
 .. _http-server-cli:
 
 :mod:`http.server` can also be invoked directly using the :option:`-m`
index 221c8be4ae4b8f4f1672f9391de6aa0392ffd302..971f08046d50b5095143798ba22ada0be62be3e8 100644 (file)
@@ -652,8 +652,8 @@ class SimpleHTTPRequestHandler(BaseHTTPRequestHandler):
 
     """
 
-    index_pages = ["index.html", "index.htm"]
     server_version = "SimpleHTTP/" + __version__
+    index_pages = ("index.html", "index.htm")
     extensions_map = _encodings_map_default = {
         '.gz': 'application/gzip',
         '.Z': 'application/octet-stream',
@@ -661,11 +661,9 @@ class SimpleHTTPRequestHandler(BaseHTTPRequestHandler):
         '.xz': 'application/x-xz',
     }
 
-    def __init__(self, *args, directory=None, index_pages=None, **kwargs):
+    def __init__(self, *args, directory=None, **kwargs):
         if directory is None:
             directory = os.getcwd()
-        if index_pages is not None:
-            self.index_pages = index_pages
         self.directory = os.fspath(directory)
         super().__init__(*args, **kwargs)
 
diff --git a/Misc/NEWS.d/next/Library/2023-01-03-11-06-28.gh-issue-91219.s5IFCw.rst b/Misc/NEWS.d/next/Library/2023-01-03-11-06-28.gh-issue-91219.s5IFCw.rst
new file mode 100644 (file)
index 0000000..cb5e2e4
--- /dev/null
@@ -0,0 +1,2 @@
+Change ``SimpleHTTPRequestHandler`` to support subclassing to provide a
+different set of index file names instead of using ``__init__`` parameters.