code: def map_dict(self, data: Any, type_) -> Dict:
      if not isinstance(data, dict):
          raise DeepTypeError("Not a dict")
      key_type, value_type = type_.__args__
      result = {}
      for key, value in data.items():
          # We don't distinguish between errors on keys and on values.
          try:
              result[
                  self.map_with_type(key, key_type)
              ] = self.map_with_type(value, value_type)
          except DeepTypeError as err:
              err.prepend_key(key)
              raise err
      return result
  
imports: from abc import ABC, abstractmethod
  from enum import Enum
  from inspect import isclass
  from itertools import chain
  from typing import Any, ClassVar, Dict, List, Optional, Sized, Type, TypeVar, Union
  import attr
label_desc: Use image node_id 7 for calling the Mapper obj's underlying member method code with example usage: obj.map_dict(data, type_) and returns: result