Mercurial > cpython-lru_cache-weakref
view Mac/scripts/BuildApplet.py @ 25838:8540887bcec6 2.2
Backport of 2.183:
Fix memory leak in add_subclass() found by NealN with valgrind.
| author | Guido van Rossum <guido@python.org> |
|---|---|
| date | Fri, 18 Oct 2002 13:42:21 +0000 |
| parents | ca1e5bc5209d |
| children | 2d67a0ba9020 |
line wrap: on
line source
"""Create an applet from a Python script. This puts up a dialog asking for a Python source file ('TEXT'). The output is a file with the same name but its ".py" suffix dropped. It is created by copying an applet template and then adding a 'PYC ' resource named __main__ containing the compiled, marshalled script. """ import sys sys.stdout = sys.stderr import os import macfs import MacOS import EasyDialogs import buildtools def main(): try: buildapplet() except buildtools.BuildError, detail: EasyDialogs.Message(detail) def buildapplet(): buildtools.DEBUG=1 # Find the template # (there's no point in proceeding if we can't find it) template = buildtools.findtemplate() # Ask for source text if not specified in sys.argv[1:] if not sys.argv[1:]: srcfss, ok = macfs.PromptGetFile('Select Python source or applet:', 'TEXT', 'APPL') if not ok: return filename = srcfss.as_pathname() tp, tf = os.path.split(filename) if tf[-3:] == '.py': tf = tf[:-3] else: tf = tf + '.applet' dstfss, ok = macfs.StandardPutFile('Save application as:', tf) if not ok: return dstfilename = dstfss.as_pathname() cr, tp = MacOS.GetCreatorAndType(filename) if tp == 'APPL': buildtools.update(template, filename, dstfilename) else: buildtools.process(template, filename, dstfilename, 1) else: # Loop over all files to be processed for filename in sys.argv[1:]: cr, tp = MacOS.GetCreatorAndType(filename) if tp == 'APPL': buildtools.update(template, filename, '') else: buildtools.process(template, filename, '', 1) if __name__ == '__main__': main()
