ATLAS Offline Software
Loading...
Searching...
No Matches
python.AthConfigFlags.FlagAddress Class Reference
Inheritance diagram for python.AthConfigFlags.FlagAddress:
Collaboration diagram for python.AthConfigFlags.FlagAddress:

Public Types

typedef HLT::TypeInformation::for_each_type_c< typenameEDMLIST::map, my_functor, my_result<>, my_arg< HLT::TypeInformation::get_cont, CONTAINER > >::type result

Public Member Functions

 __init__ (self, flag, name)
 __getattr__ (self, name)
 __setattr__ (self, name, value)
 __delattr__ (self, name)
 __cmp__ (self, other)
 __bool__ (self)
 __getitem__ (self, name)
 __setitem__ (self, name, value)
 __delitem__ (self, name)
 __contains__ (self, name)
 __iter__ (self)
 asdict (self)

Protected Member Functions

 _subflag_itr (self)

Protected Attributes

 _flags = flag
str _name = name

Static Private Attributes

 __eq__ = __cmp__
 __ne__ = __cmp__
 __lt__ = __cmp__
 __le__ = __cmp__
 __gt__ = __cmp__
 __ge__ = __cmp__

Detailed Description

Definition at line 124 of file AthConfigFlags.py.

Member Typedef Documentation

◆ result

Definition at line 90 of file EDM_MasterSearch.h.

Constructor & Destructor Documentation

◆ __init__()

python.AthConfigFlags.FlagAddress.__init__ ( self,
flag,
name )

Definition at line 125 of file AthConfigFlags.py.

125 def __init__(self, flag, name):
126 if isinstance(flag, AthConfigFlags):
127 self._flags = flag
128 self._name = name
129
130 elif isinstance(flag, FlagAddress):
131 self._flags = flag._flags
132 self._name = f"{flag._name}.{name}"
133
134 else:
135 raise TypeError(f"Cannot create FlagAddress for object {name} of type {type(flag)}")
136
137 # Handle renames
138 self._name = self._flags._renames.get(self._name, self._name)
139 if self._name is None:
140 raise AttributeError(f"Accessing category {name} has been blocked by cloneAndReplace")
141
142

Member Function Documentation

◆ __bool__()

python.AthConfigFlags.FlagAddress.__bool__ ( self)

Definition at line 170 of file AthConfigFlags.py.

170 def __bool__(self):
171 raise RuntimeError( "No such flag: "+ self._name+". The name is likely incomplete." )
172

◆ __cmp__()

python.AthConfigFlags.FlagAddress.__cmp__ ( self,
other )

Definition at line 161 of file AthConfigFlags.py.

161 def __cmp__(self, other):
162 raise RuntimeError( "No such flag: "+ self._name+". The name is likely incomplete." )

◆ __contains__()

python.AthConfigFlags.FlagAddress.__contains__ ( self,
name )

Definition at line 183 of file AthConfigFlags.py.

183 def __contains__(self, name):
184 return hasattr(self, name)
185

◆ __delattr__()

python.AthConfigFlags.FlagAddress.__delattr__ ( self,
name )

Definition at line 158 of file AthConfigFlags.py.

158 def __delattr__(self, name):
159 del self[name]
160

◆ __delitem__()

python.AthConfigFlags.FlagAddress.__delitem__ ( self,
name )

Definition at line 179 of file AthConfigFlags.py.

179 def __delitem__(self, name):
180 merged = self._name + "." + name
181 del self._flags[merged]
182

◆ __getattr__()

python.AthConfigFlags.FlagAddress.__getattr__ ( self,
name )

Definition at line 143 of file AthConfigFlags.py.

143 def __getattr__(self, name):
144 return getattr(self._flags, self._name + "." + name)
145

◆ __getitem__()

python.AthConfigFlags.FlagAddress.__getitem__ ( self,
name )

Definition at line 173 of file AthConfigFlags.py.

173 def __getitem__(self, name):
174 return getattr(self, name)
175

◆ __iter__()

python.AthConfigFlags.FlagAddress.__iter__ ( self)

Definition at line 186 of file AthConfigFlags.py.

