Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 381832e

Browse files
committed
Drop xmllib in favor of SAX.
1 parent 1e53fa7 commit 381832e

1 file changed

Lines changed: 30 additions & 21 deletions

File tree

Doc/tools/sgmlconv/latex2esis.py

Lines changed: 30 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -22,16 +22,11 @@
2222
import string
2323
import sys
2424
import UserList
25+
import xml.sax
2526
import xml.sax.saxutils
2627

2728
from types import ListType, StringType, TupleType
2829

29-
try:
30-
from xml.parsers.xmllib import XMLParser
31-
except ImportError:
32-
from xmllib import XMLParser
33-
34-
3530
from esistools import encode
3631

3732

@@ -439,14 +434,11 @@ def __init__(self, type, name=None, optional=0):
439434
self.implied = 0
440435

441436

442-
class TableParser(XMLParser):
443-
def __init__(self, table=None):
444-
if table is None:
445-
table = {}
446-
self.__table = table
447-
self.__current = None
437+
class TableHandler(xml.sax.handler.ContentHandler):
438+
def __init__(self):
439+
self.__table = {}
448440
self.__buffer = ''
449-
XMLParser.__init__(self)
441+
self.__methods = {}
450442

451443
def get_table(self):
452444
for entry in self.__table.values():
@@ -457,6 +449,27 @@ def get_table(self):
457449
entry.has_content = 1
458450
return self.__table
459451

452+
def startElement(self, tag, attrs):
453+
try:
454+
start, end = self.__methods[tag]
455+
except KeyError:
456+
start = getattr(self, "start_" + tag, None)
457+
end = getattr(self, "end_" + tag, None)
458+
self.__methods[tag] = (start, end)
459+
if start:
460+
start(attrs)
461+
462+
def endElement(self, tag):
463+
start, end = self.__methods[tag]
464+
if end:
465+
end()
466+
467+
def endDocument(self):
468+
self.__methods.clear()
469+
470+
def characters(self, data):
471+
self.__buffer += data
472+
460473
def start_environment(self, attrs):
461474
name = attrs["name"]
462475
self.__current = TableEntry(name, environment=1)
@@ -517,15 +530,11 @@ def end_text(self):
517530
p.text = self.__buffer
518531
self.__current.parameters.append(p)
519532

520-
def handle_data(self, data):
521-
self.__buffer = self.__buffer + data
522-
523533

524-
def load_table(fp, table=None):
525-
parser = TableParser(table=table)
526-
parser.feed(fp.read())
527-
parser.close()
528-
return parser.get_table()
534+
def load_table(fp):
535+
ch = TableHandler()
536+
xml.sax.parse(fp, ch)
537+
return ch.get_table()
529538

530539

531540
def main():

0 commit comments

Comments
 (0)