ATLAS Offline Software
Loading...
Searching...
No Matches
python.TriggerConfigAccessBase.TriggerConfigAccess Class Reference
Collaboration diagram for python.TriggerConfigAccessBase.TriggerConfigAccess:

Public Member Functions

 __init__ (self, ConfigType configType, str mainkey, str filename="", str jsonString="", str dbalias="", int dbkey=0, bool useCrest=False, str crestServer="")
None load (self)
 __str__ (self)
 __iter__ (self)
 __getitem__ (self, item)
 __len__ (self)
 config (self)
 prettyPrint (self)
 name (self)
 filetype (self)
 printSummary (self)
 writeFile (self, str|None filename=None)

Public Attributes

ConfigLoader loader

Static Protected Member Functions

dict[str, str] _isCrestConnection (str dbalias, bool useCrest, str crestServer)
ConfigLoader _getLoader (*, configType, str filename="", str jsonString="", str dbalias="", int dbkey=0, bool useCrest=False, str crestServer="")

Protected Attributes

 _mainkey = mainkey
ConfigLoader _config = None

Detailed Description

base class to hold the configuration (dict)
and provides basic functions to access and print

Definition at line 419 of file TriggerConfigAccessBase.py.

Constructor & Destructor Documentation

◆ __init__()

python.TriggerConfigAccessBase.TriggerConfigAccess.__init__ ( self,
ConfigType configType,
str mainkey,
str filename = "",
str jsonString = "",
str dbalias = "",
int dbkey = 0,
bool useCrest = False,
str crestServer = "" )

Definition at line 424 of file TriggerConfigAccessBase.py.

425 dbalias: str = "", dbkey: int = 0, useCrest: bool = False, crestServer: str = ""):
426 self.loader: ConfigLoader = TriggerConfigAccess._getLoader(configType = configType, filename = filename, jsonString = jsonString, dbalias = dbalias, dbkey = dbkey,
427 useCrest=useCrest, crestServer=crestServer)
428 self._mainkey = mainkey
429 self._config = None
430

Member Function Documentation

◆ __getitem__()

python.TriggerConfigAccessBase.TriggerConfigAccess.__getitem__ ( self,
item )

Definition at line 479 of file TriggerConfigAccessBase.py.

479 def __getitem__(self, item):
480 return self._config[item]
481

◆ __iter__()

python.TriggerConfigAccessBase.TriggerConfigAccess.__iter__ ( self)

Definition at line 476 of file TriggerConfigAccessBase.py.

476 def __iter__(self):
477 return iter(self[self._mainkey])
478

◆ __len__()

python.TriggerConfigAccessBase.TriggerConfigAccess.__len__ ( self)

Definition at line 482 of file TriggerConfigAccessBase.py.

482 def __len__(self):
483 return len(self[self._mainkey])
484

◆ __str__()

python.TriggerConfigAccessBase.TriggerConfigAccess.__str__ ( self)

Definition at line 473 of file TriggerConfigAccessBase.py.

473 def __str__(self):
474 return str(self._config)
475

◆ _getLoader()

ConfigLoader python.TriggerConfigAccessBase.TriggerConfigAccess._getLoader ( * ,
configType,
str filename = "",
str jsonString = "",
str dbalias = "",
int dbkey = 0,
bool useCrest = False,
str crestServer = "" )
staticprotected

Definition at line 455 of file TriggerConfigAccessBase.py.

456 useCrest: bool = False, crestServer: str = "") -> ConfigLoader:
457
458 if filename:
459 return ConfigFileLoader(configType, filename )
460 elif dbalias and dbkey>0:
461 if (connParams := TriggerConfigAccess._isCrestConnection(dbalias, useCrest, crestServer)):
462 return ConfigCrestLoader(configType=configType, dbname=connParams["dbname"], dbkey=dbkey, crestServer=connParams["crest_server"])
463 else:
464 return ConfigDBLoader(configType, dbalias, dbkey)
465 elif jsonString:
466 return ConfigDirectLoader(configType, jsonString )
467 else:
468 raise RuntimeError("Neither input file, nor JSON nor db alias and key provided")
469

◆ _isCrestConnection()

dict[str, str] python.TriggerConfigAccessBase.TriggerConfigAccess._isCrestConnection ( str dbalias,
bool useCrest,
str crestServer )
staticprotected
 Determine whether the connection is a CREST connection

