wbia.control package

Submodules

wbia.control.DB_SCHEMA module

Module Licence and docstring

TODO: ideally the wbia.constants module would not be used here and each function would use its own constant variables that are suffixed with the last version number that they existed in

Todo

Add a table for original_image_path Add column for image exif orientation

CommandLine:

python -m wbia.control.DB_SCHEMA –test-autogen_db_schema

wbia.control.DB_SCHEMA.VALID_VERSIONS = {'0.0.0': (None, None, None), '1.0.0': (None, <function update_1_0_0>, <function post_1_0_0>), '1.0.1': (None, <function update_1_0_1>, None), '1.0.2': (None, <function update_1_0_2>, None), '1.1.0': (None, <function update_1_1_0>, None), '1.1.1': (None, <function update_1_1_1>, None), '1.2.0': (None, <function update_1_2_0>, <function post_1_2_0>), '1.2.1': (None, <function update_1_2_1>, <function post_1_2_1>), '1.3.0': (None, <function update_1_3_0>, None), '1.3.1': (<function pre_1_3_1>, <function update_1_3_1>, None), '1.3.2': (None, <function update_1_3_2>, None), '1.3.3': (None, <function update_1_3_3>, None), '1.3.4': (None, <function update_1_3_4>, <function post_1_3_4>), '1.3.5': (None, <function update_1_3_5>, None), '1.3.6': (None, <function update_1_3_6>, None), '1.3.7': (None, <function update_1_3_7>, None), '1.3.8': (None, <function update_1_3_8>, None), '1.3.9': (None, <function update_1_3_9>, None), '1.4.0': (None, <function update_1_4_0>, None), '1.4.1': (None, <function update_1_4_1>, None), '1.4.2': (None, <function update_1_4_2>, None), '1.4.3': (None, <function update_1_4_3>, None), '1.4.4': (None, <function update_1_4_4>, None), '1.4.5': (None, <function update_1_4_5>, None), '1.4.6': (None, <function update_1_4_6>, None), '1.4.7': (None, <function update_1_4_7>, <function post_1_4_7>), '1.4.8': (<function pre_1_4_8>, <function update_1_4_8>, None), '1.4.9': (<function pre_1_4_9>, <function update_1_4_9>, <function post_1_4_9>), '1.5.0': (None, <function update_1_5_0>, None), '1.5.1': (None, <function update_1_5_1>, None), '1.5.2': (None, <function update_1_5_2>, <function post_1_5_2>), '1.5.3': (None, <function update_1_5_3>, None), '1.5.4': (None, <function update_1_5_4>, None), '1.5.5': (None, <function update_1_5_5>, None), '1.6.0': (None, <function update_1_6_0>, None), '1.6.1': (None, <function update_1_6_1>, <function post_1_6_1>), '1.6.2': (None, <function update_1_6_2>, None), '1.6.3': (None, <function update_1_6_3>, None), '1.6.4': (None, <function update_1_6_4>, <function post_1_6_4>), '1.6.5': (None, <function update_1_6_5>, None), '1.6.6': (None, <function update_1_6_6>, None), '1.6.7': (None, <function update_1_6_7>, None), '1.6.8': (None, <function update_1_6_8>, None), '1.6.9': (None, <function update_1_6_9>, None), '1.7.0': (None, <function update_1_7_0>, <function post_1_7_0>), '1.7.1': (None, <function update_1_7_1>, None), '1.8.0': (None, <function update_1_8_0>, None), '1.8.1': (None, <function update_1_8_1>, None), '1.8.2': (None, <function update_1_8_2>, None), '1.8.3': (None, <function update_1_8_3>, None), '2.0.0': (None, <function update_2_0_0>, None)}

SeeAlso: When updating versions need to test and modify in IBEISController._init_sqldbcore

wbia.control.DB_SCHEMA.autogen_db_schema()[source]
CommandLine:

python -m wbia.control.DB_SCHEMA –test-autogen_db_schema python -m wbia.control.DB_SCHEMA –test-autogen_db_schema –diff=1 python -m wbia.control.DB_SCHEMA –test-autogen_db_schema -n=-1 python -m wbia.control.DB_SCHEMA –test-autogen_db_schema -n=0 python -m wbia.control.DB_SCHEMA –test-autogen_db_schema -n=1 python -m wbia.control.DB_SCHEMA –force-incremental-db-update python -m wbia.control.DB_SCHEMA –test-autogen_db_schema –write python -m wbia.control.DB_SCHEMA –test-autogen_db_schema –force-incremental-db-update –dump-autogen-schema python -m wbia.control.DB_SCHEMA –test-autogen_db_schema –force-incremental-db-update

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.DB_SCHEMA import *  # NOQA
>>> autogen_db_schema()
wbia.control.DB_SCHEMA.dump_schema_sql()[source]
CommandLine:

python -m wbia.control.DB_SCHEMA dump_schema_sql

wbia.control.DB_SCHEMA.post_1_0_0(db, ibs=None)[source]
wbia.control.DB_SCHEMA.post_1_2_0(db, ibs=None)[source]
wbia.control.DB_SCHEMA.post_1_2_1(db, ibs=None)[source]
wbia.control.DB_SCHEMA.post_1_3_4(db, ibs=None)[source]
wbia.control.DB_SCHEMA.post_1_4_7(db, ibs=None)[source]
wbia.control.DB_SCHEMA.post_1_4_9(db, ibs=None)[source]
wbia.control.DB_SCHEMA.post_1_5_2(db, ibs=None, verbose=False)[source]
wbia.control.DB_SCHEMA.post_1_6_1(db, ibs=None, verbose=False)[source]
wbia.control.DB_SCHEMA.post_1_6_4(db, ibs=None)[source]
wbia.control.DB_SCHEMA.post_1_7_0(db, ibs=None)[source]
wbia.control.DB_SCHEMA.pre_1_3_1(db, ibs=None)[source]

need to ensure that visual uuid columns are unique before we add that constaint to sql. This will remove any annotations that are not unique

wbia.control.DB_SCHEMA.pre_1_4_8(db, ibs=None)[source]
Parameters

ibs (wbia.IBEISController) –

wbia.control.DB_SCHEMA.pre_1_4_9(db, ibs=None)[source]
wbia.control.DB_SCHEMA.update_1_0_0(db, ibs=None)[source]
wbia.control.DB_SCHEMA.update_1_0_1(db, ibs=None)[source]
wbia.control.DB_SCHEMA.update_1_0_2(db, ibs=None)[source]
wbia.control.DB_SCHEMA.update_1_1_0(db, ibs=None)[source]
wbia.control.DB_SCHEMA.update_1_1_1(db, ibs=None)[source]
wbia.control.DB_SCHEMA.update_1_2_0(db, ibs=None)[source]
wbia.control.DB_SCHEMA.update_1_2_1(db, ibs=None)[source]
wbia.control.DB_SCHEMA.update_1_3_0(db, ibs=None)[source]
wbia.control.DB_SCHEMA.update_1_3_1(db, ibs=None)[source]

update the visual_uuid to be a superkey by adding a constraint

wbia.control.DB_SCHEMA.update_1_3_2(db, ibs=None)[source]

for SMART DATA

wbia.control.DB_SCHEMA.update_1_3_3(db, ibs=None)[source]
wbia.control.DB_SCHEMA.update_1_3_4(db, ibs=None)[source]
wbia.control.DB_SCHEMA.update_1_3_5(db, ibs=None)[source]

expand datasets to use new quality measures

wbia.control.DB_SCHEMA.update_1_3_6(db, ibs=None)[source]
wbia.control.DB_SCHEMA.update_1_3_7(db, ibs=None)[source]
wbia.control.DB_SCHEMA.update_1_3_8(db, ibs=None)[source]
wbia.control.DB_SCHEMA.update_1_3_9(db, ibs=None)[source]
wbia.control.DB_SCHEMA.update_1_4_0(db, ibs=None)[source]
wbia.control.DB_SCHEMA.update_1_4_1(db, ibs=None)[source]
wbia.control.DB_SCHEMA.update_1_4_2(db, ibs=None)[source]
wbia.control.DB_SCHEMA.update_1_4_3(db, ibs=None)[source]
wbia.control.DB_SCHEMA.update_1_4_4(db, ibs=None)[source]
wbia.control.DB_SCHEMA.update_1_4_5(db, ibs=None)[source]
wbia.control.DB_SCHEMA.update_1_4_6(db, ibs=None)[source]
wbia.control.DB_SCHEMA.update_1_4_7(db, ibs=None)[source]
wbia.control.DB_SCHEMA.update_1_4_8(db, ibs=None)[source]

change notes to tag_text_data add configuration that made the match add the score of the match add concept of: DEFINIATELY MATCHES, DOES NOT MATCH, CAN NOT DECIDE

Probably want a separate table for the config_rowid matching results because the primary key needs to be (config_rowid, aid1, aid2) OR just (config_rowid, annotmatch_rowid)

wbia.control.DB_SCHEMA.update_1_4_9(db, ibs=None)[source]
wbia.control.DB_SCHEMA.update_1_5_0(db, ibs=None)[source]
wbia.control.DB_SCHEMA.update_1_5_1(db, ibs=None)[source]
wbia.control.DB_SCHEMA.update_1_5_2(db, ibs=None)[source]
wbia.control.DB_SCHEMA.update_1_5_3(db, ibs=None)[source]
wbia.control.DB_SCHEMA.update_1_5_4(db, ibs=None)[source]
wbia.control.DB_SCHEMA.update_1_5_5(db, ibs=None)[source]
wbia.control.DB_SCHEMA.update_1_6_0(db, ibs=None)[source]
wbia.control.DB_SCHEMA.update_1_6_1(db, ibs=None)[source]
wbia.control.DB_SCHEMA.update_1_6_2(db, ibs=None)[source]
wbia.control.DB_SCHEMA.update_1_6_3(db, ibs=None)[source]
wbia.control.DB_SCHEMA.update_1_6_4(db, ibs=None)[source]
wbia.control.DB_SCHEMA.update_1_6_5(db, ibs=None)[source]
wbia.control.DB_SCHEMA.update_1_6_6(db, ibs=None)[source]
wbia.control.DB_SCHEMA.update_1_6_7(db, ibs=None)[source]
wbia.control.DB_SCHEMA.update_1_6_8(db, ibs=None)[source]
wbia.control.DB_SCHEMA.update_1_6_9(db, ibs=None)[source]
wbia.control.DB_SCHEMA.update_1_7_0(db, ibs=None)[source]
Ignore:

import wbia ibs = wbia.opendb(‘testdb1’) ibs.annots().yaws ibs.annots().viewpoint_int codes = ibs.annots().viewpoint_code texts = [‘unknown’ if y is None else y for y in ibs.annots().yaw_texts] assert codes == texts

wbia.control.DB_SCHEMA.update_1_7_1(db, ibs=None)[source]
wbia.control.DB_SCHEMA.update_1_8_0(db, ibs=None)[source]
wbia.control.DB_SCHEMA.update_1_8_1(db, ibs=None)[source]
wbia.control.DB_SCHEMA.update_1_8_2(db, ibs=None)[source]
wbia.control.DB_SCHEMA.update_1_8_3(db, ibs=None)[source]
wbia.control.DB_SCHEMA.update_2_0_0(db, ibs=None)[source]

wbia.control.DB_SCHEMA_CURRENT module

AUTOGENERATED ON 10:14:54 2019/07/09 AutogenCommandLine:

python -m wbia.control.DB_SCHEMA –test-autogen_db_schema –force-incremental-db-update –write python -m wbia.control.DB_SCHEMA –test-autogen_db_schema –force-incremental-db-update –diff=1 python -m wbia.control.DB_SCHEMA –test-autogen_db_schema –force-incremental-db-update

wbia.control.DB_SCHEMA_CURRENT.update_current(db, ibs=None)[source]

wbia.control.IBEISControl module

wbia.control.STAGING_SCHEMA module

wbia.control.STAGING_SCHEMA_CURRENT module

wbia.control._autogen_party_funcs module

Autogenerated IBEISController functions

TemplateInfo:

autogen_time = 15:14:53 2015/03/11 autogen_key = party

ToRegenerate:

python -m wbia.templates.template_generator –key party –Tcfg with_api_cache=False with_web_api=False with_deleters=False –diff python -m wbia.templates.template_generator –key party –Tcfg with_api_cache=False with_web_api=False with_deleters=False –write

wbia.control._autogen_party_funcs.add_party(ibs, party_tag_list)[source]
Returns

returns party_rowid_list of added (or already existing partys)

TemplateInfo:

Tadder_native tbl = party

RESTful:

Method: POST URL: /api/autogen/

wbia.control._autogen_party_funcs.get_party_rowid_from_superkey(ibs, party_tag_list, eager=True, nInput=None)[source]

party_rowid_list <- party[party_tag_list]

Parameters

lists (superkey) – party_tag_list

Returns

party_rowid_list

TemplateInfo:

Tgetter_native_rowid_from_superkey tbl = party

RESTful:

Method: GET URL: /api/autogen/party_rowid_from_superkey/

wbia.control._autogen_party_funcs.get_party_tag(ibs, party_rowid_list, eager=True, nInput=None)[source]

party_tag_list <- party.party_tag[party_rowid_list]

gets data from the “native” column “party_tag” in the “party” table

Parameters

party_rowid_list (list) –

Returns

party_tag_list

Return type

list

TemplateInfo:

Tgetter_table_column col = party_tag tbl = party

RESTful:

Method: GET URL: /api/autogen/party/tag/

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control._autogen_party_funcs import *  # NOQA
>>> ibs, qreq_ = testdata_ibs()
>>> party_rowid_list = ibs._get_all_party_rowids()
>>> eager = True
>>> party_tag_list = ibs.get_party_tag(party_rowid_list, eager=eager)
>>> assert len(party_rowid_list) == len(party_tag_list)
wbia.control._autogen_party_funcs.testdata_ibs(defaultdb='testdb1')[source]

Auto-docstr for ‘testdata_ibs’

wbia.control._sql_helpers module

wbia.control._sql_helpers.autogenerate_nth_schema_version(schema_spec, n=- 1)[source]

dumps, prints, or diffs autogen schema based on command line

Parameters

n (int) –

CommandLine:

python -m wbia.control._sql_helpers –test-autogenerate_nth_schema_version

Example

>>> # DISABLE_DOCTEST
>>> from wbia.control._sql_helpers import *  # NOQA
>>> from wbia.control import DB_SCHEMA
>>> # build test data
>>> schema_spec = DB_SCHEMA
>>> n = 1
>>> # execute function
>>> tablename = autogenerate_nth_schema_version(schema_spec, n)
>>> # verify results
>>> result = str(tablename)
>>> print(result)
wbia.control._sql_helpers.compare_string_versions(a, b)[source]

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control._sql_helpers import *  # NOQA
>>> a = '1.1.1'
>>> b = '1.0.0'
>>> result1 = compare_string_versions(a, b)
>>> result2 = compare_string_versions(b, a)
>>> result3 = compare_string_versions(a, a)
>>> result = ', '.join(map(str, [result1, result2, result3]))
>>> print(result)
1, -1, 0
wbia.control._sql_helpers.copy_database(src_fpath, dst_fpath)[source]
wbia.control._sql_helpers.database_backup(db_dir, db_fname, backup_dir, max_keep=2048, manual=True)[source]
>>> db_dir = ibs.get_ibsdir()
>>> db_fname = ibs.sqldb_fname
>>> backup_dir = ibs.backupdir
>>> max_keep = MAX_KEEP
>>> manual = False
wbia.control._sql_helpers.ensure_correct_version(ibs, db, version_expected, schema_spec, dobackup=True, verbose=True)[source]

FIXME: AN SQL HELPER FUNCTION SHOULD BE AGNOSTIC TO CONTROLER OBJECTS

ensure_correct_version

Parameters
  • ibs (IBEISController) –

  • db (SQLController) –

  • version_expected (str) – version you want to be at

  • schema_spec (module) – schema module

  • dobackup (bool) –

Example

>>> # DISABLE_DOCTEST
>>> from wbia.control._sql_helpers import *  # NOQA
>>> ibs = '?'
>>> db = ibs.db
>>> version_expected = ibs.db_version_expected
>>> schema_spec = DB_SCHEMA
>>> dobackup = True
>>> result = ensure_correct_version(ibs, db, version_expected, schema_spec, dobackup)
>>> print(result)
Parameters

schema_spec (module) – module of schema specifications

wbia.control._sql_helpers.ensure_daily_database_backup(db_dir, db_fname, backup_dir, max_keep=2048)[source]
wbia.control._sql_helpers.fix_metadata_consistency(db)[source]

duct tape function

db.print_table_csv(‘metadata’)

wbia.control._sql_helpers.get_backup_fpaths(ibs)[source]
wbia.control._sql_helpers.get_backupdir(db_dir, db_fname)[source]
CommandLine:

python -m _sql_helpers get_backupdir –show

Example

>>> # DISABLE_DOCTEST
>>> from wbia.control._sql_helpers import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb(defaultdb='testdb1')
>>> db_dir = ibs.get_ibsdir()
>>> db_fname = ibs.sqldb_fname
>>> backup_dir = ibs.backupdir
>>> result = get_backupdir(db_dir, db_fname)
wbia.control._sql_helpers.get_nth_test_schema_version(schema_spec, n=- 1)[source]

Gets a fresh and empty test version of a schema

Parameters
  • schema_spec (module) – schema module to get nth version of

  • n (int) – version index (-1 is the latest)

wbia.control._sql_helpers.remove_old_backups(backup_dir, ext, max_keep)[source]
wbia.control._sql_helpers.revert_to_backup(ibs)[source]
Parameters

db_dir

CommandLine:

python -m wbia.control._sql_helpers –exec-revert_to_backup

Example

>>> # SCRIPT
>>> from wbia.control._sql_helpers import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb(defaultdb='elephants')
>>> result = revert_to_backup(ibs)
>>> print(result)
wbia.control._sql_helpers.update_schema_version(ibs, db, schema_spec, version, version_target, dobackup=True, clearbackup=False)[source]

version_target = version_expected clearbackup = False FIXME: AN SQL HELPER FUNCTION SHOULD BE AGNOSTIC TO CONTROLER OBJECTS

wbia.control.accessor_decors module

wbia.control.accessor_decors.adder(func)[source]
wbia.control.accessor_decors.cache_getter(tblname, colname=None, cfgkeys=None, force=False, debug=False)[source]

Creates a getter cacher the class must have a table_cache property varargs are currently unallowed

Parameters
  • tblname (str) –

  • colname (str) –

Returns

closure_getter_cacher

Return type

function

CommandLine:

python -m wbia.control.accessor_decors –test-cache_getter

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.accessor_decors import *  # NOQA
>>> import wbia
>>> from wbia import constants as const
>>> ibs = wbia.opendb('testdb1')
>>> #ibs = wbia.opendb('PZ_MTEST')
>>> valid_nids = ibs.get_valid_nids()
>>> tblname = const.NAME_TABLE
>>> colname = 'annot_rowid'
>>> rowid_list = valid_nids
>>> rowid_list1 = rowid_list[::2]
>>> rowid_list2 = rowid_list[::3]
>>> rowid_list3 = rowid_list[1::2]
>>> kwargs = {}
>>> getter_func = ut.get_method_func(ibs.get_name_aids)
>>> wrp_getter_cacher = cache_getter(tblname, colname, force=True, debug=False)(getter_func)
>>> ### Test Getter (caches)
>>> val_list1 = getter_func(ibs, rowid_list1)
>>> val_list2 = wrp_getter_cacher(ibs, rowid_list1)
>>> print(ut.repr2(ibs.table_cache))
>>> val_list3 = wrp_getter_cacher(ibs, rowid_list1)
>>> val_list4 = wrp_getter_cacher(ibs, rowid_list2)
>>> print(ut.repr2(ibs.table_cache))
>>> val_list5 = wrp_getter_cacher(ibs, rowid_list3)
>>> val_list  = wrp_getter_cacher(ibs, rowid_list)
>>> ut.assert_eq(val_list1, val_list2, 'run1')
>>> ut.assert_eq(val_list1, val_list2, 'run2')
>>> print(ut.repr2(ibs.table_cache))
>>> ### Test Setter (invalidates)
>>> setter_func = ibs.set_name_texts
>>> wrp_cache_invalidator = cache_invalidator(tblname, force=True)(lambda *a: None)
>>> wrp_cache_invalidator(ibs, rowid_list1)
>>> print(ut.repr2(ibs.table_cache))

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.accessor_decors import *  # NOQA
>>> import wbia
>>> from wbia import constants as const
>>> from wbia.control.manual_feat_funcs import FEAT_KPTS
>>> ibs = wbia.opendb('testdb1')
>>> tblname = const.FEATURE_TABLE,
>>> colname = FEAT_KPTS
>>> aid_list = ibs.get_valid_aids()[0:1]
>>> # Check that config2 actually gets you different vectors in the cache
>>> qreq_ = ibs.new_query_request(aid_list, aid_list, cfgdict={'affine_invariance': False})
>>> config2_ = qreq_.extern_query_config2
>>> kpts_list1 = ibs.get_annot_kpts(aid_list, config2_=None)
>>> kpts_list2 = ibs.get_annot_kpts(aid_list, config2_=config2_)
>>> kp1 = kpts_list1[0][0:1]
>>> kp2 = kpts_list2[0][0:1]
>>> assert kp1.T[3] != 0
>>> assert kp2.T[3] == 0
>>> assert kp2.T[2] == kp2.T[4]
Ignore:

%timeit getter_func(ibs, rowid_list) %timeit wrp_getter_cacher(ibs, rowid_list)

wbia.control.accessor_decors.cache_invalidator(tblname, colnames=None, rowidx=None, force=False)[source]

cacher decorator

Parameters
  • tablename (str) – the table that the owns the underlying cache

  • colnames (list) – the list of cached column that this function will invalidate

  • rowidx (int) – the position (not including self) of the invalidated table’s native rowid in the writer function’s argument signature. If this does not exist you should use None. (default=None)

wbia.control.accessor_decors.deleter(func)[source]
wbia.control.accessor_decors.dev_cache_getter(tblname, colname, *args, **kwargs)[source]

cache getter for when the database is gaurenteed not to change

wbia.control.accessor_decors.getter(func)[source]

Getter decorator for functions which takes as the first input a unique id list and returns a heterogeous list of values

wbia.control.accessor_decors.getter_1to1(func)

Getter decorator for functions which takes as the first input a unique id list and returns a heterogeous list of values

wbia.control.accessor_decors.getter_1toM(func)

Getter decorator for functions which takes as the first input a unique id list and returns a homogenous list of values

wbia.control.accessor_decors.getter_numpy(func)[source]

Getter decorator for functions which takes as the first input a unique id list and returns a heterogeous list of values

wbia.control.accessor_decors.getter_numpy_vector_output(func)[source]

Getter decorator for functions which takes as the first input a unique id list and returns a heterogeous list of values

wbia.control.accessor_decors.getter_vector_output(func)[source]

Getter decorator for functions which takes as the first input a unique id list and returns a homogenous list of values

wbia.control.accessor_decors.ider(func)[source]

This function takes returns ids subject to conditions

wbia.control.accessor_decors.init_tablecache()[source]
Returns

tablecache

Return type

defaultdict

CommandLine:

python -m wbia.control.accessor_decors –test-init_tablecache

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.accessor_decors import *  # NOQA
>>> result = init_tablecache()
>>> print(result)
wbia.control.accessor_decors.setter(func)[source]

wbia.control.autowrap_api_decorators module

wbia.control.controller_inject module

Todo

Move flask registering into another file. Should also make the actual flask registration lazy. It should only be executed if a web instance is being started.

python -c “import wbia”

exception wbia.control.controller_inject.WebDuplicateUUIDException(qdup_pos_map={}, ddup_pos_map={})[source]

Bases: wbia.control.controller_inject.WebException

exception wbia.control.controller_inject.WebException(message, rawreturn=None, code=400)[source]

Bases: utool.util_dev.NiceRepr, Exception

get_rawreturn(debug_stack_trace=False)[source]
exception wbia.control.controller_inject.WebInvalidInput(message, key=None, value=None, image=False)[source]

Bases: wbia.control.controller_inject.WebException

exception wbia.control.controller_inject.WebInvalidMatchException(qaid_list, daid_list)[source]

Bases: wbia.control.controller_inject.WebException

exception wbia.control.controller_inject.WebInvalidUUIDException(invalid_image_uuid_list=[], invalid_annot_uuid_list=[])[source]

Bases: wbia.control.controller_inject.WebException

exception wbia.control.controller_inject.WebMatchThumbException(reference, qannot_uuid, dannot_uuid, version, message)[source]

Bases: wbia.control.controller_inject.WebException

exception wbia.control.controller_inject.WebMissingInput(message, key=None)[source]

Bases: wbia.control.controller_inject.WebException

exception wbia.control.controller_inject.WebMissingUUIDException(missing_image_uuid_list=[], missing_annot_uuid_list=[])[source]

Bases: wbia.control.controller_inject.WebException

exception wbia.control.controller_inject.WebMultipleNamedDuplicateException(bad_dict)[source]

Bases: wbia.control.controller_inject.WebException

exception wbia.control.controller_inject.WebReviewFinishedException(query_uuid)[source]

Bases: wbia.control.controller_inject.WebException

exception wbia.control.controller_inject.WebReviewNotReadyException(query_uuid)[source]

Bases: wbia.control.controller_inject.WebException

exception wbia.control.controller_inject.WebRuntimeException(message)[source]

Bases: wbia.control.controller_inject.WebException

exception wbia.control.controller_inject.WebUnavailableUUIDException(unavailable_annot_uuid_list, query_uuid)[source]

Bases: wbia.control.controller_inject.WebException

exception wbia.control.controller_inject.WebUnknownUUIDException(unknown_uuid_type_list, unknown_uuid_list)[source]

Bases: wbia.control.controller_inject.WebException

wbia.control.controller_inject.api_remote_wbia(remote_wbia_url, remote_api_func, remote_wbia_port=5001, **kwargs)[source]
wbia.control.controller_inject.authenticate(username, **kwargs)[source]
wbia.control.controller_inject.authenticated()[source]
wbia.control.controller_inject.authentication_challenge()[source]

Sends a 401 response that enables basic auth.

wbia.control.controller_inject.authentication_either(func)[source]

authenticated by either hash or user

wbia.control.controller_inject.authentication_hash_only(func)[source]
wbia.control.controller_inject.authentication_hash_validate()[source]

This function is called to check if a username / password combination is valid.

wbia.control.controller_inject.authentication_user_only(func)[source]
wbia.control.controller_inject.authentication_user_validate()[source]

This function is called to check if a username / password combination is valid.

wbia.control.controller_inject.create_key()[source]
wbia.control.controller_inject.crossdomain(origin=None, methods=None, headers=None, max_age=21600, attach_to_all=True, automatic_options=True)[source]
wbia.control.controller_inject.deauthenticate()[source]
wbia.control.controller_inject.dev_autogen_explicit_imports()[source]
CommandLine:

python -m wbia –tf dev_autogen_explicit_imports

Example

>>> # SCRIPT
>>> from wbia.control.controller_inject import *  # NOQA
>>> dev_autogen_explicit_imports()
wbia.control.controller_inject.dev_autogen_explicit_injects()[source]
CommandLine:

python -m wbia –tf dev_autogen_explicit_injects

Example

>>> # SCRIPT
>>> from wbia.control.controller_inject import *  # NOQA
>>> dev_autogen_explicit_injects()
wbia.control.controller_inject.get_flask_app(templates_auto_reload=True)[source]
wbia.control.controller_inject.get_signature(key, message)[source]
wbia.control.controller_inject.get_url_authorization(url)[source]
wbia.control.controller_inject.get_user(username=None, name=None, organization=None)[source]
wbia.control.controller_inject.get_wbia_flask_api(__name__, DEBUG_PYTHON_STACK_TRACE_JSON_RESPONSE=False)[source]

For function calls that resolve to api calls and return json.

wbia.control.controller_inject.get_wbia_flask_route(__name__)[source]

For function calls that resolve to webpages and return html.

wbia.control.controller_inject.login_required_session(function)[source]
wbia.control.controller_inject.make_ibs_register_decorator(modname)[source]

builds variables and functions that controller injectable modules need.

wbia.control.controller_inject.remote_api_wrapper(func)[source]
wbia.control.controller_inject.translate_wbia_webcall(func, *args, **kwargs)[source]

Called from flask request context

Parameters

func (function) – live python function

Returns

(output, True, 200, None, jQuery_callback)

Return type

tuple

Example

>>> # xdoctest: +REQUIRES(--web-tests)
>>> from wbia.control.controller_inject import *  # NOQA
>>> import wbia
>>> with wbia.opendb_with_web('testdb1') as (ibs, client):
...     aids = client.get('/api/annot/').json
...     failrsp = client.post('/api/annot/uuids/')
...     failrsp2 = client.get('/api/query/chips/simple_dict//', data={'qaid_list': [0], 'daid_list': [0]})
...     log_text = client.get('/api/query/chips/simple_dict/', data={'qaid_list': [0], 'daid_list': [0]})
>>> print('\n---\nfailrsp =\n%s' % (failrsp.data,))
>>> print('\n---\nfailrsp2 =\n%s' % (failrsp2.data,))
>>> print('Finished test')
Finished test
wbia.control.controller_inject.translate_wbia_webreturn(rawreturn, success=True, code=None, message=None, jQuery_callback=None, cache=None, __skip_microsoft_validation__=False)[source]

wbia.control.docker_control module

wbia.control.docker_control.docker_check_container(ibs, container_name, clone=None, retry_count=20, retry_timeout=15)[source]
wbia.control.docker_control.docker_container_IP_port_options(ibs, container)[source]
wbia.control.docker_control.docker_container_clone_name(container_name, clone=None)[source]
wbia.control.docker_control.docker_container_status(ibs, container_name, clone=None)[source]
wbia.control.docker_control.docker_container_status_dict(ibs)[source]
wbia.control.docker_control.docker_container_urls(ibs, container, docker_get_config)[source]
wbia.control.docker_control.docker_container_urls_from_name(ibs, container_name, clone=None)[source]
wbia.control.docker_control.docker_ensure(ibs, container_name, check_container=True, clone=None)[source]
wbia.control.docker_control.docker_ensure_image(ibs, image_name)[source]
wbia.control.docker_control.docker_get_config(ibs, container_name)[source]
wbia.control.docker_control.docker_get_container(ibs, container_name, clone=None)[source]
wbia.control.docker_control.docker_get_image(ibs, image_name)[source]
wbia.control.docker_control.docker_image_list(ibs)[source]
wbia.control.docker_control.docker_image_run(ibs, port=6000, volumes=None)[source]
wbia.control.docker_control.docker_login(ibs)[source]
wbia.control.docker_control.docker_pull_image(ibs, image_name)[source]

The process of logging into the Azure Container Registry is arcane and complex. In the meantime we’ll assume that any image we need in the ACR has been downloaded by a logged-in user.

Host: wildme.azurecr.io Username: example@example.com Password: asecurepassword

Login Script:

Install Azure CLI

https://docs.microsoft.com/en-us/cli/azure/install-azure-cli?view=azure-cli-latest

az logout

Logout of any user you may already be using with az-cli

az login

Follow instructions to https://microsoft.com/devicelogin, input the code

Login as example@example.com with password above

az acr login –name wildme

Login to the Azure Container Registry (ACR) for Docker

Verify login with “cat ~/.docker/config.json | jq “.auths” and look for “wildme.azurecr.io”

docker pull wildme.azurecr.io/wbia/example-image:latest

Pull latest nightly image

wbia.control.docker_control.docker_register_config(ibs, container_name, image_name, container_check_func=None, run_args={}, ensure_new=False)[source]
wbia.control.docker_control.docker_run(ibs, image_name, container_name, override_run_args, clone=None, ensure_new=False)[source]
wbia.control.docker_control.find_open_port(base=5000, blacklist=[])[source]
wbia.control.docker_control.is_local_port_open(port)[source]
Parameters

port (int) –

Returns

Return type

bool

References

http://stackoverflow.com/questions/7436801/identifying-listening-ports-using-python

CommandLine:

python -m utool.util_web is_local_port_open –show

Example

>>> # DISABLE_DOCTEST
>>> from utool.util_web import *  # NOQA
>>> port = 32183
>>> assert is_local_port_open(80) is False, 'port 80 should always be closed'
>>> assert is_local_port_open(port) is True, 'maybe this port is actually used?'

wbia.control.manual_annot_funcs module

Autogen:

python -c “import utool as ut; ut.write_modscript_alias(‘Tgen.sh’, ‘wbia.templates.template_generator’)” # NOQA sh Tgen.sh –key annot –invert –Tcfg with_getters=True with_setters=True –modfname manual_annot_funcs –funcname-filter=age_m # NOQA sh Tgen.sh –key annot –invert –Tcfg with_getters=True with_setters=True –modfname manual_annot_funcs –funcname-filter=is_ # NOQA sh Tgen.sh –key annot –invert –Tcfg with_getters=True with_setters=True –modfname manual_annot_funcs –funcname-filter=is_ –diff # NOQA

wbia.control.manual_annot_funcs.add_annots(ibs, gid_list, bbox_list=None, theta_list=None, species_list=None, nid_list=None, name_list=None, vert_list=None, annot_uuid_list=None, yaw_list=None, viewpoint_list=None, quality_list=None, multiple_list=None, interest_list=None, canonical_list=None, detect_confidence_list=None, notes_list=None, annot_visual_uuid_list=None, annot_semantic_uuid_list=None, species_rowid_list=None, staged_uuid_list=None, staged_user_id_list=None, quiet_delete_thumbs=False, prevent_visual_duplicates=True, skip_cleaning=False, delete_thumb=True, **kwargs)[source]

Adds an annotation to images

# TODO:

remove annot_visual_uuid_list and annot_semantic_uuid_list They are always inferred

Parameters
  • gid_list (list) – image rowids to add annotation to

  • bbox_list (list) – of [x, y, w, h] bounding boxes for each image (supply verts instead)

  • theta_list (list) – orientations of annotations

  • species_list (list) –

  • nid_list (list) –

  • name_list (list) –

  • detect_confidence_list (list) –

  • notes_list (list) –

  • vert_list (list) – alternative to bounding box

  • annot_uuid_list (list) –

  • yaw_list (list) –

  • annot_visual_uuid_list (list) –

  • annot_semantic_uuid_list (list) –

  • quiet_delete_thumbs (bool) –

Returns

aid_list

Return type

list

CommandLine:

python -m wbia.control.manual_annot_funcs –test-add_annots python -m wbia.control.manual_annot_funcs –test-add_annots –verbose –print-caller

Ignore:

theta_list = None species_list = None nid_list = None name_list = None detect_confidence_list = None notes_list = None vert_list = None annot_uuid_list = None yaw_list = None quiet_delete_thumbs = False prevent_visual_duplicates = False

RESTful:

Method: POST URL: /api/annot/

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.IBEISControl import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb('testdb1')
>>> prevalid = ibs.get_valid_aids()
>>> num_add = 2
>>> gid_list = ibs.get_valid_gids()[0:num_add]
>>> bbox_list = [(int(w * .1), int(h * .6), int(w * .5), int(h *  .3))
...              for (w, h) in ibs.get_image_sizes(gid_list)]
>>> # Add a test annotation
>>> print('Testing add_annots')
>>> aid_list = ibs.add_annots(gid_list, bbox_list=bbox_list)
>>> bbox_list2 = ibs.get_annot_bboxes(aid_list)
>>> vert_list2 = ibs.get_annot_verts(aid_list)
>>> theta_list2 = ibs.get_annot_thetas(aid_list)
>>> name_list2 = ibs.get_annot_names(aid_list)
>>> print('Ensure=False. Should get back None chip fpaths')
>>> chip_fpaths2 = ibs.get_annot_chip_fpath(aid_list, ensure=False)
>>> assert [fpath is None for fpath in chip_fpaths2], 'should not have fpaths'
>>> print('Ensure=True. Should get back None chip fpaths')
>>> chip_fpaths = ibs.get_annot_chip_fpath(aid_list, ensure=True)
>>> assert all([ut.checkpath(fpath, verbose=True) for fpath in chip_fpaths]), 'paths should exist'
>>> ut.assert_eq(len(aid_list), num_add)
>>> ut.assert_eq(len(vert_list2[0]), 4)
>>> assert bbox_list2 == bbox_list, 'bboxes are unequal'
>>> # Be sure to remove test annotation
>>> # if this test fails a resetdbs might be nessary
>>> result = ''
>>> visual_uuid_list = ibs.get_annot_visual_uuids(aid_list)
>>> semantic_uuid_list = ibs.get_annot_semantic_uuids(aid_list)
>>> result += str(visual_uuid_list) + '\n'
>>> result += str(semantic_uuid_list) + '\n'
>>> print('Cleaning up. Removing added annotations')
>>> ibs.delete_annots(aid_list)
>>> assert not any([ut.checkpath(fpath, verbose=True) for fpath in chip_fpaths]), 'chip paths'
>>> postvalid = ibs.get_valid_aids()
>>> assert prevalid == postvalid, 'prevalid != postvalid'
>>> result += str(postvalid)
>>> print(result)
[UUID('30f7639b-5161-a561-2c4f-41aed64e5b65'), UUID('5ccbb26d-104f-e655-cf2b-cf92e0ad2fd2')]
[UUID('58905a72-dd31-c42b-d5b5-2312adfc7cba'), UUID('dd58665a-2a8b-8e84-4919-038c80bd9be0')]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]

Example

>>> # Test with prevent_visual_duplicates on
>>> # ENABLE_DOCTEST
>>> from wbia.control.IBEISControl import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb('testdb1')
>>> prevalid = ibs.get_valid_aids()
>>> num_add = 1
>>> gid_list = ibs.get_valid_gids()[0:1] * num_add
>>> bbox_list = [(int(w * .1), int(h * .6), int(w * .5), int(h *  .3))
...              for (w, h) in ibs.get_image_sizes(gid_list)]
>>> bbox_list2 = [(int(w * .2), int(h * .6), int(w * .5), int(h *  .3))
...              for (w, h) in ibs.get_image_sizes(gid_list)]
>>> # Add a test annotation
>>> print('Testing add_annots')
>>> aid_list1 = ibs.add_annots(gid_list, bbox_list=bbox_list, prevent_visual_duplicates=True)
>>> aid_list2 = ibs.add_annots(gid_list, bbox_list=bbox_list, prevent_visual_duplicates=True)
>>> aid_list3 = ibs.add_annots(gid_list, bbox_list=bbox_list2, prevent_visual_duplicates=True)
>>> assert aid_list1 == aid_list2, 'aid_list1 == aid_list2'
>>> assert aid_list1 != aid_list3, 'aid_list1 != aid_list3'
>>> aid_list_new = aid_list1 + aid_list3
>>> result = aid_list_new
>>> print('Cleaning up. Removing added annotations')
>>> ibs.delete_annots(aid_list_new)
>>> print(result)
[14, 15]
wbia.control.manual_annot_funcs.annotation_src_api(rowid=None)[source]

Returns the base64 encoded image of annotation <aid>

RESTful:

Method: GET URL: /api/annot/<aid>/

wbia.control.manual_annot_funcs.compute_annot_visual_semantic_uuids(ibs, gid_list, include_preprocess=False, **kwargs)[source]
wbia.control.manual_annot_funcs.delete_annot_imgthumbs(ibs, aid_list)[source]
wbia.control.manual_annot_funcs.delete_annot_nids(ibs, aid_list)[source]

