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

Public Member Functions

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

Private Member Functions

def _subflag_itr (self)
 

Private Attributes

 _flags
 
 _name
 

Static Private Attributes

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

Detailed Description

Definition at line 123 of file AthConfigFlags.py.

Constructor & Destructor Documentation

◆ __init__()

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

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

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

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

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

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

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

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

def 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 

◆ __setattr__()

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

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

def python.AthConfigFlags.FlagAddress._subflag_itr (   self)
private
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()

def 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 

Member Data Documentation

◆ __eq__

def python.AthConfigFlags.FlagAddress.__eq__ = __cmp__
staticprivate

Definition at line 162 of file AthConfigFlags.py.

◆ __ge__

def python.AthConfigFlags.FlagAddress.__ge__ = __cmp__
staticprivate

Definition at line 167 of file AthConfigFlags.py.

◆ __gt__

def python.AthConfigFlags.FlagAddress.__gt__ = __cmp__
staticprivate

Definition at line 166 of file AthConfigFlags.py.

◆ __le__

def python.AthConfigFlags.FlagAddress.__le__ = __cmp__
staticprivate

Definition at line 165 of file AthConfigFlags.py.

◆ __lt__

def python.AthConfigFlags.FlagAddress.__lt__ = __cmp__
staticprivate

Definition at line 164 of file AthConfigFlags.py.

◆ __ne__

def python.AthConfigFlags.FlagAddress.__ne__ = __cmp__
staticprivate

Definition at line 163 of file AthConfigFlags.py.

◆ _flags

python.AthConfigFlags.FlagAddress._flags
private

Definition at line 126 of file AthConfigFlags.py.

◆ _name

python.AthConfigFlags.FlagAddress._name
private

Definition at line 127 of file AthConfigFlags.py.


The documentation for this class was generated from the following file:
vtune_athena.format
format
Definition: vtune_athena.py:14
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
XMLtoHeader.count
count
Definition: XMLtoHeader.py:84
python.AthConfigFlags._asdict
def _asdict(iterator)
Definition: AthConfigFlags.py:107
CxxUtils::set
constexpr std::enable_if_t< is_bitmask_v< E >, E & > set(E &lhs, E rhs)
Convenience function to set bits in a class enum bitmask.
Definition: bitmask.h:232
python.Bindings.__setitem__
__setitem__
Definition: Control/AthenaPython/python/Bindings.py:774
python.PyAthenaComps.__setattr__
__setattr__
Definition: PyAthenaComps.py:39
python.Bindings.__getitem__
__getitem__
Definition: Control/AthenaPython/python/Bindings.py:782
Trk::split
@ split
Definition: LayerMaterialProperties.h:38
python.Bindings.__contains__
__contains__
Definition: Control/AthenaPython/python/Bindings.py:768