[Epydoc-commits] SF.net SVN: epydoc: [1265] trunk/epydoc/src/epydoc/docintrospecter.py
Brought to you by:
edloper
From: <ed...@us...> - 2006-08-21 10:33:59
|
Revision: 1265 Author: edloper Date: 2006-08-21 03:33:55 -0700 (Mon, 21 Aug 2006) ViewCVS: http://svn.sourceforge.net/epydoc/?rev=1265&view=rev Log Message: ----------- - Don't crash if __bases__ doesn't contain a list; instead, issue a warning and ignore the base list. Modified Paths: -------------- trunk/epydoc/src/epydoc/docintrospecter.py Modified: trunk/epydoc/src/epydoc/docintrospecter.py =================================================================== --- trunk/epydoc/src/epydoc/docintrospecter.py 2006-08-21 10:15:08 UTC (rev 1264) +++ trunk/epydoc/src/epydoc/docintrospecter.py 2006-08-21 10:33:55 UTC (rev 1265) @@ -367,17 +367,23 @@ # Record the class's base classes; and add the class to its # base class's subclass lists. if hasattr(cls, '__bases__'): - class_doc.bases = [] - for base in cls.__bases__: - basedoc = introspect_docs(base) - class_doc.bases.append(basedoc) - basedoc.subclasses.append(class_doc) + try: bases = list(cls.__bases__) + except: + bases = None + log.warning("Class '%s' defines __bases__, but it does not " + "contain an iterable; ignoring base list." + % cls.__name__) + if bases is not None: + class_doc.bases = [] + for base in bases: + basedoc = introspect_docs(base) + class_doc.bases.append(basedoc) + basedoc.subclasses.append(class_doc) - bases = list(cls.__bases__) - bases.reverse() - for base in bases: - if hasattr(base, '__dict__'): - base_children.update(base.__dict__) + bases.reverse() + for base in bases: + if hasattr(base, '__dict__'): + base_children.update(base.__dict__) # Record the class's local variables. class_doc.variables = {} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |