def tensorboards(ctx, query, sort, page): """List tensorboard jobs for this project. Uses [Caching](/references/polyaxon-cli/#caching) """ user, project_name = get_project_or_local(ctx.obj.get('project')) page = page or 1 try: response = PolyaxonClient().project.list_tensorboards(username=user, project_name=project_name, query=query, sort=sort, page=page) except (PolyaxonHTTPError, PolyaxonShouldExitError, PolyaxonClientException) as e: Printer.print_error('Could not get tensorboards for project `{}`.'.format(project_name)) Printer.print_error('Error message `{}`.'.format(e)) sys.exit(1) meta = get_meta_response(response) if meta: Printer.print_header('Tensorboards for project `{}/{}`.'.format(user, project_name)) Printer.print_header('Navigation:') dict_tabulate(meta) else: Printer.print_header('No tensorboards found for project `{}/{}`.'.format(user, project_name)) objects = [Printer.add_status_color(o.to_light_dict(humanize_values=True)) for o in response['results']] objects = list_dicts_to_tabulate(objects) if objects: Printer.print_header("Tensorboards:") objects.pop('project_name', None) dict_tabulate(objects, is_list_dict=True)
def experiments(group, project, page): """List experiments for this experiment group""" user, project_name = get_project_or_local(project) page = page or 1 try: response = PolyaxonClients().experiment_group.list_experiments( user, project_name, group, page=page) except (PolyaxonHTTPError, PolyaxonShouldExitError) as e: Printer.print_error( 'Could not get experiments for group `{}`.'.format(group)) Printer.print_error('Error message `{}`.'.format(e)) sys.exit(1) meta = get_meta_response(response) if meta: Printer.print_header( 'Experiments for experiment group `{}`.'.format(group)) Printer.print_header('Navigation:') dict_tabulate(meta) else: Printer.print_header( 'No experiments found for experiment group `{}`.'.format(group)) objects = list_dicts_to_tabulate( [o.to_dict() for o in response['results']]) if objects: Printer.print_header("Experiments:") objects.pop('group') dict_tabulate(objects, is_list_dict=True)
def statuses(experiment, job, project): """Get job status. Examples: ``` polyaxon job status 50c62372137940ca8c456d8596946dd7 ``` """ user, project_name = get_project_or_local(project) try: response = PolyaxonClients().job.get_statuses(user, project_name, experiment, job) except (PolyaxonHTTPError, PolyaxonShouldExitError) as e: Printer.print_error('Could not get status for job `{}`.'.format(job)) Printer.print_error('Error message `{}`.'.format(e)) sys.exit(1) meta = get_meta_response(response) if meta: Printer.print_header('Statuses for Job `{}`.'.format(job)) Printer.print_header('Navigation:') dict_tabulate(meta) else: Printer.print_header('No statuses found for job `{}`.'.format(job)) objects = list_dicts_to_tabulate( [o.to_dict() for o in response['results']]) if objects: Printer.print_header("Statuses:") objects.pop('job') dict_tabulate(objects, is_list_dict=True)
def list(page): # pylint:disable=redefined-builtin """List projects. Uses [Caching](/references/polyaxon-cli/#caching) """ user = AuthConfigManager.get_value('username') if not user: Printer.print_error('Please login first. `polyaxon login --help`') page = page or 1 try: response = PolyaxonClient().project.list_projects(user, page=page) except (PolyaxonHTTPError, PolyaxonShouldExitError, PolyaxonClientException) as e: Printer.print_error('Could not get list of projects.') Printer.print_error('Error message `{}`.'.format(e)) sys.exit(1) meta = get_meta_response(response) if meta: Printer.print_header('Projects for current user') Printer.print_header('Navigation:') dict_tabulate(meta) else: Printer.print_header('No projects found for current user') objects = list_dicts_to_tabulate( [o.to_light_dict( humanize_values=True, exclude_attrs=['uuid', 'experiment_groups', 'experiments', 'description', 'num_experiments', 'num_independent_experiments', 'num_experiment_groups', 'num_jobs', 'num_builds', 'unique_name']) for o in response['results']]) if objects: Printer.print_header("Projects:") dict_tabulate(objects, is_list_dict=True)
def get_experiment_job_statuses(): try: response = PolyaxonClient().experiment_job.get_statuses( user, project_name, _experiment, _job, page=page) except (PolyaxonHTTPError, PolyaxonShouldExitError, PolyaxonClientException) as e: Printer.print_error( 'Could not get status for job `{}`.'.format(job)) Printer.print_error('Error message `{}`.'.format(e)) sys.exit(1) meta = get_meta_response(response) if meta: Printer.print_header('Statuses for Job `{}`.'.format(_job)) Printer.print_header('Navigation:') dict_tabulate(meta) else: Printer.print_header( 'No statuses found for job `{}`.'.format(_job)) objects = list_dicts_to_tabulate([ Printer.add_status_color(o.to_light_dict(humanize_values=True), status_key='status') for o in response['results'] ]) if objects: Printer.print_header("Statuses:") objects.pop('job', None) dict_tabulate(objects, is_list_dict=True)
def experiments(ctx, page, metrics): """List experiments for this experiment group Uses [Caching](/polyaxon_cli/introduction#Caching) """ user, project_name, _group = get_group_or_local(ctx.obj['project'], ctx.obj['group']) page = page or 1 try: response = PolyaxonClients().experiment_group.list_experiments( user, project_name, _group, page=page) except (PolyaxonHTTPError, PolyaxonShouldExitError) as e: Printer.print_error('Could not get experiments for group `{}`.'.format(_group)) Printer.print_error('Error message `{}`.'.format(e)) sys.exit(1) meta = get_meta_response(response) if meta: Printer.print_header('Experiments for experiment group `{}`.'.format(_group)) Printer.print_header('Navigation:') dict_tabulate(meta) else: Printer.print_header('No experiments found for experiment group `{}`.'.format(_group)) if metrics: objects = get_experiments_with_metrics(response) else: objects = [Printer.add_status_color(o.to_light_dict(humanize_values=True)) for o in response['results']] objects = list_dicts_to_tabulate(objects) if objects: Printer.print_header("Experiments:") objects.pop('experiment_group', None) objects.pop('experiment_group_name', None) objects.pop('project_name', None) dict_tabulate(objects, is_list_dict=True)
def list(page): """List projects.""" user = AuthConfigManager.get_value('username') if not user: Printer.print_error('Please login first. `polyaxon login --help`') page = page or 1 try: response = PolyaxonClients().project.list_projects(user, page=page) except (PolyaxonHTTPError, PolyaxonShouldExitError) as e: Printer.print_error('Could not get list of projects.') Printer.print_error('Error message `{}`.'.format(e)) sys.exit(1) meta = get_meta_response(response) if meta: Printer.print_header('Projects for current user') Printer.print_header('Navigation:') dict_tabulate(meta) else: Printer.print_header('No projects found for current user') objects = list_dicts_to_tabulate( [o.to_dict() for o in response['results']]) if objects: Printer.print_header("Projects:") dict_tabulate(objects, is_list_dict=True)
def experiments(ctx, metrics, declarations, query, sort, page): """List experiments for this experiment group Uses [Caching](/references/polyaxon-cli/#caching) """ user, project_name, _group = get_project_group_or_local( ctx.obj.get('project'), ctx.obj.get('group')) page = page or 1 try: response = PolyaxonClient().experiment_group.list_experiments( username=user, project_name=project_name, group_id=_group, metrics=metrics, declarations=declarations, query=query, sort=sort, page=page) except (PolyaxonHTTPError, PolyaxonShouldExitError, PolyaxonClientException) as e: Printer.print_error( 'Could not get experiments for group `{}`.'.format(_group)) Printer.print_error('Error message `{}`.'.format(e)) sys.exit(1) meta = get_meta_response(response) if meta: Printer.print_header( 'Experiments for experiment group `{}`.'.format(_group)) Printer.print_header('Navigation:') dict_tabulate(meta) else: Printer.print_header( 'No experiments found for experiment group `{}`.'.format(_group)) if metrics: objects = get_experiments_with_metrics(response) elif declarations: objects = get_experiments_with_declarations(response) else: objects = [ Printer.add_status_color(o.to_light_dict(humanize_values=True)) for o in response['results'] ] objects = list_dicts_to_tabulate(objects) if objects: Printer.print_header("Experiments:") objects.pop('experiment_group', None) objects.pop('experiment_group_name', None) objects.pop('project_name', None) dict_tabulate(objects, is_list_dict=True)
def groups(ctx, page): """List bookmarked experiment groups for user. Uses [Caching](/references/polyaxon-cli/#caching) Examples: \b ```bash $ polyaxon bookmark groups ``` \b ```bash $ polyaxon bookmark -u adam groups ``` """ user = get_username_or_local(ctx.obj.get('username')) page = page or 1 try: response = PolyaxonClient().bookmark.groups(username=user, page=page) except (PolyaxonHTTPError, PolyaxonShouldExitError, PolyaxonClientException) as e: Printer.print_error( 'Could not get bookmarked experiment groups for user `{}`.'.format( user)) Printer.print_error('Error message `{}`.'.format(e)) sys.exit(1) meta = get_meta_response(response) if meta: Printer.print_header( 'Bookmarked experiment groups for user `{}`.'.format(user)) Printer.print_header('Navigation:') dict_tabulate(meta) else: Printer.print_header( 'No bookmarked experiment groups found for user `{}`.'.format( user)) objects = [ Printer.add_status_color(o.to_light_dict(humanize_values=True)) for o in response['results'] ] objects = list_dicts_to_tabulate(objects) if objects: Printer.print_header("Experiment groups:") dict_tabulate(objects, is_list_dict=True)
def statuses(ctx, page): """Get experiment group statuses. Uses [Caching](/references/polyaxon-cli/#caching) Examples: \b ```bash $ polyaxon group -g 2 statuses ``` """ user, project_name, _group = get_project_group_or_local( ctx.obj.get('project'), ctx.obj.get('group')) page = page or 1 try: response = PolyaxonClient().experiment_group.get_statuses(user, project_name, _group, page=page) except (PolyaxonHTTPError, PolyaxonShouldExitError, PolyaxonClientException) as e: Printer.print_error( 'Could not get status for group `{}`.'.format(_group)) Printer.print_error('Error message `{}`.'.format(e)) sys.exit(1) meta = get_meta_response(response) if meta: Printer.print_header('Statuses for group `{}`.'.format(_group)) Printer.print_header('Navigation:') dict_tabulate(meta) else: Printer.print_header( 'No statuses found for group `{}`.'.format(_group)) objects = list_dicts_to_tabulate([ Printer.add_status_color(o.to_light_dict(humanize_values=True), status_key='status') for o in response['results'] ]) if objects: Printer.print_header("Statuses:") objects.pop('experiment_group', None) dict_tabulate(objects, is_list_dict=True)
def jobs(ctx, page): """List jobs for experiment. Uses [Caching](/references/polyaxon-cli/#caching) Examples: \b ```bash $ polyaxon experiment --experiment=1 jobs ``` """ user, project_name, _experiment = get_project_experiment_or_local( ctx.obj.get('project'), ctx.obj.get('experiment')) page = page or 1 try: response = PolyaxonClient().experiment.list_jobs(user, project_name, _experiment, page=page) except (PolyaxonHTTPError, PolyaxonShouldExitError, PolyaxonClientException) as e: Printer.print_error( 'Could not get jobs for experiment `{}`.'.format(_experiment)) Printer.print_error('Error message `{}`.'.format(e)) sys.exit(1) meta = get_meta_response(response) if meta: Printer.print_header('Jobs for experiment `{}`.'.format(_experiment)) Printer.print_header('Navigation:') dict_tabulate(meta) else: Printer.print_header( 'No jobs found for experiment `{}`.'.format(_experiment)) objects = [ Printer.add_status_color(o.to_light_dict(humanize_values=True)) for o in response['results'] ] objects = list_dicts_to_tabulate(objects) if objects: Printer.print_header("Jobs:") objects.pop('experiment', None) dict_tabulate(objects, is_list_dict=True)
def statuses(ctx, page): """Get build job statuses. Uses [Caching](/polyaxon_cli/introduction#Caching) Examples: \b ```bash $ polyaxon build -b 2 statuses ``` """ user, project_name, _build = get_build_or_local(ctx.obj.get('project'), ctx.obj.get('build')) page = page or 1 try: response = PolyaxonClient().build_job.get_statuses(user, project_name, _build, page=page) except (PolyaxonHTTPError, PolyaxonShouldExitError, PolyaxonClientException) as e: Printer.print_error( 'Could not get status for build job `{}`.'.format(_build)) Printer.print_error('Error message `{}`.'.format(e)) sys.exit(1) meta = get_meta_response(response) if meta: Printer.print_header('Statuses for build job `{}`.'.format(_build)) Printer.print_header('Navigation:') dict_tabulate(meta) else: Printer.print_header( 'No statuses found for build job `{}`.'.format(_build)) objects = list_dicts_to_tabulate([ Printer.add_status_color(o.to_light_dict(humanize_values=True), status_key='status') for o in response['results'] ]) if objects: Printer.print_header("Statuses:") objects.pop('job', None) dict_tabulate(objects, is_list_dict=True)
def statuses(ctx, page): """Get experiment status. Uses [Caching](/polyaxon_cli/introduction#Caching) Example: \b ```bash $ polyaxon experiment statuses 3 ``` \b ```bash $ polyaxon experiment -xp 1 statuses ``` """ user, project_name, _experiment = get_experiment_or_local(ctx.obj['project'], ctx.obj['experiment']) page = page or 1 try: response = PolyaxonClients().experiment.get_statuses( user, project_name, _experiment, page=page) except (PolyaxonHTTPError, PolyaxonShouldExitError) as e: Printer.print_error('Could get status for experiment `{}`.'.format(_experiment)) Printer.print_error('Error message `{}`.'.format(e)) sys.exit(1) meta = get_meta_response(response) if meta: Printer.print_header('Statuses for experiment `{}`.'.format(_experiment)) Printer.print_header('Navigation:') dict_tabulate(meta) else: Printer.print_header('No statuses found for experiment `{}`.'.format(_experiment)) objects = list_dicts_to_tabulate([Printer.handle_statuses(o.to_light_dict(humanize_values=True)) for o in response['results']]) if objects: Printer.print_header("Statuses:") objects.pop('experiment', None) dict_tabulate(objects, is_list_dict=True)
def statuses(experiment, project, page): """Get experiment status. Examples: ``` polyaxon experiment status 3 ``` """ user, project_name = get_project_or_local(project) page = page or 1 try: response = PolyaxonClients().experiment.get_statuses(user, project_name, experiment, page=page) except (PolyaxonHTTPError, PolyaxonShouldExitError) as e: Printer.print_error( 'Could get status for experiment `{}`.'.format(experiment)) Printer.print_error('Error message `{}`.'.format(e)) sys.exit(1) meta = get_meta_response(response) if meta: Printer.print_header( 'Statuses for experiment `{}`.'.format(experiment)) Printer.print_header('Navigation:') dict_tabulate(meta) else: Printer.print_header( 'No statuses found for experiment `{}`.'.format(experiment)) objects = list_dicts_to_tabulate( [o.to_dict() for o in response['results']]) if objects: Printer.print_header("Statuses:") objects.pop('experiment') dict_tabulate(objects, is_list_dict=True)
def builds(ctx, query, sort, page): """List build jobs for this project. Uses [Caching](/references/polyaxon-cli/#caching) Examples: Get all builds: \b ```bash $ polyaxon project builds ``` Get all builds with with status not in {created or running} \b ```bash $ polyaxon project builds -q "status:~created" ``` Get all builds with with status failed \b ```bash $ polyaxon project builds -q "status:failed" ``` Get all builds sorted by update date \b ```bash $ polyaxon project builds -s "-updated_at" ``` """ user, project_name = get_project_or_local(ctx.obj.get('project')) page = page or 1 try: response = PolyaxonClient().project.list_builds( username=user, project_name=project_name, query=query, sort=sort, page=page) except (PolyaxonHTTPError, PolyaxonShouldExitError, PolyaxonClientException) as e: Printer.print_error( 'Could not get builds for project `{}`.'.format(project_name)) Printer.print_error('Error message `{}`.'.format(e)) sys.exit(1) meta = get_meta_response(response) if meta: Printer.print_header('Builds for project `{}/{}`.'.format( user, project_name)) Printer.print_header('Navigation:') dict_tabulate(meta) else: Printer.print_header('No builds found for project `{}/{}`.'.format( user, project_name)) objects = [ Printer.add_status_color(o.to_light_dict(humanize_values=True)) for o in response['results'] ] objects = list_dicts_to_tabulate(objects) if objects: Printer.print_header("Builds:") objects.pop('project_name', None) dict_tabulate(objects, is_list_dict=True)
def experiments(ctx, metrics, declarations, independent, group, query, sort, page): """List experiments for this project. Uses [Caching](/references/polyaxon-cli/#caching) Examples: Get all experiments: \b ```bash $ polyaxon project experiments ``` Get all experiments with with status {created or running}, and creation date between 2018-01-01 and 2018-01-02, and declarations activation equal to sigmoid and metric loss less or equal to 0.2 \b ```bash $ polyaxon project experiments \ -q "status:created|running, started_at:2018-01-01..2018-01-02, \ declarations.activation:sigmoid, metric.loss:<=0.2" ``` Get all experiments sorted by update date \b ```bash $ polyaxon project experiments -s "-updated_at" ``` """ user, project_name = get_project_or_local(ctx.obj.get('project')) page = page or 1 try: response = PolyaxonClient().project.list_experiments( username=user, project_name=project_name, independent=independent, group=group, metrics=metrics, declarations=declarations, query=query, sort=sort, page=page) except (PolyaxonHTTPError, PolyaxonShouldExitError, PolyaxonClientException) as e: Printer.print_error( 'Could not get experiments for project `{}`.'.format(project_name)) Printer.print_error('Error message `{}`.'.format(e)) sys.exit(1) meta = get_meta_response(response) if meta: Printer.print_header('Experiments for project `{}/{}`.'.format( user, project_name)) Printer.print_header('Navigation:') dict_tabulate(meta) else: Printer.print_header( 'No experiments found for project `{}/{}`.'.format( user, project_name)) if metrics: objects = get_experiments_with_metrics(response) elif declarations: objects = get_experiments_with_declarations(response) else: objects = [ Printer.add_status_color(o.to_light_dict(humanize_values=True)) for o in response['results'] ] objects = list_dicts_to_tabulate(objects) if objects: Printer.print_header("Experiments:") objects.pop('project_name', None) dict_tabulate(objects, is_list_dict=True)
def groups(ctx, query, sort, page): """List experiment groups for this project. Uses [Caching](/references/polyaxon-cli/#caching) Examples: Get all groups: \b ```bash $ polyaxon project groups ``` Get all groups with with status {created or running}, and creation date between 2018-01-01 and 2018-01-02, and search algorithm not in {grid or random search} \b ```bash $ polyaxon project groups \ -q "status:created|running, started_at:2018-01-01..2018-01-02, search_algorithm:~grid|random" ``` Get all groups sorted by update date \b ```bash $ polyaxon project groups -s "-updated_at" ``` """ user, project_name = get_project_or_local(ctx.obj.get('project')) page = page or 1 try: response = PolyaxonClient().project.list_experiment_groups( username=user, project_name=project_name, query=query, sort=sort, page=page) except (PolyaxonHTTPError, PolyaxonShouldExitError, PolyaxonClientException) as e: Printer.print_error( 'Could not get experiment groups for project `{}`.'.format( project_name)) Printer.print_error('Error message `{}`.'.format(e)) sys.exit(1) meta = get_meta_response(response) if meta: Printer.print_header('Experiment groups for project `{}/{}`.'.format( user, project_name)) Printer.print_header('Navigation:') dict_tabulate(meta) else: Printer.print_header( 'No experiment groups found for project `{}/{}`.'.format( user, project_name)) objects = [ Printer.add_status_color(o.to_light_dict(humanize_values=True)) for o in response['results'] ] objects = list_dicts_to_tabulate(objects) if objects: Printer.print_header("Experiment groups:") objects.pop('project', None) objects.pop('user', None) dict_tabulate(objects, is_list_dict=True)