The Gaudi Framework  master (adcf1ca6)
Loading...
Searching...
No Matches
GaudiConfig2.semantics.MappingSemantics Class Reference
Inheritance diagram for GaudiConfig2.semantics.MappingSemantics:
Collaboration diagram for GaudiConfig2.semantics.MappingSemantics:

Public Member Functions

 __init__ (self, cpp_type)
 
 name (self)
 
 name (self, value)
 
 store (self, value)
 
 default (self, value)
 
 opt_value (self, value)
 
 merge (self, a, b)
 
- Public Member Functions inherited from GaudiConfig2.semantics.PropertySemantics
 __init__ (self, cpp_type)
 
 cpp_type (self)
 
 cpp_type (self, value)
 
 load (self, value)
 
 is_set (self, value)
 

Public Attributes

 key_semantics = getSemanticsFor(template_args[0])
 
 value_semantics = getSemanticsFor(template_args[1])
 
- Public Attributes inherited from GaudiConfig2.semantics.PropertySemantics
 cpp_type = cpp_type
 

Static Private Attributes

tuple __handled_types__ = (re.compile(r"(std::)?(unordered_)?map<.*>$"),)
 

Additional Inherited Members

- Protected Attributes inherited from GaudiConfig2.semantics.PropertySemantics
 _name = None
 
 _cpp_type = value
 

Detailed Description

Definition at line 704 of file semantics.py.

Constructor & Destructor Documentation

◆ __init__()

GaudiConfig2.semantics.MappingSemantics.__init__ ( self,
cpp_type )

Definition at line 707 of file semantics.py.

707 def __init__(self, cpp_type):
708 super(MappingSemantics, self).__init__(cpp_type)
709 template_args = list(extract_template_args(cpp_type))
710 self.key_semantics = getSemanticsFor(template_args[0])
711 self.value_semantics = getSemanticsFor(template_args[1])
712

Member Function Documentation

◆ default()

GaudiConfig2.semantics.MappingSemantics.default ( self,
value )

Definition at line 729 of file semantics.py.

729 def default(self, value):
730 new_value = _DictHelper(self.key_semantics, self.value_semantics)
731 new_value.default = value
732 return new_value
733

◆ merge()

GaudiConfig2.semantics.MappingSemantics.merge ( self,
a,
b )
Merge two maps. Throw ValueError if there are conflicting key/value pairs.

Reimplemented from GaudiConfig2.semantics.PropertySemantics.

Definition at line 742 of file semantics.py.

742 def merge(self, a, b):
743 """Merge two maps. Throw ValueError if there are conflicting key/value pairs."""
744
745 # Optimization for most common case
746 if a == b:
747 return a
748
749 for k, v in b.items():
750 try:
751 va = a[k]
752 except KeyError:
753 a[k] = v
754 else:
755 if va != v:
756 raise ValueError(
757 f"conflicting values in map for key {k}: {v} and {va}"
758 )
759 return a
760
761
int merge(const char *target, const char *source, bool fixup=false, bool dbg=true)
Definition merge.C:417

◆ name() [1/2]

GaudiConfig2.semantics.MappingSemantics.name ( self)

Reimplemented from GaudiConfig2.semantics.PropertySemantics.

Definition at line 714 of file semantics.py.

714 def name(self):
715 return self._name
716

◆ name() [2/2]

GaudiConfig2.semantics.MappingSemantics.name ( self,
value )

Reimplemented from GaudiConfig2.semantics.PropertySemantics.

Definition at line 718 of file semantics.py.

718 def name(self, value):
719 self._name = value
720 self.key_semantics.name = "{} key".format(self._name)
721 self.value_semantics.name = "{} value".format(self._name)
722
GAUDI_API std::string format(const char *,...)
MsgStream format utility "a la sprintf(...)".
Definition MsgStream.cpp:93

◆ opt_value()

GaudiConfig2.semantics.MappingSemantics.opt_value ( self,
value )
Option string version of value.

Reimplemented from GaudiConfig2.semantics.PropertySemantics.

Definition at line 734 of file semantics.py.

734 def opt_value(self, value):
735 """
736 Option string version of value.
737 """
738 if not isinstance(value, _DictHelper):
739 value = self.default(value)
740 return value.opt_value()
741

◆ store()

GaudiConfig2.semantics.MappingSemantics.store ( self,
value )
Validation/transformation of the data to be stored.

Reimplemented from GaudiConfig2.semantics.PropertySemantics.

Definition at line 723 of file semantics.py.

723 def store(self, value):
724 # No explicit type checking as anything else than dict fails in update call
725 new_value = _DictHelper(self.key_semantics, self.value_semantics)
726 new_value.update(value)
727 return new_value
728

Member Data Documentation

◆ __handled_types__

tuple GaudiConfig2.semantics.MappingSemantics.__handled_types__ = (re.compile(r"(std::)?(unordered_)?map<.*>$"),)
staticprivate

Definition at line 705 of file semantics.py.

◆ key_semantics

GaudiConfig2.semantics.MappingSemantics.key_semantics = getSemanticsFor(template_args[0])

Definition at line 710 of file semantics.py.

◆ value_semantics

GaudiConfig2.semantics.MappingSemantics.value_semantics = getSemanticsFor(template_args[1])

Definition at line 711 of file semantics.py.


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