diff options
Diffstat (limited to 'misc/pylib/robofab/world.py')
-rw-r--r-- | misc/pylib/robofab/world.py | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/misc/pylib/robofab/world.py b/misc/pylib/robofab/world.py new file mode 100644 index 000000000..203753d6c --- /dev/null +++ b/misc/pylib/robofab/world.py @@ -0,0 +1,108 @@ +import os, sys +from robofab import RoboFabError, version, numberVersion + + +class RFWorld: + + """All parameters about platforms, versions and environments included in one object.""" + + def __init__(self): + self.mac = None + self.pc = None + self.platform = sys.platform + self.applicationName = None # name of the application we're running in + self.name = os.name + self.version = version # the robofab version + self.numberVersion = numberVersion + self.run = True + + # get some platform information + if self.name == 'mac' or self.name == 'posix': + if self.platform == "darwin": + self.mac = "X" + else: + self.mac = "pre-X" + elif self.name == 'nt': + # if you know more about PC & win stuff, add it here! + self.pc = True + else: + raise RoboFabError, "We're running on an unknown platform." + + # collect versions + self.pyVersion = sys.version[:3] + self.inPython = False + self.inFontLab = False + self.flVersion = None + self.inGlyphs = False + self.glyphsVersion = None + self.inRoboFont = False + self.roboFontVersion = None + + # are we in Glyphs? + try: + import objectsGS + from AppKit import NSBundle + bundle = NSBundle.mainBundle() + self.applicationName = bundle.infoDictionary()["CFBundleName"] + self.inGlyphs = True + self.glyphsVersion = bundle.infoDictionary()["CFBundleVersion"] + except ImportError: + # are we in RoboFont + try: + import mojo + from AppKit import NSBundle + bundle = NSBundle.mainBundle() + self.applicationName = bundle.infoDictionary()["CFBundleName"] + self.inRoboFont = True + self.roboFontVersion = bundle.infoDictionary()["CFBundleVersion"] + except ImportError: + # are we in FontLab? + try: + from FL import fl + self.applicationName = fl.filename + self.inFontLab = True + self.flVersion = fl.version + except ImportError: pass + # we are in NoneLab + if not self.inFontLab: + self.inPython = True + + # see if we have DialogKit + self.supportsDialogKit = False + + def __repr__(self): + s = [ + "Robofab is running on %s" % self.platform, + "Python version: %s" % self.pyVersion, + "Mac stuff: %s" % self.mac, + "PC stuff: %s" % self.pc, + "FontLab stuff: %s" % self.inFontLab, + "FLversion: %s" % self.flVersion, + "Glyphs stuff: %s" % self.inGlyphs, + "Glyphs version: %s" % self.glyphsVersion, + "RoboFont stuff: %s" %self.inRoboFont, + "RoboFont version: %s" %self.roboFontVersion, + ] + return ", ".join(s) + + +world = RFWorld() + +lineBreak = os.linesep + +if world.inFontLab: + from robofab.interface.all.dialogs import SelectFont, SelectGlyph + from robofab.objects.objectsFL import CurrentFont, CurrentGlyph, RFont, RGlyph, OpenFont, NewFont, AllFonts + lineBreak = "\n" +elif world.inRoboFont: + from mojo.roboFont import CurrentFont, CurrentGlyph, RFont, RGlyph, OpenFont, NewFont, AllFonts +elif world.inGlyphs: + from objectsGS import CurrentFont, CurrentGlyph, RFont, RGlyph, OpenFont, NewFont, AllFonts +elif world.inPython: + from robofab.objects.objectsRF import CurrentFont, CurrentGlyph, RFont, RGlyph, OpenFont, NewFont, AllFonts + + + +if __name__ == "__main__": + f = RFWorld() + print f |