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)
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)
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)
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)
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...")
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)
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_)
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_)
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_)
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)
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):
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)
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)
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)
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)
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)
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_)
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)
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)
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)
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)
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()
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)
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)
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)
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)
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)
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()
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)
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)