Remove name assocation from the list of input aids. Does this by setting each annotations nid to the UNKNOWN name rowid

RESTful:

Method: DELETE URL: /api/annot/name/rowid/

wbia.control.manual_annot_funcs.delete_annot_speciesids(ibs, aid_list)[source]

Deletes nids of a list of annotations

RESTful:

Method: DELETE URL: /api/annot/species/rowid/

wbia.control.manual_annot_funcs.delete_annots(ibs, aid_list)[source]

deletes annotations from the database

RESTful:

Method: DELETE URL: /api/annot/

Parameters
  • ibs (IBEISController) – wbia controller object

  • aid_list (int) – list of annotation ids

CommandLine:

python -m wbia.control.manual_annot_funcs –test-delete_annots python -m wbia.control.manual_annot_funcs –test-delete_annots –debug-api-cache python -m wbia.control.manual_annot_funcs –test-delete_annots

SeeAlso:

back.delete_annot

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_annot_funcs import *  # NOQA
>>> from os.path import exists
>>> import wbia
>>> ibs = wbia.opendb(defaultdb='testdb1')
>>> ibs.delete_empty_nids()
>>> # Add some annotations to delete
>>> num_add = 2
>>> gid_list = ibs.get_valid_gids()[0:num_add]
>>> nid = ibs.make_next_nids(1)[0]
>>> nid_list = [nid] * num_add
>>> bbox_list = [(int(w * .1), int(h * .6), int(w * .5), int(h *  .3))
...              for (w, h) in ibs.get_image_sizes(gid_list)]
>>> new_aid_list = ibs.add_annots(gid_list, bbox_list=bbox_list,
>>>                               nid_list=nid_list)
>>> ibs.get_annot_nids(new_aid_list)
>>> ut.assert_lists_eq(ibs.get_annot_nids(new_aid_list), nid_list)
>>> assert ibs.get_name_aids(nid) == new_aid_list, 'annots should all have same name'
>>> assert new_aid_list == ibs.get_name_aids(nid), 'inverse name mapping should work'
>>> #thumpaths = ibs.get_image_thumbpath(gid_list, ensure_paths=True, **{'thumbsize': 221})
>>> #assert any(ut.lmap(exists, thumpaths)), 'thumbs should be there'
>>> before_aids = ibs.get_image_aids(gid_list)
>>> print('BEFORE gids: ' + str(before_aids))
>>> result = ibs.delete_annots(new_aid_list)
>>> assert ibs.get_name_aids(nid) == [], 'annots should be removed'
>>> after_aids = ibs.get_image_aids(gid_list)
>>> #thumpaths = ibs.get_image_thumbpath(gid_list, ensure_paths=False, **{'thumbsize': 221})
>>> #assert not any(ut.lmap(exists, thumpaths)), 'thumbs should be gone'
>>> assert after_aids != before_aids, 'the invalidators must have bugs'
>>> print('AFTER gids: ' + str(after_aids))
>>> valid_aids = ibs.get_valid_aids()
>>> assert  [aid not in valid_aids for aid in new_aid_list], 'should no longer be valid aids'
>>> print(result)
>>> ibs.delete_empty_nids()
wbia.control.manual_annot_funcs.filter_annotation_set(ibs, aid_list, include_only_gid_list=None, yaw='no-filter', is_exemplar=None, is_staged=False, species=None, is_known=None, hasgt=None, minqual=None, has_timestamp=None, sort=False, is_canonical=None, min_timedelta=None)[source]
wbia.control.manual_annot_funcs.get_annot_age_months_est(ibs, aid_list, eager=True, nInput=None)[source]

annot_age_months_est_list <- annot.annot_age_months_est[aid_list]

gets data from the annotation’s native age in months

Parameters

aid_list (list) –

Returns

annot_age_months_est_list

Return type

list

RESTful:

Method: GET URL: /api/annot/age/months/

wbia.control.manual_annot_funcs.get_annot_age_months_est_max(ibs, aid_list, eager=True, nInput=None)[source]

annot_age_months_est_max_list <- annot.annot_age_months_est_max[aid_list]

gets data from the “native” column “annot_age_months_est_max” in the “annot” table

Parameters

aid_list (list) –

Returns

annot_age_months_est_max_list

Return type

list

RESTful:

Method: GET URL: /api/annot/age/months/max/

Example

>>> # DISABLE_DOCTEST
>>> from wbia.control.manual_annot_funcs import *  # NOQA
>>> ibs, config2_ = testdata_ibs()
>>> aid_list = ibs._get_all_aids()
>>> eager = True
>>> annot_age_months_est_max_list = ibs.get_annot_age_months_est_max(aid_list, eager=eager)
>>> assert len(aid_list) == len(annot_age_months_est_max_list)
wbia.control.manual_annot_funcs.get_annot_age_months_est_max_texts(ibs, aid_list, eager=True, nInput=None)[source]

annot_age_months_est_max_texts_list <- annot.annot_age_months_est_max_texts[aid_list]

gets string versions of the annotation’s native max age in months

Parameters

aid_list (list) –

Returns

annot_age_months_est_max_list

Return type

list

RESTful:

Method: GET URL: /api/annot/age/months/max/text/

wbia.control.manual_annot_funcs.get_annot_age_months_est_min(ibs, aid_list, eager=True, nInput=None)[source]

annot_age_months_est_min_list <- annot.annot_age_months_est_min[aid_list]

gets data from the “native” column “annot_age_months_est_min” in the “annot” table

Parameters

aid_list (list) –

Returns

annot_age_months_est_min_list

Return type

list

RESTful:

Method: GET URL: /api/annot/age/months/min/

Example

>>> # DISABLE_DOCTEST
>>> from wbia.control.manual_annot_funcs import *  # NOQA
>>> ibs, config2_ = testdata_ibs()
>>> aid_list = ibs._get_all_aids()
>>> eager = True
>>> annot_age_months_est_min_list = ibs.get_annot_age_months_est_min(aid_list, eager=eager)
>>> assert len(aid_list) == len(annot_age_months_est_min_list)
wbia.control.manual_annot_funcs.get_annot_age_months_est_min_texts(ibs, aid_list, eager=True, nInput=None)[source]

annot_age_months_est_min_texts_list <- annot.annot_age_months_est_min_texts[aid_list]

gets string versions of the annotation’s native min age in months

Parameters

aid_list (list) –

Returns

annot_age_months_est_min_list

Return type

list

RESTful:

Method: GET URL: /api/annot/age/months/min/text/

wbia.control.manual_annot_funcs.get_annot_age_months_est_texts(ibs, aid_list, eager=True, nInput=None)[source]

annot_age_months_est_texts_list <- annot.annot_age_months_est_texts[aid_list]

gets string versions of the annotation’s native combined age in months

Parameters

aid_list (list) –

Returns

annot_age_months_est_text_list

Return type

list

RESTful:

Method: GET URL: /api/annot/age/months/text/

wbia.control.manual_annot_funcs.get_annot_aid(ibs, aid_list, eager=True, nInput=None)[source]

self verifier .. rubric:: Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.IBEISControl import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb('testdb1')
>>> aid_list = ibs.get_valid_aids() + [None, -1, 10434320432]
>>> aid_list_ = ibs.get_annot_aid(aid_list)
>>> assert [r is None for r in aid_list_[-3:]]
>>> assert [r is not None for r in aid_list_[0:-3]]
wbia.control.manual_annot_funcs.get_annot_aids_from_semantic_uuid(ibs, semantic_uuid_list)[source]
Parameters

semantic_uuid_list (list) –

Returns

annot rowids

Return type

list

wbia.control.manual_annot_funcs.get_annot_aids_from_uuid(ibs, uuid_list)[source]
Returns

annot rowids

Return type

list_ (list)

RESTful:

Method: GET URL: /api/annot/rowid/uuid/

wbia.control.manual_annot_funcs.get_annot_aids_from_visual_uuid(ibs, visual_uuid_list)[source]
Parameters

visual_uuid_list (list) –

Returns

annot rowids

Return type

list

wbia.control.manual_annot_funcs.get_annot_bboxes(ibs, aid_list)[source]
Returns

annotation bounding boxes in image space

Return type

bbox_list (list)

RESTful:

Method: GET URL: /api/annot/bbox/

wbia.control.manual_annot_funcs.get_annot_canonical(ibs, aid_list, default_none_to_false=True)[source]
RESTful:

Method: GET URL: /api/annot/canonical/

Example

>>> # DISABLE_DOCTEST
>>> from wbia.control.manual_annot_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb(defaultdb='testdb1')
>>> aid_list = ibs.get_valid_aids()
>>> flag_list = get_annot_canonical(ibs, aid_list)
>>> result = ('flag_list = %s' % (ut.repr2(flag_list),))
>>> print(result)
wbia.control.manual_annot_funcs.get_annot_class_labels(ibs, aid_list)[source]

DEPRICATE?

Returns

identifying animal name and view

Return type

list of tuples

wbia.control.manual_annot_funcs.get_annot_contact_aids(ibs, aid_list, daid_list=None, check_isect=False, assume_unique=False)[source]

Returns the other aids that appear in the same image that this annotation is from.

Parameters
  • ibs (IBEISController) – wbia controller object

  • aid_list (list) –

CommandLine:

python -m wbia.control.manual_annot_funcs –test-get_annot_contact_aids;1

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_annot_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb('testdb1')
>>> aid_list = ibs.get_valid_aids()
>>> contact_aids = ibs.get_annot_contact_aids(aid_list)
>>> contact_gids = ibs.unflat_map(ibs.get_annot_gids, contact_aids)
>>> gid_list = ibs.get_annot_gids(aid_list)
>>> for gids, gid, aids, aid in zip(contact_gids, gid_list, contact_aids, aid_list):
...     assert ut.allsame(gids), 'annots should be from same image'
...     assert len(gids) == 0 or gids[0] == gid, 'and same image as parent annot'
...     assert aid not in aids, 'should not include self'

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_annot_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb('testdb2')
>>> aid_list = ibs.get_valid_aids()
>>> contact_aids = ibs.get_annot_contact_aids(aid_list)
>>> contact_gids = ibs.unflat_map(ibs.get_annot_gids, contact_aids)
>>> gid_list = ibs.get_annot_gids(aid_list)
>>> print('contact_aids = %r' % (contact_aids,))
>>> for gids, gid, aids, aid in zip(contact_gids, gid_list, contact_aids, aid_list):
...     assert ut.allsame(gids), 'annots should be from same image'
...     assert len(gids) == 0 or gids[0] == gid, 'and same image as parent annot'
...     assert aid not in aids, 'should not include self'
wbia.control.manual_annot_funcs.get_annot_detect_confidence(ibs, aid_list)[source]
Returns

a list confidences that the annotations is a valid detection

Return type

list_ (list)

RESTful:

Method: GET URL: /api/annot/detect/confidence/

wbia.control.manual_annot_funcs.get_annot_exemplar_flags(ibs, aid_list)[source]

returns if an annotation is an exemplar

Parameters
  • ibs (IBEISController) – wbia controller object

  • aid_list (int) – list of annotation ids

Returns

annot_exemplar_flag_list - True if annotation is an exemplar

Return type

list

CommandLine:

python -m wbia.control.manual_annot_funcs –test-get_annot_exemplar_flags

RESTful:

Method: GET URL: /api/annot/exemplar/

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_annot_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb('testdb1')
>>> aid_list = ibs.get_valid_aids()
>>> gid_list = get_annot_exemplar_flags(ibs, aid_list)
>>> result = str(gid_list)
>>> print(result)
wbia.control.manual_annot_funcs.get_annot_gar_rowids(ibs, aid_list)[source]

Auto-docstr for ‘get_annot_gar_rowids’

wbia.control.manual_annot_funcs.get_annot_gids(ibs, aid_list, assume_unique=False)[source]

Get parent image rowids of annotations

Parameters

aid_list (list) –

Returns

image rowids

Return type

gid_list (list)

RESTful:

Method: GET URL: /api/annot/image/rowid/

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_annot_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb('testdb1')
>>> aid_list = ibs.get_valid_aids()
>>> result = get_annot_gids(ibs, aid_list)
>>> print(result)
wbia.control.manual_annot_funcs.get_annot_groundfalse(ibs, aid_list, valid_aids=None, filter_unknowns=True, daid_list=None)[source]

gets all annotations with different names

Returns

a list of aids which are known to be different for each

Return type

groundfalse_list (list)

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_annot_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb('testdb1')
>>> aid_list = ibs.get_valid_aids()
>>> groundfalse_list = get_annot_groundfalse(ibs, aid_list)
>>> result = str(groundfalse_list)
>>> print(result)
wbia.control.manual_annot_funcs.get_annot_groundtruth(ibs, aid_list, is_exemplar=None, noself=True, daid_list=None)[source]

gets all annotations with the same names

Parameters
  • aid_list (list) – list of annotation rowids to get groundtruth of

  • is_exemplar (None) –

  • noself (bool) –

  • daid_list (list) –

Returns

a list of aids with the same name foreach aid in aid_list. a set of aids belonging to the same name is called a groundtruth. A list of these is called a groundtruth_list.

Return type

groundtruth_list (list)

CommandLine:

python -m wbia.control.manual_annot_funcs –test-get_annot_groundtruth:0 python -m wbia.control.manual_annot_funcs –test-get_annot_groundtruth:1 python -m wbia.control.manual_annot_funcs –test-get_annot_groundtruth:2 python -m –tf get_annot_groundtruth:0 –db=PZ_Master0 –aids=97 –exec-mode

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_annot_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb(defaultdb='testdb1')
>>> aid_list = ut.get_argval('--aids', list, ibs.get_valid_aids())
>>> is_exemplar, noself, daid_list = None, True, None
>>> groundtruth_list = ibs.get_annot_groundtruth(aid_list, is_exemplar, noself, daid_list)
>>> result = 'groundtruth_list = ' + str(groundtruth_list)
>>> print(result)
groundtruth_list = [[], [3], [2], [], [6], [5], [], [], [], [], [], [], []]

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_annot_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb('testdb1')
>>> aid_list = ibs.get_valid_aids()
>>> is_exemplar, noself, daid_list = True, True, None
>>> groundtruth_list = ibs.get_annot_groundtruth(aid_list, is_exemplar, noself, daid_list)
>>> result = str(groundtruth_list)
>>> print(result)
[[], [3], [2], [], [6], [5], [], [], [], [], [], [], []]

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_annot_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb('testdb1')
>>> aid_list = ibs.get_valid_aids()
>>> is_exemplar, noself, daid_list = False, False, aid_list
>>> groundtruth_list = ibs.get_annot_groundtruth(aid_list, is_exemplar, noself, daid_list)
>>> result = str(groundtruth_list)
>>> print(result)
[[1], [], [], [4], [], [], [], [], [9], [], [11], [], []]
wbia.control.manual_annot_funcs.get_annot_has_groundtruth(ibs, aid_list, is_exemplar=None, noself=True, daid_list=None)[source]
Parameters
  • aid_list (list) –

  • is_exemplar (None) –

  • noself (bool) –

  • daid_list (list) –

Returns

has_gt_list

Return type

list

CommandLine:

python -m wbia.control.manual_annot_funcs –test-get_annot_has_groundtruth

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_annot_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb('testdb1')
>>> aid_list = ibs.get_valid_aids()
>>> is_exemplar = None
>>> noself = True
>>> daid_list = None
>>> has_gt_list = get_annot_has_groundtruth(ibs, aid_list, is_exemplar, noself, daid_list)
>>> result = str(has_gt_list)
>>> print(result)
wbia.control.manual_annot_funcs.get_annot_hashid_semantic_uuid(ibs, aid_list, prefix='')[source]

builds an aggregate semantic hash id for a list of aids

Parameters
  • ibs (wbia.IBEISController) – wbia controller object

  • aid_list (list) – list of annotation rowids

  • prefix (str) – (default = ‘’)

  • _new (bool) – Eventually we will change the hashing scheme and all old data will be invalidated. (default=False)

Returns

semantic_uuid_hashid

Return type

str

CommandLine:

python -m wbia.control.manual_annot_funcs –test-get_annot_hashid_semantic_uuid

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_annot_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb(defaultdb='testdb1')
>>> aid_list = ibs.get_valid_aids()
>>> annots = ibs.annots()
>>> prefix = ''
>>> semantic_uuid_hashid = get_annot_hashid_semantic_uuid(ibs, aid_list, prefix)
>>> result = ut.repr2(annots.semantic_uuids[0:2], nl=1) + '\n'
>>> result += ('semantic_uuid_hashid = ' + str(semantic_uuid_hashid))
>>> print(result)
[
    UUID('...'),
    UUID('...'),
]
semantic_uuid_hashid = SUUIDS-13-...
wbia.control.manual_annot_funcs.get_annot_hashid_uuid(ibs, aid_list, prefix='')[source]

builds an aggregate random hash id for a list of aids

RESTful:

Method: GET URL: /api/annot/uuid/hashid/

wbia.control.manual_annot_funcs.get_annot_hashid_visual_uuid(ibs, aid_list, prefix='', pathsafe=False)[source]

builds an aggregate visual hash id for a list of aids

Parameters

_new (bool) – Eventually we will change the hashing scheme and all old data will be invalidated. (default=False)

wbia.control.manual_annot_funcs.get_annot_image_contributor_tag(ibs, aid_list)[source]

Auto-docstr for ‘get_annot_image_contributor_tag’

wbia.control.manual_annot_funcs.get_annot_image_datetime_str(ibs, aid_list)[source]
Parameters
  • ibs (IBEISController) – wbia controller object

  • aid_list (int) – list of annotation ids

Returns

datetime_list

Return type

list

CommandLine:

python -m wbia.control.manual_annot_funcs –test-get_annot_image_datetime_str

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_annot_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb('testdb1')
>>> aid_list = ibs.get_valid_aids()
>>> datetime_list = get_annot_image_datetime_str(ibs, aid_list)
>>> result = str(datetime_list)
>>> print(result)
wbia.control.manual_annot_funcs.get_annot_image_gps(ibs, aid_list)[source]
Parameters

aid_list (list) –

Returns

unixtime_list

Return type

list

RESTful:

Method: GET URL: /api/annot/image/gps/

wbia.control.manual_annot_funcs.get_annot_image_gps2(ibs, aid_list)[source]

fixes the (-1, -1) issue. returns nan instead.

wbia.control.manual_annot_funcs.get_annot_image_names(ibs, aid_list)[source]
Parameters

aid_list (list) –

Returns

gname_list the image names of each annotation

Return type

list of strs

RESTful:

Method: GET URL: /api/annot/image/name/

wbia.control.manual_annot_funcs.get_annot_image_paths(ibs, aid_list)[source]
Parameters

aid_list (list) –

Returns

gpath_list the image paths of each annotation

Return type

list of strs

RESTful:

Method: GET URL: /api/annot/image/file/path/

wbia.control.manual_annot_funcs.get_annot_image_rowids(ibs, aid_list)[source]
wbia.control.manual_annot_funcs.get_annot_image_set_texts(ibs, aid_list)[source]

Auto-docstr for ‘get_annot_image_contributor_tag’

RESTful:

Method: GET URL: /api/annot/imageset/text/

wbia.control.manual_annot_funcs.get_annot_image_unixtimes(ibs, aid_list, **kwargs)[source]
Parameters

aid_list (list) –

Returns

unixtime_list

Return type

list

RESTful:

Method: GET URL: /api/annot/image/unixtime/

wbia.control.manual_annot_funcs.get_annot_image_unixtimes_asfloat(ibs, aid_list)[source]
Parameters
  • ibs (IBEISController) – wbia controller object

  • aid_list (list) – list of annotation rowids

Returns

unixtime_list

Return type

list

CommandLine:

python -m wbia.control.manual_annot_funcs –exec-get_annot_image_unixtimes_asfloat –show –db PZ_MTEST

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_annot_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb(defaultdb='testdb1')
>>> aid_list = ibs.get_valid_aids()
>>> unixtime_list = get_annot_image_unixtimes_asfloat(ibs, aid_list)
>>> result = ('unixtime_list = %s' % (str(unixtime_list),))
>>> print(result)
>>> ut.quit_if_noshow()
>>> import wbia.plottool as pt
>>> ut.show_if_requested()
wbia.control.manual_annot_funcs.get_annot_image_uuids(ibs, aid_list)[source]
Parameters

aid_list (list) –

Returns

image_uuid_list

Return type

list

CommandLine:

python -m wbia.control.manual_annot_funcs –test-get_annot_image_uuids –enableall

RESTful:

Method: GET URL: /api/annot/image/uuid/

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_annot_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb('testdb1')
>>> aid_list = ibs.get_valid_aids()[0:1]
>>> result = get_annot_image_uuids(ibs, aid_list)
>>> print(result)
[UUID('66ec193a-1619-b3b6-216d-1784b4833b61')]
wbia.control.manual_annot_funcs.get_annot_images(ibs, aid_list)[source]
Parameters

aid_list (list) –

Returns

the images of each annotation

Return type

list of ndarrays

CommandLine:

python -m wbia.control.manual_annot_funcs –test-get_annot_images

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_annot_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb('testdb1')
>>> aid_list = ibs.get_valid_aids()[0:1]
>>> image_list = ibs.get_annot_images(aid_list)
>>> result = str(list(map(np.shape, image_list)))
>>> print(result)
[(715, 1047, 3)]
wbia.control.manual_annot_funcs.get_annot_imgset_uuids(ibs, aid_list)[source]

Get parent image rowids of annotations

Parameters

aid_list (list) –

Returns

imageset uuids

Return type

imgset_uuid_list (list)

RESTful:

Method: GET URL: /api/annot/imageset/uuid/

wbia.control.manual_annot_funcs.get_annot_imgsetids(ibs, aid_list)[source]

Get parent image rowids of annotations

Parameters

aid_list (list) –

Returns

imageset rowids

Return type

imgsetid_list (list)

RESTful:

Method: GET URL: /api/annot/imageset/rowid/

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_annot_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb('testdb1')
>>> aid_list = ibs.get_valid_aids()
>>> result = get_annot_gids(ibs, aid_list)
>>> print(result)
wbia.control.manual_annot_funcs.get_annot_interest(ibs, aid_list)[source]
RESTful:

Method: GET URL: /api/annot/interest/

Example

>>> # DISABLE_DOCTEST
>>> from wbia.control.manual_annot_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb(defaultdb='testdb1')
>>> aid_list = ibs.get_valid_aids()
>>> flag_list = get_annot_interest(ibs, aid_list)
>>> result = ('flag_list = %s' % (ut.repr2(flag_list),))
>>> print(result)
wbia.control.manual_annot_funcs.get_annot_isjunk(ibs, aid_list)[source]

Auto-docstr for ‘get_annot_isjunk’

wbia.control.manual_annot_funcs.get_annot_metadata(ibs, aid_list, return_raw=False)[source]
Returns

annot metadata dictionary

Return type

list_ (list)

RESTful:

Method: GET URL: /api/annot/metadata/

wbia.control.manual_annot_funcs.get_annot_missing_uuid(ibs, uuid_list)[source]
Returns

a list of missing annot uuids

Return type

list_ (list)

wbia.control.manual_annot_funcs.get_annot_multiple(ibs, aid_list)[source]
RESTful:

Method: GET URL: /api/annot/multiple/

Example

>>> # DISABLE_DOCTEST
>>> from wbia.control.manual_annot_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb(defaultdb='testdb1')
>>> aid_list = ibs.get_valid_aids()
>>> flag_list = get_annot_multiple(ibs, aid_list)
>>> result = ('flag_list = %s' % (ut.repr2(flag_list),))
>>> print(result)
wbia.control.manual_annot_funcs.get_annot_name_rowids(ibs, aid_list, distinguish_unknowns=True, assume_unique=False)[source]
Returns

the name id of each annotation.

Return type

list_ (list)

CommandLine:

python -m wbia.control.manual_annot_funcs –exec-get_annot_name_rowids

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_annot_funcs import *  # NOQA
>>> from wbia import constants as const
>>> import wbia
>>> ibs = wbia.opendb('testdb1')
>>> aid_list = ibs.get_valid_aids()
>>> distinguish_unknowns = True
>>> nid_arr1 = np.array(ibs.get_annot_name_rowids(aid_list, distinguish_unknowns=distinguish_unknowns))
>>> nid_arr2 = np.array(ibs.get_annot_name_rowids(aid_list, distinguish_unknowns=False))
>>> nid_arr2 = np.array(ibs.get_annot_name_rowids(None, distinguish_unknowns=True))
>>> assert const.UNKNOWN_LBLANNOT_ROWID == 0
>>> assert np.all(nid_arr1[np.where(const.UNKNOWN_LBLANNOT_ROWID == nid_arr2)[0]] < 0)
wbia.control.manual_annot_funcs.get_annot_name_texts(ibs, aid_list, distinguish_unknowns=False)[source]
Parameters

aid_list (list) –

Returns

name_list. e.g: [‘fred’, ‘sue’, …]

for each annotation identifying the individual

Return type

list or strs

RESTful:

Method: GET URL: /api/annot/name/text/

CommandLine:

python -m wbia.control.manual_annot_funcs –test-get_annot_name_texts

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_annot_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb('testdb1')
>>> aid_list = ibs.get_valid_aids()[::2]
>>> result = ut.repr2(get_annot_name_texts(ibs, aid_list), nl=False)
>>> print(result)
['____', 'easy', 'hard', 'jeff', '____', '____', 'zebra']

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_annot_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb('testdb1')
>>> aid_list = ibs.get_valid_aids()[::2]
>>> result = ut.repr2(get_annot_name_texts(ibs, aid_list, True), nl=False)
>>> print(result)
['____1', 'easy', 'hard', 'jeff', '____9', '____11', 'zebra']
wbia.control.manual_annot_funcs.get_annot_name_uuids(ibs, aid_list, **kwargs)[source]

alias

RESTful:

Method: GET URL: /api/annot/name/uuid/

wbia.control.manual_annot_funcs.get_annot_names(ibs, aid_list, distinguish_unknowns=False)[source]

alias

wbia.control.manual_annot_funcs.get_annot_nids(ibs, aid_list, distinguish_unknowns=True)[source]

alias

RESTful:

Method: GET URL: /api/annot/name/rowid/

wbia.control.manual_annot_funcs.get_annot_notes(ibs, aid_list)[source]
Returns

a list of annotation notes

Return type

annotation_notes_list (list)

RESTful:

Method: GET URL: /api/annot/note/

wbia.control.manual_annot_funcs.get_annot_num_contact_aids(ibs, aid_list)[source]

Auto-docstr for ‘get_annot_num_contact_aids’

wbia.control.manual_annot_funcs.get_annot_num_groundtruth(ibs, aid_list, is_exemplar=None, noself=True, daid_list=None)[source]
Returns

number of other chips with the same name

Return type

list_ (list)

CommandLine:

python -m wbia.control.manual_annot_funcs –test-get_annot_num_groundtruth python -m wbia.control.manual_annot_funcs –test-get_annot_num_groundtruth:0 python -m wbia.control.manual_annot_funcs –test-get_annot_num_groundtruth:1

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_annot_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb('testdb1')
>>> aid_list = ibs.get_valid_aids()
>>> noself = True
>>> result = get_annot_num_groundtruth(ibs, aid_list, noself=noself)
>>> print(result)
[0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0]

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_annot_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb('testdb1')
>>> aid_list = ibs.get_valid_aids()
>>> noself = False
>>> result = get_annot_num_groundtruth(ibs, aid_list, noself=noself)
>>> print(result)
[1, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1]
wbia.control.manual_annot_funcs.get_annot_num_verts(ibs, aid_list)[source]
Returns

the number of vertices that form the polygon of each chip

Return type

nVerts_list (list)

RESTful:

Method: GET URL: /api/annot/num/vert/

wbia.control.manual_annot_funcs.get_annot_otherimage_aids(ibs, aid_list, daid_list=None, assume_unique=False)[source]

Auto-docstr for ‘get_annot_otherimage_aids’

wbia.control.manual_annot_funcs.get_annot_parent_aid(ibs, aid_list)[source]
Returns

a list of parent (in terms of parts) annotation rowids.

Return type

list_ (list)

wbia.control.manual_annot_funcs.get_annot_part_rowids(ibs, aid_list, is_staged=False)[source]
Returns

a list of part rowids for each image by aid

Return type

list_ (list)

Parameters
  • ibs (IBEISController) – wbia controller object

  • aid_list (list) –

Returns

part_rowids_list

Return type

list

RESTful:

Method: GET URL: /api/annot/part/rowid/

wbia.control.manual_annot_funcs.get_annot_probchip_fpath(ibs, aid_list, config2_=None)[source]

Returns paths to probability images.

Parameters
  • ibs (IBEISController) – wbia controller object

  • aid_list (list) – list of annotation rowids

  • config2 (dict) – (default = None)

Returns

probchip_fpath_list

Return type

list

CommandLine:

python -m wbia.control.manual_annot_funcs –exec-get_annot_probchip_fpath –show

Example

>>> # DISABLE_DOCTEST
>>> from wbia.control.manual_annot_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb(defaultdb='PZ_MTEST')
>>> aid_list = ibs.get_valid_aids()[0:10]
>>> config2_ = {'fw_detector': 'cnn'}
>>> probchip_fpath_list = get_annot_probchip_fpath(ibs, aid_list, config2_)
>>> result = ('probchip_fpath_list = %s' % (str(probchip_fpath_list),))
>>> print(result)
>>> ut.quit_if_noshow()
>>> import wbia.plottool as pt
>>> iteract_obj = pt.interact_multi_image.MultiImageInteraction(probchip_fpath_list, nPerPage=4)
>>> iteract_obj.start()
>>> ut.show_if_requested()
wbia.control.manual_annot_funcs.get_annot_qualities(ibs, aid_list, eager=True)[source]

annot_quality_list <- annot.annot_quality[aid_list]

gets data from the “native” column “annot_quality” in the “annot” table

Parameters

aid_list (list) –

Returns

annot_quality_list

Return type

list

TemplateInfo:

Tgetter_table_column col = annot_quality tbl = annot

SeeAlso:

wbia.const.QUALITY_INT_TO_TEXT

RESTful:

Method: GET URL: /api/annot/quality/

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_annot_funcs import *  # NOQA
>>> ibs, qreq_ = testdata_ibs()
>>> aid_list = ibs._get_all_aids()
>>> eager = True
>>> annot_quality_list = ibs.get_annot_qualities(aid_list, eager=eager)
>>> print('annot_quality_list = %r' % (annot_quality_list,))
>>> assert len(aid_list) == len(annot_quality_list)
wbia.control.manual_annot_funcs.get_annot_quality_int(ibs, aid_list, eager=True)[source]

new alias

wbia.control.manual_annot_funcs.get_annot_quality_texts(ibs, aid_list)[source]

Auto-docstr for ‘get_annot_quality_texts’

RESTful:

Method: GET URL: /api/annot/quality/text/

wbia.control.manual_annot_funcs.get_annot_reviewed(ibs, aid_list)[source]
Returns

“All Instances Found” flag, true if all objects of interest

Return type

list_ (list)

(animals) have an ANNOTATION in the annot

RESTful:

Method: GET URL: /api/annot/reviewed/

wbia.control.manual_annot_funcs.get_annot_rotated_verts(ibs, aid_list)[source]
Returns

verticies after rotation by theta.

Return type

rotated_vert_list (list)

RESTful:

Method: GET URL: /api/annot/vert/rotated/

wbia.control.manual_annot_funcs.get_annot_rowids_from_partial_vuuids(ibs, partial_vuuid_strs)[source]
Parameters
  • ibs (IBEISController) – wbia controller object

  • partial_uuid_list (list) –

CommandLine:

python -m wbia.control.manual_annot_funcs –test-get_annots_from_partial_uuids

Example

>>> # DISABLE_DOCTEST
>>> from wbia.control.manual_annot_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb('testdb1')
>>> aid_list = ibs.get_valid_aids()[::2]
>>> vuuids = ibs.get_annot_visual_uuids(aid_list)
>>> partial_vuuid_strs = [u[0:4] for u in map(str, vuuids)]
>>> aids_list = get_annot_rowids_from_partial_vuuids(ibs, partial_uuid_list)
>>> print(result)
[[1], [3], [5], [7], [9], [11], [13]]
wbia.control.manual_annot_funcs.get_annot_rowids_from_visual_uuid(ibs, visual_uuid_list)
Parameters

visual_uuid_list (list) –

Returns

annot rowids

Return type

list

wbia.control.manual_annot_funcs.get_annot_rows(ibs, aid_list)[source]

Auto-docstr for ‘get_annot_rows’

wbia.control.manual_annot_funcs.get_annot_semantic_uuid_info(ibs, aid_list, _visual_infotup=None)[source]

Semenatic uuids are made up of visual and semantic information. Semantic information is name, species, yaw. Visual info is image uuid, verts, and theta

Parameters
  • aid_list (list) –

  • _visual_infotup (tuple) – internal use only

Returns

semantic_infotup (image_uuid_list, verts_list, theta_list, yaw_list, name_list, species_list)

Return type

tuple

CommandLine:

python -m wbia.control.manual_annot_funcs –test-get_annot_semantic_uuid_info

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_annot_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb('testdb1')
>>> aid_list = ibs.get_valid_aids()[0:2]
>>> semantic_infotup = ibs.get_annot_semantic_uuid_info(aid_list)
>>> result = ut.repr2(list(zip(*semantic_infotup))[1])
>>> print(result)
(UUID('d8903434-942f-e0f5-d6c2-0dcbe3137bf7'), ((0, 0), (1035, 0), (1035, 576), (0, 576)), 0.0, 'left', 'easy', 'zebra_plains')
wbia.control.manual_annot_funcs.get_annot_semantic_uuids(ibs, aid_list)[source]

annot_semantic_uuid_list <- annot.annot_semantic_uuid[aid_list]

gets data from the “native” column “annot_semantic_uuid” in the “annot” table

Parameters

aid_list (list) –

Returns

annot_semantic_uuid_list

Return type

list

CommandLine:

python -m wbia.control.manual_annot_funcs –test-get_annot_semantic_uuids

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_annot_funcs import *  # NOQA
>>> ibs, qreq_ = testdata_ibs()
>>> aid_list = ibs._get_all_aids()[0:1]
>>> annot_semantic_uuid_list = ibs.get_annot_semantic_uuids(aid_list)
>>> assert len(aid_list) == len(annot_semantic_uuid_list)
>>> print(annot_semantic_uuid_list)
[UUID('9acc1a8e-b35f-11b5-f844-9e8fd5dd7ad9')]
wbia.control.manual_annot_funcs.get_annot_sex(ibs, aid_list, eager=True, nInput=None)[source]

Auto-docstr for ‘get_annot_sex’

RESTful:

Method: GET URL: /api/annot/sex/

wbia.control.manual_annot_funcs.get_annot_sex_texts(ibs, aid_list, eager=True, nInput=None)[source]

Auto-docstr for ‘get_annot_sex_texts’

RESTful:

Method: GET URL: /api/annot/sex/text/

wbia.control.manual_annot_funcs.get_annot_species(ibs, aid_list)[source]

alias

RESTful:

Method: GET URL: /api/annot/species/

wbia.control.manual_annot_funcs.get_annot_species_rowids(ibs, aid_list)[source]

species_rowid_list <- annot.species_rowid[aid_list]

gets data from the “native” column “species_rowid” in the “annot” table

Parameters

aid_list (list) –

Returns

species_rowid_list

Return type

list

RESTful:

Method: GET URL: /api/annot/species/rowid/

wbia.control.manual_annot_funcs.get_annot_species_texts(ibs, aid_list)[source]
Parameters

aid_list (list) –

Returns

species_list - a list of strings [‘plains_zebra’, ‘grevys_zebra’, …] for each annotation identifying the species

Return type

list

CommandLine:

python -m wbia.control.manual_annot_funcs –test-get_annot_species_texts

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_annot_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb('testdb1')
>>> aid_list = ibs.get_valid_aids()[1::3]
>>> result = ut.repr2(get_annot_species_texts(ibs, aid_list), nl=False)
>>> print(result)
['zebra_plains', 'zebra_plains', '____', 'bear_polar']

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_annot_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb('PZ_MTEST')
>>> aid_list = ibs.get_valid_aids()
>>> species_list = get_annot_species_texts(ibs, aid_list)
>>> result = ut.repr2(list(set(species_list)), nl=False)
>>> print(result)
['zebra_plains']
RESTful:

Method: GET URL: /api/annot/species/text/

wbia.control.manual_annot_funcs.get_annot_species_uuids(ibs, aid_list)[source]

species_rowid_list <- annot.species_rowid[aid_list]

Parameters

aid_list (list) –

Returns

species_uuid_list

Return type

list

RESTful:

Method: GET URL: /api/annot/species/uuid/

wbia.control.manual_annot_funcs.get_annot_staged_flags(ibs, aid_list)[source]

returns if an annotation is staged

Parameters
  • ibs (IBEISController) – wbia controller object

  • aid_list (int) – list of annotation ids

Returns

annot_staged_flag_list - True if annotation is staged

Return type

list

CommandLine:

python -m wbia.control.manual_annot_funcs –test-get_annot_staged_flags

RESTful:

Method: GET URL: /api/annot/staged/

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_annot_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb('testdb1')
>>> aid_list = ibs.get_valid_aids()
>>> gid_list = get_annot_staged_flags(ibs, aid_list)
>>> result = str(gid_list)
>>> print(result)
wbia.control.manual_annot_funcs.get_annot_staged_metadata(ibs, aid_list, return_raw=False)[source]
Returns

annot metadata dictionary

Return type

list_ (list)

RESTful:

Method: GET URL: /api/annot/staged/metadata/

wbia.control.manual_annot_funcs.get_annot_staged_user_ids(ibs, aid_list)[source]

returns if an annotation is staged

Parameters
  • ibs (IBEISController) – wbia controller object

  • aid_list (int) – list of annotation ids

Returns

annot_staged_user_id_list - True if annotation is staged

Return type

list

CommandLine:

python -m wbia.control.manual_annot_funcs –test-get_annot_staged_user_ids

RESTful:

Method: GET URL: /api/annot/staged/user/

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_annot_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb('testdb1')
>>> aid_list = ibs.get_valid_aids()
>>> gid_list = get_annot_staged_user_ids(ibs, aid_list)
>>> result = str(gid_list)
>>> print(result)
wbia.control.manual_annot_funcs.get_annot_staged_uuids(ibs, aid_list)[source]
Returns

annot_uuid_list a list of image uuids by aid

Return type

list

RESTful:

Method: GET URL: /api/annot/staged/uuid/

wbia.control.manual_annot_funcs.get_annot_static_encounter(ibs, aids)[source]
wbia.control.manual_annot_funcs.get_annot_tag_text(ibs, aid_list, eager=True, nInput=None)[source]

annot_tags_list <- annot.annot_tags[aid_list]

gets data from the “native” column “annot_tags” in the “annot” table

Parameters

aid_list (list) –

Returns

annot_tags_list

Return type

list

Example

>>> # DISABLE_DOCTEST
>>> from wbia.control.manual_annot_funcs import *  # NOQA
>>> ibs, config2_ = testdata_ibs()
>>> aid_list = ibs._get_all_aids()
>>> eager = True
>>> annot_tags_list = ibs.get_annot_tag_text(aid_list, eager=eager)
>>> assert len(aid_list) == len(annot_tags_list)
wbia.control.manual_annot_funcs.get_annot_thetas(ibs, aid_list)[source]
Returns

a list of floats describing the angles of each chip

Return type

theta_list (list)

