From af1e3915ebfc2da3f4f38ef464082874458aaccb Mon Sep 17 00:00:00 2001 From: Anirudha Bose Date: Sat, 8 Dec 2018 12:28:37 +0100 Subject: [PATCH] bpo-35292: Lazily inject system mime.types into SimpleHTTPRequestHandler.extensions_map --- Lib/http/server.py | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/Lib/http/server.py b/Lib/http/server.py index 22d865f2fdfa92..8e1dd39062c1fd 100644 --- a/Lib/http/server.py +++ b/Lib/http/server.py @@ -639,6 +639,11 @@ class SimpleHTTPRequestHandler(BaseHTTPRequestHandler): server_version = "SimpleHTTP/" + __version__ + extensions_map = { + '': 'application/octet-stream', # Default, + **mimetypes.types_map + } + def __init__(self, *args, directory=None, **kwargs): if directory is None: directory = os.getcwd() @@ -857,6 +862,9 @@ def guess_type(self, path): slow) to look inside the data to make a better guess. """ + if not mimetypes.inited: + mimetypes.init() # try to read system mime.types + self.extensions_map.update(mimetypes.types_map) base, ext = posixpath.splitext(path) if ext in self.extensions_map: @@ -867,16 +875,6 @@ def guess_type(self, path): else: return self.extensions_map[''] - if not mimetypes.inited: - mimetypes.init() # try to read system mime.types - extensions_map = mimetypes.types_map.copy() - extensions_map.update({ - '': 'application/octet-stream', # Default - '.py': 'text/plain', - '.c': 'text/plain', - '.h': 'text/plain', - }) - # Utilities for CGIHTTPRequestHandler