PyTimeloop
Loading...
Searching...
No Matches
pytimeloop.timeloopfe.common.nodes.DictNode Class Reference

A node that is a dictionary of other nodes. More...

Inheritance diagram for pytimeloop.timeloopfe.common.nodes.DictNode:
Collaboration diagram for pytimeloop.timeloopfe.common.nodes.DictNode:

Public Member Functions

 __init__ (self, *args, __node_skip_parse=False, **kwargs)
 
 require_one_of (cls, *args)
 Require that at least one of the given keys is present.
 
 require_all_or_none_of (cls, *args)
 Require that all or none of the given keys are present.
 
"DictNode" combine (self, "DictNode" other)
 Combines this dictionary with another dictionary.
 
"DictNode" from_yaml_files (cls, *Union[str, List[str], Path, list[Path]] files, Dict[str, Any] jinja_parse_data=None, **kwargs)
 Loads a dictionary from one more more yaml files.
 
Any __getitem__ (self, Any __key)
 Get the value at the given key or index.
 
None __setitem__ (self, Any __key, Any __value)
 Set the value at the given key or index.
 
Any get (self, Any __key, Any __default=None)
 Gets a key from the dictionary.
 
Any setdefault (self, Any __key, Any __default=None)
 Sets the default value for a key.
 
Any pop (self, Any __key, Any __default=None)
 Pops a key from the dictionary.
 
None check_unrecognized (self, *args, **kwargs)
 Check for unrecognized keys in this node and all subnodes.
 
 __getattr__ (self, name)
 Index into the attributes or the contents of this node.
 
 __setattr__ (self, name, value)
 
- Public Member Functions inherited from pytimeloop.timeloopfe.common.nodes.Node
 get_specifiers_from_processors (cls, "BaseSpecification" spec)
 Get the specifiers that have been set from processors.
 
 reset_specifiers_from_processors (cls, Optional[Type] processor=None)
 Reset the specifiers that have been set from processors.
 
 declare_attrs (cls, *args, **kwargs)
 Initialize the attributes of this node.
 
 reset_processor_elems (cls, Optional[Type] processor=None)
 
 recognize_all (cls, bool recognize_all=True)
 Set whether all attributes under this node should be recognized.
 
str get_tag (self)
 Get the tag of this node.
 
Iterable[Tuple[Union[str, int], Any]] items (self)
 Get iterable of (key, value) or (index, value) pairs.
 
T combine_index (self, Union[str, int] key, T value)
 Combine the value at the given key with the given value.
 
str get_name (self, Union[Set, None] seen=None)
 Get the name of this node.
 
Any recursive_apply (self, callable func, bool self_first=False, set applied_to=None)
 Apply a function to this node and all subnodes.
 
 clean_empties (self)
 Remove empty nodes from this node and all subnodes.
 
bool isempty (self)
 Return True if this node is empty.
 
bool isempty_recursive (self)
 Return True if this node or all subnodes are empty.
 
 add_attr (cls, str key_or_tag, Optional[Union[type, Tuple[type,...], Tuple[None,...], Tuple[str,...], None]] required_type=None, Any default=default_unspecified_, Optional[Callable] callfunc=None, Optional[bool] part_name_match=None, Optional[bool] no_change_key=None, Any _processor_responsible_for_removing=None, Optional[Dict[str, TypeSpecifier]] _add_checker_to=None)
 Initialize a type specifier for this class.
 
