]> granicus.if.org Git - python/commitdiff
Patch 702620 by Donovan Preston: Fix AE inheritance.
authorJack Jansen <jack.jansen@cwi.nl>
Fri, 21 Mar 2003 12:04:19 +0000 (12:04 +0000)
committerJack Jansen <jack.jansen@cwi.nl>
Fri, 21 Mar 2003 12:04:19 +0000 (12:04 +0000)
Lib/plat-mac/aetypes.py
Mac/scripts/gensuitemodule.py

index b091a28ef04056bc276cec79ad9cfc9aa5bd8833..e62e866fd7364c7cccd358294d7cd6735225640b 100644 (file)
@@ -502,11 +502,11 @@ class ComponentItem(SelectableItem):
        # Derived classes *must* set the *class attribute* 'want' to some constant
        # Also, dictionaries _propdict and _elemdict must be set to map property
        # and element names to the correct classes
-       
+
+       _propdict = {}
+       _elemdict = {}
        def __init__(self, which, fr = None):
                SelectableItem.__init__(self, self.want, which, fr)
-               self._propdict = {}
-               self._elemdict = {}
        
        def __repr__(self):
                if not self.fr:
index 1cd2ef69a5c7e8850257439c86ff6db7529dcae3..cd725d4a0b370bb35589d478baf237098f07bc20 100644 (file)
@@ -321,14 +321,15 @@ def compileaete(aete, resinfo, fname):
                fp.write("from %s import *\n"%modname)
        
        # Generate property dicts and element dicts for all types declared in this module
-       fp.write("def getbaseclasses(v):\n")
-       fp.write("\tif hasattr(v, '_superclassnames') and not hasattr(v, '_propdict'):\n")
+       fp.write("\ndef getbaseclasses(v):\n")
+       fp.write("\tif not v._propdict:\n")
        fp.write("\t\tv._propdict = {}\n")
        fp.write("\t\tv._elemdict = {}\n")
-       fp.write("\t\tfor superclass in v._superclassnames:\n")
-##     fp.write("\t\t\tgetbaseclasses(superclass)\n")
-       fp.write("\t\t\tv._propdict.update(getattr(eval(superclass), '_privpropdict', {}))\n")
-       fp.write("\t\t\tv._elemdict.update(getattr(eval(superclass), '_privelemdict', {}))\n")
+       fp.write("\t\tfor superclassname in getattr(v, '_superclassnames', []):\n")
+       fp.write("\t\t\tsuperclass = eval(superclassname)\n")
+       fp.write("\t\t\tgetbaseclasses(superclass)\n")
+       fp.write("\t\t\tv._propdict.update(getattr(superclass, '_propdict', {}))\n")
+       fp.write("\t\t\tv._elemdict.update(getattr(superclass, '_elemdict', {}))\n")
        fp.write("\t\tv._propdict.update(v._privpropdict)\n")
        fp.write("\t\tv._elemdict.update(v._privelemdict)\n")
        fp.write("\n")