The Gaudi Framework  master (ff829712)
Loading...
Searching...
No Matches
GaudiConfig2._configurables.Property Class Reference
Inheritance diagram for GaudiConfig2._configurables.Property:
Collaboration diagram for GaudiConfig2._configurables.Property:

Public Member Functions

 __init__ (self, cpp_type, default, doc="undocumented", semantics=None)
 
 cpp_type (self)
 
 name (self)
 
 __get__ (self, instance, owner)
 
 __set__ (self, instance, value)
 
 __delete__ (self, instance)
 
 __set_name__ (self, owner, name)
 
 __is_set__ (self, instance, owner)
 
 __opt_value__ (self, instance, owner)
 
 __merge__ (self, instance, owner, value)
 

Public Attributes

 semantics = getSemanticsFor(cpp_type)
 
 default = default
 
 name
 

Private Attributes

 __doc__ = doc
 

Detailed Description

Descriptor class to implement validation of Configurable properties.

Definition at line 31 of file _configurables.py.

Constructor & Destructor Documentation

◆ __init__()

GaudiConfig2._configurables.Property.__init__ ( self,
cpp_type,
default,
doc = "undocumented",
semantics = None )

Definition at line 36 of file _configurables.py.

36 def __init__(self, cpp_type, default, doc="undocumented", semantics=None):
37 from .semantics import getSemanticsFor
38
39 if semantics is None:
40 self.semantics = getSemanticsFor(cpp_type)
41 else:
42 self.semantics = getSemanticsFor(semantics, strict=True)
43
44 self.default = default
45 self.__doc__ = doc
46

Member Function Documentation

◆ __delete__()

GaudiConfig2._configurables.Property.__delete__ ( self,
instance )

Definition at line 63 of file _configurables.py.

63 def __delete__(self, instance):
64 del instance._properties[self.name]
65

◆ __get__()

GaudiConfig2._configurables.Property.__get__ ( self,
instance,
owner )

Definition at line 55 of file _configurables.py.

55 def __get__(self, instance, owner):
56 if self.name not in instance._properties and hasattr(self.semantics, "default"):
57 instance._properties[self.name] = self.semantics.default(self.default)
58 return self.semantics.load(instance._properties.get(self.name, self.default))
59

◆ __is_set__()

GaudiConfig2._configurables.Property.__is_set__ ( self,
instance,
owner )

Definition at line 69 of file _configurables.py.

69 def __is_set__(self, instance, owner):
70 try:
71 value = instance._properties[self.name]
72 return self.semantics.is_set(value)
73 except KeyError:
74 return False
75

◆ __merge__()

GaudiConfig2._configurables.Property.__merge__ ( self,
instance,
owner,
value )
Return "merge" (according to the semantic) of the value
in this property and the incoming value.

Definition at line 81 of file _configurables.py.

81 def __merge__(self, instance, owner, value):
82 """
83 Return "merge" (according to the semantic) of the value
84 in this property and the incoming value.
85 """
86 if not self.__is_set__(instance, owner):
87 return value
88 return self.semantics.merge(self.__get__(instance, owner), value)
89
90
int merge(const char *target, const char *source, bool fixup=false, bool dbg=true)
Definition merge.C:417

◆ __opt_value__()

GaudiConfig2._configurables.Property.__opt_value__ ( self,
instance,
owner )

Definition at line 76 of file _configurables.py.

76 def __opt_value__(self, instance, owner):
77 return self.semantics.opt_value(
78 instance._properties.get(self.name, self.default)
79 )
80

◆ __set__()

GaudiConfig2._configurables.Property.__set__ ( self,
instance,
value )

Definition at line 60 of file _configurables.py.

60 def __set__(self, instance, value):
61 instance._properties[self.name] = self.semantics.store(value)
62

◆ __set_name__()

GaudiConfig2._configurables.Property.__set_name__ ( self,
owner,
name )

Definition at line 66 of file _configurables.py.

66 def __set_name__(self, owner, name):
67 self.semantics.name = name
68

◆ cpp_type()

GaudiConfig2._configurables.Property.cpp_type ( self)

Definition at line 48 of file _configurables.py.

48 def cpp_type(self):
49 return self.semantics.cpp_type
50

◆ name()

GaudiConfig2._configurables.Property.name ( self)

Definition at line 52 of file _configurables.py.

52 def name(self):
53 return self.semantics.name
54

Member Data Documentation

◆ __doc__

GaudiConfig2._configurables.Property.__doc__ = doc
private

Definition at line 45 of file _configurables.py.

◆ default

GaudiConfig2._configurables.Property.default = default

Definition at line 44 of file _configurables.py.

◆ name

GaudiConfig2._configurables.Property.name

Definition at line 58 of file _configurables.py.

◆ semantics

GaudiConfig2._configurables.Property.semantics = getSemanticsFor(cpp_type)

Definition at line 40 of file _configurables.py.


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