186 def __iter__(self):
187 self._flags.loadAllDynamicFlags()
188 rmap = self._flags._renamed_map()
189 used = set()
190 for flag in self._flags._flagdict.keys():
191 if flag.startswith(self._name.rstrip('.') + '.'):
192 for newflag in rmap[flag]:
193 ntrim = len(self._name) + 1
194 n_dots_in = flag[:ntrim].count('.')
195 remaining = newflag.split('.')[n_dots_in]
196 if remaining not in used:
197 yield remaining
198 used.add(remaining)
199
STL class.
int count(std::string s, const std::string &regx)
count how many occurances of a regx are in a string
Definition hcg.cxx:146

◆ __setattr__()

python.AthConfigFlags.FlagAddress.__setattr__ ( self,
name,
value )

Definition at line 146 of file AthConfigFlags.py.

146 def __setattr__( self, name, value ):
147 if name.startswith("_"):
148 return object.__setattr__(self, name, value)
149 merged = self._name + "." + name
150
151 if merged not in self._flags._flagdict: # flag is missing, try loading dynamic ones
152 self._flags._loadDynaFlags( merged )
153
154 if merged not in self._flags._flagdict:
155 raise RuntimeError( "No such flag: {} The name is likely incomplete.".format(merged) )
156 return self._flags._set( merged, value )
157

◆ __setitem__()

python.AthConfigFlags.FlagAddress.__setitem__ ( self,
name,
value )

Definition at line 176 of file AthConfigFlags.py.

176 def __setitem__(self, name, value):
177 setattr(self, name, value)
178

◆ _subflag_itr()

python.AthConfigFlags.FlagAddress._subflag_itr ( self)
protected
Subflag iterator specialized for this address

Definition at line 200 of file AthConfigFlags.py.

200 def _subflag_itr(self):
201 """Subflag iterator specialized for this address
202
203 """
204 self._flags.loadAllDynamicFlags()
205 address = self._name
206 rename = self._flags._renamed_map()
207 for key in self._flags._flagdict.keys():
208 if key.startswith(address.rstrip('.') + '.'):
209 ntrim = len(address) + 1
210 remaining = key[ntrim:]
211 for r in rename[key]:
212 yield r, getattr(self, remaining)
213

◆ asdict()

python.AthConfigFlags.FlagAddress.asdict ( self)
Convert to a python dictionary

Recursively convert this flag and all subflags into a
structure of nested dictionaries. All dynamic flags are
resolved in the process.

The resulting data structure should be easy to serialize as
json or yaml.

Definition at line 214 of file AthConfigFlags.py.

214 def asdict(self):
215 """Convert to a python dictionary
216
217 Recursively convert this flag and all subflags into a
218 structure of nested dictionaries. All dynamic flags are
219 resolved in the process.
220
221 The resulting data structure should be easy to serialize as
222 json or yaml.
223
224 """
225 d = _asdict(self._subflag_itr())
226 for k in self._name.split('.'):
227 d = d[k]
228 return d
229
230
std::vector< std::string > split(const std::string &s, const std::string &t=":")
Definition hcg.cxx:177

Member Data Documentation

◆ __eq__

python.AthConfigFlags.FlagAddress.__eq__ = __cmp__
staticprivate

Definition at line 163 of file AthConfigFlags.py.

◆ __ge__

python.AthConfigFlags.FlagAddress.__ge__ = __cmp__
staticprivate

Definition at line 168 of file AthConfigFlags.py.

◆ __gt__

python.AthConfigFlags.FlagAddress.__gt__ = __cmp__
staticprivate

Definition at line 167 of file AthConfigFlags.py.

◆ __le__

python.AthConfigFlags.FlagAddress.__le__ = __cmp__
staticprivate

Definition at line 166 of file AthConfigFlags.py.

◆ __lt__

python.AthConfigFlags.FlagAddress.__lt__ = __cmp__
staticprivate

Definition at line 165 of file AthConfigFlags.py.

◆ __ne__

python.AthConfigFlags.FlagAddress.__ne__ = __cmp__
staticprivate

Definition at line 164 of file AthConfigFlags.py.

◆ _flags

python.AthConfigFlags.FlagAddress._flags = flag
protected

Definition at line 127 of file AthConfigFlags.py.

◆ _name

str python.AthConfigFlags.FlagAddress._name = name
protected

Definition at line 128 of file AthConfigFlags.py.


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