class_docstr: Structure to discover and store `Dataset` dependencies.
  
  Used primarily by the `Scene` object to organize dependency finding.
  Dependencies are stored used a series of `Node` objects which this
  class is a subclass of.
class_docstr_tok: ["Structure","to","discover","and","store","`","Dataset","`","dependencies",".","Used","primarily","by","the","`","Scene","`","object","to","organize","dependency","finding",".","Dependencies","are","stored","used","a","series","of","`","Node","`","objects","which","this","class","is","a","subclass","of","."]
docstr: Collect Dataset generating information.
  
  Collect the objects that generate and have information about Datasets
  including objects that may depend on certain Datasets being generated.
  This includes readers, compositors, and modifiers.
  
  Composites and modifiers are defined per-sensor. If multiple sensors
  are available, compositors and modifiers are searched for in
  sensor alphabetical order.
  
  Args:
      readers (dict): Reader name -> Reader Object
      compositors (dict): Sensor name -> Composite ID -> Composite Object.
          Empty dictionary by default.
      modifiers (dict): Sensor name -> Modifier name -> (Modifier Class, modifier options).
          Empty dictionary by default.
      available_only (bool): Whether only reader's available/loadable
          datasets should be used when searching for dependencies (True)
          or use all known/configured datasets regardless of whether the
          necessary files were provided to the reader (False).
          Note that when ``False`` loadable variations of a dataset will
          have priority over other known variations.
          Default is ``False``.
docstr_tok: ["Collect","Dataset","generating","information",".","Collect","the","objects","that","generate","and","have","information","about","Datasets","including","objects","that","may","depend","on","certain","Datasets","being","generated",".","This","includes","readers",",","compositors",",","and","modifiers",".","Composites","and","modifiers","are","defined","per-sensor",".","If","multiple","sensors","are","available",",","compositors","and","modifiers","are","searched","for","in","sensor","alphabetical","order",".","Args",":","readers","(","dict",")",":","Reader","name","-",">","Reader","Object","compositors","(","dict",")",":","Sensor","name","-",">","Composite","ID","-",">","Composite","Object",".","Empty","dictionary","by","default",".","modifiers","(","dict",")",":","Sensor","name","-",">","Modifier","name","-",">","(","Modifier","Class",",","modifier","options",")",".","Empty","dictionary","by","default",".","available_only","(","bool",")",":","Whether","only","reader","'s","available\/loadable","datasets","should","be","used","when","searching","for","dependencies","(","True",")","or","use","all","known\/configured","datasets","regardless","of","whether","the","necessary","files","were","provided","to","the","reader","(","False",")",".","Note","that","when","``","False","``","loadable","variations","of","a","dataset","will","have","priority","over","other","known","variations",".","Default","is","``","False","``","."]
code: def __init__(
      self,
      readers,
      compositors=None,
      modifiers=None,
      available_only=False,
  ):
      """Collect Dataset generating information.
  
      Collect the objects that generate and have information about Datasets
      including objects that may depend on certain Datasets being generated.
      This includes readers, compositors, and modifiers.
  
      Composites and modifiers are defined per-sensor. If multiple sensors
      are available, compositors and modifiers are searched for in
      sensor alphabetical order.
  
      Args:
          readers (dict): Reader name -> Reader Object
          compositors (dict): Sensor name -> Composite ID -> Composite Object.
              Empty dictionary by default.
          modifiers (dict): Sensor name -> Modifier name -> (Modifier Class, modifier options).
              Empty dictionary by default.
          available_only (bool): Whether only reader's available/loadable
              datasets should be used when searching for dependencies (True)
              or use all known/configured datasets regardless of whether the
              necessary files were provided to the reader (False).
              Note that when ``False`` loadable variations of a dataset will
              have priority over other known variations.
              Default is ``False``.
  
      """
      super().__init__()
      self.readers = readers
      self.compositors = {}
      self.modifiers = {}
      self._available_only = available_only
      self.update_compositors_and_modifiers(
          compositors or {}, modifiers or {}
      )
  
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 1 to create a new DependencyTree object from inherited base classes: Tree with example: obj = DependencyTree(readers, compositors, modifiers, available_only)