Пример #1
0
def create_job(ctx, api_key, options_file, datasets=None, **kwargs):
    kwargs["tags"] = validate_comma_split_option(kwargs.pop("tags_comma"),
                                                 kwargs.pop("tags"))

    del_if_value_is_none(kwargs)
    jsonify_dicts(kwargs)

    if datasets:
        values = []

        for value in datasets:
            name, _, ref = value.partition("@")
            if not (name and ref):
                raise click.UsageError(
                    "Dataset '%s' must have an @ (ex: images@dsr8k5qzn401lb5:klfoyy9)"
                    % value)

            dataset = {"id": ref, "name": name}
            if ":" not in ref:
                dataset["output"] = True

            values.append(dataset)

        kwargs["datasets"] = values

    command = jobs_commands.CreateJobCommand(
        api_key=api_key, workspace_handler=get_workspace_handler())
    job_handle = command.execute(kwargs)
    if job_handle is not None:
        ctx.invoke(list_logs,
                   job_id=job_handle,
                   line=1,
                   limit=100,
                   follow=True,
                   api_key=api_key)
Пример #2
0
def project_remove_tags(id, options_file, api_key, **kwargs):
    kwargs["tags"] = validate_comma_split_option(kwargs.pop("tags_comma"),
                                                 kwargs.pop("tags"),
                                                 raise_if_no_values=True)

    command = projects_commands.ProjectRemoveTagsCommand(api_key=api_key)
    command.execute(id, **kwargs)
Пример #3
0
def deployment_add_tag(id, options_file, api_key, **kwargs):
    kwargs["tags"] = validate_comma_split_option(kwargs.pop("tags_comma"),
                                                 kwargs.pop("tags"),
                                                 raise_if_no_values=True)

    command = DeploymentAddTagsCommand(api_key=api_key)
    command.execute(id, **kwargs)
Пример #4
0
def ml_model_remove_tags(id, options_file, api_key, **kwargs):
    kwargs["tags"] = validate_comma_split_option(kwargs.pop("tags_comma"),
                                                 kwargs.pop("tags"),
                                                 raise_if_no_values=True)

    command = models_commands.MLModelRemoveTagsCommand(api_key=api_key)
    command.execute(id, **kwargs)
Пример #5
0
 def test_validate_comma_split_option(self, comma_value, value, expected_result):
     if expected_result:
         expected_result.sort()
     result = validate_comma_split_option(comma_value, value)
     if result:
         result.sort()
     assert result == expected_result
Пример #6
0
def create_and_start_multi_node(ctx, api_key, show_logs, tensorboard,
                                tensorboard_set, options_file, **kwargs):
    kwargs["tags"] = validate_comma_split_option(kwargs.pop("tags_comma"),
                                                 kwargs.pop("tags"))
    add_to_tensorboard = parse_tensorboard_options(tensorboard,
                                                   tensorboard_set)

    validators.validate_multi_node(kwargs)
    common.del_if_value_is_none(kwargs)

    experiment_type = kwargs.get('experiment_type_id')
    command_class = MULTI_NODE_RUN_EXPERIMENT_COMMANDS.get(experiment_type)

    command = command_class(
        api_key=api_key,
        workspace_handler=get_workspace_handler(api_key),
    )
    experiment_id = command.execute(kwargs,
                                    add_to_tensorboard=add_to_tensorboard)
    if experiment_id and show_logs:
        ctx.invoke(list_logs,
                   experiment_id=experiment_id,
                   line=1,
                   limit=100,
                   follow=True,
                   api_key=api_key)
Пример #7
0
def notebook_remove_tags(id, options_file, api_key, **kwargs):
    kwargs["tags"] = validate_comma_split_option(kwargs.pop("tags_comma"),
                                                 kwargs.pop("tags"),
                                                 raise_if_no_values=True)

    command = notebooks.NotebookRemoveTagsCommand(api_key=api_key)
    command.execute(id, **kwargs)
Пример #8
0
def create_deployment(api_key, options_file, **kwargs):
    cliutils.validate_auth_options(kwargs)
    kwargs["tags"] = validate_comma_split_option(kwargs.pop("tags_comma"),
                                                 kwargs.pop("tags"))
    del_if_value_is_none(kwargs)
    command = deployments_commands.CreateDeploymentCommand(
        api_key=api_key, workspace_handler=get_workspace_handler(api_key))
    command.execute(**kwargs)
Пример #9
0
def create_job(ctx, api_key, options_file, **kwargs):
    kwargs["tags"] = validate_comma_split_option(kwargs.pop("tags_comma"), kwargs.pop("tags"))

    del_if_value_is_none(kwargs)
    jsonify_dicts(kwargs)

    command = jobs_commands.CreateJobCommand(api_key=api_key, workspace_handler=get_workspace_handler())
    job_handle = command.execute(kwargs)
    if job_handle is not None:
        ctx.invoke(list_logs, job_id=job_handle, line=1, limit=100, follow=True, api_key=api_key)
