ATLAS Offline Software
Public Member Functions | Static Private Member Functions | Private Attributes | List of all members
python.TriggerConfigAccessBase.TriggerConfigAccess Class Reference
Collaboration diagram for python.TriggerConfigAccessBase.TriggerConfigAccess:

Public Member Functions

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

Static Private 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="")
 

Private Attributes

 _mainkey
 
 _config
 

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__()

def 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.

424  def __init__(self, configType: ConfigType, mainkey: str, filename: str = "", jsonString: str = "",
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__()

def 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__()

def 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__()

def 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__()

def 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 = "" 
)
staticprivate

Definition at line 455 of file TriggerConfigAccessBase.py.

455  def _getLoader(*, configType, filename: str = "", jsonString: str = "", dbalias: str = "", dbkey: int = 0,
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 
)
staticprivate
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()

def 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()

def 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()

def python.TriggerConfigAccessBase.TriggerConfigAccess.name (   self)

Definition at line 493 of file TriggerConfigAccessBase.py.

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

◆ prettyPrint()

def 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 

◆ printSummary()

def 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()

def 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
private

Definition at line 428 of file TriggerConfigAccessBase.py.

◆ _mainkey

python.TriggerConfigAccessBase.TriggerConfigAccess._mainkey
private

Definition at line 427 of file TriggerConfigAccessBase.py.


The documentation for this class was generated from the following file:
createLinkingScheme.iter
iter
Definition: createLinkingScheme.py:62
vtune_athena.format
format
Definition: vtune_athena.py:14
python.base_data.config
config
Definition: base_data.py:20
python.Bindings.__iter__
__iter__
Definition: Control/AthenaPython/python/Bindings.py:794
python.processes.powheg.ZZj_MiNNLO.ZZj_MiNNLO.__init__
def __init__(self, base_directory, **kwargs)
Constructor: all process options are set here.
Definition: ZZj_MiNNLO.py:18
print
void print(char *figname, TCanvas *c1)
Definition: TRTCalib_StrawStatusPlots.cxx:26
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
Trk::open
@ open
Definition: BinningType.h:40
str
Definition: BTagTrackIpAccessor.cxx:11
python.root_pickle.load
def load(f, use_proxy=1, key=None)
Definition: root_pickle.py:430
python.Bindings.__getitem__
__getitem__
Definition: Control/AthenaPython/python/Bindings.py:782