Пример #1
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)
Пример #2
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)
Пример #3
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)
Пример #4
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 = client.API(config.CONFIG_HOST, api_key=api_key)
    command = machines_commands.ListMachinesCommand(api=machines_api)
    filters = params or kwargs
    command.execute(filters=filters)
Пример #5
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...")
Пример #6
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 = client.API(config.CONFIG_HOST, api_key=api_key)
    command = machines_commands.CreateMachineCommand(api=machines_api)
    command.execute(kwargs)
Пример #7
0
def get_hyperparameter_details(api_key, id_):
    hyperparameters_api = client.API(config.CONFIG_EXPERIMENTS_HOST,
                                     api_key=api_key)
    command = hyperparameters_commands.HyperparameterDetailsCommand(
        api=hyperparameters_api)
    command.execute(id_)
Пример #8
0
def delete_hyperparameter(api_key, id_):
    hyperparameters_api = client.API(config.CONFIG_EXPERIMENTS_HOST,
                                     api_key=api_key)
    command = hyperparameters_commands.DeleteHyperparameterCommand(
        api=hyperparameters_api)
    command.execute(id_)
Пример #9
0
def stop_deployment(id_, api_key=None):
    deployments_api = client.API(config.CONFIG_HOST, api_key=api_key)
    command = deployments_commands.StopDeploymentCommand(api=deployments_api)
    command.execute(id_)
Пример #10
0
def list_logs(experiment_id, line, limit, follow, api_key=None):
    logs_api = client.API(config.CONFIG_LOG_HOST, api_key=api_key)
    command = experiments_commands.ExperimentLogsCommand(api=logs_api)
    command.execute(experiment_id, line, limit, follow)
Пример #11
0
from gradient import config, version, client
from gradient.commands import common

default_headers = {
    "X-API-Key": config.PAPERSPACE_API_KEY,
    "ps_client_name": "paperspace-python",
    "ps_client_version": version.version
}
deployments_api = client.API(config.CONFIG_HOST, headers=default_headers)


class _DeploymentCommandBase(common.CommandBase):
    def _log_message(self, response, success_msg_template, error_msg):
        if response.ok:
            try:
                j = response.json()
                handle = j["deployment"]
            except (ValueError, KeyError):
                self.logger.error(success_msg_template)
            else:
                msg = success_msg_template.format(**handle)
                self.logger.log(msg)
        else:
            try:
                data = response.json()
                self.logger.log_error_response(data)
            except ValueError:
                self.logger.error(error_msg)


class CreateDeploymentCommand(_DeploymentCommandBase):
Пример #12
0
def update_machine(machine_id, api_key, **kwargs):
    del_if_value_is_none(kwargs)
    machines_api = client.API(config.CONFIG_HOST, api_key=api_key)
    command = machines_commands.UpdateMachineCommand(api=machines_api)
    command.execute(machine_id, kwargs)
Пример #13
0
def check_machine_availability(region, machine_type, api_key):
    machines_api = client.API(config.CONFIG_HOST, api_key=api_key)
    command = machines_commands.CheckAvailabilityCommand(api=machines_api)
    command.execute(region, machine_type)
Пример #14
0
def show_machine_details(machine_id, api_key):
    machines_api = client.API(config.CONFIG_HOST, api_key=api_key)
    command = machines_commands.ShowMachineCommand(api=machines_api)
    command.execute(machine_id)
Пример #15
0
def restart_machine(machine_id, api_key):
    machines_api = client.API(config.CONFIG_HOST, api_key=api_key)
    command = machines_commands.RestartMachineCommand(api=machines_api)
    command.execute(machine_id)
Пример #16
0
def destroy_machine(machine_id, release_public_ip, api_key):
    machines_api = client.API(config.CONFIG_HOST, api_key=api_key)
    command = machines_commands.DestroyMachineCommand(api=machines_api)
    command.execute(machine_id, release_public_ip)
