|
Gaudi Framework, version v21r11 |
| Home | Generated: 30 Sep 2010 |
Public Member Functions | |
| def | __new__ |
| def | __reset__ |
| def | __init__ |
| def | state |
| def | FSMState |
| def | targetFSMState |
| def | loaddict |
| def | service |
| def | declSvcType |
| def | createSvc |
| def | services |
| def | algorithm |
| def | algorithms |
| def | tool |
| def | property |
| def | datasvc |
| def | evtsvc |
| def | detsvc |
| def | filerecordsvc |
| def | evtsel |
| def | histsvc |
| def | ntuplesvc |
| def | partsvc |
| def | toolsvc |
| def | optSvc |
| def | readOptions |
| def | addAlgorithm |
| def | setAlgorithms |
| def | removeAlgorithm |
| def | config |
| def | configure |
| def | start |
| def | run |
| def | executeEvent |
| def | execute |
| def | runSelectedEvents |
| def | exit |
| def | __del__ |
| Custom destructor to ensure that the application is correctly finalized when exiting from python. | |
Public Attributes | |
| JobOptionsType | |
| OutputLevel | |
| topAlg | |
Static Public Attributes | |
| evtSvc = evtsvc | |
| histSvc = histsvc | |
| ntupleSvc = ntuplesvc | |
| evtSel = evtsel | |
| detSvc = detsvc | |
| toolSvc = toolsvc | |
| partSvc = partsvc | |
Definition at line 656 of file Bindings.py.
| def GaudiPython::Bindings::AppMgr::__new__ | ( | cls, | ||
| args, | ||||
| kwargs | ||||
| ) |
Definition at line 657 of file Bindings.py.
00657 : 00658 global _gaudi 00659 if not _gaudi : 00660 newobj = object.__new__( cls ) 00661 cls.__init__(newobj, *args, **kwargs) 00662 _gaudi = newobj 00663 return _gaudi def __reset__(self):
| def GaudiPython::Bindings::AppMgr::__reset__ | ( | self | ) |
Definition at line 664 of file Bindings.py.
00664 : 00665 global _gaudi 00666 # Stop, Finalize and Terminate the current AppMgr 00667 self.exit() 00668 # release interfaces 00669 self._evtpro.release() 00670 self._svcloc.release() 00671 self._appmgr.release() 00672 # Reset the C++ globals 00673 gbl.Gaudi.setInstance(makeNullPointer('ISvcLocator')) 00674 gbl.Gaudi.setInstance(makeNullPointer('IAppMgrUI')) 00675 # Reset the Python global 00676 _gaudi = None def __init__(self, outputlevel = -1, joboptions = None, selfoptions = {},
| def GaudiPython::Bindings::AppMgr::__init__ | ( | self, | ||
outputlevel = -1, |
||||
joboptions = None, |
||||
selfoptions = {}, |
||||
dllname = None, |
||||
factname = None | ||||
| ) |
Definition at line 677 of file Bindings.py.
00677 {}, 00678 dllname = None, factname = None) : 00679 global _gaudi 00680 if _gaudi : return 00681 # Protection against multiple calls to exit() if the finalization fails 00682 self.__dict__['_exit_called'] = False 00683 try: 00684 from GaudiKernel.Proxy.Configurable import expandvars 00685 except ImportError: 00686 # pass-through implementation if expandvars is not defined (AthenaCommon) 00687 expandvars = lambda data : data 00688 if dllname and factname: 00689 self.__dict__['_appmgr'] = gbl.Gaudi.createApplicationMgr(dllname,factname) 00690 elif dllname: 00691 self.__dict__['_appmgr'] = gbl.Gaudi.createApplicationMgr(dllname) 00692 else: 00693 self.__dict__['_appmgr'] = gbl.Gaudi.createApplicationMgr() 00694 self.__dict__['_svcloc'] = gbl.Gaudi.svcLocator() 00695 self.__dict__['_algmgr'] = InterfaceCast(gbl.IAlgManager)(self._appmgr) 00696 self.__dict__['_evtpro'] = InterfaceCast(gbl.IEventProcessor)(self._appmgr) 00697 self.__dict__['_svcmgr'] = InterfaceCast(gbl.ISvcManager)(self._appmgr) 00698 self.__dict__['pyalgorithms'] = [] 00699 iService.__init__(self, 'ApplicationMgr', self._appmgr ) 00700 #------python specific initialization------------------------------------- 00701 if self.FSMState() < Gaudi.StateMachine.CONFIGURED : # Not yet configured 00702 self.JobOptionsType = 'NONE' 00703 if joboptions : 00704 from GaudiKernel.ProcessJobOptions import importOptions 00705 importOptions(joboptions) 00706 # Ensure that the ConfigurableUser instances have been applied 00707 import GaudiKernel.Proxy.Configurable 00708 if hasattr(GaudiKernel.Proxy.Configurable, "applyConfigurableUsers"): 00709 GaudiKernel.Proxy.Configurable.applyConfigurableUsers() 00710 # This is the default and could be overridden with "selfopts" 00711 self.OutputLevel = 3 00712 selfprops = Configurable.allConfigurables.get('ApplicationMgr',{}) 00713 if selfprops : selfprops = expandvars(selfprops.getValuedProperties()) 00714 for p,v in selfprops.items() : setattr(self, p, v) 00715 for p,v in selfoptions.items() : setattr(self, p, v) 00716 # Override job options 00717 if outputlevel != -1 : self.OutputLevel = outputlevel 00718 self.configure() 00719 #---MessageSvc------------------------------------------------------------ 00720 ms = self.service('MessageSvc') 00721 if 'MessageSvc' in Configurable.allConfigurables: 00722 msprops = Configurable.allConfigurables['MessageSvc'] 00723 ms = self.service('MessageSvc') 00724 if hasattr(msprops,"getValuedProperties"): 00725 msprops = expandvars(msprops.getValuedProperties()) 00726 for p,v in msprops.items(): 00727 setattr(ms, p, v) 00728 if outputlevel != -1 : ms.OutputLevel = outputlevel 00729 #---JobOptions------------------------------------------------------------ 00730 self.__dict__['_optsvc'] = InterfaceCast(gbl.IJobOptionsSvc)(Helper.service(self._svcloc,'JobOptionsSvc')) 00731 #------Configurables initialization (part2)------------------------------- 00732 for n in getNeededConfigurables(): 00733 c = Configurable.allConfigurables[n] 00734 if n in ['ApplicationMgr','MessageSvc'] : continue # These are already done--- 00735 for p, v in c.getValuedProperties().items() : 00736 v = expandvars(v) 00737 # Note: AthenaCommon.Configurable does not have Configurable.PropertyReference 00738 if hasattr(Configurable,"PropertyReference") and type(v) == Configurable.PropertyReference: 00739 # this is done in "getFullName", but the exception is ignored, 00740 # so we do it again to get it 00741 v = v.__resolve__() 00742 if type(v) == str : v = '"%s"' % v # need double quotes 00743 elif type(v) == long: v = '%d' % v # prevent pending 'L' 00744 self._optsvc.addPropertyToCatalogue(n, StringProperty(p,str(v))) 00745 if hasattr(Configurable,"_configurationLocked"): 00746 Configurable._configurationLocked = True 00747 00748 # Ensure that the exit method is called when exiting from Python 00749 import atexit 00750 atexit.register(self.exit) 00751 00752 #---Hack to avoid bad interactions with the ROOT exit handler 00753 # Look for an exit handler installed by ROOT 00754 root_handler_installed = False 00755 for h in atexit._exithandlers: 00756 func = h[0] 00757 if hasattr(func, "__module__") and func.__module__ == "ROOT": 00758 root_handler_installed = True 00759 break 00760 00761 # If the handler is not yet installed, let's install our private version 00762 # that detects that the ROOT exit handler is installed and add our own 00763 # after it to ensure it is called before. 00764 if not root_handler_installed: 00765 orig_register = atexit.register 00766 def register(func, *targs, **kargs): 00767 orig_register(func, *targs, **kargs) 00768 if hasattr(func, "__module__") and func.__module__ == "ROOT": 00769 orig_register(self.exit) 00770 # we do not need to remove out handler from the list because 00771 # it can be safely called more than once 00772 register.__doc__ = (orig_register.__doc__ + 00773 "\nNote: version hacked by GaudiPython to work " + 00774 "around a problem with the ROOT exit handler") 00775 atexit.register = register 00776
| def GaudiPython::Bindings::AppMgr::state | ( | self | ) |
| def GaudiPython::Bindings::AppMgr::FSMState | ( | self | ) |
| def GaudiPython::Bindings::AppMgr::targetFSMState | ( | self | ) |
| def GaudiPython::Bindings::AppMgr::loaddict | ( | self, | ||
| dict | ||||
| ) |
| def GaudiPython::Bindings::AppMgr::service | ( | self, | ||
| name, | ||||
interface = None | ||||
| ) |
Definition at line 782 of file Bindings.py.
00782 : 00783 svc = Helper.service( self._svcloc, name ) 00784 if interface : 00785 return InterfaceCast(interface)(svc) 00786 else : 00787 return iService(name, svc ) def declSvcType(self, svcname, svctype ) :
| def GaudiPython::Bindings::AppMgr::declSvcType | ( | self, | ||
| svcname, | ||||
| svctype | ||||
| ) |
| def GaudiPython::Bindings::AppMgr::createSvc | ( | self, | ||
| name | ||||
| ) |
| def GaudiPython::Bindings::AppMgr::services | ( | self | ) |
Definition at line 792 of file Bindings.py.
00792 : 00793 l = self._svcloc.getServices() 00794 nl = l.__class__(l) # get a copy 00795 s = [] 00796 for i in range(l.size()) : 00797 s.append(nl.front().name()) 00798 nl.pop_front() 00799 return s def algorithm(self, name , createIf = False ) :
| def GaudiPython::Bindings::AppMgr::algorithm | ( | self, | ||
| name, | ||||
createIf = False | ||||
| ) |
Definition at line 800 of file Bindings.py.
00800 : 00801 alg = Helper.algorithm( self._algmgr, name , createIf ) 00802 if not alg : return iAlgorithm ( name , alg ) 00803 else : return iAlgorithm ( alg.name() , alg ) def algorithms(self) :
| def GaudiPython::Bindings::AppMgr::algorithms | ( | self | ) |
Definition at line 804 of file Bindings.py.
00804 : 00805 l = self._algmgr.getAlgorithms() 00806 nl = l.__class__(l) # get a copy 00807 s = [] 00808 for i in range(l.size()) : 00809 s.append(nl.front().name()) 00810 nl.pop_front() 00811 return s def tool(self, name ) :
| def GaudiPython::Bindings::AppMgr::tool | ( | self, | ||
| name | ||||
| ) |
| def GaudiPython::Bindings::AppMgr::property | ( | self, | ||
| name | ||||
| ) |
Definition at line 814 of file Bindings.py.
00814 : 00815 if name in self.algorithms() : return self.algorithm( name ) 00816 elif name in self.services() : return self.service(name ) 00817 else : return iProperty( name ) def datasvc(self, name) :
| def GaudiPython::Bindings::AppMgr::datasvc | ( | self, | ||
| name | ||||
| ) |
Definition at line 818 of file Bindings.py.
00818 : 00819 if self.state() == Gaudi.StateMachine.CONFIGURED : self.initialize() 00820 svc = Helper.service( self._svcloc, name ) 00821 return iDataSvc(name, svc) def evtsvc(self) :
| def GaudiPython::Bindings::AppMgr::evtsvc | ( | self | ) |
| def GaudiPython::Bindings::AppMgr::detsvc | ( | self | ) |
Definition at line 824 of file Bindings.py.
00824 : 00825 return self.datasvc('DetectorDataSvc') def filerecordsvc(self) :
| def GaudiPython::Bindings::AppMgr::filerecordsvc | ( | self | ) |
| def GaudiPython::Bindings::AppMgr::evtsel | ( | self | ) |
Definition at line 828 of file Bindings.py.
00828 : 00829 if self.state() == Gaudi.StateMachine.CONFIGURED : self.initialize() 00830 if not hasattr(self,'_evtsel') : self.__dict__['_evtsel'] = iEventSelector() 00831 return self._evtsel def histsvc(self, name='HistogramDataSvc') :
| def GaudiPython::Bindings::AppMgr::histsvc | ( | self, | ||
name = 'HistogramDataSvc' | ||||
| ) |
Definition at line 832 of file Bindings.py.
00832 : 00833 svc = Helper.service( self._svcloc, name ) 00834 return iHistogramSvc(name, svc) def ntuplesvc(self, name='NTupleSvc') :
| def GaudiPython::Bindings::AppMgr::ntuplesvc | ( | self, | ||
name = 'NTupleSvc' | ||||
| ) |
Definition at line 835 of file Bindings.py.
00835 : 00836 if name not in self.ExtSvc : self.ExtSvc += [name] 00837 # if self.HistogramPersistency == 'NONE' : self.HistogramPersistency = 'ROOT' 00838 svc = Helper.service( self._svcloc, name, True ) 00839 return iNTupleSvc(name, svc) def partsvc(self ) :
| def GaudiPython::Bindings::AppMgr::partsvc | ( | self | ) |
Definition at line 840 of file Bindings.py.
00840 : 00841 if self.FSMState() == Gaudi.StateMachine.CONFIGURED : self.initialize() 00842 svc = Helper.service( self._svcloc, 'ParticlePropertySvc' ) 00843 return InterfaceCast(gbl.IParticlePropertySvc)(svc) def toolsvc(self, name='ToolSvc') :
| def GaudiPython::Bindings::AppMgr::toolsvc | ( | self, | ||
name = 'ToolSvc' | ||||
| ) |
Definition at line 844 of file Bindings.py.
00844 : 00845 svc = Helper.service( self._svcloc, name, True ) 00846 return iToolSvc(name, svc) def optSvc (self, name='JobOptionsSvc') :
| def GaudiPython::Bindings::AppMgr::optSvc | ( | self, | ||
name = 'JobOptionsSvc' | ||||
| ) |
Definition at line 847 of file Bindings.py.
00847 : 00848 svc = Helper.service( self._svcloc, name, True ) 00849 return iJobOptSvc(name, svc) def readOptions(self, file) :
| def GaudiPython::Bindings::AppMgr::readOptions | ( | self, | ||
| file | ||||
| ) |
Definition at line 850 of file Bindings.py.
00850 : 00851 return self._optsvc.readOptions(file) def addAlgorithm(self, alg) :
| def GaudiPython::Bindings::AppMgr::addAlgorithm | ( | self, | ||
| alg | ||||
| ) |
Add an Algorithm to the list of Top algorithms. It can be either a instance of
an Algorithm class or it name Definition at line 852 of file Bindings.py.
00852 : 00853 """ Add an Algorithm to the list of Top algorithms. It can be either a instance of 00854 an Algorithm class or it name """ 00855 if type(alg) is str : 00856 self.topAlg += [alg] 00857 else : 00858 self.pyalgorithms.append(alg) 00859 setOwnership(alg,0) 00860 if self.targetFSMState() >= Gaudi.StateMachine.INITIALIZED : 00861 alg.sysInitialize() 00862 if self.targetFSMState() == Gaudi.StateMachine.RUNNING : 00863 alg.sysStart() 00864 self.topAlg += [alg.name()] def setAlgorithms(self, algs) :
| def GaudiPython::Bindings::AppMgr::setAlgorithms | ( | self, | ||
| algs | ||||
| ) |
Set the list of Top Algorithms.
It can be an individual of a list of algorithms names or instances Definition at line 865 of file Bindings.py.
00865 : 00866 """ Set the list of Top Algorithms. 00867 It can be an individual of a list of algorithms names or instances """ 00868 if type(algs) is not list : algs = [algs] 00869 names = [] 00870 for alg in algs : 00871 if type(alg) is str : names.append(alg) 00872 else : 00873 self.pyalgorithms.append(alg) 00874 if self.targetFSMState() >= Gaudi.StateMachine.INITIALIZED : 00875 alg.sysInitialize() 00876 if self.targetFSMState() == Gaudi.StateMachine.RUNNING : 00877 alg.sysStart() 00878 names.append(alg.name()) 00879 self.topAlg = names def removeAlgorithm(self, alg) :
| def GaudiPython::Bindings::AppMgr::removeAlgorithm | ( | self, | ||
| alg | ||||
| ) |
Remove an Algorithm to the list of Top algorithms. It can be either a instance of
an Algorithm class or it name Definition at line 880 of file Bindings.py.
00880 : 00881 """ Remove an Algorithm to the list of Top algorithms. It can be either a instance of 00882 an Algorithm class or it name """ 00883 tmp = self.topAlg 00884 if type(alg) is str : 00885 tmp.remove(alg) 00886 else : 00887 tmp.remove(alg.name()) 00888 self.pyalgorithms.remove(alg) 00889 setOwnership(alg,1) 00890 self.topAlg = tmp def config ( self, **args ):
| def GaudiPython::Bindings::AppMgr::config | ( | self, | ||
| args | ||||
| ) |
Simple utility to perform the configuration of Gaudi application.
It reads the set of input job-options files, and set few
additional parameters 'options' through the usage of temporary *.opts file
Usage:
gaudi.config( files = [ '$GAUSSOPTS/Gauss.opts' ,
'$DECFILESROOT/options/10022_010.0GeV.opts' ] ,
options = [ 'EventSelector.PrintFreq = 5 ' ] )
Definition at line 891 of file Bindings.py.
00891 : 00892 """ 00893 Simple utility to perform the configuration of Gaudi application. 00894 It reads the set of input job-options files, and set few 00895 additional parameters 'options' through the usage of temporary *.opts file 00896 Usage: 00897 gaudi.config( files = [ '$GAUSSOPTS/Gauss.opts' , 00898 '$DECFILESROOT/options/10022_010.0GeV.opts' ] , 00899 options = [ 'EventSelector.PrintFreq = 5 ' ] ) 00900 """ 00901 files = args.get('files',[]) 00902 for file in files : 00903 sc = self.readOptions(file) 00904 if sc.isFailure() : 00905 raise RuntimeError , ' Unable to read file "' + file +'" ' 00906 options = args.get('options',None) 00907 if options : 00908 import tempfile 00909 tmpfilename = tempfile.mktemp() 00910 tmpfile = open( tmpfilename, 'w' ) 00911 tmpfile.write ( '#pragma print on \n' ) 00912 tmpfile.write ( '/// File "' + tmpfilename+'" generated by GaudiPython \n\n' ) 00913 for opt in options : 00914 if type(options) is dict : 00915 tmpfile.write( ' \t ' + opt + ' = '+ options[opt]+ ' ; // added by GaudiPython \n' ) 00916 else : 00917 tmpfile.write( ' \t ' + opt + ' ; // added by GaudiPython \n' ) 00918 tmpfile.write ( '/// End of file "' + tmpfilename+'" generated by GaudiPython \n\n' ) 00919 tmpfile.close() 00920 sc = self.readOptions( tmpfilename ) 00921 if sc.isFailure() : 00922 raise RuntimeError , ' Unable to read file "' + tmpfilename +'" ' 00923 os.remove( tmpfilename ) 00924 # We need to make sure that the options are taken by the ApplicationMgr 00925 if self.FSMState() != Gaudi.StateMachine.OFFLINE : # The state is already configured, so we need to do something.... 00926 00927 ## get job-options-service, @see class iJobOptSvc 00928 jos = self.optSvc() 00929 00930 ## list of all libraries 00931 _dlls = jos.getProperty ( self.name() , 'DLLs' ) 00932 ## take care about libraries : APPEND if not done yet 00933 if _dlls : 00934 libs = [ l for l in _dlls if not l in self.DLLs ] 00935 if libs : self.DLLs += libs 00936 00937 ## all external services 00938 _svcs = jos.getProperty ( self.name() , 'ExtSvc' ) 00939 ## take care about services : APPEND if not done yet 00940 if _svcs : 00941 svcs = [ s for s in _svcs if not s in self.ExtSvc ] 00942 if svcs : self.ExtSvc += svcs 00943 00944 ## get all properties 00945 props = jos.getProperties ( self.name() ) 00946 ## finally treat all other properties (presumably scalar properties) 00947 for key in props : 00948 if 'DLLS' == key or 'EXTSVC' == key : continue 00949 self.__setattr__( key , props[key] ) 00950 return SUCCESS # RETURN def configure(self) :
| def GaudiPython::Bindings::AppMgr::configure | ( | self | ) |
| def GaudiPython::Bindings::AppMgr::start | ( | self | ) |
| def GaudiPython::Bindings::AppMgr::run | ( | self, | ||
| n | ||||
| ) |
Definition at line 955 of file Bindings.py.
00955 : 00956 if self.FSMState() == Gaudi.StateMachine.CONFIGURED : 00957 sc = self.initialize() 00958 if sc.isFailure(): return sc 00959 if self.FSMState() == Gaudi.StateMachine.INITIALIZED : 00960 sc = self.start() 00961 if sc.isFailure(): return sc 00962 return self._evtpro.executeRun(n) def executeEvent(self) :
| def GaudiPython::Bindings::AppMgr::executeEvent | ( | self | ) |
| def GaudiPython::Bindings::AppMgr::execute | ( | self | ) |
Definition at line 965 of file Bindings.py.
00965 : 00966 return self._evtpro.executeEvent() def runSelectedEvents(self, pfn, events):
| def GaudiPython::Bindings::AppMgr::runSelectedEvents | ( | self, | ||
| pfn, | ||||
| events | ||||
| ) |
Definition at line 967 of file Bindings.py.
00967 : 00968 if self.FSMState() == Gaudi.StateMachine.CONFIGURED : 00969 sc = self.initialize() 00970 if sc.isFailure(): return sc 00971 if self.FSMState() == Gaudi.StateMachine.INITIALIZED : 00972 sc = self.start() 00973 if sc.isFailure(): return sc 00974 #--- Access a number of services ---- 00975 if not hasattr(self,'_perssvc'): self.__dict__['_perssvc'] = self.service('EventPersistencySvc','IAddressCreator') 00976 if not hasattr(self,'_filecat'): self.__dict__['_filecat'] = self.service('FileCatalog','Gaudi::IFileCatalog') 00977 if not hasattr(self,'_evtmgr'): self.__dict__['_evtmgr'] = self.service('EventDataSvc','IDataManagerSvc') 00978 #--- Get FID from PFN and number of events in file 00979 if pfn.find('PFN:') == 0: pfn = pfn[4:] 00980 fid, maxevt = _getFIDandEvents(pfn) 00981 #--- Add FID into catalog if needed --- 00982 if not self._filecat.existsFID(fid) : self._filecat.registerPFN(fid, pfn, '') 00983 #--- Loop over events 00984 if type(events) is not list : events = (events,) 00985 for evt in events : 00986 #--- Create POOL Address from Generic Address 00987 gadd = gbl.GenericAddress(0x202, 1, fid, '/Event', 0, evt) 00988 oadd = makeNullPointer('IOpaqueAddress') 00989 self._perssvc.createAddress(gadd.svcType(),gadd.clID(),gadd.par(),gadd.ipar(),oadd) 00990 #--- Clear TES, set root and run all algorithms 00991 self._evtmgr.clearStore() 00992 self._evtmgr.setRoot('/Event',oadd) 00993 self._evtpro.executeEvent() def exit(self):
| def GaudiPython::Bindings::AppMgr::exit | ( | self | ) |
Definition at line 994 of file Bindings.py.
00994 : 00995 # Protection against multiple calls to exit() if the finalization fails 00996 if not self._exit_called: 00997 self.__dict__['_exit_called'] = True 00998 if self.FSMState() == Gaudi.StateMachine.RUNNING: 00999 self._appmgr.stop().ignore() 01000 if self.FSMState() == Gaudi.StateMachine.INITIALIZED: 01001 self._appmgr.finalize().ignore() 01002 if self.FSMState() == Gaudi.StateMachine.CONFIGURED: 01003 self._appmgr.terminate() 01004 return SUCCESS ## Custom destructor to ensure that the application is correctly finalized when exiting from python.
| def GaudiPython::Bindings::AppMgr::__del__ | ( | self | ) |
Custom destructor to ensure that the application is correctly finalized when exiting from python.
Definition at line 1006 of file Bindings.py.
GaudiPython::Bindings::AppMgr::evtSvc = evtsvc [static] |
Definition at line 1008 of file Bindings.py.
GaudiPython::Bindings::AppMgr::histSvc = histsvc [static] |
Definition at line 1009 of file Bindings.py.
GaudiPython::Bindings::AppMgr::ntupleSvc = ntuplesvc [static] |
Definition at line 1010 of file Bindings.py.
GaudiPython::Bindings::AppMgr::evtSel = evtsel [static] |
Definition at line 1011 of file Bindings.py.
GaudiPython::Bindings::AppMgr::detSvc = detsvc [static] |
Definition at line 1012 of file Bindings.py.
GaudiPython::Bindings::AppMgr::toolSvc = toolsvc [static] |
Definition at line 1013 of file Bindings.py.
GaudiPython::Bindings::AppMgr::partSvc = partsvc [static] |
Definition at line 1014 of file Bindings.py.
Definition at line 701 of file Bindings.py.
Definition at line 710 of file Bindings.py.
Definition at line 879 of file Bindings.py.