Skip to content

Commit

Permalink
Portable Python script across Python version
Browse files Browse the repository at this point in the history
Workaround naming and hierarchy changes in BaseHTTPServer and SimpleHTTPServer module.

Differential Revision: https://reviews.llvm.org/D55203

llvm-svn: 348184
  • Loading branch information
serge-sans-paille-qb committed Dec 3, 2018
1 parent 6290a73 commit dc7d7e3
Showing 1 changed file with 12 additions and 9 deletions.
21 changes: 12 additions & 9 deletions clang/tools/scan-view/share/ScanView.py
@@ -1,5 +1,8 @@
import BaseHTTPServer
import SimpleHTTPServer
try:
from http.server import HTTPServer, SimpleHTTPRequestHandler
except ImportError:
from BaseHTTPServer import HTTPServer
from SimpleHTTPServer import SimpleHTTPRequestHandler
import os
import sys
import urllib, urlparse
Expand Down Expand Up @@ -112,9 +115,9 @@ def run(self):
print >>s,'</pre>'
self.status = s.getvalue()

class ScanViewServer(BaseHTTPServer.HTTPServer):
class ScanViewServer(HTTPServer):
def __init__(self, address, handler, root, reporters, options):
BaseHTTPServer.HTTPServer.__init__(self, address, handler)
HTTPServer.__init__(self, address, handler)
self.root = root
self.reporters = reporters
self.options = options
Expand Down Expand Up @@ -170,7 +173,7 @@ def finish_request(self, request, client_address):
if self.options.autoReload:
import ScanView
self.RequestHandlerClass = reload(ScanView).ScanViewRequestHandler
BaseHTTPServer.HTTPServer.finish_request(self, request, client_address)
HTTPServer.finish_request(self, request, client_address)

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

# Borrowed from Quixote, with simplifications.
def parse_query(qs, fields=None):
Expand All @@ -200,19 +203,19 @@ def parse_query(qs, fields=None):
item.append(value)
return fields

class ScanViewRequestHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):
class ScanViewRequestHandler(SimpleHTTPRequestHandler):
server_version = "ScanViewServer/" + __version__
dynamic_mtime = time.time()

def do_HEAD(self):
try:
SimpleHTTPServer.SimpleHTTPRequestHandler.do_HEAD(self)
SimpleHTTPRequestHandler.do_HEAD(self)
except Exception as e:
self.handle_exception(e)

def do_GET(self):
try:
SimpleHTTPServer.SimpleHTTPRequestHandler.do_GET(self)
SimpleHTTPRequestHandler.do_GET(self)
except Exception as e:
self.handle_exception(e)

Expand Down

0 comments on commit dc7d7e3

Please sign in to comment.