Пример #1
0
def run(api_key, **kwargs):
    utils.validate_workspace_input(kwargs)
    del_if_value_is_none(kwargs)
    jsonify_dicts(kwargs)

    command = RunCommand(api_key=api_key)
    command.execute(**kwargs)
Пример #2
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)
Пример #3
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)
Пример #4
0
def create_single_node(api_key, **kwargs):
    utils.validate_workspace_input(kwargs)
    kwargs["experimentTypeId"] = constants.ExperimentType.SINGLE_NODE
    del_if_value_is_none(kwargs)
    experiments_api = client.API(config.CONFIG_EXPERIMENTS_HOST, api_key=api_key)
    command = experiments_commands.CreateExperimentCommand(api=experiments_api)
    command.execute(kwargs)
Пример #5
0
def get_deployments_list(api_key, options_file, **filters):
    del_if_value_is_none(filters)
    command = deployments_commands.ListDeploymentsCommand(api_key=api_key)
    try:
        command.execute(**filters)
    except exceptions.ApplicationError as e:
        clilogger.CliLogger().error(e)
Пример #6
0
def create_and_start_hyperparameter(api_key, **hyperparameter):
    common.del_if_value_is_none(hyperparameter)
    hyperparameters_api = client.API(config.CONFIG_EXPERIMENTS_HOST,
                                     api_key=api_key)
    command = hyperparameters_commands.CreateAndStartHyperparameterCommand(
        api=hyperparameters_api)
    command.execute(hyperparameter)
Пример #7
0
def create_and_start_multi_node(ctx, api_key, show_logs, **kwargs):
    utils.validate_workspace_input(kwargs)
    del_if_value_is_none(kwargs)
    experiments_api = client.API(config.CONFIG_EXPERIMENTS_HOST, api_key=api_key)
    command = experiments_commands.CreateAndStartExperimentCommand(api=experiments_api)
    experiment = command.execute(kwargs)
    if experiment and show_logs:
        ctx.invoke(list_logs, experiment_id=experiment["handle"], line=0, limit=100, follow=True, api_key=api_key)
Пример #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, **kwargs):
    utils.validate_workspace_input(kwargs)
    del_if_value_is_none(kwargs)
    jsonify_dicts(kwargs)

    command = jobs_commands.CreateJobCommand(api_key=api_key, workspace_handler=get_workspace_handler())
    job = command.execute(kwargs)
    if job is not None:
        ctx.invoke(list_logs, job_id=job["handle"], line=0, limit=100, follow=True, api_key=api_key)
Пример #10
0
def create_and_start_hyperparameter(api_key, **hyperparameter):
    utils.validate_workspace_input(hyperparameter)
    common.del_if_value_is_none(hyperparameter, del_all_falsy=True)

    command = hyperparameters_commands.CreateAndStartHyperparameterCommand(
        api_key=api_key,
        workspace_handler=get_workspace_handler(api_key),
    )
    command.execute(hyperparameter)
Пример #11
0
def create_single_node(api_key, **kwargs):
    utils.validate_workspace_input(kwargs)
    common.del_if_value_is_none(kwargs, del_all_falsy=True)

    command = experiments_commands.CreateSingleNodeExperimentCommand(
        api_key=api_key,
        workspace_handler=get_workspace_handler(api_key),
    )
    command.execute(kwargs)
Пример #12
0
def get_deployments_list(api_key=None, **filters):
    del_if_value_is_none(filters)
    deployment_client = get_deployment_client(api_key)
    command = deployments_commands.ListDeploymentsCommand(
        deployment_client=deployment_client)
    try:
        command.execute(filters=filters)
    except exceptions.ApplicationError as e:
        logger.Logger().error(e)
Пример #13
0
def list_machines(api_key, params, options_file, **kwargs):
    del_if_value_is_none(kwargs)
    params = params or {}
    kwargs = kwargs or {}
    validate_mutually_exclusive(params.values(), kwargs.values(),
                                "You can use either --params dictionary or single filter arguments")

    command = machines_commands.ListMachinesCommand(api_key=api_key, logger=clilogger.CliLogger())
    filters = params or kwargs
    command.execute(**filters)
