Skip to content

Commit

Permalink
gh-91219: http - use subclassing to override index_pages attribute (G…
Browse files Browse the repository at this point in the history
…H-100731)

Remove previously added parameter to `__init__`, and recommend subclassing to modify the `index_pages` attribute instead.
  • Loading branch information
ethanfurman authored Jan 3, 2023
1 parent 64ed609 commit a286caa
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 4 deletions.
5 changes: 5 additions & 0 deletions Doc/library/http.server.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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`
Expand Down
6 changes: 2 additions & 4 deletions Lib/http/server.py
Original file line number Diff line number Diff line change
Expand Up @@ -652,20 +652,18 @@ 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',
'.bz2': 'application/x-bzip2',
'.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)

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Change ``SimpleHTTPRequestHandler`` to support subclassing to provide a
different set of index file names instead of using ``__init__`` parameters.

0 comments on commit a286caa

Please sign in to comment.