CommandLine:

python -m wbia.control.manual_annot_funcs –test-get_annot_thetas

RESTful:

Method: GET URL: /api/annot/theta/

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_annot_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb('NAUT_test')
>>> aid_list = ibs.get_valid_aids()
>>> result = get_annot_thetas(ibs, aid_list)
>>> print(result)
[2.75742, 0.792917, 2.53605, 2.67795, 0.946773, 2.56729]
wbia.control.manual_annot_funcs.get_annot_uuids(ibs, aid_list)[source]
Returns

annot_uuid_list a list of image uuids by aid

Return type

list

RESTful:

Method: GET URL: /api/annot/uuid/

wbia.control.manual_annot_funcs.get_annot_verts(ibs, aid_list)[source]
Returns

the vertices that form the polygon of each chip

Return type

vert_list (list)

RESTful:

Method: GET URL: /api/annot/vert/

wbia.control.manual_annot_funcs.get_annot_viewpoint_code(ibs, aids)[source]
Doctest:
>>> from wbia.control.manual_annot_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb('testdb1')
>>> aid_list = ibs.get_valid_aids()[::3]
>>> result = get_annot_viewpoint_code(ibs, aid_list)
>>> print(result)
['left', 'left', 'unknown', 'left', 'unknown']
wbia.control.manual_annot_funcs.get_annot_viewpoint_int(ibs, aids, assume_unique=False)[source]
wbia.control.manual_annot_funcs.get_annot_viewpoints(ibs, aid_list, assume_unique=False)[source]
Returns

the viewpoint for the annotation

Return type

viewpoint_text (list)

RESTful:

Method: GET URL: /api/annot/viewpoint/

wbia.control.manual_annot_funcs.get_annot_visual_uuid_info(ibs, aid_list)[source]

Returns information used to compute annotation UUID. The image uuid, annotation verticies, are theta is hashted together to

compute the visual uuid.

The visual uuid does not include name or species information.

get_annot_visual_uuid_info

Parameters

aid_list (list) –

Returns

visual_infotup (image_uuid_list, verts_list, theta_list)

Return type

tuple

SeeAlso:

get_annot_visual_uuids get_annot_semantic_uuid_info

CommandLine:

python -m wbia.control.manual_annot_funcs –test-get_annot_visual_uuid_info

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_annot_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb('testdb1')
>>> aid_list = ibs.get_valid_aids()[0:2]
>>> visual_infotup = ibs.get_annot_visual_uuid_info(aid_list)
>>> result = str(list(zip(*visual_infotup))[0])
>>> print(result)
(UUID('66ec193a-1619-b3b6-216d-1784b4833b61'), ((0, 0), (1047, 0), (1047, 715), (0, 715)), 0.0)
wbia.control.manual_annot_funcs.get_annot_visual_uuids(ibs, aid_list)[source]

The image uuid, annotation verticies, are theta is hashted together to compute the visual uuid. The visual uuid does not include name or species information.

annot_visual_uuid_list <- annot.annot_visual_uuid[aid_list]

gets data from the “native” column “annot_visual_uuid” in the “annot” table

Parameters

aid_list (list) –

Returns

annot_visual_uuid_list

Return type

list

CommandLine:

python -m wbia.control.manual_annot_funcs –test-get_annot_visual_uuids

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_annot_funcs import *  # NOQA
>>> ibs, qreq_ = testdata_ibs()
>>> aid_list = ibs._get_all_aids()[0:1]
>>> annot_visual_uuid_list = ibs.get_annot_visual_uuids(aid_list)
>>> assert len(aid_list) == len(annot_visual_uuid_list)
>>> print(annot_visual_uuid_list)
[UUID('8687dcb6-1f1f-fdd3-8b72-8f36f9f41905')]

[UUID(‘76de0416-7c92-e1b3-4a17-25df32e9c2b4’)]

wbia.control.manual_annot_funcs.get_annot_yaw_texts(ibs, aid_list, assume_unique=False)[source]

Auto-docstr for ‘get_annot_yaw_texts’

DEPRICATE

RESTful:

Method: GET URL: /api/annot/yaw/text/

wbia.control.manual_annot_funcs.get_annot_yaws(ibs, aid_list, assume_unique=False)[source]

A yaw is the yaw of the annotation in radians yaw is inverted. Will be fixed soon.

DEPRICATE

The following views have these angles of yaw:

left side - 0.50 tau radians front side - 0.25 tau radians right side - 0.00 tau radians back side - 0.75 tau radians

tau = 2 * pi

SeeAlso:

wbia.const.VIEWTEXT_TO_YAW_RADIANS

Returns

the yaw (in radians) for the annotation

Return type

yaw_list (list)

CommandLine:

python -m wbia.control.manual_annot_funcs –test-get_annot_yaws

RESTful:

Method: GET URL: /api/annot/yaw/

Example

>>> # DISABLE_DOCTEST
>>> from wbia.control.manual_annot_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb('testdb1')
>>> aid_list = ibs.get_valid_aids()[::3]
>>> result = get_annot_yaws(ibs, aid_list)
>>> print(result)
[3.141592653589793, 3.141592653589793, None, 3.141592653589793, None]
wbia.control.manual_annot_funcs.get_annot_yaws_asfloat(ibs, aid_list)[source]

Ensures that Nones are returned as nans

DEPRICATE

wbia.control.manual_annot_funcs.get_num_annotations(ibs, **kwargs)[source]

Number of valid annotations

wbia.control.manual_annot_funcs.get_valid_aids(ibs, imgsetid=None, include_only_gid_list=None, yaw='no-filter', is_exemplar=None, is_staged=False, species=None, is_known=None, hasgt=None, minqual=None, has_timestamp=None, min_timedelta=None)[source]

High level function for getting all annotation ids according a set of filters.

Note: The yaw value cannot be None as a default because None is used as a

filtering value

Parameters
  • ibs (IBEISController) – wbia controller object

  • imgsetid (int) – imageset id (default = None)

  • include_only_gid_list (list) – if specified filters annots not in these gids (default = None)

  • yaw (str) – (default = ‘no-filter’)

  • is_exemplar (bool) – if specified filters annots to either be or not be exemplars (default = None)

  • species (str) – (default = None)

  • is_known (bool) – (default = None)

  • min_timedelta (int) – minimum timedelta between annots of known individuals

  • hasgt (bool) – (default = None)

Returns

aid_list - a list of valid ANNOTATION unique ids

Return type

list

CommandLine:

python -m wbia.control.manual_annot_funcs –test-get_valid_aids

Ignore:

ibs.print_annotation_table()

RESTful:

Method: GET URL: /api/annot/

Example

>>> # FIXME failing-test (22-Jul-2020) This test is failing and it's not clear how to fix it
>>> # xdoctest: +SKIP
>>> from wbia.control.manual_annot_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb('testdb1')
>>> ut.exec_funckw(get_valid_aids, globals())
>>> imgsetid = 1
>>> yaw = 'no-filter'
>>> species = ibs.const.TEST_SPECIES.ZEB_PLAIN
>>> is_known = False
>>> ibs.delete_all_imagesets()
>>> ibs.compute_occurrences(config={'use_gps': False, 'seconds_thresh': 600})
>>> aid_list = get_valid_aids(ibs, imgsetid=imgsetid, species=species, is_known=is_known)
>>> ut.assert_eq(ibs.get_annot_names(aid_list), [ibs.const.UNKNOWN] * 2, 'bad name')
>>> ut.assert_eq(ibs.get_annot_species(aid_list), [species] * 2, 'bad species')
>>> ut.assert_eq(ibs.get_annot_exemplar_flags(aid_list), [False] * 2, 'bad exemplar')
>>> result = str(aid_list)
>>> print(result)

[1, 4]

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_annot_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb('testdb1')
>>> aid_list1 = get_valid_aids(ibs, is_exemplar=True)
>>> aid_list2 = get_valid_aids(ibs, is_exemplar=False)
>>> intersect_aids = set(aid_list1).intersection(aid_list2)
>>> ut.assert_eq(len(aid_list1), 9)
>>> ut.assert_eq(len(aid_list2), 4)
>>> ut.assert_eq(len(intersect_aids), 0)
Ignore:

import utool as ut setup = ut.codeblock(

‘’’ import wbia ibs = wbia.opendb(‘PZ_Master1’) ‘’’

) stmt_list = [

ut.codeblock(

‘’’ ibs.db.get_all_rowids_where(ibs.const.ANNOTATION_TABLE, wbia.control.DB_SCHEMA.ANNOT_PARENT_ROWID + ” IS NULL”, tuple()) ‘’’),

ut.codeblock(

‘’’ ibs.db.get_all_rowids(ibs.const.ANNOTATION_TABLE) ‘’’),

] iterations = 100 verbose = True _ = ut.timeit_compare(stmt_list, setup=setup, iterations=iterations, verbose=verbose)

wbia.control.manual_annot_funcs.get_valid_annot_uuids(ibs)[source]
Returns

annot_uuid_list a list of image uuids for all valid aids

Return type

list

wbia.control.manual_annot_funcs.set_annot_age_months_est_max(ibs, aid_list, annot_age_months_est_max_list, duplicate_behavior='error')[source]

annot_age_months_est_max_list -> annot.annot_age_months_est_max[aid_list]

Parameters
  • aid_list

  • annot_age_months_est_max_list

TemplateInfo:

Tsetter_native_column tbl = annot col = annot_age_months_est_max

RESTful:

Method: PUT URL: /api/annot/age/months/max/

wbia.control.manual_annot_funcs.set_annot_age_months_est_min(ibs, aid_list, annot_age_months_est_min_list, duplicate_behavior='error')[source]

annot_age_months_est_min_list -> annot.annot_age_months_est_min[aid_list]

Parameters
  • aid_list

  • annot_age_months_est_min_list

TemplateInfo:

Tsetter_native_column tbl = annot col = annot_age_months_est_min

RESTful:

Method: PUT URL: /api/annot/age/months/min/

wbia.control.manual_annot_funcs.set_annot_bboxes(ibs, aid_list, bbox_list, delete_thumbs=True, **kwargs)[source]

Sets bboxes of a list of annotations by aid,

Parameters
  • aid_list (list of rowids) – list of annotation rowids

  • bbox_list (list of (x, y, w, h)) – new bounding boxes for each aid

Note

set_annot_bboxes is a proxy for set_annot_verts

RESTful:

Method: PUT URL: /api/annot/bbox/

wbia.control.manual_annot_funcs.set_annot_canonical(ibs, aid_list, flag_list)[source]

Sets the annot all instances found bit

RESTful:

Method: PUT URL: /api/annot/canonical/

wbia.control.manual_annot_funcs.set_annot_detect_confidence(ibs, aid_list, confidence_list)[source]

Sets annotation notes

RESTful:

Method: PUT URL: /api/annot/detect/confidence/

wbia.control.manual_annot_funcs.set_annot_exemplar_flags(ibs, aid_list, flag_list)[source]

Sets if an annotation is an exemplar

RESTful:

Method: PUT URL: /api/annot/exemplar/

wbia.control.manual_annot_funcs.set_annot_interest(ibs, aid_list, flag_list, quiet_delete_thumbs=False, delete_thumbs=True)[source]

Sets the annot all instances found bit

RESTful:

Method: PUT URL: /api/annot/interest/

wbia.control.manual_annot_funcs.set_annot_metadata(ibs, aid_list, metadata_dict_list)[source]

Sets the annot’s metadata using a metadata dictionary

RESTful:

Method: PUT URL: /api/annot/metadata/

CommandLine:

python -m wbia.control.manual_annot_funcs –test-set_annot_metadata

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_annot_funcs import *  # NOQA
>>> import wbia
>>> import random
>>> # build test data
>>> ibs = wbia.opendb('testdb1')
>>> aid_list = ibs.get_valid_aids()[0:1]
>>> metadata_dict_list = [
>>>     {'test': random.uniform(0.0, 1.0)},
>>> ]
>>> print(ut.repr2(metadata_dict_list))
>>> ibs.set_annot_metadata(aid_list, metadata_dict_list)
>>> # verify results
>>> metadata_dict_list_ = ibs.get_annot_metadata(aid_list)
>>> print(ut.repr2(metadata_dict_list_))
>>> assert metadata_dict_list == metadata_dict_list_
>>> metadata_str_list = [ut.to_json(metadata_dict) for metadata_dict in metadata_dict_list]
>>> print(ut.repr2(metadata_str_list))
>>> metadata_str_list_ = ibs.get_annot_metadata(aid_list, return_raw=True)
>>> print(ut.repr2(metadata_str_list_))
>>> assert metadata_str_list == metadata_str_list_
wbia.control.manual_annot_funcs.set_annot_multiple(ibs, aid_list, flag_list)[source]

Sets the annot all instances found bit

RESTful:

Method: PUT URL: /api/annot/multiple/

wbia.control.manual_annot_funcs.set_annot_name_rowids(ibs, aid_list, name_rowid_list, notify_wildbook=True, assert_wildbook=False)[source]

name_rowid_list -> annot.name_rowid[aid_list]

Sets names/nids of a list of annotations.

Parameters
  • aid_list (list) –

  • name_rowid_list (list) –

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_annot_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb('testdb1')
>>> aid_list = ibs.get_valid_aids()[0:2]
>>> # check clean state
>>> ut.assert_eq(ibs.get_annot_names(aid_list), ['____', 'easy'])
>>> ut.assert_eq(ibs.get_annot_exemplar_flags(aid_list), [0, 1])
>>> # run function
>>> name_list = ['easy', '____']
>>> name_rowid_list = ibs.get_name_rowids_from_text(name_list)
>>> ibs.set_annot_name_rowids(aid_list, name_rowid_list)
>>> # check results
>>> ut.assert_eq(ibs.get_annot_names(aid_list), ['easy', '____'])
>>> ut.assert_eq(ibs.get_annot_exemplar_flags(aid_list), [0, 0])
>>> # restore database state
>>> ibs.set_annot_names(aid_list, ['____', 'easy'])
>>> ibs.set_annot_exemplar_flags(aid_list, [0, 1])
>>> ut.assert_eq(ibs.get_annot_names(aid_list), ['____', 'easy'])
>>> ut.assert_eq(ibs.get_annot_exemplar_flags(aid_list), [0, 1])
wbia.control.manual_annot_funcs.set_annot_name_texts(ibs, aid_list, name_list)[source]

alias

RESTful:

Method: GET URL: /api/annot/name/

wbia.control.manual_annot_funcs.set_annot_names(ibs, aid_list, name_list, **kwargs)[source]

Sets the attrlbl_value of type(INDIVIDUAL_KEY) Sets names/nids of a list of annotations.

CommandLine:

python -m wbia.control.manual_annot_funcs –test-set_annot_names –enableall

RESTful:

Method: PUT URL: /api/annot/name/

Example

>>> # DISABLE_DOCTEST
>>> from wbia.control.manual_annot_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb('testdb1')
>>> aid_list = ibs.get_valid_aids()
>>> name_list1 = get_annot_names(ibs, aid_list)
>>> name_list2 = [name + '_TESTAUG' for name in name_list1]
>>> set_annot_names(ibs, aid_list, name_list2)
>>> name_list3 = get_annot_names(ibs, aid_list)
>>> set_annot_names(ibs, aid_list, name_list1)
>>> name_list4 = get_annot_names(ibs, aid_list)
>>> assert name_list2 == name_list3
>>> assert name_list4 == name_list1
>>> assert name_list4 != name_list2
>>> print(result)
wbia.control.manual_annot_funcs.set_annot_notes(ibs, aid_list, notes_list)[source]

Sets annotation notes

RESTful:

Method: PUT URL: /api/annot/note/

wbia.control.manual_annot_funcs.set_annot_parent_rowid(ibs, aid_list, parent_aid_list)[source]

Sets the annotation’s parent aid. TODO DEPRICATE IN FAVOR OF SEPARATE PARTS TABLE

RESTful:

Method: PUT URL: /api/annot/parent/rowid/

wbia.control.manual_annot_funcs.set_annot_qualities(ibs, aid_list, annot_quality_list)[source]

annot_quality_list -> annot.annot_quality[aid_list]

A quality is an integer representing the following types:

Parameters
  • aid_list

  • annot_quality_list

SeeAlso:

wbia.const.QUALITY_INT_TO_TEXT

RESTful:

Method: PUT URL: /api/annot/quality/

wbia.control.manual_annot_funcs.set_annot_quality_texts(ibs, aid_list, quality_text_list)[source]

Auto-docstr for ‘set_annot_quality_texts’

RESTful:

Method: PUT URL: /api/annot/quality/text/

wbia.control.manual_annot_funcs.set_annot_reviewed(ibs, aid_list, reviewed_list)[source]

Sets the annot all instances found bit

RESTful:

Method: PUT URL: /api/annot/reviewed/

wbia.control.manual_annot_funcs.set_annot_sex(ibs, aid_list, name_sex_list, eager=True, nInput=None)[source]

Auto-docstr for ‘set_annot_sex’

RESTful:

Method: PUT URL: /api/annot/sex/

wbia.control.manual_annot_funcs.set_annot_sex_texts(ibs, aid_list, name_sex_text_list, eager=True, nInput=None)[source]

Auto-docstr for ‘set_annot_sex_texts’

RESTful:

Method: PUT URL: /api/annot/sex/text/

wbia.control.manual_annot_funcs.set_annot_species(ibs, aid_list, species_text_list, **kwargs)[source]

Sets species/speciesids of a list of annotations. Convenience function for set_annot_lblannot_from_value

RESTful:

Method: PUT URL: /api/annot/species/

wbia.control.manual_annot_funcs.set_annot_species_and_notify(ibs, *args, **kwargs)[source]
wbia.control.manual_annot_funcs.set_annot_species_rowids(ibs, aid_list, species_rowid_list)[source]

species_rowid_list -> annot.species_rowid[aid_list]

Sets species/speciesids of a list of annotations.

Parameters
  • aid_list

  • species_rowid_list

RESTful:

Method: PUT URL: /api/annot/species/rowid/

wbia.control.manual_annot_funcs.set_annot_staged_metadata(ibs, aid_list, metadata_dict_list)[source]

Sets the annot’s staged metadata using a metadata dictionary

RESTful:

Method: PUT URL: /api/annot/staged/metadata/

CommandLine:

python -m wbia.control.manual_annot_funcs –test-set_annot_metadata

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_annot_funcs import *  # NOQA
>>> import wbia
>>> import random
>>> # build test data
>>> ibs = wbia.opendb('testdb1')
>>> aid_list = ibs.get_valid_aids()[0:1]
>>> metadata_dict_list = [
>>>     {'test': random.uniform(0.0, 1.0)},
>>> ]
>>> print(ut.repr2(metadata_dict_list))
>>> ibs.set_annot_metadata(aid_list, metadata_dict_list)
>>> # verify results
>>> metadata_dict_list_ = ibs.get_annot_metadata(aid_list)
>>> print(ut.repr2(metadata_dict_list_))
>>> assert metadata_dict_list == metadata_dict_list_
>>> metadata_str_list = [ut.to_json(metadata_dict) for metadata_dict in metadata_dict_list]
>>> print(ut.repr2(metadata_str_list))
>>> metadata_str_list_ = ibs.get_annot_metadata(aid_list, return_raw=True)
>>> print(ut.repr2(metadata_str_list_))
>>> assert metadata_str_list == metadata_str_list_
wbia.control.manual_annot_funcs.set_annot_staged_user_ids(ibs, aid_list, user_id_list)[source]

Sets the staged annotation user id

RESTful:

Method: PUT URL: /api/annot/staged/user/

wbia.control.manual_annot_funcs.set_annot_staged_uuids(ibs, aid_list, annot_uuid_list)[source]
Returns

all nids of known animals (does not include unknown names)

Return type

list_ (list)

wbia.control.manual_annot_funcs.set_annot_static_encounter(ibs, aids, vals)[source]
wbia.control.manual_annot_funcs.set_annot_tag_text(ibs, aid_list, annot_tags_list, duplicate_behavior='error')[source]

annot_tags_list -> annot.annot_tags[aid_list]

Parameters
  • aid_list

  • annot_tags_list

wbia.control.manual_annot_funcs.set_annot_thetas(ibs, aid_list, theta_list, delete_thumbs=True, update_visual_uuids=True, notify_root=True)[source]

Sets thetas of a list of chips by aid

RESTful:

Method: PUT URL: /api/annot/theta/

wbia.control.manual_annot_funcs.set_annot_verts(ibs, aid_list, verts_list, theta_list=None, interest_list=None, canonical_list=None, delete_thumbs=True, update_visual_uuids=True, notify_root=True)[source]

Sets the vertices [(x, y), …] of a list of chips by aid

RESTful:

Method: PUT URL: /api/annot/vert/

wbia.control.manual_annot_funcs.set_annot_viewpoint_code(ibs, aids, view_codes, _code_update=True)[source]
wbia.control.manual_annot_funcs.set_annot_viewpoint_int(ibs, aids, view_ints, _code_update=True)[source]
wbia.control.manual_annot_funcs.set_annot_viewpoints(ibs, aid_list, viewpoint_list, purge_cache=True, only_allow_known=True, _yaw_update=False, _code_update=True)[source]

Sets the viewpoint of the annotation

RESTful:

Method: PUT URL: /api/annot/viewpoint/

wbia.control.manual_annot_funcs.set_annot_yaw_texts(ibs, aid_list, yaw_text_list)[source]

Auto-docstr for ‘set_annot_yaw_texts’

DEPRICATE

RESTful:

Method: PUT URL: /api/annot/yaw/text/

wbia.control.manual_annot_funcs.set_annot_yaws(ibs, aid_list, yaw_list, input_is_degrees=False)[source]

Sets the yaw of a list of chips by aid

DEPRICATE

A yaw is the yaw of the annotation in radians yaw is inverted. Will be fixed soon.

Note

The following views have these angles of yaw:

left side - 0.00 tau radians front side - 0.25 tau radians right side - 0.50 tau radians back side - 0.75 tau radians (tau = 2 * pi)

SeeAlso:

wbia.const.VIEWTEXT_TO_YAW_RADIANS

References

http://upload.wikimedia.org/wikipedia/commons/7/7e/Rollpitchyawplain.png

RESTful:

Method: PUT URL: /api/annot/yaw/

wbia.control.manual_annot_funcs.testdata_ibs()[source]

Auto-docstr for ‘testdata_ibs’

wbia.control.manual_annot_funcs.update_annot_rotate_90(ibs, aid_list, direction)[source]
wbia.control.manual_annot_funcs.update_annot_rotate_left_90(ibs, aid_list)[source]
wbia.control.manual_annot_funcs.update_annot_rotate_right_90(ibs, aid_list)[source]
wbia.control.manual_annot_funcs.update_annot_semantic_uuids(ibs, aid_list, _visual_infotup=None)[source]

Ensures that annots have the proper semantic uuids

wbia.control.manual_annot_funcs.update_annot_visual_uuids(ibs, aid_list)[source]

Ensures that annots have the proper visual uuids

Parameters
  • ibs (IBEISController) – wbia controller object

  • aid_list (list) – list of annotation rowids

CommandLine:

python -m wbia.control.manual_annot_funcs update_annot_visual_uuids –db PZ_Master1 python -m wbia.control.manual_annot_funcs update_annot_visual_uuids python -m wbia update_annot_visual_uuids –db PZ_Master1 python -m wbia update_annot_visual_uuids –db PZ_Master0 python -m wbia update_annot_visual_uuids –db PZ_MTEST

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_annot_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb(defaultdb='testdb1')
>>> aid_list = ibs._get_all_aids()[0:1]
>>> update_annot_visual_uuids(ibs, aid_list)
>>> result = ibs.get_annot_visual_uuids(aid_list)[0]
>>> print(result)
8687dcb6-1f1f-fdd3-8b72-8f36f9f41905

wbia.control.manual_annotgroup_funcs module

Autogenerated IBEISController functions

TemplateInfo:

autogen_time = 13:31:28 2015/04/28 autogen_key = annotgroup

ToRegenerate:

python -m wbia.templates.template_generator –key annotgroup –Tcfg with_web_api=True with_api_cache=False with_deleters=True no_extern_deleters=True –diff python -m wbia.templates.template_generator –key annotgroup –Tcfg with_web_api=True with_api_cache=False with_deleters=True no_extern_deleters=True –write

wbia.control.manual_annotgroup_funcs.add_annotgroup(ibs, annotgroup_uuid_list, annotgroup_text_list, annotgroup_note_list)[source]
Returns

returns annotgroup_rowid_list of added (or already existing annotgroups)

TemplateInfo:

Tadder_native tbl = annotgroup

wbia.control.manual_annotgroup_funcs.delete_annotgroup(ibs, annotgroup_rowid_list, config2_=None)[source]

annotgroup.delete(annotgroup_rowid_list)

delete annotgroup rows

Parameters

annotgroup_rowid_list

Returns

num_deleted

Return type

int

TemplateInfo:

Tdeleter_native_tbl tbl = annotgroup

Example

>>> # DISABLE_DOCTEST
>>> from wbia.control.manual_annotgroup_funcs import *  # NOQA
>>> ibs, config2_ = testdata_ibs()
>>> annotgroup_rowid_list = ibs._get_all_annotgroup_rowids()[:2]
>>> num_deleted = ibs.delete_annotgroup(annotgroup_rowid_list)
>>> print('num_deleted = %r' % (num_deleted,))
wbia.control.manual_annotgroup_funcs.get_annotgroup_gar_rowids(ibs, annotgroup_rowid_list, eager=True, nInput=None)[source]

Auto-docstr for ‘get_annotgroup_gar_rowids’

RESTful:

Method: GET URL: /api/annotgroup/gar/rowids/

wbia.control.manual_annotgroup_funcs.get_annotgroup_note(ibs, annotgroup_rowid_list, eager=True, nInput=None)[source]

annotgroup_note_list <- annotgroup.annotgroup_note[annotgroup_rowid_list]

gets data from the “native” column “annotgroup_note” in the “annotgroup” table

Parameters

annotgroup_rowid_list (list) –

Returns

annotgroup_note_list

Return type

list

TemplateInfo:

Tgetter_table_column col = annotgroup_note tbl = annotgroup

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_annotgroup_funcs import *  # NOQA
>>> ibs, config2_ = testdata_ibs()
>>> annotgroup_rowid_list = ibs._get_all_annotgroup_rowids()
>>> eager = True
>>> annotgroup_note_list = ibs.get_annotgroup_note(annotgroup_rowid_list, eager=eager)
>>> assert len(annotgroup_rowid_list) == len(annotgroup_note_list)
wbia.control.manual_annotgroup_funcs.get_annotgroup_rowid_from_superkey(ibs, annotgroup_text_list, eager=True, nInput=None)[source]

annotgroup_rowid_list <- annotgroup[annotgroup_text_list]

Parameters

lists (superkey) – annotgroup_text_list

Returns

annotgroup_rowid_list

TemplateInfo:

Tgetter_native_rowid_from_superkey tbl = annotgroup

wbia.control.manual_annotgroup_funcs.get_annotgroup_text(ibs, annotgroup_rowid_list, eager=True, nInput=None)[source]

annotgroup_text_list <- annotgroup.annotgroup_text[annotgroup_rowid_list]

gets data from the “native” column “annotgroup_text” in the “annotgroup” table

Parameters

annotgroup_rowid_list (list) –

Returns

annotgroup_text_list

Return type

list

TemplateInfo:

Tgetter_table_column col = annotgroup_text tbl = annotgroup

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_annotgroup_funcs import *  # NOQA
>>> ibs, config2_ = testdata_ibs()
>>> annotgroup_rowid_list = ibs._get_all_annotgroup_rowids()
>>> eager = True
>>> annotgroup_text_list = ibs.get_annotgroup_text(annotgroup_rowid_list, eager=eager)
>>> assert len(annotgroup_rowid_list) == len(annotgroup_text_list)
wbia.control.manual_annotgroup_funcs.get_annotgroup_uuid(ibs, annotgroup_rowid_list, eager=True, nInput=None)[source]

annotgroup_uuid_list <- annotgroup.annotgroup_uuid[annotgroup_rowid_list]

gets data from the “native” column “annotgroup_uuid” in the “annotgroup” table

Parameters

annotgroup_rowid_list (list) –

Returns

annotgroup_uuid_list

Return type

list

TemplateInfo:

Tgetter_table_column col = annotgroup_uuid tbl = annotgroup

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_annotgroup_funcs import *  # NOQA
>>> ibs, config2_ = testdata_ibs()
>>> annotgroup_rowid_list = ibs._get_all_annotgroup_rowids()
>>> eager = True
>>> annotgroup_uuid_list = ibs.get_annotgroup_uuid(annotgroup_rowid_list, eager=eager)
>>> assert len(annotgroup_rowid_list) == len(annotgroup_uuid_list)
wbia.control.manual_annotgroup_funcs.set_annotgroup_note(ibs, annotgroup_rowid_list, annotgroup_note_list, duplicate_behavior='error')[source]

annotgroup_note_list -> annotgroup.annotgroup_note[annotgroup_rowid_list]

Parameters
  • annotgroup_rowid_list

  • annotgroup_note_list

TemplateInfo:

Tsetter_native_column tbl = annotgroup col = annotgroup_note

wbia.control.manual_annotgroup_funcs.set_annotgroup_uuid(ibs, annotgroup_rowid_list, annotgroup_uuid_list, duplicate_behavior='error')[source]

annotgroup_uuid_list -> annotgroup.annotgroup_uuid[annotgroup_rowid_list]

Parameters
  • annotgroup_rowid_list

  • annotgroup_uuid_list

TemplateInfo:

Tsetter_native_column tbl = annotgroup col = annotgroup_uuid

wbia.control.manual_annotgroup_funcs.testdata_ibs(defaultdb='testdb1')[source]

wbia.control.manual_annotmatch_funcs module

Autogenerated IBEISController functions

TemplateInfo:

autogen_time = 11:34:25 2016/01/05 autogen_key = annotmatch

ToRegenerate:

python -m wbia.templates.template_generator –key annotmatch –Tcfg with_web_api=False with_api_cache=False with_deleters=True no_extern_deleters=True –diff python -m wbia.templates.template_generator –key annotmatch –Tcfg with_web_api=False with_api_cache=False with_deleters=True no_extern_deleters=True –write

wbia.control.manual_annotmatch_funcs.add_annotmatch(ibs, aid1_list, aid2_list, annotmatch_evidence_decision_list=None, annotmatch_meta_decision_list=None, annotmatch_confidence_list=None, annotmatch_tag_text_list=None, annotmatch_reviewer_list=None, annotmatch_posixtime_modified_list=None, anotmatch_count_list=None)[source]
Returns

returns annotmatch_rowid_list of added (or already existing annotmatchs)

TemplateInfo:

Tadder_native tbl = annotmatch

wbia.control.manual_annotmatch_funcs.delete_annotmatch(ibs, annotmatch_rowid_list)[source]

annotmatch.delete(annotmatch_rowid_list)

delete annotmatch rows

Parameters

annotmatch_rowid_list

Returns

num_deleted

Return type

int

TemplateInfo:

Tdeleter_native_tbl tbl = annotmatch

Example

>>> # DISABLE_DOCTEST
>>> from wbia.control.manual_annotmatch_funcs import *  # NOQA
>>> ibs, config2_ = testdata_annotmatch()
>>> annotmatch_rowid_list = ibs._get_all_annotmatch_rowids()[:2]
>>> num_deleted = ibs.delete_annotmatch(annotmatch_rowid_list)
>>> print('num_deleted = %r' % (num_deleted,))
wbia.control.manual_annotmatch_funcs.get_annotmatch_aid1(ibs, annotmatch_rowid_list, eager=True, nInput=None)[source]

aid1_list <- annotmatch.aid1[annotmatch_rowid_list]

gets data from the “native” column “aid1” in the “annotmatch” table

Parameters

annotmatch_rowid_list (list) –

Returns

aid1_list

Return type

list

TemplateInfo:

Tgetter_table_column col = aid1 tbl = annotmatch

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_annotmatch_funcs import *  # NOQA
>>> ibs, config2_ = testdata_annotmatch()
>>> annotmatch_rowid_list = ibs._get_all_annotmatch_rowids()
>>> eager = True
>>> aid1_list = ibs.get_annotmatch_aid1(annotmatch_rowid_list, eager=eager)
>>> assert len(annotmatch_rowid_list) == len(aid1_list)
wbia.control.manual_annotmatch_funcs.get_annotmatch_aid2(ibs, annotmatch_rowid_list, eager=True, nInput=None)[source]

aid2_list <- annotmatch.aid2[annotmatch_rowid_list]

gets data from the “native” column “aid2” in the “annotmatch” table

Parameters

annotmatch_rowid_list (list) –

Returns

aid2_list

Return type

list

TemplateInfo:

Tgetter_table_column col = aid2 tbl = annotmatch

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_annotmatch_funcs import *  # NOQA
>>> ibs, config2_ = testdata_annotmatch()
>>> annotmatch_rowid_list = ibs._get_all_annotmatch_rowids()
>>> eager = True
>>> aid2_list = ibs.get_annotmatch_aid2(annotmatch_rowid_list, eager=eager)
>>> assert len(annotmatch_rowid_list) == len(aid2_list)
wbia.control.manual_annotmatch_funcs.get_annotmatch_confidence(ibs, annotmatch_rowid_list, eager=True, nInput=None)[source]

annotmatch_confidence_list <- annotmatch.annotmatch_confidence[annotmatch_rowid_list]

gets data from the “native” column “annotmatch_confidence” in the “annotmatch” table

Parameters

annotmatch_rowid_list (list) –

Returns

annotmatch_confidence_list

Return type

list

TemplateInfo:

Tgetter_table_column col = annotmatch_confidence tbl = annotmatch

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_annotmatch_funcs import *  # NOQA
>>> ibs, config2_ = testdata_annotmatch()
>>> annotmatch_rowid_list = ibs._get_all_annotmatch_rowids()
>>> eager = True
>>> annotmatch_confidence_list = ibs.get_annotmatch_confidence(annotmatch_rowid_list, eager=eager)
>>> assert len(annotmatch_rowid_list) == len(annotmatch_confidence_list)
wbia.control.manual_annotmatch_funcs.get_annotmatch_count(ibs, annotmatch_rowid_list, eager=True, nInput=None)[source]
wbia.control.manual_annotmatch_funcs.get_annotmatch_evidence_decision(ibs, annotmatch_rowid_list, eager=True, nInput=None)[source]

gets data from the “native” column “annotmatch_evidence_decision” in the “annotmatch” table

Parameters

annotmatch_rowid_list (list) –

Returns

annotmatch_evidence_decision_list

Return type

list

TemplateInfo:

Tgetter_table_column col = annotmatch_evidence_decision tbl = annotmatch

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_annotmatch_funcs import *  # NOQA
>>> ibs, config2_ = testdata_annotmatch()
>>> annotmatch_rowid_list = ibs._get_all_annotmatch_rowids()
>>> eager = True
>>> decisions = ibs.get_annotmatch_evidence_decision(annotmatch_rowid_list, eager=eager)
>>> assert len(annotmatch_rowid_list) == len(decisions)
wbia.control.manual_annotmatch_funcs.get_annotmatch_meta_decision(ibs, annotmatch_rowid_list, eager=True, nInput=None)[source]
wbia.control.manual_annotmatch_funcs.get_annotmatch_posixtime_modified(ibs, annotmatch_rowid_list, eager=True, nInput=None)[source]

annotmatch_posixtime_modified_list <- annotmatch.annotmatch_posixtime_modified[annotmatch_rowid_list]

gets data from the “native” column “annotmatch_posixtime_modified” in the “annotmatch” table

Parameters

annotmatch_rowid_list (list) –

Returns

annotmatch_posixtime_modified_list

Return type

list

TemplateInfo:

Tgetter_table_column col = annotmatch_posixtime_modified tbl = annotmatch

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_annotmatch_funcs import *  # NOQA
>>> ibs, config2_ = testdata_annotmatch()
>>> annotmatch_rowid_list = ibs._get_all_annotmatch_rowids()
>>> eager = True
>>> annotmatch_posixtime_modified_list = ibs.get_annotmatch_posixtime_modified(annotmatch_rowid_list, eager=eager)
>>> assert len(annotmatch_rowid_list) == len(annotmatch_posixtime_modified_list)
wbia.control.manual_annotmatch_funcs.get_annotmatch_reviewer(ibs, annotmatch_rowid_list, eager=True, nInput=None)[source]

annotmatch_reviewer_list <- annotmatch.annotmatch_reviewer[annotmatch_rowid_list]

gets data from the “native” column “annotmatch_reviewer” in the “annotmatch” table

Parameters

annotmatch_rowid_list (list) –

Returns

annotmatch_reviewer_list

Return type

list

TemplateInfo:

Tgetter_table_column col = annotmatch_reviewer tbl = annotmatch

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_annotmatch_funcs import *  # NOQA
>>> ibs, config2_ = testdata_annotmatch()
>>> annotmatch_rowid_list = ibs._get_all_annotmatch_rowids()
>>> eager = True
>>> annotmatch_reviewer_list = ibs.get_annotmatch_reviewer(annotmatch_rowid_list, eager=eager)
>>> assert len(annotmatch_rowid_list) == len(annotmatch_reviewer_list)
wbia.control.manual_annotmatch_funcs.get_annotmatch_rowid(ibs, annotmatch_rowid_list, eager=True, nInput=None)[source]

annotmatch_rowid_list <- annotmatch.annotmatch_rowid[annotmatch_rowid_list]

gets data from the “native” column “annotmatch_rowid” in the “annotmatch” table

Parameters

annotmatch_rowid_list (list) –

Returns

annotmatch_rowid_list

Return type

list

TemplateInfo:

Tgetter_table_column col = annotmatch_rowid tbl = annotmatch

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_annotmatch_funcs import *  # NOQA
>>> ibs, config2_ = testdata_annotmatch()
>>> annotmatch_rowid_list = ibs._get_all_annotmatch_rowids()
>>> eager = True
>>> annotmatch_rowid_list = ibs.get_annotmatch_rowid(annotmatch_rowid_list, eager=eager)
>>> assert len(annotmatch_rowid_list) == len(annotmatch_rowid_list)
wbia.control.manual_annotmatch_funcs.get_annotmatch_rowid_from_superkey(ibs, aid1_list, aid2_list, eager=True, nInput=None)[source]

annotmatch_rowid_list <- annotmatch[aid1_list, aid2_list]

Parameters

lists (superkey) – aid1_list, aid2_list

Returns

annotmatch_rowid_list

TemplateInfo:

Tgetter_native_rowid_from_superkey tbl = annotmatch

wbia.control.manual_annotmatch_funcs.get_annotmatch_tag_text(ibs, annotmatch_rowid_list, eager=True, nInput=None)[source]

annotmatch_tag_text_list <- annotmatch.annotmatch_tag_text[annotmatch_rowid_list]

gets data from the “native” column “annotmatch_tag_text” in the “annotmatch” table

Parameters

annotmatch_rowid_list (list) –

Returns

annotmatch_tag_text_list

Return type

list

TemplateInfo:

Tgetter_table_column col = annotmatch_tag_text tbl = annotmatch

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_annotmatch_funcs import *  # NOQA
>>> ibs, config2_ = testdata_annotmatch()
>>> annotmatch_rowid_list = ibs._get_all_annotmatch_rowids()
>>> eager = True
>>> annotmatch_tag_text_list = ibs.get_annotmatch_tag_text(annotmatch_rowid_list, eager=eager)
>>> assert len(annotmatch_rowid_list) == len(annotmatch_tag_text_list)
wbia.control.manual_annotmatch_funcs.set_annotmatch_confidence(ibs, annotmatch_rowid_list, annotmatch_confidence_list, duplicate_behavior='error')[source]

