wbia.gui package¶
Submodules¶
wbia.gui.clock_offset_gui module¶
Small GUI for asking the user to enter the clock time shown, and moving along a gid list if the first image isn’t a clock
-
class
wbia.gui.clock_offset_gui.
ClockOffsetWidget
(ibs, gid_list, parent=None, hack=False)[source]¶ Bases:
PyQt5.QtWidgets.QWidget
-
wbia.gui.clock_offset_gui.
clock_offset_test
()[source]¶ - CommandLine:
- python -m wbia.gui.clock_offset_gui –test-clock_offset_test
Example
>>> # DISABLE_DOCTEST >>> from wbia.gui.clock_offset_gui import * # NOQA >>> # build test data >>> # execute function >>> result = clock_offset_test() >>> # verify results >>> print(result)
wbia.gui.guiback module¶
This module controls the GUI backend. It is the layer between the GUI frontend (newgui.py) and the IBEIS controller. All the functionality of the nonvisual gui components is written or called from here
Notes
- LAYOUT TERMS;
- Margins / Content Margins;
- space around the widgets in the layout
- Spacing
- space between widges in the layout
- Stretch
- relative size ratio vector (1 component for each widget)
-
class
wbia.gui.guiback.
CustomAnnotCfgSelector
(ibs)[source]¶ Bases:
wbia.guitool.guitool_components.GuitoolWidget
- CommandLine:
- python -m wbia.gui.guiback CustomAnnotCfgSelector –show python -m wbia.gui.guiback CustomAnnotCfgSelector –show –db PZ_MTEST python -m wbia.gui.guiback CustomAnnotCfgSelector –show –debugwidget python -m wbia.gui.guiback show_advanced_id_interface –show
Example
>>> # DISABLE_DOCTEST >>> from wbia.gui.guiback import * # NOQA >>> import wbia >>> gt.ensure_qtapp() >>> ibs = wbia.opendb(defaultdb='testdb1') >>> self = CustomAnnotCfgSelector(ibs) >>> rect = gt.QtWidgets.QDesktopWidget().availableGeometry(screen=0) >>> self.move(rect.x(), rect.y()) >>> self.show() >>> self.apply_new_config() >>> ut.quit_if_noshow() >>> gt.qtapp_loop(qwin=self, freq=10)
-
acfg
¶
-
expanded_aids
¶
-
class
wbia.gui.guiback.
MainWindowBackend
(ibs=None)[source]¶ Bases:
PyQt5.QtCore.QObject
Sends and recieves signals to and from the frontend
Parameters: ibs (wbia.IBEISController) – image analysis api(default = None) - CommandLine:
- python -m wbia.gui.guiback MainWindowBackend –show
Example
>>> # DISABLE_DOCTEST >>> from wbia.gui.guiback import * # NOQA >>> import wbia >>> back = testdata_guiback(defaultdb=None) >>> ut.quit_if_noshow() >>> ut.quit_if_noshow() >>> gt.qtapp_loop(qwin=back.front, freq=10)
-
are_you_sure
(use_msg=None, title='Confirmation', default=None, action=None, detailed_msg=None)[source]¶ Prompt user for conformation before changing something
-
commit_to_wb_step
(refresh=True, dry=False)[source]¶ Step 6) Commit
Sets all imagesets as reviwed and ships them to wildbook
commit step
Parameters: refresh (bool) – (default = True) - CommandLine:
- python -m wbia.gui.guiback commit_to_wb_step –show
Example
>>> # xdoctest: +REQUIRES(--gui) >>> from wbia.gui.guiback import * # NOQA >>> import wbia >>> main_locals = wbia.main(defaultdb='testdb1') >>> ibs, back = ut.dict_take(main_locals, ['ibs', 'back']) >>> ut.exec_funckw(back.do_group_occurrence_step, globals()) >>> dry = True >>> back.do_group_occurrence_step(dry=dry)
>>> from wbia.gui.guiback import * # NOQA >>> refresh = True >>> result = back.commit_to_wb_step(refresh) >>> print(result) >>> ut.quit_if_noshow() >>> import wbia.plottool as pt >>> ut.show_if_requested()
-
compute_queries
(refresh=True, daids_mode=None, query_is_known=None, qaid_list=None, use_prioritized_name_subset=False, use_visual_selection=False, cfgdict={}, query_msg=None, custom_qaid_list_title=None, daid_list=None, partition_queries_by_species=False, **kwargs)[source]¶ MAIN QUERY FUNCTION
execute_query
Batch -> Compute OldStyle Queries and Actions -> Query
Computes query results for all annotations in an imageset. Results are either vs-exemplar or intra-imageset
- CommandLine:
- ./reset_dbs.py && ./main.py –query 1 -y ./reset_dbs.py –reset-mtest && ./main.py –query 1 -y –db PZ_MTEST –progtext ./main.py –query 1 -y python -m wbia –query 1 -y python -m wbia –query 1:119 –db PZ_MTEST –nocache-query –nocache-nnmid -y python -m wbia –query 1:119 –db PZ_MTEST –nocache-query –nocache-nnmid -y –force-all-progress python -m wbia –query 1:119 –db PZ_MTEST –nocache-query –nocache-nnmid –hots-batch-size=3 -y python -m wbia –query 1:119 –db PZ_MTEST –nocache-query –nocache-nnmid –hots-batch-size=3 -y python -m wbia –query 1:119 –db PZ_MTEST –nocache-query –nocache-nnmid –hots-batch-size=32 -y
Example
>>> # DISABLE_DOCTEST >>> from wbia.gui.guiback import * # NOQA >>> import wbia >>> main_locals = wbia.main(db='testdb2') >>> back = main_locals['back'] >>> ibs = back.ibs >>> query_is_known = None >>> refresh = True >>> daids_mode = None >>> imgsetid = None >>> kwargs = {} >>> print(result)
-
confirm_query_dialog2
(species2_expanded_aids=None, cfgdict=None, query_msg=None, query_title=None, review_cfg={})[source]¶ Asks the user to confirm starting the identification query
-
delete_annot
(aid_list=None)[source]¶ Action -> Delete Annotation
- CommandLine:
- python -m wbia.gui.guiback –test-delete_annot –show python -m wbia.gui.guiback –test-delete_annot –show –no-api-cache python -m wbia.gui.guiback –test-delete_annot –show –assert-api-cache python -m wbia.gui.guiback –test-delete_annot –show –debug-api-cache –yes
- SeeAlso:
- manual_annot_funcs.delete_annots
Example
>>> # xdoctest: +REQUIRES(--gui) >>> from wbia.gui.guiback import * # NOQA >>> back = testdata_guiback() >>> ibs = back.ibs >>> imgsetid_list = back.ibs.get_valid_imgsetids() >>> imgsetid = ut.take(imgsetid_list, ut.list_argmax(list(map(len, back.ibs.get_imageset_gids(imgsetid_list))))) >>> back.front.select_imageset_tab(imgsetid) >>> gid = back.ibs.get_imageset_gids(imgsetid)[0] >>> # add a test annotation to delete >>> aid_list = back.add_annotation_from_image([gid]) >>> # delte annotations >>> aids1 = back.ibs.get_image_aids(gid) >>> back.delete_annot(aid_list) >>> aids2 = back.ibs.get_image_aids(gid) >>> #assert len(aids2) == len(aids1) - 1 >>> ut.quit_if_noshow() >>> gt.qtapp_loop(back.mainwin, frequency=100)
-
display_dbinfo
()[source]¶ - CommandLine:
- python -m wbia.gui.guiback –test-display_dbinfo
Example
>>> # DISABLE_DOCTEST >>> from wbia.gui.guiback import * # NOQA >>> back = testdata_guiback() >>> result = back.display_dbinfo() >>> print(result)
-
do_group_occurrence_step
(refresh=True)[source]¶ Group Step for computing occurrneces
- CommandLine:
- python -m wbia.gui.guiback –test-MainWindowBackend.do_group_occurrence_step –show –no-cnn
Example
>>> # xdoctest: +REQUIRES(--gui) >>> from wbia.gui.guiback import * # NOQA >>> import wbia >>> main_locals = wbia.main(defaultdb='testdb1') >>> ibs, back = ut.dict_take(main_locals, ['ibs', 'back']) >>> ut.exec_funckw(back.do_group_occurrence_step, globals()) >>> back.do_group_occurrence_step() >>> ut.quit_if_noshow()
-
imageset_set_species
(refresh=True)[source]¶ HACK: sets the species columns of all annotations in the imageset to be whatever is currently in the detect config
-
import_images_from_dir
(dir_=None, size_filter=None, refresh=True, clock_offset=False, return_dir=False, defaultdir=None)[source]¶ File -> Import Images From Directory
-
import_images_from_dir_with_smart
(dir_=None, size_filter=None, refresh=True, smart_xml_fpath=None, defaultdir=None)[source]¶ File -> Import Images From Directory with smart
Parameters: - dir (None) – (default = None)
- size_filter (None) – (default = None)
- refresh (bool) – (default = True)
Returns: gid_list
Return type: list
- CommandLine:
- python -m wbia.gui.guiback –test-import_images_from_dir_with_smart –show python -m wbia.gui.guiback –test-import_images_from_dir_with_smart –show –auto
Example
>>> # DEV_GUI_DOCTEST >>> # xdoctest: +REQUIRES(--gui) >>> from wbia.gui.guiback import * # NOQA >>> back = testdata_guiback(defaultdb='freshsmart_test', delete_ibsdir=True, allow_newdir=True) >>> ibs = back.ibs >>> defaultdir = ut.truepath('~/lewa-desktop/Desktop/GZ_Foal_Patrol_22_06_2015') >>> dir_ = None if not ut.get_argflag('--auto') else join(defaultdir, 'Photos') >>> smart_xml_fpath = None if not ut.get_argflag('--auto') else join(defaultdir, 'Patrols', 'LWC_000526LEWA_GZ_FOAL_PATROL.xml') >>> size_filter = None >>> refresh = True >>> gid_list = back.import_images_from_dir_with_smart(dir_, size_filter, refresh, defaultdir=defaultdir, smart_xml_fpath=smart_xml_fpath) >>> result = ('gid_list = %s' % (str(gid_list),)) >>> print(result) >>> ut.quit_if_noshow() >>> gt.qtapp_loop(back.mainwin, frequency=100)
-
import_images_from_encounters
(level=1, dir_list=None, size_filter=None, refresh=True, clock_offset=False, return_dir=False, defaultdir=None)[source]¶
-
import_images_from_encounters_1
(dir_list=None, size_filter=None, refresh=True, defaultdir=None)[source]¶ File -> Import Images From Encounters (1 level)
Parameters: - dir (None) – (default = None)
- size_filter (None) – (default = None)
- refresh (bool) – (default = True)
Returns: gid_list
Return type: list
-
import_images_from_encounters_2
(dir_list=None, size_filter=None, refresh=True, defaultdir=None)[source]¶ File -> Import Images From Encounters (2 levels)
Parameters: - dir (None) – (default = None)
- size_filter (None) – (default = None)
- refresh (bool) – (default = True)
Returns: gid_list
Return type: list
-
import_images_from_file
(gpath_list=None, refresh=True, as_annots=False, clock_offset=False)[source]¶ File -> Import Images From File
- Example
>>> # xdoctest: +REQUIRES(--gui) >>> print('[TEST] GET_TEST_IMAGE_PATHS') >>> # The test api returns a list of interesting chip indexes >>> mode = 'FILE' >>> if mode == 'FILE': >>> gpath_list = list(map(utool.unixpath, grabdata.get_test_gpaths())) >>> # >>> # else: >>> # dir_ = utool.truepath(join(sysres.get_workdir(), 'PZ_MOTHERS/images')) >>> # gpath_list = utool.list_images(dir_, fullpath=True, recursive=True)[::4] >>> print('[TEST] IMPORT IMAGES FROM FILE\n * gpath_list=%r' % gpath_list) >>> gid_list = back.import_images(gpath_list=gpath_list) >>> thumbtup_list = ibs.get_image_thumbtup(gid_list) >>> imgpath_list = [tup[1] for tup in thumbtup_list] >>> gpath_list2 = ibs.get_image_paths(gid_list) >>> for path in gpath_list2: >>> assert path in imgpath_list, "Imported Image not in db, path=%r" % path >>> elif mode == 'DIR': >>> dir_ = grabdata.get_testdata_dir() >>> print('[TEST] IMPORT IMAGES FROM DIR\n * dir_=%r' % dir_) >>> gid_list = back.import_images(dir_=dir_) >>> else: >>> raise AssertionError('unknown mode=%r' % mode) >>> print('[TEST] * len(gid_list)=%r' % len(gid_list))
-
make_confirm_query_msg2
(species2_expanded_aids, cfgdict=None, query_msg=None, query_title=None)[source]¶ - CommandLine:
- python -m wbia.gui.guiback –test-MainWindowBackend.make_confirm_query_msg2 –show
Example
>>> # xdoctest: +REQUIRES(--gui) >>> from wbia.gui.guiback import * # NOQA >>> import wbia >>> main_locals = wbia.main(defaultdb='testdb1') >>> ibs, back = ut.dict_take(main_locals, ['ibs', 'back']) >>> ut.exec_funckw(back.make_confirm_query_msg2, globals()) >>> imgsetid = ibs.get_imageset_imgsetids_from_text('*All Images') >>> species2_expanded_aids = back._get_expanded_aids_groups(imgsetid) >>> short_msg, detailed_msg = back.make_confirm_query_msg2(species2_expanded_aids) >>> print(short_msg) >>> print(detailed_msg) >>> ut.quit_if_noshow() >>> back.confirm_query_dialog2(species2_expanded_aids)
-
new_database
(new_dbdir=None)[source]¶ File -> New Database
Parameters: new_dbdir (None) – (default = None) - CommandLine:
- python -m wbia.gui.guiback new_database –show
Example
>>> # DISABLE_DOCTEST >>> from wbia.gui.guiback import * # NOQA >>> import wbia >>> #back = testdata_guiback(defaultdb='testdb1') >>> back = testdata_guiback(defaultdb=None) >>> dbdir = None >>> result = back.new_database(dbdir) >>> ut.quit_if_noshow() >>> gt.qtapp_loop(qwin=back.front, freq=10)
-
notify_controller_killed
()[source]¶ Observer’s notify function that the wbia controller has been killed.
-
open_database
(dbdir=None)[source]¶ File -> Open Database
Parameters: dbdir (None) – (default = None) - CommandLine:
- python -m wbia.gui.guiback –test-open_database
Example
>>> # xdoctest: +REQUIRES(--gui) >>> from wbia.gui.guiback import * # NOQA >>> back = testdata_guiback(defaultdb='testdb1') >>> testdb0 = sysres.db_to_dbdir('testdb0') >>> testdb1 = sysres.db_to_dbdir('testdb1') >>> print('[TEST] TEST_OPEN_DATABASE testdb1=%r' % testdb1) >>> back.open_database(testdb1) >>> print('[TEST] TEST_OPEN_DATABASE testdb0=%r' % testdb0) >>> back.open_database(testdb0) >>> import wbia >>> #dbdir = join(wbia.sysres.get_workdir(), 'PZ_MTEST', '_ibsdb') >>> dbdir = None >>> result = back.open_database(dbdir) >>> print(result)
-
override_all_annotation_species
(aids=None, gids=None)[source]¶ Give the user a dialog box asking to input a species
-
run_annot_splits
(aid_list)[source]¶ Checks for mismatches within a group of annotations
Parameters: aid_list (int) – list of annotation ids - CommandLine:
- python -m wbia.gui.guiback –test-MainWindowBackend.run_annot_splits –show
Example
>>> # xdoctest: +REQUIRES(--gui) >>> from wbia.gui.guiback import * # NOQA >>> back = testdata_guiback() >>> ibs = back.ibs >>> aids_list, nids = back.ibs.group_annots_by_name(back.ibs.get_valid_aids()) >>> aid_list = aids_list[ut.list_argmax(list(map(len, aids_list)))] >>> back.run_annot_splits(aid_list) >>> ut.quit_if_noshow() >>> guitool.qtapp_loop(back.mainwin, frequency=100)
-
run_detection_step
(refresh=True, **kwargs)[source]¶ Parameters: refresh (bool) – (default = True) - CommandLine:
- python -m wbia.gui.guiback run_detection_step –show
Example
>>> # xdoctest: +REQUIRES(--gui) >>> from wbia.gui.guiback import * # NOQA >>> import wbia >>> main_locals = wbia.main(defaultdb='testdb1') >>> ibs, back = ut.dict_take(main_locals, ['ibs', 'back']) >>> ut.exec_funckw(back.run_detection_step, globals()) >>> back.run_detection_step() >>> back.cleanup() >>> ut.quit_if_noshow()
-
run_merge_checks
()[source]¶ Checks for missed matches within a group of annotations
- CommandLine:
- python -m wbia.gui.guiback –test-run_merge_checks –show
Example
>>> # xdoctest: +REQUIRES(--gui) >>> from wbia.gui.guiback import * # NOQA >>> back = testdata_guiback() >>> result = back.run_merge_checks() >>> print(result) >>> ut.quit_if_noshow() >>> guitool.qtapp_loop(back.mainwin, frequency=100)
-
run_merge_checks_multitons
()[source]¶ Checks for missed matches within a group of annotations. Only uses annotations with more 2 annots per id.
-
select_aid
(aid, imgsetid=None, show=True, show_annotation=True, web=False, **kwargs)[source]¶ Table Click -> Chip Table
-
select_gid
(gid, imgsetid=None, show=True, sel_aids=None, fnum=None, web=False, **kwargs)[source]¶ Table Click -> Image Table
Example
>>> # xdoctest: +REQUIRES(--gui) >>> print(''' >>> get_valid_gids >>> ''') >>> valid_gids = ibs.get_valid_gids() >>> print(''' >>> get_valid_aids >>> ''') >>> valid_aids = ibs.get_valid_aids() >>> # >>> print(''' >>> * len(valid_aids) = %r >>> * len(valid_gids) = %r >>> ''' % (len(valid_aids), len(valid_gids))) >>> assert len(valid_gids) > 0, 'database images cannot be empty for test' >>> # >>> gid = valid_gids[0] >>> aid_list = ibs.get_image_aids(gid) >>> aid = aid_list[-1] >>> back.select_gid(gid, aids=[aid])
-
select_nid
(nid, imgsetid=None, show=True, show_name=True, **kwargs)[source]¶ Table Click -> Name Table
-
show_advanced_id_interface
()[source]¶ - CommandLine:
- python -m wbia.gui.guiback show_advanced_id_interface –show
Example
>>> # xdoctest: +REQUIRES(--gui) >>> from wbia.gui.guiback import * # NOQA >>> import wbia >>> main_locals = wbia.main(defaultdb='testdb1') >>> ibs, back = ut.dict_take(main_locals, ['ibs', 'back']) >>> ut.exec_funckw(back.show_advanced_id_interface, globals()) >>> back.show_advanced_id_interface() >>> back.cleanup() >>> ut.quit_if_noshow() >>> #gt.ensure_qapp() # must be ensured before any embeding >>> import wbia.plottool as pt >>> gt.qtapp_loop(qwin=back)
-
updateWindowTitleSignal
¶
-
class
wbia.gui.guiback.
NewDatabaseWidget
(parent=None, orientation=None, verticalSizePolicy=None, horizontalSizePolicy=None, verticalStretch=None, horizontalStretch=None, spacing=None, margin=None, name=None, ori=None, **kwargs)[source]¶ Bases:
wbia.guitool.guitool_components.GuitoolWidget
Parameters: parent (None) – (default = None) - CommandLine:
- python -m wbia.gui.guiback NewDatabaseWidget –show
Example
>>> # DISABLE_DOCTEST >>> from wbia.gui.guiback import * # NOQA >>> gt.ensure_qtapp() >>> self = NewDatabaseWidget(back=None) >>> self.resize(400, 200) >>> self.show() >>> ut.quit_if_noshow() >>> gt.qtapp_loop(qwin=self, freq=10)
-
wbia.gui.guiback.
backblock
(func)[source]¶ BLOCKING DECORATOR TODO: This decorator has to be specific to either front or back. Is there a way to make it more general?
-
wbia.gui.guiback.
backreport
(func)[source]¶ reports errors on backend functions should be around every function by default
wbia.gui.guiexcept module¶
wbia.gui.guiexceptions module¶
wbia.gui.guiheaders module¶
This model provides the declarative interface to all of the api_*_models in guitool. Each different type of model/view has to register its iders, getters, and potentially setters (hopefully if guitool ever gets off the ground the delters as well)
Different columns can be hidden / shown by modifying this file
TODO: need to cache the total number of annotations or something about imagesets on disk to help startuptime.
wbia.gui.id_review_api module¶
- CommandLine:
- python -m wbia.gui.inspect_gui –test-test_review_widget –show
-
wbia.gui.id_review_api.
ensure_match_img
(ibs, cm, daid, qreq_=None, match_thumbtup_cache={})[source]¶ - CommandLine:
- python -m wbia.gui.id_review_api –test-ensure_match_img –show
Example
>>> # ENABLE_DOCTEST >>> from wbia.gui.id_review_api import * # NOQA >>> import wbia >>> # build test data >>> cm, qreq_ = wbia.testdata_cm() >>> daid = cm.get_top_aids()[0] >>> match_thumbtup_cache = {} >>> # execute function >>> match_thumb_fpath_ = ensure_match_img(qreq_.ibs, cm, daid, qreq_, >>> match_thumbtup_cache) >>> # verify results >>> result = str(match_thumb_fpath_) >>> print(result) >>> ut.quit_if_noshow() >>> ut.startfile(match_thumb_fpath_, quote=True)
-
wbia.gui.id_review_api.
get_match_status_bgrole
(ibs, aid_pair)[source]¶ Background role for status column
-
wbia.gui.id_review_api.
get_match_thumb_fname
(cm, daid, qreq_, view_orientation='vertical', draw_matches=True, draw_heatmask=False)[source]¶ - CommandLine:
- python -m wbia.gui.id_review_api –exec-get_match_thumb_fname
Example
>>> # DISABLE_DOCTEST >>> from wbia.gui.id_review_api import * # NOQA >>> import wbia >>> cm, qreq_ = wbia.testdata_cm('PZ_MTEST') >>> thumbsize = (128, 128) >>> daid = cm.get_top_aids()[0] >>> match_thumb_fname = get_match_thumb_fname(cm, daid, qreq_) >>> result = match_thumb_fname >>> print(result) match_aids=1,1_cfgstr=ubpzwu5k54h6xbnr.jpg
-
wbia.gui.id_review_api.
get_photobomber_map
(ibs, aids, aid_to_nid=None)[source]¶ Builds map of which names that photobomb other names.
python -m wbia.gui.id_review_api –test-test_review_widget –show –db PZ_MTEST -a default:qindex=0
>>> import wbia >>> dbdir = ut.truepath('~/lev/media/danger/GGR/GGR-IBEIS') >>> ibs = wbia.opendb(dbdir='/home/joncrall/lev/media/danger/GGR/GGR-IBEIS') >>> filter_kw = { >>> 'multiple': False, >>> 'minqual': 'good', >>> 'is_known': True, >>> 'min_pername': 2, >>> 'view': ['right'], >>> } >>> aids = ibs.filter_annots_general(ibs.get_valid_aids(), filter_kw=filter_kw)
-
wbia.gui.id_review_api.
get_review_edges
(cm_list, ibs=None, review_cfg={})[source]¶ Needs to be moved to a better file. Maybe something to do with identification.
Returns a list of matches that should be inspected This function is more lightweight than orgres or allres. Used in id_review_api and interact_qres2
Parameters: - cm_list (list) – list of chip match objects
- ranks_top (int) – put all ranks less than this number into the graph
- directed (bool) –
Returns: review_edges = (qaid_arr, daid_arr, score_arr, rank_arr)
Return type: tuple
- CommandLine:
- python -m wbia.gui.id_review_api get_review_edges:0
- Example0:
>>> # ENABLE_DOCTEST >>> from wbia.gui.id_review_api import * # NOQA >>> import wbia >>> ibs = wbia.opendb('PZ_MTEST') >>> qreq_ = wbia.main_helpers.testdata_qreq_() >>> cm_list = qreq_.execute() >>> review_cfg = dict(ranks_top=5, directed=True, name_scoring=False, >>> filter_true_matches=True) >>> review_edges = get_review_edges(cm_list, ibs=ibs, review_cfg=review_cfg) >>> print(review_edges)
- Example1:
>>> # UNSTABLE_DOCTEST >>> from wbia.gui.id_review_api import * # NOQA >>> import wbia >>> cm_list, qreq_ = wbia.testdata_cmlist('PZ_MTEST', a='default:qsize=5,dsize=20') >>> review_cfg = dict(ranks_top=5, directed=True, name_scoring=False, >>> filter_reviewed=False, filter_true_matches=True) >>> review_edges = get_review_edges(cm_list, review_cfg=review_cfg, ibs=ibs) >>> print(review_edges)
- Example3:
>>> # UNSTABLE_DOCTEST >>> from wbia.gui.id_review_api import * # NOQA >>> import wbia >>> cm_list, qreq_ = wbia.testdata_cmlist('PZ_MTEST', a='default:qsize=1,dsize=100') >>> review_cfg = dict(ranks_top=1, directed=False, name_scoring=False, >>> filter_reviewed=False, filter_true_matches=True) >>> review_edges = get_review_edges(cm_list, review_cfg=review_cfg, ibs=ibs) >>> print(review_edges)
- Example4:
>>> # UNSTABLE_DOCTEST >>> from wbia.gui.id_review_api import * # NOQA >>> import wbia >>> cm_list, qreq_ = wbia.testdata_cmlist('PZ_MTEST', a='default:qsize=10,dsize=10') >>> ranks_top = 3 >>> review_cfg = dict(ranks_top=3, directed=False, name_scoring=False, >>> filter_reviewed=False, filter_true_matches=True) >>> review_edges = get_review_edges(cm_list, review_cfg=review_cfg, ibs=ibs) >>> print(review_edges)
-
wbia.gui.id_review_api.
get_reviewed_status_bgrole
(ibs, aid_pair)[source]¶ Background role for status column
-
wbia.gui.id_review_api.
make_ensure_match_img_nosql_func
(qreq_, cm, daid)[source]¶ - CommandLine:
- python -m wbia.gui.id_review_api –test-ensure_match_img –show
Example
>>> # ENABLE_DOCTEST >>> from wbia.gui.id_review_api import * # NOQA >>> import wbia >>> # build test data >>> cm, qreq_ = wbia.testdata_cm() >>> ibs = qreq_.ibs >>> daid = cm.get_top_aids()[0] >>> match_thumbtup_cache = {} >>> # execute function >>> match_thumb_fpath_ = ensure_match_img(qreq_.ibs, cm, daid, qreq_, match_thumbtup_cache) >>> # verify results >>> result = str(match_thumb_fpath_) >>> print(result) >>> ut.quit_if_noshow() >>> ut.startfile(match_thumb_fpath_, quote=True)
-
wbia.gui.id_review_api.
make_review_api
(ibs, cm_list, review_cfg, qreq_=None)[source]¶ Builds columns which are displayable in a ColumnListTableWidget
- CommandLine:
- python -m wbia.gui.id_review_api –test-test_review_widget –show python -m wbia.gui.id_review_api –test-make_review_api
Example
>>> # ENABLE_DOCTEST >>> from wbia.gui.id_review_api import * # NOQA >>> import wbia >>> import wbia.guitool as gt >>> from wbia.gui import id_review_api >>> cm_list, qreq_ = wbia.main_helpers.testdata_cmlist() >>> tblname = 'chipmatch' >>> name_scoring = False >>> ranks_top = 5 >>> review_cfg = dict(ranks_top=ranks_top, name_scoring=name_scoring) >>> review_api = make_review_api(qreq_.ibs, cm_list, review_cfg, qreq_=qreq_) >>> print('review_api = %r' % (review_api,))
wbia.gui.inspect_gui module¶
This module was never really finished. It is used in some cases to display the results from a query in a qt window.
- CommandLine:
- python -m wbia.gui.inspect_gui –test-QueryResultsWidget –show
-
class
wbia.gui.inspect_gui.
QueryResultsWidget
(ibs, cm_list, parent=None, callback=None, qreq_=None, query_title='', review_cfg={})[source]¶ Bases:
wbia.guitool.api_item_widget.APIItemWidget
Window for gui inspection
- CommandLine:
- python -m wbia.gui.inspect_gui –test-QueryResultsWidget –show python -m wbia.gui.inspect_gui –test-QueryResultsWidget –show python -m wbia.gui.inspect_gui –test-QueryResultsWidget –show –fresh-inspect python -m wbia.gui.inspect_gui –test-QueryResultsWidget –cmd
Example
>>> # DISABLE_DOCTEST >>> from wbia.gui.inspect_gui import * # NOQA >>> import wbia >>> qreq_ = wbia.testdata_qreq_(defaultdb='PZ_MTEST', a='default:qindex=0:5,dindex=0:20', t='default:SV=False,AQH=True') >>> ibs = qreq_.ibs >>> assert qreq_.ibs.dbname in ['PZ_MTEST', 'testdb1'], 'do not use on a real database' >>> if ut.get_argflag('--fresh-inspect'): >>> #ut.remove_files_in_dir(ibs.get_match_thumbdir()) >>> ibs.delete_annotmatch(ibs._get_all_annotmatch_rowids()) >>> cm_list = qreq_.execute() >>> print('[inspect_matches] make_qres_widget') >>> review_cfg = dict( >>> ranks_top=10000, >>> #filter_reviewed=True, >>> filter_reviewed=True, >>> #filter_true_matches=False, >>> ) >>> #ut.view_directory(ibs.get_match_thumbdir()) >>> gt.ensure_qapp() >>> qres_wgt = QueryResultsWidget(qreq_.ibs, cm_list, qreq_=qreq_, review_cfg=review_cfg) >>> ut.quit_if_noshow() >>> qres_wgt.show() >>> qres_wgt.raise_() >>> print('</inspect_matches>') >>> # simulate double click >>> #qres_wgt._on_click(qres_wgt.model.index(2, 2)) >>> #qres_wgt._on_doubleclick(qres_wgt.model.index(2, 0)) >>> # TODO: add in qwin to main loop >>> gt.qtapp_loop(qwin=qres_wgt) >>> print(main_execstr) >>> exec(main_execstr)
assert that the ampersand cannot have duplicate keys
Parameters: - ibs (wbia.IBEISController) – wbia controller object
- aid1 (int) – annotation id
- aid2 (int) – annotation id
- cm (wbia.ChipMatch) – object of feature correspondences and scores
- qreq (wbia.QueryRequest) – query request object with hyper-parameters(default = None)
- aid_list (list) – list of annotation rowids(default = None)
Returns: options
Return type: list
- CommandLine:
python -m wbia.gui.inspect_gui –exec-get_aidpair_context_menu_options python -m wbia.gui.inspect_gui –exec-get_aidpair_context_menu_options –verbose python -m wbia.gui.inspect_gui –exec-get_aidpair_context_menu_options –verbose -a timecontrolled -t invarbest –db PZ_Master1 –qaid 574
# Other scripts that call this one;w python -m wbia.dev -e cases –db PZ_Master1 -a timectrl -t best –filt :sortdsc=gfscore,fail=True,min_gtscore=.0001 –show python -m wbia.dev -e cases –db PZ_MTEST -a timectrl -t best –filt :sortdsc=gfscore,fail=True,min_gtscore=.0001 –show
Example
>>> # ENABLE_DOCTEST >>> from wbia.gui.inspect_gui import * # NOQA >>> import wbia >>> ibs = wbia.opendb('PZ_MTEST') >>> qreq_ = wbia.main_helpers.testdata_qreq_(t=['default:fg_on=False']) >>> cm_list = qreq_.execute() >>> cm = cm_list[0] >>> ibs = qreq_.ibs >>> aid1 = cm.qaid >>> aid2 = cm.get_top_aids()[0] >>> aid_list = None >>> options = get_aidpair_context_menu_options(ibs, aid1, aid2, cm, qreq_, aid_list) >>> result = ('options = %s' % (ut.repr2(options),)) >>> print(result)
-
wbia.gui.inspect_gui.
launch_review_matches_interface
(ibs, cm_list, dodraw=False, filter_reviewed=False)[source]¶ TODO: move to a more general function
-
wbia.gui.inspect_gui.
make_vsone_context_options
(ibs, aid1, aid2, qreq_)[source]¶ - CommandLine:
- python -m wbia.gui.inspect_gui make_vsone_context_options –db PZ_MTEST python -m wbia.gui.inspect_gui make_vsone_context_options –dbdir ~/lev/media/hdd/work/WWF_Lynx/ –aids=2587,2398 python -m wbia.gui.inspect_gui make_vsone_context_options –db PZ_Master1 –aids=8,242
Example
>>> # SCRIPT >>> from wbia.gui.inspect_gui import * # NOQA >>> import wbia >>> gt.ensure_qapp() >>> ut.qtensure() >>> ibs = wbia.opendb(defaultdb='PZ_MTEST') >>> aids = ut.get_argval('--aids', default=[1, 2], type_=list) >>> print('aids = %r' % (aids,)) >>> aid1, aid2 = aids >>> options = make_vsone_context_options(ibs, 1, 2, None) >>> dict(options)['Tune Vsone(vt)']() >>> gt.qtapp_loop(freq=10)
-
wbia.gui.inspect_gui.
make_vsone_tuner
(ibs, edge=None, qreq_=None, autoupdate=True, info_text=None, cfgdict=None)[source]¶ Makes a qt widget for inspecting one-vs-one matches
- CommandLine:
- python -m wbia.gui.inspect_gui make_vsone_tuner –show
Example
>>> # xdoctest: +REQUIRES(--gui) >>> from wbia.gui.inspect_gui import * # NOQA >>> import wbia >>> gt.ensure_qapp() >>> ut.qtensure() >>> ibs = wbia.opendb(defaultdb='PZ_MTEST') >>> edge = ut.get_argval('--aids', default=[1, 2], type_=list) >>> self = make_vsone_tuner(ibs, edge, autoupdate=False) >>> ut.quit_if_noshow() >>> self.show() >>> gt.qtapp_loop(qwin=self, freq=10)
-
wbia.gui.inspect_gui.
review_match
(ibs, aid1, aid2, update_callback=None, backend_callback=None, qreq_=None, cm=None, **kwargs)[source]¶
-
wbia.gui.inspect_gui.
set_annot_pair_as_negative_match_
(ibs, aid1, aid2, cm, qreq_, **kwargs)[source]¶ MARK AS INCORRECT
wbia.gui.models_and_views module¶
This provides concrete classes which inherit from abstract api_item_models/api_table_models/api_tree_models in guitool.
-
class
wbia.gui.models_and_views.
IBEISStripeModel
(headers=None, parent=None, *args)[source]¶ Bases:
wbia.guitool.stripe_proxy_model.StripeProxyModel
Used for the image grid
-
class
wbia.gui.models_and_views.
IBEISTableView
(parent=None)[source]¶ Bases:
wbia.guitool.api_table_view.APITableView
View for ANNOTATION / NAME / IMAGE Tables
-
class
wbia.gui.models_and_views.
IBEISTreeView
(parent=None)[source]¶ Bases:
wbia.guitool.api_tree_view.APITreeView
View for NAME / ANNOTATION Tree
-
class
wbia.gui.models_and_views.
ImagesetTableView
(parent=None)[source]¶ Bases:
wbia.guitool.api_table_view.APITableView
View for ImageSet Table
wbia.gui.newgui module¶
This should probably be renamed guifront.py This defines all of the visual components to the GUI It is invoked from guiback, which handles the nonvisual logic.
- BUGS:
- Copying the ungrouped imageset raises an error. Should have the option
to copy or move it. Other special imageset should not have this option.
Should gray out an option if it is not available.
- CommandLine:
- wbia –dbdir ~/lev/media/hdd/work/WWF_Lynx/ –name-tab
-
class
wbia.gui.newgui.
APITabWidget
(parent=None, horizontalStretch=1)[source]¶ Bases:
PyQt5.QtWidgets.QTabWidget
Holds the table-tabs
use setCurrentIndex to change the selection
-
class
wbia.gui.newgui.
IBEISGuiWidget
(back=None, ibs=None, parent=None)[source]¶ Bases:
PyQt5.QtWidgets.QWidget
- CommandLine:
- # Testing python -m wbia –db NNP_Master3 –onlyimgtbl python -m wbia –db PZ_Master1 –onlyimgtbl
-
changing_models_gen
(tblnames=None)[source]¶ Loops over tablenames emitting layoutChanged at the end for each
-
edit_image_time
(gid_list)[source]¶ - CommandLine:
- python -m wbia.gui.newgui –exec-edit_image_time –show
Example
>>> # DISABLE_DOCTEST >>> from wbia.gui.newgui import * # NOQA >>> ibs, back, ibswgt, testdata_main_loop = testdata_guifront('testdb3') >>> #ibs, back, ibswgt, testdata_main_loop = testdata_guifront('lynx') >>> ibswgt.edit_image_time([277, 630]) >>> testdata_main_loop(globals(), locals())
-
filter_annotation_table
()[source]¶ TODO: Finish implementation
- CommandLine:
- python -m wbia.gui.newgui –test-filter_annotation_table –show –db lynx –imgsetid 2
Example
>>> # DISABLE_DOCTEST >>> from wbia.gui.newgui import * # NOQA >>> ibs, back, ibswgt, testdata_main_loop = testdata_guifront('testdb3') >>> #ibs, back, ibswgt, testdata_main_loop = testdata_guifront('PZ_Master1') >>> result = ibswgt.filter_annotation_table() >>> print(result) >>> testdata_main_loop(globals(), locals())
-
imagesDropped
(url_list)[source]¶ image drag and drop event
- CommandLine:
- python -m wbia.gui.newgui imagesDropped –show
Example
>>> # xdoctest: +REQUIRES(--gui) >>> from wbia.gui.newgui import * # NOQA >>> ibs, back, ibswgt, testdata_main_loop = testdata_guifront('hstest') >>> url_list = [ut.grab_test_imgpath('carl.jpg'), ut.grab_test_imgpath('lena.png')] >>> #url_list += [ut.truepath('~/Downloads/Clutter/wd_peter2.zip')] >>> url = url_list[0] >>> ut.quit_if_noshow() >>> ibswgt.imagesDropped(url_list) >>> testdata_main_loop(globals(), locals())
-
make_adjacent_qtindex_callbacks
(model, qtindex)[source]¶ Returns: (current_rowid, next_callback, prev_callback) Return type: tuple - CommandLine:
- python -m wbia.gui.newgui –test-make_adjacent_qtindex_callbacks
Example
>>> # DISABLE_DOCTEST >>> from wbia.gui.newgui import * # NOQA >>> ibs, back, ibswgt, testdata_main_loop = testdata_guifront() >>> gid = ibs.get_valid_gids()[0] >>> model = ibswgt.models[gh.IMAGE_TABLE] >>> qtindex, row = model.get_row_and_qtindex_from_id(gid) >>> tup = ibswgt.make_adjacent_qtindex_callbacks(model, qtindex) >>> (current_rowid, next_callback, prev_callback) = tup >>> assert prev_callback is None, 'should not be a previous image id' >>> current_rowid1, next_callback1, prev_callback1 = next_callback() >>> assert next_callback() is None, 'race condition not prevented' >>> current_rowid2, next_callback2, prev_callback2 = next_callback1() >>> testdata_main_loop(globals(), locals())
-
on_contextMenuClicked
(qtindex, pos)[source]¶ Right click anywhere in the GUI Context menus on right click of a table
- CommandLine:
- python -m wbia –db WS_ALL –imgsetid 2 –select-name=A-003
-
on_doubleclick
(qtindex)[source]¶ Double clicking anywhere in the GUI
- CommandLine:
- python -m wbia –db lynx –imgsetid 2 –select-name=goku
-
select_table_indicies_from_text
(tblname, text, allow_table_change=False)[source]¶ Parameters: - tablename of the id to parse from text (tblname) – - Ignore:
- text = ‘[1, 2, 3,]’
- text = ‘51e10019-968b-5f2e-2287-8432464d7547 ‘
Example
>>> # xdoctest: +REQUIRES(--gui) >>> from wbia.gui.newgui import * # NOQA >>> ibs, back, ibswgt, testdata_main_loop = testdata_guifront() >>> ibswgt.set_table_tab(gh.ANNOTATION_TABLE) >>> tblname = gh.NAMES_TREE >>> text = 'lena' >>> ibswgt.select_table_indicies_from_text(tblname, text)
-
set_table_tab
(tblname)[source]¶ Programmatically change to the table-tab to either: Image, ImageGrid, Annotation, or Names table/tree
Example
>>> # xdoctest: +REQUIRES(--gui) >>> from wbia.gui.newgui import * # NOQA >>> ibs, back, ibswgt, testdata_main_loop = testdata_guifront() >>> ibswgt.set_table_tab(gh.ANNOTATION_TABLE)
-
spawn_edit_image_annotation_interaction
(model, qtindex, gid, imgsetid)[source]¶ TODO: needs reimplement using more standard interaction methods
-
spawn_edit_image_annotation_interaction_from_aid
(aid, imgsetid, model=None, qtindex=None)[source]¶ hack for letting annots spawn image editing
- CommandLine:
- python -m wbia.gui.newgui spawn_edit_image_annotation_interaction_from_aid –show
Example
>>> # DISABLE_DOCTEST >>> from wbia.gui.newgui import * # NOQA >>> import wbia >>> main_locals = wbia.main(defaultdb='testdb1') >>> ibs, back = ut.dict_take(main_locals, ['ibs', 'back']) >>> ibswgt = back.ibswgt # NOQA >>> aid = 4 >>> imgsetid = 1 >>> ibswgt.spawn_edit_image_annotation_interaction_from_aid(aid, imgsetid) >>> if ut.show_was_requested(): >>> gt.qtapp_loop(qwin=ibswgt)
-
update_selection
(selected, deselected)[source]¶ Quirky behavior: if you select two columns in a row and then unselect only one, the whole row is unselected, because this function only deals with deltas.
Example
>>> # DISABLE_DOCTEST >>> from wbia.gui.newgui import * # NOQA >>> ibs, back, ibswgt, testdata_main_loop = testdata_guifront() >>> ibswgt.set_table_tab(gh.NAMES_TREE) >>> view = ibswgt.views[gh.NAMES_TREE] >>> view.expandAll() >>> AUTOSELECT = False >>> if AUTOSELECT: ... view.selectAll() >>> selmodel = view.selectionModel() >>> selected = selmodel.selection() >>> deselected = QtCore.QItemSelection() >>> # verify results >>> print(result)
-
class
wbia.gui.newgui.
IBEISMainWindow
(back=None, ibs=None, parent=None)[source]¶ Bases:
PyQt5.QtWidgets.QMainWindow
-
dropSignal
¶
-
quitSignal
¶
-