def _export(items, styles, plainText, singleHTML, frameHTML, options, outFolder, exportToSubfolders, progress): styleInfo = [(style, kStyleToSuffix[style]) for style in styles] # process each item for i, item in enumerate(items): name, path = item['name'], item['path'] progress.nextitem(name, path) try: aetes = getaete(path) if not bool(aetes): progress.didfail(u"No terminology found.") continue for style, suffix in styleInfo: styleSubfolderName = exportToSubfolders and style or '' if not progress.shouldcontinue(): for item in items[i:]: progress.didfail(u"User cancelled.") progress.nextapp(item['name'], item['path']) progress.didfail(u"User cancelled.") progress.didfinish() return if plainText: outputPath = _makeDestinationFolder( outFolder, styleSubfolderName, exportToSubfolders and 'text', name + suffix + '.txt') progress.nextoutput(u'%s' % outputPath) f = file(outputPath, 'w') try: f.write('\xEF\xBB\xBF') # UTF8 BOM quickdoc.app(path, f, getconverter(style)) except: f.close() raise f.close() if singleHTML or frameHTML: terms = aeteparser.parseaetes(aetes, path, style) if singleHTML: outputPath = _makeDestinationFolder( outFolder, styleSubfolderName, exportToSubfolders and 'html', name + suffix + '.html') progress.nextoutput(u'%s' % outputPath) html = htmldoc.renderdictionary(terms, style, options) f = open(outputPath, 'w') f.write(str(html)) f.close() if frameHTML: outputPath = _makeDestinationFolder( outFolder, styleSubfolderName, exportToSubfolders and 'frame-html', name + suffix) progress.nextoutput(u'%s' % outputPath) htmldoc2.renderdictionary(terms, outputPath, style, options) except Exception, err: from traceback import print_exc from StringIO import StringIO out = StringIO() print_exc(file=out) progress.didfail(u'Unexpected error:/n%s' % out.getvalue()) else: progress.didsucceed()
def _export(items, styles, plainText, singleHTML, frameHTML, options, outFolder, exportToSubfolders, progress): styleInfo = [(style, kStyleToSuffix[style]) for style in styles] # process each item for i, item in enumerate(items): name, path = item['name'], item['path'] progress.nextitem(name, path) try: aetes = getaete(path) if not bool(aetes): progress.didfail(u"No terminology found.") continue for style, suffix in styleInfo: styleSubfolderName = exportToSubfolders and style or '' if not progress.shouldcontinue(): for item in items[i:]: progress.didfail(u"User cancelled.") progress.nextapp(item['name'], item['path']) progress.didfail(u"User cancelled.") progress.didfinish() return if plainText: outputPath = _makeDestinationFolder(outFolder, styleSubfolderName, exportToSubfolders and 'text', name + suffix + '.txt') progress.nextoutput(u'%s' % outputPath) f = file(outputPath, 'w') try: f.write('\xEF\xBB\xBF') # UTF8 BOM quickdoc.app(path, f, getconverter(style)) except: f.close() raise f.close() if singleHTML or frameHTML: terms = aeteparser.parseaetes(aetes, path, style) if singleHTML: outputPath = _makeDestinationFolder(outFolder, styleSubfolderName, exportToSubfolders and 'html', name + suffix + '.html') progress.nextoutput(u'%s' % outputPath) html = htmldoc.renderdictionary(terms, style, options) f = open(outputPath, 'w') f.write(str(html)) f.close() if frameHTML: outputPath = _makeDestinationFolder(outFolder, styleSubfolderName, exportToSubfolders and 'frame-html', name + suffix) progress.nextoutput(u'%s' % outputPath) htmldoc2.renderdictionary(terms, outputPath, style, options) except Exception, err: from traceback import print_exc from StringIO import StringIO out = StringIO() print_exc(file=out) progress.didfail(u'Unexpected error:/n%s' % out.getvalue()) else: progress.didsucceed()
def exporthtml(appname, style, optstr): opts, args = getopt(optstr, 'NHTs:cah') opts = dict(opts) if _osaxpathsbyname.has_key(appname): appname = _osaxpathsbyname[appname] else: appname = aem.findapp.byname(appname) aetedata = getaetedata(appname) terms = aeteparser.parseaetes(aetedata, appname, style) options = [option for flag, option in [('-c', 'collapse'), ('-a', 'showall')] if opts.has_key(flag)] return htmldoc.renderdictionary(terms, style, options)
def __init__(self, appobj, style='py-appscript', out=StringIO()): """ aetes : list of AEDesc -- list of aetes out : anything -- any file-like object that implements a write(str) method """ aetes = terminology.aetesforapp(appobj.AS_appdata.target) appname = appobj.AS_appdata.identifier or u'Current Application' self.terms = aeteparser.parseaetes(aetes, appname, style) self.style = style if style == 'rb-appscript': self.datarenderer = RubyRenderer(appobj, aetes) else: self.datarenderer = PythonRenderer() self.output = out
def exporthtml(appname, style, optstr): opts, args = getopt(optstr, 'NHTs:cah') opts = dict(opts) if _osaxpathsbyname.has_key(appname): appname = _osaxpathsbyname[appname] else: appname = aem.findapp.byname(appname) aetedata = getaetedata(appname) terms = aeteparser.parseaetes(aetedata, appname, style) options = [ option for flag, option in [('-c', 'collapse'), ('-a', 'showall')] if opts.has_key(flag) ] return htmldoc.renderdictionary(terms, style, options)
def __init__(self, appobj, style='py-appscript', out=StringIO()): """ aetes : list of AEDesc -- list of aetes out : anything -- any file-like object that implements a write(str) method """ aetes = terminology.aetesforapp(appobj.AS_appdata.target()) appname = appobj.AS_appdata.identifier or u'Current Application' self.terms = aeteparser.parseaetes(aetes, appname, style) self.style = style if style == 'rb-appscript': self.datarenderer = RubyRenderer(appobj, aetes) else: self.datarenderer = PythonRenderer() self.output = out
def _export(items, styles, plainText, singleHTML, frameHTML, objcGlue, options, outFolder, exportToSubfolders, progress): styleInfo = [(style, kStyleToSuffix[style]) for style in styles] # process each item for i, item in enumerate(items): objcPrefix, name, path, isOSAX = item['objcPrefix'], item[ 'name'], item['path'], item['isOSAX'] progress.nextitem(name, path) try: try: aetes = GetAppTerminology(path) except MacOSError, e: if e.args[0] != -192: raise aetes = [] if not bool(aetes): progress.didfail(u"No terminology found.") continue for style, suffix in styleInfo: styleSubfolderName = exportToSubfolders and style or '' if not progress.shouldcontinue(): for item in items[i:]: progress.didfail(u"User cancelled.") progress.nextapp(item['name'], item['path']) progress.didfail(u"User cancelled.") progress.didfinish() return if plainText: outputPath = _makeDestinationFolder( outFolder, styleSubfolderName, exportToSubfolders and 'text', name + suffix + '.txt') progress.nextoutput(u'%s' % outputPath) f = file(outputPath, 'w') try: f.write('\xEF\xBB\xBF') # UTF8 BOM quickdoc.app(path, f, getconverter(style)) except: f.close() raise f.close() if singleHTML or frameHTML: terms = aeteparser.parseaetes(aetes, path, style) if singleHTML: outputPath = _makeDestinationFolder( outFolder, styleSubfolderName, exportToSubfolders and 'html', name + suffix + '.html') progress.nextoutput(u'%s' % outputPath) html = htmldoc.renderdictionary(terms, style, options) f = open(outputPath, 'w') f.write(str(html)) f.close() if frameHTML: outputPath = _makeDestinationFolder( outFolder, styleSubfolderName, exportToSubfolders and 'frame-html', name + suffix) progress.nextoutput(u'%s' % outputPath) htmldoc2.renderdictionary(terms, outputPath, style, options) if objcGlue: outputPath = _makeDestinationFolder( outFolder, 'objc-appscript', '%s%sGlue' % (exportToSubfolders and 'glues/' or '', objcPrefix), '') renderer = osaglue.GlueRenderer(outputPath, objcPrefix) if isOSAX: renderer.renderosaxaetes(path, aetes) else: renderer.renderappaetes(path, aetes) progress.nextoutput(u'%s' % outputPath) except Exception, err: from traceback import print_exc from StringIO import StringIO out = StringIO() print_exc(file=out) progress.didfail(u'Unexpected error:/n%s' % out.getvalue())
def _export(items, styles, plainText, singleHTML, frameHTML, options, outFolder, exportToSubfolders, progress): styleInfo = [(style, kStyleToSuffix[style]) for style in styles] # process each item for i, item in enumerate(items): name, path = item["name"], item["path"] progress.nextitem(name, path) try: try: aetes = GetAppTerminology(path) except MacOSError, e: if e.args[0] != -192: raise aetes = [] if not bool(aetes): progress.didfail(u"No terminology found.") continue for style, suffix in styleInfo: styleSubfolderName = exportToSubfolders and style or "" if not progress.shouldcontinue(): for item in items[i:]: progress.didfail(u"User cancelled.") progress.nextapp(item["name"], item["path"]) progress.didfail(u"User cancelled.") progress.didfinish() return if plainText: outputPath = _makeDestinationFolder( outFolder, styleSubfolderName, exportToSubfolders and "text", name + suffix + ".txt" ) progress.nextoutput(u"%s" % outputPath) f = file(outputPath, "w") try: f.write("\xEF\xBB\xBF") # UTF8 BOM quickdoc.app(path, f, getconverter(style)) except: f.close() raise f.close() if singleHTML or frameHTML: terms = aeteparser.parseaetes(aetes, path, style) if singleHTML: outputPath = _makeDestinationFolder( outFolder, styleSubfolderName, exportToSubfolders and "html", name + suffix + ".html" ) progress.nextoutput(u"%s" % outputPath) html = htmldoc.renderdictionary(terms, style, options) f = open(outputPath, "w") f.write(str(html)) f.close() if frameHTML: outputPath = _makeDestinationFolder( outFolder, styleSubfolderName, exportToSubfolders and "frame-html", name + suffix ) progress.nextoutput(u"%s" % outputPath) htmldoc2.renderdictionary(terms, outputPath, style, options) except Exception, err: from traceback import print_exc from StringIO import StringIO out = StringIO() print_exc(file=out) progress.didfail(u"Unexpected error:/n%s" % out.getvalue())
def export(items, styles, plainText, singleHTML, frameHTML, objcGlue, options, outFolder, exportToSubfolders, progress, info={}): styleInfo = [(style, kStyleToSuffix[style]) for style in styles] # process each item for i, item in enumerate(items): sdef = aetes = None objcPrefix, name, path = item['objcPrefix'], item['name'], item['path'] if path == NSBundle.mainBundle().bundlePath(): continue progress.nextitem(name, path) try: isOSAX = path.lower().endswith('.osax') if isOSAX: try: sdef = ae.copyscriptingdefinition(path) except ae.MacOSError, e: if e.args[0] == -10827: progress.didfail(u"No terminology found.") continue else: raise else: Application aetes = aetesforapp(Application(path)) if not bool(sdef or aetes): progress.didfail(u"No terminology found.") continue for style, suffix in styleInfo: styleSubfolderName = exportToSubfolders and style or '' if not progress.shouldcontinue(): for item in items[i:]: progress.didfail(u"User cancelled.") progress.nextapp(item['name'], item['path']) progress.didfail(u"User cancelled.") progress.didfinish() return if plainText and not isOSAX: outputPath = _makeDestinationFolder(outFolder, styleSubfolderName, exportToSubfolders and 'text', name + suffix + '.txt') progress.nextoutput(u'%s' % outputPath) f = file(outputPath, 'w') try: f.write('\xEF\xBB\xBF') # UTF8 BOM quickdoc.renderaetes(aetes, f, makeidentifier.getconverter(style)) except: f.close() raise f.close() if singleHTML or frameHTML: if isOSAX: terms = sdefparser.parsexml(sdef, path, style) else: terms = aeteparser.parseaetes(aetes, path, style) if singleHTML: outputPath = _makeDestinationFolder(outFolder, styleSubfolderName, exportToSubfolders and 'html', name + suffix + '.html') progress.nextoutput(u'%s' % outputPath) html = htmldoc.renderdictionary(terms, style, options) f = open(outputPath, 'w') f.write(str(html)) f.close() if frameHTML: outputPath = _makeDestinationFolder(outFolder, styleSubfolderName, exportToSubfolders and 'frame-html', name + suffix) progress.nextoutput(u'%s' % outputPath) htmldoc2.renderdictionary(terms, outputPath, style, options, info) if objcGlue and not isOSAX: outputPath = _makeDestinationFolder(outFolder, exportToSubfolders and 'objc-appscript' or '', '%s%sGlue' % (exportToSubfolders and 'glues/' or '', objcPrefix), '') objcappscript.makeappglue(path, objcPrefix, outputPath, aetes) progress.nextoutput(u'%s' % outputPath)
def _export(items, styles, plainText, singleHTML, frameHTML, objcGlue, options, outFolder, exportToSubfolders, progress): styleInfo = [(style, kStyleToSuffix[style]) for style in styles] # process each item for i, item in enumerate(items): objcPrefix, name, path, isOSAX = item['objcPrefix'], item['name'], item['path'], item['isOSAX'] progress.nextitem(name, path) try: try: aetes = GetAppTerminology(path) except MacOSError, e: if e.args[0] != -192: raise aetes = [] if not bool(aetes): progress.didfail(u"No terminology found.") continue for style, suffix in styleInfo: styleSubfolderName = exportToSubfolders and style or '' if not progress.shouldcontinue(): for item in items[i:]: progress.didfail(u"User cancelled.") progress.nextapp(item['name'], item['path']) progress.didfail(u"User cancelled.") progress.didfinish() return if plainText: outputPath = _makeDestinationFolder(outFolder, styleSubfolderName, exportToSubfolders and 'text', name + suffix + '.txt') progress.nextoutput(u'%s' % outputPath) f = file(outputPath, 'w') try: f.write('\xEF\xBB\xBF') # UTF8 BOM quickdoc.app(path, f, getconverter(style)) except: f.close() raise f.close() if singleHTML or frameHTML: terms = aeteparser.parseaetes(aetes, path, style) if singleHTML: outputPath = _makeDestinationFolder(outFolder, styleSubfolderName, exportToSubfolders and 'html', name + suffix + '.html') progress.nextoutput(u'%s' % outputPath) html = htmldoc.renderdictionary(terms, style, options) f = open(outputPath, 'w') f.write(str(html)) f.close() if frameHTML: outputPath = _makeDestinationFolder(outFolder, styleSubfolderName, exportToSubfolders and 'frame-html', name + suffix) progress.nextoutput(u'%s' % outputPath) htmldoc2.renderdictionary(terms, outputPath, style, options) if objcGlue: outputPath = _makeDestinationFolder(outFolder, 'objc-appscript', '%s%sGlue' % (exportToSubfolders and 'glues/' or '', objcPrefix), '') renderer = osaglue.GlueRenderer(outputPath, objcPrefix) if isOSAX: renderer.renderosaxaetes(path, aetes) else: renderer.renderappaetes(path, aetes) progress.nextoutput(u'%s' % outputPath) except Exception, err: from traceback import print_exc from StringIO import StringIO out = StringIO() print_exc(file=out) progress.didfail(u'Unexpected error:/n%s' % out.getvalue())
def export(items, styles, plainText, singleHTML, frameHTML, objcGlue, options, outFolder, exportToSubfolders, progress, info={}): styleInfo = [(style, kStyleToSuffix[style]) for style in styles] # process each item for i, item in enumerate(items): sdef = aetes = None objcPrefix, name, path = item['objcPrefix'], item['name'], item['path'] if path == NSBundle.mainBundle().bundlePath(): continue progress.nextitem(name, path) try: isOSAX = path.lower().endswith('.osax') if isOSAX: try: sdef = ae.copyscriptingdefinition(path) except ae.MacOSError, e: if e.args[0] == -10827: progress.didfail(u"No terminology found.") continue else: raise else: Application aetes = aetesforapp(Application(path)) if not bool(sdef or aetes): progress.didfail(u"No terminology found.") continue for style, suffix in styleInfo: styleSubfolderName = exportToSubfolders and style or '' if not progress.shouldcontinue(): for item in items[i:]: progress.didfail(u"User cancelled.") progress.nextapp(item['name'], item['path']) progress.didfail(u"User cancelled.") progress.didfinish() return if plainText and not isOSAX: outputPath = _makeDestinationFolder( outFolder, styleSubfolderName, exportToSubfolders and 'text', name + suffix + '.txt') progress.nextoutput(u'%s' % outputPath) f = file(outputPath, 'w') try: f.write('\xEF\xBB\xBF') # UTF8 BOM quickdoc.renderaetes( aetes, f, makeidentifier.getconverter(style)) except: f.close() raise f.close() if singleHTML or frameHTML: if isOSAX: terms = sdefparser.parsexml(sdef, path, style) else: terms = aeteparser.parseaetes(aetes, path, style) if singleHTML: outputPath = _makeDestinationFolder( outFolder, styleSubfolderName, exportToSubfolders and 'html', name + suffix + '.html') progress.nextoutput(u'%s' % outputPath) html = htmldoc.renderdictionary(terms, style, options) f = open(outputPath, 'w') f.write(str(html)) f.close() if frameHTML: outputPath = _makeDestinationFolder( outFolder, styleSubfolderName, exportToSubfolders and 'frame-html', name + suffix) progress.nextoutput(u'%s' % outputPath) htmldoc2.renderdictionary(terms, outputPath, style, options, info) if objcGlue and not isOSAX: outputPath = _makeDestinationFolder( outFolder, exportToSubfolders and 'objc-appscript' or '', '%s%sGlue' % (exportToSubfolders and 'glues/' or '', objcPrefix), '') objcappscript.makeappglue(path, objcPrefix, outputPath, aetes) progress.nextoutput(u'%s' % outputPath)