diff options
Diffstat (limited to 'scripts/minimaws/lib')
-rw-r--r-- | scripts/minimaws/lib/__init__.py | 2 | ||||
-rw-r--r-- | scripts/minimaws/lib/assets/common.js | 1 | ||||
-rw-r--r-- | scripts/minimaws/lib/assets/digest.js | 1 | ||||
-rw-r--r-- | scripts/minimaws/lib/assets/machine.js | 1 | ||||
-rw-r--r-- | scripts/minimaws/lib/assets/romident.js | 1 | ||||
-rw-r--r-- | scripts/minimaws/lib/auxverbs.py | 4 | ||||
-rw-r--r-- | scripts/minimaws/lib/dbaccess.py | 20 | ||||
-rw-r--r-- | scripts/minimaws/lib/htmltmpl.py | 2 | ||||
-rw-r--r-- | scripts/minimaws/lib/lxparse.py | 26 | ||||
-rw-r--r-- | scripts/minimaws/lib/wsgiserve.py | 92 |
10 files changed, 71 insertions, 79 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: |