summaryrefslogtreecommitdiffstatshomepage
path: root/scripts/minimaws
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/minimaws')
-rw-r--r--scripts/minimaws/lib/__init__.py2
-rw-r--r--scripts/minimaws/lib/assets/common.js1
-rw-r--r--scripts/minimaws/lib/assets/digest.js1
-rw-r--r--scripts/minimaws/lib/assets/machine.js1
-rw-r--r--scripts/minimaws/lib/assets/romident.js1
-rw-r--r--scripts/minimaws/lib/auxverbs.py4
-rw-r--r--scripts/minimaws/lib/dbaccess.py20
-rw-r--r--scripts/minimaws/lib/htmltmpl.py2
-rw-r--r--scripts/minimaws/lib/lxparse.py26
-rw-r--r--scripts/minimaws/lib/wsgiserve.py92
-rwxr-xr-xscripts/minimaws/minimaws.py2
11 files changed, 72 insertions, 80 deletions
diff --git a/scripts/minimaws/lib/__init__.py b/scripts/minimaws/lib/__init__.py
index d89cb7f81ba..a8a22f4dbfe 100644
--- a/scripts/minimaws/lib/__init__.py
+++ b/scripts/minimaws/lib/__init__.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
##
## license:BSD-3-Clause
## copyright-holders:Vas Crabb
diff --git a/scripts/minimaws/lib/assets/common.js b/scripts/minimaws/lib/assets/common.js
index 7439aaa5a21..3b10b785fdd 100644
--- a/scripts/minimaws/lib/assets/common.js
+++ b/scripts/minimaws/lib/assets/common.js
@@ -1,5 +1,6 @@
// license:BSD-3-Clause
// copyright-holders:Vas Crabb
+'use strict';
function make_collapsible(heading, section)
{
diff --git a/scripts/minimaws/lib/assets/digest.js b/scripts/minimaws/lib/assets/digest.js
index 6739d1440d9..91285ff529f 100644
--- a/scripts/minimaws/lib/assets/digest.js
+++ b/scripts/minimaws/lib/assets/digest.js
@@ -1,5 +1,6 @@
// license:BSD-3-Clause
// copyright-holders:Vas Crabb
+'use strict';
function Crc32Digester()
{
diff --git a/scripts/minimaws/lib/assets/machine.js b/scripts/minimaws/lib/assets/machine.js
index b7f600f04d6..b488ae9e9a4 100644
--- a/scripts/minimaws/lib/assets/machine.js
+++ b/scripts/minimaws/lib/assets/machine.js
@@ -1,5 +1,6 @@
// license:BSD-3-Clause
// copyright-holders:Vas Crabb
+'use strict';
var slot_info = Object.create(null);
var bios_sets = Object.create(null);
diff --git a/scripts/minimaws/lib/assets/romident.js b/scripts/minimaws/lib/assets/romident.js
index 599b0674007..892894ced56 100644
--- a/scripts/minimaws/lib/assets/romident.js
+++ b/scripts/minimaws/lib/assets/romident.js
@@ -1,5 +1,6 @@
// license:BSD-3-Clause
// copyright-holders:Vas Crabb
+'use strict';
var matched_names = new Array();
var unmatched_names = new Array();
diff --git a/scripts/minimaws/lib/auxverbs.py b/scripts/minimaws/lib/auxverbs.py
index 50e4dacddd3..f4a4ebbe70c 100644
--- a/scripts/minimaws/lib/auxverbs.py
+++ b/scripts/minimaws/lib/auxverbs.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
##
## license:BSD-3-Clause
## copyright-holders:Vas Crabb
@@ -17,7 +17,7 @@ import zlib
class _Identifier(object):
def __init__(self, dbcurs, **kwargs):
- super(_Identifier, self).__init__(**kwargs)
+ super().__init__(**kwargs)
self.dbcurs = dbcurs
self.shortnamewidth = 0
self.pathwidth = 0
diff --git a/scripts/minimaws/lib/dbaccess.py b/scripts/minimaws/lib/dbaccess.py
index 3cfbec0c508..74c1cdb6d1e 100644
--- a/scripts/minimaws/lib/dbaccess.py
+++ b/scripts/minimaws/lib/dbaccess.py
@@ -1,13 +1,10 @@
-#!/usr/bin/python
+#!/usr/bin/python3
##
## license:BSD-3-Clause
## copyright-holders:Vas Crabb
import sqlite3
-import sys
-
-if sys.version_info >= (3, 4):
- import urllib.request
+import urllib.request
class SchemaQueries(object):
@@ -574,7 +571,7 @@ class UpdateQueries(object):
class QueryCursor(object):
def __init__(self, dbconn, **kwargs):
- super(QueryCursor, self).__init__(**kwargs)
+ super().__init__(**kwargs)
self.dbcurs = dbconn.cursor()
def close(self):
@@ -916,7 +913,7 @@ class QueryCursor(object):
class UpdateCursor(object):
def __init__(self, dbconn, **kwargs):
- super(UpdateCursor, self).__init__(**kwargs)
+ super().__init__(**kwargs)
self.dbcurs = dbconn.cursor()
def close(self):
@@ -1066,11 +1063,8 @@ class UpdateCursor(object):
class QueryConnection(object):
def __init__(self, database, **kwargs):
- super(QueryConnection, self).__init__(**kwargs)
- if sys.version_info >= (3, 4):
- self.dbconn = sqlite3.connect('file:' + urllib.request.pathname2url(database) + '?mode=ro', uri=True, check_same_thread=False)
- else:
- self.dbconn = sqlite3.connect(database, check_same_thread=False)
+ super().__init__(**kwargs)
+ self.dbconn = sqlite3.connect('file:' + urllib.request.pathname2url(database) + '?mode=ro', uri=True, check_same_thread=False)
self.dbconn.row_factory = sqlite3.Row
self.dbconn.execute('PRAGMA foreign_keys = ON')
@@ -1083,7 +1077,7 @@ class QueryConnection(object):
class UpdateConnection(object):
def __init__(self, database, **kwargs):
- super(UpdateConnection, self).__init__(**kwargs)
+ super().__init__(**kwargs)
self.dbconn = sqlite3.connect(database)
self.dbconn.execute('PRAGMA page_size = 4096')
self.dbconn.execute('PRAGMA foreign_keys = ON')
diff --git a/scripts/minimaws/lib/htmltmpl.py b/scripts/minimaws/lib/htmltmpl.py
index 62e1bbcf1ea..c6489e27349 100644
--- a/scripts/minimaws/lib/htmltmpl.py
+++ b/scripts/minimaws/lib/htmltmpl.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
##
## license:BSD-3-Clause
## copyright-holders:Vas Crabb
diff --git a/scripts/minimaws/lib/lxparse.py b/scripts/minimaws/lib/lxparse.py
index e773669080d..11c9a15f451 100644
--- a/scripts/minimaws/lib/lxparse.py
+++ b/scripts/minimaws/lib/lxparse.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
##
## license:BSD-3-Clause
## copyright-holders:Vas Crabb
@@ -14,7 +14,7 @@ import xml.sax.saxutils
class ElementHandlerBase(object):
def __init__(self, parent, **kwargs):
- super(ElementHandlerBase, self).__init__(**kwargs)
+ super().__init__(**kwargs)
self.dbconn = parent.dbconn if parent is not None else None
self.locator = parent.locator if parent is not None else None
self.depth = 0
@@ -105,7 +105,7 @@ class ElementHandler(ElementHandlerBase):
class TextAccumulator(ElementHandler):
def __init__(self, parent, **kwargs):
- super(TextAccumulator, self).__init__(parent=parent, **kwargs)
+ super().__init__(parent=parent, **kwargs)
self.text = ''
def mainCharacters(self, content):
@@ -114,7 +114,7 @@ class TextAccumulator(ElementHandler):
class DipSwitchHandler(ElementHandler):
def __init__(self, parent, **kwargs):
- super(DipSwitchHandler, self).__init__(parent=parent, **kwargs)
+ super().__init__(parent=parent, **kwargs)
self.dbcurs = parent.dbcurs
self.machine = parent.id
@@ -138,7 +138,7 @@ class DipSwitchHandler(ElementHandler):
class SlotHandler(ElementHandler):
def __init__(self, parent, **kwargs):
- super(SlotHandler, self).__init__(parent=parent, **kwargs)
+ super().__init__(parent=parent, **kwargs)
self.dbcurs = parent.dbcurs
self.machine = parent.id
@@ -155,7 +155,7 @@ class SlotHandler(ElementHandler):
class RamOptionHandler(TextAccumulator):
def __init__(self, parent, **kwargs):
- super(RamOptionHandler, self).__init__(parent=parent, **kwargs)
+ super().__init__(parent=parent, **kwargs)
self.dbcurs = parent.dbcurs
self.machine = parent.id
@@ -181,7 +181,7 @@ class MachineHandler(ElementHandler):
'ramoption': RamOptionHandler }
def __init__(self, parent, **kwargs):
- super(MachineHandler, self).__init__(parent=parent, **kwargs)
+ super().__init__(parent=parent, **kwargs)
self.dbcurs = self.dbconn.cursor()
def startMainElement(self, name, attrs):
@@ -248,7 +248,7 @@ class MachineHandler(ElementHandler):
class ListXmlHandler(ElementHandler):
def __init__(self, dbconn, **kwargs):
- super(ListXmlHandler, self).__init__(parent=None, **kwargs)
+ super().__init__(parent=None, **kwargs)
self.dbconn = dbconn
def startDocument(self):
@@ -290,7 +290,7 @@ class ListXmlHandler(ElementHandler):
class DataAreaHandler(ElementHandler):
def __init__(self, parent, **kwargs):
- super(DataAreaHandler, self).__init__(parent=parent, **kwargs)
+ super().__init__(parent=parent, **kwargs)
self.dbcurs = parent.dbcurs
self.part = parent.id
@@ -309,7 +309,7 @@ class DataAreaHandler(ElementHandler):
class DiskAreaHandler(ElementHandler):
def __init__(self, parent, **kwargs):
- super(DiskAreaHandler, self).__init__(parent=parent, **kwargs)
+ super().__init__(parent=parent, **kwargs)
self.dbcurs = parent.dbcurs
self.part = parent.id
@@ -330,7 +330,7 @@ class SoftwarePartHandler(ElementHandler):
'diskarea': DiskAreaHandler }
def __init__(self, parent, **kwargs):
- super(SoftwarePartHandler, self).__init__(parent=parent, **kwargs)
+ super().__init__(parent=parent, **kwargs)
self.dbcurs = parent.dbcurs
self.software = parent.id
@@ -356,7 +356,7 @@ class SoftwareHandler(ElementHandler):
'part': SoftwarePartHandler }
def __init__(self, parent, **kwargs):
- super(SoftwareHandler, self).__init__(parent=parent, **kwargs)
+ super().__init__(parent=parent, **kwargs)
self.dbcurs = self.dbconn.cursor()
self.softwarelist = parent.id
@@ -400,7 +400,7 @@ class SoftwareListHandler(ElementHandler):
'software': SoftwareHandler }
def __init__(self, dbconn, **kwargs):
- super(SoftwareListHandler, self).__init__(parent=None, **kwargs)
+ super().__init__(parent=None, **kwargs)
self.dbconn = dbconn
def startDocument(self):
diff --git a/scripts/minimaws/lib/wsgiserve.py b/scripts/minimaws/lib/wsgiserve.py
index 1158528d954..56197407516 100644
--- a/scripts/minimaws/lib/wsgiserve.py
+++ b/scripts/minimaws/lib/wsgiserve.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
##
## license:BSD-3-Clause
## copyright-holders:Vas Crabb
@@ -6,7 +6,7 @@
from . import dbaccess
from . import htmltmpl
-import cgi
+import html
import inspect
import json
import mimetypes
@@ -14,20 +14,14 @@ import os.path
import re
import sys
import urllib
+import urllib.parse
import wsgiref.util
-if hasattr(cgi, 'escape'):
- htmlescape = cgi.escape
-else:
- import html
- htmlescape = html.escape
-
-try:
- import urllib.parse as urlparse
- urlquote = urlparse.quote
-except ImportError:
- import urlparse
- urlquote = urllib.quote
+htmlescape = html.escape
+shiftpath = wsgiref.util.shift_path_info
+urljoin = urllib.parse.urljoin
+urlparsequery = urllib.parse.parse_qs
+urlquote = urllib.parse.quote
class HandlerBase(object):
@@ -45,7 +39,7 @@ class HandlerBase(object):
505: 'HTTP Version Not Supported' }
def __init__(self, app, application_uri, environ, start_response, **kwargs):
- super(HandlerBase, self).__init__(**kwargs)
+ super().__init__(**kwargs)
self.app = app
self.js_escape = app.js_escape
self.application_uri = application_uri
@@ -58,7 +52,7 @@ class HandlerBase(object):
class ErrorPageHandler(HandlerBase):
def __init__(self, code, app, application_uri, environ, start_response, **kwargs):
- super(ErrorPageHandler, self).__init__(app=app, application_uri=application_uri, environ=environ, start_response=start_response, **kwargs)
+ super().__init__(app=app, application_uri=application_uri, environ=environ, start_response=start_response, **kwargs)
self.code = code
self.start_response('%d %s' % (self.code, self.STATUS_MESSAGE[code]), [('Content-type', 'text/html; charset=utf-8'), ('Cache-Control', 'public, max-age=3600')])
@@ -70,9 +64,9 @@ class AssetHandler(HandlerBase):
EXTENSIONMAP = { '.js': 'application/javascript', '.svg': 'image/svg+xml' }
def __init__(self, directory, app, application_uri, environ, start_response, **kwargs):
- super(AssetHandler, self).__init__(app=app, application_uri=application_uri, environ=environ, start_response=start_response, **kwargs)
+ super().__init__(app=app, application_uri=application_uri, environ=environ, start_response=start_response, **kwargs)
self.directory = directory
- self.asset = wsgiref.util.shift_path_info(environ)
+ self.asset = shiftpath(environ)
def __iter__(self):
if not self.asset:
@@ -105,20 +99,20 @@ class AssetHandler(HandlerBase):
class QueryPageHandler(HandlerBase):
def __init__(self, app, application_uri, environ, start_response, **kwargs):
- super(QueryPageHandler, self).__init__(app=app, application_uri=application_uri, environ=environ, start_response=start_response, **kwargs)
+ super().__init__(app=app, application_uri=application_uri, environ=environ, start_response=start_response, **kwargs)
self.dbcurs = app.dbconn.cursor()
def machine_href(self, shortname):
- return htmlescape(urlparse.urljoin(self.application_uri, 'machine/%s' % (urlquote(shortname), )), True)
+ return htmlescape(urljoin(self.application_uri, 'machine/%s' % (urlquote(shortname), )), True)
def sourcefile_href(self, sourcefile):
- return htmlescape(urlparse.urljoin(self.application_uri, 'sourcefile/%s' % (urlquote(sourcefile), )), True)
+ return htmlescape(urljoin(self.application_uri, 'sourcefile/%s' % (urlquote(sourcefile), )), True)
def softwarelist_href(self, softwarelist):
- return htmlescape(urlparse.urljoin(self.application_uri, 'softwarelist/%s' % (urlquote(softwarelist), )), True)
+ return htmlescape(urljoin(self.application_uri, 'softwarelist/%s' % (urlquote(softwarelist), )), True)
def software_href(self, softwarelist, software):
- return htmlescape(urlparse.urljoin(self.application_uri, 'softwarelist/%s/%s' % (urlquote(softwarelist), urlquote(software))), True)
+ return htmlescape(urljoin(self.application_uri, 'softwarelist/%s/%s' % (urlquote(softwarelist), urlquote(software))), True)
def bios_data(self, machine):
result = { }
@@ -197,8 +191,8 @@ class QueryPageHandler(HandlerBase):
class MachineRpcHandlerBase(QueryPageHandler):
def __init__(self, app, application_uri, environ, start_response, **kwargs):
- super(MachineRpcHandlerBase, self).__init__(app=app, application_uri=application_uri, environ=environ, start_response=start_response, **kwargs)
- self.shortname = wsgiref.util.shift_path_info(environ)
+ super().__init__(app=app, application_uri=application_uri, environ=environ, start_response=start_response, **kwargs)
+ self.shortname = shiftpath(environ)
def __iter__(self):
if not self.shortname:
@@ -222,8 +216,8 @@ class MachineRpcHandlerBase(QueryPageHandler):
class MachineHandler(QueryPageHandler):
def __init__(self, app, application_uri, environ, start_response, **kwargs):
- super(MachineHandler, self).__init__(app=app, application_uri=application_uri, environ=environ, start_response=start_response, **kwargs)
- self.shortname = wsgiref.util.shift_path_info(environ)
+ super().__init__(app=app, application_uri=application_uri, environ=environ, start_response=start_response, **kwargs)
+ self.shortname = shiftpath(environ)
def __iter__(self):
if not self.shortname:
@@ -250,7 +244,7 @@ class MachineHandler(QueryPageHandler):
description = machine_info['description']
yield htmltmpl.MACHINE_PROLOGUE.substitute(
app=self.js_escape(htmlescape(self.application_uri, True)),
- assets=self.js_escape(htmlescape(urlparse.urljoin(self.application_uri, 'static'), True)),
+ assets=self.js_escape(htmlescape(urljoin(self.application_uri, 'static'), True)),
sourcehref=self.sourcefile_href(machine_info['sourcefile']),
description=htmlescape(description),
shortname=htmlescape(self.shortname),
@@ -470,7 +464,7 @@ class MachineHandler(QueryPageHandler):
class SourceFileHandler(QueryPageHandler):
def __init__(self, app, application_uri, environ, start_response, **kwargs):
- super(SourceFileHandler, self).__init__(app=app, application_uri=application_uri, environ=environ, start_response=start_response, **kwargs)
+ super().__init__(app=app, application_uri=application_uri, environ=environ, start_response=start_response, **kwargs)
def __iter__(self):
self.filename = self.environ['PATH_INFO']
@@ -514,7 +508,7 @@ class SourceFileHandler(QueryPageHandler):
heading = self.linked_title(pattern)
title = 'Source Files: ' + htmlescape(pattern)
yield htmltmpl.SOURCEFILE_LIST_PROLOGUE.substitute(
- assets=htmlescape(urlparse.urljoin(self.application_uri, 'static'), True),
+ assets=htmlescape(urljoin(self.application_uri, 'static'), True),
title=title,
heading=heading).encode('utf-8')
for filename, machines in self.dbcurs.get_sourcefiles(pattern):
@@ -525,7 +519,7 @@ class SourceFileHandler(QueryPageHandler):
def sourcefile_page(self, id):
yield htmltmpl.SOURCEFILE_PROLOGUE.substitute(
- assets=htmlescape(urlparse.urljoin(self.application_uri, 'static'), True),
+ assets=htmlescape(urljoin(self.application_uri, 'static'), True),
filename=htmlescape(self.filename),
title=self.linked_title(self.filename)).encode('utf-8')
@@ -558,13 +552,13 @@ class SourceFileHandler(QueryPageHandler):
parts = filename.split('/')
final = parts[-1]
del parts[-1]
- uri = urlparse.urljoin(self.application_uri, 'sourcefile')
+ uri = urljoin(self.application_uri, 'sourcefile')
title = ''
for part in parts:
- uri = urlparse.urljoin(uri + '/', urlquote(part))
+ uri = urljoin(uri + '/', urlquote(part))
title += '<a href="{0}">{1}</a>/'.format(htmlescape(uri, True), htmlescape(part))
if linkfinal:
- uri = urlparse.urljoin(uri + '/', urlquote(final))
+ uri = urljoin(uri + '/', urlquote(final))
return title + '<a href="{0}">{1}</a>'.format(htmlescape(uri, True), htmlescape(final))
else:
return title + final
@@ -583,9 +577,9 @@ class SourceFileHandler(QueryPageHandler):
class SoftwareListHandler(QueryPageHandler):
def __init__(self, app, application_uri, environ, start_response, **kwargs):
- super(SoftwareListHandler, self).__init__(app=app, application_uri=application_uri, environ=environ, start_response=start_response, **kwargs)
- self.shortname = wsgiref.util.shift_path_info(environ)
- self.software = wsgiref.util.shift_path_info(environ)
+ super().__init__(app=app, application_uri=application_uri, environ=environ, start_response=start_response, **kwargs)
+ self.shortname = shiftpath(environ)
+ self.software = shiftpath(environ)
def __iter__(self):
if self.environ['PATH_INFO']:
@@ -627,7 +621,7 @@ class SoftwareListHandler(QueryPageHandler):
else:
title = heading = 'Software Lists: ' + htmlescape(pattern)
yield htmltmpl.SOFTWARELIST_LIST_PROLOGUE.substitute(
- assets=htmlescape(urlparse.urljoin(self.application_uri, 'static'), True),
+ assets=htmlescape(urljoin(self.application_uri, 'static'), True),
title=title,
heading=heading).encode('utf-8')
for shortname, description, total, supported, partiallysupported, unsupported in self.dbcurs.get_softwarelists(pattern):
@@ -649,7 +643,7 @@ class SoftwareListHandler(QueryPageHandler):
title = 'Software List: %s (%s): %s' % (htmlescape(softwarelist_info['description']), htmlescape(softwarelist_info['shortname']), htmlescape(pattern))
heading = '<a href="%s">%s</a>: %s' % (self.softwarelist_href(softwarelist_info['shortname']), htmlescape(softwarelist_info['description']), htmlescape(pattern))
yield htmltmpl.SOFTWARELIST_PROLOGUE.substitute(
- assets=htmlescape(urlparse.urljoin(self.application_uri, 'static'), True),
+ assets=htmlescape(urljoin(self.application_uri, 'static'), True),
title=title,
heading=heading,
shortname=htmlescape(softwarelist_info['shortname']),
@@ -707,7 +701,7 @@ class SoftwareListHandler(QueryPageHandler):
def software_page(self, software_info):
yield htmltmpl.SOFTWARE_PROLOGUE.substitute(
- assets=htmlescape(urlparse.urljoin(self.application_uri, 'static'), True),
+ assets=htmlescape(urljoin(self.application_uri, 'static'), True),
title=htmlescape(software_info['description']),
heading=htmlescape(software_info['description']),
softwarelisthref=self.softwarelist_href(self.shortname),
@@ -794,7 +788,7 @@ class SoftwareListHandler(QueryPageHandler):
class RomIdentHandler(QueryPageHandler):
def __init__(self, app, application_uri, environ, start_response, **kwargs):
- super(QueryPageHandler, self).__init__(app=app, application_uri=application_uri, environ=environ, start_response=start_response, **kwargs)
+ super().__init__(app=app, application_uri=application_uri, environ=environ, start_response=start_response, **kwargs)
self.dbcurs = app.dbconn.cursor()
def __iter__(self):
@@ -811,7 +805,7 @@ class RomIdentHandler(QueryPageHandler):
def form_page(self):
yield htmltmpl.ROMIDENT_PAGE.substitute(
app=self.js_escape(htmlescape(self.application_uri, True)),
- assets=self.js_escape(htmlescape(urlparse.urljoin(self.application_uri, 'static'), True))).encode('utf-8')
+ assets=self.js_escape(htmlescape(urljoin(self.application_uri, 'static'), True))).encode('utf-8')
class BiosRpcHandler(MachineRpcHandlerBase):
@@ -839,7 +833,7 @@ class SoftwareListsRpcHandler(MachineRpcHandlerBase):
class RomDumpsRpcHandler(QueryPageHandler):
def __init__(self, app, application_uri, environ, start_response, **kwargs):
- super(RomDumpsRpcHandler, self).__init__(app=app, application_uri=application_uri, environ=environ, start_response=start_response, **kwargs)
+ super().__init__(app=app, application_uri=application_uri, environ=environ, start_response=start_response, **kwargs)
def __iter__(self):
if self.environ['PATH_INFO']:
@@ -850,7 +844,7 @@ class RomDumpsRpcHandler(QueryPageHandler):
return self.error_page(405)
else:
try:
- args = urlparse.parse_qs(self.environ['QUERY_STRING'], keep_blank_values=True, strict_parsing=True)
+ args = urlparsequery(self.environ['QUERY_STRING'], keep_blank_values=True, strict_parsing=True)
crc = args.get('crc')
sha1 = args.get('sha1')
if (len(args) == 2) and (crc is not None) and (len(crc) == 1) and (sha1 is not None) and (len(sha1) == 1):
@@ -896,7 +890,7 @@ class RomDumpsRpcHandler(QueryPageHandler):
class DiskDumpsRpcHandler(QueryPageHandler):
def __init__(self, app, application_uri, environ, start_response, **kwargs):
- super(DiskDumpsRpcHandler, self).__init__(app=app, application_uri=application_uri, environ=environ, start_response=start_response, **kwargs)
+ super().__init__(app=app, application_uri=application_uri, environ=environ, start_response=start_response, **kwargs)
def __iter__(self):
if self.environ['PATH_INFO']:
@@ -907,7 +901,7 @@ class DiskDumpsRpcHandler(QueryPageHandler):
return self.error_page(405)
else:
try:
- args = urlparse.parse_qs(self.environ['QUERY_STRING'], keep_blank_values=True, strict_parsing=True)
+ args = urlparsequery(self.environ['QUERY_STRING'], keep_blank_values=True, strict_parsing=True)
sha1 = args.get('sha1')
if (len(args) == 1) and (sha1 is not None) and (len(sha1) == 1):
sha1 = sha1[0]
@@ -960,7 +954,7 @@ class MiniMawsApp(object):
'diskdumps': DiskDumpsRpcHandler }
def __init__(self, dbfile, **kwargs):
- super(MiniMawsApp, self).__init__(**kwargs)
+ super().__init__(**kwargs)
self.dbconn = dbaccess.QueryConnection(dbfile)
self.assetsdir = os.path.join(os.path.dirname(inspect.getfile(self.__class__)), 'assets')
if not mimetypes.inited:
@@ -970,7 +964,7 @@ class MiniMawsApp(object):
application_uri = wsgiref.util.application_uri(environ)
if application_uri[-1] != '/':
application_uri += '/'
- module = wsgiref.util.shift_path_info(environ)
+ module = shiftpath(environ)
if module == 'machine':
return MachineHandler(self, application_uri, environ, start_response)
elif module == 'sourcefile':
@@ -982,7 +976,7 @@ class MiniMawsApp(object):
elif module == 'static':
return AssetHandler(self.assetsdir, self, application_uri, environ, start_response)
elif module == 'rpc':
- service = wsgiref.util.shift_path_info(environ)
+ service = shiftpath(environ)
if not service:
return ErrorPageHandler(403, self, application_uri, environ, start_response)
elif service in self.RPC_SERVICES:
diff --git a/scripts/minimaws/minimaws.py b/scripts/minimaws/minimaws.py
index 2d91cdcf1a8..72e1803ed8e 100755
--- a/scripts/minimaws/minimaws.py
+++ b/scripts/minimaws/minimaws.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
##
## license:BSD-3-Clause
## copyright-holders:Vas Crabb