Skip to content

Commit

Permalink
gh-91219: Add an index_pages default list and parameter to SimpleHTTP…
Browse files Browse the repository at this point in the history
…RequestHandler (GH-31985)

* Add an index_pages default list to SimpleHTTPRequestHandler and an
optional constructor parameter that allows the default indexes pages
list to be overridden.  This makes it easy to set a new index page name
without having to override send_head.
  • Loading branch information
myronww authored Jun 23, 2022
1 parent 4e796f5 commit 9a95fa9
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 2 deletions.
7 changes: 5 additions & 2 deletions Lib/http/server.py
Original file line number Diff line number Diff line change
Expand Up @@ -642,6 +642,7 @@ class SimpleHTTPRequestHandler(BaseHTTPRequestHandler):
"""

index_pages = ["index.html", "index.htm"]
server_version = "SimpleHTTP/" + __version__
extensions_map = _encodings_map_default = {
'.gz': 'application/gzip',
Expand All @@ -650,9 +651,11 @@ class SimpleHTTPRequestHandler(BaseHTTPRequestHandler):
'.xz': 'application/x-xz',
}

def __init__(self, *args, directory=None, **kwargs):
def __init__(self, *args, directory=None, index_pages=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 Expand Up @@ -696,7 +699,7 @@ def send_head(self):
self.send_header("Content-Length", "0")
self.end_headers()
return None
for index in "index.html", "index.htm":
for index in self.index_pages:
index = os.path.join(path, index)
if os.path.exists(index):
path = index
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Add an index_pages parameter to support using non-default index page names.

0 comments on commit 9a95fa9

Please sign in to comment.