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

accept()[source]
add_buttons()[source]
add_combo_boxes()[source]
add_label()[source]
cancel()[source]
change_dt(attr, val_ind, val)[source]
get_image_datetime_()[source]
go_next()[source]
go_prev()[source]
resizeEvent(self, QResizeEvent)[source]
show_helpmsg()[source]
update_ui()[source]
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
apply_new_config()[source]
embed()[source]
execute_query()[source]
expanded_aids
expt_query_dir()[source]
get_saved_queries()[source]
load_bc()[source]
load_previous_query(row)[source]
log_query(qreq_=None, test=True)[source]

DEPRICATE

make_commandline_str()[source]
on_cfg_changed()[source]
on_table_doubleclick(index)[source]
onstart()[source]
populate_table()[source]
set_exemplars()[source]
sizeHint(self) → QSize[source]
update_config_info(extra=None)[source]
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)
add_annotation_from_image(gid_list, refresh=True)[source]

Context -> Add Annotation from Image

are_you_sure(use_msg=None, title='Confirmation', default=None, action=None, detailed_msg=None)[source]

Prompt user for conformation before changing something

assert_modules()[source]
backup_database()[source]

File -> Backup Database

batch_rename_consecutive_via_species_()[source]
browse_wildbook()[source]
change_daids_mode(index, value)[source]
change_detection_species(index, species_text)[source]

callback for combo box

cleanup()[source]
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

connect_wbia_control(ibs)[source]
contains_special_imagesets(imgsetid_list)[source]
copy_imageset(imgsetid_list)[source]
copy_species_to_imageset(aid, imgsetid=None, refresh=True)[source]
default_config()[source]

Button Click -> Preferences Defaults

delete_all_imagesets()[source]
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)
delete_cache()[source]

Help -> Delete Directory Slots

delete_global_prefs()[source]
delete_image(gid_list=None)[source]

Action -> Delete Images

delete_image_annotations(gid_list)[source]
delete_imageset(imgsetid_list)[source]
delete_imageset_and_images(imgsetid_list)[source]
delete_queryresults_dir()[source]
delete_selected_species()[source]
delete_thumbnails()[source]

Help -> Delete Thumbnails

dev_cls()[source]

Help -> Developer Mode

dev_export_annotations()[source]
dev_mode()[source]

Help -> Developer Mode

dev_reload()[source]

Help -> Developer Reload

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)
display_special_imagesets_error()[source]
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()
edit_preferences()[source]

Options -> Edit Preferences

ensure_demodata()[source]
export_database_as_csv()[source]

File -> Export Database

export_imagesets(imgsetid_list)[source]
filter_imageset_as_camera_trap(refresh=True, score_thresh=0.3)[source]
fix_and_clean_database()[source]

Help -> Fix/Clean Database

force_wildbook_namechange()[source]
get_background_web_domain(**kwargs)[source]
get_selected_aids()[source]

selected annotation id

get_selected_daids(imgsetid=None, daids_mode=None, qaid_list=None, species=None)[source]
get_selected_gid()[source]

selected image id

get_selected_imgsetid()[source]

selected imageset id

get_selected_species()[source]
get_work_directory()[source]
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_button_click()[source]
import_images_as_annots_from_file(gpath_list=None, refresh=True)[source]
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))
install_wildbook()[source]
kill_web_server_parallel()[source]
launch_ipy_notebook()[source]
layout_figures()[source]

Options -> Layout Figures

localize_images()[source]

File -> Localize Images

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)
make_database_duplicate()[source]

File -> Copy Database

make_qt_graph_interface()[source]
mark_imageset_as_shipped(imgsetid_list)[source]
merge_imagesets(imgsetid_list, destination_imgsetid)[source]
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()[source]

Observer’s notify function.

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

quit()[source]

File -> Quit

reconnect_controller()[source]
redownload_detection_models()[source]
refresh_state()[source]

Blanket refresh function. Try not to call this

register_self()[source]
remove_from_imageset(gid_list)[source]
review_queries(cm_list, qreq_=None, review_cfg={}, query_title='')[source]
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_on_images(gid_list, refresh=True, **kwargs)[source]
run_detection_on_imageset(imgsetid_list, refresh=True, **kwargs)[source]
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_integrity_checks()[source]
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.

run_tests()[source]
run_utool_tests()[source]
run_vtool_tests()[source]
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_gid_from_aid(aid, imgsetid=None, show=True, web=False)[source]
select_imgsetid(imgsetid=None, **kwargs)[source]

Table Click -> Result Table

