lisa.wlgen.rta.LeafPrecedenceProperty#
- class lisa.wlgen.rta.LeafPrecedenceProperty(prop)[source]#
Bases:
PropertyWrapper
Invert the usual combination of order (root to leaf) of property values.
See also
Classes
__class__
inheritedMetaclass for properties.
Attributes
Subclasses can override this attribute so that
PropertyBase.from_key()
knows that it can call their_from_key()
method for that key.Properties
Methods
Combine two instances of the same property together.
HASH_COERCE()
inheritedUsed to coerce the values of
self.__dict__
to hashable values.__copy__()
inherited__getattr__()
inheritedBe as transparent as possible, so that this sort of call would work:
self.__prop.__and__(self)
.__rand__()
inheritedfind_cls()
inheritedFind which subclass can handle
key
.from_key()
inheritedAlternative constructor that is available with the same signature for all properties.
with_wrapped()
inheritedBuild a new instance with modified wrapped property.
Classes#
- LeafPrecedenceProperty.__class__#
alias of
PropertyMeta
Attributes#
- LeafPrecedenceProperty.KEY = None#
Subclasses can override this attribute so that
PropertyBase.from_key()
knows that it can call their_from_key()
method for that key.Note
This class attribute will not be inherited automatically so that each class can be uniquely identified by its key. Subclass that do not override the value explicitly will get
None
.
Properties#
- property LeafPrecedenceProperty.key#
Inherited property, see
lisa.wlgen.rta.PropertyBase.key
Key of the instance.
- property LeafPrecedenceProperty.val#
Inherited property, see
lisa.wlgen.rta.PropertyWrapper.val
Value “payload” of the property.
Methods#
- LeafPrecedenceProperty.__and__(other)[source]#
Combine two instances of the same property together.
This is used to combine properties at the various levels of the
RTAPhaseTree
tree, on each path from the root to the leaves. It is guaranteed that the instance closer to the root will beself
and the one closer to the leaves will beother
.If the property is a constraint, a good implementation should combine two instances by applying the strongest constraint. For example, CPU affinity are combined by taking the intersection of allowed CPUs.
If the property is some sort of “dummy” structure, it can make sense to allow the instance closer to the root of the tree to override the set members in the instance closer to the leaves.
Otherwise, it’s probably best to just bail with
ValueError
with a message explaining that there is a conflict.
- LeafPrecedenceProperty.HASH_COERCE(x, coerce)#
Inherited method, see
lisa.utils.SimpleHash.HASH_COERCE()
Used to coerce the values of
self.__dict__
to hashable values.
- LeafPrecedenceProperty.__copy__()#
Inherited method, see
lisa.wlgen.rta.PropertyWrapper.__copy__()
- LeafPrecedenceProperty.__getattr__(attr)#
Inherited method, see
lisa.wlgen.rta.PropertyWrapper.__getattr__()
Be as transparent as possible, so that this sort of call would work:
self.__prop.__and__(self)
.
- LeafPrecedenceProperty.__rand__(other)#
Inherited method, see
lisa.wlgen.rta.PropertyWrapper.__rand__()
- classmethod LeafPrecedenceProperty.find_cls(key)#
Inherited method, see
lisa.wlgen.rta.PropertyBase.find_cls()
Find which subclass can handle
key
.
- classmethod LeafPrecedenceProperty.from_key(key, val, **kwargs)#
Inherited method, see
lisa.wlgen.rta.PropertyWrapper.from_key()
Alternative constructor that is available with the same signature for all properties.
- LeafPrecedenceProperty.with_wrapped(wrapped)#
Inherited method, see
lisa.wlgen.rta.PropertyWrapper.with_wrapped()
Build a new instance with modified wrapped property.