Source code for wbia.__main__
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
Runs IBIES gui
"""
from __future__ import absolute_import, division, print_function
import multiprocessing
import utool as ut
import ubelt as ub
import sys
(print, rrr, profile) = ut.inject2(__name__)
CMD = ub.argflag('--cmd')
[docs]def dependencies_for_myprogram():
""" Let pyintaller find these modules
References:
http://stackoverflow.com/questions/18596410/importerror-no-module-named-mpl-toolkits-with-maptlotlib-1-3-0-and-py2exe
"""
from wbia.guitool.__PYQT__ import QtCore, QtGui # Pyinstaller hacks # NOQA
# from PyQt4 import QtCore, QtGui # NOQA
# from PyQt4 import QtCore, QtGui # NOQA
from scipy.sparse.csgraph import _validation # NOQA
from scipy.special import _ufuncs_cxx # NOQA
from mpl_toolkits.axes_grid1 import make_axes_locatable # NOQA
# import lru # NOQA
# Workaround for mpl_toolkits
import importlib
importlib.import_module('mpl_toolkits').__path__
[docs]def run_wbia():
r"""
CommandLine:
python -m wbia
python -m wbia find_installed_tomcat
python -m wbia get_annot_groundtruth:1
"""
import wbia # NOQA
# ut.set_process_title('IBEIS_main')
# main_locals = wbia.main()
# wbia.main_loop(main_locals)
# ut.set_process_title('IBEIS_main')
cmdline_varags = ut.get_cmdline_varargs()
if len(cmdline_varags) > 0 and cmdline_varags[0] == 'rsync':
from wbia.scripts import rsync_wbiadb
rsync_wbiadb.rsync_ibsdb_main()
sys.exit(0)
if ub.argflag('--devcmd'):
# Hack to let devs mess around when using an installer version
# TODO: add more hacks
# import utool.tests.run_tests
# utool.tests.run_tests.run_tests()
ut.embed()
# Run the tests of other modules
elif ub.argflag('--run-utool-tests'):
raise Exception('Deprecated functionality')
elif ub.argflag('--run-vtool-tests'):
raise Exception('Deprecated functionality')
elif ub.argflag(('--run-wbia-tests', '--run-tests')):
raise Exception('Deprecated functionality')
if ub.argflag('-e'):
"""
wbia -e print -a default -t default
"""
# Run dev script if -e given
import wbia.dev # NOQA
wbia.dev.devmain()
print('... exiting')
sys.exit(0)
# Attempt to run a test using the funciton name alone
# with the --tf flag
# if False:
# import wbia.tests.run_tests
# import wbia.tests.reset_testdbs
# import wbia.scripts.thesis
# ignore_prefix = [
# #'wbia.tests',
# 'wbia.control.__SQLITE3__',
# '_autogen_explicit_controller']
# ignore_suffix = ['_grave']
# func_to_module_dict = {
# 'demo_bayesnet': 'wbia.unstable.demobayes',
# }
# ut.main_function_tester('wbia', ignore_prefix, ignore_suffix,
# func_to_module_dict=func_to_module_dict)
# if ub.argflag('-e'):
# import wbia
# expt_kw = ut.get_arg_dict(ut.get_func_kwargs(wbia.run_experiment),
# prefix_list=['--', '-'])
# wbia.run_experiment(**expt_kw)
# sys.exit(0)
doctest_modname = ut.get_argval(
('--doctest-module', '--tmod', '-tm', '--testmod'),
type_=str,
default=None,
help_='specify a module to doctest',
)
if doctest_modname is not None:
"""
Allow any doctest to be run the main wbia script
python -m wbia --tmod utool.util_str --test-align:0
python -m wbia --tmod wbia.algo.hots.pipeline --test-request_wbia_query_L0:0 --show
python -m wbia --tf request_wbia_query_L0:0 --show
./dist/wbia/IBEISApp --tmod wbia.algo.hots.pipeline --test-request_wbia_query_L0:0 --show # NOQA
./dist/wbia/IBEISApp --tmod utool.util_str --test-align:0
./dist/IBEIS.app/Contents/MacOS/IBEISApp --tmod utool.util_str --test-align:0
./dist/IBEIS.app/Contents/MacOS/IBEISApp --run-utool-tests
./dist/IBEIS.app/Contents/MacOS/IBEISApp --run-vtool-tests
"""
print('[wbia] Testing module')
mod_alias_list = {'exptdraw': 'wbia.expt.experiment_drawing'}
doctest_modname = mod_alias_list.get(doctest_modname, doctest_modname)
module = ut.import_modname(doctest_modname)
(nPass, nTotal, failed_list, error_report_list) = ut.doctest_funcs(module=module)
retcode = 1 - (len(failed_list) == 0)
# print(module)
sys.exit(retcode)
import wbia
main_locals = wbia.main()
execstr = wbia.main_loop(main_locals)
# <DEBUG CODE>
if 'back' in main_locals and CMD:
back = main_locals['back']
front = getattr(back, 'front', None) # NOQA
# front = back.front
# ui = front.ui
ibs = main_locals['ibs'] # NOQA
print('-- EXECSTR --')
print(ub.codeblock(execstr))
print('-- /EXECSTR --')
exec(execstr)
# </DEBUG CODE>
if __name__ == '__main__':
multiprocessing.freeze_support() # for win32
run_wbia()