Exemplo n.º 1
0
    def testSetCreatorAndType(self):
        if not os.path.exists('/Developer/Tools/GetFileInfo'):
            return

        try:
            fp = open(test_support.TESTFN, 'w')
            fp.write('\n')
            fp.close()

            MacOS.SetCreatorAndType(test_support.TESTFN, 'ABCD', 'EFGH')

            cr, tp = MacOS.GetCreatorAndType(test_support.TESTFN)
            self.assertEquals(cr, 'ABCD')
            self.assertEquals(tp, 'EFGH')

            data = subprocess.Popen(
                ["/Developer/Tools/GetFileInfo", test_support.TESTFN],
                stdout=subprocess.PIPE).communicate()[0]

            tp = None
            cr = None
            for ln in data.splitlines():
                if ln.startswith('type:'):
                    tp = ln.split()[-1][1:-1]
                if ln.startswith('creator:'):
                    cr = ln.split()[-1][1:-1]

            self.assertEquals(cr, 'ABCD')
            self.assertEquals(tp, 'EFGH')

        finally:
            os.unlink(test_support.TESTFN)
Exemplo n.º 2
0
def getMacCreatorAndType(path):
	"""Returns file creator and file type codes for a path.

	Args:
		path (str): A file path.

	Returns:
		A tuple of two :py:class:`fontTools.py23.Tag` objects, the first
		representing the file creator and the second representing the
		file type.
	"""
	if xattr is not None:
		try:
			finderInfo = xattr.getxattr(path, 'com.apple.FinderInfo')
		except (KeyError, IOError):
			pass
		else:
			fileType = Tag(finderInfo[:4])
			fileCreator = Tag(finderInfo[4:8])
			return fileCreator, fileType
	if MacOS is not None:
		fileCreator, fileType = MacOS.GetCreatorAndType(path)
		if sys.version_info[:2] < (2, 7) and sys.byteorder == "little":
			# work around bug in MacOS.GetCreatorAndType() on intel:
			# http://bugs.python.org/issue1594
			# (fixed with Python 2.7)
			fileCreator = _reverseString(fileCreator)
			fileType = _reverseString(fileType)
		return fileCreator, fileType
	else:
		return None, None
Exemplo n.º 3
0
def getappterminology(fullname, verbose=None):
    """Get application terminology by sending an AppleEvent"""
    # First check that we actually can send AppleEvents
    if not MacOS.WMAvailable():
        raise RuntimeError, "Cannot send AppleEvents, no access to window manager"
    # Next, a workaround for a bug in MacOS 10.2: sending events will hang unless
    # you have created an event loop first.
    import Carbon.Evt
    Carbon.Evt.WaitNextEvent(0, 0)
    if os.path.isdir(fullname):
        # Now get the signature of the application, hoping it is a bundle
        pkginfo = os.path.join(fullname, 'Contents', 'PkgInfo')
        if not os.path.exists(pkginfo):
            raise RuntimeError, "No PkgInfo file found"
        tp_cr = open(pkginfo, 'rb').read()
        cr = tp_cr[4:8]
    else:
        # Assume it is a file
        cr, tp = MacOS.GetCreatorAndType(fullname)
    # Let's talk to it and ask for its AETE
    talker = aetools.TalkTo(cr)
    try:
        talker._start()
    except (MacOS.Error, aetools.Error), arg:
        if verbose:
            print >> verbose, 'Warning: start() failed, continuing anyway:', arg
Exemplo n.º 4
0
def find(dir, maxlevel=5):
    hits = []
    cur = CurResFile()
    names = os.listdir(dir)
    tuples = map(lambda x: (os.path.normcase(x), x), names)
    tuples.sort()
    names = map(lambda (x, y): y, tuples)
    for name in names:
        if name in (os.curdir, os.pardir): continue
        fullname = os.path.join(dir, name)
        if os.path.islink(fullname):
            pass
        if os.path.isdir(fullname):
            if maxlevel > 0:
                sys.stderr.write("        %s\n" % ` fullname `)
                hits = hits + find(fullname, maxlevel - 1)
        else:
            ctor, type = MacOS.GetCreatorAndType(fullname)
            if type in ('APPL', 'FNDR', 'zsys', 'INIT', 'scri', 'cdev'):
                sys.stderr.write("    %s\n" % ` fullname `)
                try:
                    rf = OpenRFPerm(fullname, 0, '\1')
                except MacOS.Error, msg:
                    print "Error:", fullname, msg
                    continue
                UseResFile(rf)
                n = Count1Resources('aete')
                if rf <> cur:
                    CloseResFile(rf)
                    UseResFile(cur)
                if n > 1:
                    hits.append(fullname)
                    sys.stderr.write("YES!  %d in %s\n" % (n, ` fullname `))
                    list(fullname)
Exemplo n.º 5
0
 def opendoc(self, path):
     fcreator, ftype = MacOS.GetCreatorAndType(path)
     if ftype == 'TEXT':
         self.openscript(path)
     elif ftype == '\0\0\0\0' and path[-3:] == '.py':
         self.openscript(path)
     else:
         W.Message("Can't open file of type '%s'." % ftype)
Exemplo n.º 6
0
def getMacCreatorAndType(path):
    if MacOS is not None:
        fileCreator, fileType = MacOS.GetCreatorAndType(path)
        if sys.byteorder == "little":
            # work around bug in MacOS.GetCreatorAndType() on intel:
            # http://bugs.python.org/issue1594
            fileCreator = _reverseString(fileCreator)
            fileType = _reverseString(fileType)
        return fileCreator, fileType
    else:
        return None, None
Exemplo n.º 7
0
    def build_app(self, filename):
        print filename
        template = buildtools.findtemplate()
        dstfilename = None
        rsrcfilename = None
        raw = 0
        extras = []
        verbose = None
        destroot = ''

        cr, tp = MacOS.GetCreatorAndType(filename)
        if tp == 'APPL':
            buildtools.update(template, filename, dstfilename)
        else:
            buildtools.process(template, filename, dstfilename, 1,
                               rsrcname=rsrcfilename, others=extras, raw=raw,
                               progress=verbose, destroot=destroot)
Exemplo n.º 8
0
def copyres(src, dst):
    """Copy resource from src file to dst file."""

    cur = CurResFile()
    ctor, type = MacOS.GetCreatorAndType(src)
    input = FSpOpenResFile(src, READ)
    try:
        FSpCreateResFile(dst, ctor, type, smAllScripts)
    except:
        raw_input("%s already exists...  CR to write anyway! " % dst)
    output = FSpOpenResFile(dst, WRITE)
    UseResFile(input)
    ntypes = Count1Types()
    for itype in range(1, 1 + ntypes):
        type = Get1IndType(itype)
        nresources = Count1Resources(type)
        for ires in range(1, 1 + nresources):
            res = Get1IndResource(type, ires)
            res.LoadResource()
            id, type, name = res.GetResInfo()
            size = res.SizeResource()
            attrs = res.GetResAttrs()
            print id, type, name, size, hex(attrs)
            res.DetachResource()
            UseResFile(output)
            try:
                res2 = Get1Resource(type, id)
            except (RuntimeError, Res.Error), msg:
                res2 = None
            if res2:
                print "Duplicate type+id, not copied"
                print(res2.size, res2.data)
                print res2.GetResInfo()
                if res2.HomeResFile() == output:
                    'OK'
                elif res2.HomeResFile() == input:
                    'BAD!'
                else:
                    print 'Home:', res2.HomeResFile()
            else:
                res.AddResource(type, id, name)
                #res.SetResAttrs(attrs)
                res.WriteResource()
            UseResFile(input)
Exemplo n.º 9
0
def mimetype(url):
    cache = urlcache[url]
    if not cache.has_key('mimetype'):
        checkext = settings.get('checkext')
        mtype = None
        if checkext:
            mtype = MMmimetypes.guess_type(url)[0]
        if not mtype:
            try:
                u = MMurl.urlopen(url)
            except (IOError, OSError):
                pass
            else:
                mtype = u.headers.type
        if not mtype and sys.platform in ('mac', 'darwin'):
            # On the mac we do something extra: for local files we attempt to
            # get creator and type, and if they are us we assume we're looking
            # at a SMIL file.
            import urlparse
            utype, host, path, params, query, fragment = urlparse.urlparse(url)
            if (not utype or utype == 'file') and \
               (not host or host == 'localhost'):
                # local file
                import MacOS
                fn = MMurl.url2pathname(path)
                try:
                    ct, tp = MacOS.GetCreatorAndType(fn)
                except:
                    pass
                else:
                    if ct == 'GRIN' and tp == 'TEXT':
                        mtype = 'application/x-grins-project'
        if not mtype and not checkext:
            # last resort, try extension if not done so already
            mtype = MMmimetypes.guess_type(url)[0]
        if not mtype:
            # failed, don't cache
            return None
        if mtype.count('/') != 1:
            # don't cache bad MIME type
            return None
        cache['mimetype'] = mtype
    return cache['mimetype']
