From 7203db44a73b0813bc194c1018bf489e8073cd9d Mon Sep 17 00:00:00 2001 From: Jan Safranek Date: Mon, 25 Mar 2013 16:20:00 +0100 Subject: Check for qualifiers, properties without qualifiers crash here. Konkretmof seem to use qualifiers=None instead of qualifiers={}. --- tools/openlmi-doc-class2rst | 19 +++++++++++-------- tools/openlmi-doc-class2uml | 2 +- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/tools/openlmi-doc-class2rst b/tools/openlmi-doc-class2rst index 34d847d..d93cd11 100644 --- a/tools/openlmi-doc-class2rst +++ b/tools/openlmi-doc-class2rst @@ -110,9 +110,9 @@ class HtmlExporter(object): for p in params: param_indent = " "*8 direction = set() - if p.qualifiers.has_key("out"): + if p.qualifiers and p.qualifiers.has_key("out"): direction.add("*OUT*") - if p.qualifiers.has_key("in"): + if p.qualifiers and p.qualifiers.has_key("in"): if p.qualifiers.get("in").params.value(): direction.add("*IN*") if not direction: @@ -120,7 +120,8 @@ class HtmlExporter(object): direction = ", ".join(sorted(direction)) print >>self.file, param_indent + "%s %s **%s**" % (direction, self.display_type(p), p.name) - self.print_qualifiers(p.qualifiers, param_indent+ " "*4) + if p.qualifiers: + self.print_qualifiers(p.qualifiers, param_indent+ " "*4) print >>self.file, param_indent print >>self.file, function_indent @@ -186,7 +187,7 @@ class HtmlExporter(object): print >>self.file, "" for cls in class_hiearchy: for prop in cls.properties().values(): - if prop.qualifiers.has_key('key'): + if prop.qualifiers and prop.qualifiers.has_key('key'): src = self.source_class(cls, prop) link = self.link(src, prop.name) print >>self.file, "| :ref:`%s <%s>`" % (prop.name, link) @@ -229,8 +230,9 @@ class HtmlExporter(object): prop.cls = cls prop.is_local = cls == c prop.known_qualifiers = {} - for q in known_qualifiers: - prop.known_qualifiers[q] = prop.qualifiers.get(q) + if prop.qualifiers: + for q in known_qualifiers: + prop.known_qualifiers[q] = prop.qualifiers.get(q) else: inherited_prop = properties[prop.name] for q in known_qualifiers: @@ -242,8 +244,9 @@ class HtmlExporter(object): meth.cls = cls meth.is_local = cls.name == c.name meth.known_qualifiers = {} - for q in known_qualifiers: - meth.known_qualifiers[q] = meth.qualifiers.get(q) + if meth.qualifiers: + for q in known_qualifiers: + meth.known_qualifiers[q] = meth.qualifiers.get(q) else: inherited_meth = methods[meth.name] for q in known_qualifiers: diff --git a/tools/openlmi-doc-class2uml b/tools/openlmi-doc-class2uml index 840ecfd..8d524f5 100644 --- a/tools/openlmi-doc-class2uml +++ b/tools/openlmi-doc-class2uml @@ -96,7 +96,7 @@ class UmlExporter(object): c = self.classes.pop() cl = self.get_class(c) - if noassoc and cl.qualifiers.get("Association", False): + if noassoc and cl.qualifiers.get("Association"): continue if shrink and shrink.match(c): -- cgit