annotmatch_confidence_list -> annotmatch.annotmatch_confidence[annotmatch_rowid_list]

Parameters
  • annotmatch_rowid_list

  • annotmatch_confidence_list

TemplateInfo:

Tsetter_native_column tbl = annotmatch col = annotmatch_confidence

wbia.control.manual_annotmatch_funcs.set_annotmatch_count(ibs, annotmatch_rowid_list, annotmatch_count_list, duplicate_behavior='error')[source]
wbia.control.manual_annotmatch_funcs.set_annotmatch_evidence_decision(ibs, annotmatch_rowid_list, annotmatch_evidence_decision_list, duplicate_behavior='error')[source]
wbia.control.manual_annotmatch_funcs.set_annotmatch_meta_decision(ibs, annotmatch_rowid_list, annotmatch_meta_decision_list, duplicate_behavior='error')[source]
wbia.control.manual_annotmatch_funcs.set_annotmatch_posixtime_modified(ibs, annotmatch_rowid_list, annotmatch_posixtime_modified_list, duplicate_behavior='error')[source]

annotmatch_posixtime_modified_list -> annotmatch.annotmatch_posixtime_modified[annotmatch_rowid_list]

Parameters
  • annotmatch_rowid_list

  • annotmatch_posixtime_modified_list

TemplateInfo:

Tsetter_native_column tbl = annotmatch col = annotmatch_posixtime_modified

wbia.control.manual_annotmatch_funcs.set_annotmatch_reviewer(ibs, annotmatch_rowid_list, annotmatch_reviewer_list, duplicate_behavior='error')[source]

annotmatch_reviewer_list -> annotmatch.annotmatch_reviewer[annotmatch_rowid_list]

Parameters
  • annotmatch_rowid_list

  • annotmatch_reviewer_list

TemplateInfo:

Tsetter_native_column tbl = annotmatch col = annotmatch_reviewer

wbia.control.manual_annotmatch_funcs.set_annotmatch_tag_text(ibs, annotmatch_rowid_list, annotmatch_tag_text_list, duplicate_behavior='error')[source]

annotmatch_tag_text_list -> annotmatch.annotmatch_tag_text[annotmatch_rowid_list]

Parameters
  • annotmatch_rowid_list

  • annotmatch_tag_text_list

TemplateInfo:

Tsetter_native_column tbl = annotmatch col = annotmatch_tag_text

wbia.control.manual_annotmatch_funcs.testdata_annotmatch(defaultdb='testdb1')[source]

wbia.control.manual_chip_funcs module

wbia.control.manual_chip_funcs.delete_annot_chips(ibs, aid_list, config2_=None, fallback=True)[source]

Clears annotation data (does not remove the annotation)

RESTful:

Method: DELETE URL: /api/chip/

wbia.control.manual_chip_funcs.delete_part_chips(ibs, part_rowid_list, config2_=None)[source]

Clears part data

RESTful:

Method: DELETE URL: /api/pchip/

wbia.control.manual_chip_funcs.get_annot_chip_dlensqrd(ibs, aid_list, config2_=None)[source]
Parameters
  • ibs (IBEISController) – wbia controller object

  • aid_list (list) –

Returns

topx2_dlen_sqrd

Return type

list

CommandLine:

python -m wbia.control.manual_chip_funcs get_annot_chip_dlensqrd

RESTful:

Method: GET URL: /api/chip/dlensqrd/

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_chip_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb('testdb1')
>>> aid_list = ibs.get_valid_aids()
>>> config2_ = {'dim_size': 450, 'resize_dim': 'area'}
>>> topx2_dlen_sqrd = ibs.get_annot_chip_dlensqrd(aid_list, config2_=config2_)
>>> result = str(topx2_dlen_sqrd)
>>> print(result)
[435409, 476505, 422500, 422500, 422500, 437924, 405000, 405000, 447805, 420953, 405008, 406265, 512674]
wbia.control.manual_chip_funcs.get_annot_chip_fpath(ibs, aid_list, ensure=True, config2_=None, check_external_storage=False, num_retries=1)[source]

Returns the cached chip uri based off of the current configuration.

Returns

cfpaths defined by ANNOTATIONs

Return type

chip_fpath_list (list)

RESTful:

Method: GET URL: /api/chip/fpath/

wbia.control.manual_chip_funcs.get_annot_chip_sizes(ibs, aid_list, ensure=True, config2_=None)[source]
Parameters
  • ibs (IBEISController) – wbia controller object

  • aid_list (int) – list of annotation ids

  • ensure (bool) – eager evaluation if True

Returns

chipsz_list - the (width, height) of computed annotation chips.

Return type

list

CommandLine:

python -m wbia.control.manual_chip_funcs get_annot_chip_sizes

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_chip_funcs import *  # NOQA
>>> import wbia
>>> # build test data
>>> ibs = wbia.opendb('testdb1')
>>> aid_list = ibs.get_valid_aids()[0:3]
>>> ensure = True
>>> config2_ = {'dim_size': 450, 'resize_dim': 'area'}
>>> # execute function
>>> chipsz_list = get_annot_chip_sizes(ibs, aid_list, ensure, config2_=config2_)
>>> # verify results
>>> result = str(chipsz_list)
>>> print(result)
[(545, 372), (603, 336), (520, 390)]
wbia.control.manual_chip_funcs.get_annot_chip_thumb_path2(ibs, aid_list, thumbsize=None, config=None)[source]

get chip thumb info The return type of this is interpreted and computed in ~/code/guitool/guitool/api_thumb_delegate.py

Parameters
  • aid_list (list) –

  • thumbsize (int) –

Returns

thumbtup_list - [(thumb_path, img_path, imgsize, bboxes, thetas)]

Return type

list

CommandLine:

python -m wbia.control.manual_chip_funcs –test-get_annot_chip_thumbtup

RESTful:

Method: GET URL: /api/chip/thumbtup/

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_chip_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb('testdb1')
>>> aid_list = ibs.get_valid_aids()[1:2]
>>> thumbsize = 128
>>> result = get_annot_chip_thumbtup(ibs, aid_list, thumbsize)
>>> print(result)
wbia.control.manual_chip_funcs.get_annot_chip_thumbpath(ibs, aid_list, thumbsize=None, config2_=None)[source]

just constructs the path. does not compute it. that is done by api_thumb_delegate

RESTful:

Method: GET URL: /api/chip/thumbpath/

wbia.control.manual_chip_funcs.get_annot_chip_thumbtup(ibs, aid_list, thumbsize=None, config2_=None)[source]

get chip thumb info The return type of this is interpreted and computed in ~/code/guitool/guitool/api_thumb_delegate.py

Parameters
  • aid_list (list) –

  • thumbsize (int) –

Returns

thumbtup_list - [(thumb_path, img_path, imgsize, bboxes, thetas)]

Return type

list

CommandLine:

python -m wbia.control.manual_chip_funcs –test-get_annot_chip_thumbtup

RESTful:

Method: GET URL: /api/chip/thumbtup/

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_chip_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb('testdb1')
>>> aid_list = ibs.get_valid_aids()[1:2]
>>> thumbsize = 128
>>> result = get_annot_chip_thumbtup(ibs, aid_list, thumbsize)
>>> print(result)
wbia.control.manual_chip_funcs.get_annot_chips(ibs, aid_list, config2_=None, ensure=True, verbose=False, eager=True)[source]
Parameters
  • ibs (IBEISController) – wbia controller object

  • aid_list (int) – list of annotation ids

  • ensure (bool) – eager evaluation if True

  • config2 (QueryRequest) – query request object with hyper-parameters

Returns

chip_list

Return type

list

CommandLine:

python -m wbia.control.manual_chip_funcs get_annot_chips

RESTful:

Method: GET URL: /api/chip/

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_chip_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb('testdb1')
>>> aid_list = ibs.get_valid_aids()[0:5]
>>> config2_ = {'dim_size': 450, 'resize_dim': 'area'}
>>> chip_list = get_annot_chips(ibs, aid_list, config2_)
>>> chip_sum_list = [chip.sum() for chip in chip_list]
>>> target = [96053684, 65140000, 67223205, 109367378, 73995663]
>>> ut.assert_almost_eq(chip_sum_list, target, 15000)
>>> print(chip_sum_list)
wbia.control.manual_chip_funcs.get_part_chips(ibs, part_rowid_list, config2_=None, ensure=True, verbose=False, eager=True)[source]
Parameters
  • ibs (IBEISController) – wbia controller object

  • part_rowid_list (int) – list of part ids

  • ensure (bool) – eager evaluation if True

  • config2 (QueryRequest) – query request object with hyper-parameters

Returns

chip_list

Return type

list

CommandLine:

python -m wbia.control.manual_chip_funcs get_part_chips

RESTful:

Method: GET URL: /api/pchip/

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_chip_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb('testdb1')
>>> aid_list = ibs.get_valid_aids()
>>> aid_list = aid_list[:10]
>>> bbox_list = ibs.get_annot_bboxes(aid_list)
>>> bbox_list = [
>>>     (xtl + 100, ytl + 100, w - 100, h - 100)
>>>     for xtl, ytl, w, h in bbox_list
>>> ]
>>> part_rowid_list = ibs.add_parts(aid_list, bbox_list=bbox_list)
>>> config2_ = {'dim_size': 450, 'resize_dim': 'area'}
>>> chip_list = get_part_chips(ibs, part_rowid_list, config2_)
>>> chip_sum_list = [chip.sum() for chip in chip_list]
>>> target = [86765003, 62005000, 61333186, 111424764, 63590900, 51397198, 139395045, 84100000, 41254190, 89657450]
>>> ut.assert_almost_eq(chip_sum_list, target, 50000)
>>> print(chip_sum_list)
wbia.control.manual_chip_funcs.testdata_ibs()[source]

wbia.control.manual_feat_funcs module

python -c “import utool as ut; ut.write_modscript_alias(‘Tgen.sh’, ‘wbia.templates.template_generator’)” sh Tgen.sh –key feat –Tcfg with_setters=False with_getters=True with_adders=True –modfname manual_feat_funcs sh Tgen.sh –key feat –Tcfg with_deleters=True –autogen_modname manual_feat_funcs

wbia.control.manual_feat_funcs.delete_annot_feats(ibs, aid_list, config2_=None)[source]

annot.feat.delete(aid_list)

Parameters

aid_list

TemplateInfo:

Tdeleter_rl_depenant root = annot leaf = feat

CommandLine:

python -m wbia.control.manual_feat_funcs –test-delete_annot_feats python -m wbia.control.manual_feat_funcs –test-delete_annot_feats –verb-control

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_feat_funcs import *  # NOQA
>>> ibs, config2_ = testdata_ibs()
>>> aid_list = ibs._get_all_aids()[:1]
>>> fids_list = ibs.get_annot_feat_rowids(aid_list, config2_=config2_, ensure=True)
>>> num_deleted1 = ibs.delete_annot_feats(aid_list, config2_=config2_)
>>> ut.assert_eq(num_deleted1, len(fids_list))
>>> num_deleted2 = ibs.delete_annot_feats(aid_list, config2_=config2_)
>>> ut.assert_eq(num_deleted2, 0)
wbia.control.manual_feat_funcs.get_annot_feat_rowids(ibs, aid_list, ensure=True, eager=True, nInput=None, config2_=None, num_retries=1)[source]
CommandLine:

python -m wbia.control.manual_feat_funcs get_annot_feat_rowids –show

Example

>>> # ENABLE_DOCTEST
>>> from wbia.algo.hots.query_request import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb(defaultdb='testdb1')
>>> aids = ibs.get_valid_aids()[0:3]
>>> config2_ = {}
>>> ibs.delete_annot_feats(aids, config2_=config2_)  # Remove the chips
>>> ut.remove_file_list(ibs.get_annot_chip_fpath(aids, config2_=config2_))
>>> qfids = ibs.get_annot_feat_rowids(aids, ensure=True, config2_=config2_)
wbia.control.manual_feat_funcs.get_annot_kpts(ibs, aid_list, ensure=True, eager=True, nInput=None, config2_=None)[source]
Parameters
  • aid_list (int) – list of annotation ids

  • ensure (bool) – eager evaluation if True

  • eager (bool) –

  • nInput (None) –

  • config2 (QueryRequest) – query request object with hyper-parameters

Returns

annotation descriptor keypoints

Return type

kpts_list (list)

CommandLine:

python -m wbia.control.manual_feat_funcs –test-get_annot_kpts –show python -m wbia.control.manual_feat_funcs –test-get_annot_kpts –show –darken .9 python -m wbia.control.manual_feat_funcs –test-get_annot_kpts –show –darken .9 –verbose python -m wbia.control.manual_feat_funcs –test-get_annot_kpts –show –darken .9 –verbose –no-affine-invariance python -m wbia.control.manual_feat_funcs –test-get_annot_kpts –show –darken .9 –verbose –no-affine-invariance –scale_max=20 python -m wbia.control.manual_feat_funcs –test-get_annot_kpts –show –feat_type=hesaff+siam128 ipython -i – –show –feat_type=hesaff+siam128

Example

>>> # SLOW_DOCTEST
>>> # xdoctest: +SKIP
>>> from wbia.control.manual_feat_funcs import *  # NOQA
>>> import vtool as vt
>>> import numpy as np
>>> import wbia
>>> import wbia.viz.interact
>>> # build test data
>>> qreq1_ = wbia.testdata_qreq_(defaultdb='testdb1', p=['default:RI=True'])
>>> qreq2_ = wbia.testdata_qreq_(defaultdb='testdb1', p=['default:RI=False'])
>>> ibs = qreq1_.ibs
>>> aid_list = qreq1_.get_external_qaids()
>>> with ut.Indenter('[TEST_GET_ANNOT_KPTS]'):
...     print('qreq1 params: ' + qreq1_.qparams.feat_cfgstr)
...     print('qreq2 params: ' + qreq2_.qparams.feat_cfgstr)
...     print('id(qreq1): ' + str(id(qreq1_)))
...     print('id(qreq2): ' + str(id(qreq2_)))
...     #print('feat_config_rowid1 = %r' % (ibs.get_feat_config_rowid(config2_=qreq1_.extern_query_config2),))
...     #print('feat_config_rowid2 = %r' % (ibs.get_feat_config_rowid(config2_=qreq2_.extern_query_config2),))
>>> # Force recomputation of features
>>> with ut.Indenter('[DELETE1]'):
...     ibs.delete_annot_feats(aid_list, config2_=qreq1_.extern_query_config2)
>>> with ut.Indenter('[DELETE2]'):
...     ibs.delete_annot_feats(aid_list, config2_=qreq2_.extern_query_config2)
>>> eager, ensure, nInput = True, True, None
>>> # execute function
>>> with ut.Indenter('[GET1]'):
...     kpts1_list = get_annot_kpts(ibs, aid_list, ensure, eager, nInput, qreq1_.extern_query_config2)
>>> with ut.Indenter('[GET2]'):
...     kpts2_list = get_annot_kpts(ibs, aid_list, ensure, eager, nInput, qreq2_.extern_query_config2)
>>> # verify results
>>> assert not np.all(vt.get_oris(kpts1_list[0]) == 0)
>>> assert np.all(vt.get_oris(kpts2_list[0]) == 0)
>>> ut.quit_if_noshow()
>>> #wbia.viz.viz_chip.show_chip(ibs, aid_list[0], config2_=qreq1_, ori=True)
>>> wbia.viz.interact.interact_chip.ishow_chip(ibs, aid_list[0], config2_=qreq1_.extern_query_config2, ori=True, fnum=1)
>>> wbia.viz.interact.interact_chip.ishow_chip(ibs, aid_list[0], config2_=qreq2_.extern_query_config2, ori=True, fnum=2)
>>> ut.show_if_requested()
wbia.control.manual_feat_funcs.get_annot_num_feats(ibs, aid_list, ensure=True, eager=True, nInput=None, config2_=None, _debug=False)[source]
Parameters

aid_list (list) –

Returns

num descriptors per annotation

Return type

nFeats_list (list)

CommandLine:

python -m wbia.control.manual_feat_funcs –test-get_annot_num_feats

Example

>>> # ENABLE_DOCTEST
>>> # this test might fail on different machines due to
>>> # determenism bugs in hesaff maybe? or maybe jpeg...
>>> # in which case its hopeless
>>> from wbia.control.manual_feat_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb('testdb1')
>>> aid_list = ibs.get_valid_aids()[0:3]
>>> config2_ = {'dim_size': 450, 'resize_dim': 'area'}
>>> nFeats_list = get_annot_num_feats(ibs, aid_list, ensure=True, config2_=config2_, _debug=True)
>>> print('nFeats_list = %r' % (nFeats_list,))
>>> assert len(nFeats_list) == 3
>>> ut.assert_inbounds(nFeats_list[0], 1200, 1263)
>>> ut.assert_inbounds(nFeats_list[1],  900,  923)
>>> ut.assert_inbounds(nFeats_list[2], 1300, 1344)
Ignore:

depc = ibs.depc_annot tablename = ‘feat’ input_rowids = aid_list colnames = ‘num_feats’ config = config2_

wbia.control.manual_feat_funcs.get_annot_vecs(ibs, aid_list, ensure=True, eager=True, nInput=None, config2_=None)[source]
Returns

annotation descriptor vectors

Return type

vecs_list (list)

wbia.control.manual_feat_funcs.testdata_ibs()[source]

wbia.control.manual_featweight_funcs module

wbia.control.manual_featweight_funcs.get_annot_fgweight_rowids(ibs, aid_list, config2_=None, ensure=True)[source]
Parameters
  • ibs (wbia.IBEISController) – image analysis api

  • aid_list (list) – list of annotation rowids

  • config2 (dict) – (default = None)

  • ensure (bool) – eager evaluation if True(default = True)

CommandLine:

python -m wbia.control.manual_featweight_funcs get_annot_fgweight_rowids

wbia.control.manual_featweight_funcs.get_annot_fgweights(ibs, aid_list, config2_=None, ensure=True)[source]
Parameters
  • ibs (wbia.IBEISController) – image analysis api

  • aid_list (list) – list of annotation rowids

  • config2 (dict) – (default = None)

  • ensure (bool) – eager evaluation if True(default = True)

CommandLine:

python -m wbia.control.manual_featweight_funcs get_annot_fgweights

Example

>>> # xdoctest: +REQUIRES(module:wbia_cnn)
>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_featweight_funcs import *  # NOQA
>>> import wbia
>>> import numpy as np
>>> ibs = wbia.opendb(defaultdb='PZ_MTEST')
>>> aid_list = [1, 2]
>>> config2_ = None
>>> ensure = True
>>> fgws_list = get_annot_fgweights(ibs, aid_list, config2_, ensure)
>>> depth = ut.depth_profile(fgws_list)
>>> assert np.all(np.array(depth) > [1200, 1400])
>>> percent_ = (fgws_list[0] > .5).sum() / len(fgws_list[0])
>>> print('Calculated percent = %0.04f' % (percent_, ))
>>> assert percent_ > .6 and percent_ < .8, 'should be around 0.7472'

wbia.control.manual_garelate_funcs module

Autogenerated IBEISController functions

TemplateInfo:

autogen_time = 13:34:34 2015/04/28 autogen_key = gar

ToRegenerate:

python -m wbia.templates.template_generator –key gar –Tcfg with_web_api=True with_api_cache=False with_deleters=True no_extern_deleters=True –diff python -m wbia.templates.template_generator –key gar –Tcfg with_web_api=True with_api_cache=False with_deleters=True no_extern_deleters=True –write

wbia.control.manual_garelate_funcs.add_gar(ibs, annotgroup_rowid_list, aid_list)[source]
Returns

returns gar_rowid_list of added (or already existing gars)

TemplateInfo:

Tadder_native tbl = gar

wbia.control.manual_garelate_funcs.delete_gar(ibs, gar_rowid_list, config2_=None)[source]

gar.delete(gar_rowid_list)

delete gar rows

Parameters

gar_rowid_list

Returns

num_deleted

Return type

int

TemplateInfo:

Tdeleter_native_tbl tbl = gar

Example

>>> # DISABLE_DOCTEST
>>> from wbia.control.manual_garelate_funcs import *  # NOQA
>>> ibs, config2_ = testdata_ibs()
>>> gar_rowid_list = ibs._get_all_gar_rowids()[:2]
>>> num_deleted = ibs.delete_gar(gar_rowid_list)
>>> print('num_deleted = %r' % (num_deleted,))
wbia.control.manual_garelate_funcs.get_gar_aid(ibs, gar_rowid_list, eager=True, nInput=None)[source]

aid_list <- gar.aid[gar_rowid_list]

gets data from the “native” column “aid” in the “gar” table

Parameters

gar_rowid_list (list) –

Returns

aid_list

Return type

list

TemplateInfo:

Tgetter_table_column col = aid tbl = gar

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_garelate_funcs import *  # NOQA
>>> ibs, config2_ = testdata_ibs()
>>> gar_rowid_list = ibs._get_all_gar_rowids()
>>> eager = True
>>> aid_list = ibs.get_gar_aid(gar_rowid_list, eager=eager)
>>> assert len(gar_rowid_list) == len(aid_list)
wbia.control.manual_garelate_funcs.get_gar_annotgroup_rowid(ibs, gar_rowid_list, eager=True, nInput=None)[source]

annotgroup_rowid_list <- gar.annotgroup_rowid[gar_rowid_list]

gets data from the “native” column “annotgroup_rowid” in the “gar” table

Parameters

gar_rowid_list (list) –

Returns

annotgroup_rowid_list

Return type

list

TemplateInfo:

Tgetter_table_column col = annotgroup_rowid tbl = gar

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_garelate_funcs import *  # NOQA
>>> ibs, config2_ = testdata_ibs()
>>> gar_rowid_list = ibs._get_all_gar_rowids()
>>> eager = True
>>> annotgroup_rowid_list = ibs.get_gar_annotgroup_rowid(gar_rowid_list, eager=eager)
>>> assert len(gar_rowid_list) == len(annotgroup_rowid_list)
wbia.control.manual_garelate_funcs.get_gar_rowid_from_superkey(ibs, annotgroup_rowid_list, aid_list, eager=True, nInput=None)[source]

gar_rowid_list <- gar[annotgroup_rowid_list, aid_list]

Parameters

lists (superkey) – annotgroup_rowid_list, aid_list

Returns

gar_rowid_list

TemplateInfo:

Tgetter_native_rowid_from_superkey tbl = gar

wbia.control.manual_garelate_funcs.testdata_ibs(defaultdb='testdb1')[source]

wbia.control.manual_gsgrelate_funcs module

CommandLine:

# Autogenerate ImageSet Functions # key should be the table name # the write flag makes a file, but dont use that python -m wbia.templates.template_generator –key imageset_image_relationship –onlyfn

wbia.control.manual_gsgrelate_funcs.add_image_relationship(ibs, gid_list, imgsetid_list)[source]

Adds a relationship between an image and and imageset

wbia.control.manual_gsgrelate_funcs.delete_empty_imgsetids(ibs)[source]

Removes imagesets without images

Parameters

ibs (IBEISController) – wbia controller object

CommandLine:

python -m wbia.control.manual_gsgrelate_funcs –test-delete_empty_imgsetids

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_gsgrelate_funcs import *  # NOQA
>>> import wbia
>>> # build test data
>>> ibs = wbia.opendb('testdb1')
>>> # execute function
>>> result = ibs.delete_empty_imgsetids()
>>> # verify results
>>> print(result)
wbia.control.manual_gsgrelate_funcs.delete_gsgr_image_relations(ibs, gid_list)[source]

Removes relationship between input images and all imagesets

wbia.control.manual_gsgrelate_funcs.delete_gsgr_imageset_relations(ibs, imgsetid_list)[source]

Removes relationship between input imagesets and all images

wbia.control.manual_gsgrelate_funcs.get_gsgr_rowid_from_superkey(ibs, gid_list, imgsetid_list)[source]
Returns

eg-relate-ids from info constrained to be unique (imgsetid, gid)

Return type

gsgrid_list (list)

wbia.control.manual_gsgrelate_funcs.get_image_gsgrids(ibs, gid_list)[source]
Returns

a list of imageset-image-relationship rowids for each imageid

Return type

list_ (list)

wbia.control.manual_gsgrelate_funcs.unrelate_images_and_imagesets(ibs, gid_list, imgsetid_list)[source]

Seems to unrelate specific image imageset pairs

Parameters
  • ibs (IBEISController) – wbia controller object

  • gid_list (list) –

  • imgsetid_list (list) –

Returns

gids_list

Return type

list

CommandLine:

python -m wbia.control.manual_gsgrelate_funcs –test-unrelate_images_and_imagesets python -c “import utool; print(utool.auto_docstr(‘wbia.control.manual_gsgrelate_funcs’, ‘delete_gsgr_image_relations’))”

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_gsgrelate_funcs import *  # NOQA
>>> import wbia
>>> # build test data
>>> ibs = wbia.opendb('testdb1')
>>> # Reset and compute imagesets
>>> ibs.delete_all_imagesets()
>>> ibs.compute_occurrences(config={'use_gps': False, 'seconds_thresh': 600})
>>> imgsetid_list = ibs.get_valid_imgsetids()
>>> gids_list = ibs.get_imageset_gids(imgsetid_list)
>>> assert len(imgsetid_list) == 2, 'bad len %r' % (len(imgsetid_list),)
>>> assert len(gids_list) == 2, 'bad len %r' % (len(gids_list),)
>>> assert len(gids_list[0]) == 7, 'bad len %r' % (len(gids_list[0]),)
>>> assert len(gids_list[1]) == 6, 'bad len %r' % (len(gids_list[1]),)
>>> # Add imageset 2 gids to imageset 1 so an image belongs to multiple imagesets
>>> imgset2_gids = gids_list[1][0:1]
>>> imgset1_imgsetids = imgsetid_list[0:1]
>>> ibs.add_image_relationship(imgset2_gids, imgset1_imgsetids)
>>> # Now delete the image from the imageset 2
>>> imgset2_imgsetids = imgsetid_list[1:2]
>>> # execute function
>>> ibs.unrelate_images_and_imagesets(imgset2_gids, imgset2_imgsetids)
>>> # verify results
>>> ibs.print_egpairs_table()
>>> imgsetid_list_ = ibs.get_valid_imgsetids()
>>> gids_list_ = ibs.get_imageset_gids(imgsetid_list_)
>>> result = str(gids_list_)
>>> print(result)
>>> # imgset2_gids should now only be in imageset1
>>> assert imgset2_gids[0] in gids_list_[0], 'imgset2_gids should now only be in imageset1'
>>> assert imgset2_gids[0] not in gids_list_[1], 'imgset2_gids should now only be in imageset1'

wbia.control.manual_image_funcs module

Functions for images and encoutners that will be injected into an IBEISController instance.

CommandLine:

# Autogenerate ImageSet Functions # key should be the table name # the write flag makes a file, but dont use that python -m wbia.templates.template_generator –key image –onlyfn python -m wbia.templates.template_generator –key image –fnfilt timedelta_posix –modfname manual_image_funcs # NOQA python -m wbia.templates.template_generator –key image –fnfilt location –modfname manual_image_funcs # NOQA python -m wbia.templates.template_generator –key image –fnfilt set_.*time –modfname manual_image_funcs # NOQA

image_timedelta_posix

wbia.control.manual_image_funcs.add_images(ibs, gpath_list, params_list=None, as_annots=False, auto_localize=None, location_for_names=None, ensure_unique=False, ensure_loadable=True, ensure_exif=True, **kwargs)[source]

Adds a list of image paths to the database.

Initially we set the image_uri to exactely the given gpath. Later we change the uri, but keeping it the same here lets us process images asychronously.

Parameters
  • gpath_list (list) – list of image paths to add

  • params_list (list) – metadata list for corresponding images that can either be specified outright or can be parsed from the image data directly if None

  • as_annots (bool) – if True, an annotation is automatically added for the entire image

  • auto_localize (bool) – if None uses the default specified in ibs.cfg

  • ensure (bool) – check to see if the images exist on a *NIX system. Defaults to True

Returns

gids are image rowids

Return type

gid_list (list of rowids)

RESTful:

Method: POST URL: /api/image/

CommandLine:

python -m wbia.control.manual_image_funcs –test-add_images

Doctest:
>>> # Test returns None on fail to add
>>> from wbia.control.manual_image_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb('testdb1')
>>> gpath_list = ['doesnotexist.jpg']
>>> assert not ut.checkpath(gpath_list[0])
>>> gid_list = ibs.add_images(gpath_list)
>>> assert len(gid_list) == len(gpath_list)
>>> assert gid_list[0] is None
Doctest:
>>> # FIXME failing-test (22-Jul-2020) This test is failing and it's not clear how to fix it
>>> # xdoctest: +SKIP
>>> # test double add
>>> from wbia.control.manual_image_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb('testdb1')
>>> new_gpath_list = [ut.grab_test_imgpath('carl.jpg')]
>>> new_gids1 = ibs.add_images(new_gpath_list, auto_localize=False)
>>> new_gids2 = ibs.add_images(new_gpath_list, auto_localize=False)
>>> #new_gids2 = ibs.add_images(new_gpath_list, auto_localize=True)
>>> assert new_gids1 == new_gids2, 'should be the same'
>>> new_gpath_list2 = ibs.get_image_paths(new_gids1)
>>> assert new_gpath_list == new_gpath_list2, 'should not move when autolocalize is False'
>>> # Clean things up
>>> ibs.delete_images(new_gids1)
wbia.control.manual_image_funcs.compute_image_uuids(ibs, gpath_list, **kwargs)[source]
wbia.control.manual_image_funcs.delete_image_thumbs(ibs, gid_list, **config2_)[source]

Removes image thumbnails from disk

RESTful:

Method: DELETE URL: /api/image/thumb/

Ignore:
>>> # UNPORTED_DOCTEST
>>> gpath_list = ut.get_test_gpaths(ndata=None)[0:4]
>>> gid_list = ibs.add_images(gpath_list)
>>> bbox_list = [(0, 0, 100, 100)] * len(gid_list)
>>> name_list = ['a', 'b', 'a', 'd']
>>> aid_list = ibs.add_annots(gid_list, bbox_list=bbox_list,
>>>                           name_list=name_list)
>>> assert len(aid_list) != 0, "No annotations added"
>>> thumbpath_list = ibs.get_image_thumbpath(gid_list)
>>> gpath_list = ibs.get_image_paths(gid_list)
>>> ibs.delete_image_thumbs(gid_list)
>>> assert utool.is_list(thumbpath_list), "thumbpath_list is not a list"
>>> assert utool.is_list(gpath_list), "gpath_list is not a list"
>>> for path in thumbpath_list:
>>>     assert not utool.checkpath(path), "Thumbnail not deleted"
>>> for path in gpath_list:
>>>     utool.assertpath(path)
wbia.control.manual_image_funcs.delete_images(ibs, gid_list, trash_images=True)[source]

deletes images from the database that belong to gids

RESTful:

Method: DELETE URL: /api/image/

Ignore:
>>> # UNPORTED_DOCTEST
>>> gpath_list = ut.get_test_gpaths(ndata=None)[0:4]
>>> gid_list = ibs.add_images(gpath_list)
>>> bbox_list = [(0, 0, 100, 100)] * len(gid_list)
>>> name_list = ['a', 'b', 'a', 'd']
>>> aid_list = ibs.add_annots(gid_list, bbox_list=bbox_list, name_list=name_list)
>>> gid = gid_list[0]
>>> assert gid is not None, "gid is None"
>>> aid_list = ibs.get_image_aids(gid)
>>> assert len(aid_list) == 1, "Length of aid_list=%r" % (len(aid_list),)
>>> aid = aid_list[0]
>>> assert aid is not None, "aid is None"
>>> cid = ibs.get_annot_chip_rowids(aid, ensure=False)
>>> fid = ibs.get_annot_feat_rowids(aid, ensure=False)
>>> assert cid is None, "cid=%r should be None" % (cid,)
>>> assert fid is None, "fid=%r should be None" % (fid,)
>>> cid = ibs.get_annot_chip_rowids(aid, ensure=True)
>>> fid = ibs.get_annot_feat_rowids(aid, ensure=True)
>>> assert cid is not None, "cid should be computed"
>>> assert fid is not None, "fid should be computed"
>>> gthumbpath = ibs.get_image_thumbpath(gid)
>>> athumbpath = ibs.get_annot_chip_thumbpath(aid)
>>> ibs.delete_images(gid)
>>> all_gids = ibs.get_valid_gids()
>>> all_aids = ibs.get_valid_aids()
>>> all_cids = ibs.get_valid_cids()
>>> all_fids = ibs.get_valid_fids()
>>> assert gid not in all_gids, "gid still exists"
>>> assert aid not in all_aids, "rid %r still exists" % aid
>>> assert fid not in all_fids, "fid %r still exists" % fid
>>> assert cid not in all_cids, "cid %r still exists" % cid
>>> assert not utool.checkpath(gthumbpath), "Thumbnail still exists"
>>> assert not utool.checkpath(athumbpath), "ANNOTATION Thumbnail still exists"
wbia.control.manual_image_funcs.get_image_aids(ibs, gid_list, is_staged=False)[source]
Returns

a list of aids for each image by gid

Return type

list_ (list)

Parameters
  • ibs (IBEISController) – wbia controller object

  • gid_list (list) –

Returns

aids_list

Return type

list

CommandLine:

python -m wbia.control.manual_image_funcs –test-get_image_aids

RESTful:

Method: GET URL: /api/image/annot/rowid/

Example

>>> # DISABLE_DOCTEST
>>> from wbia.control.manual_image_funcs import *  # NOQA
>>> import wbia
>>> # build test data
>>> ibs = wbia.opendb('testdb1')
>>> gid_list = ibs.get_annot_gids(ibs.get_valid_aids())
>>> gid_list = gid_list + gid_list[::5]
>>> # execute function
>>> aids_list = get_image_aids(ibs, gid_list)
>>> # verify results
>>> result = str(aids_list)
>>> print(result)
[[1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12], [13], [1], [6], [11]]
Ignore:

logger.info(‘len(gid_list) = %r’ % (len(gid_list),)) logger.info(‘len(input_list) = %r’ % (len(input_list),)) logger.info(‘len(pair_list) = %r’ % (len(pair_list),)) logger.info(‘len(aidscol) = %r’ % (len(aidscol),)) logger.info(‘len(gidscol) = %r’ % (len(gidscol),)) logger.info(‘len(unique_gids) = %r’ % (len(unique_gids),))

wbia.control.manual_image_funcs.get_image_aids_of_species(ibs, gid_list, species=None)[source]
Returns

a list of aids for each image by gid filtered by species

Return type

list_ (list)

RESTful:

Method: GET URL: /api/image/annot/rowid/species/

wbia.control.manual_image_funcs.get_image_annot_uuids(ibs, gid_list)[source]
wbia.control.manual_image_funcs.get_image_annot_uuids_of_species(ibs, gid_list, **kwargs)[source]
wbia.control.manual_image_funcs.get_image_cameratrap(ibs, gid_list)[source]
wbia.control.manual_image_funcs.get_image_contributor_rowid(ibs, gid_list, eager=True, nInput=None)[source]

contributor_rowid_list <- image.contributor_rowid[gid_list]

gets data from the “native” column “contributor_rowid” in the “image” table

Parameters

gid_list (list) –

Returns

contributor_rowid_list - list of image contributor rowids by gid

Return type

list

TemplateInfo:

Tgetter_table_column col = contributor_rowid tbl = image

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_image_funcs import *  # NOQA
>>> ibs, config2_ = testdata_ibs()
>>> gid_list = ibs._get_all_image_rowids()
>>> eager = True
>>> contributor_rowid_list = ibs.get_image_contributor_rowid(gid_list, eager=eager)
>>> assert len(gid_list) == len(contributor_rowid_list)
wbia.control.manual_image_funcs.get_image_contributor_tag(ibs, gid_list, eager=True, nInput=None)[source]

contributor_tag_list <- image.contributor_tag[gid_list]

Parameters

gid_list (list) –

Returns

contributor_tag_list

Return type

list

TemplateInfo:

Tgetter_extern tbl = image externtbl = contributor externcol = contributor_tag

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_image_funcs import *  # NOQA
>>> ibs, config2_ = testdata_ibs()
>>> gid_list = ibs._get_all_image_rowids()
>>> eager = True
>>> contributor_tag_list = ibs.get_image_contributor_tag(gid_list, eager=eager)
>>> assert len(gid_list) == len(contributor_tag_list)
wbia.control.manual_image_funcs.get_image_datetime(ibs, gid_list, **kwargs)[source]
wbia.control.manual_image_funcs.get_image_datetime_str(ibs, gid_list, **kwargs)[source]
wbia.control.manual_image_funcs.get_image_detect_confidence(ibs, gid_list)[source]
Returns

image detection confidence as the max of ANNOTATION confidences

Return type

list_ (list)

RESTful:

Method: GET URL: /api/image/detect/confidence/

wbia.control.manual_image_funcs.get_image_detectpaths(ibs, gid_list)[source]
Returns

a list of image paths resized to a constant area for detection

Return type

list_ (list)

wbia.control.manual_image_funcs.get_image_enabled(ibs, gid_list)[source]
Returns

“Image Enabled” flag, true if the image is enabled

Return type

list_ (list)

wbia.control.manual_image_funcs.get_image_exif_original(ibs, gid_list)[source]
wbia.control.manual_image_funcs.get_image_exts(ibs, gid_list)[source]
Returns

a list of image uuids by gid

Return type

list_ (list)

wbia.control.manual_image_funcs.get_image_gid(ibs, gid_list, eager=True, nInput=None)[source]

self verifier

CommandLine:

python -m wbia.control.manual_image_funcs –exec-get_image_gid

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.IBEISControl import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb('testdb1')
>>> gid_list = ibs.get_valid_gids() + [None, -1, 10434320432]
>>> gid_list_ = ibs.get_image_gid(gid_list)
>>> assert [r is None for r in gid_list_[-3:]]
>>> assert [r is not None for r in gid_list_[0:-3]]
>>> print('gid_list_ = %r' % (gid_list_,))
wbia.control.manual_image_funcs.get_image_gids_from_uuid(ibs, uuid_list)[source]
Returns

a list of original image names

Return type

list_ (list)

RESTful:

Method: GET URL: /api/image/rowid/uuid/

wbia.control.manual_image_funcs.get_image_gids_with_aids(ibs, gid_list=None)[source]
wbia.control.manual_image_funcs.get_image_gnames(ibs, gid_list)[source]
Parameters

gid_list (list) –

Returns

gname_list - a list of original image names

Return type

list

CommandLine:

python -m wbia.control.manual_image_funcs –test-get_image_gnames

RESTful:

Method: GET URL: /api/image/file/name/

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_image_funcs import *  # NOQA
>>> import wbia
>>> # build test data
>>> ibs = wbia.opendb('testdb1')
>>> gid_list = ibs.get_valid_gids()
>>> # execute function
>>> gname_list = get_image_gnames(ibs, gid_list)
>>> # verify results
>>> result = ut.repr2(gname_list, nl=1)
>>> print(result)
[
    'easy1.JPG',
    'easy2.JPG',
    'easy3.JPG',
    'hard1.JPG',
    'hard2.JPG',
    'hard3.JPG',
    'jeff.png',
    'lena.jpg',
    'occl1.JPG',
    'occl2.JPG',
    'polar1.jpg',
    'polar2.jpg',
    'zebra.jpg',
]
wbia.control.manual_image_funcs.get_image_gps(ibs, gid_list)[source]
Returns

-1 if no timedata exists for a given gid

Return type

gps_list (list)

RESTful:

Method: GET URL: /api/image/gps/

wbia.control.manual_image_funcs.get_image_gps2(ibs, gid_list)[source]

Like get_image_gps, but fixes the SQL problem where -1 indicates a nan value.

Returns

-1 if no timedata exists for a given gid

Return type

gps_list (list)

RESTful:

Method: GET URL: /api/image/gps/

wbia.control.manual_image_funcs.get_image_hash(ibs, gid_list=None, algo='md5')[source]
Parameters
  • ibs (IBEISController) – wbia controller object

  • gid_list (list) – a list of image absolute paths to img_dir

Returns

hash_list

Return type

list

CommandLine:

python -m wbia.control.manual_image_funcs –test-get_image_hash

RESTful:

Method: GET URL: /api/image/file/hash/

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_image_funcs import *  # NOQA
>>> import wbia
>>> # build test data
>>> ibs = wbia.opendb('testdb1')
>>> gid_list = ibs.get_valid_gids()[:1]
>>> image_path = ibs.get_image_paths(gid_list)
>>> print('Hashing: %r' % (image_path, ))
>>> hash_list = ibs.get_image_hash(gid_list, algo='md5')
>>> assert hash_list[0] in ['56498e54b5ebbcbbcff60c91a135e8a3', 'ab31dc5e1355247a0ea5ec940802a468'], 'Found %r' % (hash_list, )
>>> hash_list = ibs.get_image_hash(gid_list, algo='sha1')
>>> assert hash_list[0] in ['277e8dac1e5929c097f3fcbca2c77d92e1401d5f', '66ec193a1619b3b6216d1784b4833b6194b13384'], 'Found %r' % (hash_list, )
>>> hash_list = ibs.get_image_hash(gid_list, algo='sha256')
>>> assert hash_list[0] in ['ca03a0d7427c3d2f02e62e157e8d8ea5b7284be67ca67fc391a5747368d3ab0e', 'fd09d22ec18c32d9db2cd026a9511ab228aadf0e5f7271760413448ddd16d483'], 'Found %r' % (hash_list, )
>>> hash_list = ibs.get_image_hash(gid_list, algo='sha512')
>>> assert hash_list[0] in ['7b43dbc709a8cf903170b414f48a0bb7b569b703d9393c20a2cff95c42fd252ed2098bc56cba8eed393bcdf3388e55eee917908c6b0d1b4bc78cf76b1e918d99', '81d1d8ee4c8640b9aad26e4cc03536ed30a43b69e166748ec940a8f00e4776be93f4ac6367a06d92b772a9a60dc104c6f999e7197c2584fdc4cffcac2da71506'], 'Found %r' % (hash_list, )
wbia.control.manual_image_funcs.get_image_heights(ibs, gid_list)[source]
Returns

a list of (width, height) tuples

Return type

list_ (list)

RESTful:

Method: GET URL: /api/image/height/

wbia.control.manual_image_funcs.get_image_imagesettext(ibs, gid_list)[source]
Returns

a list of imagesettexts for each image by gid

Return type

list_ (list)

RESTful:

Method: GET URL: /api/image/imageset/text/

wbia.control.manual_image_funcs.get_image_imgdata(ibs, gid_list, ignore_orient=False, **kwargs)[source]

alias for get_images with standardized name

wbia.control.manual_image_funcs.get_image_imgset_uuids(ibs, gid_list)[source]
wbia.control.manual_image_funcs.get_image_imgsetids(ibs, gid_list)[source]
Returns

a list of imageset ids for each image by gid

Return type

list_ (list)

RESTful:

Method: GET URL: /api/image/imageset/rowid/

wbia.control.manual_image_funcs.get_image_lat(ibs, gid_list)[source]
RESTful:

Method: GET URL: /api/image/lat/

wbia.control.manual_image_funcs.get_image_location_codes(ibs, gid_list, eager=True)[source]

image_location_code_list <- image.image_location_code[gid_list]

gets data from the “native” column “image_location_code” in the “image” table

Parameters

gid_list (list) –

Returns

image_location_code_list

Return type

list

TemplateInfo:

Tgetter_table_column col = image_location_code tbl = image

RESTful:

Method: GET URL: /api/image/location/code/

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_image_funcs import *  # NOQA
>>> ibs, config2_ = testdata_ibs()
>>> gid_list = ibs._get_all_image_rowids()
>>> eager = True
>>> image_location_code_list = ibs.get_image_location_codes(gid_list, eager=eager)
>>> assert len(gid_list) == len(image_location_code_list)
wbia.control.manual_image_funcs.get_image_lon(ibs, gid_list)[source]
RESTful:

Method: GET URL: /api/image/lon/

wbia.control.manual_image_funcs.get_image_metadata(ibs, gid_list, return_raw=False)[source]
Returns

image metadata dictionary

Return type

list_ (list)

RESTful:

Method: GET URL: /api/image/metadata/

wbia.control.manual_image_funcs.get_image_missing_uuid(ibs, uuid_list)[source]
Returns

a list of missing image uuids

Return type

list_ (list)

wbia.control.manual_image_funcs.get_image_name_uuids(ibs, gid_list)[source]
Parameters
  • ibs (IBEISController) – wbia controller object

  • gid_list (list) –

Returns

name_uuids_list - the name uuids associated with an image id

Return type

list

CommandLine:

python -m wbia.control.manual_image_funcs –test-get_image_nids

RESTful:

Method: GET URL: /api/image/name/uuid/

wbia.control.manual_image_funcs.get_image_nids(ibs, gid_list)[source]
Parameters
  • ibs (IBEISController) – wbia controller object

  • gid_list (list) –

Returns

nids_list - the name ids associated with an image id

Return type

list

CommandLine:

python -m wbia.control.manual_image_funcs –test-get_image_nids

RESTful:

Method: GET URL: /api/image/name/rowid/

Example

>>> # DISABLE_DOCTEST
>>> from wbia.control.manual_image_funcs import *  # NOQA
>>> import wbia
>>> # build test data
>>> ibs = wbia.opendb('testdb1')
>>> gid_list = ibs.get_valid_gids()
>>> # execute function
>>> nids_list = ibs.get_image_nids(gid_list)
>>> # verify results
>>> result = str(nids_list)
>>> print(result)
wbia.control.manual_image_funcs.get_image_notes(ibs, gid_list)[source]
Returns

image notes

Return type

list_ (list)

RESTful:

Method: GET URL: /api/image/note/

wbia.control.manual_image_funcs.get_image_num_annotations(ibs, gid_list)[source]
Returns

the number of chips in each image

Return type

list_ (list)

RESTful:

Method: GET URL: /api/image/num/annot/

wbia.control.manual_image_funcs.get_image_orientation(ibs, gid_list)[source]
RESTful:

Method: GET URL: /api/image/orientation/

wbia.control.manual_image_funcs.get_image_orientation_str(ibs, gid_list)[source]
RESTful:

Method: GET URL: /api/image/orientation/str/

wbia.control.manual_image_funcs.get_image_party_rowids(ibs, gid_list, eager=True, nInput=None)[source]

party_rowid_list <- image.party_rowid[gid_list]

gets data from the “native” column “party_rowid” in the “image” table

Parameters

gid_list (list) –

Returns

party_rowid_list

Return type

list

TemplateInfo:

Tgetter_table_column col = party_rowid tbl = image

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_image_funcs import *  # NOQA
>>> ibs, config2_ = testdata_ibs()
>>> gid_list = ibs._get_all_image_rowids()
>>> eager = True
>>> party_rowid_list = ibs.get_image_party_rowids(gid_list, eager=eager)
>>> assert len(gid_list) == len(party_rowid_list)
wbia.control.manual_image_funcs.get_image_party_tag(ibs, gid_list, eager=True, nInput=None)[source]

party_tag_list <- image.party_tag[gid_list]

Parameters

gid_list (list) –

Returns

party_tag_list

Return type

list

TemplateInfo:

Tgetter_extern tbl = image externtbl = party externcol = party_tag

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_image_funcs import *  # NOQA
>>> ibs, config2_ = testdata_ibs()
>>> gid_list = ibs._get_all_image_rowids()
>>> eager = True
>>> party_tag_list = ibs.get_image_party_tag(gid_list, eager=eager)
>>> assert len(gid_list) == len(party_tag_list)
wbia.control.manual_image_funcs.get_image_paths(ibs, gid_list)[source]
Parameters
  • ibs (IBEISController) – wbia controller object

  • gid_list (list) – a list of image absolute paths to img_dir

Returns

gpath_list

Return type

list

CommandLine:

python -m wbia.control.manual_image_funcs –test-get_image_paths

RESTful:

Method: GET URL: /api/image/file/path/

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_image_funcs import *  # NOQA
>>> import wbia
>>> # build test data
>>> ibs = wbia.opendb('testdb1')
>>> #gid_list = ibs.get_valid_gids()
>>> #gpath_list = get_image_paths(ibs, gid_list)
>>> new_gpath = ut.unixpath(ut.grab_test_imgpath('carl.jpg'))
>>> gid_list = ibs.add_images([new_gpath], auto_localize=False)
>>> new_gpath_list = get_image_paths(ibs, gid_list)
>>> ut.assert_eq(new_gpath, new_gpath_list[0])
>>> result = str(new_gpath_list)
>>> ibs.delete_images(gid_list)
>>> print(result)
wbia.control.manual_image_funcs.get_image_reviewed(ibs, gid_list)[source]
Returns

“All Instances Found” flag, true if all objects of interest

Return type

list_ (list)

(animals) have an ANNOTATION in the image

RESTful:

Method: GET URL: /api/image/reviewed/

wbia.control.manual_image_funcs.get_image_sizes(ibs, gid_list)[source]
Returns

a list of (width, height) tuples

Return type

list_ (list)

RESTful:

Method: GET URL: /api/image/size/

wbia.control.manual_image_funcs.get_image_species_rowids(ibs, gid_list)[source]
Returns

the name ids associated with an image id

Return type

list_ (list)

RESTful:

Method: GET URL: /api/image/species/rowid/

wbia.control.manual_image_funcs.get_image_species_uuids(ibs, gid_list)[source]
Returns

the name ids associated with an image id

Return type

list_ (list)

RESTful:

Method: GET URL: /api/image/species/uuid/

wbia.control.manual_image_funcs.get_image_thumbnail(ibs, gid_list, **config)[source]
Returns

the thumbnail path of each gid

Return type

list_ (list)

wbia.control.manual_image_funcs.get_image_thumbpath(ibs, gid_list, ensure_paths=False, **config)[source]
Returns

the thumbnail path of each gid

Return type

list_ (list)

wbia.control.manual_image_funcs.get_image_thumbtup(ibs, gid_list, **kwargs)[source]
Returns

thumbtup_list - [(thumb_path, img_path, imgsize, bboxes, thetas)]

Return type

list

wbia.control.manual_image_funcs.get_image_timedelta_posix(ibs, gid_list, eager=True)[source]

image_timedelta_posix_list <- image.image_timedelta_posix[gid_list]

# TODO: INTEGRATE THIS FUNCTION. CURRENTLY OFFSETS ARE ENCODIED DIRECTLY IN UNIXTIME

gets data from the “native” column “image_timedelta_posix” in the “image” table

Parameters

gid_list (list) –

Returns

image_timedelta_posix_list

Return type

list

TemplateInfo:

Tgetter_table_column col = image_timedelta_posix tbl = image

RESTful:

Method: GET URL: /api/image/timedelta/posix/

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_image_funcs import *  # NOQA
>>> ibs, config2_ = testdata_ibs()
>>> gid_list = ibs._get_all_image_rowids()
>>> eager = True
>>> image_timedelta_posix_list = ibs.get_image_timedelta_posix(gid_list, eager=eager)
>>> assert len(gid_list) == len(image_timedelta_posix_list)
wbia.control.manual_image_funcs.get_image_unixtime(ibs, gid_list, timedelta_correction=True)[source]
Returns

a list of times that the images were taken by gid.

Return type

list_ (list)

Returns

-1 if no timedata exists for a given gid

Return type

list_ (list)

RESTful:

Method: GET URL: /api/image/unixtime/

wbia.control.manual_image_funcs.get_image_unixtime2(ibs, gid_list, **kwargs)[source]

alias for get_image_unixtime_asfloat

wbia.control.manual_image_funcs.get_image_unixtime_asfloat(ibs, gid_list, **kwargs)[source]
Returns

a list of times that the images were taken by gid.

Return type

list_ (list)

Returns

np.nan if no timedata exists for a given gid

Return type

list_ (list)

wbia.control.manual_image_funcs.get_image_uris(ibs, gid_list)[source]
Returns

a list of image uris relative to the image dir by gid

Return type

list_ (list)

RESTful:

Method: GET URL: /api/image/uri/

wbia.control.manual_image_funcs.get_image_uris_original(ibs, gid_list)[source]
Returns

a list of (original) image uris relative to the image dir by gid

Return type

list_ (list)

RESTful:

Method: GET URL: /api/image/uri/original/

wbia.control.manual_image_funcs.get_image_uuids(ibs, gid_list)[source]
Returns

a list of image uuids by gid

Return type

list_ (list)

Parameters
  • ibs (IBEISController) – wbia controller object

  • gid_list (list) –

Returns

image_uuid_list

Return type

list

CommandLine:

python -m wbia.control.manual_image_funcs –test-get_image_uuids

RESTful:

Method: GET URL: /api/image/uuid/

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_image_funcs import *  # NOQA
>>> import wbia
>>> # build test data
>>> ibs = wbia.opendb('testdb1')
>>> gid_list = ibs.get_valid_gids()
>>> # execute function
>>> image_uuid_list = ibs.get_image_uuids(gid_list)
>>> # verify results
>>> result = ut.repr2(image_uuid_list, nl=1)
>>> print(result)
[
    UUID('66ec193a-1619-b3b6-216d-1784b4833b61'),
    UUID('d8903434-942f-e0f5-d6c2-0dcbe3137bf7'),
    UUID('b73b72f4-4acb-c445-e72c-05ce02719d3d'),
    UUID('0cd05978-3d83-b2ee-2ac9-798dd571c3b3'),
    UUID('0a9bc03d-a75e-8d14-0153-e2949502aba7'),
    UUID('2deeff06-5546-c752-15dc-2bd0fdb1198a'),
    UUID('68ca272d-26f7-1dbb-76e9-08d192c1a4a7'),
    UUID('42fdad98-369a-2cbc-67b1-983d6d6a3a60'),
    UUID('c459d381-fd74-1d99-6215-e42e3f432ea9'),
    UUID('33fd9813-3a2b-774b-3fcc-4360d1ae151b'),
    UUID('97e8ea74-873f-2092-b372-f928a7be30fa'),
    UUID('588bc218-83a5-d400-21aa-d499832632b0'),
    UUID('163a890c-36f2-981e-3529-c552b6d668a3'),
]
wbia.control.manual_image_funcs.get_image_widths(ibs, gid_list)[source]
Returns

a list of (width, height) tuples

Return type

list_ (list)

RESTful:

Method: GET URL: /api/image/width/

wbia.control.manual_image_funcs.get_images(ibs, gid_list, ignore_orient=False, **kwargs)[source]
Returns

a list of images in numpy matrix form by gid

Return type

list_ (list)

Parameters
  • ibs (IBEISController) – wbia controller object

  • gid_list (list) –

Returns

image_list

Return type

list

CommandLine:

python -m wbia.control.manual_image_funcs –test-get_images

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_image_funcs import *  # NOQA
>>> import wbia
>>> # build test data
>>> ibs = wbia.opendb('testdb1')
>>> gid_list = ibs.get_valid_gids()[0:1]
>>> # execute function
>>> image_list = get_images(ibs, gid_list)
>>> # verify results
>>> result = str(image_list[0].shape)
>>> print(result)
(715, 1047, 3)
wbia.control.manual_image_funcs.get_num_images(ibs, **kwargs)[source]

Number of valid images

wbia.control.manual_image_funcs.get_valid_gids(ibs, imgsetid=None, imgsetid_list=(), require_unixtime=False, require_gps=None, reviewed=None, **kwargs)[source]
Parameters
  • ibs (IBEISController) – wbia controller object

  • imgsetid (None) –

  • require_unixtime (bool) –

  • reviewed (None) –

Returns

gid_list

Return type

list

CommandLine:

python -m wbia.control.manual_image_funcs –test-get_valid_gids

RESTful:

Method: GET URL: /api/image/

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_image_funcs import *  # NOQA
>>> import wbia
>>> # build test data
>>> ibs = wbia.opendb('testdb1')
>>> imgsetid = None
>>> require_unixtime = False
>>> reviewed = None
>>> # execute function
>>> gid_list = get_valid_gids(ibs, imgsetid, require_unixtime, reviewed)
>>> # verify results
>>> result = str(gid_list)
>>> print(result)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
wbia.control.manual_image_funcs.get_valid_image_rowids(ibs, imgsetid=None, require_unixtime=False, reviewed=None)[source]

alias

wbia.control.manual_image_funcs.get_valid_image_uuids(ibs)[source]
Returns

a list of image uuids for all valid gids

Return type

list_ (list)

Parameters

ibs (IBEISController) – wbia controller object

Returns

image_uuid_list

Return type

list

CommandLine:

python -m wbia.control.manual_image_funcs –test-get_image_uuids

wbia.control.manual_image_funcs.image_base64_api(rowid=None, thumbnail=False, fresh=False, **kwargs)[source]

Returns the base64 encoded image of image <rowid>

RESTful:

Method: GET URL: /api/image/<rowid>/

wbia.control.manual_image_funcs.localize_images(ibs, gid_list_=None)[source]

Moves the images into the wbia image cache. Images are renamed to img_uuid.ext

Parameters
  • ibs (IBEISController) – wbia controller object

  • gid_list (list) –

CommandLine:

python -m wbia.control.manual_image_funcs –test-localize_images

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_image_funcs import *  # NOQA
>>> import wbia
>>> import os
>>> # build test data
>>> ibs = wbia.opendb('testdb1')
>>> gpath_list  = [ut.unixpath(ut.grab_test_imgpath('carl.jpg'))]
>>> gid_list_   = ibs.add_images(gpath_list, auto_localize=False)
>>> gpath_list2 = ibs.get_image_paths(gid_list_)
>>> ut.assert_eq(gpath_list, gpath_list2, 'should not move when autolocalize is False')
>>> # execute function
>>> result = localize_images(ibs, gid_list_)
>>> gpath_list3 = ibs.get_image_paths(gid_list_)
>>> assert gpath_list3 != gpath_list2, 'should now be different gpath_list3=%r' % (gpath_list3,)
>>> gpath3 = gpath_list3[0]
>>> rel_gpath3 = ut.relpath_unix(gpath3, ibs.get_workdir())
>>> result = rel_gpath3
>>> print(result)
>>> # Clean things up
>>> paths = ibs.get_image_paths(gid_list_)
>>> ibs.delete_images(gid_list_)
>>> for path in paths:
>>>     assert not os.path.exists(path)
Ignore:

ibs.vd()

wbia.control.manual_image_funcs.set_image_cameratrap(ibs, gid_list, cameratrap_list)[source]

Sets the image all instances found bit

wbia.control.manual_image_funcs.set_image_contributor_rowid(ibs, gid_list, contributor_rowid_list, **kwargs)[source]

Sets the image contributor rowid

wbia.control.manual_image_funcs.set_image_enabled(ibs, gid_list, enabled_list)[source]

Sets the image all instances found bit

wbia.control.manual_image_funcs.set_image_gps(ibs, gid_list, gps_list=None, lat_list=None, lon_list=None)[source]
see get_image_gps for how the gps_list should look.

lat and lon should be given in degrees

RESTful:

Method: PUT URL: /api/image/gps/

wbia.control.manual_image_funcs.set_image_gps_str(ibs, gid_list, gps_str_list)[source]
see get_image_gps for how the gps_list should look.

lat and lon should be given in degrees

RESTful:

Method: PUT URL: /api/image/gps/

wbia.control.manual_image_funcs.set_image_imagesettext(ibs, gid_list, imagesettext_list)[source]

Sets the encoutertext of each image

RESTful:

Method: PUT URL: /api/image/imageset/text/

wbia.control.manual_image_funcs.set_image_imgsetids(ibs, gid_list, imgsetid_list)[source]

Sets the encoutertext of each image

RESTful:

Method: PUT URL: /api/image/imageset/rowid/

wbia.control.manual_image_funcs.set_image_location_codes(ibs, gid_list, image_location_code_list, duplicate_behavior='error')[source]

image_location_code_list -> image.image_location_code[gid_list]

Parameters
  • gid_list

  • image_location_code_list

TemplateInfo:

Tsetter_native_column tbl = image col = image_location_code

RESTful:

Method: PUT URL: /api/image/location/code/

wbia.control.manual_image_funcs.set_image_metadata(ibs, gid_list, metadata_dict_list)[source]

Sets the image’s metadata using a metadata dictionary

RESTful:

Method: PUT URL: /api/image/metadata/

CommandLine:

python -m wbia.control.manual_image_funcs –test-set_image_metadata

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_image_funcs import *  # NOQA
>>> import wbia
>>> import random
>>> # build test data
>>> ibs = wbia.opendb('testdb1')
>>> gid_list = ibs.get_valid_gids()[0:1]
>>> metadata_dict_list = [
>>>     {'test': random.uniform(0.0, 1.0)},
>>> ]
>>> print(ut.repr2(metadata_dict_list))
>>> ibs.set_image_metadata(gid_list, metadata_dict_list)
>>> # verify results
>>> metadata_dict_list_ = ibs.get_image_metadata(gid_list)
>>> print(ut.repr2(metadata_dict_list_))
>>> assert metadata_dict_list == metadata_dict_list_
>>> metadata_str_list = [ut.to_json(metadata_dict) for metadata_dict in metadata_dict_list]
>>> print(ut.repr2(metadata_str_list))
>>> metadata_str_list_ = ibs.get_image_metadata(gid_list, return_raw=True)
>>> print(ut.repr2(metadata_str_list_))
>>> assert metadata_str_list == metadata_str_list_
wbia.control.manual_image_funcs.set_image_notes(ibs, gid_list, notes_list)[source]

Sets the image all instances found bit

RESTful:

Method: PUT URL: /api/image/note/

wbia.control.manual_image_funcs.set_image_orientation(ibs, gid_list, orientation_list)[source]
RESTful:

Method: PUT URL: /api/image/orientation/

wbia.control.manual_image_funcs.set_image_party_rowids(ibs, gid_list, party_rowid_list, duplicate_behavior='error')[source]

party_rowid_list -> image.party_rowid[gid_list]

Parameters
  • gid_list

  • party_rowid_list

TemplateInfo:

Tsetter_native_column tbl = image col = party_rowid

wbia.control.manual_image_funcs.set_image_reviewed(ibs, gid_list, reviewed_list)[source]

Sets the image all instances found bit

RESTful:

Method: PUT URL: /api/image/reviewed/

wbia.control.manual_image_funcs.set_image_time_posix(ibs, gid_list, image_time_posix_list, duplicate_behavior='error')[source]

image_time_posix_list -> image.image_time_posix[gid_list]

SeeAlso:

set_image_unixtime

Parameters
  • gid_list

  • image_time_posix_list

TemplateInfo:

Tsetter_native_column tbl = image col = image_time_posix

RESTful:

Method: PUT URL: /api/image/time/posix/

wbia.control.manual_image_funcs.set_image_timedelta_posix(ibs, gid_list, image_timedelta_posix_list, duplicate_behavior='error')[source]

image_timedelta_posix_list -> image.image_timedelta_posix[gid_list]

Parameters
  • gid_list

  • image_timedelta_posix_list

TemplateInfo:

Tsetter_native_column tbl = image col = image_timedelta_posix

RESTful:

Method: PUT URL: /api/image/timedelta/posix/

wbia.control.manual_image_funcs.set_image_unixtime(ibs, gid_list, unixtime_list, duplicate_behavior='error')[source]
Sets the image unixtime (does not modify exif yet)

alias for set_image_time_posix

RESTful:

Method: PUT URL: /api/image/unixtime/

CommandLine:

python -m wbia.control.manual_image_funcs –test-set_image_unixtime

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_image_funcs import *  # NOQA
>>> import wbia
>>> import random
>>> import time
>>> # build test data
>>> ibs = wbia.opendb('testdb1')
>>> gid_list = ibs.get_valid_gids()[0:5]
>>> unixtime_list = [
>>>     random.randint(1, int(time.time()))
>>>     for _ in gid_list
>>> ]
>>> print(ut.repr2(unixtime_list))
>>> ibs.set_image_unixtime(gid_list, unixtime_list)
>>> # verify results
>>> unixtime_list_ = ibs.get_image_unixtime(gid_list)
>>> print(ut.repr2(unixtime_list_))
>>> assert unixtime_list == unixtime_list_

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_image_funcs import *  # NOQA
>>> import wbia
>>> import random
>>> import time
>>> # build test data
>>> ibs = wbia.opendb('testdb1')
>>> gid_list = ibs.get_valid_gids()[0:5]
>>> gid_list = gid_list + gid_list
>>> unixtime_list = [
>>>     random.randint(1, int(time.time()))
>>>     for _ in gid_list
>>> ]
>>> try:
>>>     print(ut.repr2(unixtime_list))
>>>     ibs.set_image_unixtime(gid_list, unixtime_list)
>>> except AssertionError:
>>>     pass

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_image_funcs import *  # NOQA
>>> import wbia
>>> import random
>>> import time
>>> # build test data
>>> ibs = wbia.opendb('testdb1')
>>> gid_list = ibs.get_valid_gids()[0:5]
>>> unixtime_list = [
>>>     random.randint(1, int(time.time()))
>>>     for _ in gid_list
>>> ]
>>> gid_list = gid_list + gid_list
>>> unixtime_list = unixtime_list + unixtime_list
>>> print(ut.repr2(unixtime_list))
>>> ibs.set_image_unixtime(gid_list, unixtime_list)
>>> # verify results
>>> unixtime_list_ = ibs.get_image_unixtime(gid_list)
>>> print(ut.repr2(unixtime_list_))
>>> assert unixtime_list == unixtime_list_
wbia.control.manual_image_funcs.set_image_uris(ibs, gid_list, new_gpath_list)[source]

Sets the image URIs to a new local path. This is used when localizing or unlocalizing images. An absolute path can either be on this machine or on the cloud A relative path is relative to the wbia image cache on this machine.

RESTful:

Method: PUT URL: /api/image/uri/

wbia.control.manual_image_funcs.set_image_uris_original(ibs, gid_list, new_gpath_list, overwrite=False)[source]

Sets the (original) image URIs to a new local path.

Parameters

overwrite (bool) – If overwrite, replace the information in the database. This ensures that original uris cannot be accidentally overwritten. Defaults to False.

RESTful:

Method: PUT URL: /api/image/uri/original/

wbia.control.manual_image_funcs.testdata_ibs()[source]
wbia.control.manual_image_funcs.update_image_rotate_180(ibs, gid_list)[source]
wbia.control.manual_image_funcs.update_image_rotate_90(ibs, gid_list, direction)[source]
wbia.control.manual_image_funcs.update_image_rotate_left_90(ibs, gid_list)[source]
wbia.control.manual_image_funcs.update_image_rotate_right_90(ibs, gid_list)[source]

wbia.control.manual_imageset_funcs module

wbia.control.manual_imageset_funcs.add_imagesets(ibs, imagesettext_list, imageset_uuid_list=None, notes_list=None, occurence_flag_list=None)[source]

Adds a list of imagesets.

Parameters
  • imagesettext_list (list) –

  • imageset_uuid_list (list) –

  • notes_list (list) –

Returns

added imageset rowids

Return type

imgsetid_list (list)

RESTful:

Method: POST URL: /api/imageset/

wbia.control.manual_imageset_funcs.delete_imagesets(ibs, imgsetid_list)[source]

Removes imagesets and thier relationships (images are not effected)

RESTful:

Method: DELETE URL: /api/imageset/

wbia.control.manual_imageset_funcs.get_imageset_aids(ibs, imgsetid_list)[source]
Returns

a list of list of aids in each imageset

Return type

aids_list (list)

RESTful:

Method: GET URL: /api/imageset/annot/rowid/

Parameters
  • ibs (IBEISController) – wbia controller object

  • imgsetid_list (list) –

Returns

aids_list

Return type

list

CommandLine:

python -m wbia.control.manual_imageset_funcs –test-get_imageset_aids

Example

>>> # DISABLE_DOCTEST
>>> from wbia.control.manual_imageset_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb(defaultdb='testdb1')
>>> ibs.delete_imagesets(ibs.get_valid_imgsetids())
>>> ibs.compute_occurrences(config={'use_gps': False, 'seconds_thresh': 600})
>>> imgsetid_list = ibs.get_valid_imgsetids()
>>> aids_list = get_imageset_aids(ibs, imgsetid_list)
>>> result = ('aids_list = %s' % (str(aids_list),))
>>> print(result)
wbia.control.manual_imageset_funcs.get_imageset_custom_filtered_aids(ibs, imgsetid_list)[source]

hacks to filter aids to only certain views and qualities

wbia.control.manual_imageset_funcs.get_imageset_duration(ibs, imageset_rowid_list)[source]

gets the imageset’s duration

Parameters

imageset_rowid_list (list) –

Returns

imageset_duration

Return type

list

RESTful:

Method: GET URL: /api/imageset/duration/

wbia.control.manual_imageset_funcs.get_imageset_end_time_posix(ibs, imageset_rowid_list)[source]

imageset_end_time_posix_list <- imageset.imageset_end_time_posix[imageset_rowid_list]

gets data from the “native” column “imageset_end_time_posix” in the “imageset” table

Parameters

imageset_rowid_list (list) –

Returns

imageset_end_time_posix_list

Return type

list

TemplateInfo:

Tgetter_table_column col = imageset_end_time_posix tbl = imageset

RESTful:

Method: GET URL: /api/imageset/time/posix/end/

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_imageset_funcs import *  # NOQA
>>> ibs, config2_ = testdata_ibs()
>>> imageset_rowid_list = ibs._get_all_imageset_rowids()
>>> imageset_end_time_posix_list = ibs.get_imageset_end_time_posix(imageset_rowid_list)
>>> assert len(imageset_rowid_list) == len(imageset_end_time_posix_list)
wbia.control.manual_imageset_funcs.get_imageset_fraction_annotmatch_reviewed(ibs, imgsetid_list)[source]
wbia.control.manual_imageset_funcs.get_imageset_fraction_imgs_reviewed(ibs, imgsetid_list)[source]
wbia.control.manual_imageset_funcs.get_imageset_fraction_names_with_exemplar(ibs, imgsetid_list)[source]

Example

>>> # DISABLE_DOCTEST
>>> from wbia.control.manual_imageset_funcs import *  # NOQA
>>> import wbia  # NOQA
>>> ibs = wbia.opendb('testdb2')
>>> imgsetid_list = ibs._get_all_imageset_rowids()
>>> fraction_exemplared_names_list = ibs.get_imageset_fraction_names_with_exemplar(imgsetid_list)
wbia.control.manual_imageset_funcs.get_imageset_gids(ibs, imgsetid_list)[source]
Returns

a list of list of gids in each imageset

Return type

gids_list (list)

RESTful:

Method: GET URL: /api/imageset/image/rowid/

wbia.control.manual_imageset_funcs.get_imageset_gps_lats(ibs, imageset_rowid_list)[source]

imageset_gps_lat_list <- imageset.imageset_gps_lat[imageset_rowid_list]

gets data from the “native” column “imageset_gps_lat” in the “imageset” table

Parameters

imageset_rowid_list (list) –

Returns

imageset_gps_lat_list

Return type

list

TemplateInfo:

Tgetter_table_column col = imageset_gps_lat tbl = imageset

RESTful:

Method: GET URL: /api/imageset/gps/lat/

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_imageset_funcs import *  # NOQA
>>> ibs, config2_ = testdata_ibs()
>>> imageset_rowid_list = ibs._get_all_imageset_rowids()
>>> imageset_gps_lat_list = ibs.get_imageset_gps_lats(imageset_rowid_list)
>>> assert len(imageset_rowid_list) == len(imageset_gps_lat_list)
wbia.control.manual_imageset_funcs.get_imageset_gps_lons(ibs, imageset_rowid_list)[source]

imageset_gps_lon_list <- imageset.imageset_gps_lon[imageset_rowid_list]

gets data from the “native” column “imageset_gps_lon” in the “imageset” table

Parameters

imageset_rowid_list (list) –

Returns

imageset_gps_lon_list

Return type

list

TemplateInfo:

Tgetter_table_column col = imageset_gps_lon tbl = imageset

RESTful:

Method: GET URL: /api/imageset/gps/lon/

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_imageset_funcs import *  # NOQA
>>> ibs, config2_ = testdata_ibs()
>>> imageset_rowid_list = ibs._get_all_imageset_rowids()
>>> imageset_gps_lon_list = ibs.get_imageset_gps_lons(imageset_rowid_list)
>>> assert len(imageset_rowid_list) == len(imageset_gps_lon_list)
wbia.control.manual_imageset_funcs.get_imageset_gsgrids(ibs, imgsetid_list=None, gid_list=None)[source]
Returns

a list of imageset-image-relationship rowids for each encouterid

Return type

list_ (list)

wbia.control.manual_imageset_funcs.get_imageset_image_uuids(ibs, imgsetid_list)[source]
Returns

a list of list of gids in each imageset

Return type

gids_list (list)

RESTful:

Method: GET URL: /api/imageset/image/uuid/

wbia.control.manual_imageset_funcs.get_imageset_imgsetids_from_text(ibs, imagesettext_list, ensure=True)[source]
Returns

a list of imgsetids corresponding to each imageset imagesettext

Return type

list_ (list)

#FIXME: make new naming scheme for non-primary-key-getters get_imageset_imgsetids_from_text_from_text

RESTful:

Method: GET URL: /api/imageset/rowid/text/

wbia.control.manual_imageset_funcs.get_imageset_imgsetids_from_uuid(ibs, uuid_list)[source]
Returns

a list of imgsetids corresponding to each imageset imagesettext

Return type

list_ (list)

#FIXME: make new naming scheme for non-primary-key-getters get_imageset_imgsetids_from_text_from_text

RESTful:

Method: GET URL: /api/imageset/rowid/uuid/

wbia.control.manual_imageset_funcs.get_imageset_metadata(ibs, imageset_rowid_list, return_raw=False)[source]
Returns

imageset metadata dictionary

Return type

list_ (list)

RESTful:

Method: GET URL: /api/imageset/metadata/

wbia.control.manual_imageset_funcs.get_imageset_name_uuids(ibs, imgsetid_list)[source]
Returns

a list of list of known name uuids in each imageset

Return type

name_uuid_list (list)

CommandLine:

python -m wbia.control.manual_imageset_funcs –test-get_imageset_name_uuids

RESTful:

Method: GET URL: /api/imageset/name/uuid/

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_imageset_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb('testdb1')
>>> ibs.delete_imagesets(ibs.get_valid_imgsetids())
>>> ibs.compute_occurrences(config={'use_gps': False, 'seconds_thresh': 600})
>>> imgsetid_list = ibs.get_valid_imgsetids()
>>> nids_list = ibs.get_imageset_nids(imgsetid_list)
>>> result = nids_list
>>> print(result)
[[1, 2, 3], [4, 5, 6, 7]]
wbia.control.manual_imageset_funcs.get_imageset_nids(ibs, imgsetid_list)[source]
Returns

a list of list of known nids in each imageset

Return type

list_ (list)

CommandLine:

python -m wbia.control.manual_imageset_funcs –test-get_imageset_nids

RESTful:

Method: GET URL: /api/imageset/name/rowid/

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_imageset_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb('testdb1')
>>> ibs.delete_imagesets(ibs.get_valid_imgsetids())
>>> ibs.compute_occurrences(config={'use_gps': False, 'seconds_thresh': 600})
>>> imgsetid_list = ibs.get_valid_imgsetids()
>>> nids_list = ibs.get_imageset_nids(imgsetid_list)
>>> result = nids_list
>>> print(result)
[[1, 2, 3], [4, 5, 6, 7]]
wbia.control.manual_imageset_funcs.get_imageset_note(ibs, imgsetid_list)[source]
Returns

imageset_note of each imgsetid in imgsetid_list

Return type

list_ (list)

RESTful:

Method: GET URL: /api/imageset/note/

wbia.control.manual_imageset_funcs.get_imageset_notes(ibs, imageset_rowid_list)[source]

imageset_note_list <- imageset.imageset_note[imageset_rowid_list]

gets data from the “native” column “imageset_note” in the “imageset” table

Parameters

imageset_rowid_list (list) –

Returns

imageset_note_list

Return type

list

TemplateInfo:

Tgetter_table_column col = imageset_note tbl = imageset

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_imageset_funcs import *  # NOQA
>>> ibs, config2_ = testdata_ibs()
>>> imageset_rowid_list = ibs._get_all_imageset_rowids()
>>> imageset_note_list = ibs.get_imageset_notes(imageset_rowid_list)
>>> assert len(imageset_rowid_list) == len(imageset_note_list)
wbia.control.manual_imageset_funcs.get_imageset_num_aids(ibs, imgsetid_list)[source]
Returns

number of images in each imageset

Return type

nGids_list (list)

RESTful:

Method: GET URL: /api/imageset/num/annot/

wbia.control.manual_imageset_funcs.get_imageset_num_annotmatch_reviewed(ibs, imgsetid_list)[source]
RESTful:

Method: GET URL: /api/imageset/num/annotmatch/reviewed/

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_imageset_funcs import *  # NOQA
>>> import wbia  # NOQA
>>> ibs = wbia.opendb('testdb1')
>>> imgsetid_list = ibs._get_all_imageset_rowids()
>>> num_annots_reviewed_list = ibs.get_imageset_num_annotmatch_reviewed(imgsetid_list)
wbia.control.manual_imageset_funcs.get_imageset_num_annots_reviewed(ibs, imgsetid_list)[source]
RESTful:

Method: GET URL: /api/imageset/num/annot/reviewed/

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_imageset_funcs import *  # NOQA
>>> ibs, config2_ = testdata_ibs()
>>> # Reset and compute imagesets
>>> ibs.delete_all_imagesets()
>>> ibs.compute_occurrences(config={'use_gps': False, 'seconds_thresh': 600})
>>> imgsetid_list = ibs.get_valid_imgsetids()
>>> num_reviwed_list = ibs.get_imageset_num_imgs_reviewed(imgsetid_list)
>>> result = num_reviwed_list
>>> print(result)
[0, 0]
wbia.control.manual_imageset_funcs.get_imageset_num_gids(ibs, imgsetid_list)[source]
Returns

number of images in each imageset

Return type

nGids_list (list)

RESTful:

Method: GET URL: /api/imageset/num/image/

wbia.control.manual_imageset_funcs.get_imageset_num_imgs_reviewed(ibs, imgsetid_list)[source]
RESTful:

Method: GET URL: /api/imageset/num/image/reviewed/

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_imageset_funcs import *  # NOQA
>>> ibs, config2_ = testdata_ibs()
>>> # Reset and compute imagesets
>>> ibs.delete_all_imagesets()
>>> ibs.compute_occurrences(config={'use_gps': False, 'seconds_thresh': 600})
>>> imgsetid_list = ibs.get_valid_imgsetids()
>>> num_reviwed_list = ibs.get_imageset_num_imgs_reviewed(imgsetid_list)
>>> result = num_reviwed_list
>>> print(result)
[0, 0]
wbia.control.manual_imageset_funcs.get_imageset_num_names_with_exemplar(ibs, imgsetid_list)[source]
RESTful:

Method: GET URL: /api/imageset/num/name/exemplar/

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_imageset_funcs import *  # NOQA
>>> import wbia  # NOQA
>>> ibs = wbia.opendb('testdb1')
>>> imgsetid_list = ibs._get_all_imageset_rowids()
>>> num_annots_reviewed_list = ibs.get_imageset_num_annotmatch_reviewed(imgsetid_list)
wbia.control.manual_imageset_funcs.get_imageset_occurrence_flags(ibs, imageset_rowid_list)[source]

imageset_occurrence_flag_list <- imageset.imageset_occurrence_flag[imageset_rowid_list]

gets data from the “native” column “imageset_occurrence_flag” in the “imageset” table

Parameters

imageset_rowid_list (list) –

Returns

imageset_occurrence_flag_list

Return type

list

TemplateInfo:

Tgetter_table_column col = imageset_occurrence_flag tbl = imageset

RESTful:

Method: GET URL: /api/imageset/occurrence/

CommandLine:

python -m wbia.control.manual_imageset_funcs –test-get_imageset_occurrence_flags

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_imageset_funcs import *  # NOQA
>>> ibs, config2_ = testdata_ibs()
>>> imageset_rowid_list = ibs._get_all_imageset_rowids()
>>> imageset_occurrence_flag_list = ibs.get_imageset_occurrence_flags(imageset_rowid_list)
>>> assert len(imageset_rowid_list) == len(imageset_occurrence_flag_list)
wbia.control.manual_imageset_funcs.get_imageset_percent_annotmatch_reviewed_str(ibs, imgsetid_list)[source]
wbia.control.manual_imageset_funcs.get_imageset_percent_imgs_reviewed_str(ibs, imgsetid_list)[source]
wbia.control.manual_imageset_funcs.get_imageset_percent_names_with_exemplar_str(ibs, imgsetid_list)[source]
wbia.control.manual_imageset_funcs.get_imageset_processed_flags(ibs, imageset_rowid_list)[source]

imageset_processed_flag_list <- imageset.imageset_processed_flag[imageset_rowid_list]

gets data from the “native” column “imageset_processed_flag” in the “imageset” table

Parameters

imageset_rowid_list (list) –

Returns

imageset_processed_flag_list

Return type

list

TemplateInfo:

Tgetter_table_column col = imageset_processed_flag tbl = imageset

RESTful:

Method: GET URL: /api/imageset/processed/

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_imageset_funcs import *  # NOQA
>>> ibs, config2_ = testdata_ibs()
>>> imageset_rowid_list = ibs._get_all_imageset_rowids()
>>> imageset_processed_flag_list = ibs.get_imageset_processed_flags(imageset_rowid_list)
>>> assert len(imageset_rowid_list) == len(imageset_processed_flag_list)
wbia.control.manual_imageset_funcs.get_imageset_shipped_flags(ibs, imageset_rowid_list)[source]

imageset_shipped_flag_list <- imageset.imageset_shipped_flag[imageset_rowid_list]

gets data from the “native” column “imageset_shipped_flag” in the “imageset” table

Parameters

imageset_rowid_list (list) –

Returns

imageset_shipped_flag_list

Return type

list

TemplateInfo:

Tgetter_table_column col = imageset_shipped_flag tbl = imageset

RESTful:

Method: GET URL: /api/imageset/shipped/

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_imageset_funcs import *  # NOQA
>>> ibs, config2_ = testdata_ibs()
>>> imageset_rowid_list = ibs._get_all_imageset_rowids()
>>> imageset_shipped_flag_list = ibs.get_imageset_shipped_flags(imageset_rowid_list)
>>> assert len(imageset_rowid_list) == len(imageset_shipped_flag_list)
wbia.control.manual_imageset_funcs.get_imageset_smart_waypoint_ids(ibs, imageset_rowid_list)[source]

imageset_smart_waypoint_id_list <- imageset.imageset_smart_waypoint_id[imageset_rowid_list]

gets data from the “native” column “imageset_smart_waypoint_id” in the “imageset” table

Parameters

imageset_rowid_list (list) –

Returns

imageset_smart_waypoint_id_list

Return type

list

TemplateInfo:

Tgetter_table_column col = imageset_smart_waypoint_id tbl = imageset

RESTful:

Method: GET URL: /api/imageset/smart/waypoint/

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_imageset_funcs import *  # NOQA
>>> ibs, config2_ = testdata_ibs()
>>> imageset_rowid_list = ibs._get_all_imageset_rowids()
>>> imageset_smart_waypoint_id_list = ibs.get_imageset_smart_waypoint_ids(imageset_rowid_list)
>>> assert len(imageset_rowid_list) == len(imageset_smart_waypoint_id_list)
wbia.control.manual_imageset_funcs.get_imageset_smart_xml_contents(ibs, imageset_rowid_list)[source]
wbia.control.manual_imageset_funcs.get_imageset_smart_xml_fnames(ibs, imageset_rowid_list)[source]

imageset_smart_xml_fname_list <- imageset.imageset_smart_xml_fname[imageset_rowid_list]

gets data from the “native” column “imageset_smart_xml_fname” in the “imageset” table

Parameters

imageset_rowid_list (list) –

Returns

imageset_smart_xml_fname_list

Return type

list

TemplateInfo:

Tgetter_table_column col = imageset_smart_xml_fname tbl = imageset

RESTful:

Method: GET URL: /api/imageset/smart/xml/file/name/

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_imageset_funcs import *  # NOQA
>>> ibs, config2_ = testdata_ibs()
>>> imageset_rowid_list = ibs._get_all_imageset_rowids()
>>> imageset_smart_xml_fname_list = ibs.get_imageset_smart_xml_fnames(imageset_rowid_list)
>>> assert len(imageset_rowid_list) == len(imageset_smart_xml_fname_list)
wbia.control.manual_imageset_funcs.get_imageset_start_time_posix(ibs, imageset_rowid_list)[source]

imageset_start_time_posix_list <- imageset.imageset_start_time_posix[imageset_rowid_list]

gets data from the “native” column “imageset_start_time_posix” in the “imageset” table

Parameters

imageset_rowid_list (list) –

Returns

imageset_start_time_posix_list

Return type

list

TemplateInfo:

Tgetter_table_column col = imageset_start_time_posix tbl = imageset

RESTful:

Method: GET URL: /api/imageset/time/posix/start/

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_imageset_funcs import *  # NOQA
>>> ibs, config2_ = testdata_ibs()
>>> imageset_rowid_list = ibs._get_all_imageset_rowids()
>>> imageset_start_time_posix_list = ibs.get_imageset_start_time_posix(imageset_rowid_list)
>>> assert len(imageset_rowid_list) == len(imageset_start_time_posix_list)
wbia.control.manual_imageset_funcs.get_imageset_text(ibs, imgsetid_list)[source]
Returns

imageset_text of each imgsetid in imgsetid_list

Return type

list_ (list)

RESTful:

Method: GET URL: /api/imageset/text/

wbia.control.manual_imageset_funcs.get_imageset_uuid(ibs, imgsetid_list)[source]
Returns

imageset_uuid of each imgsetid in imgsetid_list

Return type

list_ (list)

RESTful:

Method: GET URL: /api/imageset/uuid/

wbia.control.manual_imageset_funcs.get_imageset_uuids(ibs, imgsetid_list)[source]
Parameters
  • ibs (IBEISController) – wbia controller object

  • imgsetid_list (list) –

Returns

annot_uuids_list

Return type

list

RESTful:

Method: GET URL: /api/imageset/annot/uuid/

CommandLine:

python -m wbia.control.manual_imageset_funcs –test-get_imageset_aids

Example

>>> # DISABLE_DOCTEST
>>> from wbia.control.manual_imageset_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb(defaultdb='testdb1')
>>> ibs.delete_imagesets(ibs.get_valid_imgsetids())
>>> ibs.compute_occurrences(config={'use_gps': False, 'seconds_thresh': 600})
>>> imgsetid_list = ibs.get_valid_imgsetids()
>>> aids_list = get_imageset_aids(ibs, imgsetid_list)
>>> result = ('aids_list = %s' % (str(aids_list),))
>>> print(result)
wbia.control.manual_imageset_funcs.get_valid_imgsetids(ibs, min_num_gids=0, processed=None, shipped=None, is_occurrence=None, is_special=None)[source]

FIX NAME imgagesetids

Returns

list of all imageset ids

Return type

list_ (list)

RESTful:

Method: GET URL: /api/imageset/

wbia.control.manual_imageset_funcs.is_special_imageset(ibs, imgsetid_list)[source]
wbia.control.manual_imageset_funcs.set_imageset_end_time_posix(ibs, imageset_rowid_list, imageset_end_time_posix_list)[source]

imageset_end_time_posix_list -> imageset.imageset_end_time_posix[imageset_rowid_list]

Parameters
  • imageset_rowid_list

  • imageset_end_time_posix_list

TemplateInfo:

Tsetter_native_column tbl = imageset col = imageset_end_time_posix

RESTful:

Method: PUT URL: /api/imageset/time/posix/end/

wbia.control.manual_imageset_funcs.set_imageset_gps_lats(ibs, imageset_rowid_list, imageset_gps_lat_list)[source]

imageset_gps_lat_list -> imageset.imageset_gps_lat[imageset_rowid_list]

Parameters
  • imageset_rowid_list

  • imageset_gps_lat_list

TemplateInfo:

Tsetter_native_column tbl = imageset col = imageset_gps_lat

RESTful:

Method: PUT URL: /api/imageset/gps/lat/

wbia.control.manual_imageset_funcs.set_imageset_gps_lons(ibs, imageset_rowid_list, imageset_gps_lon_list)[source]

imageset_gps_lon_list -> imageset.imageset_gps_lon[imageset_rowid_list]

Parameters
  • imageset_rowid_list

  • imageset_gps_lon_list

TemplateInfo:

Tsetter_native_column tbl = imageset col = imageset_gps_lon

RESTful:

Method: PUT URL: /api/imageset/gps/lon/

wbia.control.manual_imageset_funcs.set_imageset_metadata(ibs, imageset_rowid_list, metadata_dict_list)[source]

Sets the imageset’s metadata using a metadata dictionary

RESTful:

Method: PUT URL: /api/imageset/metadata/

wbia.control.manual_imageset_funcs.set_imageset_notes(ibs, imageset_rowid_list, imageset_note_list)[source]

imageset_note_list -> imageset.imageset_note[imageset_rowid_list]

Parameters
  • imageset_rowid_list

  • imageset_note_list

TemplateInfo:

Tsetter_native_column tbl = imageset col = imageset_note

wbia.control.manual_imageset_funcs.set_imageset_occurrence_flags(ibs, imageset_rowid_list, imageset_occurrence_flag_list)[source]

imageset_occurrence_flag_list -> imageset.imageset_occurrence_flag[imageset_rowid_list]

Parameters
  • imageset_rowid_list

  • imageset_occurrence_flag_list

TemplateInfo:

Tsetter_native_column tbl = imageset col = imageset_occurrence_flag

RESTful:

Method: PUT URL: /api/imageset/occurrence/

wbia.control.manual_imageset_funcs.set_imageset_processed_flags(ibs, imageset_rowid_list, imageset_processed_flag_list)[source]

imageset_processed_flag_list -> imageset.imageset_processed_flag[imageset_rowid_list]

Parameters
  • imageset_rowid_list

  • imageset_processed_flag_list

TemplateInfo:

Tsetter_native_column tbl = imageset col = imageset_processed_flag

RESTful:

Method: PUT URL: /api/imageset/processed/

wbia.control.manual_imageset_funcs.set_imageset_shipped_flags(ibs, imageset_rowid_list, imageset_shipped_flag_list)[source]

imageset_shipped_flag_list -> imageset.imageset_shipped_flag[imageset_rowid_list]

Parameters
  • imageset_rowid_list

  • imageset_shipped_flag_list

TemplateInfo:

Tsetter_native_column tbl = imageset col = imageset_shipped_flag

RESTful:

Method: PUT URL: /api/imageset/shipped/

wbia.control.manual_imageset_funcs.set_imageset_smart_waypoint_ids(ibs, imageset_rowid_list, imageset_smart_waypoint_id_list)[source]

imageset_smart_waypoint_id_list -> imageset.imageset_smart_waypoint_id[imageset_rowid_list]

Parameters
  • imageset_rowid_list

  • imageset_smart_waypoint_id_list

TemplateInfo:

Tsetter_native_column tbl = imageset col = imageset_smart_waypoint_id

RESTful:

Method: PUT URL: /api/imageset/smart/waypoint/

wbia.control.manual_imageset_funcs.set_imageset_smart_xml_fnames(ibs, imageset_rowid_list, imageset_smart_xml_fname_list)[source]

imageset_smart_xml_fname_list -> imageset.imageset_smart_xml_fname[imageset_rowid_list]

Parameters
  • imageset_rowid_list

  • imageset_smart_xml_fname_list

TemplateInfo:

Tsetter_native_column tbl = imageset col = imageset_smart_xml_fname

RESTful:

Method: PUT URL: /api/imageset/smart/xml/fname/

wbia.control.manual_imageset_funcs.set_imageset_start_time_posix(ibs, imageset_rowid_list, imageset_start_time_posix_list)[source]

imageset_start_time_posix_list -> imageset.imageset_start_time_posix[imageset_rowid_list]

Parameters
  • imageset_rowid_list

  • imageset_start_time_posix_list

TemplateInfo:

Tsetter_native_column tbl = imageset col = imageset_start_time_posix

RESTful:

Method: PUT URL: /api/imageset/time/posix/start/

wbia.control.manual_imageset_funcs.set_imageset_text(ibs, imgsetid_list, imageset_text_list)[source]

Sets names of imagesets (groups of animals)

RESTful:

Method: PUT URL: /api/imageset/text/

wbia.control.manual_imageset_funcs.testdata_ibs()[source]
wbia.control.manual_imageset_funcs.update_imageset_info(ibs, imageset_rowid_list, **kwargs)[source]

sets start and end time for imagesets

FIXME: should not need to bulk update, should be handled as it goes

RESTful:

Method: PUT URL: /api/imageset/info/

Example

>>> # DISABLE_DOCTEST
>>> imageset_rowid_list = ibs.get_valid_imgsetids()

wbia.control.manual_lblannot_funcs module

wbia.control.manual_lblannot_funcs.add_annot_relationship(ibs, aid_list, lblannot_rowid_list, alr_confidence_list=None)[source]
Adds a relationship between annots and lblannots

(annotations and labels of annotations)

wbia.control.manual_lblannot_funcs.add_lblannots(ibs, lbltype_rowid_list, value_list, note_list=None, lblannot_uuid_list=None)[source]

Adds new lblannots (labels of annotations) creates a new uuid for any new pair(type, value) #TODO: reverse order of rowid_list value_list in input

wbia.control.manual_lblannot_funcs.delete_annot_relations(ibs, aid_list)[source]

Deletes the relationship between an annotation and a label

wbia.control.manual_lblannot_funcs.delete_annot_relations_oftype(ibs, aid_list, _lbltype)[source]

Deletes the relationship between an annotation and a label

wbia.control.manual_lblannot_funcs.delete_lblannots(ibs, lblannot_rowid_list)[source]

deletes lblannots from the database

wbia.control.manual_lblannot_funcs.get_alr_annot_rowids(ibs, alrid_list)[source]
Parameters

alrid_list (list of rowids) – annot + label relationship rows

get the annot_rowid belonging to each relationship

wbia.control.manual_lblannot_funcs.get_alr_annot_rowids_from_lblannot_rowid(ibs, lblannot_rowid_list)[source]

This is a 1toM getter

Get annotation rowids of labels. There may be more than one annotation per label.

Parameters

lblannot_rowid_list (list) – of lblannot (labels of annotations) rowids

Returns

of lists annotation rowids

Return type

aids_list (list)

wbia.control.manual_lblannot_funcs.get_alr_confidence(ibs, alrid_list)[source]
Parameters

alrid_list (list of rowids) – annot + label relationship rows

Returns

confidence in an annotation relationship

Return type

alr_confidence_list (list of rowids)

wbia.control.manual_lblannot_funcs.get_alr_lblannot_rowids(ibs, alrid_list)[source]
Parameters

alrid_list (list of rowids) – annot + label relationship rows

Returns

label rowids (of annotations)

Return type

lblannot_rowids_list (list of rowids)

wbia.control.manual_lblannot_funcs.get_alrid_from_superkey(ibs, aid_list, lblannot_rowid_list)[source]
Parameters
  • aid_list (list) – list of annotation row-ids

  • lblannot_rowid_list (list) – list of lblannot row-ids

Returns

annot-label relationship id list

Return type

alrid_list (list)

wbia.control.manual_lblannot_funcs.get_annot_alrids(ibs, aid_list)[source]

FIXME: __name__ Get all the relationship ids belonging to the input annotations if lblannot lbltype is specified the relationship ids are filtered to be only of a specific lbltype/category/type

wbia.control.manual_lblannot_funcs.get_annot_alrids_oftype(ibs, aid_list, lbltype_rowid)[source]

Get all the relationship ids belonging to the input annotations where the relationship ids are filtered to be only of a specific lbltype/category/type

wbia.control.manual_lblannot_funcs.get_annot_lblannot_rowids(ibs, aid_list)[source]
Returns

the name id of each annotation.

Return type

list_ (list)

wbia.control.manual_lblannot_funcs.get_annot_lblannot_rowids_oftype(ibs, aid_list, _lbltype=None)[source]
Returns

the name id of each annotation.

Return type

list_ (list)

wbia.control.manual_lblannot_funcs.get_annot_lblannot_value_of_lbltype(ibs, aid_list, _lbltype, lblannot_value_getter)[source]
Returns

a list of strings [‘fred’, ‘sue’, …] for each chip identifying the animal

Return type

lblannot_value_list (list)

wbia.control.manual_lblannot_funcs.get_lblannot_lbltypes_rowids(ibs, lblannot_rowid_list)[source]
wbia.control.manual_lblannot_funcs.get_lblannot_notes(ibs, lblannot_rowid_list)[source]
wbia.control.manual_lblannot_funcs.get_lblannot_rowid_from_superkey(ibs, lbltype_rowid_list, value_list)[source]
Returns

lblannot_rowid_list from the superkey (lbltype, value)

Return type

list_ (list)

wbia.control.manual_lblannot_funcs.get_lblannot_rowid_from_uuid(ibs, lblannot_uuid_list)[source]

UNSAFE

Returns

lblannot_rowid_list from the superkey (lbltype, value)

wbia.control.manual_lblannot_funcs.get_lblannot_uuids(ibs, lblannot_rowid_list)[source]
wbia.control.manual_lblannot_funcs.get_lblannot_values(ibs, lblannot_rowid_list, _lbltype=None)[source]
Returns

text lblannots

wbia.control.manual_lblannot_funcs.set_alr_confidence(ibs, alrid_list, confidence_list)[source]

sets annotation-lblannot-relationship confidence

wbia.control.manual_lblannot_funcs.set_alr_lblannot_rowids(ibs, alrid_list, lblannot_rowid_list)[source]

Associates whatever annotation is at row(alrid) with a new lblannot_rowid. (effectively changes the label value of the rowid)

wbia.control.manual_lblannot_funcs.set_annot_lblannot_from_rowid(ibs, aid_list, lblannot_rowid_list, _lbltype)[source]

Sets items/lblannot_rowids of a list of annotations.

wbia.control.manual_lblannot_funcs.set_annot_lblannot_from_value(ibs, aid_list, value_list, _lbltype, ensure=True)[source]

Associates the annot and lblannot of a specific type and value Adds the lblannot if it doesnt exist. Wrapper around convenience function for set_annot_from_lblannot_rowid

wbia.control.manual_lblannot_funcs.set_lblannot_notes(ibs, lblannot_rowid_list, value_list)[source]

Updates the value for lblannots. Note this change applies to all annotations related to this lblannot_rowid

wbia.control.manual_lblannot_funcs.set_lblannot_values(ibs, lblannot_rowid_list, value_list)[source]

Updates the value for lblannots. Note this change applies to all annotations related to this lblannot_rowid

wbia.control.manual_lblimage_funcs module

wbia.control.manual_lblimage_funcs.add_image_relationship_one(ibs, gid_list, lblimage_rowid_list, glr_confidence_list=None)[source]

Adds a relationship between images and lblimages (imageations and labels of imageations)

wbia.control.manual_lblimage_funcs.add_lblimages(ibs, lbltype_rowid_list, value_list, note_list=None, lblimage_uuid_list=None)[source]

Adds new lblimages (labels of imageations) creates a new uuid for any new pair(type, value) #TODO: reverse order of rowid_list value_list in input

wbia.control.manual_lblimage_funcs.get_glr_confidence(ibs, glrid_list)[source]
Returns

confidence in an image relationship

Return type

list_ (list)

wbia.control.manual_lblimage_funcs.get_glr_image_rowids(ibs, glrid_list)[source]

get the image_rowid belonging to each relationship

wbia.control.manual_lblimage_funcs.get_glr_lblimage_rowids(ibs, glrid_list)[source]

get the lblimage_rowid belonging to each relationship

wbia.control.manual_lblimage_funcs.get_glrid_from_superkey(ibs, gid_list, lblimage_rowid_list)[source]
Parameters
  • gid_list (list) – list of image row-ids

  • lblimage_rowid_list (list) – list of lblimage row-ids

Returns

image-label relationship id list

Return type

glrid_list (list)

wbia.control.manual_lblimage_funcs.get_image_glrids(ibs, gid_list)[source]

FIXME: __name__ Get all the relationship ids belonging to the input images if lblimage lbltype is specified the relationship ids are filtered to be only of a specific lbltype/category/type

wbia.control.manual_lblimage_funcs.get_lblimage_gids(ibs, lblimage_rowid_list)[source]
wbia.control.manual_lblimage_funcs.get_lblimage_lbltypes_rowids(ibs, lblimage_rowid_list)[source]
wbia.control.manual_lblimage_funcs.get_lblimage_notes(ibs, lblimage_rowid_list)[source]
wbia.control.manual_lblimage_funcs.get_lblimage_rowid_from_superkey(ibs, lbltype_rowid_list, value_list)[source]
Returns

lblimage_rowid_list from the superkey (lbltype, value)

Return type

list_ (list)

wbia.control.manual_lblimage_funcs.get_lblimage_rowid_from_uuid(ibs, lblimage_uuid_list)[source]
Returns

lblimage_rowid_list from the superkey (lbltype, value)

Return type

list_ (list)

wbia.control.manual_lblimage_funcs.get_lblimage_uuids(ibs, lblimage_rowid_list)[source]
wbia.control.manual_lblimage_funcs.get_lblimage_values(ibs, lblimage_rowid_list, _lbltype=None)[source]
Returns

text lblimages

Return type

list_ (list)

wbia.control.manual_lbltype_funcs module

wbia.control.manual_lbltype_funcs.add_lbltype(ibs, text_list, default_list)[source]

Adds a label type and its default value Should only be called at the begining of the program.

wbia.control.manual_lbltype_funcs.get_lbltype_default(ibs, lbltype_rowid_list)[source]
wbia.control.manual_lbltype_funcs.get_lbltype_rowid_from_text(ibs, text_list)[source]
Returns

lbltype_rowid where the lbltype_text is given

Return type

lbltype_rowid (list)

wbia.control.manual_lbltype_funcs.get_lbltype_text(ibs, lbltype_rowid_list)[source]

wbia.control.manual_meta_funcs module

controller functions for contributors, versions, configs, and other metadata

wbia.control.manual_meta_funcs.add_contributors(ibs, tag_list, uuid_list=None, name_first_list=None, name_last_list=None, loc_city_list=None, loc_state_list=None, loc_country_list=None, loc_zip_list=None, notes_list=None)[source]

Adds a list of contributors.

Returns

contributor rowids

Return type

contributor_id_list (list)

RESTful:

Method: POST URL: /api/contributor/

wbia.control.manual_meta_funcs.add_metadata(ibs, metadata_key_list, metadata_value_list, db)[source]

Adds metadata

Returns

metadata rowids

Return type

metadata_rowid_list (list)

RESTful:

Method: POST URL: /api/metadata/

wbia.control.manual_meta_funcs.add_new_temp_contributor(ibs, user_prompt=False, offset=None, autolocate=False)[source]
RESTful:

Method: POST URL: /api/contributor/new/temp/

wbia.control.manual_meta_funcs.add_version(ibs, versiontext_list)[source]

Adds an algorithm / actor configuration as a string

wbia.control.manual_meta_funcs.delete_contributors(ibs, contributor_rowid_list)[source]

deletes contributors from the database and all information associated

RESTful:

Method: DELETE URL: /api/contributor/

wbia.control.manual_meta_funcs.ensure_contributor_rowids(ibs, user_prompt=False, autolocate=False)[source]
Parameters
  • ibs (IBEISController) – wbia controller object

  • user_prompt (bool) –

Returns

Return type

list

CommandLine:

python -m wbia.control.manual_meta_funcs –test-ensure_contributor_rowids

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_meta_funcs import *  # NOQA
>>> import wbia
>>> # build test data
>>> ibs = wbia.opendb(db='testdb1')
>>> gid_list = ibs.get_valid_gids()
>>> ibs.delete_contributors(ibs.get_valid_contributor_rowids())
>>> contributor_rowid_list1 = ibs.get_image_contributor_rowid(gid_list)
>>> assert ut.allsame(contributor_rowid_list1)
>>> ut.assert_eq(contributor_rowid_list1[0], None)
>>> user_prompt = ut.get_argflag('--user-prompt')
>>> autolocate = ut.get_argflag('--user-prompt')
>>> # execute function
>>> result = ensure_contributor_rowids(ibs, user_prompt, autolocate)
>>> # verify results
>>> ibs.print_contributor_table()
>>> print(result)
>>> contributor_rowid_list2 = ibs.get_image_contributor_rowid(gid_list)
>>> assert ut.allsame(contributor_rowid_list2)
>>> ut.assert_eq(contributor_rowid_list2[0], 1)
wbia.control.manual_meta_funcs.get_all_uncontributed_configs(ibs)[source]
RESTful:

Method: GET URL: /api/contributor/configs/uncontributed/

wbia.control.manual_meta_funcs.get_all_uncontributed_images(ibs)[source]
RESTful:

Method: GET URL: /api/contributor/gids/uncontributed/

wbia.control.manual_meta_funcs.get_config_contributor_rowid(ibs, config_rowid_list)[source]
Returns

contributor’s rowid for algorithm configs

Return type

cfgsuffix_list (list)

RESTful:

Method: GET URL: /api/contributor/config/rowid/

wbia.control.manual_meta_funcs.get_config_suffixes(ibs, config_rowid_list)[source]
Returns

suffixes for algorithm configs

Return type

cfgsuffix_list (list)

RESTful:

Method: GET URL: /api/contributor/config/suffixes/

wbia.control.manual_meta_funcs.get_contributor_city(ibs, contributor_rowid_list)[source]
Returns

a contributor’s location - city

Return type

contributor_city_list (list)

RESTful:

Method: GET URL: /api/contributor/location/city/

wbia.control.manual_meta_funcs.get_contributor_country(ibs, contributor_rowid_list)[source]
Returns

a contributor’s location - country

Return type

contributor_country_list (list)

RESTful:

Method: GET URL: /api/contributor/location/country/

wbia.control.manual_meta_funcs.get_contributor_first_name(ibs, contributor_rowid_list)[source]
Returns

a contributor’s first name

Return type

contributor_name_first_list (list)

RESTful:

Method: GET URL: /api/contributor/name/first/

wbia.control.manual_meta_funcs.get_contributor_gids(ibs, contributor_rowid_list)[source]

TODO: Template 1_M reverse getter

Returns

gids for a contributor

Return type

gid_list (list)

RESTful:

Method: GET URL: /api/contributor/gids/

wbia.control.manual_meta_funcs.get_contributor_imgsetids(ibs, config_rowid_list)[source]
Returns

imgsetids for a contributor

Return type

imgsetid_list (list)

RESTful:

Method: GET URL: /api/contributor/imageset/rowids/

wbia.control.manual_meta_funcs.get_contributor_last_name(ibs, contributor_rowid_list)[source]
Returns

a contributor’s last name

Return type

contributor_name_last_list (list)

RESTful:

Method: GET URL: /api/contributor/name/last/

wbia.control.manual_meta_funcs.get_contributor_location_string(ibs, contributor_rowid_list)[source]
Returns

a contributor’s location

Return type

contributor_list (list)

RESTful:

Method: GET URL: /api/contributor/location/

wbia.control.manual_meta_funcs.get_contributor_name_string(ibs, contributor_rowid_list, include_tag=False)[source]
Returns

a contributor’s full name

Return type

contributor_name_list (list)

RESTful:

Method: GET URL: /api/contributor/name/

wbia.control.manual_meta_funcs.get_contributor_note(ibs, contributor_rowid_list)[source]
Returns

a contributor’s note

Return type

contributor_note_list (list)

RESTful:

Method: GET URL: /api/contributor/note/

wbia.control.manual_meta_funcs.get_contributor_rowid_from_tag(ibs, contributor_tag_list)[source]
Returns

a contributor

Return type

contributor_tag_list (list)

RESTful:

Method: GET URL: /api/contributor/rowid/tag/

wbia.control.manual_meta_funcs.get_contributor_rowid_from_uuid(ibs, contributor_uuid_list)[source]
Returns

a contributor

Return type

contributor_uuid_list (list)

RESTful:

Method: GET URL: /api/contributor/rowid/uuid/

wbia.control.manual_meta_funcs.get_contributor_state(ibs, contributor_rowid_list)[source]
Returns

a contributor’s location - state

Return type

list_ (list)

RESTful:

Method: GET URL: /api/contributor/location/state/

wbia.control.manual_meta_funcs.get_contributor_tag(ibs, contributor_rowid_list, eager=True, nInput=None)[source]

contributor_tag_list <- contributor.contributor_tag[contributor_rowid_list]

gets data from the “native” column “contributor_tag” in the “contributor” table

Parameters

contributor_rowid_list (list) –

Returns

contributor_tag_list - a contributor’s tag

Return type

list

TemplateInfo:

Tgetter_table_column col = contributor_tag tbl = contributor

CommandLine:

python -m wbia.templates.template_generator –key contributor –Tcfg with_api_cache=False with_deleters=False

RESTful:

Method: GET URL: /api/contributor/tag/

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_meta_funcs import *  # NOQA
>>> ibs, qreq_ = testdata_ibs()
>>> contributor_rowid_list = ibs._get_all_contributor_rowids()
>>> eager = True
>>> contributor_tag_list = ibs.get_contributor_tag(contributor_rowid_list, eager=eager)
>>> assert len(contributor_rowid_list) == len(contributor_tag_list)
wbia.control.manual_meta_funcs.get_contributor_uuid(ibs, contributor_rowid_list)[source]
Returns

a contributor’s uuid

Return type

contributor_uuid_list (list)

RESTful:

Method: GET URL: /api/contributor/uuid/

wbia.control.manual_meta_funcs.get_contributor_zip(ibs, contributor_rowid_list)[source]
Returns

a contributor’s location - zip

Return type

contributor_zip_list (list)

RESTful:

Method: GET URL: /api/contributor/location/zip/

wbia.control.manual_meta_funcs.get_database_version(ibs, db=None)[source]

Gets the specified database version from the controller

RESTful:

Method: GET URL: /api/core/dbversion/

wbia.control.manual_meta_funcs.get_database_version_alias(ibs, db=None)[source]

Alias: func:get_database_version

RESTful:

Method: GET URL: /api/core/version/

wbia.control.manual_meta_funcs.get_metadata_rowid_from_metadata_key(ibs, metadata_key_list, db)[source]
RESTful:

Method: GET URL: /api/metadata/rowid/key/

wbia.control.manual_meta_funcs.get_metadata_value(ibs, metadata_key_list, db)[source]
RESTful:

Method: GET URL: /api/metadata/value/

wbia.control.manual_meta_funcs.get_valid_contributor_rowids(ibs)[source]
Returns

list of all contributor ids

Return type

list_ (list)

Returns

contributor_rowids_list

Return type

list

CommandLine:

python -m wbia.control.manual_meta_funcs –test-get_valid_contributor_rowids

RESTful:

Method: GET URL: /api/contributor/

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_meta_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb('testdb1')
>>> contributor_rowids_list = get_valid_contributor_rowids(ibs)
>>> result = str(contributor_rowids_list)
>>> print(result)
wbia.control.manual_meta_funcs.get_version(ibs)[source]

Returns the version of wbia

RESTful

Method: GET URL: /api/version/

wbia.control.manual_meta_funcs.set_config_contributor_rowid(ibs, config_rowid_list, contributor_rowid_list)[source]

Sets the config’s contributor rowid

RESTful:

Method: PUT URL: /api/config/contributor/rowid/

wbia.control.manual_meta_funcs.set_config_contributor_unassigned(ibs, contributor_rowid)[source]
RESTful:

Method: PUT URL: /api/config/contributor/unassigned/

wbia.control.manual_meta_funcs.set_database_version(ibs, db, version)[source]

Sets the specified database’s version from the controller

wbia.control.manual_meta_funcs.set_metadata_value(ibs, metadata_key_list, metadata_value_list, db)[source]

Sets metadata key, value pairs

RESTful:

Method: PUT URL: /api/metadata/value/

wbia.control.manual_meta_funcs.testdata_ibs()[source]
wbia.control.manual_meta_funcs.update_query_cfg(ibs, **kwargs)[source]

Updates query config only. Configs needs a restructure very badly DEPRICATE

RESTful:

Method: PUT URL: /api/query/cfg/

wbia.control.manual_name_funcs module

python -c “import utool as ut; ut.write_modscript_alias(‘Tgen.sh’, ‘wbia.templates.template_generator’)” # NOQA sh Tgen.sh –key name –invert –Tcfg with_getters=True with_setters=False –modfname manual_name_funcs # NOQA sh Tgen.sh –key name –invert –Tcfg with_getters=True with_setters=True –modfname manual_name_funcs –funcname-filter=sex # NOQA

wbia.control.manual_name_funcs.add_names(ibs, name_text_list, name_uuid_list=None, name_note_list=None)[source]

Adds a list of names.

Returns

their nids

Return type

name_rowid_list (list)

RESTful:

Method: POST URL: /api/name/

wbia.control.manual_name_funcs.delete_empty_nids(ibs)[source]

Removes names that have no Rois from the database

wbia.control.manual_name_funcs.delete_names(ibs, name_rowid_list, safe=True, strict=False, verbose=False)[source]

deletes names from the database

CAREFUL. YOU PROBABLY DO NOT WANT TO USE THIS at least ensure that no annot is associated with any of these nids

RESTful:

Method: DELETE URL: /api/name/

# Ignore: # >>> # UNPORTED_DOCTEST # >>> gpath_list = grabdata.get_test_gpaths(ndata=None)[0:4] # >>> gid_list = ibs.add_images(gpath_list) # >>> bbox_list = [(0, 0, 100, 100)]*len(gid_list) # >>> name_list = [‘a’, ‘b’, ‘a’, ‘d’] # >>> aid_list = ibs.add_annots(gid_list, bbox_list=bbox_list, name_list=name_list) # >>> assert len(aid_list) != 0, “No annotations added” # >>> nid_list = ibs.get_valid_nids() # >>> assert len(nid_list) != 0, “No names added” # >>> nid = nid_list[0] # >>> assert nid is not None, “nid is None” # >>> ibs.delete_names(nid) # >>> all_nids = ibs.get_valid_nids() # >>> assert nid not in all_nids, “NID not deleted”

wbia.control.manual_name_funcs.get_empty_nids(ibs, _nid_list=None)[source]

get name rowids that do not have any annotations (not including UNKONWN)

Returns

nid_list - all names without any animals (does not include unknown names) an nid is not invalid if it has a valid alias

Return type

list

CommandLine:

python -m wbia.control.manual_name_funcs –test-get_empty_nids

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_name_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb('testdb1')
>>> new_nid_list = ibs.make_next_nids(num=2)
>>> empty_nids = ibs.get_empty_nids()
>>> assert len(empty_nids) == 2, 'get_empty_nids fails1'
>>> assert new_nid_list == empty_nids, 'get_empty_nids fails2'
>>> ibs.delete_empty_nids()
>>> empty_nids2 = ibs.get_empty_nids()
>>> assert len(empty_nids2) == 0, 'get_empty_nids fails3'
>>> result = str(empty_nids2)
>>> print(result)
[]
wbia.control.manual_name_funcs.get_name_age_months_est_max(ibs, name_rowid_list)[source]
RESTful:

Method: GET URL: /api/name/age/months/max/

wbia.control.manual_name_funcs.get_name_age_months_est_min(ibs, name_rowid_list)[source]
RESTful:

Method: GET URL: /api/name/age/months/min/

wbia.control.manual_name_funcs.get_name_aids(ibs, nid_list, enable_unknown_fix=True, is_staged=False)[source]

# TODO: Rename to get_anot_rowids_from_name_rowid

Returns

aids_list a list of list of aids in each name

Return type

list

RESTful:

Method: GET URL: /api/name/annot/rowid/

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_name_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb('testdb1')
>>> # Map annotations to name ids
>>> aid_list = ibs.get_valid_aids()
>>> nid_list = ibs.get_annot_name_rowids(aid_list)
>>> # Get annotation ids for each name
>>> aids_list = ibs.get_name_aids(nid_list)
>>> # Run Assertion Test
>>> groupid2_items = ut.group_items(aids_list, nid_list)
>>> grouped_items = list(groupid2_items.values())
>>> passed_iter = map(ut.allsame, grouped_items)
>>> passed_list = list(passed_iter)
>>> assert all(passed_list), 'problem in get_name_aids'
>>> # Print gropued items
>>> print(ut.repr2(groupid2_items, newlines=False))
Ignore;

from wbia.control.manual_name_funcs import * # NOQA import wbia #ibs = wbia.opendb(‘testdb1’) #ibs = wbia.opendb(‘PZ_MTEST’) ibs = wbia.opendb(‘PZ_Master0’) #ibs = wbia.opendb(‘GZ_ALL’)

nid_list = ibs.get_valid_nids() nid_list_ = [const.UNKNOWN_NAME_ROWID if nid <= 0 else nid for nid in nid_list]

with ut.Timer(‘sql’):

#aids_list1 = ibs.get_name_aids(nid_list, enable_unknown_fix=False) aids_list1 = ibs.db.get(const.ANNOTATION_TABLE, (ANNOT_ROWID,), nid_list_, id_colname=NAME_ROWID, unpack_scalars=False)

with ut.Timer(‘hackquery + group’):

opstr = ‘’’ SELECT annot_rowid, name_rowid FROM annotations WHERE name_rowid IN

(%s) ORDER BY name_rowid ASC, annot_rowid ASC

‘’’ % (’, ‘.join(map(str, nid_list))) pair_list = ibs.db.connection.execute(opstr).fetchall() aids = np.array(ut.get_list_column(pair_list, 0)) nids = np.array(ut.get_list_column(pair_list, 1)) unique_nids, groupx = vt.group_indices(nids) grouped_aids_ = vt.apply_grouping(aids, groupx) aids_list5 = [sorted(arr.tolist()) for arr in grouped_aids_]

