def from_dict(obj): """Create the descriptor from a dictionary serialization. Parameters ---------- obj: dict Dictionary serialization for dataset descriptor as returned by the server. Returns ------- vizier.api.client.resources.dataset.DatasetDescriptor """ return DatasetDescriptor( identifier=obj[labels.ID], name=obj[labels.NAME], columns=[ DatasetColumn( identifier=col[labels.ID], name=col[labels.NAME], data_type=col[labels.DATATYPE] ) for col in obj['columns'] ], links=deserialize.HATEOAS(links=obj[labels.LINKS]) )
def info(self): """Print information about the API (from the API service descriptor).""" r = requests.get(self.urls.service_descriptor()) r.raise_for_status() print('Name : ' + doc['name']) print('URL : ' + deserialize.HATEOAS(doc['links'])['self']) print('Engine : ' + doc['environment']['name']) print('Backend : ' + doc['environment']['backend']) print('Packages: ' + ', '.join(doc['environment']['packages'])) print('Version : ' + doc['environment']['version']) print('Started : ' + doc['startedAt'])
def from_dict(obj): """Get a workflow module resource instance from the dictionary representation returned by the vizier web service. Parameters ---------- obj: dict Dictionary serialization of a workflow module handle Returns ------- vizier.api.client.resources.module.ModuleResource """ # Create a list of outputs. outputs = list() if 'outputs' in obj: for out in obj['outputs']['stdout']: if out['type'] in [OUTPUT_TEXT, OUTPUT_HTML]: outputs.append(out['value']) for out in obj['outputs']['stderr']: outputs.append(out['value']) # Create the timestamp ts = obj['timestamps'] timestamp = ModuleTimestamp(created_at=to_datetime(ts['createdAt'])) if 'startedAt' in ts: timestamp.started_at = to_datetime(ts['startedAt']) if 'finishedAt' in ts: timestamp.finished_at = to_datetime(ts['finishedAt']) # Create dictionary of available datasets datasets = dict() if 'datasets' in obj: for ds in obj['datasets']: datasets[ds['name']] = ds['id'] dataobjects = dict() if 'dataobjects' in obj: for dobj in obj['dataobjects']: dataobjects[dobj['name']] = dobj['id'] charts = dict() if 'charts' in obj: for ch in obj['charts']: c_handle = ChartHandle.from_dict(ch) charts[c_handle.name] = c_handle return ModuleResource(identifier=obj['id'], state=to_external_form(obj['state']), external_form=obj['text'], outputs=outputs, datasets=datasets, dataobjects=dataobjects, charts=charts, timestamp=timestamp, links=deserialize.HATEOAS(links=obj['links']))
def from_dict(obj): """Create chart handle instance from dictionary serialization returned by the web service API. Parameters ---------- obj: dict Dictionary serialization for a chart handle in a workflow module Returns ------- vizier.api.client.resources.chart.ChartHandle """ return ChartHandle(name=obj[labels.NAME], links=deserialize.HATEOAS(links=obj[labels.LINKS]))
def from_dict(obj): """Get a workflow resource instance from the dictionary representation returned by the vizier web service. Parameters ---------- obj: dict Dictionary serialization of a workflow descriptor or handle Returns ------- vizier.api.client.resources.workflow.WorkflowResource """ # Get the action name action = None command = None created_at = None if 'action' in obj: action = to_external_form(obj['action']) created_at = to_datetime(obj['createdAt']) # Get the command name package_id = obj['packageId'] if not package_id is None: package = PACKAGES[package_id]['command'] for cmd in package: if cmd['id'] == obj['commandId']: command = cmd['name'] else: command = 'Create Branch' modules = None if 'modules' in obj: modules = [ModuleResource.from_dict(m) for m in obj['modules']] datasets = None if 'datasets' in obj: datasets = { ds['id']: DatasetDescriptor.from_dict(ds) for ds in obj['datasets'] } links = None if 'links' in obj: links = deserialize.HATEOAS(links=obj['links']) return WorkflowResource(identifier=obj['id'], action=action, command=command, created_at=created_at, modules=modules, datasets=datasets, links=links)