Exemplo n.º 10
0
    def testGetCreatorAndType(self):
        if not os.path.exists('/Developer/Tools/SetFile'):
            return

        try:
            fp = open(test_support.TESTFN, 'w')
            fp.write('\n')
            fp.close()

            subprocess.call([
                '/Developer/Tools/SetFile', '-t', 'ABCD', '-c', 'EFGH',
                test_support.TESTFN
            ])

            cr, tp = MacOS.GetCreatorAndType(test_support.TESTFN)
            self.assertEquals(tp, 'ABCD')
            self.assertEquals(cr, 'EFGH')

        finally:
            os.unlink(test_support.TESTFN)
Exemplo n.º 11
0
def getMacCreatorAndType(path):
    if xattr is not None:
        try:
            finderInfo = xattr.getxattr(path, 'com.apple.FinderInfo')
        except (KeyError, IOError):
            pass
        else:
            fileType = Tag(finderInfo[:4])
            fileCreator = Tag(finderInfo[4:8])
            return fileCreator, fileType
    if MacOS is not None:
        fileCreator, fileType = MacOS.GetCreatorAndType(path)
        if sys.version_info[:2] < (2, 7) and sys.byteorder == "little":
            # work around bug in MacOS.GetCreatorAndType() on intel:
            # http://bugs.python.org/issue1594
            # (fixed with Python 2.7)
            fileCreator = _reverseString(fileCreator)
            fileType = _reverseString(fileType)
        return fileCreator, fileType
    else:
        return None, None
Exemplo n.º 12
0
def getappterminology(fullname, verbose=None):
    if not MacOS.WMAvailable():
        raise RuntimeError, 'Cannot send AppleEvents, no access to window manager'
    import Carbon.Evt
    Carbon.Evt.WaitNextEvent(0, 0)
    if os.path.isdir(fullname):
        pkginfo = os.path.join(fullname, 'Contents', 'PkgInfo')
        if not os.path.exists(pkginfo):
            raise RuntimeError, 'No PkgInfo file found'
        tp_cr = open(pkginfo, 'rb').read()
        cr = tp_cr[4:8]
    else:
        cr, tp = MacOS.GetCreatorAndType(fullname)
    talker = aetools.TalkTo(cr)
    try:
        talker._start()
    except (MacOS.Error, aetools.Error) as arg:
        if verbose:
            print >> verbose, 'Warning: start() failed, continuing anyway:', arg

    reply = talker.send('ascr', 'gdte')
    return (reply[1]['----'], cr)
Exemplo n.º 13
0
def guessFileType(fileName):
    if not os.path.exists(fileName):
        return None
    base, ext = os.path.splitext(fileName)
    ext = ext.lower()
    if not have_broken_macsupport:
        try:
            import MacOS
        except ImportError:
            pass
        else:
            cr, tp = MacOS.GetCreatorAndType(fileName)
            if tp in ("sfnt", "FFIL"):
                return "TTF"
            if tp == "LWFN":
                return "Type 1"
            if ext == ".dfont":
                return "TTF"
    if ext in (".otf", ".ttf"):
        return "TTF"
    if ext in (".pfb", ".pfa"):
        return "Type 1"
    return None
