Base class for all configurable instances.
Definition at line 143 of file _configurables.py.
◆ __init__()
| def GaudiConfig2._configurables.Configurable.__init__ |
( |
|
self, |
|
|
|
name = None, |
|
|
** |
kwargs |
|
) |
| |
Definition at line 150 of file _configurables.py.
150 def __init__(self, name=None, **kwargs):
152 self._properties = {}
153 if "parent" in kwargs:
154 parent = kwargs.pop(
"parent")
155 if isinstance(parent, basestring
if sys.version_info[0] == 2
else str):
156 parent = self.instances[parent]
158 raise TypeError(
"name is needed when a parent is specified")
159 name =
"{}.{}".
format(parent.name, name)
162 elif not _GLOBAL_INSTANCES:
163 self.name = self.__cpp_type__
164 for key, value
in kwargs.items():
165 setattr(self, key, value)
◆ __getstate__()
| def GaudiConfig2._configurables.Configurable.__getstate__ |
( |
|
self | ) |
|
Definition at line 218 of file _configurables.py.
218 def __getstate__(self):
219 state = {
"properties": self._properties}
221 state[
"name"] = self.name
222 except AttributeError:
◆ __opt_properties__()
| def GaudiConfig2._configurables.Configurable.__opt_properties__ |
( |
|
self, |
|
|
|
explicit_defaults = False |
|
) |
| |
Definition at line 236 of file _configurables.py.
236 def __opt_properties__(self, explicit_defaults=False):
239 for p
in self._descriptors.values():
240 if explicit_defaults
or p.__is_set__(self,
type(self)):
241 out[
".".join([name, p.name])] =
opt_repr(
242 p.__opt_value__(self,
type(self))
◆ __opt_value__()
| def GaudiConfig2._configurables.Configurable.__opt_value__ |
( |
|
self | ) |
|
Definition at line 231 of file _configurables.py.
231 def __opt_value__(self):
232 if self.__cpp_type__ == self.name:
233 return self.__cpp_type__
234 return "{}/{}".
format(self.__cpp_type__, self.name)
◆ __repr__()
| def GaudiConfig2._configurables.Configurable.__repr__ |
( |
|
self | ) |
|
Definition at line 209 of file _configurables.py.
212 args.append(repr(self.name))
213 except AttributeError:
215 args.extend(
"{}={!r}".
format(*item)
for item
in self._properties.
items())
216 return "{}({})".
format(
type(self).__name__,
", ".join(args))
◆ __setstate__()
| def GaudiConfig2._configurables.Configurable.__setstate__ |
( |
|
self, |
|
|
|
state |
|
) |
| |
Definition at line 226 of file _configurables.py.
226 def __setstate__(self, state):
228 self.name = state.get(
"name")
229 self._properties = state[
"properties"]
◆ getDefaultProperties()
| def GaudiConfig2._configurables.Configurable.getDefaultProperties |
( |
|
cls | ) |
|
Definition at line 267 of file _configurables.py.
267 def getDefaultProperties(cls):
268 return {k: v.default
for k, v
in cls._descriptors.
items()}
◆ getDefaultProperty()
| def GaudiConfig2._configurables.Configurable.getDefaultProperty |
( |
|
cls, |
|
|
|
name |
|
) |
| |
Definition at line 271 of file _configurables.py.
271 def getDefaultProperty(cls, name):
272 return cls._descriptors[name].default
◆ getFullJobOptName()
| def GaudiConfig2._configurables.Configurable.getFullJobOptName |
( |
|
self | ) |
|
Definition at line 260 of file _configurables.py.
260 def getFullJobOptName(self):
261 return "{}/{}".
format(self.__cpp_type__, self.name)
◆ getGaudiType()
| def GaudiConfig2._configurables.Configurable.getGaudiType |
( |
|
cls | ) |
|
Definition at line 250 of file _configurables.py.
250 def getGaudiType(cls):
251 return cls.__component_type__
◆ getInstance()
| def GaudiConfig2._configurables.Configurable.getInstance |
( |
|
cls, |
|
|
|
name |
|
) |
| |
◆ getName()
| def GaudiConfig2._configurables.Configurable.getName |
( |
|
self | ) |
|
◆ getType()
| def GaudiConfig2._configurables.Configurable.getType |
( |
|
cls | ) |
|
◆ is_property_set()
| def GaudiConfig2._configurables.Configurable.is_property_set |
( |
|
self, |
|
|
|
propname |
|
) |
| |
Definition at line 246 of file _configurables.py.
246 def is_property_set(self, propname):
247 return self._descriptors[propname].__is_set__(self,
type(self))
◆ merge()
| def GaudiConfig2._configurables.Configurable.merge |
( |
|
self, |
|
|
|
other |
|
) |
| |
Merge the properties of the other instance into the current one.
The two instances have to be of the same type, have the same name
(or both unnamed) and the settings must be mergable (according to
their semantics).
Definition at line 274 of file _configurables.py.
274 def merge(self, other):
276 Merge the properties of the other instance into the current one.
278 The two instances have to be of the same type, have the same name
279 (or both unnamed) and the settings must be mergable (according to
284 "cannot merge instance of {} into an instance of {}".
format(
285 type(other).__name__,
type(self).__name__
288 if hasattr(self,
"name") != hasattr(other,
"name"):
289 raise ValueError(
"cannot merge a named configurable with an unnamed one")
290 if hasattr(self,
"name")
and (self.name != other.name):
292 "cannot merge configurables with different names ({} and {})".
format(
293 self.name, other.name
297 for name
in other._descriptors:
298 if not other.is_property_set(name):
304 self._descriptors[name].__merge__(
305 self,
type(self), getattr(other, name)
308 except ValueError
as err:
310 "conflicting settings for property {} of {}: {}".
format(
312 self.name
if hasattr(self,
"name")
else type(self).__name__,
◆ name() [1/3]
| def GaudiConfig2._configurables.Configurable.name |
( |
|
self | ) |
|
◆ name() [2/3]
| def GaudiConfig2._configurables.Configurable.name |
( |
|
self | ) |
|
Definition at line 201 of file _configurables.py.
202 if _GLOBAL_INSTANCES:
204 del self.instances[self.name]
207 raise TypeError(
"name attribute cannot be deleted")
◆ name() [3/3]
| def GaudiConfig2._configurables.Configurable.name |
( |
|
self, |
|
|
|
value |
|
) |
| |
Definition at line 180 of file _configurables.py.
180 def name(self, value):
181 if value == self._name:
184 not isinstance(value, basestring
if sys.version_info[0] == 2
else str)
188 "expected string, got {} instead".
format(
type(value).__name__)
190 if _GLOBAL_INSTANCES:
191 if value
in self.instances:
192 raise ValueError(
"name {!r} already used".
format(value))
193 if self._name
in self.instances:
194 del self.instances[self._name]
196 self.instances[value] = self
◆ toStringProperty()
| def GaudiConfig2._configurables.Configurable.toStringProperty |
( |
|
self | ) |
|
Definition at line 263 of file _configurables.py.
263 def toStringProperty(self):
264 return "{}/{}".
format(self.__cpp_type__, self.name)
◆ __cpp_type__
| GaudiConfig2._configurables.Configurable.__cpp_type__ |
|
private |
◆ _name
| GaudiConfig2._configurables.Configurable._name |
|
private |
◆ _properties
| GaudiConfig2._configurables.Configurable._properties |
|
private |
◆ instances
| dictionary GaudiConfig2._configurables.Configurable.instances = {} |
|
static |
◆ name
| GaudiConfig2._configurables.Configurable.name |
The documentation for this class was generated from the following file: