# -*- coding: utf-8 -*-
"""
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
"""
import logging
from wbia import constants as const
import utool as ut
from wbia.control import controller_inject
from wbia.control import accessor_decors # NOQA
print, rrr, profile = ut.inject2(__name__)
logger = logging.getLogger('wbia')
# Create dectorator to inject functions in this module into the IBEISController
CLASS_INJECT_KEY, register_ibs_method = controller_inject.make_ibs_register_decorator(
__name__
)
register_api = controller_inject.get_wbia_flask_api(__name__)
[docs]def testdata_ibs(defaultdb='testdb1'):
import wbia
ibs = wbia.opendb(defaultdb=defaultdb)
config2_ = None # qreq_.qparams
return ibs, config2_
# AUTOGENED CONSTANTS:
GAR_ROWID = 'gar_rowid'
ANNOTGROUP_NOTE = 'annotgroup_note'
ANNOTGROUP_ROWID = 'annotgroup_rowid'
ANNOTGROUP_TEXT = 'annotgroup_text'
ANNOTGROUP_UUID = 'annotgroup_uuid'
ANNOT_ROWID = 'annot_rowid'
@register_ibs_method
# @register_api('/api/annotgroup/', methods=['GET'])
def _get_all_annotgroup_rowids(ibs):
"""all_annotgroup_rowids <- annotgroup.get_all_rowids()
Returns:
list_ (list): unfiltered annotgroup_rowids
TemplateInfo:
Tider_all_rowids
tbl = annotgroup
Example:
>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_annotgroup_funcs import * # NOQA
>>> ibs, config2_ = testdata_ibs()
>>> ibs._get_all_annotgroup_rowids()
"""
all_annotgroup_rowids = ibs.db.get_all_rowids(const.ANNOTGROUP_TABLE)
return all_annotgroup_rowids
[docs]@register_ibs_method
# @register_api('/api/annotgroup/', methods=['POST'])
def add_annotgroup(ibs, annotgroup_uuid_list, annotgroup_text_list, annotgroup_note_list):
"""
Returns:
returns annotgroup_rowid_list of added (or already existing annotgroups)
TemplateInfo:
Tadder_native
tbl = annotgroup
"""
# WORK IN PROGRESS
colnames = (ANNOTGROUP_UUID, ANNOTGROUP_TEXT, ANNOTGROUP_NOTE)
params_iter = (
(annotgroup_uuid, annotgroup_text, annotgroup_note)
for (annotgroup_uuid, annotgroup_text, annotgroup_note) in zip(
annotgroup_uuid_list, annotgroup_text_list, annotgroup_note_list
)
)
get_rowid_from_superkey = ibs.get_annotgroup_rowid_from_superkey
# FIXME: encode superkey paramx
superkey_paramx = (1,)
annotgroup_rowid_list = ibs.db.add_cleanly(
const.ANNOTGROUP_TABLE,
colnames,
params_iter,
get_rowid_from_superkey,
superkey_paramx,
)
return annotgroup_rowid_list
[docs]@register_ibs_method
# @register_api('/api/annotgroup/', methods=['DELETE'])
def delete_annotgroup(ibs, annotgroup_rowid_list, config2_=None):
"""annotgroup.delete(annotgroup_rowid_list)
delete annotgroup rows
Args:
annotgroup_rowid_list
Returns:
int: num_deleted
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,))
"""
# from wbia.algo.preproc import preproc_annotgroup
# NO EXTERN IMPORT
if ut.VERBOSE:
logger.info('[ibs] deleting %d annotgroup rows' % len(annotgroup_rowid_list))
# Prepare: Delete externally stored data (if any)
# preproc_annotgroup.on_delete(ibs, annotgroup_rowid_list, config2_=config2_)
# NO EXTERN DELETE
# Finalize: Delete self
ibs.db.delete_rowids(const.ANNOTGROUP_TABLE, annotgroup_rowid_list)
num_deleted = len(ut.filter_Nones(annotgroup_rowid_list))
return num_deleted
[docs]@register_ibs_method
@accessor_decors.getter_1toM
# @register_api('/api/annotgroup/gar/rowids/', methods=['GET'])
def get_annotgroup_gar_rowids(ibs, annotgroup_rowid_list, eager=True, nInput=None):
"""
Auto-docstr for 'get_annotgroup_gar_rowids'
RESTful:
Method: GET
URL: /api/annotgroup/gar/rowids/
"""
colnames = (GAR_ROWID,)
gar_rowid_list = ibs.db.get(
const.GA_RELATION_TABLE,
colnames,
annotgroup_rowid_list,
id_colname=ANNOTGROUP_ROWID,
unpack_scalars=False,
)
return gar_rowid_list
[docs]@register_ibs_method
@accessor_decors.getter_1to1
# @register_api('/api/annotgroup/note/', methods=['GET'])
def get_annotgroup_note(ibs, annotgroup_rowid_list, eager=True, nInput=None):
"""annotgroup_note_list <- annotgroup.annotgroup_note[annotgroup_rowid_list]
gets data from the "native" column "annotgroup_note" in the "annotgroup" table
Args:
annotgroup_rowid_list (list):
Returns:
list: annotgroup_note_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)
"""
id_iter = annotgroup_rowid_list
colnames = (ANNOTGROUP_NOTE,)
annotgroup_note_list = ibs.db.get(
const.ANNOTGROUP_TABLE,
colnames,
id_iter,
id_colname='rowid',
eager=eager,
nInput=nInput,
)
return annotgroup_note_list
[docs]@register_ibs_method
def get_annotgroup_rowid_from_superkey(
ibs, annotgroup_text_list, eager=True, nInput=None
):
"""annotgroup_rowid_list <- annotgroup[annotgroup_text_list]
Args:
superkey lists: annotgroup_text_list
Returns:
annotgroup_rowid_list
TemplateInfo:
Tgetter_native_rowid_from_superkey
tbl = annotgroup
"""
colnames = (ANNOTGROUP_ROWID,)
# FIXME: col_rowid is not correct
params_iter = zip(annotgroup_text_list)
andwhere_colnames = [ANNOTGROUP_TEXT]
annotgroup_rowid_list = ibs.db.get_where_eq(
const.ANNOTGROUP_TABLE,
colnames,
params_iter,
andwhere_colnames,
eager=eager,
nInput=nInput,
)
return annotgroup_rowid_list
[docs]@register_ibs_method
@accessor_decors.getter_1to1
# @register_api('/api/annotgroup/text/', methods=['GET'])
def get_annotgroup_text(ibs, annotgroup_rowid_list, eager=True, nInput=None):
"""annotgroup_text_list <- annotgroup.annotgroup_text[annotgroup_rowid_list]
gets data from the "native" column "annotgroup_text" in the "annotgroup" table
Args:
annotgroup_rowid_list (list):
Returns:
list: annotgroup_text_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)
"""
id_iter = annotgroup_rowid_list
colnames = (ANNOTGROUP_TEXT,)
annotgroup_text_list = ibs.db.get(
const.ANNOTGROUP_TABLE,
colnames,
id_iter,
id_colname='rowid',
eager=eager,
nInput=nInput,
)
return annotgroup_text_list
[docs]@register_ibs_method
@accessor_decors.getter_1to1
# @register_api('/api/annotgroup/uuid/', methods=['GET'])
def get_annotgroup_uuid(ibs, annotgroup_rowid_list, eager=True, nInput=None):
"""annotgroup_uuid_list <- annotgroup.annotgroup_uuid[annotgroup_rowid_list]
gets data from the "native" column "annotgroup_uuid" in the "annotgroup" table
Args:
annotgroup_rowid_list (list):
Returns:
list: annotgroup_uuid_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)
"""
id_iter = annotgroup_rowid_list
colnames = (ANNOTGROUP_UUID,)
annotgroup_uuid_list = ibs.db.get(
const.ANNOTGROUP_TABLE,
colnames,
id_iter,
id_colname='rowid',
eager=eager,
nInput=nInput,
)
return annotgroup_uuid_list
[docs]@register_ibs_method
@accessor_decors.setter
# @register_api('/api/annotgroup/note/', methods=['PUT'])
def set_annotgroup_note(
ibs, annotgroup_rowid_list, annotgroup_note_list, duplicate_behavior='error'
):
"""annotgroup_note_list -> annotgroup.annotgroup_note[annotgroup_rowid_list]
Args:
annotgroup_rowid_list
annotgroup_note_list
TemplateInfo:
Tsetter_native_column
tbl = annotgroup
col = annotgroup_note
"""
id_iter = annotgroup_rowid_list
colnames = (ANNOTGROUP_NOTE,)
ibs.db.set(
const.ANNOTGROUP_TABLE,
colnames,
annotgroup_note_list,
id_iter,
duplicate_behavior=duplicate_behavior,
)
[docs]@register_ibs_method
@accessor_decors.setter
# @register_api('/api/annotgroup/uuid/', methods=['PUT'])
def set_annotgroup_uuid(
ibs, annotgroup_rowid_list, annotgroup_uuid_list, duplicate_behavior='error'
):
"""annotgroup_uuid_list -> annotgroup.annotgroup_uuid[annotgroup_rowid_list]
Args:
annotgroup_rowid_list
annotgroup_uuid_list
TemplateInfo:
Tsetter_native_column
tbl = annotgroup
col = annotgroup_uuid
"""
id_iter = annotgroup_rowid_list
colnames = (ANNOTGROUP_UUID,)
ibs.db.set(
const.ANNOTGROUP_TABLE,
colnames,
annotgroup_uuid_list,
id_iter,
duplicate_behavior=duplicate_behavior,
)