Exemplo n.º 14
0
# Look for scriptable applications -- that is, applications with an 'aete' resource
Exemplo n.º 15
0
 def guess_type(url):
     # On the mac we can have serious conflicts between the
     # extension and the cretor/type of the file. As there is
     # no 100% correct way to solve this we let the extension
     # override the creator/type. This will only lead to unexpected
     # results when a file is given an extension _and_ that extension
     # belongs to files with a different mimetype.
     type, encoding = mimetypes.guess_type(url)
     if type:
         return type, encoding
     if not _ic_instance:
         return type, encoding
     #
     # Next step is to see whether the extension is known to Internet Config
     #
     try:
         descr = _ic_instance.mapfile(url)
     except ic.error:
         descr = None
     else:
         mimetype = descr[8]
         if mimetype:
             if not '/' in mimetype:
                 mimetype = mimetype + '/unknown'
             return mimetype, None
     #
     # Final step, for urls pointing to existing local files, we use
     # the creator/type code and give a warning
     #
     utype, host, path, params, query, fragment = urlparse.urlparse(url)
     if (utype and utype != 'file') or (host and host != 'localhost'):
         return None, None
     import windowinterface
     filename = MMurl.url2pathname(path)
     filename_lastpart = os.path.split(filename)[-1]
     try:
         creator, type = MacOS.GetCreatorAndType(filename)
     except MacOS.Error:
         # File doesn't exist. Give the long talk.
         if not warned_names.has_key(filename_lastpart):
             windowinterface.showmessage(
                 'Extension for "%s" not recognized.\nFor use with GRiNS (and for use on the web in general) please give your file the correct extension.'
                 % filename_lastpart,
                 identity='nomimetype')
             warned_names[filename_lastpart] = 1
         return None, None
     try:
         descr = _ic_instance.maptypecreator(type, creator, url)
     except:
         descr = None
     if not descr:
         if not warned_names.has_key(filename_lastpart):
             windowinterface.showmessage(
                 'Extension for "%s" not recognized.\nFor use with GRiNS (and for use on the web in general) please give your file the correct extension.'
                 % filename_lastpart,
                 identity='nomimetype')
             warned_names[filename_lastpart] = 1
         return None, None
     import windowinterface
     if not warned_names.has_key(filename_lastpart):
         windowinterface.showmessage(
             'Incorrect extension for "%s"\nThis may cause problems on the web'
             % filename_lastpart,
             identity='mimetypemismatch')
         warned_names[filename_lastpart] = 1
     mimetype = descr[8]
     if mimetype:
         if not '/' in mimetype:
             mimetype = mimetype + '/unknown'
     else:
         # it may be an empty string, turn into None
         mimetype = None
     return mimetype, None
Exemplo n.º 16
0
    def __init__(self, path = "", title = ""):
        defaultfontsettings, defaulttabsettings, defaultwindowsize = geteditorprefs()
        global _scriptuntitledcounter
        if not path:
            if title:
                self.title = title
            else:
                self.title = "Untitled Script %r" % (_scriptuntitledcounter,)
                _scriptuntitledcounter = _scriptuntitledcounter + 1
            text = ""
            self._creator = W._signature
            self._eoln = os.linesep
        elif os.path.exists(path):
            path = resolvealiases(path)
            dir, name = os.path.split(path)
            self.title = name
            f = open(path, "rb")
            text = f.read()
            f.close()
            self._creator, filetype = MacOS.GetCreatorAndType(path)
            self.addrecentfile(path)
            if '\n' in text:
                if string.find(text, '\r\n') >= 0:
                    self._eoln = '\r\n'
                else:
                    self._eoln = '\n'
                text = string.replace(text, self._eoln, '\r')
            else:
                self._eoln = '\r'
        else:
            raise IOError, "file '%s' does not exist" % path
        self.path = path

        self.settings = {}
        if self.path:
            self.readwindowsettings()
        if self.settings.has_key("windowbounds"):
            bounds = self.settings["windowbounds"]
        else:
            bounds = defaultwindowsize
        if self.settings.has_key("fontsettings"):
            self.fontsettings = self.settings["fontsettings"]
        else:
            self.fontsettings = defaultfontsettings
        if self.settings.has_key("tabsize"):
            try:
                self.tabsettings = (tabsize, tabmode) = self.settings["tabsize"]
            except:
                self.tabsettings = defaulttabsettings
        else:
            self.tabsettings = defaulttabsettings

        W.Window.__init__(self, bounds, self.title, minsize = (330, 120), tabbable = 0)
        self.setupwidgets(text)

        if self.settings.has_key("selection"):
            selstart, selend = self.settings["selection"]
            self.setselection(selstart, selend)
        self.open()
        self.setinfotext()
        self.globals = {}
        self._buf = ""  # for write method
        self.debugging = 0
        self.profiling = 0
        self.run_as_main = self.settings.get("run_as_main", 0)
        self.run_with_interpreter = self.settings.get("run_with_interpreter", 0)
        self.run_with_cl_interpreter = self.settings.get("run_with_cl_interpreter", 0)
