code: def getitem(self, index, context=None):
          
          for key, value in self.items:
              # TODO(cpopa): no support for overriding yet, {1:2, **{1: 3}}.
              if isinstance(key, DictUnpack):
                  try:
                      return value.getitem(index, context)
                  except (exceptions.AstroidTypeError, exceptions.AstroidIndexError):
                      continue
              for inferredkey in key.infer(context):
                  if inferredkey is util.Uninferable:
                      continue
                  if isinstance(inferredkey, Const) and isinstance(index, Const):
                      if inferredkey.value == index.value:
                          return value
  
          raise exceptions.AstroidIndexError(index)
docs: Get an item from this node.
  
          :param index: The node to use as a subscript index.
          :type index: Const or Slice
  
          :raises AstroidTypeError: When the given index cannot be used as a
              subscript index, or if this node is not subscriptable.
          :raises AstroidIndexError: If the given index does not exist in the
              dictionary.