'Create a flat copy of the dict.'

def copy(self):

    missing = object()
    result = object.__new__(self.__class__)
    for name in self.__slots__:
        val = getattr(self, name, missing)
        if (val is not missing):
            setattr(result, name, val)
    return result
