Commit a330a5d2 authored by Jack Jansen's avatar Jack Jansen

- If an OSA identifier is a Python reserved word we now append an _

  in stead of prepending it, which messes up "import * from".
- A few ascii()s added again.
- Changed the getbaseclasses a little, but it still isn't perfect.
parent 18b80794
...@@ -295,15 +295,17 @@ def compileaete(aete, resinfo, fname): ...@@ -295,15 +295,17 @@ def compileaete(aete, resinfo, fname):
# Generate property dicts and element dicts for all types declared in this module # Generate property dicts and element dicts for all types declared in this module
fp.write("def getbaseclasses(v):\n") fp.write("def getbaseclasses(v):\n")
fp.write("\tif hasattr(v, '_superclassnames'):\n") fp.write("\tif hasattr(v, '_superclassnames') and v._superclassnames:\n")
fp.write("\t\tv._propdict = {}\n") fp.write("\t\tv._propdict = {}\n")
fp.write("\t\tv._elemdict = {}\n") fp.write("\t\tv._elemdict = {}\n")
fp.write("\t\tfor superclass in v._superclassnames:\n") fp.write("\t\tfor superclass in v._superclassnames:\n")
fp.write("\t\t\tgetbaseclasses(superclass)\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._propdict.update(getattr(eval(superclass), '_privpropdict', {}))\n")
fp.write("\t\t\tv._elemdict.update(getattr(eval(superclass), '_privelemdict'))\n") fp.write("\t\t\tv._elemdict.update(getattr(eval(superclass), '_privelemdict', {}))\n")
fp.write("\t\tv._propdict.update(v._privpropdict)\n") fp.write("\t\tv._propdict.update(v._privpropdict)\n")
fp.write("\t\tv._elemdict.update(v._privelemdict)\n") fp.write("\t\tv._elemdict.update(v._privelemdict)\n")
fp.write("\t\tv._superclassnames = None\n")
fp.write("\n")
fp.write("import StdSuites\n") fp.write("import StdSuites\n")
if allprecompinfo: if allprecompinfo:
fp.write("\n#\n# Set property and element dictionaries now that all classes have been defined\n#\n") fp.write("\n#\n# Set property and element dictionaries now that all classes have been defined\n#\n")
...@@ -474,7 +476,7 @@ def compileevent(fp, event, enumsneeded): ...@@ -474,7 +476,7 @@ def compileevent(fp, event, enumsneeded):
# Generate doc string (important, since it may be the only # Generate doc string (important, since it may be the only
# available documentation, due to our name-remaping) # available documentation, due to our name-remaping)
# #
fp.write('\t\t"""%s: %s\n'%(name, desc)) fp.write('\t\t"""%s: %s\n'%(ascii(name), ascii(desc)))
if has_arg: if has_arg:
fp.write("\t\tRequired argument: %s\n"%getdatadoc(accepts)) fp.write("\t\tRequired argument: %s\n"%getdatadoc(accepts))
elif opt_arg: elif opt_arg:
...@@ -800,7 +802,7 @@ class ObjectCompiler: ...@@ -800,7 +802,7 @@ class ObjectCompiler:
def compileenumerator(self, item): def compileenumerator(self, item):
[name, code, desc] = item [name, code, desc] = item
self.fp.write("\t%s : %s,\t# %s\n" % (`identify(name)`, `code`, desc)) self.fp.write("\t%s : %s,\t# %s\n" % (`identify(name)`, `code`, ascii(desc)))
def checkforenum(self, enum): def checkforenum(self, enum):
"""This enum code is used by an event. Make sure it's available""" """This enum code is used by an event. Make sure it's available"""
...@@ -887,7 +889,7 @@ def identify(str): ...@@ -887,7 +889,7 @@ def identify(str):
- prepend _ if the result is a python keyword - prepend _ if the result is a python keyword
""" """
if not str: if not str:
return "_empty_ae_name" return "empty_ae_name_"
rv = '' rv = ''
ok = string.ascii_letters + '_' ok = string.ascii_letters + '_'
ok2 = ok + string.digits ok2 = ok + string.digits
...@@ -900,7 +902,7 @@ def identify(str): ...@@ -900,7 +902,7 @@ def identify(str):
rv = rv + '_%02.2x_'%ord(c) rv = rv + '_%02.2x_'%ord(c)
ok = ok2 ok = ok2
if keyword.iskeyword(rv): if keyword.iskeyword(rv):
rv = '_' + rv rv = rv + '_'
return rv return rv
# Call the main program # Call the main program
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment