# -*- coding: utf-8 -*-
"""
Autogenerated IBEISController functions
TemplateInfo:
autogen_time = 13:34:34 2015/04/28
autogen_key = gar
ToRegenerate:
python -m ibeis.templates.template_generator --key gar --Tcfg with_web_api=True with_api_cache=False with_deleters=True no_extern_deleters=True --diff
python -m ibeis.templates.template_generator --key gar --Tcfg with_web_api=True with_api_cache=False with_deleters=True no_extern_deleters=True --write
"""
from __future__ import absolute_import, division, print_function
import functools # NOQA
import six # NOQA
from six.moves import map, range, zip # NOQA
from ibeis import constants as const
import utool as ut
from ibeis.control import controller_inject
from ibeis.control import accessor_decors # NOQA
print, print_, printDBG, rrr, profile = ut.inject(__name__, '[autogen_gar]')
# 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_ibeis_flask_api(__name__)
register_route = controller_inject.get_ibeis_flask_route(__name__)
[docs]def testdata_ibs(defaultdb='testdb1'):
import ibeis
ibs = ibeis.opendb(defaultdb=defaultdb)
config2_ = None # qreq_.qparams
return ibs, config2_
# AUTOGENED CONSTANTS:
GAR_ROWID = 'gar_rowid'
ANNOTGROUP_ROWID = 'annotgroup_rowid'
ANNOT_ROWID = 'annot_rowid'
CONFIG_ROWID = 'config_rowid'
FEATWEIGHT_ROWID = 'featweight_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 ibeis.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
@register_ibs_method
@register_api('/api/gar/', methods=['POST'])
[docs]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
@register_ibs_method
@register_api('/api/gar/', methods=['DELETE'])
[docs]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 ibeis.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 ibeis.algo.preproc import preproc_gar
# NO EXTERN IMPORT
if ut.VERBOSE:
print('[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
@register_ibs_method
@accessor_decors.getter_1to1
@register_api('/api/gar/annot_rowid/', methods=['GET'])
[docs]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 ibeis.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
@register_ibs_method
@accessor_decors.getter_1to1
@register_api('/api/gar/annotgroup_rowid/', methods=['GET'])
[docs]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 ibeis.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
@register_ibs_method
[docs]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_where2(
const.GA_RELATION_TABLE, colnames, params_iter, andwhere_colnames, eager=eager, nInput=nInput)
return gar_rowid_list
if __name__ == '__main__':
"""
CommandLine:
python -m ibeis.control.manual_garelate_funcs
python -m ibeis.control.manual_garelate_funcs --allexamples
"""
import multiprocessing
multiprocessing.freeze_support()
import utool as ut
ut.doctest_funcs()