Remove specified key and return the corresponding value.
           If key is not found, default is returned if given, otherwise 
           KeyError is raised.

def pop(self, key, default=None):
        """Remove specified key and return the corresponding value.
           If key is not found, default is returned if given, otherwise 
           KeyError is raised.
        """
        if key not in self:
            if default is not None:
                return default
            raise KeyError(key)
        for map in [self._pb.IntMap, self._pb.FloatMap, self._pb.StringMap,
                    self._pb.BoolMap]:
            if key in map.keys():
                return map.pop(key)