List[Tget_nodes_of_type (self, Type[T] node_type)
 Return a list of all subnodes of a given type.
 
Callable get_setter_lambda (self, Union[str, int] keytag)
 Get a function that can be used to set a value in this node.
 
Callable get_combiner_lambda (self, Union[str, int] keytag)
 Get a function that can be used to combine a value to this node.
 
List[Tuple[Any, Callable]] get_setters_for_keytag (self, str keytag, bool recursive=True)
 Get a list of tuples of the form (value, setter) for all keys/tags in this node that match the given key/tag.
 
List[Tuple[Any, Callable]] get_combiners_for_keytag (self, str keytag, bool recursive=True)
 Get a list of tuples of the form (value, combiner) for all keys/tags in this node that match the given key/tag.
 
List[Tuple[Any, Callable]] get_setters_for_type (self, Type t, bool recursive=True)
 Get a list of tuples of the form (value, setter) for all keys/tags in this node that match the given type.
 
List[Tuple[Any, Callable]] get_combiners_for_type (self, Type t, bool recursive=True)
 Get a list of tuples of the form (value, combiner) for all keys/tags in this node that match the given type.
 
 __str__ (self)
 Return the name of this node.
 
 __format__ (self, format_spec)
 Formats the name of this node.
 
bool is_defined_non_default_non_empty (self, str key)
 Returns True if the given key is defined in this node and is not the default value and is not empty.
 
 parse_expressions (self, Optional[Dict[str, Any]] symbol_table=None, Optional[set] parsed_ids=None, Optional[Callable] callfunc=None)
 Parse expressions in this node and all subnodes.
 
 unique_class_name (cls)
 Return a unique name for this class.
 

Public Attributes

 spec
 
- Public Attributes inherited from pytimeloop.timeloopfe.common.nodes.Node
Node parent_node = None
 
"BaseSpecification" spec = Node.get_global_spec()
 
 logger = logging.getLogger(self.__class__.__name__)
 
 from_data = None
 

Protected Member Functions

 _update_combine_pre_parse (self, dict other)
 
None _check_alias (self, key)
 
- Protected Member Functions inherited from pytimeloop.timeloopfe.common.nodes.Node
Dict[str, TypeSpecifier_get_type_specifiers (cls, "BaseSpecification" spec)
 Get the type specifiers for this node.
 
 _get_all_recognized (self)
 
Dict[Union[str, int], TypeSpecifier_get_index2checker (self, Optional[List[Tuple[str, Any]]] key2elem=None)
 
 _parse_elem (self, Union[str, int] key, TypeSpecifier check, Any value_override=None)
 
 _parse_elems (self)
 
 _parse_extra_elems (self, List[Tuple[str, Any]] key2elem)
 
 _check_unrecognized (self, ignore_empty=False, ignore_should_have_been_removed_by=False)
 
 _parse_expression (self, Union[str, int] index, Dict[str, Any] symbol_table, Optional[TypeSpecifier] checker=None)
 

Protected Attributes

 _require_one_of = _require_one_of
 
 _require_all_or_none_of = _require_all_or_none_of
 
- Protected Attributes inherited from pytimeloop.timeloopfe.common.nodes.Node
tuple _init_args = (args, kwargs)
 
bool _default_parse = False
 

Private Attributes

 __class__
 

Additional Inherited Members

- Static Public Member Functions inherited from pytimeloop.timeloopfe.common.nodes.Node
"BaseSpecification" get_global_spec ()
 Get the global specification object.
 
 set_global_spec ("BaseSpecification" spec)
 Set the global specification object.
 
Any try_combine (Any a, Any b, Union["Node", None] innonde=None, Union[int, str, None] index=None)
 Try to combine two values.
 
- Static Protected Member Functions inherited from pytimeloop.timeloopfe.common.nodes.Node
str _get_tag (x)
 

Detailed Description

A node that is a dictionary of other nodes.

Constructor & Destructor Documentation

◆ __init__()

pytimeloop.timeloopfe.common.nodes.DictNode.__init__ ( self,
* args,
__node_skip_parse = False,
** kwargs )

Reimplemented from pytimeloop.timeloopfe.common.nodes.Node.

Reimplemented in pytimeloop.timeloopfe.common.base_specification.BaseSpecification, pytimeloop.timeloopfe.v4.arch.Architecture, pytimeloop.timeloopfe.v4.arch.Attributes, pytimeloop.timeloopfe.v4.arch.Branch, pytimeloop.timeloopfe.v4.arch.Component, pytimeloop.timeloopfe.v4.arch.Compute, pytimeloop.timeloopfe.v4.arch.Container, pytimeloop.timeloopfe.v4.arch.Leaf, pytimeloop.timeloopfe.v4.arch.Network, pytimeloop.timeloopfe.v4.arch.Nothing, pytimeloop.timeloopfe.v4.arch.Spatial, pytimeloop.timeloopfe.v4.arch.Storage, pytimeloop.timeloopfe.v4.arch.StorageAttributes, pytimeloop.timeloopfe.v4.arch.StorageAttributes, pytimeloop.timeloopfe.v4.components.Action, pytimeloop.timeloopfe.v4.components.Components, pytimeloop.timeloopfe.v4.components.CompoundComponent, pytimeloop.timeloopfe.v4.components.Subcomponent, pytimeloop.timeloopfe.v4.components.SubcomponentAction, pytimeloop.timeloopfe.v4.components.SubcomponentActionGroup, pytimeloop.timeloopfe.v4.constraints.Constraint, pytimeloop.timeloopfe.v4.constraints.ConstraintGroup, pytimeloop.timeloopfe.v4.constraints.Constraints, pytimeloop.timeloopfe.v4.constraints.Dataspace, pytimeloop.timeloopfe.v4.constraints.Iteration, pytimeloop.timeloopfe.v4.constraints.MaxOverbookedProportion, pytimeloop.timeloopfe.v4.constraints.Spatial, pytimeloop.timeloopfe.v4.constraints.Temporal, pytimeloop.timeloopfe.v4.constraints.Utilization, pytimeloop.timeloopfe.v4.globals.EnvironmentVariables, pytimeloop.timeloopfe.v4.globals.Globals, pytimeloop.timeloopfe.v4.mapper.Mapper, pytimeloop.timeloopfe.v4.mapspace.Mapspace, pytimeloop.timeloopfe.v4.problem.DataSpace, pytimeloop.timeloopfe.v4.problem.Density, pytimeloop.timeloopfe.v4.problem.DensityList, pytimeloop.timeloopfe.v4.problem.Instance, pytimeloop.timeloopfe.v4.problem.Problem, pytimeloop.timeloopfe.v4.problem.Shape, pytimeloop.timeloopfe.v4.sparse_optimizations.ActionOptimization, pytimeloop.timeloopfe.v4.sparse_optimizations.ActionOptimizationOption, pytimeloop.timeloopfe.v4.sparse_optimizations.ComputeOptimization, pytimeloop.timeloopfe.v4.sparse_optimizations.RepresentationDataSpace, pytimeloop.timeloopfe.v4.sparse_optimizations.RepresentationFormat, pytimeloop.timeloopfe.v4.sparse_optimizations.RepresentationRank, pytimeloop.timeloopfe.v4.sparse_optimizations.SparseOptimizationGroup, pytimeloop.timeloopfe.v4.sparse_optimizations.SparseOptimizations, pytimeloop.timeloopfe.v4.specification.Specification, and pytimeloop.timeloopfe.v4.variables.Variables.

Member Function Documentation

◆ __getattr__()

pytimeloop.timeloopfe.common.nodes.DictNode.__getattr__ ( self,
name )

Index into the attributes or the contents of this node.

◆ __getitem__()

Any pytimeloop.timeloopfe.common.nodes.DictNode.__getitem__ ( self,
Any key )

Get the value at the given key or index.

Reimplemented from pytimeloop.timeloopfe.common.nodes.Node.

◆ __setattr__()

pytimeloop.timeloopfe.common.nodes.DictNode.__setattr__ ( self,
name,
value )

◆ __setitem__()

None pytimeloop.timeloopfe.common.nodes.DictNode.__setitem__ ( self,
Any key,
Any value )

Set the value at the given key or index.

Reimplemented from pytimeloop.timeloopfe.common.nodes.Node.

◆ _check_alias()

None pytimeloop.timeloopfe.common.nodes.DictNode._check_alias ( self,
key )
protected

◆ _update_combine_pre_parse()

pytimeloop.timeloopfe.common.nodes.DictNode._update_combine_pre_parse ( self,
dict other )
protected

◆ check_unrecognized()

None pytimeloop.timeloopfe.common.nodes.DictNode.check_unrecognized ( self,
* args,
** kwargs )

Check for unrecognized keys in this node and all subnodes.

Reimplemented from pytimeloop.timeloopfe.common.nodes.Node.

◆ combine()

"DictNode" pytimeloop.timeloopfe.common.nodes.DictNode.combine ( self,
"DictNode" other )

Combines this dictionary with another dictionary.

If a key is present in both dictionaries, the values are combined. Otherwise, the key is taken from whichever dictionary has it.

Reimplemented in pytimeloop.timeloopfe.v4.arch.Architecture, and pytimeloop.timeloopfe.v4.constraints.Constraint.

◆ from_yaml_files()

"DictNode" pytimeloop.timeloopfe.common.nodes.DictNode.from_yaml_files ( cls,
*Union[str, List[str], Path, list[Path]] files,
Dict[str, Any] jinja_parse_data = None,
** kwargs )

Loads a dictionary from one more more yaml files.

Each yaml file should contain a dictionary. Dictionaries are combined in the order they are given.

Keyword arguments are also added to the dictionary.

Args: files: A list of yaml files to load. jinja_parse_data: A dictionary of data to use when parsing kwargs: Extra keyword arguments to add to the dictionary.

Returns: A DictNode containing the combined dictionaries.

Loads a dictionary from a list of yaml files. Each yaml file should contain a dictionary. Dictionaries are in the given order. Keyword arguments are also added to the dictionary. !

Parameters
filesA list of yaml files to load. !
jinja_parse_dataA dictionary of data to use when parsing !
kwargsExtra keyword arguments to add to the dictionary.

Reimplemented in pytimeloop.timeloopfe.common.base_specification.BaseSpecification.

◆ get()

Any pytimeloop.timeloopfe.common.nodes.DictNode.get ( self,
Any __key,
Any __default = None )

Gets a key from the dictionary.

◆ pop()

Any pytimeloop.timeloopfe.common.nodes.DictNode.pop ( self,
Any __key,
Any __default = None )

Pops a key from the dictionary.

◆ require_all_or_none_of()

pytimeloop.timeloopfe.common.nodes.DictNode.require_all_or_none_of ( cls,
* args )

Require that all or none of the given keys are present.

◆ require_one_of()

pytimeloop.timeloopfe.common.nodes.DictNode.require_one_of ( cls,
* args )

Require that at least one of the given keys is present.

◆ setdefault()

Any pytimeloop.timeloopfe.common.nodes.DictNode.setdefault ( self,
Any __key,
Any __default = None )

Sets the default value for a key.

Member Data Documentation

◆ __class__

pytimeloop.timeloopfe.common.nodes.DictNode.__class__
private

◆ _require_all_or_none_of

pytimeloop.timeloopfe.common.nodes.DictNode._require_all_or_none_of = _require_all_or_none_of
protected

◆ _require_one_of

pytimeloop.timeloopfe.common.nodes.DictNode._require_one_of = _require_one_of
protected

◆ spec

pytimeloop.timeloopfe.common.nodes.DictNode.spec

The documentation for this class was generated from the following file: