2008-01-07 17:40:34 +00:00
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
2011-05-07 12:55:44 +00:00
self . applicationName = None # name of the application we're running in
2008-01-07 17:40:34 +00:00
self . name = os . name
self . version = version # the robofab version
self . numberVersion = numberVersion
self . _hasNagged = False
self . _willNag = True
self . _timedOut = False
self . _license = False
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
2011-06-14 15:44:18 +00:00
self . flVersion = None
self . inGlyphsApp = False
self . glyphsAppVersion = None
2008-01-07 17:40:34 +00:00
# are we in FontLab?
try :
from FL import fl
self . applicationName = fl . filename
self . inFontLab = True
self . flVersion = fl . version
except ImportError : pass
2011-06-14 15:44:18 +00:00
# are we in Glyphs?
try :
import objectsGS
from AppKit import NSBundle
bundle = NSBundle . mainBundle ( )
self . applicationName = bundle . infoDictionary ( ) [ " CFBundleName " ]
self . inGlyphsApp = True
self . glyphsAppVersion = bundle . infoDictionary ( ) [ " CFBundleVersion " ]
except ImportError : pass
# we are in NoneLab
2008-01-07 17:40:34 +00:00
if not self . inFontLab :
self . inPython = True
2011-05-07 12:55:44 +00:00
# see if we have DialogKit
self . supportsDialogKit = False
2011-06-14 15:44:18 +00:00
2008-01-07 17:40:34 +00:00
def __repr__ ( self ) :
return " [Robofab is running on %s . Python version: %s , Mac stuff: %s , PC stuff: %s , FontLab stuff: %s , FLversion: %s ] " % ( self . platform , self . pyVersion , self . mac , self . pc , self . inFontLab , self . flVersion )
world = RFWorld ( )
lineBreak = os . linesep
if world . inFontLab :
2011-05-07 08:07:37 +00:00
from robofab . interface . all . dialogs import SelectFont , SelectGlyph
2008-01-08 19:18:06 +00:00
from robofab . objects . objectsFL import CurrentFont , CurrentGlyph , RFont , RGlyph , OpenFont , NewFont , AllFonts
2008-01-07 17:40:34 +00:00
lineBreak = " \n "
2011-06-14 15:44:18 +00:00
elif world . inGlyphsApp :
from robofab . objects . objectsFL import CurrentFont , CurrentGlyph , RFont , RGlyph , OpenFont , NewFont , AllFonts
2008-01-07 17:40:34 +00:00
elif world . inPython :
2008-01-08 19:18:06 +00:00
from robofab . objects . objectsRF import CurrentFont , CurrentGlyph , RFont , RGlyph , OpenFont , NewFont , AllFonts
2008-01-07 17:40:34 +00:00
if __name__ == " __main__ " :
f = RFWorld ( )
print f