[Telepathy-commits] [telepathy-spec/master] Compatibility fixes
Davyd Madeley
davyd at madeley.id.au
Mon Mar 23 12:29:32 PDT 2009
---
tools/specparser.py | 26 +++++++++++++++++---------
1 files changed, 17 insertions(+), 9 deletions(-)
diff --git a/tools/specparser.py b/tools/specparser.py
index ac0b7f6..2426226 100644
--- a/tools/specparser.py
+++ b/tools/specparser.py
@@ -91,7 +91,8 @@ class Base(object):
def validate(self):
if self.short_name == '':
- raise UnnamedItem("Node referred to by '%s' has no name" % dom.toxml())
+ raise UnnamedItem("Node %s of %s has no name" % (
+ self.__class__.__name__, self.parent))
def get_type_name(self):
return self.__class__.__name__
@@ -576,17 +577,19 @@ class Flags(EnumLike):
class Spec(object):
def __init__(self, dom):
# build a dictionary of errors in this spec
- errorsnode = dom.getElementsByTagNameNS(XMLNS_TP, 'errors')[0]
- self.errors = build_dict(self, Error,
+ try:
+ errorsnode = dom.getElementsByTagNameNS(XMLNS_TP, 'errors')[0]
+ self.errors = build_dict(self, Error,
errorsnode.getAttribute('namespace'),
errorsnode.getElementsByTagNameNS(XMLNS_TP, 'error'))
+ except IndexError:
+ self.errors = {}
# build a list of generic types
- try:
- self.generic_types = parse_types(self,
- dom.getElementsByTagNameNS(XMLNS_TP, 'generic-types')[0])
- except IndexError:
- self.generic_types = []
+ self.generic_types = reduce (lambda a, b: a + b,
+ map(lambda l: parse_types(self, l),
+ dom.getElementsByTagNameNS(XMLNS_TP, 'generic-types')),
+ [])
# build a list of interfaces in this spec
self.interfaces = build_list(self, Interface, None,
@@ -615,7 +618,12 @@ class Spec(object):
# get some extra bits for the HTML
node = dom.getElementsByTagNameNS(XMLNS_TP, 'spec')[0]
self.title = getText(getChildrenByName(node, XMLNS_TP, 'title')[0])
- self.version = getText(getChildrenByName(node, XMLNS_TP, 'version')[0])
+
+ try:
+ self.version = getText(getChildrenByName(node, XMLNS_TP, 'version')[0])
+ except IndexError:
+ self.version = None
+
self.copyrights = map(getText,
getChildrenByName(node, XMLNS_TP, 'copyright'))
--
1.5.6.5
More information about the telepathy-commits
mailing list