Exemplo n.º 1
0
def report(params):
    """Handles the 'list' operation.
    'params' flags are translated into query-parameter variable names."""

    summaryFields = None
    if params["--summary"]:
        summaryFields = ["_id", "original_file_name", "file_type"]

    dsid = params.get("--dsid", "missing_id")

    expectedArgs = {
        '--catid': 'category_id',
        '--parentid': 'parent_id',
        '--sort': 'sortby',
        '--limit': 'limit',
        '--skip': 'skip'
    }
    kwargs = translate_flags(expectedArgs, params)

    rsp = server.files.report(dsid, **kwargs)

    if rsp is None:
        reportApiError(server, "Failure attempting to list files")
    else:
        reportSuccess(server, None, summaryFields=summaryFields)
Exemplo n.º 2
0
def report(params):
    """Handles the 'list' operation."""

    summaryFields = None
    if params["--summary"]:
        summaryFields = ["_id", "name", "file_id"]

    dsid = params.get("--dsid", "missing_id")
    fileid = params.get("--fileid", None)

    expected_args = {"--ids": "ids",
                     "--tagids": "tag_ids",
                     "--modelid": "model_id",
                     "--gen_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.report(dsid, fileid, **kwargs)

    if rsp is None:
        reportApiError(server, "Failure attempting to list tags")
    else:
        reportSuccess(server, None, summaryFields=summaryFields)
Exemplo n.º 3
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}'")
Exemplo n.º 4
0
def change(params):
    """Handles the 'change' operation for the indicated model"""

    model = params.get("--modelid", "missing_id")
    expectedArgs = {'--pgid': 'pg_id', '--prodstatus': 'production_status'}
    kwargs = translate_flags(expectedArgs, params)

    rsp = server.trained_models.update(model, **kwargs)

    if rsp is None:
        reportApiError(server,
                       f"Failure attempting to change model id '{model}'")
    else:
        reportSuccess(server)
Exemplo n.º 5
0
def update(params):
    """Handles the 'change' operation for modifying a dataset.

    Expected flags in 'params' are translated to Json Field names to identify modifications to be made
    """

    dsid = params.get("--dsid", "missing_id")

    expectedArgs = {'--pgid': 'project_group_id'}
    kwargs = translate_flags(expectedArgs, params)

    rsp = server.datasets.update(dsid, **kwargs)
    if rsp is None:
        reportApiError(server, f"Failure attempting to change dataset id {dsid}")
    else:
        reportSuccess(server, f"Changed dataset id {dsid}")
Exemplo n.º 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", "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)
Exemplo n.º 7
0
def deploy(params):
    """Handles the 'deploy' operation to deploy an inferencing endpoint"""

    model = params.get("--modelid", "missing_id")
    name = params.get("--name", None)
    expectedArgs = {
        '--accel': 'accel_type',
        '--userdnnid': 'userdnn_id',
        '--dnnscriptid': 'dnnscript_id'
    }
    kwargs = translate_flags(expectedArgs, params)

    rsp = server.deployed_models.create(model, name, **kwargs)
    if rsp is None:
        reportApiError(server, f"Failure attempting to get model id '{model}'")
    else:
        reportSuccess(server)
Exemplo n.º 8
0
def train(params):
    """Handles the 'train' operation to train a model from a dataset"""

    dsid = params.get("--dsid", "missing_id")
    name = params.get("--name", None)
    model_type = params.get("--type", None)
    strat_str = params.get("--hyper", None)

    expectedArgs = {
        '--assets': 'generateassets',
        '--modelid': 'pretrained_model',
        '--subtype': 'nn_arch',
        '--userdnn': 'userdnn_id',
        '--hyper': 'strategy'
    }
    kwargs = translate_flags(expectedArgs, params)

    # If --hyper given, must turn it into a json object before adding to kwargs
    if strat_str is not None:
        try:
            strat = json.loads(strat_str)
            kwargs["strategy"] = strat
        except json.JSONDecodeError as e:
            print(f"ERROR: invalid json found in '--hyper' ({strat_str})",
                  file=sys.stderr)
            print(train_usage, file=sys.stderr)
            exit(1)

    if model_type == "cod":
        kwargs["action"] = "create-cod-task"
        if kwargs.get("nn_arch", None) is None:
            kwargs["nn_arch"] = "frcnn"
    elif model_type == "act":
        kwargs["action"] = "create-act-task"
    else:
        kwargs["action"] = "create"

    rsp = server.dl_tasks.create(name, dsid, model_type, **kwargs)
    if rsp is None:
        reportApiError(server, f"Failure attempting to train dataset '{dsid}'")
    else:
        try:
            taskid = server.json()["task_id"]
        except:
            taskid = "???"
        reportSuccess(server, f"Started training task with id {taskid}")
Exemplo n.º 9
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)
Exemplo n.º 10
0
def create(params):
    """Handles the 'create' operation for adding an object tag to a dataset.
    """

    dsid = params.get("--ds_id", "missing_id")

    expected_args = {"--name": "name"}
    kwargs = translate_flags(expected_args, params)
    rsp = server.object_tags.create(dsid, **kwargs)
    if rsp is None:
        reportApiError(server,
                       f"Failed to create object tag in dataset {dsid}")
    else:
        tagid = rsp.get("dataset_tag_id", "???")
        reportSuccess(
            server,
            f"Successfully created object tag with id {tagid} in dataset {dsid}"
        )
Exemplo n.º 11
0
def report(params):
    """Handles the 'list' operation."""

    summaryFields = None
    if params["--summary"]:
        summaryFields = ["_id", "name", "label_count"]

    dsid = params.get("--ds_id", "missing_id")

    expectedArgs = {'--sort': 'sortby'}
    kwargs = translate_flags(expectedArgs, params)

    rsp = server.object_tags.report(dsid, **kwargs)

    if rsp is None:
        reportApiError(server, "Failure attempting to list tags")
    else:
        reportSuccess(server, None, summaryFields=summaryFields)
Exemplo n.º 12
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}")
Exemplo n.º 13
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}'")
Exemplo n.º 14
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}'")
Exemplo n.º 15
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}'")
Exemplo n.º 16
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)