| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

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
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Mon Apr 11 19:59:29 2011 for Gaudi by doxygen 1.4.7