 |
ATLAS Offline Software
|
|
def | CondInputLoaderCfg (flags, **kwargs) |
|
def | DBReplicaSvcCfg (flags, vetoDBRelease=False, **kwargs) |
|
def | IOVDbSvcCfg (flags, **kwargs) |
|
def | addFolders (flags, folderStrings, detDb=None, className=None, extensible=False, tag=None, db=None, modifiers='') |
|
def | addFolderList (flags, listOfFolderInfoTuple, extensible=False, db=None, modifiers='') |
|
def | addFoldersSplitOnline (flags, detDb, onlineFolders, offlineFolders, className=None, extensible=False, addMCString='_OFL', splitMC=False, tag=None, forceDb=None, modifiers='') |
|
def | addOverride (flags, folder, tag, db=None) |
|
def | _extractFolder (folderString) |
|
def | getSqliteContent (sqliteInput, takeFolders, databaseInstance) |
|
◆ _extractFolder()
def python.IOVDbSvcConfig._extractFolder |
( |
|
folderString | ) |
|
|
private |
Extract the folder name (non-XML text) from a IOVDbSvc.Folders entry
Definition at line 241 of file IOVDbSvcConfig.py.
242 """Extract the folder name (non-XML text) from a IOVDbSvc.Folders entry"""
246 while ix < len(folderString):
247 if (folderString[ix] ==
'<' and xmlTag ==
''):
248 ix2 = folderString.find(
'>', ix)
250 xmlTag = folderString[ix + 1 : ix2].strip()
252 elif folderString[ix:ix+2] ==
'</' and xmlTag !=
'':
253 ix2 = folderString.find(
'>', ix)
258 ix2 = folderString.find(
'<', ix)
260 ix2 = len(folderString)
262 folderName = folderName + folderString[ix : ix2]
264 return folderName.strip()
◆ addFolderList()
def python.IOVDbSvcConfig.addFolderList |
( |
|
flags, |
|
|
|
listOfFolderInfoTuple, |
|
|
|
extensible = False , |
|
|
|
db = None , |
|
|
|
modifiers = '' |
|
) |
| |
Add access to the given set of folders, in the identified subdetector schema.
FolerInfoTuple consists of (foldername,detDB,classname)
If EXTENSIBLE is set, then if we access an open-ended IOV at the end of the list,
the end time for this range will be set to just past the current event.
Subsequent accesses will update this end time for subsequent events.
This allows the possibility of later adding a new IOV using IOVSvc::setRange.
Definition at line 99 of file IOVDbSvcConfig.py.
99 def addFolderList(flags, listOfFolderInfoTuple, extensible=False, db=None, modifiers=''):
100 """Add access to the given set of folders, in the identified subdetector schema.
101 FolerInfoTuple consists of (foldername,detDB,classname)
103 If EXTENSIBLE is set, then if we access an open-ended IOV at the end of the list,
104 the end time for this range will be set to just past the current event.
105 Subsequent accesses will update this end time for subsequent events.
106 This allows the possibility of later adding a new IOV using IOVSvc::setRange."""
110 flags.IOVDb.SqliteFolders,
111 flags.IOVDb.DatabaseInstance)
113 for (fs, detDb, className)
in listOfFolderInfoTuple:
116 if className
is not None:
117 loadFolders.add((className, fse))
119 if fse
in sqliteFolders:
120 msg.warning(f
'Reading folder {fs} from sqlite, bypassing production database')
121 fs+=sqliteFolders[fse]
122 elif detDb
is not None and fs.find(
'<db>') == -1:
127 dbName = flags.IOVDb.DatabaseInstance
128 if detDb
in _dblist.keys():
129 fs = f
'<db>{_dblist[detDb]}/{dbName}</db> {fs}'
130 elif os.access(detDb, os.R_OK):
132 fs = f
'<db>sqlite://;schema={detDb};dbname={dbName}</db> {fs}'
134 raise ConfigurationError(f
'Error, db shorthand {detDb} not known, nor found as sqlite file')
138 fs = fs +
'<extensible/>'
148 result.getPrimary().Folders+=folders
150 result.getCondAlgo(
'CondInputLoader').Load |= loadFolders
152 if flags.IOVDb.CleanerRingSize > 0:
154 cleanerSvc = CompFactory.Athena.DelayedConditionsCleanerSvc(RingSize=flags.IOVDb.CleanerRingSize)
155 result.addService(cleanerSvc)
156 result.addService(CompFactory.Athena.ConditionsCleanerSvc(CleanerSvc=cleanerSvc))
◆ addFolders()
def python.IOVDbSvcConfig.addFolders |
( |
|
flags, |
|
|
|
folderStrings, |
|
|
|
detDb = None , |
|
|
|
className = None , |
|
|
|
extensible = False , |
|
|
|
tag = None , |
|
|
|
db = None , |
|
|
|
modifiers = '' |
|
) |
| |
Definition at line 81 of file IOVDbSvcConfig.py.
81 def addFolders(flags, folderStrings, detDb=None, className=None, extensible=False, tag=None, db=None, modifiers=''):
84 tagString =
'<tag>%s</tag>' % tag
87 if isinstance(folderStrings, str):
88 return addFolderList(flags, ((folderStrings + tagString, detDb, className),), extensible, db, modifiers)
91 folderDefinitions = []
93 for folderString
in folderStrings:
94 folderDefinitions.append((folderString + tagString, detDb, className))
96 return addFolderList(flags, folderDefinitions, extensible, db, modifiers)
◆ addFoldersSplitOnline()
def python.IOVDbSvcConfig.addFoldersSplitOnline |
( |
|
flags, |
|
|
|
detDb, |
|
|
|
onlineFolders, |
|
|
|
offlineFolders, |
|
|
|
className = None , |
|
|
|
extensible = False , |
|
|
|
addMCString = '_OFL' , |
|
|
|
splitMC = False , |
|
|
|
tag = None , |
|
|
|
forceDb = None , |
|
|
|
modifiers = '' |
|
) |
| |
Add access to given folder, using either online_folder or offline_folder. For MC, add addMCString as a postfix (default is _OFL)
Definition at line 162 of file IOVDbSvcConfig.py.
162 def addFoldersSplitOnline(flags, detDb, onlineFolders, offlineFolders, className=None, extensible=False, addMCString='_OFL', splitMC=False, tag=None, forceDb=None, modifiers=''):
163 """Add access to given folder, using either online_folder or offline_folder. For MC, add addMCString as a postfix (default is _OFL)"""
165 if flags.Common.isOnline
and not flags.Input.isMC:
166 folders = onlineFolders
167 elif splitMC
and not flags.Input.isMC:
168 folders = onlineFolders
171 detDb = detDb + addMCString
172 folders = offlineFolders
174 return addFolders(flags, folders, detDb, className, extensible, tag=tag, db=forceDb, modifiers=modifiers)
◆ addOverride()
def python.IOVDbSvcConfig.addOverride |
( |
|
flags, |
|
|
|
folder, |
|
|
|
tag, |
|
|
|
db = None |
|
) |
| |
Add a tag override for the specified folder
Definition at line 233 of file IOVDbSvcConfig.py.
234 """Add a tag override for the specified folder"""
237 suffix = f
' <db>{db}</db>'
238 return IOVDbSvcCfg(flags, overrideTags=(f
'<prefix>{folder}</prefix> <tag>{tag}</tag>{suffix}',))
◆ CondInputLoaderCfg()
def python.IOVDbSvcConfig.CondInputLoaderCfg |
( |
|
flags, |
|
|
** |
kwargs |
|
) |
| |
Definition at line 12 of file IOVDbSvcConfig.py.
14 result.addCondAlgo(CompFactory.CondInputLoader(**kwargs))
◆ DBReplicaSvcCfg()
def python.IOVDbSvcConfig.DBReplicaSvcCfg |
( |
|
flags, |
|
|
|
vetoDBRelease = False , |
|
|
** |
kwargs |
|
) |
| |
Definition at line 18 of file IOVDbSvcConfig.py.
20 kwargs.setdefault(
'COOLSQLiteVetoPattern',
'/DBRelease/')
23 result.addService(CompFactory.DBReplicaSvc(**kwargs))
◆ getSqliteContent()
def python.IOVDbSvcConfig.getSqliteContent |
( |
|
sqliteInput, |
|
|
|
takeFolders, |
|
|
|
databaseInstance |
|
) |
| |
Definition at line 268 of file IOVDbSvcConfig.py.
269 if sqliteInput ==
"":
return []
271 if isinstance(takeFolders, str):
272 takeFolders=[takeFolders,]
273 dbStr=
"sqlite://;schema="+ sqliteInput+
";dbname="+databaseInstance
274 from PyCool
import cool
275 dbSvc = cool.DatabaseSvcFactory.databaseService()
276 db = dbSvc.openDatabase(dbStr)
277 nodelist=db.listAllNodes()
278 for node
in nodelist:
279 if db.existsFolder(node):
280 if (len(takeFolders)>0
and str(node)
not in takeFolders):
continue
281 connStr=
"<db>"+dbStr+
"</db>"
283 if f.versioningMode
is not cool.FolderVersioning.SINGLE_VERSION:
286 connStr+=
"<tag>"+tags[0]+
"</tag>"
287 sqliteFolders[
str(node)]=connStr
290 if len(takeFolders)>0:
291 missedFolders=
set(takeFolders)-
set(sqliteFolders.keys())
292 if len(missedFolders):
293 msg.error(
"The following folders were requested via the flag IOVSvc.sqliteFolder but not found in the sqlite file %s",(sqliteInput))
294 for f
in missedFolders:
297 msg.info(
"The following folders/tags are read from sqlite:")
298 for v
in sqliteFolders.items():
299 msg.info(
"\t"+
str(v))
◆ IOVDbSvcCfg()
def python.IOVDbSvcConfig.IOVDbSvcCfg |
( |
|
flags, |
|
|
** |
kwargs |
|
) |
| |
Definition at line 28 of file IOVDbSvcConfig.py.
32 kwargs.setdefault(
'OnlineMode', flags.Common.isOnline)
33 kwargs.setdefault(
'dbConnection', flags.IOVDb.DBConnection)
34 kwargs.setdefault(
'crestServer', flags.IOVDb.CrestServer)
36 kwargs.setdefault(
'DBInstance', flags.IOVDb.DatabaseInstance)
38 if 'FRONTIER_SERVER' in os.environ.keys()
and os.environ[
'FRONTIER_SERVER'] !=
'':
39 kwargs.setdefault(
'CacheAlign', 3)
42 if flags.Common.isOnline
and flags.Trigger.Online.isPartition:
43 kwargs[
'CacheAlign'] = 0
44 kwargs[
'CacheRun'] = 0
45 kwargs[
'CacheTime'] = 0
47 kwargs.setdefault(
'GlobalTag', flags.IOVDb.GlobalTag)
48 if 'Folders' in kwargs:
49 kwargs[
'Folders'] = [
'/TagInfo<metaOnly/>'] + kwargs[
'Folders']
51 kwargs.setdefault(
'Folders', [
'/TagInfo<metaOnly/>'])
54 if flags.IOVDb.GlobalTag
and flags.IOVDb.GlobalTag.startswith(
'CREST-'):
55 kwargs.setdefault(
'Source',
'CREST')
57 result.addService(CompFactory.IOVDbSvc(**kwargs), primary=
True)
60 from AthenaPoolCnvSvc.PoolCommonConfig
import PoolSvcCfg, AthenaPoolCnvSvcCfg
61 result.merge(
PoolSvcCfg(flags, withCatalogs=
True))
63 result.addService(CompFactory.CondSvc())
64 result.addService(CompFactory.ProxyProviderSvc(ProviderNames=[
'IOVDbSvc']))
66 if not flags.Input.isMC:
70 from EventInfoMgt.TagInfoMgrConfig
import TagInfoMgrCfg
74 from AthenaServices.MetaDataSvcConfig
import MetaDataSvcCfg
◆ _dblist
dictionary python.IOVDbSvcConfig._dblist |
|
private |
◆ acc
◆ Files
python.IOVDbSvcConfig.Files |
◆ flags
python.IOVDbSvcConfig.flags = initConfigFlags() |
◆ msg
python.IOVDbSvcConfig.msg = logging.getLogger('IOVDbSvcCfg') |
def CondInputLoaderCfg(flags, **kwargs)
def addFolderList(flags, listOfFolderInfoTuple, extensible=False, db=None, modifiers='')
def TagInfoMgrCfg(flags, tagValuePairs={})
def addOverride(flags, folder, tag, db=None)
def addFolders(flags, folderStrings, detDb=None, className=None, extensible=False, tag=None, db=None, modifiers='')
def IOVDbSvcCfg(flags, **kwargs)
constexpr std::enable_if_t< is_bitmask_v< E >, E & > set(E &lhs, E rhs)
Convenience function to set bits in a class enum bitmask.
def PoolSvcCfg(flags, withCatalogs=False, **kwargs)
def AthenaPoolCnvSvcCfg(flags, **kwargs)
def addFoldersSplitOnline(flags, detDb, onlineFolders, offlineFolders, className=None, extensible=False, addMCString='_OFL', splitMC=False, tag=None, forceDb=None, modifiers='')
def _extractFolder(folderString)
def DBReplicaSvcCfg(flags, vetoDBRelease=False, **kwargs)
def getSqliteContent(sqliteInput, takeFolders, databaseInstance)