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 123 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 124 of file AthConfigFlags.py.

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

Member Function Documentation

◆ __bool__()

python.AthConfigFlags.FlagAddress.__bool__ ( self)

Definition at line 169 of file AthConfigFlags.py.

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

◆ __cmp__()

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

Definition at line 160 of file AthConfigFlags.py.

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

◆ __contains__()

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

Definition at line 182 of file AthConfigFlags.py.

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

◆ __delattr__()

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

Definition at line 157 of file AthConfigFlags.py.

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

◆ __delitem__()

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

Definition at line 178 of file AthConfigFlags.py.

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

◆ __getattr__()

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

Definition at line 142 of file AthConfigFlags.py.

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

◆ __getitem__()

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

Definition at line 172 of file AthConfigFlags.py.

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

◆ __iter__()

python.AthConfigFlags.FlagAddress.__iter__ ( self)

Definition at line 185 of file AthConfigFlags.py.

185 def __iter__(self):
186 self._flags.loadAllDynamicFlags()
187 rmap = self._flags._renamed_map()
188 used = set()
189 for flag in self._flags._flagdict.keys():
190 if flag.startswith(self._name.rstrip('.') + '.'):
191 for newflag in rmap[flag]:
192 ntrim = len(self._name) + 1
193 n_dots_in = flag[:ntrim].count('.')
194 remaining = newflag.split('.')[n_dots_in]
195 if remaining not in used:
196 yield remaining
197 used.add(remaining)
198
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 145 of file AthConfigFlags.py.

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

◆ __setitem__()

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

Definition at line 175 of file AthConfigFlags.py.

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

◆ _subflag_itr()

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

Definition at line 199 of file AthConfigFlags.py.

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

◆ 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 213 of file AthConfigFlags.py.

213 def asdict(self):
214 """Convert to a python dictionary
215
216 Recursively convert this flag and all subflags into a
217 structure of nested dictionaries. All dynamic flags are
218 resolved in the process.
219
220 The resulting data structure should be easy to serialize as
221 json or yaml.
222
223 """
224 d = _asdict(self._subflag_itr())
225 for k in self._name.split('.'):
226 d = d[k]
227 return d
228
229
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 162 of file AthConfigFlags.py.

◆ __ge__

python.AthConfigFlags.FlagAddress.__ge__ = __cmp__
staticprivate

Definition at line 167 of file AthConfigFlags.py.

◆ __gt__

python.AthConfigFlags.FlagAddress.__gt__ = __cmp__
staticprivate

Definition at line 166 of file AthConfigFlags.py.

◆ __le__

python.AthConfigFlags.FlagAddress.__le__ = __cmp__
staticprivate

Definition at line 165 of file AthConfigFlags.py.

◆ __lt__

python.AthConfigFlags.FlagAddress.__lt__ = __cmp__
staticprivate

Definition at line 164 of file AthConfigFlags.py.

◆ __ne__

python.AthConfigFlags.FlagAddress.__ne__ = __cmp__
staticprivate

Definition at line 163 of file AthConfigFlags.py.

◆ _flags

python.AthConfigFlags.FlagAddress._flags = flag
protected

Definition at line 126 of file AthConfigFlags.py.

◆ _name

str python.AthConfigFlags.FlagAddress._name = name
protected

Definition at line 127 of file AthConfigFlags.py.


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