class_docstr: A tree implementation.
class_docstr_tok: ["A","tree","implementation","."]
docstr: Add a child to the tree.
docstr_tok: ["Add","a","child","to","the","tree","."]
code: def add_child(self, parent, child):
      """Add a child to the tree."""
      Node.add_child(parent, child)
      # Sanity check: Node objects should be unique. They can be added
      #               multiple times if more than one Node depends on them
      #               but they should all map to the same Node object.
      if self.contains(child.name):
          if self._all_nodes[child.name] is not child:
              raise RuntimeError
      if child is self.empty_node:
          # No need to store "empty" nodes
          return
      self._all_nodes[child.name] = child
  
imports: from __future__ import annotations
  from typing import Container, Iterable, Optional
  import numpy
  from satpy import DataID, DatasetDict
  from satpy.dataset import ModifierTuple, create_filtered_query
  from satpy.dataset.data_dict import TooManyResults, get_key
  from satpy.node import EMPTY_LEAF_NAME, LOG, CompositorNode, MissingDependencies, Node, ReaderNode
label_desc: Use image node_id 4 for calling the Tree obj's underlying member method code with example usage: obj.add_child(parent, child) without return types