Definition at line 432 of file TriggerConfigAccessBase.py.

432 def _isCrestConnection(dbalias: str, useCrest: bool, crestServer: str) -> dict[str, str]:
433 """ Determine whether the connection is a CREST connection
434 """
435 connParams: dict[str, str] = {}
436 if dbalias.startswith("http://") or dbalias.startswith("https://"):
437 # expect a complete crest connection string, consisting of server and dbname
438 if (match := re.match(r'^(http[s]?://[^/]+/api-v\d+\.\d+)/(.+)$', dbalias)):
439 connParams["crest_server"] = match.group(1)
440 connParams["dbname"] = match.group(2)
441 else:
442 raise RuntimeError(f"Invalid CREST connection string: {dbalias}")
443 elif dbalias in TriggerCrestUtil.allCrestConnections():
444 connParams["crest_server"] = crestServer
445 connParams["dbname"] = dbalias
446 elif useCrest:
447 connParams["crest_server"] = crestServer
448 if (dbname := TriggerCrestUtil.getCrestConnection(dbalias)) is not None:
449 connParams["dbname"] = dbname
450 else:
451 raise RuntimeError(f"Cannot resolve CREST connection '{dbalias}'")
452 return connParams
453

◆ config()

python.TriggerConfigAccessBase.TriggerConfigAccess.config ( self)
returns the configuration 

Definition at line 485 of file TriggerConfigAccessBase.py.

485 def config(self):
486 """ returns the configuration """
487 return self._config
488

◆ filetype()

python.TriggerConfigAccessBase.TriggerConfigAccess.filetype ( self)

Definition at line 496 of file TriggerConfigAccessBase.py.

496 def filetype(self):
497 return self["filetype"]
498

◆ load()

None python.TriggerConfigAccessBase.TriggerConfigAccess.load ( self)

Definition at line 470 of file TriggerConfigAccessBase.py.

470 def load(self) -> None:
471 self._config = self.loader.load()
472

◆ name()

python.TriggerConfigAccessBase.TriggerConfigAccess.name ( self)

Definition at line 493 of file TriggerConfigAccessBase.py.

493 def name(self):
494 return self["name"]
495

◆ prettyPrint()

python.TriggerConfigAccessBase.TriggerConfigAccess.prettyPrint ( self)

Definition at line 489 of file TriggerConfigAccessBase.py.

489 def prettyPrint(self):
490 if self._config:
491 print(json.dumps(self._config, indent = 4, separators=(',', ': ')))
492
void print(char *figname, TCanvas *c1)

◆ printSummary()

python.TriggerConfigAccessBase.TriggerConfigAccess.printSummary ( self)
print summary info, should be overwritten by derived classes 

Definition at line 499 of file TriggerConfigAccessBase.py.

499 def printSummary(self):
500 """ print summary info, should be overwritten by derived classes """
501 log.info("Configuration name: {0}".format(self.name()))
502 log.info("Configuration size: {0}".format(len(self)))
503

◆ writeFile()

python.TriggerConfigAccessBase.TriggerConfigAccess.writeFile ( self,
str | None filename = None )

Definition at line 504 of file TriggerConfigAccessBase.py.

504 def writeFile(self, filename: str | None = None):
505 if filename is None:
506 filename = self.loader.getWriteFilename()
507 with open(filename, 'w') as fh:
508 json.dump(self.config(), fh, indent = 4, separators=(',', ': '))
509 log.info("Wrote file %s", filename)

Member Data Documentation

◆ _config

python.TriggerConfigAccessBase.TriggerConfigAccess._config = None
protected

Definition at line 429 of file TriggerConfigAccessBase.py.

◆ _mainkey

python.TriggerConfigAccessBase.TriggerConfigAccess._mainkey = mainkey
protected

Definition at line 428 of file TriggerConfigAccessBase.py.

◆ loader

ConfigLoader python.TriggerConfigAccessBase.TriggerConfigAccess.loader
Initial value:
= TriggerConfigAccess._getLoader(configType = configType, filename = filename, jsonString = jsonString, dbalias = dbalias, dbkey = dbkey,
useCrest=useCrest, crestServer=crestServer)

Definition at line 426 of file TriggerConfigAccessBase.py.


The documentation for this class was generated from the following file: