9 from GaudiPython
import *
10 from GaudiPython
import gbl, InterfaceCast
11 from GaudiPython.Bindings
import Helper, iProperty
12 from AthenaCommon.Logging
import logging
15 """Helper class to work with Python bindings in athenaMT/PT"""
17 log = logging.getLogger(
"TrigApp" )
19 def service(self, name, iface = gbl.IService):
20 """Retrieve service with interface iface.
21 Example: trigApp.service('MessageSvc',gbl.IMessageSvc)"""
23 svc = InterfaceCast(iface)(Helper.service(gbl.Gaudi.svcLocator(), name))
27 """Change the property of a client to a new value. Both client and property
28 can be a regular expression in which case all properties matching will
29 be changed to the new value. Note, this will only change properties that
30 already exist in the JobOptionsCatalogue.
31 Example: trigApp.changeJobProperties('.*', 'OutputLevel', DEBUG)"""
33 jobOptSvc = InterfaceCast(gbl.Gaudi.Interfaces.IOptionsSvc)(Helper.service(gbl.Gaudi.svcLocator(),
"JobOptionsSvc"))
35 self.
log.
error(
"Cannot find JobOptionsSvc")
39 reClient = re.compile(clientName)
40 reProp = re.compile(propertyName)
44 for p
in jobOptSvc.items():
47 client, prop = name.rsplit(
'.',1)
48 if reClient.match(client)
and reProp.match(prop):
49 self.
log.
info(
"Changing %s.%s from '%s' to '%s'", client, prop, value, newValue)
50 iprop = iProperty(client)
51 setattr(iprop, prop, newValue)