MCPcopy Index your code
hub / github.com/pydata/xarray / NamedNode

Class NamedNode

xarray/core/treenode.py:674–796  ·  view source on GitHub ↗

A TreeNode which knows its own name. Implements path-like relationships to other nodes in its tree.

Source from the content-addressed store, hash-verified

672
673
674class NamedNode(TreeNode):
675 """
676 A TreeNode which knows its own name.
677
678 Implements path-like relationships to other nodes in its tree.
679 """
680
681 _name: str | None
682
683 def __init__(
684 self,
685 name: str | None = None,
686 children: Mapping[str, Self] | None = None,
687 ):
688 super().__init__(children=children)
689 _validate_name(name)
690 self._name = name
691
692 @property
693 def name(self) -> str | None:
694 """The name of this node."""
695 return self._name
696
697 @name.setter
698 def name(self, name: str | None) -> None:
699 if self.parent is not None:
700 raise ValueError(
701 "cannot set the name of a node which already has a parent. "
702 "Consider creating a detached copy of this node via .copy() "
703 "on the parent node."
704 )
705 _validate_name(name)
706 self._name = name
707
708 def __repr__(self, level=0):
709 repr_value = "\t" * level + self.__str__() + "\n"
710 for child in self.children:
711 repr_value += self.get(child).__repr__(level + 1)
712 return repr_value
713
714 def __str__(self) -> str:
715 name_repr = repr(self.name) if self.name is not None else ""
716 return f"NamedNode({name_repr})"
717
718 def _post_attach(self, parent: Self, name: str) -> None:
719 """Ensures child has name attribute corresponding to key under which it has been stored."""
720 _validate_name(name) # is this check redundant?
721 self._name = name
722
723 def _copy_node(
724 self, inherit: bool, deep: bool = False, memo: dict[int, Any] | None = None
725 ) -> Self:
726 """Copy just one node of a tree"""
727 new_node = super()._copy_node(inherit=inherit, deep=deep, memo=memo)
728 new_node._name = self.name
729 return new_node
730
731 @property

Callers 4

create_test_treeFunction · 0.90
test_different_orderMethod · 0.90
test_render_nodetreeMethod · 0.90

Calls

no outgoing calls

Tested by 4

create_test_treeFunction · 0.72
test_different_orderMethod · 0.72
test_render_nodetreeMethod · 0.72

Used in the wild real call sites across dependent graphs

searching dependent graphs…