code: def itervalues(self, key=_absent):
          
          if key is not _absent:
              if key in self:
                  return iter([node.value for node in self._map[key]])
              raise KeyError(key)
          return iter([nodes[0].value for nodes in six.itervalues(self._map)])
docs: Parity with dict.itervalues() except the optional <key> parameter has
          been added. If <key> is provided, only values from items with the
          provided key are iterated over. KeyError is raised if <key> is provided
          and not in the dictionary.
  
          Example:
            omd = omdict([(1,1), (1,11), (1,111), (2,2), (3,3)])
            omd.itervalues(1) -> 1 -> 11 -> 111
            omd.itervalues() -> 1 -> 11 -> 111 -> 2 -> 3
  
          Raises: KeyError if <key> is provided and isn't in the dictionary.
          Returns: An iterator over the values() of the dictionary, or only the
            values of key <key> if <key> is provided.