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)
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)
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)
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)
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
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)