def end_run(status="FINISHED"): """End an active MLflow run (if there is one).""" global _active_run if _active_run: MlflowClient().set_terminated(_active_run.info.run_uuid, status) # Clear out the global existing run environment variable as well. env.unset_variable(_RUN_ID_ENV_VAR) _active_run = None
def end_run(status=RunStatus.to_string(RunStatus.FINISHED)): """End an active MLflow run (if there is one).""" global _active_run_stack if len(_active_run_stack) > 0: MlflowClient().set_terminated(_active_run_stack[-1].info.run_id, status) # Clear out the global existing run environment variable as well. env.unset_variable(_RUN_ID_ENV_VAR) _active_run_stack.pop()
def test_use_conda(tracking_uri_mock): # pylint: disable=unused-argument """ Verify that we correctly handle the `use_conda` argument.""" # Verify we throw an exception when conda is unavailable old_path = os.environ["PATH"] env.unset_variable("PATH") try: with pytest.raises(ExecutionException): mlflow.projects.run(TEST_PROJECT_DIR, use_conda=True) finally: os.environ["PATH"] = old_path
def test_use_conda(): """ Verify that we correctly handle the `use_conda` argument.""" with TempDir() as tmp, mock.patch( "mlflow.tracking.get_tracking_uri") as get_tracking_uri_mock: get_tracking_uri_mock.return_value = tmp.path() # Verify we throw an exception when conda is unavailable old_path = os.environ["PATH"] env.unset_variable("PATH") try: with pytest.raises(ExecutionException): mlflow.projects.run(TEST_PROJECT_DIR, use_conda=True) finally: os.environ["PATH"] = old_path
def test_use_conda(): """ Verify that we correctly handle the `use_conda` argument.""" # Verify we throw an exception when conda is unavailable old_path = os.environ["PATH"] env.unset_variable("PATH") conda_exe_path = '' if "CONDA_EXE" in os.environ: conda_exe_path = os.environ["CONDA_EXE"] env.unset_variable("CONDA_EXE") try: with pytest.raises(ExecutionException): mlflow.projects.run(TEST_PROJECT_DIR, use_conda=True) finally: os.environ["PATH"] = old_path if conda_exe_path: os.environ["CONDA_EXE"] = conda_exe_path
def test_use_conda(): """ Verify that we correctly handle the `use_conda` argument.""" with TempDir() as tmp, mock.patch("mlflow.tracking.get_tracking_uri") as get_tracking_uri_mock: get_tracking_uri_mock.return_value = tmp.path() for use_conda, expected_call_count in [(True, 1), (False, 0), (None, 0)]: with mock.patch("mlflow.projects._maybe_create_conda_env") as conda_env_mock: mlflow.projects.run(TEST_PROJECT_DIR, use_conda=use_conda) assert conda_env_mock.call_count == expected_call_count # Verify we throw an exception when conda is unavailable old_path = os.environ["PATH"] env.unset_variable("PATH") try: with pytest.raises(ExecutionException): mlflow.projects.run(TEST_PROJECT_DIR, use_conda=True) finally: os.environ["PATH"] = old_path
def end_run(status=RunStatus.to_string(RunStatus.FINISHED)): """End an active MLflow run (if there is one). .. code-block:: python :caption: Example import mlflow # Start run and get status mlflow.start_run() run = mlflow.active_run() print("run_id: {}; status: {}".format(run.info.run_id, run.info.status)) # End run and get status mlflow.end_run() run = mlflow.get_run(run.info.run_id) print("run_id: {}; status: {}".format(run.info.run_id, run.info.status)) print("--") # Check for any active runs print("Active run: {}".format(mlflow.active_run())) .. code-block:: text :caption: Output run_id: b47ee4563368419880b44ad8535f6371; status: RUNNING run_id: b47ee4563368419880b44ad8535f6371; status: FINISHED -- Active run: None """ global _active_run_stack if len(_active_run_stack) > 0: # Clear out the global existing run environment variable as well. env.unset_variable(_RUN_ID_ENV_VAR) run = _active_run_stack.pop() MlflowClient().set_terminated(run.info.run_id, status)
def clear_run(): """Clear run (remove from MLFlow stack and unset ENV variable).""" # pylint: disable=protected-access if len(fluent._active_run_stack) > 0: env.unset_variable("MLFLOW_RUN_ID") fluent._active_run_stack.pop()