Source code for wbia.params

# -*- coding: utf-8 -*-
"""
DEPRICATE THIS ENTIRE FILE

this module lists most of the command line args available for use.  there are
still many cases where util_arg.get_argval and util_arg.get_argflag are used
instead of this module. Those command line arguments will not be represented
here and they should eventually be integrated into this module (hopefully
automagically)

TODO:
nnkj/enerate this module automagically from
    import utool as ut
    utool_parse_codeblock = ut.util_arg.autogen_argparse_block(extra_args=parsed_args)
    ut.util_arg.reset_argrecord()
    import wbia
    parsed_args = ut.util_arg.parse_used_arg_flags_and_vals(wbia, recursive=True)
    wbia_parse_codeblock = ut.util_arg.autogen_argparse_block(extra_args=parsed_args)

    ut.util_arg.autogenerate_parse_py([utool_parse_codeblock, wbia_parse_codeblock])

    utool_parse_codeblock
    ut.util_arg

    print(parse_codeblock)
"""
import logging
from utool import util_arg
import utool as ut


(print, rrr, profile) = ut.inject2(__name__)
logger = logging.getLogger('wbia')


# Global command line arguments
args = None  # Parsed arguments
unknown = None  # Unparsed arguments


[docs]def parse_args(): # TODO: Port more from hotspotter/hsdev/argparse2.py global args global unknown if args is not None: # Only parse arguments once if util_arg.VERBOSE: logger.info('[!params] ALREADY INITIALIZED ARGS') return program_name = 'IBEIS - Lite (WARNING THESE ARGS ARE MOSTLY DEPRICATED)' description = 'Image Based Ecological Information System' parser2 = util_arg.make_argparse2(program_name, description) def dev_argparse(parser2): parser2 = parser2.add_argument_group('Developer') parser2.add_str( ('--tests', '--test', '-t'), [], help='integer or test name', nargs='*' ) parser2.add_flag(('--wait', '-w'), help='wait for user to press enter') parser2.add_flag(('--cmd', '--ipy'), help='Runs in IPython mode') parser2.add_flag(('--all-cases', '--all')) parser2.add_flag( ('--all-gt-cases', '--allgt'), help='chooses all groundtruthed annotations to be queried', ) parser2.add_flag(('--all-singleton-cases', '--allsingle')) parser2.add_ints( ('--qindex', '-qx', '--index'), None, help='test only these query indices. Out of bounds errors are clipped', ) parser2.add_ints( ('--dindex', '-dx'), None, help='test only these database indices. . Out of bounds errors are clipped', ) # parser2.add_ints(('--sel-rows', '-r'), help='view row for experiment harness') # parser2.add_ints(('--sel-cols', '-c'), help='view col for experiment harness') # parser2.add_ints(('--qaid', '--qaids'), default=[], help='investigate match aid') # parser2.add_ints(('--daid-exclude', '--daids-exclude'), default=[], help='exclude daids from matching') # parser2.add_flag(('--convert'), help='converts / updates schema of database if possible') # parser2.add_flag(('--force-delete'), help='forces deletion of hsdb before convert') parser2.add_flag( ('--fulltb'), help='shows a full traceback (default behavior removes decorators from the trace)', ) parser2.add_flag(('--verbose'), help='turns on verbosity') parser2.add_flag( (('--veryverbose', '--very-verbose')), help='turns on extra verbosity' ) parser2.add_flag(('--quiet'), help='turns down verbosity') parser2.add_flag(('--silent'), help='turns off verbosity') parser2.add_flag( ('--print-inject-order'), help='shows import order of any module registered with utool', ) parser2.add_flag( ('--debug-print'), help='shows where each injected print statement happens' ) def behavior_argparse(parser2): # Program behavior parser2 = parser2.add_argument_group('Behavior') parser2.add_int( '--num-procs', default=None, help='defaults util_parallel.init_pools method' ) parser2.add_flag('--serial', help='Forces num_procs=1') parser2.add_flag('--nogui', default=False, help='Will not start the gui.') parser2.add_flag('--gui', default=True, help='Will start the gui if able.') loopfreq = 4200 / 10 # 100 parser2.add_int('--loop-freq', default=loopfreq, help='Qt main loop ms frequency') # parser2.add_flag('--nocache-db', # help='Disables db cache') # parser2.add_flag('--nocache-flann', # help='Disables flann cache') # parser2.add_flag('--nocache-query', # help='Disables flann cache') parser2.add_flag( '--auto-dump', help='dumps the SQLITE3 database after every commit' ) # parser2.add_flag('--darken') parser2.add_flag('--aggroflush', help='utool writes flush immediately') parser2.add_flag('--nologging', help='disables logging') parser2.add_flag('--noindent', help='disables utool indentation') parser2.add_str( '--wildbook-target', help='specify the Wildbook target deployment' ) def database_argparse(parser2): # Database selections parser2 = parser2.add_argument_group('Database') parser2.add_str( '--db', None, help='specifies the short name of the database to load' ) parser2.add_str( '--dbdir', None, help='specifies the full path of the database to load' ) parser2.add_str('--set-workdir', None) parser2.add_flag('--get-workdir', help='gets the default work directory') parser2.add_str( ('--logdir', '--set-logdir'), None, help='sets the default logging directory' ) parser2.add_flag('--get-logdir', help='gets the current logging directory') parser2.add_flag( ('--view-logdir', '--vld'), help='views the current (local and global) logging directories', ) parser2.add_flag( ('--view-logdir-local', '--vldl'), help='views the current local logging directory', ) parser2.add_flag( ('--view-logdir-global', '--vldg'), help='views the current global logging directory', ) parser2.add_flag( '--force-incremental-db-update', help='ignores the current database schema and forces an incremental update for new databases', ) parser2.add_flag( '--dump-autogen-schema', help='dumps (autogenerates) the current database schema based on the expected versions in the controller', ) def commands_argparse(parser2): parser2 = parser2.add_argument_group('Commands') parser2.add_flag( ('--set-default-dbdir', '--setdb'), help='sets the opening database to be the default', ) parser2.add_flag('--dump-global-cache') parser2.add_flag('--dump-argv') # parser2.add_flag('--gvim-notes') parser2.add_flag( ('--view-database-directory', '--vdd'), help='opens the database directory' ) # NEED TO DEPCIRATE THIS VERY BADLY parser2.add_strs( ('--update-query-cfg', '--set-cfg', '--cfg'), default=None, help=( 'set query parameters from the commandline: e.g. ' '--cfg xy_thresh=.01 score_method=csum' ), ) parser2.add_flag( ('--preload-exit', '--prequit', '--prele'), help='exit after preload commands', ) parser2.add_flag( ('--postload-exit', '--postquit', '--postle'), help='exit after postload commands', ) parser2.add_flag( ('--webapp', '--webapi', '--web', '--browser'), help='automatically launch the web app / web api', ) parser2.add_int( ('--webport', '--web-port', '--port'), help='specify the port for the web api', default=None, ) def postload_gui_commands_argparse(parser2): parser2 = parser2.add_argument_group('Postload GUI Commands') parser2.add_int(('--select-nid', '--nid'), help='view col') parser2.add_int(('--select-gid', '--gid'), help='view col') parser2.add_int(('--select-aid', '--aid'), help='view col') parser2.add_ints(('--query-aid', '--query'), help='query aid(s)') parser2.add_flag(('--edit-notes'), help='edits database notes') parser2.add_str( ('--set-all-species'), help='careful. overwrites all species info.' ) parser2.add_flag( ('--dump-schema', '--print-schema'), help='dumps schema to stdout' ) parser2.add_flag(('--delete-cache'), help='deletes most of the cache') parser2.add_flag(('--delete-cache-complete'), help='deletes all cached data') parser2.add_flag( ('--delete-query-cache', '--delete-qres-cache', '--clear_qres'), help='deletes the query result cache', ) behavior_argparse(parser2) database_argparse(parser2) dev_argparse(parser2) commands_argparse(parser2) postload_gui_commands_argparse(parser2) args, unknown = parser2.parser.parse_known_args() # Apply any argument postprocessing dependencies here args.gui = not args.nogui if args.serial: args.num_procs = 1