for aids1, aids5 in zip(aids_list1, aids_list5):
if (aids1) != (aids5):

logger.info(aids1) logger.info(aids5) logger.info(’—–‘)

ut.assert_lists_eq(list(map(tuple, aids_list5)), list(map(tuple, aids_list1)))

with ut.Timer(‘numpy’):

# alt method valid_aids = np.array(ibs.get_valid_aids()) valid_nids = np.array(ibs.get_annot_name_rowids(valid_aids, distinguish_unknowns=False)) aids_list2 = [valid_aids.take(np.flatnonzero(valid_nids == nid)).tolist() for nid in nid_list_]

with ut.Timer(‘numpy2’):

# alt method valid_aids = np.array(ibs.get_valid_aids()) valid_nids = np.array(ibs.get_annot_name_rowids(valid_aids, distinguish_unknowns=False)) aids_list3 = [valid_aids.take(np.flatnonzero(np.equal(valid_nids, nid))).tolist() for nid in nid_list_]

with ut.Timer(‘numpy3’):

# alt method valid_aids = np.array(ibs.get_valid_aids()) valid_nids = np.array(ibs.db.get_all_col_rows(const.ANNOTATION_TABLE, NAME_ROWID)) aids_list4 = [valid_aids.take(np.flatnonzero(np.equal(valid_nids, nid))).tolist() for nid in nid_list_]

assert aids_list2 == aids_list3 assert aids_list3 == aids_list4 assert aids_list1 == aids_list2

valid_aids = ibs.get_valid_aids() %timeit ibs.db.get_all_col_rows(‘annotations’, ‘rowid’) %timeit ibs.db.get_all_col_rows(‘annotations’, ‘name_rowid’) %timeit ibs.get_annot_name_rowids(valid_aids, distinguish_unknowns=False) %timeit ibs.get_valid_aids() %timeit ibs.get_annot_name_rowids(ibs.get_valid_aids(), distinguish_unknowns=False) valid_nids1 = ibs.get_annot_name_rowids(valid_aids, distinguish_unknowns=False) valid_nids2 = ibs.db.get_all_col_rows(‘annotations’, ‘name_rowid’) assert valid_nids1 == valid_nids2

ibs.db.fname ibs.db.fpath

import sqlite3

con = sqlite3.connect(ibs.db.fpath)

opstr = ‘’’ SELECT annot_rowid, name_rowid FROM annotations WHERE name_rowid IN

(SELECT name_rowid FROM name) ORDER BY name_rowid ASC, annot_rowid ASC

‘’’

annot_rowid_list = con.execute(opstr).fetchall() aid_list = ut.get_list_column(annot_rowid_list, 0) nid_list = ut.get_list_column(annot_rowid_list, 1)

# HACKY HACKY HACK

with ut.Timer(‘hackquery + group’):

#nid_list = ibs.get_valid_nids()[10:15] nid_list = ibs.get_valid_nids() opstr = ‘’’ SELECT annot_rowid, name_rowid FROM annotations WHERE name_rowid IN

(%s) ORDER BY name_rowid ASC, annot_rowid ASC

‘’’ % (’, ‘.join(map(str, nid_list))) pair_list = ibs.db.connection.execute(opstr).fetchall() aids = np.array(ut.get_list_column(pair_list, 0)) nids = np.array(ut.get_list_column(pair_list, 1)) unique_nids, groupx = vt.group_indices(nids) grouped_aids_ = vt.apply_grouping(aids, groupx) grouped_aids = [arr.tolist() for arr in grouped_aids_]

SELECT

name_rowid, COUNT(annot_rowid) AS number, GROUP_CONCAT(annot_rowid) AS aid_list

FROM annotations WHERE name_rowid in (SELECT name_rowid FROM name)

GROUP BY name_rowid

ORDER BY name_rowid ASC

import vtool as vt vt vt.aid_list[0]

annot_rowid_list = con.execute(opstr).fetchall() opstr = ‘’’

SELECT annot_rowid FROM annotations WHERE name_rowid=? ‘’’

cur = ibs.db.connection.cursor()

cur = con.execute(‘BEGIN IMMEDIATE TRANSACTION’) cur = ibs.db.connection res = [cur.execute(opstr, (nid,)).fetchall() for nid in nid_list_] cur.execute(‘COMMIT TRANSACTION’)

res = [ibs.db.cur.execute(opstr, (nid,)).fetchall() for nid in nid_list_]

wbia.control.manual_name_funcs.get_name_alias_texts(ibs, name_rowid_list)[source]
Returns

name_alias_text_list

Return type

list_ (list)

CommandLine:

python -m wbia.control.manual_name_funcs –test-get_name_texts

CommandLine:

python -m wbia.control.manual_name_funcs –test-get_name_alias_texts

RESTful:

Method: GET URL: /api/name/alias/text/

Example

>>> # DISABLE_DOCTEST
>>> from wbia.control.manual_name_funcs import *  # NOQA
>>> import wbia
>>> # build test data
>>> ibs = wbia.opendb('testdb1')
>>> name_rowid_list = ibs.get_valid_nids()
>>> # execute function
>>> name_alias_text_list = get_name_alias_texts(ibs, name_rowid_list)
>>> # verify results
>>> result = str(name_alias_text_list)
>>> print(result)
[None, None, None, None, None, None, None]
wbia.control.manual_name_funcs.get_name_annot_uuids(ibs, nid_list, **kwargs)[source]
wbia.control.manual_name_funcs.get_name_exemplar_aids(ibs, nid_list)[source]
Returns

a list of list of cids in each name

Return type

list_ (list)

CommandLine:

python -m wbia.control.manual_name_funcs –test-get_name_exemplar_aids

RESTful:

Method: GET URL: /api/name/annot/rowid/examplar/

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_name_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb('testdb1')
>>> aid_list = ibs.get_valid_aids()
>>> nid_list = ibs.get_annot_name_rowids(aid_list)
>>> exemplar_aids_list = ibs.get_name_exemplar_aids(nid_list)
>>> result = [sorted(i) for i in exemplar_aids_list]
>>> print(result)
[[], [2, 3], [2, 3], [], [5, 6], [5, 6], [7], [8], [], [10], [], [12], [13]]
wbia.control.manual_name_funcs.get_name_exemplar_name_uuids(ibs, nid_list, **kwargs)[source]
wbia.control.manual_name_funcs.get_name_gids(ibs, nid_list)[source]
Returns

the image ids associated with name ids

Return type

list_ (list)

RESTful:

Method: GET URL: /api/name/image/rowid/

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_name_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb('testdb1')
>>> nid_list = ibs._get_all_known_name_rowids()
>>> gids_list = ibs.get_name_gids(nid_list)
>>> result = [sorted(gids) for gids in gids_list]
>>> print(result)
[[2, 3], [5, 6], [7], [8], [10], [12], [13]]
wbia.control.manual_name_funcs.get_name_gps_tracks(ibs, nid_list=None, aid_list=None)[source]
CommandLine:

python -m wbia.other.ibsfuncs –test-get_name_gps_tracks

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_name_funcs import *  # NOQA
>>> import wbia
>>> # build test data
>>> #ibs = wbia.opendb('PZ_Master0')
>>> ibs = wbia.opendb('testdb1')
>>> #nid_list = ibs.get_valid_nids()
>>> aid_list = ibs.get_valid_aids()
>>> nid_list, gps_track_list, aid_track_list = ibs.get_name_gps_tracks(aid_list=aid_list)
>>> nonempty_list = list(map(lambda x: len(x) > 0, gps_track_list))
>>> ut.compress(nid_list, nonempty_list)
>>> ut.compress(gps_track_list, nonempty_list)
>>> ut.compress(aid_track_list, nonempty_list)
>>> aid_track_list = list(map(sorted, aid_track_list))
>>> result = str(aid_track_list)
>>> print(result)
[[11], [], [4], [1], [2, 3], [5, 6], [7], [8], [10], [12], [13]]
wbia.control.manual_name_funcs.get_name_has_split(ibs, nid_list)[source]
CommandLine:

python -m wbia.other.ibsfuncs –test-get_name_speeds

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_name_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb('testdb1')
>>> nid_list = ibs._get_all_known_nids()
>>> splits_list = ibs.get_name_has_split(nid_list)
>>> result = str(splits_list)
>>> print(result)
wbia.control.manual_name_funcs.get_name_hourdiffs(ibs, nid_list)[source]
CommandLine:

python -m wbia.other.ibsfuncs –test-get_name_hourdiffs

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_name_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb('testdb1')
>>> nid_list = ibs._get_all_known_nids()
>>> hourdiffs_list = ibs.get_name_hourdiffs(nid_list)
>>> result = hourdiffs_list
>>> print(hourdiffs_list)
wbia.control.manual_name_funcs.get_name_image_uuids(ibs, nid_list)[source]

DEPRICATE

Returns

the image ids associated with name ids

Return type

list_ (list)

RESTful:

Method: GET URL: /api/name/image/uuid/

wbia.control.manual_name_funcs.get_name_imgset_uuids(ibs, nid_list)[source]
RESTful:

Method: GET URL: /api/name/imageset/uuid/

wbia.control.manual_name_funcs.get_name_imgsetids(ibs, nid_list)[source]
RESTful:

Method: GET URL: /api/name/imageset/rowid/

wbia.control.manual_name_funcs.get_name_max_hourdiff(ibs, nid_list)[source]
wbia.control.manual_name_funcs.get_name_max_speed(ibs, nid_list)[source]
CommandLine:

python -m wbia.other.ibsfuncs –test-get_name_max_speed

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_name_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb('testdb1')
>>> nid_list = ibs._get_all_known_nids()
>>> maxspeed_list = ibs.get_name_max_speed(nid_list)
>>> result = maxspeed_list
>>> print(maxspeed_list)
wbia.control.manual_name_funcs.get_name_metadata(ibs, name_rowid_list, return_raw=False)[source]
Returns

name metadata dictionary

Return type

list_ (list)

RESTful:

Method: GET URL: /api/name/metadata/

wbia.control.manual_name_funcs.get_name_nids_with_gids(ibs, nid_list=None)[source]
wbia.control.manual_name_funcs.get_name_notes(ibs, name_rowid_list)[source]
Returns

notes_list - name notes

Return type

list_ (list)

RESTful:

Method: GET URL: /api/name/note/

wbia.control.manual_name_funcs.get_name_num_annotations(ibs, nid_list)[source]
Returns

the number of annotations for each name

Return type

list_ (list)

CommandLine:

python -m wbia.control.manual_name_funcs –test-get_name_num_annotations

RESTful:

Method: GET URL: /api/name/num/annot/

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_name_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb('testdb1')
>>> nid_list = ibs._get_all_known_name_rowids()
>>> result = get_name_num_annotations(ibs, nid_list)
>>> print(result)
[2, 2, 1, 1, 1, 1, 1]
wbia.control.manual_name_funcs.get_name_num_exemplar_annotations(ibs, nid_list)[source]
Returns

the number of annotations, which are exemplars for each name

Return type

list_ (list)

RESTful:

Method: GET URL: /api/name/num/annot/exemplar/

wbia.control.manual_name_funcs.get_name_rowids_from_text(ibs, name_text_list, ensure=True)[source]
Parameters
  • ibs (IBEISController) – wbia controller object

  • name_text_list (list) –

  • ensure (bool) – adds as new names if non-existant (default = True)

Returns

Creates one if it doesnt exist

Return type

name_rowid_list (list)

CommandLine:

python -m wbia.control.manual_name_funcs –test-get_name_rowids_from_text:0 python -m wbia.control.manual_name_funcs –test-get_name_rowids_from_text:1

Todo

should ensure be defaulted to False?

RESTful:

Method: GET URL: /api/name/rowid/text/

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_name_funcs import *  # NOQA
>>> import wbia
>>> import utool as ut
>>> ibs = wbia.opendb('testdb1')
>>> name_text_list = [u'Fred', u'Sue', '____', u'zebra_grevys', 'TYPO', '____']
>>> ensure = False
>>> name_rowid_list = ibs.get_name_rowids_from_text(name_text_list, ensure)
>>> print(ut.repr2(list(zip(name_text_list, name_rowid_list))))
>>> ensure = True
>>> name_rowid_list = ibs.get_name_rowids_from_text(name_text_list, ensure)
>>> print(ut.repr2(list(zip(name_text_list, name_rowid_list))))
>>> ibs.print_name_table()
>>> result = str(name_rowid_list) + '\n'
>>> typo_rowids = ibs.get_name_rowids_from_text(['TYPO', 'Fred', 'Sue', 'zebra_grevys'])
>>> ibs.delete_names(typo_rowids)
>>> result += str(ibs._get_all_known_name_rowids())
>>> print('----')
>>> ibs.print_name_table()
>>> assert result == f'{name_rowid_list}\n[1, 2, 3, 4, 5, 6, 7]'
>>> print(result)
wbia.control.manual_name_funcs.get_name_rowids_from_text_(ibs, name_text_list, ensure=True)[source]
Parameters
  • ibs (IBEISController) – wbia controller object

  • name_text_list (list) –

Returns

Return type

name_rowid_list (list)

CommandLine:

python -m wbia.control.manual_name_funcs –test-get_name_rowids_from_text_

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_name_funcs import *  # NOQA
>>> import wbia
>>> import utool as ut  # NOQA
>>> ibs = wbia.opendb('testdb1')
>>> name_text_list = [u'Fred', 'easy', u'Sue', '____', u'zebra_grevys', 'TYPO', 'jeff']
>>> name_rowid_list = ibs.get_name_rowids_from_text_(name_text_list)
>>> ibs.print_name_table()
>>> result = str(name_rowid_list)
>>> print(result)
[None, 1, None, 0, None, None, 3]
wbia.control.manual_name_funcs.get_name_rowids_from_uuid(ibs, uuid_list, nid_hack=False, ensure=True)[source]
Parameters
  • ibs (IBEISController) – wbia controller object

  • name_text_list (list) –

Returns

Return type

name_rowid_list (list)

wbia.control.manual_name_funcs.get_name_sex(ibs, name_rowid_list, eager=True, nInput=None)[source]

name_sex_list <- name.name_sex[name_rowid_list]

gets data from the “native” column “name_sex” in the “name” table

Parameters

name_rowid_list (list) –

Returns

name_sex_list

Return type

list

TemplateInfo:

Tgetter_table_column col = name_sex tbl = name

RESTful:

Method: GET URL: /api/name/sex/

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_name_funcs import *  # NOQA
>>> ibs, config2_ = testdata_ibs()
>>> name_rowid_list = ibs._get_all_name_rowids()
>>> eager = True
>>> name_sex_list = ibs.get_name_sex(name_rowid_list, eager=eager)
>>> assert len(name_rowid_list) == len(name_sex_list)
wbia.control.manual_name_funcs.get_name_sex_text(ibs, name_rowid_list, eager=True, nInput=None)[source]
RESTful:

Method: GET URL: /api/name/sex/text/

wbia.control.manual_name_funcs.get_name_speeds(ibs, nid_list)[source]
CommandLine:

python -m wbia.other.ibsfuncs –test-get_name_speeds

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_name_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb('testdb1')
>>> nid_list = ibs._get_all_known_nids()
>>> speeds_list = get_name_speeds(ibs, nid_list)
>>> result = str(speeds_list)
>>> print(result)
wbia.control.manual_name_funcs.get_name_temp_flag(ibs, name_rowid_list, eager=True, nInput=None)[source]

name_temp_flag_list <- name.name_temp_flag[name_rowid_list]

gets data from the “native” column “name_temp_flag” in the “name” table

Parameters

name_rowid_list (list) –

Returns

name_temp_flag_list

Return type

list

TemplateInfo:

Tgetter_table_column col = name_temp_flag tbl = name

CommandLine:

python -m wbia.control.manual_name_funcs –test-get_name_temp_flag

RESTful:

Method: GET URL: /api/name/temp/

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_name_funcs import *  # NOQA
>>> ibs, config2_ = testdata_ibs()
>>> name_rowid_list = ibs._get_all_name_rowids()
>>> eager = True
>>> name_temp_flag_list = ibs.get_name_temp_flag(name_rowid_list, eager=eager)
>>> assert len(name_rowid_list) == len(name_temp_flag_list)
wbia.control.manual_name_funcs.get_name_texts(ibs, name_rowid_list, apply_fix=True)[source]
Returns

text names

Return type

list_ (list)

CommandLine:

python -m wbia.control.manual_name_funcs –test-get_name_texts

RESTful:

Method: GET URL: /api/name/text/

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_name_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb('testdb1')
>>> name_rowid_list = ibs._get_all_known_name_rowids()
>>> name_text_list = get_name_texts(ibs, name_rowid_list)
>>> result = ut.repr2(name_text_list)
>>> print(result)
['easy', 'hard', 'jeff', 'lena', 'occl', 'polar', 'zebra']
wbia.control.manual_name_funcs.get_name_uuids(ibs, nid_list)[source]
Returns

uuids_list - name uuids

Return type

list_ (list)

RESTful:

Method: GET URL: /api/name/uuid/

wbia.control.manual_name_funcs.get_num_names(ibs, **kwargs)[source]

Number of valid names

CommandLine:

python -m wbia.control.manual_name_funcs –test-get_num_names

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_name_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb('testdb1')
>>> result = get_num_names(ibs)
>>> print(result)
7
wbia.control.manual_name_funcs.get_valid_nids(ibs, imgsetid=None, filter_empty=False, min_pername=None)[source]
Returns

all valid names with at least one animal (does not include unknown names)

Return type

list_ (list)

RESTful:

Method: GET URL: /api/name/

wbia.control.manual_name_funcs.sanitize_name_texts(ibs, name_text_list)[source]
RESTful:

Method: PUT URL: /api/name/sanitize

wbia.control.manual_name_funcs.set_name_alias_texts(ibs, name_rowid_list, name_alias_text_list)[source]
Returns

name_alias_text_list

Return type

list_ (list)

CommandLine:

python -m wbia.control.manual_name_funcs –test-get_name_texts

RESTful:

Method: PUT URL: /api/name/alias/text/

wbia.control.manual_name_funcs.set_name_metadata(ibs, name_rowid_list, metadata_dict_list)[source]

Sets the name’s metadata using a metadata dictionary

RESTful:

Method: PUT URL: /api/name/metadata/

wbia.control.manual_name_funcs.set_name_notes(ibs, name_rowid_list, notes_list)[source]

Sets a note for each name (multiple annotations)

RESTful:

Method: PUT URL: /api/name/note/

wbia.control.manual_name_funcs.set_name_sex(ibs, name_rowid_list, name_sex_list, duplicate_behavior='error')[source]

name_sex_list -> name.name_sex[name_rowid_list]

Parameters
  • name_rowid_list

  • name_sex_list

TemplateInfo:

Tsetter_native_column tbl = name col = name_sex

RESTful:

Method: PUT URL: /api/name/sex/

wbia.control.manual_name_funcs.set_name_sex_text(ibs, name_rowid_list, name_sex_text_list)[source]
RESTful:

Method: PUT URL: /api/name/sex/text/

wbia.control.manual_name_funcs.set_name_temp_flag(ibs, name_rowid_list, name_temp_flag_list, duplicate_behavior='error')[source]

name_temp_flag_list -> name.name_temp_flag[name_rowid_list]

Parameters
  • name_rowid_list

  • name_temp_flag_list

TemplateInfo:

Tsetter_native_column tbl = name col = name_temp_flag

RESTful:

Method: PUT URL: /api/name/temp/

wbia.control.manual_name_funcs.set_name_texts(ibs, name_rowid_list, name_text_list, verbose=False, notify_wildbook=False, assert_wildbook=False, update_json_log=True)[source]

Changes the name text. Does not affect the animals of this name. Effectively just changes the TEXT UUID

CommandLine:

python -m wbia.control.manual_name_funcs –test-set_name_texts

RESTful:

Method: PUT URL: /api/name/text/

Example

>>> # DISABLE_DOCTEST
>>> from wbia.control.manual_name_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb('testdb1')
>>> nid_list = ibs.get_valid_nids()[0:2]
>>> name_list = ibs.get_name_texts(nid_list)
>>> result = set_name_texts(ibs, nid_list, name_list)
>>> print(result)
wbia.control.manual_name_funcs.testdata_ibs(defaultdb='testdb1')[source]

wbia.control.manual_part_funcs module

Autogen:

python -c “import utool as ut; ut.write_modscript_alias(‘Tgen.sh’, ‘wbia.templates.template_generator’)” # NOQA sh Tgen.sh –key part –invert –Tcfg with_getters=True with_setters=True –modfname manual_part_funcs –funcname-filter=age_m # NOQA sh Tgen.sh –key part –invert –Tcfg with_getters=True with_setters=True –modfname manual_part_funcs –funcname-filter=is_ # NOQA sh Tgen.sh –key part –invert –Tcfg with_getters=True with_setters=True –modfname manual_part_funcs –funcname-filter=is_ –diff # NOQA

wbia.control.manual_part_funcs.add_parts(ibs, aid_list, bbox_list=None, theta_list=None, detect_confidence_list=None, notes_list=None, vert_list=None, part_uuid_list=None, viewpoint_list=None, quality_list=None, type_list=None, staged_uuid_list=None, staged_user_id_list=None, **kwargs)[source]

Adds an part to annotations

Parameters
  • aid_list (list) – annotation rowids to add part to

  • bbox_list (list) – of [x, y, w, h] bounding boxes for each annotation (supply verts instead)

  • theta_list (list) – orientations of parts

  • vert_list (list) – alternative to bounding box

Returns

part_rowid_list

Return type

list

Ignore:

detect_confidence_list = None notes_list = None part_uuid_list = None viewpoint_list = None quality_list = None type_list = None

RESTful:

Method: POST URL: /api/part/

wbia.control.manual_part_funcs.delete_parts(ibs, part_rowid_list)[source]

deletes parts from the database

RESTful:

Method: DELETE URL: /api/part/

Parameters
  • ibs (IBEISController) – wbia controller object

  • part_rowid_list (int) – list of part ids

wbia.control.manual_part_funcs.filter_part_set(ibs, part_rowid_list, include_only_aid_list=None, is_staged=False, viewpoint='no-filter', minqual=None)[source]
wbia.control.manual_part_funcs.get_num_parts(ibs, **kwargs)[source]

Number of valid parts

wbia.control.manual_part_funcs.get_part_aids(ibs, part_rowid_list, assume_unique=False)[source]

Get parent annotation rowids of parts

Parameters

part_rowid_list (list) –

Returns

annot rowids

Return type

aid_list (list)

RESTful:

Method: GET URL: /api/part/annot/rowid/

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_part_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb('testdb1')
>>> part_rowid_list = ibs.get_valid_part_rowids()
>>> result = get_part_aids(ibs, part_rowid_list)
>>> print(result)
wbia.control.manual_part_funcs.get_part_annot_rowids(ibs, part_rowid_list)[source]
wbia.control.manual_part_funcs.get_part_annot_uuids(ibs, part_rowid_list)[source]
wbia.control.manual_part_funcs.get_part_bboxes(ibs, part_rowid_list)[source]
Returns

part bounding boxes in image space

Return type

bbox_list (list)

RESTful:

Method: GET URL: /api/part/bbox/

wbia.control.manual_part_funcs.get_part_contour(ibs, part_rowid_list, return_raw=False)[source]
Returns

part contour dictionary

Return type

list_ (list)

RESTful:

Method: GET URL: /api/part/contour/

wbia.control.manual_part_funcs.get_part_detect_confidence(ibs, part_rowid_list)[source]
Returns

a list confidences that the parts is a valid detection

Return type

list_ (list)

RESTful:

Method: GET URL: /api/part/detect/confidence/

wbia.control.manual_part_funcs.get_part_gids(ibs, part_rowid_list, assume_unique=False)[source]

Get parent imageation rowids of parts

Parameters

part_rowid_list (list) –

Returns

image rowids

Return type

gid_list (list)

RESTful:

Method: GET URL: /api/part/image/rowid/

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_part_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb('testdb1')
>>> part_rowid_list = ibs.get_valid_part_rowids()
>>> result = get_part_gids(ibs, part_rowid_list)
>>> print(result)
wbia.control.manual_part_funcs.get_part_image_rowids(ibs, part_rowid_list)[source]
wbia.control.manual_part_funcs.get_part_image_uuids(ibs, part_rowid_list)[source]
wbia.control.manual_part_funcs.get_part_isjunk(ibs, part_rowid_list)[source]

Auto-docstr for ‘get_part_isjunk’

wbia.control.manual_part_funcs.get_part_metadata(ibs, part_rowid_list, return_raw=False)[source]
Returns

part metadata dictionary

Return type

list_ (list)

RESTful:

Method: GET URL: /api/part/metadata/

wbia.control.manual_part_funcs.get_part_missing_uuid(ibs, uuid_list)[source]
Returns

a list of missing part uuids

Return type

list_ (list)

wbia.control.manual_part_funcs.get_part_notes(ibs, part_rowid_list)[source]
Returns

a list of part notes

Return type

part_notes_list (list)

RESTful:

Method: GET URL: /api/part/note/

wbia.control.manual_part_funcs.get_part_num_verts(ibs, part_rowid_list)[source]
Returns

the number of vertices that form the polygon of each part

Return type

nVerts_list (list)

RESTful:

Method: GET URL: /api/part/num/vert/

wbia.control.manual_part_funcs.get_part_qualities(ibs, part_rowid_list, eager=True)[source]

part_quality_list <- part.part_quality[part_rowid_list]

gets data from the “native” column “part_quality” in the “part” table

Parameters

part_rowid_list (list) –

Returns

part_quality_list

Return type

list

TemplateInfo:

Tgetter_table_column col = part_quality tbl = part

SeeAlso:

wbia.const.QUALITY_INT_TO_TEXT

RESTful:

Method: GET URL: /api/part/quality/

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_part_funcs import *  # NOQA
>>> ibs, qreq_ = testdata_ibs()
>>> part_rowid_list = ibs._get_all_part_rowids()
>>> eager = True
>>> part_quality_list = ibs.get_part_qualities(part_rowid_list, eager=eager)
>>> print('part_quality_list = %r' % (part_quality_list,))
>>> assert len(part_rowid_list) == len(part_quality_list)
wbia.control.manual_part_funcs.get_part_quality_texts(ibs, part_rowid_list)[source]

Auto-docstr for ‘get_part_quality_texts’

RESTful:

Method: GET URL: /api/part/quality/text/

wbia.control.manual_part_funcs.get_part_reviewed(ibs, part_rowid_list)[source]
Returns

“All Instances Found” flag, true if all objects of interest

Return type

list_ (list)

(animals) have an PART in the part

RESTful:

Method: GET URL: /api/part/reviewed/

wbia.control.manual_part_funcs.get_part_rotated_verts(ibs, part_rowid_list)[source]
Returns

verticies after rotation by theta.

Return type

rotated_vert_list (list)

RESTful:

Method: GET URL: /api/part/vert/rotated/

wbia.control.manual_part_funcs.get_part_rowids_from_uuid(ibs, uuid_list)[source]
Returns

part rowids

Return type

list_ (list)

RESTful:

Method: GET URL: /api/part/rowid/uuid/

wbia.control.manual_part_funcs.get_part_rows(ibs, part_rowid_list)[source]

Auto-docstr for ‘get_part_rows’

wbia.control.manual_part_funcs.get_part_staged_flags(ibs, part_rowid_list)[source]

returns if an part is staged

Parameters
  • ibs (IBEISController) – wbia controller object

  • part_rowid_list (int) – list of part ids

Returns

part_staged_flag_list - True if part is staged

Return type

list

CommandLine:

python -m wbia.control.manual_part_funcs –test-get_part_staged_flags

RESTful:

Method: GET URL: /api/part/staged/

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_part_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb('testdb1')
>>> part_rowid_list = ibs.get_valid_part_rowids()
>>> gid_list = get_part_staged_flags(ibs, part_rowid_list)
>>> result = str(gid_list)
>>> print(result)
wbia.control.manual_part_funcs.get_part_staged_metadata(ibs, part_rowid_list, return_raw=False)[source]
Returns

part metadata dictionary

Return type

list_ (list)

RESTful:

Method: GET URL: /api/part/staged/metadata/

wbia.control.manual_part_funcs.get_part_staged_user_ids(ibs, part_rowid_list)[source]

returns if an part is staged

Parameters
  • ibs (IBEISController) – wbia controller object

  • part_rowid_list (int) – list of part ids

Returns

part_staged_user_id_list - True if part is staged

Return type

list

CommandLine:

python -m wbia.control.manual_part_funcs –test-get_part_staged_user_ids

RESTful:

Method: GET URL: /api/part/staged/user/

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_part_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb('testdb1')
>>> part_rowid_list = ibs.get_valid_part_rowids()
>>> gid_list = get_part_staged_user_ids(ibs, part_rowid_list)
>>> result = str(gid_list)
>>> print(result)
wbia.control.manual_part_funcs.get_part_staged_uuids(ibs, aid_list)[source]
Returns

part_uuid_list a list of image uuids by aid

Return type

list

RESTful:

Method: GET URL: /api/part/staged/uuid/

wbia.control.manual_part_funcs.get_part_tag_text(ibs, part_rowid_list, **kwargs)[source]

part_tags_list <- part.part_tags[part_rowid_list]

gets data from the “native” column “part_tags” in the “part” table

Parameters

part_rowid_list (list) –

Returns

part_tags_list

Return type

list

Example

>>> # DISABLE_DOCTEST
>>> from wbia.control.manual_part_funcs import *  # NOQA
>>> ibs, config2_ = testdata_ibs()
>>> part_rowid_list = ibs._get_all_part_rowids()
>>> eager = True
>>> part_tags_list = ibs.get_part_tag_text(part_rowid_list, eager=eager)
>>> assert len(part_rowid_list) == len(part_tags_list)
wbia.control.manual_part_funcs.get_part_thetas(ibs, part_rowid_list)[source]
Returns

a list of floats describing the angles of each part

Return type

theta_list (list)

CommandLine:

python -m wbia.control.manual_part_funcs –test-get_part_thetas

RESTful:

Method: GET URL: /api/part/theta/

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_part_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb('NAUT_test')
>>> part_rowid_list = ibs.get_valid_part_rowids()
>>> result = get_part_thetas(ibs, part_rowid_list)
>>> print(result)
[]
wbia.control.manual_part_funcs.get_part_types(ibs, part_rowid_list)[source]
Returns

a list of part notes

Return type

part_notes_list (list)

RESTful:

Method: GET URL: /api/part/note/

wbia.control.manual_part_funcs.get_part_uuids(ibs, part_rowid_list)[source]
Returns

part_uuid_list a list of part uuids by part_rowid

Return type

list

RESTful:

Method: GET URL: /api/part/uuid/

wbia.control.manual_part_funcs.get_part_verts(ibs, part_rowid_list)[source]
Returns

the vertices that form the polygon of each part

Return type

vert_list (list)

RESTful:

Method: GET URL: /api/part/vert/

wbia.control.manual_part_funcs.get_part_viewpoints(ibs, part_rowid_list)[source]
Returns

a list of part notes

Return type

part_notes_list (list)

RESTful:

Method: GET URL: /api/part/note/

wbia.control.manual_part_funcs.get_valid_part_rowids(ibs, include_only_aid_list=None, is_staged=False, viewpoint='no-filter', minqual=None)[source]
wbia.control.manual_part_funcs.get_valid_part_uuids(ibs)[source]
Returns

part_uuid_list a list of part uuids for all valid part_rowids

Return type

list

wbia.control.manual_part_funcs.part_src_api(rowid=None)[source]

Returns the base64 encoded image of part <rowid>

RESTful:

Method: GET URL: /api/part/<rowid>/

wbia.control.manual_part_funcs.set_part_bboxes(ibs, part_rowid_list, bbox_list)[source]

Sets bboxes of a list of parts by part_rowid,

Parameters
  • part_rowid_list (list of rowids) – list of part rowids

  • bbox_list (list of (x, y, w, h)) – new bounding boxes for each part_rowid

Note

set_part_bboxes is a proxy for set_part_verts

RESTful:

Method: PUT URL: /api/part/bbox/

wbia.control.manual_part_funcs.set_part_contour(ibs, part_rowid_list, contour_dict_list)[source]

Sets the part’s contour using a contour dictionary

RESTful:

Method: PUT URL: /api/part/contour/

CommandLine:

python -m wbia.control.manual_part_funcs –test-set_part_contour

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_part_funcs import *  # NOQA
>>> import wbia
>>> import random
>>> # build test data
>>> ibs = wbia.opendb('testdb1')
>>> aid_list = ibs.get_valid_aids()[0:1]
>>> bbox_list = [[0, 0, 100, 100]] * len(aid_list)
>>> part_rowid_list = ibs.add_parts(aid_list, bbox_list=bbox_list)
>>> contour_dict_list = [
>>>     {'test': random.uniform(0.0, 1.0)},
>>> ]
>>> print(ut.repr2(contour_dict_list))
>>> ibs.set_part_contour(part_rowid_list, contour_dict_list)
>>> # verify results
>>> contour_dict_list_ = ibs.get_part_contour(part_rowid_list)
>>> print(ut.repr2(contour_dict_list_))
>>> assert contour_dict_list == contour_dict_list_
>>> contour_str_list = [ut.to_json(contour_dict) for contour_dict in contour_dict_list]
>>> print(ut.repr2(contour_str_list))
>>> contour_str_list_ = ibs.get_part_contour(part_rowid_list, return_raw=True)
>>> print(ut.repr2(contour_str_list_))
>>> assert contour_str_list == contour_str_list_
>>> ibs.delete_parts(part_rowid_list)
wbia.control.manual_part_funcs.set_part_detect_confidence(ibs, part_rowid_list, confidence_list)[source]

Sets part notes

RESTful:

Method: PUT URL: /api/part/detect/confidence/

wbia.control.manual_part_funcs.set_part_metadata(ibs, part_rowid_list, metadata_dict_list)[source]

Sets the part’s metadata using a metadata dictionary

RESTful:

Method: PUT URL: /api/part/metadata/

CommandLine:

python -m wbia.control.manual_part_funcs –test-set_part_metadata

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_part_funcs import *  # NOQA
>>> import wbia
>>> import random
>>> # build test data
>>> ibs = wbia.opendb('testdb1')
>>> aid_list = ibs.get_valid_aids()[0:1]
>>> bbox_list = [[0, 0, 100, 100]] * len(aid_list)
>>> part_rowid_list = ibs.add_parts(aid_list, bbox_list=bbox_list)
>>> metadata_dict_list = [
>>>     {'test': random.uniform(0.0, 1.0)},
>>> ]
>>> print(ut.repr2(metadata_dict_list))
>>> ibs.set_part_metadata(part_rowid_list, metadata_dict_list)
>>> # verify results
>>> metadata_dict_list_ = ibs.get_part_metadata(part_rowid_list)
>>> print(ut.repr2(metadata_dict_list_))
>>> assert metadata_dict_list == metadata_dict_list_
>>> metadata_str_list = [ut.to_json(metadata_dict) for metadata_dict in metadata_dict_list]
>>> print(ut.repr2(metadata_str_list))
>>> metadata_str_list_ = ibs.get_part_metadata(part_rowid_list, return_raw=True)
>>> print(ut.repr2(metadata_str_list_))
>>> assert metadata_str_list == metadata_str_list_
>>> ibs.delete_parts(part_rowid_list)
wbia.control.manual_part_funcs.set_part_notes(ibs, part_rowid_list, notes_list)[source]

Sets part notes

RESTful:

Method: PUT URL: /api/part/note/

wbia.control.manual_part_funcs.set_part_qualities(ibs, part_rowid_list, part_quality_list)[source]

part_quality_list -> part.part_quality[part_rowid_list]

A quality is an integer representing the following types:

Parameters
  • part_rowid_list

  • part_quality_list

SeeAlso:

wbia.const.QUALITY_INT_TO_TEXT

RESTful:

Method: PUT URL: /api/part/quality/

wbia.control.manual_part_funcs.set_part_quality_texts(ibs, part_rowid_list, quality_text_list)[source]

Auto-docstr for ‘set_part_quality_texts’

RESTful:

Method: PUT URL: /api/part/quality/text/

wbia.control.manual_part_funcs.set_part_reviewed(ibs, part_rowid_list, reviewed_list)[source]

Sets the part all instances found bit

RESTful:

Method: PUT URL: /api/part/reviewed/

wbia.control.manual_part_funcs.set_part_staged_metadata(ibs, part_rowid_list, metadata_dict_list)[source]

Sets the part’s staged metadata using a metadata dictionary

RESTful:

Method: PUT URL: /api/part/staged/metadata/

CommandLine:

python -m wbia.control.manual_part_funcs –test-set_part_staged_metadata

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_part_funcs import *  # NOQA
>>> import wbia
>>> import random
>>> # build test data
>>> ibs = wbia.opendb('testdb1')
>>> aid_list = ibs.get_valid_aids()[0:1]
>>> bbox_list = [[0, 0, 100, 100]] * len(aid_list)
>>> part_rowid_list = ibs.add_parts(aid_list, bbox_list=bbox_list)
>>> metadata_dict_list = [
>>>     {'test': random.uniform(0.0, 1.0)},
>>> ] * len(part_rowid_list)
>>> print(ut.repr2(metadata_dict_list))
>>> ibs.set_part_staged_metadata(part_rowid_list, metadata_dict_list)
>>> # verify results
>>> metadata_dict_list_ = ibs.get_part_staged_metadata(part_rowid_list)
>>> print(ut.repr2(metadata_dict_list_))
>>> assert metadata_dict_list == metadata_dict_list_
>>> metadata_str_list = [ut.to_json(metadata_dict) for metadata_dict in metadata_dict_list]
>>> print(ut.repr2(metadata_str_list))
>>> metadata_str_list_ = ibs.get_part_staged_metadata(part_rowid_list, return_raw=True)
>>> print(ut.repr2(metadata_str_list_))
>>> assert metadata_str_list == metadata_str_list_
>>> ibs.delete_parts(part_rowid_list)
wbia.control.manual_part_funcs.set_part_staged_user_ids(ibs, part_rowid_list, user_id_list)[source]

Sets the staged part user id

RESTful:

Method: PUT URL: /api/part/staged/user/

wbia.control.manual_part_funcs.set_part_staged_uuids(ibs, aid_list, part_uuid_list)[source]
Returns

all nids of known animals (does not include unknown names)

Return type

list_ (list)

wbia.control.manual_part_funcs.set_part_tag_text(ibs, part_rowid_list, part_tags_list, duplicate_behavior='error')[source]

part_tags_list -> part.part_tags[part_rowid_list]

Parameters
  • part_rowid_list

  • part_tags_list

wbia.control.manual_part_funcs.set_part_thetas(ibs, part_rowid_list, theta_list)[source]

Sets thetas of a list of part_rowid_list

RESTful:

Method: PUT URL: /api/part/theta/

wbia.control.manual_part_funcs.set_part_types(ibs, part_rowid_list, type_list)[source]

Sets part notes

RESTful:

Method: PUT URL: /api/part/note/

wbia.control.manual_part_funcs.set_part_verts(ibs, part_rowid_list, verts_list, delete_thumbs=True, notify_root=True)[source]

Sets the vertices [(x, y), …] of a list of part_rowid_list

RESTful:

Method: PUT URL: /api/part/vert/

wbia.control.manual_part_funcs.set_part_viewpoints(ibs, part_rowid_list, viewpoint_list)[source]

Sets part notes

RESTful:

Method: PUT URL: /api/part/note/

