class_docstr: A subclass of :py:class:`monai.transforms.Transform` with an assumption
  that the ``data`` input of ``self.__call__`` is a MutableMapping such as ``dict``.
  
  The ``keys`` parameter will be used to get and set the actual data
  item to transform.  That is, the callable of this transform should
  follow the pattern:
  
      .. code-block:: python
  
          def __call__(self, data):
              for key in self.keys:
                  if key in data:
                      # update output data with some_transform_function(data[key]).
                  else:
                      # raise exception unless allow_missing_keys==True.
              return data
  
  Raises:
      ValueError: When ``keys`` is an empty iterable.
      TypeError: When ``keys`` type is not in ``Union[Hashable, Iterable[Hashable]]``.
class_docstr_tok: ["A","subclass","of",":","py",":","class",":","`","monai.transforms.Transform","`","with","an","assumption","that","the","``","data","``","input","of","``","self.__call__","``","is","a","MutableMapping","such","as","``","dict","``",".","The","``","keys","``","parameter","will","be","used","to","get","and","set","the","actual","data","item","to","transform",".","That","is",",","the","callable","of","this","transform","should","follow","the","pattern",":","..","code-block",":",":","python","def","__call__","(","self",",","data",")",":","for","key","in","self.keys",":","if","key","in","data",":","#","update","output","data","with","some_transform_function","(","data","[","key","]",")",".","else",":","#","raise","exception","unless","allow_missing_keys==True",".","return","data","Raises",":","ValueError",":","When","``","keys","``","is","an","empty","iterable",".","TypeError",":","When","``","keys","``","type","is","not","in","``","Union","[","Hashable",",","Iterable","[","Hashable","]","]","``","."]
docstr: This function is to be called after every `self.__call__(data)`,
  update `data[key_transforms]` and `data[key_meta_dict]` using the content from MetaTensor `data[key]`,
  for MetaTensor backward compatibility 0.9.0.
code: def call_update(self, data):
      """
      This function is to be called after every `self.__call__(data)`,
      update `data[key_transforms]` and `data[key_meta_dict]` using the content from MetaTensor `data[key]`,
      for MetaTensor backward compatibility 0.9.0.
      """
      if not isinstance(data, (list, tuple, Mapping)):
          return data
      is_dict = False
      if isinstance(data, Mapping):
          data, is_dict = [data], True
      if not data or not isinstance(data[0], Mapping):
          return data[0] if is_dict else data
      list_d = [dict(x) for x in data]  # list of dict for crop samples
      for idx, dict_i in enumerate(list_d):
          for k in dict_i:
              if not isinstance(dict_i[k], MetaTensor):
                  continue
              list_d[idx] = transforms.sync_meta_info(
                  k, dict_i, t=not isinstance(self, transforms.InvertD)
              )
      return list_d[0] if is_dict else list_d
  
imports: from __future__ import annotations
  import logging
  from abc import ABC, abstractmethod
  from collections.abc import Callable, Generator, Hashable, Iterable, Mapping
  from typing import Any, TypeVar
  import numpy
  import torch
  from monai import config, transforms
  from monai.config import KeysCollection
  from monai.data.meta_tensor import MetaTensor
  from monai.transforms.traits import LazyTrait, RandomizableTrait, ThreadUnsafe
  from monai.utils import MAX_SEED, ensure_tuple, first
  from monai.utils.enums import TransformBackends
  from monai.utils.misc import MONAIEnvVars
label_desc: Use image node_id 3 for calling the MapTransform obj's underlying member method code with example usage: obj.call_update(data) and returns: unknown, data, unknown