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.

Classes

__class__ inherited

Metaclass for properties.

Attributes

KEY

Subclasses can override this attribute so that PropertyBase.from_key() knows that it can call their _from_key() method for that key.

Properties

key inherited

Key of the instance.

val inherited

Value “payload” of the property.

Methods

__and__()

Combine two instances of the same property together.

HASH_COERCE() inherited

Used to coerce the values of self.__dict__ to hashable values.

__copy__() inherited

__getattr__() inherited

Be as transparent as possible, so that this sort of call would work: self.__prop.__and__(self).

__rand__() inherited

find_cls() inherited

Find which subclass can handle key.

from_key() inherited

Alternative constructor that is available with the same signature for all properties.

with_wrapped() inherited

Build 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 be self and the one closer to the leaves will be other.

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.