class_docstr: Special dictionary object that can handle dict operations based on dataset name, wavelength, or DataID.
  
  Note: Internal dictionary keys are `DataID` objects.
class_docstr_tok: ["Special","dictionary","object","that","can","handle","dict","operations","based","on","dataset","name",",","wavelength",",","or","DataID",".","Note",":","Internal","dictionary","keys","are","`","DataID","`","objects","."]
docstr: Support assigning 'Dataset' objects or dictionaries of metadata.
docstr_tok: ["Support","assigning","'Dataset","'","objects","or","dictionaries","of","metadata","."]
code: def __setitem__(self, key, value):
      """Support assigning 'Dataset' objects or dictionaries of metadata."""
      if hasattr(value, "attrs"):
          # xarray.DataArray objects
          value_info = value.attrs
      else:
          value_info = value
      # use value information to make a more complete DataID
      if not isinstance(key, DataID):
          key = self._create_dataid_key(key, value_info)
  
      # update the 'value' with the information contained in the key
      try:
          new_info = key.to_dict()
      except AttributeError:
          new_info = key
      if isinstance(value_info, dict):
          value_info.update(new_info)
          if isinstance(key, DataID):
              value_info["_satpy_id"] = key
  
      return super(DatasetDict, self).__setitem__(key, value)
  
file_path: satpy/satpy/dataset/data_dict.py
imports: import numpy
  from .dataid import DataID, create_filtered_query, minimal_default_keys_config
label_desc: Use image node_id 6 for calling the DatasetDict obj's underlying member method code with example usage: obj.__setitem__(key, value) and returns: super