# -*- coding: utf-8 -*-
"""
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
"""
import logging
from wbia import constants as const
import utool as ut
from wbia.control import controller_inject
from wbia.control import accessor_decors
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_ROWID = 'annotgroup_rowid'
ANNOT_ROWID = 'annot_rowid'
@register_ibs_method
# @register_api('/api/gar/', methods=['GET'])
def _get_all_gar_rowids(ibs):
"""all_gar_rowids <- gar.get_all_rowids()
Returns:
list_ (list): unfiltered gar_rowids
TemplateInfo:
Tider_all_rowids
tbl = gar
Example:
>>> # ENABLE_DOCTEST
>>> from wbia.control.manual_garelate_funcs import * # NOQA
>>> ibs, config2_ = testdata_ibs()
>>> ibs._get_all_gar_rowids()
"""
all_gar_rowids = ibs.db.get_all_rowids(const.GA_RELATION_TABLE)
return all_gar_rowids
[docs]@register_ibs_method
# @register_api('/api/gar/', methods=['POST'])
def add_gar(ibs, annotgroup_rowid_list, aid_list):
"""
Returns:
returns gar_rowid_list of added (or already existing gars)
TemplateInfo:
Tadder_native
tbl = gar
"""
# WORK IN PROGRESS
colnames = (
ANNOTGROUP_ROWID,
ANNOT_ROWID,
)
# if aid_list is None:
# aid_list = [None] * len(annotgroup_rowid_list)
params_iter = (
(annotgroup_rowid, aid)
for (annotgroup_rowid, aid) in zip(annotgroup_rowid_list, aid_list)
)
get_rowid_from_superkey = ibs.get_gar_rowid_from_superkey
# FIXME: encode superkey paramx
superkey_paramx = (0, 1)
gar_rowid_list = ibs.db.add_cleanly(
const.GA_RELATION_TABLE,
colnames,
params_iter,
get_rowid_from_superkey,
superkey_paramx,
)
return gar_rowid_list
[docs]@register_ibs_method
# @register_api('/api/gar/', methods=['DELETE'])
def delete_gar(ibs, gar_rowid_list, config2_=None):
"""gar.delete(gar_rowid_list)
delete gar rows
Args:
gar_rowid_list
Returns:
int: num_deleted
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,))
"""
# from wbia.algo.preproc import preproc_gar
# NO EXTERN IMPORT
if ut.VERBOSE:
logger.info('[ibs] deleting %d gar rows' % len(gar_rowid_list))
# Prepare: Delete externally stored data (if any)
# preproc_gar.on_delete(ibs, gar_rowid_list, config2_=config2_)
# NO EXTERN DELETE
# Finalize: Delete self
ibs.db.delete_rowids(const.GA_RELATION_TABLE, gar_rowid_list)
num_deleted = len(ut.filter_Nones(gar_rowid_list))
return num_deleted
[docs]@register_ibs_method
@accessor_decors.getter_1to1
# @register_api('/api/gar/annot/rowid/', methods=['GET'])
def get_gar_aid(ibs, gar_rowid_list, eager=True, nInput=None):
"""aid_list <- gar.aid[gar_rowid_list]
gets data from the "native" column "aid" in the "gar" table
Args:
gar_rowid_list (list):
Returns:
list: aid_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)
"""
id_iter = gar_rowid_list
colnames = (ANNOT_ROWID,)
aid_list = ibs.db.get(
const.GA_RELATION_TABLE,
colnames,
id_iter,
id_colname='rowid',
eager=eager,
nInput=nInput,
)
return aid_list
[docs]@register_ibs_method
@accessor_decors.getter_1to1
# @register_api('/api/gar/annotgroup/rowid/', methods=['GET'])
def get_gar_annotgroup_rowid(ibs, gar_rowid_list, eager=True, nInput=None):
"""annotgroup_rowid_list <- gar.annotgroup_rowid[gar_rowid_list]
gets data from the "native" column "annotgroup_rowid" in the "gar" table
Args:
gar_rowid_list (list):
Returns:
list: annotgroup_rowid_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)
"""
id_iter = gar_rowid_list
colnames = (ANNOTGROUP_ROWID,)
annotgroup_rowid_list = ibs.db.get(
const.GA_RELATION_TABLE,
colnames,
id_iter,
id_colname='rowid',
eager=eager,
nInput=nInput,
)
return annotgroup_rowid_list
[docs]@register_ibs_method
def get_gar_rowid_from_superkey(
ibs, annotgroup_rowid_list, aid_list, eager=True, nInput=None
):
"""gar_rowid_list <- gar[annotgroup_rowid_list, aid_list]
Args:
superkey lists: annotgroup_rowid_list, aid_list
Returns:
gar_rowid_list
TemplateInfo:
Tgetter_native_rowid_from_superkey
tbl = gar
"""
colnames = (GAR_ROWID,)
# FIXME: col_rowid is not correct
params_iter = zip(annotgroup_rowid_list, aid_list)
andwhere_colnames = [ANNOTGROUP_ROWID, ANNOT_ROWID]
gar_rowid_list = ibs.db.get_where_eq(
const.GA_RELATION_TABLE,
colnames,
params_iter,
andwhere_colnames,
eager=eager,
nInput=nInput,
)
return gar_rowid_list