Beispiel #1
0
def _transition_stage():
    request_message = _get_request_message(TransitionModelVersionStage())
    model_version = _get_model_registry_store().transition_model_version_stage(
        name=request_message.name, version=request_message.version,
        stage=request_message.stage,
        archive_existing_versions=request_message.archive_existing_versions)
    return _wrap_response(TransitionModelVersionStage.Response(
        model_version=model_version.to_proto()))
Beispiel #2
0
def test_transition_model_version_stage(mock_get_request_message, mock_model_registry_store):
    name = "model1"
    version = "32"
    stage = "Production"
    mock_get_request_message.return_value = TransitionModelVersionStage(name=name, version=version,
                                                                        stage=stage)
    mv = ModelVersion(name=name, version=version, creation_timestamp=123, current_stage=stage)
    mock_model_registry_store.transition_model_version_stage.return_value = mv
    _transition_stage()
    _, args = mock_model_registry_store.transition_model_version_stage.call_args
    assert args == {"name": name, "version": version, "stage": stage,
                    "archive_existing_versions": False}
Beispiel #3
0
 def test_transition_model_version_stage(self, mock_http):
     name = "model_1"
     version = "5"
     self.store.transition_model_version_stage(
         name=name,
         version=version,
         stage="prod",
         archive_existing_versions=True)
     self._verify_requests(
         mock_http, "model-versions/transition-stage", "POST",
         TransitionModelVersionStage(name=name,
                                     version=version,
                                     stage="prod",
                                     archive_existing_versions=True))
Beispiel #4
0
    def transition_model_version_stage(self, name, version, stage,
                                       archive_existing_versions):
        """
        Update model version stage.

        :param name: Registered model name.
        :param version: Registered model version.
        :param new_stage: New desired stage for this model version.
        :param archive_existing_versions: If this flag is set to ``True``, all existing model
            versions in the stage will be automically moved to the "archived" stage. Only valid
            when ``stage`` is ``"staging"`` or ``"production"`` otherwise an error will be raised.

        :return: A single :py:class:`mlflow.entities.model_registry.ModelVersion` object.
        """
        req_body = message_to_json(TransitionModelVersionStage(
            name=name, version=str(version),
            stage=stage,
            archive_existing_versions=archive_existing_versions))
        response_proto = self._call_endpoint(TransitionModelVersionStage, req_body)
        return ModelVersion.from_proto(response_proto.model_version)