lisa.wlgen.rta.RTAPhaseTree#

class lisa.wlgen.rta.RTAPhaseTree(properties=None, children=None, **kwargs)[source]#

Bases: RTAPhaseBase, ABC

Tree node in an _RTAPhaseTreeBase.

Parameters:
Variable keyword arguments:

Forwarded to base class.

The properties set on this node will be combined of the properties of the children in topo_sort().

Attributes

__reversed__ inherited

See collections.abc.Mapping.__reversed__

Properties

children

Tree levels are transparent and their children expanded directly in their parent, as long as they have no properties on their own that could change the output of topo_sort(). This allows nested RTAPhaseTree to act as if it was just a flat node, which is useful since repeated composition with + operator will give nested binary trees like that.

is_empty

True if the phase has no content and will result in an empty JSON phase(s).

phases

Topological sort of the phases in the tree, with the properties merged along each path from the root to the leaves.

Methods

get_rtapp_repr()

rt-app JSON representation of the phase.

topo_sort()

Topological sort of the tree, and combine the properties along each path from root to leaves at the same time.

HASH_COERCE() inherited

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

__add__() inherited

Compose two phases together by running one after the other.

__await__() inherited

__class_getitem__() inherited

See collections.abc.Iterable.__class_getitem__()

__contains__() inherited

See collections.abc.Mapping.__contains__()

__getitem__() inherited

Lookup the value of the given property on that phase.

__init_subclass__() inherited

Update the docstring used as a str.format() template with the following keys:.

__iter__() inherited

__len__() inherited

__mul__() inherited

Multiply the phase by n, in order to repeat it.

__rmul__() inherited

get() inherited

See collections.abc.Mapping.get()

items() inherited

See collections.abc.Mapping.items()

keys() inherited

See collections.abc.Mapping.keys()

split_prop_kwargs() inherited

Split the kwargs into two categories:.

values() inherited

See collections.abc.Mapping.values()

with_delete_props() inherited

Delete all the given property names, equivalent to with_props(foo=delete()).

with_phase_properties() inherited

Return a cloned instance with the properties combined with the given properties using RTAPhaseProperties.__and__() (&). The properties parameter is the left operand. If properties is None, just return the phase itself.

with_properties_map() inherited

Same as with_phase_properties() but with properties passed to RTAPhaseProperties.from_polymorphic() first.

with_props() inherited

Same as with_phase_properties() but using keyword arguments to set each property. The resulting dictionary is passed to RTAPhaseProperties.from_polymorphic() first.

Attributes#

RTAPhaseTree.__reversed__ = None#

Properties#

property RTAPhaseTree.children[source]#

Tree levels are transparent and their children expanded directly in their parent, as long as they have no properties on their own that could change the output of topo_sort(). This allows nested RTAPhaseTree to act as if it was just a flat node, which is useful since repeated composition with + operator will give nested binary trees like that.

property RTAPhaseTree.is_empty[source]#

True if the phase has no content and will result in an empty JSON phase(s).

property RTAPhaseTree.phases#

Topological sort of the phases in the tree, with the properties merged along each path from the root to the leaves.

Methods#

RTAPhaseTree.get_rtapp_repr(task_name, plat_info, force_defaults=False, no_force_default_keys=None, **kwargs)#

rt-app JSON representation of the phase.

Parameters:
  • task_name (str) – Name of the task this phase will be attached to.

  • plat_info (lisa.platforms.platinfo.PlatformInfo) – Platform information used to compute default properties and validate them.

  • force_defaults (bool) – If True, a default value will be provided for all properties that are not set. If False, the defaults will not be provided if the user-provided properties don’t touch a given JSON key.

  • no_force_default_keys (list(str) or None) – List of JSON keys for which no default will be emitted when force_defaults=True.

Variable keyword arguments:

Forwarded to RTAPhase.to_json()

RTAPhaseTree.topo_sort()[source]#

Topological sort of the tree, and combine the properties along each path from root to leaves at the same time.

RTAPhaseTree.HASH_COERCE(x, coerce)#

Inherited method, see lisa.utils.SimpleHash.HASH_COERCE()

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

RTAPhaseTree.__add__(other)#

Inherited method, see lisa.wlgen.rta.RTAPhaseBase.__add__()

Compose two phases together by running one after the other.

RTAPhaseTree.__await__()#

Inherited method, see lisa.wlgen.rta.RTAPhaseBase.__await__()

classmethod RTAPhaseTree.__class_getitem__()#

Inherited method, see collections.abc.Iterable.__class_getitem__()

RTAPhaseTree.__contains__()#

Inherited method, see collections.abc.Mapping.__contains__()

RTAPhaseTree.__getitem__(key)#

Inherited method, see lisa.wlgen.rta.RTAPhaseBase.__getitem__()

Lookup the value of the given property on that phase.

classmethod RTAPhaseTree.__init_subclass__(**kwargs)#

Inherited method, see lisa.wlgen.rta.RTAPhaseBase.__init_subclass__()

Update the docstring used as a str.format() template with the following keys:.

RTAPhaseTree.__iter__()#

Inherited method, see lisa.wlgen.rta.RTAPhaseBase.__iter__()

RTAPhaseTree.__len__()#

Inherited method, see lisa.wlgen.rta.RTAPhaseBase.__len__()

RTAPhaseTree.__mul__(n)#

Inherited method, see lisa.wlgen.rta.RTAPhaseBase.__mul__()

Multiply the phase by n, in order to repeat it.

RTAPhaseTree.__rmul__(n)#

Inherited method, see lisa.wlgen.rta.RTAPhaseBase.__rmul__()

RTAPhaseTree.get()#

Inherited method, see collections.abc.Mapping.get()

RTAPhaseTree.items()#

Inherited method, see collections.abc.Mapping.items()

RTAPhaseTree.keys()#

Inherited method, see collections.abc.Mapping.keys()

static RTAPhaseTree.split_prop_kwargs(kwargs, properties=None)#

Inherited method, see lisa.wlgen.rta.RTAPhaseBase.split_prop_kwargs()

Split the kwargs into two categories:.

RTAPhaseTree.values()#

Inherited method, see collections.abc.Mapping.values()

RTAPhaseTree.with_delete_props(properties)#

Inherited method, see lisa.wlgen.rta.RTAPhaseBase.with_delete_props()

Delete all the given property names, equivalent to with_props(foo=delete()).

RTAPhaseTree.with_phase_properties(properties)#

Inherited method, see lisa.wlgen.rta.RTAPhaseBase.with_phase_properties()

Return a cloned instance with the properties combined with the given properties using RTAPhaseProperties.__and__() (&). The properties parameter is the left operand. If properties is None, just return the phase itself.

RTAPhaseTree.with_properties_map(properties, **kwargs)#

Inherited method, see lisa.wlgen.rta.RTAPhaseBase.with_properties_map()

Same as with_phase_properties() but with properties passed to RTAPhaseProperties.from_polymorphic() first.

RTAPhaseTree.with_props(**kwargs)#

Inherited method, see lisa.wlgen.rta.RTAPhaseBase.with_props()

Same as with_phase_properties() but using keyword arguments to set each property. The resulting dictionary is passed to RTAPhaseProperties.from_polymorphic() first.