Exemplo n.º 17
0
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:]:
        filename = EasyDialogs.AskFileForOpen(
            message='Select Python source or applet:',
            typeList=('TEXT', 'APPL'))
        if not filename:
            return
        tp, tf = os.path.split(filename)
        if tf[-3:] == '.py':
            tf = tf[:-3]
        else:
            tf = tf + '.applet'
        dstfilename = EasyDialogs.AskFileForSave(
            message='Save application as:', savedFileName=tf)
        if not dstfilename: return
        cr, tp = MacOS.GetCreatorAndType(filename)
        if tp == 'APPL':
            buildtools.update(template, filename, dstfilename)
        else:
            buildtools.process(template, filename, dstfilename, 1)
    else:

        SHORTOPTS = "o:r:ne:v?PR"
        LONGOPTS = ("output=", "resource=", "noargv", "extra=", "verbose",
                    "help", "python=", "destroot=")
        try:
            options, args = getopt.getopt(sys.argv[1:], SHORTOPTS, LONGOPTS)
        except getopt.error:
            usage()
        if options and len(args) > 1:
            sys.stderr.write(
                "Cannot use options when specifying multiple input files")
            sys.exit(1)
        dstfilename = None
        rsrcfilename = None
        raw = 0
        extras = []
        verbose = None
        destroot = ''
        for opt, arg in options:
            if opt in ('-o', '--output'):
                dstfilename = arg
            elif opt in ('-r', '--resource'):
                rsrcfilename = arg
            elif opt in ('-n', '--noargv'):
                raw = 1
            elif opt in ('-e', '--extra'):
                if ':' in arg:
                    arg = arg.split(':')
                extras.append(arg)
            elif opt in ('-P', '--python'):
                # This is a very dirty trick. We set sys.executable
                # so that bundlebuilder will use this in the #! line
                # for the applet bootstrap.
                sys.executable = arg
            elif opt in ('-v', '--verbose'):
                verbose = Verbose()
            elif opt in ('-?', '--help'):
                usage()
            elif opt in ('-d', '--destroot'):
                destroot = arg
        # On OS9 always be verbose
        if sys.platform == 'mac' and not verbose:
            verbose = 'default'
        # Loop over all files to be processed
        for filename in args:
            cr, tp = MacOS.GetCreatorAndType(filename)
            if tp == 'APPL':
                buildtools.update(template, filename, dstfilename)
            else:
                buildtools.process(template,
                                   filename,
                                   dstfilename,
                                   1,
                                   rsrcname=rsrcfilename,
                                   others=extras,
                                   raw=raw,
                                   progress=verbose,
                                   destroot=destroot)
