def get_or_create(cls, **kwargs):
        """Get a copy of the type from the cache, or create a new one."""

        data = cls._get(**kwargs)
        if data is None:
            return cls(**kwargs), True
        return cls.deserialize(data), False