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: Promote a query to an id based on the dataset it will modify (dep).
  
  Typical use case is requesting a modified dataset (query). This
  modified dataset most likely depends on a less-modified
  dataset (dep_key). The less-modified dataset must come from a reader
  (at least for now) or will eventually depend on a reader dataset.
  The original request key may be limited like
  (wavelength=0.67, modifiers=('a', 'b')) while the reader-based key
  should have all of its properties specified. This method updates the
  original request key so it is fully specified and should reduce the
  chance of Node's not being unique.
docstr_tok: ["Promote","a","query","to","an","id","based","on","the","dataset","it","will","modify","(","dep",")",".","Typical","use","case","is","requesting","a","modified","dataset","(","query",")",".","This","modified","dataset","most","likely","depends","on","a","less-modified","dataset","(","dep_key",")",".","The","less-modified","dataset","must","come","from","a","reader","(","at","least","for","now",")","or","will","eventually","depend","on","a","reader","dataset",".","The","original","request","key","may","be","limited","like","(","wavelength=0.67",",","modifiers=","(","'","a","'",",","'","b","'",")",")","while","the","reader-based","key","should","have","all","of","its","properties","specified",".","This","method","updates","the","original","request","key","so","it","is","fully","specified","and","should","reduce","the","chance","of","Node","'s","not","being","unique","."]
code: def _promote_query_to_modified_dataid(self, query, dep_key):
      """Promote a query to an id based on the dataset it will modify (dep).
  
      Typical use case is requesting a modified dataset (query). This
      modified dataset most likely depends on a less-modified
      dataset (dep_key). The less-modified dataset must come from a reader
      (at least for now) or will eventually depend on a reader dataset.
      The original request key may be limited like
      (wavelength=0.67, modifiers=('a', 'b')) while the reader-based key
      should have all of its properties specified. This method updates the
      original request key so it is fully specified and should reduce the
      chance of Node's not being unique.
  
      """
      orig_dict = query._asdict()
      dep_dict = dep_key._asdict()
      for key, dep_val in dep_dict.items():
          # don't change the modifiers, just cast them to the right class
          if isinstance(dep_val, ModifierTuple):
              orig_dict[key] = dep_val.__class__(orig_dict[key])
          else:
              orig_dict[key] = dep_val
      return dep_key.from_dict(orig_dict)
  
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 18 for calling the DependencyTree obj's underlying member method code with example usage: obj._promote_query_to_modified_dataid(query, dep_key) and returns: dep_key