Gaudi Framework, version v20r4

Generated: 8 Jan 2009

Main.py

Go to the documentation of this file.
00001 import sys, os
00002 from Gaudi import Configuration
00003 from GaudiKernel.ConfigurableDb import cfgDb, loadConfigurableDb, getConfigurable
00004 import logging
00005 
00006 log = logging.getLogger(__name__)
00007 
00008 class gaudimain(object) :
00009     def __init__(self) :
00010         from Configurables import ApplicationMgr
00011         appMgr = ApplicationMgr()
00012         if "GAUDIAPPNAME" in os.environ:
00013             appMgr.AppName = str(os.environ["GAUDIAPPNAME"])
00014         if "GAUDIAPPVERSION" in os.environ:
00015             appMgr.AppVersion = str(os.environ["GAUDIAPPVERSION"])
00016     
00017     def generatePyOutput(self, all = False):
00018         from pprint import pformat
00019         conf_dict = Configuration.configurationDict(all)
00020         return pformat(conf_dict)
00021 
00022     def generateOptsOutput(self, all = False):
00023         from pprint import pformat
00024         conf_dict = Configuration.configurationDict(all)
00025         out = []
00026         names = conf_dict.keys()
00027         names.sort()
00028         for n in names:
00029             props = conf_dict[n].keys()
00030             props.sort()
00031             for p in props:
00032                 out.append('%s.%s = %s;' % (n,p, repr(conf_dict[n][p])))
00033         return "\n".join(out)
00034 
00035     def _writepickle(self, filename) :
00036         #--- Lets take the first file input file as the name of the pickle file
00037         import pickle
00038         output = open(filename, 'wb')
00039         # Dump only the the configurables that make sense to dump (not User ones)
00040         from GaudiKernel.Proxy.Configurable import getNeededConfigurables
00041         to_dump = {}
00042         for n in getNeededConfigurables():
00043             to_dump[n] = Configuration.allConfigurables[n]
00044         pickle.dump(to_dump, output, -1)
00045         output.close()
00046 
00047     def printconfig(self, old_format = False, all = False) :
00048         msg = 'Dumping all configurables and properties'
00049         if not all:
00050             msg += ' (different from default)'
00051         log.info(msg)
00052         conf_dict = Configuration.configurationDict(all)
00053         if old_format:
00054             print self.generateOptsOutput(all)
00055         else:
00056             print self.generatePyOutput(all)
00057 
00058     def writeconfig(self, filename, all = False):
00059         write = { ".pkl" : lambda filename, all: self._writepickle(filename),
00060                   ".py"  : lambda filename, all: open(filename,"w").write(self.generatePyOutput(all) + "\n"),
00061                   ".opts": lambda filename, all: open(filename,"w").write(self.generateOptsOutput(all) + "\n"),
00062                 }
00063         from os.path import splitext
00064         ext = splitext(filename)[1]
00065         if ext in write:
00066             write[ext](filename, all)
00067         else:
00068             log.error("Unknown file type '%s'. Must be any of %r.", ext, write.keys())
00069             sys.exit(1)
00070 
00071     def run(self) :
00072         #--- Instantiate the ApplicationMgr------------------------------
00073         import GaudiPython
00074         self.g = GaudiPython.AppMgr()
00075         success = self.g.run(self.g.EvtMax).isSuccess()
00076         success = self.g.exit().isSuccess() and success
00077         if not success:
00078             return 1
00079         return 0

Generated at Thu Jan 8 17:44:18 2009 for Gaudi Framework, version v20r4 by Doxygen version 1.5.6 written by Dimitri van Heesch, © 1997-2004