Пример #14
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)
Пример #15
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)
Пример #16
0
def list_machines(api_key, params, **kwargs):
    del_if_value_is_none(kwargs)
    params = params or {}
    kwargs = kwargs or {}
    validate_mutually_exclusive(params.values(), kwargs.values(),
                                "You can use either --params dictionary or single filter arguments")

    machines_api = http_client.API(config.CONFIG_HOST, api_key=api_key)
    command = machines_commands.ListMachinesCommand(api=machines_api)
    filters = params or kwargs
    command.execute(filters=filters)
Пример #17
0
def create_and_start_single_node(ctx, api_key, show_logs, **kwargs):
    utils.validate_workspace_input(kwargs)
    common.del_if_value_is_none(kwargs, del_all_falsy=True)

    command = experiments_commands.CreateAndStartSingleNodeExperimentCommand(
        api_key=api_key,
        workspace_handler=get_workspace_handler(api_key),
    )
    experiment = command.execute(kwargs)
    if experiment and show_logs:
        ctx.invoke(list_logs, experiment_id=experiment["handle"], line=0, limit=100, follow=True, api_key=api_key)
Пример #18
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)
Пример #19
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)
Пример #20
0
    def accept_create(self):
        project = self.questions.get_json()
        api_key = project.pop("api_key", None)
        common.del_if_value_is_none(project)

        command = self.command_cls(api_key=api_key)

        self.logger.debug("Executing command...")

        try:
            command.execute(project)
        except Exception as e:
            self.logger.error(str(e))

        self.logger.debug("Command executed...")
Пример #21
0
    def accept_create(self):
        project = self.questions.get_json()
        api_key = project.pop("api_key", None)
        common.del_if_value_is_none(project)

        projects_api = client.API(config.CONFIG_HOST, api_key=api_key)

        command = self.command_cls(api=projects_api, logger_=self.logger)

        self.logger.debug("Executing command...")

        try:
            command.execute(project)
        except Exception as e:
            self.logger.error(str(e))

        self.logger.debug("Command executed...")
Пример #22
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)
Пример #23
0
def create_machine(api_key, **kwargs):
    del_if_value_is_none(kwargs)

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

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

    machines_api = http_client.API(config.CONFIG_HOST, api_key=api_key)
    command = machines_commands.CreateMachineCommand(api=machines_api)
    command.execute(kwargs)
Пример #24
0
def update_deployment(deployment_id, api_key, options_file, **kwargs):
    del_if_value_is_none(kwargs)
    command = deployments_commands.UpdateDeploymentCommand(
        api_key=api_key, workspace_handler=get_workspace_handler(api_key))
    command.execute(deployment_id, **kwargs)
Пример #25
0
def update_machine(machine_id, api_key, **kwargs):
    del_if_value_is_none(kwargs)
    machines_api = http_client.API(config.CONFIG_HOST, api_key=api_key)
    command = machines_commands.UpdateMachineCommand(api=machines_api)
    command.execute(machine_id, kwargs)
Пример #26
0
def list_jobs(api_key, options_file, **filters):
    del_if_value_is_none(filters)

    command = jobs_commands.ListJobsCommand(api_key=api_key)
    command.execute(**filters)
Пример #27
0
def create_deployment(api_key=None, **kwargs):
    del_if_value_is_none(kwargs)
    deployments_api = client.API(config.CONFIG_HOST, api_key=api_key)
    command = deployments_commands.CreateDeploymentCommand(api=deployments_api)
    command.execute(kwargs)
Пример #28
0
def get_deployments_list(api_key=None, **filters):
    del_if_value_is_none(filters)
    deployments_api = client.API(config.CONFIG_HOST, api_key=api_key)
    command = deployments_commands.ListDeploymentsCommand(api=deployments_api)
    command.execute(filters=filters)
Пример #29
0
def run(api_key, options_file, **kwargs):
    del_if_value_is_none(kwargs)
    jsonify_dicts(kwargs)

    command = RunCommand(api_key=api_key)
    command.execute(**kwargs)
Пример #30
0
def create_multi_node(api_key, **kwargs):
    utils.validate_workspace_input(kwargs)
    del_if_value_is_none(kwargs)
    experiments_api = client.API(config.CONFIG_EXPERIMENTS_HOST, api_key=api_key)
    command = experiments_commands.CreateExperimentCommand(api=experiments_api)
    command.execute(kwargs)