Пример #10
0
def create_single_node(api_key, tensorboard, tensorboard_set, options_file, **kwargs):
    kwargs["tags"] = validate_comma_split_option(kwargs.pop("tags_comma"), kwargs.pop("tags"))
    add_to_tensorboard = parse_tensorboard_options(tensorboard, tensorboard_set)

    common.del_if_value_is_none(kwargs)

    command = experiments_commands.CreateSingleNodeExperimentCommand(
        api_key=api_key,
        workspace_handler=get_workspace_handler(api_key),
    )
    command.execute(kwargs, add_to_tensorboard=add_to_tensorboard)
Пример #11
0
def create_multi_node(api_key, tensorboard, tensorboard_set, options_file, **kwargs):
    kwargs["tags"] = validate_comma_split_option(kwargs.pop("tags_comma"), kwargs.pop("tags"))
    add_to_tensorboard = parse_tensorboard_options(tensorboard, tensorboard_set)

    validators.validate_multi_node(kwargs)
    common.del_if_value_is_none(kwargs)
    experiment_type = kwargs.get('experiment_type_id')
    command_class = MULTI_NODE_CREATE_EXPERIMENT_COMMANDS.get(experiment_type)
    command = command_class(
        api_key=api_key,
        workspace_handler=get_workspace_handler(api_key),
    )
    command.execute(kwargs, add_to_tensorboard=add_to_tensorboard)
Пример #12
0
def create_and_start_single_node(ctx, api_key, show_logs, tensorboard, tensorboard_set, options_file,
                                 **kwargs):
    kwargs["tags"] = validate_comma_split_option(kwargs.pop("tags_comma"), kwargs.pop("tags"))
    add_to_tensorboard = parse_tensorboard_options(tensorboard, tensorboard_set)

    common.del_if_value_is_none(kwargs)

    command = experiments_commands.CreateAndStartSingleNodeExperimentCommand(
        api_key=api_key,
        workspace_handler=get_workspace_handler(api_key),
    )
    experiment_id = command.execute(kwargs, add_to_tensorboard=add_to_tensorboard)
    if experiment_id and show_logs:
        ctx.invoke(list_logs, experiment_id=experiment_id, line=1, limit=100, follow=True, api_key=api_key)
Пример #13
0
def create_machine(api_key, options_file, **kwargs):
    kwargs["tags"] = validate_comma_split_option(kwargs.pop("tags_comma"), kwargs.pop("tags"))
    del_if_value_is_none(kwargs)

    assign_public_ip = kwargs.get("assign_public_ip")
    dynamic_public_ip = kwargs.get("dynamic_public_ip")
    validate_mutually_exclusive([assign_public_ip], [dynamic_public_ip],
                                "--assignPublicIp cannot be used with --dynamicPublicIp")

    user_id = kwargs.get("user_id")
    email = kwargs.get("email")
    password = kwargs.get("password")
    first_name = kwargs.get("first_name")
    last_name = kwargs.get("last_name")
    validate_mutually_exclusive([user_id], [email, password, first_name, last_name],
                                "--userId is mutually exclusive with --email, --password, --firstName and --lastName")

    command = machines_commands.CreateMachineCommand(api_key=api_key, logger=clilogger.CliLogger())
    command.execute(kwargs)
Пример #14
0
def start_notebook(api_key, options_file, **notebook):
    notebook["tags"] = validate_comma_split_option(notebook.pop("tags_comma"),
                                                   notebook.pop("tags"))
    command = notebooks.StartNotebookCommand(api_key=api_key)
    command.execute(**notebook)
Пример #15
0
def upload_model(api_key, options_file, **model):
    model["tags"] = validate_comma_split_option(model.pop("tags_comma"),
                                                model.pop("tags"))
    command = models_commands.UploadModel(api_key=api_key)
    command.execute(**model)
Пример #16
0
def create_project(api_key, options_file, **project):
    project["tags"] = validate_comma_split_option(project.pop("tags_comma"),
                                                  project.pop("tags"))
    command = projects_commands.CreateProjectCommand(api_key)
    command.execute(project)
Пример #17
0
def machine_add_tag(id, options_file, api_key, **kwargs):
    kwargs["tags"] = validate_comma_split_option(kwargs.pop("tags_comma"), kwargs.pop("tags"), raise_if_no_values=True)

    command = machines_commands.MachineAddTagsCommand(api_key=api_key)
    command.execute(id, **kwargs)