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: Find the dependencies for *dataset_key*.
  
  Args:
      dataset_key (str, float, DataID, DataQuery): Dataset identifier to locate
                                                   and find any additional
                                                   dependencies for.
      query (DataQuery): Additional filter parameters. See
                         `satpy.readers.get_key` for more details.
docstr_tok: ["Find","the","dependencies","for","*","dataset_key","*",".","Args",":","dataset_key","(","str",",","float",",","DataID",",","DataQuery",")",":","Dataset","identifier","to","locate","and","find","any","additional","dependencies","for",".","query","(","DataQuery",")",":","Additional","filter","parameters",".","See","`","satpy.readers.get_key","`","for","more","details","."]
code: def _create_subtree_for_key(self, dataset_key, query=None):
      """Find the dependencies for *dataset_key*.
  
      Args:
          dataset_key (str, float, DataID, DataQuery): Dataset identifier to locate
                                                       and find any additional
                                                       dependencies for.
          query (DataQuery): Additional filter parameters. See
                             `satpy.readers.get_key` for more details.
  
      """
      # 0 check if the *exact* dataset is already loaded
      try:
          node = self._get_subtree_for_existing_key(dataset_key)
      except MissingDependencies:
          # exact dataset isn't loaded, let's load it below
          pass
      else:
          return node
  
      # 1 try to get *best* dataset from reader
      try:
          node = self._create_subtree_from_reader(dataset_key, query)
      except TooManyResults:
          LOG.warning(
              "Too many possible datasets to load for {}".format(
                  dataset_key
              )
          )
          raise MissingDependencies({dataset_key})
      except MissingDependencies:
          pass
      else:
          return node
  
      # 2 try to find a composite by name (any version of it is good enough)
      try:
          node = self._get_subtree_for_existing_name(dataset_key)
      except MissingDependencies:
          pass
      else:
          return node
  
      # 3 try to find a composite that matches
      try:
          node = self._create_subtree_from_compositors(
              dataset_key, query
          )
      except MissingDependencies:
          raise
      else:
          return node
  
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 6 for calling the DependencyTree obj's underlying member method code with example usage: obj._create_subtree_for_key(dataset_key, query) and returns: node, node, node, node