111 lines
2.9 KiB
Python
111 lines
2.9 KiB
Python
import click
|
|
|
|
from mlflow.environment_variables import MLFLOW_RECIPES_PROFILE
|
|
from mlflow.recipes import Recipe
|
|
|
|
_CLI_ARG_RECIPE_PROFILE = click.option(
|
|
"--profile",
|
|
"-p",
|
|
envvar=MLFLOW_RECIPES_PROFILE.name,
|
|
type=click.STRING,
|
|
default=None,
|
|
required=True,
|
|
help=(
|
|
"The name of the recipe profile to use. Profiles customize the configuration of"
|
|
" one or more recipe steps, and recipe executions with different profiles often"
|
|
" produce different results."
|
|
),
|
|
)
|
|
|
|
|
|
@click.group("recipes")
|
|
def commands():
|
|
"""
|
|
MLflow Recipes is deprecated and will be removed in MLflow 3.0.
|
|
|
|
Run MLflow Recipes and inspect recipe results.
|
|
"""
|
|
|
|
|
|
@commands.command(short_help="Run the full recipe or a particular recipe step.")
|
|
@click.option(
|
|
"--step",
|
|
"-s",
|
|
type=click.STRING,
|
|
default=None,
|
|
required=False,
|
|
help="The name of the recipe step to run.",
|
|
)
|
|
@_CLI_ARG_RECIPE_PROFILE
|
|
def run(step, profile):
|
|
"""
|
|
Run the full recipe, or run a particular recipe step if specified, producing
|
|
outputs and displaying a summary of results upon completion.
|
|
"""
|
|
Recipe(profile=profile).run(step)
|
|
|
|
|
|
@commands.command(
|
|
short_help=(
|
|
"Remove all recipe outputs from the cache, or remove the cached outputs of"
|
|
" a particular recipe step."
|
|
)
|
|
)
|
|
@click.option(
|
|
"--step",
|
|
"-s",
|
|
type=click.STRING,
|
|
default=None,
|
|
required=False,
|
|
help="The name of the recipe step for which to remove cached outputs.",
|
|
)
|
|
@_CLI_ARG_RECIPE_PROFILE
|
|
def clean(step, profile):
|
|
"""
|
|
Remove all recipe outputs from the cache, or remove the cached outputs of a particular
|
|
recipe step if specified. After cached outputs are cleaned for a particular step, the step
|
|
will be re-executed in its entirety the next time it is run.
|
|
"""
|
|
Recipe(profile=profile).clean(step)
|
|
|
|
|
|
@commands.command(
|
|
short_help=(
|
|
"Display an overview of the recipe graph or a summary of results from a particular step."
|
|
)
|
|
)
|
|
@click.option(
|
|
"--step",
|
|
"-s",
|
|
type=click.STRING,
|
|
default=None,
|
|
required=False,
|
|
help="The name of the recipe step to inspect.",
|
|
)
|
|
@_CLI_ARG_RECIPE_PROFILE
|
|
def inspect(step, profile):
|
|
"""
|
|
Display a visual overview of the recipe graph, or display a summary of results from a
|
|
particular recipe step if specified. If the specified step has not been executed,
|
|
nothing is displayed.
|
|
"""
|
|
Recipe(profile=profile).inspect(step)
|
|
|
|
|
|
@commands.command(short_help=("Get the location of an artifact output from the recipe."))
|
|
@click.option(
|
|
"--artifact",
|
|
"-a",
|
|
type=click.STRING,
|
|
default=None,
|
|
required=True,
|
|
help="The name of the artifact to retrieve.",
|
|
)
|
|
@_CLI_ARG_RECIPE_PROFILE
|
|
def get_artifact(profile, artifact):
|
|
"""
|
|
Get the location of an artifact output from the recipe.
|
|
"""
|
|
artifact_location = Recipe(profile=profile)._get_artifact(artifact).path()
|
|
click.echo(artifact_location)
|