예제 #1
0
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)
예제 #2
0
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}")
예제 #3
0
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}'")
예제 #4
0
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)
예제 #5
0
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}'")
예제 #6
0
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)
예제 #7
0
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}'")
예제 #8
0
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}"
        )
예제 #9
0
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)
예제 #10
0
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}'")
예제 #11
0
def list(params):
    pg = server.projects.report()
    if pg is None:
        reportApiError(server, "Failure attempting to list project groups")
    else:
        reportSuccess(server, None)