select_nid(nid, imgsetid=None, show=True, show_name=True, **kwargs)[source]

Table Click -> Name Table

send_to_new_imageset(gid_list, mode='move')[source]
send_unshipped_processed_imagesets(refresh=True)[source]
set_daids_mode(new_mode)[source]
set_exemplars_from_quality_and_viewpoint_()[source]
set_workdir()[source]
show()[source]
show_about_message()[source]
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)
show_aid_list_in_web(aid_list, **kwargs)[source]
show_annotation(aid, show_image=False, web=False, **kwargs)[source]
show_hough_image_(gid, **kwargs)[source]
show_image(gid, sel_aids=[], web=False, **kwargs)[source]
show_images_in_web(gid_list, **kwargs)[source]
show_imgsetid_annotation_turk_in_web(imgsetid_list, **kwargs)[source]
show_imgsetid_detection_turk_in_web(imgsetid_list, **kwargs)[source]
show_imgsetid_list_in_web(imgsetid_list, **kwargs)[source]
show_name(nid, sel_aids=[], **kwargs)[source]
show_nid_list_in_web(nid_list, **kwargs)[source]
show_probability_chip(aid, **kwargs)[source]
shutdown_wildbook()[source]
start_web_server_parallel(browser=True)[source]
startup_wildbook()[source]
take_screenshot()[source]

dev command only

toggle_output_widget()[source]
toggle_thumbnails()[source]
train_rf_with_imageset(**kwargs)[source]
unset_names(aid_list)[source]
updateWindowTitleSignal
update_selection_texts()[source]
update_source_install()[source]
update_special_imagesets_()[source]
update_species_nice_name()[source]
user_info(**kwargs)[source]
user_input(msg='user input', **kwargs)[source]
user_option(**kwargs)[source]
user_warning(title='Warning', **kwargs)[source]
view_app_files_dir()[source]
view_database_dir()[source]

Help -> View Directory Slots

view_docs()[source]

Help -> View Documentation

view_log_dir_global()[source]
view_log_dir_local()[source]
view_logs_global()[source]
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)
cancel()[source]
change_workdir()[source]
choose_new_dbdir(dbdir)[source]
create_in_customdir()[source]
create_in_workdir()[source]
initialize(back=None, mode='new', on_chosen=None)[source]
update_state()[source]
view_workdir()[source]
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.guiback.blocking_slot(*types_)[source]

A blocking slot accepts the types which are passed to QtCore.pyqtSlot. In addition it also causes the gui frontend to block signals while the decorated function is processing.

wbia.gui.guiback.testdata_guiback(defaultdb='testdb2', **kwargs)[source]

wbia.gui.guiexcept module

exception wbia.gui.guiexcept.InvalidRequest(*args)[source]

Bases: Exception

exception wbia.gui.guiexcept.NeedsUserInput(*args)[source]

Bases: Exception

exception wbia.gui.guiexcept.UserCancel(*args)[source]

Bases: Exception

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.guiheaders.make_table_declarations(ibs)[source]

these used to be global variables, hopefully we can make them a little more configurable

wbia.gui.guiheaders.make_wbia_headers_dict(ibs)[source]
wbia.gui.guiheaders.partial_imap_1to1(func, si_func)[source]

wbia.gui.guimenus module

This module defines all of the menu items in the main GUI as well as their callbacks in guiback

class wbia.gui.guimenus.DummyBack[source]

Bases: object

wbia.gui.guimenus.setup_actions_menu(mainwin, back)[source]

ACTIONS MENU

wbia.gui.guimenus.setup_batch_menu(mainwin, back)[source]

BATCH MENU

wbia.gui.guimenus.setup_checks_menu(mainwin, back)[source]
wbia.gui.guimenus.setup_depricated_menu(mainwin, back)[source]
wbia.gui.guimenus.setup_developer_menu(mainwin, back)[source]

DEV MENU

wbia.gui.guimenus.setup_dummy_menus()[source]
CommandLine:
python -m wbia.gui.guimenus –test-setup_dummy_menus

Example

>>> # DISABLE_DOCTEST
>>> from wbia.gui.guimenus import *  # NOQA
>>> result = setup_dummy_menus()
>>> print(result)
wbia.gui.guimenus.setup_file_menu(mainwin, back)[source]

FILE MENU

wbia.gui.guimenus.setup_help_menu(mainwin, back)[source]

HELP MENU

wbia.gui.guimenus.setup_menus(mainwin, back=None)[source]
wbia.gui.guimenus.setup_option_menu(mainwin, back)[source]

OPTIONS MENU

