Skip to content

Commit dc7d7e3

Browse files
Portable Python script across Python version
Workaround naming and hierarchy changes in BaseHTTPServer and SimpleHTTPServer module. Differential Revision: https://reviews.llvm.org/D55203 llvm-svn: 348184
1 parent 6290a73 commit dc7d7e3

File tree

1 file changed

+12
-9
lines changed

1 file changed

+12
-9
lines changed

clang/tools/scan-view/share/ScanView.py

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
1-
import BaseHTTPServer
2-
import SimpleHTTPServer
1+
try:
2+
from http.server import HTTPServer, SimpleHTTPRequestHandler
3+
except ImportError:
4+
from BaseHTTPServer import HTTPServer
5+
from SimpleHTTPServer import SimpleHTTPRequestHandler
36
import os
47
import sys
58
import urllib, urlparse
@@ -112,9 +115,9 @@ def run(self):
112115
print >>s,'</pre>'
113116
self.status = s.getvalue()
114117

115-
class ScanViewServer(BaseHTTPServer.HTTPServer):
118+
class ScanViewServer(HTTPServer):
116119
def __init__(self, address, handler, root, reporters, options):
117-
BaseHTTPServer.HTTPServer.__init__(self, address, handler)
120+
HTTPServer.__init__(self, address, handler)
118121
self.root = root
119122
self.reporters = reporters
120123
self.options = options
@@ -170,7 +173,7 @@ def finish_request(self, request, client_address):
170173
if self.options.autoReload:
171174
import ScanView
172175
self.RequestHandlerClass = reload(ScanView).ScanViewRequestHandler
173-
BaseHTTPServer.HTTPServer.finish_request(self, request, client_address)
176+
HTTPServer.finish_request(self, request, client_address)
174177

175178
def handle_error(self, request, client_address):
176179
# Ignore socket errors
@@ -179,7 +182,7 @@ def handle_error(self, request, client_address):
179182
if self.options.debug > 1:
180183
print >>sys.stderr, "%s: SERVER: ignored socket error." % (sys.argv[0],)
181184
return
182-
BaseHTTPServer.HTTPServer.handle_error(self, request, client_address)
185+
HTTPServer.handle_error(self, request, client_address)
183186

184187
# Borrowed from Quixote, with simplifications.
185188
def parse_query(qs, fields=None):
@@ -200,19 +203,19 @@ def parse_query(qs, fields=None):
200203
item.append(value)
201204
return fields
202205

203-
class ScanViewRequestHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):
206+
class ScanViewRequestHandler(SimpleHTTPRequestHandler):
204207
server_version = "ScanViewServer/" + __version__
205208
dynamic_mtime = time.time()
206209

207210
def do_HEAD(self):
208211
try:
209-
SimpleHTTPServer.SimpleHTTPRequestHandler.do_HEAD(self)
212+
SimpleHTTPRequestHandler.do_HEAD(self)
210213
except Exception as e:
211214
self.handle_exception(e)
212215

213216
def do_GET(self):
214217
try:
215-
SimpleHTTPServer.SimpleHTTPRequestHandler.do_GET(self)
218+
SimpleHTTPRequestHandler.do_GET(self)
216219
except Exception as e:
217220
self.handle_exception(e)
218221

0 commit comments

Comments
 (0)