def report(params): """Handles the 'list' operation.""" summaryFields = None if params["--summary"]: summaryFields = ["_id", "name"] dsid = params.get("--ds_id", "missing_id") expectedArgs = {'--sort': 'sortby'} kwargs = translate_flags(expectedArgs, params) rsp = server.categories.report(dsid, **kwargs) if rsp is None: reportApiError(server, "Failure attempting to list categories") else: reportSuccess(server, None, summaryFields=summaryFields)
def create(params): """Handles the 'change' operation for modifying a dataset. Expected flags in 'params' are translated to Json Field names for creation content """ expectedArgs = {'--name': 'name'} kwargs = translate_flags(expectedArgs, params) rsp = server.datasets.create(**kwargs) if rsp is None: reportApiError(server, "Failure while creating a dataset") else: try: dsid = server.json()["dataset_id"] except: dsid = "???" reportSuccess(server, f"Successfully created dataset with id {dsid}")
def update(params): """Handles the 'change' operation for modifying an object tag. """ dsid = params.get("--ds_id", "missing_id") tagid = params.get("--tag_id", "missing_id") expected_args = {'--name': 'name'} kwargs = translate_flags(expected_args, params) kwargs["action"] = "rename" rsp = server.object_tags.action(dsid, tagid, **kwargs) if rsp is None: reportApiError( server, f"Failure attempting to change tag id '{tagid}' in dataset '{dsid}'" ) else: reportSuccess(server, f"Changed tag id '{tagid}' in dataset '{dsid}'")
def report(params): """Handles the 'list' operation. 'params' flags are translated into query-parameter variable names.""" summaryFields = None if params["--summary"]: summaryFields = ["_id", "usage", "status", "nn_arch", "name"] expectedArgs = { '--sort': 'sortby' } kwargs = translate_flags(expectedArgs, params) rsp = server.deployed_models.report(**kwargs) if rsp is None: reportApiError(server, "Failure attempting to list deployed-models") else: reportSuccess(server, None, summaryFields=summaryFields)
def update(params): """Handles the 'change' operation for modifying an object label. """ dsid = params.get("--dsid", "missing_id") labelid = params.get("--labelid", "missing_id") expected_args = { '--tagid': 'tag_id', '--generate_type': 'generate_type', } kwargs = translate_flags(expected_args, params) file_name = params.get("--label_file") data = None if file_name is not None: try: with open(file_name) as json_file: data = json.load(json_file) except Exception as e: print( f"ERROR: failed to read json data from file '{file_name}'; {e}" ) return -1 elif "<json_string>" in params.keys( ) and params["<json_string>"] is not None: try: data = json.loads(params.get("<json_string>", "")) except Exception as e: print(f"ERROR: Failed to convert label input to json; {e}") return -1 if data is not None: kwargs.update(data) rsp = server.object_labels.update(dsid, labelid, **kwargs) if rsp is None: reportApiError( server, f"Failure attempting to change label id '{labelid}' in dataset '{dsid}'" ) else: reportSuccess(server, f"Changed label id '{labelid}' in dataset '{dsid}'")
def report(params): """Handles the 'list' operation. 'params' flags are translated into query-parameter variable names.""" summaryFields = None if params["--summary"]: summaryFields = ["_id", "name", "total_file_count"] expectedArgs = { '--pgid': 'pg_id', '--sort': 'sortby' } kwargs = translate_flags(expectedArgs, params) rsp = server.datasets.report(**kwargs) if rsp is None: reportApiError(server, "Failure attempting to list datasets") else: reportSuccess(server, None, summaryFields=summaryFields)
def update(params): """Handles the 'change' operation for modifying a file. Expected flags in 'params' are translated to Json Field names to identify modifications to be made""" dsid = params.get("--dsid", "missing_id") fileid = params.get("--fileid", "missing_id") expectedArgs = {'--catid': 'target_category_id'} kwargs = translate_flags(expectedArgs, params) kwargs["action"] = "change_category" rsp = server.files.action(dsid, fileid, **kwargs) if rsp is None: reportApiError( server, f"Failure attempting to change file id '{fileid}' in dataset '{dsid}'" ) else: reportSuccess(server, f"Changed file id '{fileid}' in dataset '{dsid}'")
def create(params): """Handles the 'create' operation for adding an object tag to a dataset. """ dsid = params.get("--dsid", "missing_id") fileid = params.get("--fileid", "missing_id") tagid = params.get("--tagid", None) file_name = params.get("--label_file") if file_name is not None: try: with open(file_name) as json_file: data = json.load(json_file) except Exception as e: print( f"ERROR: failed to read json data from file '{file_name}'; {e}" ) return -1 else: try: data = json.loads(params.get("<json_string>", "")) except Exception as e: print(f"ERROR: Failed to convert label input to json; {e}") return -1 logger.debug(f"dsid={dsid}, fileid={fileid}, tagid={tagid}, data={data}") rsp = server.object_labels.create(dsid, fileid, tagid, data) if rsp is None: reportApiError(server, f"Failed to create object tag in dataset {dsid}") else: # noinspection PyBroadException try: labelid = server.json()["id"] except: labelid = "???" reportSuccess( server, f"Successfully created object tag with id {labelid} in dataset {dsid}" )
def infer(params): """Handles the 'infer' operation to a deployed model""" modelid = params.get("--modelid", "missing_id") filepath = params.get("--file", None) annotateFile = params.get("--annotatefile") expectedArgs = { '--minconfidence': 'confthre', '--heatmap': 'containHeatMap', '--rle': 'containrle', '--polygons': 'containPolygon', 'maxclasses': 'clsnum', 'caption': 'genCaption', 'wait': 'waitForResults' } kwargs = translate_flags(expectedArgs, params) rsp = server.deployed_models.infer(modelid, filepath, **kwargs) if rsp is None: reportApiError(server, f"Failure inferring to model id '{modelid}'") else: reportSuccess(server)
def delete(params): """Deletes one object labels matching the input criteria.""" dsid = params.get("--dsid", "missing_id") labelid = params.get("--label_id", None) expected_args = {"--ids": "ids", "--tagids": "tag_ids", "--fileids": "file_ids", "--modelid": "model_id", "--generate_type": "generate_type", "--min_conf": "min_conf", "--max_conf": "max_conf", "--limit": "limit", "--skip": "skip" } kwargs = translate_flags(expected_args, params) rsp = server.object_labels.delete(dsid, labelid, None, kwargs) if rsp is None: reportApiError(server, f"Failure attempting to delete label(s) from dataset '{dsid}'") else: reportSuccess(server, f"Deleted object label id(s) from dataset '{dsid}'")
def list(params): pg = server.projects.report() if pg is None: reportApiError(server, "Failure attempting to list project groups") else: reportSuccess(server, None)