wbia.control.manual_part_funcs.testdata_ibs()[source]

Auto-docstr for ‘testdata_ibs’

wbia.control.manual_part_funcs.update_part_rotate_90(ibs, part_rowid_list, direction)[source]
wbia.control.manual_part_funcs.update_part_rotate_left_90(ibs, part_rowid_list)[source]
wbia.control.manual_part_funcs.update_part_rotate_right_90(ibs, part_rowid_list)[source]

wbia.control.manual_review_funcs module

python -c “import utool as ut; ut.write_modscript_alias(‘Tgen.sh’, ‘wbia.templates.template_generator’)” sh Tgen.sh –key review –invert –Tcfg with_getters=True with_setters=False –modfname manual_review_funcs

# TODO: Fix this name it is too special case

wbia.control.manual_review_funcs.add_review(ibs, aid_1_list, aid_2_list, evidence_decision_list, meta_decision_list=None, review_uuid_list=None, identity_list=None, user_confidence_list=None, tags_list=None, review_client_start_time_posix=None, review_client_end_time_posix=None, review_server_start_time_posix=None, review_server_end_time_posix=None)[source]

Adds a list of reviews.

Returns

review_id_list - review rowids

Return type

list

RESTful:

Method: POST URL: /api/review/

CommandLine:

python -m wbia.control.manual_review_funcs –test-add_review

Doctest:
>>> import wbia
>>> from wbia.control.manual_review_funcs import *
>>> ibs = wbia.opendb('testdb1')
>>> ibs.staging.get_table_as_pandas('reviews')
>>> # ensure it is empty
>>> rowids = ibs.staging.get_all_rowids('reviews')
>>> ibs.staging.delete_rowids('reviews', rowids)
>>> ut.exec_funckw(ibs.add_review, globals())
>>> # Add some dummy reviews
>>> aid_1_list = [1, 2, 3, 2]
>>> aid_2_list = [2, 3, 4, 3]
>>> evidence_decision_list = [1, 0, 1, 2]
>>> new_rowids = ibs.add_review(aid_1_list, aid_2_list,
>>>                             evidence_decision_list)
>>> assert new_rowids == [1, 2, 3, 4]
>>> table = ibs.staging.get_table_as_pandas('reviews')
>>> print(table)
>>> # Then delete them
>>> ibs.staging.delete_rowids('reviews', new_rowids)
wbia.control.manual_review_funcs.delete_review(ibs, review_rowid_list)[source]

deletes reviews from the database

RESTful:

Method: DELETE URL: /api/review/

wbia.control.manual_review_funcs.e_(u, v)[source]
wbia.control.manual_review_funcs.get_review_aid_tuple(ibs, review_rowid_list, eager=True, nInput=None)[source]
wbia.control.manual_review_funcs.get_review_count(ibs, review_rowid_list)[source]
wbia.control.manual_review_funcs.get_review_counts_from_pairs(ibs, aid_pairs, eager=True, nInput=None)[source]
Returns

review_counts_list - review counts

Return type

list_ (list)

RESTful:

Method: GET URL: /api/review/counts/tuple/

wbia.control.manual_review_funcs.get_review_counts_from_tuple(ibs, aid_1_list, aid_2_list, eager=True, nInput=None)[source]
Returns

review_counts_list - review counts

Return type

list_ (list)

RESTful:

Method: GET URL: /api/review/counts/tuple/

wbia.control.manual_review_funcs.get_review_decision(ibs, review_rowid_list)[source]
wbia.control.manual_review_funcs.get_review_decision_str(ibs, review_rowid_list)[source]
wbia.control.manual_review_funcs.get_review_decisions_from_only(ibs, aid_list, eager=True, nInput=None)[source]
Returns

review_tuple_decisions_list - review decisions

Return type

list_ (list)

RESTful:

Method: GET URL: /api/review/decisions/only/

wbia.control.manual_review_funcs.get_review_exists_from_edges(ibs, edges, eager=True, nInput=None)[source]
wbia.control.manual_review_funcs.get_review_identities_from_tuple(ibs, aid_1_list, aid_2_list, eager=True, nInput=None)[source]
Returns

review_identities_list - review identities

Return type

list_ (list)

RESTful:

Method: GET URL: /api/review/identities/tuple/

wbia.control.manual_review_funcs.get_review_identity(ibs, review_rowid_list)[source]
wbia.control.manual_review_funcs.get_review_metadata(ibs, review_rowid_list, return_raw=False)[source]
Returns

review metadata dictionary

Return type

list_ (list)

RESTful:

Method: GET URL: /api/review/metadata/

wbia.control.manual_review_funcs.get_review_posix_client_end_time(ibs, review_rowid_list)[source]
wbia.control.manual_review_funcs.get_review_posix_client_start_time(ibs, review_rowid_list)[source]
wbia.control.manual_review_funcs.get_review_posix_server_end_time(ibs, review_rowid_list)[source]
wbia.control.manual_review_funcs.get_review_posix_server_start_time(ibs, review_rowid_list)[source]
wbia.control.manual_review_funcs.get_review_posix_time(ibs, review_rowid_list)[source]
wbia.control.manual_review_funcs.get_review_posix_times_from_tuple(ibs, aid_1_list, aid_2_list, eager=True, nInput=None)[source]
Returns

identity_list - review posix times

Return type

list_ (list)

RESTful:

Method: GET URL: /api/review/time/posix/tuple/

wbia.control.manual_review_funcs.get_review_rowid_from_superkey(ibs, aid_1_list, aid_2_list, count_list, eager=False, nInput=None)[source]

Returns review_rowid_list

Parameters

lists (superkey) – review_rowid_list, aid_list

Returns

review_rowid_list

wbia.control.manual_review_funcs.get_review_rowids_between(ibs, aids1, aids2=None, method=1)[source]

Find staging rowids between sets of aids

Doctest:
>>> from wbia.control.manual_review_funcs import *
>>> import wbia
>>> ibs = wbia.opendb('PZ_MTEST')
>>> aids1 = aids2 = [1, 2, 3, 4, 5, 6]
>>> rowids_between = ibs.get_review_rowids_between
>>> ids1 = sorted(rowids_between(aids1, aids2, method=1))
>>> ids2 = sorted(rowids_between(aids1, aids2, method=2))
>>> assert len(ub.find_duplicates(ids1)) == 0
>>> assert len(ub.find_duplicates(ids2)) == 0
>>> assert ids1 == ids2
wbia.control.manual_review_funcs.get_review_rowids_from_aid1(ibs, aid_list, eager=True, nInput=None)[source]
wbia.control.manual_review_funcs.get_review_rowids_from_aid2(ibs, aid_list, eager=True, nInput=None)[source]
wbia.control.manual_review_funcs.get_review_rowids_from_aid_tuple(ibs, aid_1_list, aid_2_list, eager=True, nInput=None)[source]

Aid pairs are undirected

Returns

review_rowid_list - review rowid list of lists

Return type

list_ (list)

RESTful:

Method: GET URL: /api/review/rowid/tuple/

wbia.control.manual_review_funcs.get_review_rowids_from_edges(ibs, edges, eager=True, nInput=None, directed=False)[source]
wbia.control.manual_review_funcs.get_review_rowids_from_only(ibs, aid_list, eager=True, nInput=None)[source]
Returns

review_rowids

Return type

list_ (list)

RESTful:

Method: GET URL: /api/review/rowids/only/

wbia.control.manual_review_funcs.get_review_rowids_from_single(ibs, aid_list, eager=True, nInput=None)[source]
wbia.control.manual_review_funcs.get_review_tags(ibs, review_rowid_list)[source]
wbia.control.manual_review_funcs.get_review_tags_from_tuple(ibs, aid_1_list, aid_2_list, eager=True, nInput=None)[source]
Returns

review_tags_list - review tags (list of strings)

Return type

list_ (list)

RESTful:

Method: GET URL: /api/review/tags/tuple/

wbia.control.manual_review_funcs.get_review_user_confidence(ibs, review_rowid_list)[source]
wbia.control.manual_review_funcs.get_review_uuid(ibs, review_rowid_list)[source]
wbia.control.manual_review_funcs.hack_create_aidpair_index(ibs)[source]
wbia.control.manual_review_funcs.set_review_metadata(ibs, review_rowid_list, metadata_dict_list)[source]

Sets the review’s metadata using a metadata dictionary

RESTful:

Method: PUT URL: /api/review/metadata/

CommandLine:

python -m wbia.control.manual_review_funcs –test-set_review_metadata

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_review_funcs import *  # NOQA
>>> import wbia
>>> import random
>>> # build test data
>>> ibs = wbia.opendb('testdb1')
>>> review_rowid_list = ibs.add_review([1], [2], [0])
>>> metadata_dict_list = [
>>>     {'test': random.uniform(0.0, 1.0)},
>>> ]
>>> print(ut.repr2(metadata_dict_list))
>>> ibs.set_review_metadata(review_rowid_list, metadata_dict_list)
>>> # verify results
>>> metadata_dict_list_ = ibs.get_review_metadata(review_rowid_list)
>>> print(ut.repr2(metadata_dict_list_))
>>> assert metadata_dict_list == metadata_dict_list_
>>> metadata_str_list = [ut.to_json(metadata_dict) for metadata_dict in metadata_dict_list]
>>> print(ut.repr2(metadata_str_list))
>>> metadata_str_list_ = ibs.get_review_metadata(review_rowid_list, return_raw=True)
>>> print(ut.repr2(metadata_str_list_))
>>> assert metadata_str_list == metadata_str_list_
>>> ibs.delete_review(review_rowid_list)

wbia.control.manual_species_funcs module

python -c “import utool as ut; ut.write_modscript_alias(‘Tgen.sh’, ‘wbia.templates.template_generator’)” sh Tgen.sh –key species –invert –Tcfg with_getters=True with_setters=False –modfname manual_species_funcs

# TODO: Fix this name it is too special case

wbia.control.manual_species_funcs.add_species(ibs, species_nice_list, species_text_list=None, species_code_list=None, species_uuid_list=None, species_note_list=None, skip_cleaning=False)[source]

Adds a list of species.

Returns

speciesid_list - species rowids

Return type

list

RESTful:

Method: POST URL: /api/species/

CommandLine:

python -m wbia.control.manual_species_funcs –test-add_species

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_species_funcs import *  # NOQA
>>> import wbia
>>> import utool as ut
>>> ibs = wbia.opendb('testdb1')
>>> species_text_list = [
...     'jaguar', 'zebra_plains', 'zebra_plains', '____', 'TYPO',
...     '____', 'zebra_grevys', 'bear_polar+head']
>>> species_rowid_list = ibs.add_species(species_text_list)
>>> print(ut.repr2(list(zip(species_text_list, species_rowid_list))))
>>> ibs.print_species_table()
>>> species_text = ibs.get_species_texts(species_rowid_list)
>>> # Ensure we leave testdb1 in a clean state
>>> ibs.delete_species(ibs.get_species_rowids_from_text(['jaguar', 'TYPO']))
>>> all_species_rowids = ibs._get_all_species_rowids()
>>> result =  ut.repr2(species_text, nl=False) + '\n'
>>> result += ut.repr2(all_species_rowids, nl=False) + '\n'
>>> result += ut.repr2(ibs.get_species_texts(all_species_rowids), nl=False) + '\n'
>>> result += ut.repr2(ibs.get_species_codes(all_species_rowids), nl=False)
>>> print(result)
['jaguar', 'zebra_plains', 'zebra_plains', '____', 'typo', '____', 'zebra_grevys', 'bear_polar+head']
[1, 2, 3, 6]
['zebra_plains', 'zebra_grevys', 'bear_polar', 'bear_polar+head']
['PZ', 'GZ', 'PB', 'BP+H']
wbia.control.manual_species_funcs.delete_empty_species(ibs)[source]

deletes empty species from the database

wbia.control.manual_species_funcs.delete_species(ibs, species_rowid_list)[source]

deletes species from the database

CAREFUL. YOU PROBABLY DO NOT WANT TO USE THIS at least ensure that no annot is associated with any of these species rowids

RESTful:

Method: DELETE URL: /api/species/

wbia.control.manual_species_funcs.get_all_species_nice(ibs)[source]
Returns

all nids of known animals (does not include unknown names)

Return type

list_ (list)

wbia.control.manual_species_funcs.get_all_species_texts(ibs)[source]
Returns

all nids of known animals (does not include unknown names)

Return type

list_ (list)

wbia.control.manual_species_funcs.get_species_codes(ibs, species_rowid_list)[source]
Returns

code_list - species codes

Return type

list_ (list)

RESTful:

Method: GET URL: /api/species/code/

wbia.control.manual_species_funcs.get_species_enabled(ibs, species_rowid_list)[source]
Returns

“Species Enabled” flag, true if the species is enabled

Return type

list_ (list)

wbia.control.manual_species_funcs.get_species_nice(ibs, species_rowid_list)[source]
Returns

species_text_list nice names

Return type

list

CommandLine:

python -m wbia.control.manual_species_funcs –test-get_species_nice –enableall

RESTful:

Method: GET URL: /api/species/nice/

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_species_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb('testdb1')
>>> ibs._clean_species()
>>> species_rowid_list = ibs._get_all_species_rowids()
>>> result = get_species_nice(ibs, species_rowid_list)
>>> result = ut.repr2(result)
>>> print(result)
['Zebra (Plains)', "Zebra (Grevy's)", 'Polar Bear', 'bear_polar+head']
wbia.control.manual_species_funcs.get_species_notes(ibs, species_rowid_list)[source]
Returns

notes_list - species notes

Return type

list_ (list)

RESTful:

Method: GET URL: /api/species/note/

wbia.control.manual_species_funcs.get_species_rowids_from_text(ibs, species_text_list, ensure=True, **kwargs)[source]
Returns

Creates one if it doesnt exist

Return type

species_rowid_list (list)

CommandLine:

python -m wbia.control.manual_species_funcs –test-get_species_rowids_from_text:0 python -m wbia.control.manual_species_funcs –test-get_species_rowids_from_text:1

RESTful:

Method: GET URL: /api/species/rowid/text/

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_species_funcs import *  # NOQA
>>> import wbia
>>> import utool as ut
>>> ibs = wbia.opendb('testdb1')
>>> species_text_list = [
...     u'jaguar', u'zebra_plains', u'zebra_plains', '____', 'TYPO',
...     '____', u'zebra_grevys', u'bear_polar']
>>> ensure = False
>>> species_rowid_list = ibs.get_species_rowids_from_text(species_text_list, ensure)
>>> print(ut.repr2(list(zip(species_text_list, species_rowid_list))))
>>> ensure = True
>>> species_rowid_list = ibs.get_species_rowids_from_text(species_text_list, ensure)
>>> print(ut.repr2(list(zip(species_text_list, species_rowid_list))))
>>> ibs.print_species_table()
>>> species_text = ibs.get_species_texts(species_rowid_list)
>>> # Ensure we leave testdb1 in a clean state
>>> ibs.delete_species(ibs.get_species_rowids_from_text(['jaguar', 'TYPO']))
>>> all_species_rowids = ibs._get_all_species_rowids()
>>> result = ut.repr2(species_text, nl=False) + '\n'
>>> result += ut.repr2(all_species_rowids, nl=False) + '\n'
>>> result += ut.repr2(ibs.get_species_texts(all_species_rowids), nl=False)
>>> print(result)
['jaguar', 'zebra_plains', 'zebra_plains', '____', 'typo', '____', 'zebra_grevys', 'bear_polar']
[1, 2, 3, 6]
['zebra_plains', 'zebra_grevys', 'bear_polar', 'bear_polar+head']

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_species_funcs import *  # NOQA
>>> import wbia
>>> import utool as ut  # NOQA
>>> ibs = wbia.opendb('testdb1')
>>> species_text_list = [
...     u'jaguar', u'zebra_plains', u'zebra_plains', '____', 'TYPO',
...     '____', u'zebra_grevys', u'bear_polar']
>>> ensure = False
>>> species_rowid_list = ibs.get_species_rowids_from_text(species_text_list, ensure)
wbia.control.manual_species_funcs.get_species_rowids_from_uuids(ibs, species_uuid_list)[source]
Returns

Creates one if it doesnt exist

Return type

species_rowid_list (list)

CommandLine:

python -m wbia.control.manual_species_funcs –test-get_species_rowids_from_text:0 python -m wbia.control.manual_species_funcs –test-get_species_rowids_from_text:1

RESTful:

Method: GET URL: /api/species/rowid/uuid/

wbia.control.manual_species_funcs.get_species_texts(ibs, species_rowid_list)[source]
Returns

species_text_list text names

Return type

list

CommandLine:

python -m wbia.control.manual_species_funcs –test-get_species_texts –enableall

RESTful:

Method: GET URL: /api/species/text/

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_species_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb('testdb1')
>>> species_rowid_list = ibs._get_all_species_rowids()
>>> result = get_species_texts(ibs, species_rowid_list)
>>> result = ut.repr2(result)
>>> print(result)
['zebra_plains', 'zebra_grevys', 'bear_polar', 'bear_polar+head']
wbia.control.manual_species_funcs.get_species_uuids(ibs, species_rowid_list)[source]
Returns

uuids_list - species uuids

Return type

list_ (list)

RESTful:

Method: GET URL: /api/species/uuid/

wbia.control.manual_species_funcs.sanitize_species_texts(ibs, species_text_list)[source]

changes unknown species to the unknown value

Parameters
  • ibs (IBEISController) – wbia controller object

  • species_text_list (list) –

Returns

species_text_list_

Return type

list

CommandLine:

python -m wbia.control.manual_species_funcs –test-sanitize_species_texts

RESTful:

Method: POST URL: /api/species/sanitize

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_species_funcs import *  # NOQA
>>> import wbia
>>> # build test data
>>> ibs = wbia.opendb('testdb1')
>>> species_text_list = ['foo', 'bar', 'zebra_plains']
>>> # execute function
>>> species_text_list_ = sanitize_species_texts(ibs, species_text_list)
>>> # verify results
>>> result = ut.repr2(species_text_list_, nl=False)
>>> print(result)
['foo', 'bar', 'zebra_plains']
wbia.control.manual_species_funcs.set_species_enabled(ibs, species_rowid_list, enabled_list)[source]

Sets the species all instances enabled bit

wbia.control.manual_test_funcs module

python -c “import utool as ut; ut.write_modscript_alias(‘Tgen.sh’, ‘wbia.templates.template_generator’)” sh Tgen.sh –key test –invert –Tcfg with_getters=True with_setters=False –modfname manual_test_funcs

# TODO: Fix this name it is too special case

wbia.control.manual_test_funcs.add_test(ibs, test_challenge_list, test_response_list, test_result_list=None, test_uuid_list=None, test_user_identity_list=None)[source]
wbia.control.manual_test_funcs.delete_test(ibs, test_rowid_list)[source]

deletes tests from the database

RESTful:

Method: DELETE URL: /api/test/

wbia.control.manual_test_funcs.get_test_rowids_from_uuid(ibs, uuid_list)[source]
wbia.control.manual_test_funcs.get_test_uuid(ibs, test_rowid_list)[source]

wbia.control.manual_wbiacontrol_funcs module

wbia.control.manual_wbiacontrol_funcs.get_annot_kpts_distinctiveness(ibs, aid_list, config2_=None, **kwargs)[source]

very hacky, but cute way to cache keypoint distinctivness

Parameters
  • ibs (IBEISController) – wbia controller object

  • aid_list (list) –

  • dstncvs_normer (None) –

Returns

dstncvs_list

Return type

list

CommandLine:

python -m wbia.control.manual_wbiacontrol_funcs –test-get_annot_kpts_distinctiveness

Example

>>> # SLOW_DOCTEST
>>> # xdoctest: +SKIP
>>> from wbia.control.manual_wbiacontrol_funcs import *  # NOQA
>>> from wbia.algo.hots import distinctiveness_normalizer
>>> import wbia
>>> import numpy as np
>>> config2_ = None
>>> # build test data
>>> ibs = wbia.opendb('testdb1')
>>> aid_list = ibs.get_valid_aids(species=const.TEST_SPECIES.ZEB_PLAIN)
>>> # execute function
>>> aid_list1 = aid_list[::2]
>>> aid_list2 = aid_list[1::3]
>>> dstncvs_list1 = get_annot_kpts_distinctiveness(ibs, aid_list1)
>>> dstncvs_list2 = get_annot_kpts_distinctiveness(ibs, aid_list2)
>>> dstncvs_list = get_annot_kpts_distinctiveness(ibs, aid_list)
>>> print(ut.depth_profile(dstncvs_list1))
>>> stats_dict = ut.dict_stack([ut.get_stats(dstncvs) for dstncvs in dstncvs_list])
>>> print(ut.repr2(stats_dict))
>>> assert np.all(np.array(stats_dict['min']) >= 0), 'distinctiveness was out of bounds'
>>> assert np.all(np.array(stats_dict['max']) <= 1), 'distinctiveness was out of bounds'
wbia.control.manual_wbiacontrol_funcs.get_feat_kpts_distinctiveness(ibs, fid_list, dstncvs_normer=None, species_rowid=None, **kwargs)[source]
wbia.control.manual_wbiacontrol_funcs.new_query_request(ibs, qaid_list, daid_list, cfgdict=None, verbose=True, **kwargs)[source]

alias for wbia.algo.hots.query_request.new_wbia_query_request

Parameters
  • qaid_list (list) –

  • daid_list (list) –

  • cfgdict (None) –

  • verbose (bool) –

Returns

qreq_ - hyper-parameters

Return type

wbia.QueryRequest

wbia.control.manual_wbiacontrol_funcs.show_annot(ibs, aid, *args, **kwargs)[source]

viz helper see wbia.viz.viz_chip.show_chip

wbia.control.manual_wbiacontrol_funcs.show_annot_image(ibs, aid, *args, **kwargs)[source]

viz helper see wbia.viz.viz_chip.show_chip

wbia.control.manual_wildbook_funcs module

CommandLine;

# Reset IBEIS database (can skip if done) python -m wbia.tests.reset_testdbs –reset_mtest python -m wbia –tf reset_mtest

Notes

Moving components: java, tomcat, wildbook.war.

python -m utool.util_inspect check_module_usage –pat=”manual_wildbook_funcs.py”

CommandLine;

# Start IA server python -m wbia –web –db PZ_MTEST

# Reset Wildbook database python -m wbia purge_local_wildbook

# Install Wildbook python -m wbia install_wildbook

# Startup Wildbook python -m wbia startup_wildbook_server –show

# Poll wildbook info python -m wbia get_wildbook_ia_url

# Login to wildbook (can skip) python -m wbia test_wildbook_login

# Ship ImageSets to wildbook python -m wbia wildbook_signal_imgsetid_list

# Change annotations names to a single name python -m wbia wildbook_signal_annot_name_changes:1

# Change annotations names back to normal python -m wbia wildbook_signal_annot_name_changes:2

wbia.control.manual_wildbook_funcs.assert_ia_available_for_wb(ibs, wb_target=None)[source]
wbia.control.manual_wildbook_funcs.delete_wildbook_orphaned_annot_uuids(ibs, auto_delete=True)[source]
wbia.control.manual_wildbook_funcs.delete_wildbook_orphaned_image_uuids(ibs, auto_delete=True)[source]
wbia.control.manual_wildbook_funcs.get_wildbook_annot_uuids(ibs, filter_match_against_on=True)[source]
wbia.control.manual_wildbook_funcs.get_wildbook_base_url(ibs, wb_target=None)[source]
wbia.control.manual_wildbook_funcs.get_wildbook_ia_url(ibs, wb_target=None)[source]

Where does wildbook expect us to be?

CommandLine:

python -m wbia get_wildbook_ia_url

Example

>>> # DISABLE_DOCTEST
>>> from wbia.control.manual_wildbook_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb(defaultdb='PZ_MTEST')
>>> ia_url = ibs.get_wildbook_ia_url()
>>> print('ia_url = %r' % (ia_url,))
wbia.control.manual_wildbook_funcs.get_wildbook_image_uuids(ibs)[source]
wbia.control.manual_wildbook_funcs.wildbook_get_existing_names(ibs, wb_target=None)[source]
wbia.control.manual_wildbook_funcs.wildbook_signal_annot_name_changes(ibs, aid_list=None, wb_target=None, dryrun=False)[source]
Parameters
  • aid_list (int) – list of annotation ids(default = None)

  • tomcat_dpath (None) – (default = None)

  • wb_target (None) – (default = None)

  • dryrun (bool) – (default = False)

CommandLine:

python -m wbia wildbook_signal_annot_name_changes:0 –dryrun python -m wbia wildbook_signal_annot_name_changes:1 –dryrun python -m wbia wildbook_signal_annot_name_changes:1 python -m wbia wildbook_signal_annot_name_changes:2

Setup:
>>> wb_target = None
>>> dryrun = ut.get_argflag('--dryrun')

Example

>>> # DISABLE_DOCTEST
>>> from wbia.control.manual_wildbook_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb(defaultdb='PZ_MTEST')
>>> #gid_list = ibs.get_valid_gids()[0:10]
>>> gid_list = ibs.get_valid_gids()[3:5]
>>> aid_list = ut.flatten(ibs.get_image_aids(gid_list))
>>> # Test case where some names change, some do not. There are no new names.
>>> old_nid_list = ibs.get_annot_name_rowids(aid_list)
>>> new_nid_list = ut.list_roll(old_nid_list, 1)
>>> ibs.set_annot_name_rowids(aid_list, new_nid_list)
>>> result = ibs.wildbook_signal_annot_name_changes(aid_list, wb_target, dryrun)
>>> ibs.set_annot_name_rowids(aid_list, old_nid_list)

Example

>>> # DISABLE_DOCTEST
>>> from wbia.control.manual_wildbook_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb(defaultdb='PZ_MTEST')
>>> #gid_list = ibs.get_valid_gids()[0:10]
>>> gid_list = ibs.get_valid_gids()[3:5]
>>> aid_list = ut.flatten(ibs.get_image_aids(gid_list))
>>> # Test case where all names change to one known name
>>> #old_nid_list = ibs.get_annot_name_rowids(aid_list)
>>> #new_nid_list = [old_nid_list[0]] * len(old_nid_list)
>>> old_nid_list = [1, 2]
>>> new_nid_list = [1, 1]
>>> print('old_nid_list = %r' % (old_nid_list,))
>>> print('new_nid_list = %r' % (new_nid_list,))
>>> ibs.set_annot_name_rowids(aid_list, new_nid_list)
>>> result = ibs.wildbook_signal_annot_name_changes(aid_list, wb_target, dryrun)
>>> # Undo changes here (not undone in wildbook)
>>> #ibs.set_annot_name_rowids(aid_list, old_nid_list)

Example

>>> # DISABLE_DOCTEST
>>> from wbia.control.manual_wildbook_funcs import *  # NOQA
>>> import wbia
>>> ibs = wbia.opendb(defaultdb='PZ_MTEST')
>>> gid_list = ibs.get_valid_gids()[3:5]
>>> aid_list = ut.flatten(ibs.get_image_aids(gid_list))
>>> old_nid_list = [1, 2]
>>> ibs.set_annot_name_rowids(aid_list, old_nid_list)
>>> # Signal what currently exists (should put them back to normal)
>>> result = ibs.wildbook_signal_annot_name_changes(aid_list, wb_target, dryrun)
wbia.control.manual_wildbook_funcs.wildbook_signal_imgsetid_list(ibs, imgsetid_list=None, set_shipped_flag=True, open_url_on_complete=True, wb_target=None, dryrun=False)[source]

Exports specified imagesets to wildbook. This is a synchronous call.

Parameters
  • imgsetid_list (list) – (default = None)

  • set_shipped_flag (bool) – (default = True)

  • open_url_on_complete (bool) – (default = True)

RESTful:

Method: PUT URL: /api/wildbook/signal/imageset/

Ignore:

cd $CODE_DIR/Wildbook/tmp

# Ensure IA server is up python -m wbia –web –db PZ_MTEST

# Reset IBEIS database python -m wbia.tests.reset_testdbs –reset_mtest python -m wbia reset_mtest

# Completely remove Wildbook database python -m wbia purge_local_wildbook

# Install Wildbook python -m wbia install_wildbook

# Startup Wildbook python -m wbia startup_wildbook_server

# Login to wildbook python -m wbia test_wildbook_login

# Ship ImageSets to wildbook python -m wbia wildbook_signal_imgsetid_list

# Change annotations names to a single name python -m wbia wildbook_signal_annot_name_changes:1

# Change annotations names back to normal python -m wbia wildbook_signal_annot_name_changes:2

CommandLine:

python -m wbia wildbook_signal_imgsetid_list python -m wbia wildbook_signal_imgsetid_list –dryrun python -m wbia wildbook_signal_imgsetid_list –break

SeeAlso:

~/local/build_scripts/init_wildbook.sh

Example

>>> # DISABLE_DOCTEST
>>> from wbia.control.manual_wildbook_funcs import *  # NOQA
>>> dryrun = ut.get_argflag('--dryrun')
>>> wb_target = None
>>> import wbia
>>> # Need to start a web server for wildbook to hook into
>>> defaultdb = 'PZ_MTEST'
>>> ibs = wbia.opendb(defaultdb=defaultdb)
>>> #gid_list = ibs.get_valid_gids()[0:10]
>>> gid_list = ibs.get_valid_gids()[3:6]
>>> new_imgsetid = ibs.create_new_imageset_from_images(gid_list)  # NOQA
>>> imgsetid = new_imgsetid
>>> print('new imageset uuid = %r' % (ibs.get_imageset_uuid(new_imgsetid),))
>>> print('new imageset text = %r' % (ibs.get_imageset_text(new_imgsetid),))
>>> imgsetid_list = [new_imgsetid]
>>> ibs.set_imageset_processed_flags([new_imgsetid], [1])
>>> gid_list = ibs.get_imageset_gids(new_imgsetid)
>>> ibs.set_image_reviewed(gid_list, [1] * len(gid_list))
>>> set_shipped_flag = True
>>> open_url_on_complete = True
>>> if ut.get_argflag('--bg'):
>>>     with wbia.opendb_bg_web(defaultdb, managed=True) as web_ibs:
...         result = web_ibs.wildbook_signal_imgsetid_list(imgsetid_list, set_shipped_flag, open_url_on_complete, wb_target, dryrun)
>>> else:
...     result = ibs.wildbook_signal_imgsetid_list(imgsetid_list, set_shipped_flag, open_url_on_complete, wb_target, dryrun)
>>> # cleanup
>>> #ibs.delete_imagesets(new_imgsetid)
>>> print(result)
wbia.control.manual_wildbook_funcs.wildbook_signal_name_changes(ibs, nid_list, new_name_list, wb_target=None, dryrun=False)[source]
Parameters
  • nid_list (int) – list of name ids

  • new_name_list (str) – list of corresponding names

  • wb_target (None) – (default = None)

  • dryrun (bool) – (default = False)

CommandLine:

python -m wbia wildbook_signal_name_changes:0 –dryrun python -m wbia wildbook_signal_name_changes:1 –dryrun python -m wbia wildbook_signal_name_changes:1 python -m wbia wildbook_signal_name_changes:2

Setup:
>>> wb_target = None
>>> dryrun = ut.get_argflag('--dryrun')
wbia.control.manual_wildbook_funcs.wildbook_sync(ibs, **kwargs)[source]

wbia.control.wildbook_manager module

Manages local wildbook installations.

CommandLine:

python -m utool.util_inspect check_module_usage –pat=”wildbook_manager.py”

Utils:

# TODO go to http://localhost:8080/wbia/createAssetStore.jsp tail -f ~/.config/wbia/tomcat/logs/catalina.out cat ~/.config/wbia/tomcat/logs/catalina.out python -m wbia shutdown_wildbook_server python -m wbia update_wildbook_install_config

wbia.control.wildbook_manager.download_tomcat()[source]

Put tomcat into a directory controlled by wbia

CommandLine:

# Reset python -c “import utool as ut; ut.delete(ut.unixjoin(ut.get_app_resource_dir(‘wbia’), ‘tomcat’))”

wbia.control.wildbook_manager.ensure_local_war(verbose=True)[source]

Ensures tomcat has been unpacked and the war is localized

CommandLine:

wbia ensure_local_war

Example

>>> # SCRIPT
>>> from wbia.control.wildbook_manager import *  # NOQA
>>> result = ensure_local_war()
>>> print(result)
wbia.control.wildbook_manager.ensure_wb_mysql()[source]
CommandLine:

python -m wbia ensure_wb_mysql

Example

>>> # SCRIPT
>>> from wbia.control.wildbook_manager import *  # NOQA
>>> result = ensure_wb_mysql()
wbia.control.wildbook_manager.find_installed_tomcat(check_unpacked=True, strict=True)[source]

Asserts that tomcat was properly installed

Parameters

check_unpacked (bool) – (default = True)

Returns

tomcat_dpath

Return type

str

CommandLine:

python -m wbia find_installed_tomcat

Example

>>> # ENABLE_DOCTEST
>>> from wbia.control.wildbook_manager import *  # NOQA
>>> check_unpacked = False
>>> strict = False
>>> tomcat_dpath = find_installed_tomcat(check_unpacked, strict)
>>> result = ('tomcat_dpath = %s' % (str(tomcat_dpath),))
>>> print(result)
wbia.control.wildbook_manager.find_java_jvm()[source]
CommandLine:

python -m wbia find_java_jvm

Example

>>> # DISABLE_DOCTEST
>>> from wbia.control.wildbook_manager import *  # NOQA
>>> jvm_fpath = find_java_jvm()
>>> result = ('jvm_fpath = %r' % (jvm_fpath,))
>>> print(result)
wbia.control.wildbook_manager.find_or_download_tomcat()[source]
Returns

tomcat_dpath

Return type

str

CommandLine:

# Reset python -m purge_local_wildbook

python -m wbia –tf purge_local_wildbook python -m wbia –tf find_or_download_tomcat

Example

>>> # SCRIPT
>>> from wbia.control.wildbook_manager import *  # NOQA
>>> tomcat_dpath = find_or_download_tomcat()
>>> result = ('tomcat_dpath = %s' % (str(tomcat_dpath),))
>>> print(result)
wbia.control.wildbook_manager.find_or_download_wilbook_warfile(ensure=True, redownload=False)[source]
scp jonc@pachy.cs.uic.edu:/var/lib/tomcat/webapps/wbia.war

~/Downloads/pachy_wbia.war wget

http://dev.wildme.org/wbia_data_dir/wbia.war

wbia.control.wildbook_manager.find_tomcat(verbose=True)[source]

Searches likely places for tomcat to be installed

Returns

tomcat_dpath

Return type

str

Ignore:

locate –regex “tomcat/webapps$”

CommandLine:

python -m wbia find_tomcat

Example

>>> # SCRIPT
>>> from wbia.control.wildbook_manager import *  # NOQA
>>> tomcat_dpath = find_tomcat()
>>> result = ('tomcat_dpath = %s' % (str(tomcat_dpath),))
>>> print(result)
wbia.control.wildbook_manager.get_tomcat_startup_tmpdir()[source]
wbia.control.wildbook_manager.get_wildbook_tomcat_path(ibs, tomcat_dpath=None, wb_target=None)[source]
wbia.control.wildbook_manager.install_wildbook(verbose=True)[source]

Script to setup wildbook on a unix based system (hopefully eventually this will generalize to win32)

CommandLine:

# Reset wbia purge_local_wildbook wbia ensure_wb_mysql wbia ensure_local_war # Setup wbia install_wildbook # wbia install_wildbook –nomysql # Startup wbia startup_wildbook_server –show

Alternates:

wbia install_wildbook –redownload-war wbia install_wildbook –assets wbia startup_wildbook_server –show

Example

>>> # SCRIPT
>>> from wbia.control.wildbook_manager import *  # NOQA
>>> verbose = True
>>> result = install_wildbook()
>>> print(result)
wbia.control.wildbook_manager.monitor_wildbook_logs(verbose=True)[source]
Parameters

verbose (bool) – verbosity flag(default = True)

CommandLine:

python -m wbia monitor_wildbook_logs –show

Example

>>> # SCRIPT
>>> from wbia.control.wildbook_manager import *  # NOQA
>>> monitor_wildbook_logs()
wbia.control.wildbook_manager.purge_local_wildbook()[source]

Shuts down the server and then purges the server on disk

CommandLine:

python -m wbia purge_local_wildbook python -m wbia purge_local_wildbook –purge-war

Example

>>> # SCRIPT
>>> from wbia.control.wildbook_manager import *  # NOQA
>>> purge_local_wildbook()
wbia.control.wildbook_manager.shutdown_wildbook_server(verbose=True)[source]
Parameters

verbose (bool) – verbosity flag(default = True)

Ignore:

tail -f ~/.config/wbia/tomcat/logs/catalina.out

CommandLine:

python -m wbia shutdown_wildbook_server

Example

>>> # DISABLE_DOCTEST
>>> from wbia.control.wildbook_manager import *  # NOQA
>>> verbose = True
>>> wb_url = shutdown_wildbook_server()
>>> ut.quit_if_noshow()
>>> ut.get_prefered_browser(PREFERED_BROWSER).open_new_tab(wb_url)
wbia.control.wildbook_manager.startup_wildbook_server(verbose=True)[source]
Parameters

verbose (bool) – verbosity flag(default = True)

CommandLine:

python -m wbia startup_wildbook_server python -m wbia startup_wildbook_server –show

Example

>>> # DISABLE_DOCTEST
>>> from wbia.control.wildbook_manager import *  # NOQA
>>> verbose = True
>>> wb_url = startup_wildbook_server()
>>> ut.quit_if_noshow()
>>> ut.get_prefered_browser(PREFERED_BROWSER).open_new_tab(wb_url)
wbia.control.wildbook_manager.tryout_wildbook_login()[source]

Helper function to test wildbook login automagically

Returns

(wb_target, tomcat_dpath)

Return type

tuple

CommandLine:

python -m wbia tryout_wildbook_login

Example

>>> # DISABLE_DOCTEST
>>> from wbia.control.wildbook_manager import *  # NOQA
>>> tryout_wildbook_login()
wbia.control.wildbook_manager.update_wildbook_ia_config(ibs, wildbook_tomcat_path, dryrun=False)[source]

#if use_config_file and wildbook_tomcat_path: # # Update the Wildbook configuration to see THIS wbia database # with lockfile.LockFile(lock_fpath): # update_wildbook_ia_config(ibs, wildbook_tomcat_path, dryrun)

wbia.control.wildbook_manager.update_wildbook_install_config(webapps_dpath, unpacked_war_dpath)[source]
CommandLine:

python -m wbia ensure_local_war python -m wbia update_wildbook_install_config python -m wbia update_wildbook_install_config –show

Example

>>> # xdoctest: +REQUIRES(--tomcat)
>>> from wbia.control.wildbook_manager import *  # NOQA
>>> import wbia
>>> tomcat_dpath = find_installed_tomcat()
>>> webapps_dpath = join(tomcat_dpath, 'webapps')
>>> wb_target = wbia.const.WILDBOOK_TARGET
>>> unpacked_war_dpath = join(webapps_dpath, wb_target)
>>> locals_ = ut.exec_func_src(update_wildbook_install_config, globals())
>>> #update_wildbook_install_config(webapps_dpath, unpacked_war_dpath)
>>> ut.quit_if_noshow()
>>> ut.vd(unpacked_war_dpath)
>>> ut.editfile(locals_['permission_fpath'])
>>> ut.editfile(locals_['jdoconfig_fpath'])
>>> ut.editfile(locals_['asset_store_fpath'])

Module contents