Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
@normalize_exceptions
def project(self, project, entity=None):
"""Retrive project
Args:
project (str): The project to get details for
entity (str, optional): The entity to scope this project to.
Returns:
[{"id","name","repo","dockerImage","description"}]
"""
query = gql('''
query Models($entity: String, $project: String!) {
model(name: $project, entityName: $entity) {
id
name
repo
@normalize_exceptions
def run_config(self, project, run=None, entity=None):
"""Get the relevant configs for a run
Args:
project (str): The project to download, (can include bucket)
run (str, optional): The run to download
entity (str, optional): The entity to scope this project to.
"""
query = gql('''
query Model($name: String!, $entity: String!, $run: String!) {
model(name: $name, entityName: $entity) {
bucket(name: $run) {
config
commit
patch
files(names: ["wandb-metadata.json"]) {
@normalize_exceptions
def upload_urls(self, project, files, run=None, entity=None, description=None):
"""Generate temporary resumeable upload urls
Args:
project (str): The project to download
files (list or dict): The filenames to upload
run (str, optional): The run to upload to
entity (str, optional): The entity to scope this project to. Defaults to wandb models
Returns:
(bucket_id, file_info)
bucket_id: id of bucket we uploaded to
file_info: A dict of filenames and urls, also indicates if this revision already has uploaded files.
{
'weights.h5': { "url": "https://weights.url" },
'model.json': { "url": "https://model.json", "updatedAt": '2013-04-26T22:22:23.832Z', 'md5': 'mZFLkyvTelC5g8XnyQrpOw==' },
@normalize_exceptions
def check_stop_requested(self, project_name, entity_name, run_id):
query = gql('''
query Model($projectName: String, $entityName: String, $runId: String!) {
project(name:$projectName, entityName:$entityName) {
run(name:$runId) {
stopped
}
}
}
''')
response = self.gql(query, variable_values={
'projectName': project_name, 'entityName': entity_name, 'runId': run_id,
})
project = response.get('project', None)
@normalize_exceptions
def run_resume_status(self, entity, project_name, name):
"""Check if a run exists and get resume information.
Args:
entity (str, optional): The entity to scope this project to.
project_name (str): The project to download, (can include bucket)
run (str, optional): The run to download
"""
query = gql('''
query Model($project: String!, $entity: String, $name: String!) {
model(name: $project, entityName: $entity) {
id
name
entity {
id
name
@normalize_exceptions
def upsert_sweep(self, config, controller=None, scheduler=None, obj_id=None):
"""Upsert a sweep object.
Args:
config (str): sweep config (will be converted to yaml)
"""
mutation = gql('''
mutation UpsertSweep(
$id: ID,
$config: String,
$description: String,
$entityName: String!,
$projectName: String!,
$controller: JSONString,
$scheduler: JSONString
) {
@normalize_exceptions
def run(self, path=""):
"""Returns a single run by parsing path in the form entity/project/run_id.
Args:
path (str): path to run in the form entity/project/run_id.
If api.entity is set, this can be in the form project/run_id
and if api.project is set this can just be the run_id.
Returns:
A :obj:`Run` object.
"""
entity, project, run = self._parse_path(path)
if not self._runs.get(path):
self._runs[path] = Run(self.client, entity, project, run)
return self._runs[path]
@normalize_exceptions
def sweep(self, sweep, specs, project=None, entity=None):
"""Retrieve sweep.
Args:
sweep (str): The sweep to get details for
specs (str): history specs
project (str, optional): The project to scope this sweep to.
entity (str, optional): The entity to scope this sweep to.
Returns:
[{"id","name","repo","dockerImage","description"}]
"""
query = gql('''
query Models($entity: String, $project: String!, $sweep: String!, $specs: [JSONString!]!) {
model(name: $project, entityName: $entity) {
sweep(sweepName: $sweep) {
@normalize_exceptions
def register_agent(self, host, sweep_id=None, project_name=None):
"""Register a new agent
Args:
host (str): hostname
persistent (bool): long running or oneoff
sweep (str): sweep id
project_name: (str): model that contains sweep
"""
mutation = gql('''
mutation CreateAgent(
$host: String!
$projectName: String!,
$entityName: String!,
$sweep: String!
) {
@normalize_exceptions
def upsert_run(self, id=None, name=None, project=None, host=None,
group=None, tags=None,
config=None, description=None, entity=None, state=None,
display_name=None, notes=None,
repo=None, job_type=None, program_path=None, commit=None,
sweep_name=None, summary_metrics=None, num_retries=None):
"""Update a run
Args:
id (str, optional): The existing run to update
name (str, optional): The name of the run to create
group (str, optional): Name of the group this run is a part of
project (str, optional): The name of the project
config (dict, optional): The latest config params
description (str, optional): A description of this project
entity (str, optional): The entity to scope this project to.