[Python-checkins] python/dist/src/Mac/scripts gensuitemodule.py,1.31,1.32
jackjansen@users.sourceforge.net
jackjansen@users.sourceforge.net
Fri, 21 Mar 2003 08:28:17 -0800
Update of /cvsroot/python/python/dist/src/Mac/scripts
In directory sc8-pr-cvs1:/tmp/cvs-serv6872
Modified Files:
gensuitemodule.py
Log Message:
Got rid of the "enum not found" interaction, and added code to allow
overriding the creator signature.
Index: gensuitemodule.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Mac/scripts/gensuitemodule.py,v
retrieving revision 1.31
retrieving revision 1.32
diff -C2 -d -r1.31 -r1.32
*** gensuitemodule.py 21 Mar 2003 16:07:39 -0000 1.31
--- gensuitemodule.py 21 Mar 2003 16:28:09 -0000 1.32
***************
*** 34,37 ****
--- 34,38 ----
--base package Use another base package in stead of default StdSuites (-b)
--edit old=new Edit suite names, use empty new to skip a suite (-e)
+ --creator code Set creator code for package (-c)
""")
sys.exit(1)
***************
*** 39,44 ****
def main():
if len(sys.argv) > 1:
! SHORTOPTS = "rb:o:e:"
! LONGOPTS = ("resource", "base=", "output=", "edit=")
try:
opts, args = getopt.getopt(sys.argv[1:], SHORTOPTS, LONGOPTS)
--- 40,45 ----
def main():
if len(sys.argv) > 1:
! SHORTOPTS = "rb:o:e:c:"
! LONGOPTS = ("resource", "base=", "output=", "edit=", "creator=")
try:
opts, args = getopt.getopt(sys.argv[1:], SHORTOPTS, LONGOPTS)
***************
*** 50,53 ****
--- 51,55 ----
output = None
edit_modnames = []
+ creatorsignature = None
for o, a in opts:
***************
*** 63,66 ****
--- 65,74 ----
usage()
edit_modnames.append(split)
+ if o in ('-c', '--creator'):
+ if len(a) != 4:
+ sys.stderr.write("creator must be 4-char string\n")
+ sys.exit(1)
+ creatorsignature = a
+
if output and len(args) > 1:
***************
*** 70,74 ****
for filename in args:
process_func(filename, output=output, basepkgname=basepkgname,
! edit_modnames=edit_modnames)
else:
# The dialogOptionFlags below allows selection of .app bundles.
--- 78,82 ----
for filename in args:
process_func(filename, output=output, basepkgname=basepkgname,
! edit_modnames=edit_modnames, creatorsignature=creatorsignature)
else:
# The dialogOptionFlags below allows selection of .app bundles.
***************
*** 85,89 ****
processfile_fromresource(filename)
! def processfile_fromresource(fullname, output=None, basepkgname=None, edit_modnames=None):
"""Process all resources in a single file"""
cur = CurResFile()
--- 93,98 ----
processfile_fromresource(filename)
! def processfile_fromresource(fullname, output=None, basepkgname=None,
! edit_modnames=None, creatorsignature=None):
"""Process all resources in a single file"""
cur = CurResFile()
***************
*** 113,119 ****
UseResFile(cur)
compileaetelist(aetelist, fullname, output=output,
! basepkgname=basepkgname, edit_modnames=edit_modnames)
! def processfile(fullname, output=None, basepkgname=None, edit_modnames=None):
"""Ask an application for its terminology and process that"""
aedescobj, launched = OSATerminology.GetSysTerminology(fullname)
--- 122,130 ----
UseResFile(cur)
compileaetelist(aetelist, fullname, output=output,
! basepkgname=basepkgname, edit_modnames=edit_modnames,
! creatorsignature=creatorsignature)
! def processfile(fullname, output=None, basepkgname=None,
! edit_modnames=None, creatorsignature=None):
"""Ask an application for its terminology and process that"""
aedescobj, launched = OSATerminology.GetSysTerminology(fullname)
***************
*** 129,138 ****
aedata = raw[0]
aete = decode(aedata.data)
! compileaete(aete, None, fullname, output=output, basepkgname=basepkgname)
! def compileaetelist(aetelist, fullname, output=None, basepkgname=None, edit_modnames=None):
for aete, resinfo in aetelist:
compileaete(aete, resinfo, fullname, output=output,
! basepkgname=basepkgname, edit_modnames=edit_modnames)
def decode(data):
--- 140,152 ----
aedata = raw[0]
aete = decode(aedata.data)
! compileaete(aete, None, fullname, output=output, basepkgname=basepkgname,
! creatorsignature=creatorsignature)
! def compileaetelist(aetelist, fullname, output=None, basepkgname=None,
! edit_modnames=None, creatorsignature=None):
for aete, resinfo in aetelist:
compileaete(aete, resinfo, fullname, output=output,
! basepkgname=basepkgname, edit_modnames=edit_modnames,
! creatorsignature=creatorsignature)
def decode(data):
***************
*** 299,307 ****
]
! def compileaete(aete, resinfo, fname, output=None, basepkgname=None, edit_modnames=None):
"""Generate code for a full aete resource. fname passed for doc purposes"""
[version, language, script, suites] = aete
major, minor = divmod(version, 256)
! creatorsignature, dummy = MacOS.GetCreatorAndType(fname)
packagename = identify(os.path.splitext(os.path.basename(fname))[0])
if language:
--- 313,323 ----
]
! def compileaete(aete, resinfo, fname, output=None, basepkgname=None,
! edit_modnames=None, creatorsignature=None):
"""Generate code for a full aete resource. fname passed for doc purposes"""
[version, language, script, suites] = aete
major, minor = divmod(version, 256)
! if not creatorsignature:
! creatorsignature, dummy = MacOS.GetCreatorAndType(fname)
packagename = identify(os.path.splitext(os.path.basename(fname))[0])
if language:
***************
*** 345,349 ****
allsuites.append(suiteinfo)
for suiteinfo in allsuites:
! compilesuite(suiteinfo, major, minor, language, script, fname, basepackage, allprecompinfo)
initfilename = os.path.join(output, '__init__.py')
fp = open(initfilename, 'w')
--- 361,366 ----
allsuites.append(suiteinfo)
for suiteinfo in allsuites:
! compilesuite(suiteinfo, major, minor, language, script, fname, basepackage,
! allprecompinfo, interact=(edit_modnames is None))
initfilename = os.path.join(output, '__init__.py')
fp = open(initfilename, 'w')
***************
*** 444,448 ****
findenumsinevent(event, enumsneeded)
! objc = ObjectCompiler(None, basemodule)
for cls in classes:
objc.compileclass(cls)
--- 461,465 ----
findenumsinevent(event, enumsneeded)
! objc = ObjectCompiler(None, basemodule, interact=(edit_modnames is None))
for cls in classes:
objc.compileclass(cls)
***************
*** 463,467 ****
return code, suite, pathname, modname, precompinfo
! def compilesuite((suite, pathname, modname), major, minor, language, script, fname, basepackage, precompinfo):
"""Generate code for a single suite"""
[name, desc, code, level, version, events, classes, comps, enums] = suite
--- 480,485 ----
return code, suite, pathname, modname, precompinfo
! def compilesuite((suite, pathname, modname), major, minor, language, script,
! fname, basepackage, precompinfo, interact=1):
"""Generate code for a single suite"""
[name, desc, code, level, version, events, classes, comps, enums] = suite
***************
*** 501,505 ****
fp.write("\tpass\n\n")
! objc = ObjectCompiler(fp, basemodule, precompinfo)
for cls in classes:
objc.compileclass(cls)
--- 519,523 ----
fp.write("\tpass\n\n")
! objc = ObjectCompiler(fp, basemodule, precompinfo, interact=interact)
for cls in classes:
objc.compileclass(cls)
***************
*** 655,659 ****
class CodeNameMapper:
! def __init__(self):
self.code2name = {
"property" : {},
--- 673,677 ----
class CodeNameMapper:
! def __init__(self, interact=1):
self.code2name = {
"property" : {},
***************
*** 670,673 ****
--- 688,692 ----
self.modulename = None
self.star_imported = 0
+ self.can_interact = interact
def addnamecode(self, type, name, code):
***************
*** 713,720 ****
class ObjectCompiler:
! def __init__(self, fp, basesuite=None, othernamemappers=None):
self.fp = fp
self.basesuite = basesuite
! self.namemappers = [CodeNameMapper()]
if othernamemappers:
self.othernamemappers = othernamemappers[:]
--- 732,740 ----
class ObjectCompiler:
! def __init__(self, fp, basesuite=None, othernamemappers=None, interact=1):
self.fp = fp
self.basesuite = basesuite
! self.can_interact = interact
! self.namemappers = [CodeNameMapper(self.can_interact)]
if othernamemappers:
self.othernamemappers = othernamemappers[:]
***************
*** 722,726 ****
self.othernamemappers = []
if basesuite:
! basemapper = CodeNameMapper()
basemapper.addmodule(basesuite, '', 1)
self.namemappers.append(basemapper)
--- 742,746 ----
self.othernamemappers = []
if basesuite:
! basemapper = CodeNameMapper(self.can_interact)
basemapper.addmodule(basesuite, '', 1)
self.namemappers.append(basemapper)
***************
*** 756,764 ****
m = None
if not m: return None, None, None
! mapper = CodeNameMapper()
mapper.addmodule(m, m.__name__, 0)
self.namemappers.append(mapper)
def askdefinitionmodule(self, type, code):
path = EasyDialogs.AskFileForSave(message='Where is %s %s declared?'%(type, code))
if not path: return
--- 776,787 ----
m = None
if not m: return None, None, None
! mapper = CodeNameMapper(self.can_interact)
mapper.addmodule(m, m.__name__, 0)
self.namemappers.append(mapper)
def askdefinitionmodule(self, type, code):
+ if not self.can_interact:
+ print "** No definition for %s '%s' found" % (type, code)
+ return None
path = EasyDialogs.AskFileForSave(message='Where is %s %s declared?'%(type, code))
if not path: return