Skip to content

Commit 1e45663

Browse files
committed
CDRIVER-572: Use only Python standard lib in man2mallard.py.
1 parent f0f1873 commit 1e45663

File tree

1 file changed

+18
-9
lines changed

1 file changed

+18
-9
lines changed

doc/mallard2man.py

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,9 @@
3131
import os
3232
import sys
3333

34-
try:
35-
import codecs
36-
from datetime import datetime
37-
from lxml import etree
38-
except ImportError:
39-
sys.exit(0)
34+
import codecs
35+
from datetime import datetime
36+
from xml.etree import ElementTree
4037

4138
INCLUDE = '{http://www.w3.org/2001/XInclude}include'
4239
TITLE = '{http://projectmallard.org/1.0/}title'
@@ -73,10 +70,22 @@ def __init__(self, inFile, outFile, section):
7370
self.sections = []
7471

7572
def _parse(self):
76-
self.tree = etree.ElementTree()
77-
self.tree.parse(file(self.inFile))
73+
self.tree = ElementTree.ElementTree()
74+
self.tree.parse(open(self.inFile))
7875
self.root = self.tree.getroot()
7976

77+
# Python's standard ElementTree doesn't store an element's parent on
78+
# the element. Make a child->parent map.
79+
try:
80+
iterator = self.tree.iter()
81+
except AttributeError:
82+
# Python 2.6.
83+
iterator = self.tree.getiterator()
84+
self.parent_map = dict((c, p) for p in iterator for c in p)
85+
86+
def _get_parent(self, ele):
87+
return self.parent_map[ele]
88+
8089
def _extract(self):
8190
# Try to extract the title.
8291
for child in self.root.getchildren():
@@ -152,7 +161,7 @@ def _generateSynopsis(self, synopsis):
152161
self._writeCommand('.fi')
153162

154163
def _generateCode(self, code):
155-
if code.getparent().tag == P:
164+
if self._get_parent(code).tag == P:
156165
self._writeCommand('.B %s' % code.text)
157166
else:
158167
self._writeCommand('.nf')

0 commit comments

Comments
 (0)