Create a new instance for the given type and pid.

        :param pid_type: Persistent identifier type. (Default: None).
        :param pid_value: Persistent identifier value. (Default: None).
        :param status: Current PID status.
            (Default: :attr:`invenio_pidstore.models.PIDStatus.NEW`)
        :param object_type: The object type is a string that identify its type.
            (Default: None).
        :param object_uuid: The object UUID. (Default: None).
        :returns: A :class:`invenio_pidstore.providers.base.BaseProvider`
            instance.

def create(cls, pid_type=None, pid_value=None, object_type=None,
               object_uuid=None, status=None, **kwargs):
        """Create a new instance for the given type and pid.

        :param pid_type: Persistent identifier type. (Default: None).
        :param pid_value: Persistent identifier value. (Default: None).
        :param status: Current PID status.
            (Default: :attr:`invenio_pidstore.models.PIDStatus.NEW`)
        :param object_type: The object type is a string that identify its type.
            (Default: None).
        :param object_uuid: The object UUID. (Default: None).
        :returns: A :class:`invenio_pidstore.providers.base.BaseProvider`
            instance.
        """
        assert pid_value
        assert pid_type or cls.pid_type

        pid = PersistentIdentifier.create(
            pid_type or cls.pid_type,
            pid_value,
            pid_provider=cls.pid_provider,
            object_type=object_type,
            object_uuid=object_uuid,
            status=status or cls.default_status,
        )
        return cls(pid, **kwargs)