Пример #17
0
def start_hyperparameter_tuning(api_key, id_):
    hyperparameters_api = client.API(config.CONFIG_EXPERIMENTS_HOST,
                                     api_key=api_key)
    command = hyperparameters_commands.HyperparameterStartCommand(
        api=hyperparameters_api)
    command.execute(id_)
Пример #18
0
def start_experiment(ctx, experiment_id, show_logs, api_key):
    experiments_api = client.API(config.CONFIG_EXPERIMENTS_HOST, api_key=api_key)
    experiments_commands.start_experiment(experiment_id, api=experiments_api)
    if show_logs:
        ctx.invoke(list_logs, experiment_id=experiment_id, line=0, limit=100, follow=True, api_key=api_key)
Пример #19
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)
Пример #20
0
def list_experiments(project_ids, api_key):
    experiments_api = client.API(config.CONFIG_EXPERIMENTS_HOST, api_key=api_key)
    command = experiments_commands.ListExperimentsCommand(api=experiments_api)
    command.execute(project_ids=project_ids)
Пример #21
0
def stop_machine(machine_id, api_key):
    machines_api = client.API(config.CONFIG_HOST, api_key=api_key)
    command = machines_commands.StopMachineCommand(api=machines_api)
    command.execute(machine_id)
Пример #22
0
import pydoc

import terminaltables
from click import style
from halo import halo

from gradient import logger, constants, client, config
from gradient.commands import common
from gradient.utils import get_terminal_lines
from gradient.workspace import S3WorkspaceHandler

experiments_api = client.API(config.CONFIG_EXPERIMENTS_HOST,
                             headers=client.default_headers)


class ExperimentCommand(common.CommandBase):
    def __init__(self, workspace_handler=None, **kwargs):
        super(ExperimentCommand, self).__init__(**kwargs)
        self._workspace_handler = workspace_handler or S3WorkspaceHandler(
            experiments_api=self.api, logger_=self.logger)

    def _log_create_experiment(self, response, success_msg_template,
                               error_msg):
        if response.ok:
            j = response.json()
            id_ = j["handle"]
            msg = success_msg_template.format(id_)
            self.logger.log(msg)
        else:
            try:
                data = response.json()
Пример #23
0
def stop_experiment(experiment_id, api_key):
    experiments_api = client.API(config.CONFIG_EXPERIMENTS_HOST, api_key=api_key)
    experiments_commands.stop_experiment(experiment_id, api=experiments_api)
Пример #24
0
def show_machine_utilization(machine_id, billing_month, api_key):
    machines_api = client.API(config.CONFIG_HOST, api_key=api_key)
    command = machines_commands.ShowMachineUtilisationCommand(api=machines_api)
    command.execute(machine_id, billing_month)
Пример #25
0
def get_experiment_details(experiment_id, api_key):
    experiments_api = client.API(config.CONFIG_EXPERIMENTS_HOST, api_key=api_key)
    experiments_commands.get_experiment_details(experiment_id, api=experiments_api)
Пример #26
0
def wait_for_machine_state(machine_id, state, api_key):
    machines_api = client.API(config.CONFIG_HOST, api_key=api_key)
    command = machines_commands.WaitForMachineStateCommand(api=machines_api)
    command.execute(machine_id, state)
Пример #27
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)
Пример #28
0
def list_hyperparameters(api_key):
    hyperparameters_api = client.API(config.CONFIG_EXPERIMENTS_HOST,
                                     api_key=api_key)
    command = hyperparameters_commands.ListHyperparametersCommand(
        api=hyperparameters_api)
    command.execute()
Пример #29
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)
Пример #30
0
def list_models(api_key, **filters):
    common.del_if_value_is_none(filters)
    models_api = client.API(config.CONFIG_HOST, api_key=api_key)
    command = models_commands.ListModelsCommand(api=models_api)
    command.execute(filters=filters)