wbia.gui.guimenus.setup_refresh_menu(mainwin, back)[source]
wbia.gui.guimenus.setup_view_menu(mainwin, back)[source]
wbia.gui.guimenus.setup_web_menu(mainwin, back)[source]
wbia.gui.guimenus.setup_zebra_menu(mainwin, back)[source]

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(ibs, aid_pair)[source]

Data role for status column

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(ibs, aid_pair)[source]

Data role for status column

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.CustomFilterModel(headers=None, parent=None, *args)[source]

Bases: wbia.guitool.filter_proxy_model.FilterProxyModel

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)
closeEvent(self, QCloseEvent)[source]
connect_signals_and_slots()[source]
edit_filters()[source]
get_aidpair_from_qtindex(qtindex)[source]
get_annotmatch_rowid_from_qtindex(qtindex)[source]
get_widget_review_vars(qaid)[source]
mark_unreviewed_above_score_as_correct()[source]
on_alt_pressed(view, event)[source]
on_contextMenuRequested(qtindex, qpoint)[source]

popup context menu

on_special_key_pressed(view, event)[source]
repopulate()[source]
selectedRows()[source]
show_match_at_qtindex(qtindex)[source]
sizeHint(self) → QSize[source]
wbia.gui.inspect_gui.get_aidpair_context_menu_options(ibs, aid1, aid2, cm, qreq_=None, aid_list=None, **kwargs)[source]

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_aidpair_tag_context_options(ibs, aid1, aid2)[source]
wbia.gui.inspect_gui.make_annotpair_context_options(ibs, aid1, aid2, qreq_)[source]
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.inspect_gui.set_annot_pair_as_positive_match_(ibs, aid1, aid2, cm, qreq_, **kwargs)[source]

MARK AS CORRECT

wbia.gui.inspect_gui.show_vsone_tuner(ibs, qaid, daid, qreq_=None)[source]

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.IBEISItemModel(headers=None, parent=None, *args)[source]

Bases: wbia.guitool.api_item_model.APIItemModel

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.IBEISTableWidget(headers=None, parent=None, *args)[source]

Bases: wbia.guitool.api_item_widget.APIItemWidget

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.IBEISTreeWidget(headers=None, parent=None, *args)[source]

Bases: wbia.guitool.api_item_widget.APIItemWidget

class wbia.gui.models_and_views.ImagesetTableModel(headers=None, parent=None)[source]

Bases: wbia.guitool.api_item_model.APIItemModel

class wbia.gui.models_and_views.ImagesetTableView(parent=None)[source]

Bases: wbia.guitool.api_table_view.APITableView

View for ImageSet Table

class wbia.gui.models_and_views.ImagesetTableWidget(headers=None, parent=None, *args)[source]

Bases: wbia.guitool.api_item_widget.APIItemWidget

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

connect_wbia_control(ibs)[source]

Connects a new ibscontroler to the models

data_load_loop()[source]
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())
get_table_tab_index(tblname)[source]
goto_table_id(tablename, _id)[source]
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
on_rows_updated(tblname, nRows)[source]

When the rows are updated change the tab names

select_annot_text_editing_finished()[source]
select_image_text_editing_finished()[source]
select_imageset_tab(imgsetid)[source]
select_name_text_editing_finished()[source]
select_table_id(table_key, level, id_, imgsetid)[source]
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)
setWindowTitle(self, str)[source]
set_selection_status(key, ids)[source]
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)
update_species_available(reselect=False, reselect_new_name=None, deleting=False)[source]
update_tables(tblnames=None, clear_view_selection=True)[source]

forces changing models

class wbia.gui.newgui.IBEISMainWindow(back=None, ibs=None, parent=None)[source]

Bases: PyQt5.QtWidgets.QMainWindow

closeEvent(self, QCloseEvent)[source]
dragEnterEvent(self, QDragEnterEvent)[source]
dropEvent(self, QDropEvent)[source]
dropSignal
expand_names_tree()[source]
quitSignal
class wbia.gui.newgui.ImageSetTabWidget(parent=None, horizontalStretch=1)[source]

Bases: PyQt5.QtWidgets.QTabWidget

Handles tabs that contain individual image sets.

wbia.gui.newgui.testdata_guifront(defaultdb='testdb1')[source]
wbia.gui.newgui.testfunc()[source]
CommandLine:
python -m wbia.gui.newgui –test-testfunc –show python -m wbia.gui.newgui –test-testfunc –cmd

Example

>>> # DISABLE_DOCTEST
>>> from wbia.gui.newgui import *  # NOQA
>>> result = testfunc()
>>> print(result)

Module contents