Exemplo n.º 18
0
"""Create an applet from a Python script.
Exemplo n.º 19
0
 def getcreatorandtype(path):
     return MacOS.GetCreatorAndType(path)
Exemplo n.º 20
0
 def setfiletype(self, filename):
     if MacOS and (self.filecreator or self.filetype):
         creator, type = MacOS.GetCreatorAndType(filename)
         if self.filecreator: creator = self.filecreator
         if self.filetype: type = self.filetype
         MacOS.SetCreatorAndType(filename, creator, type)
Exemplo n.º 21
0
def compileaete(aete, resinfo, fname, output = None, basepkgname = None, edit_modnames = None, creatorsignature = None, verbose = 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:
        packagename = packagename + '_lang%d' % language
    if script:
        packagename = packagename + '_script%d' % script
    if len(packagename) > 27:
        packagename = packagename[:27]
    if output:
        if not os.path.exists(output):
            os.mkdir(output)
        pathname = output
    else:
        pathname = EasyDialogs.AskFolder(message='Create and select package folder for %s' % packagename, defaultLocation=DEFAULT_USER_PACKAGEFOLDER)
        output = pathname
    if not pathname:
        return
    else:
        packagename = os.path.split(os.path.normpath(pathname))[1]
        if not basepkgname:
            basepkgname = EasyDialogs.AskFolder(message='Package folder for base suite (usually StdSuites)', defaultLocation=DEFAULT_STANDARD_PACKAGEFOLDER)
        if basepkgname:
            dirname, basepkgname = os.path.split(os.path.normpath(basepkgname))
            if dirname and dirname not in sys.path:
                sys.path.insert(0, dirname)
            basepackage = __import__(basepkgname)
        else:
            basepackage = None
        suitelist = []
        allprecompinfo = []
        allsuites = []
        for suite in suites:
            compiler = SuiteCompiler(suite, basepackage, output, edit_modnames, verbose)
            code, modname, precompinfo = compiler.precompilesuite()
            if not code:
                continue
            allprecompinfo = allprecompinfo + precompinfo
            suiteinfo = (suite, pathname, modname)
            suitelist.append((code, modname))
            allsuites.append(compiler)

        for compiler in allsuites:
            compiler.compilesuite(major, minor, language, script, fname, allprecompinfo)

        initfilename = os.path.join(output, '__init__.py')
        fp = open(initfilename, 'w')
        MacOS.SetCreatorAndType(initfilename, 'Pyth', 'TEXT')
        fp.write('"""\n')
        fp.write('Package generated from %s\n' % ascii(fname))
        if resinfo:
            fp.write('Resource %s resid %d %s\n' % (ascii(resinfo[1]), resinfo[0], ascii(resinfo[2])))
        fp.write('"""\n')
        fp.write('import aetools\n')
        fp.write('Error = aetools.Error\n')
        suitelist.sort()
        for code, modname in suitelist:
            fp.write('import %s\n' % modname)

        fp.write('\n\n_code_to_module = {\n')
        for code, modname in suitelist:
            fp.write("    '%s' : %s,\n" % (ascii(code), modname))

        fp.write('}\n\n')
        fp.write('\n\n_code_to_fullname = {\n')
        for code, modname in suitelist:
            fp.write("    '%s' : ('%s.%s', '%s'),\n" % (ascii(code),
             packagename,
             modname,
             modname))

        fp.write('}\n\n')
        for code, modname in suitelist:
            fp.write('from %s import *\n' % modname)

        fp.write('\ndef getbaseclasses(v):\n')
        fp.write("    if not getattr(v, '_propdict', None):\n")
        fp.write('        v._propdict = {}\n')
        fp.write('        v._elemdict = {}\n')
        fp.write("        for superclassname in getattr(v, '_superclassnames', []):\n")
        fp.write('            superclass = eval(superclassname)\n')
        fp.write('            getbaseclasses(superclass)\n')
        fp.write("            v._propdict.update(getattr(superclass, '_propdict', {}))\n")
        fp.write("            v._elemdict.update(getattr(superclass, '_elemdict', {}))\n")
        fp.write("        v._propdict.update(getattr(v, '_privpropdict', {}))\n")
        fp.write("        v._elemdict.update(getattr(v, '_privelemdict', {}))\n")
        fp.write('\n')
        fp.write('import StdSuites\n')
        allprecompinfo.sort()
        if allprecompinfo:
            fp.write('\n#\n# Set property and element dictionaries now that all classes have been defined\n#\n')
            for codenamemapper in allprecompinfo:
                for k, v in codenamemapper.getall('class'):
                    fp.write('getbaseclasses(%s)\n' % v)

        application_class = None
        if allprecompinfo:
            fp.write('\n#\n# Indices of types declared in this module\n#\n')
            fp.write('_classdeclarations = {\n')
            for codenamemapper in allprecompinfo:
                for k, v in codenamemapper.getall('class'):
                    fp.write('    %r : %s,\n' % (k, v))
                    if k == 'capp':
                        application_class = v

            fp.write('}\n')
        if suitelist:
            fp.write('\n\nclass %s(%s_Events' % (packagename, suitelist[0][1]))
            for code, modname in suitelist[1:]:
                fp.write(',\n        %s_Events' % modname)

            fp.write(',\n        aetools.TalkTo):\n')
            fp.write('    _signature = %r\n\n' % (creatorsignature,))
            fp.write("    _moduleName = '%s'\n\n" % packagename)
            if application_class:
                fp.write('    _elemdict = %s._elemdict\n' % application_class)
                fp.write('    _propdict = %s._propdict\n' % application_class)
        fp.close()
        return
Exemplo n.º 22
0
"""\