# -*- coding: utf-8 -*-
import logging
import utool as ut
import sys
(print, rrr, profile) = ut.inject2(__name__)
logger = logging.getLogger('wbia')
[docs]def hack_argv(arg):
# HACK COMMON ARGV SYMBOLS
if arg.startswith('--hargv='):
hack_argv_key = '='.join(arg.split('=')[1:])
common_args = [
'--dpath=~/latex/crall-thesis-2017/',
'--clipwhite',
'--contextadjust',
'--dpi=256',
]
sys.argv.extend(common_args)
if '--noshow' not in sys.argv:
sys.argv.extend(['--diskshow'])
# Figsize hacks
if hack_argv_key in ['surf']:
sys.argv.extend(
[
'--figsize=14,3',
'--hspace=.3',
# '--top=.8',
'--top=.85',
'--bottom=0.18',
'--left=.05',
'--right=.95',
]
)
elif hack_argv_key in ['scores']:
sys.argv.extend(
[
# '--figsize=15,7',
# '--top=.8',
'--figsize=14,3',
'--top=.8',
'--hspace=.3',
'--bottom=0.08',
'--left=.05',
'--right=.95',
]
)
elif hack_argv_key in ['tags']:
sys.argv.extend(
[
# '--figsize=14,3',
# '--top=.8',
# '--hspace=.3',
# '--bottom=0.08',
# '--left=.05',
# '--right=.95'
]
)
elif hack_argv_key in ['expt']:
sys.argv.extend(
[
# '--figsize=15,3',
'--figsize=15,3.1',
'--top=.9',
'--bottom=.15',
]
)
elif hack_argv_key in ['mech']:
sys.argv.extend(
[
# '--figsize=14,5',
'--figsize=14,3',
'--top=.9',
]
)
elif hack_argv_key in ['tags']:
sys.argv.extend(['--bottom=.3', '--left=.2'])
# Save location
# fname_fmt = 'figuresX/expt_{e}_{db}_a_{a}_t_{t}'
fname_fmt = 'figuresX/expt_{label}'
# if hack_argv_key in ['scores']:
# fname_fmt += '_{filt}'
# if hack_argv_key in ['time']:
# if not ('--falsepos' in sys.argv) or ('--truepos' in sys.argv):
# fname_fmt += '_TP'
# if ('--falsepos' in sys.argv):
# fname_fmt += '_FP'
if hack_argv_key in ['time', 'expt', 'mech', 'scores', 'surf', 'tags']:
sys.argv.extend(['--save', fname_fmt + '.png'])
if hack_argv_key in ['time']:
sys.argv.extend(['--figsize=18,8', r'--width=".8\textwidth"'])
# import IPython
# IPython.embed()
for arg in sys.argv[:]:
hack_argv(arg)
import utool as ut # NOQA
# ut.show_if_requested()
# sys.exit(1)
# import functools
# A list of registered development test functions
DEVCMD_FUNCTIONS = []
DEVPRECMD_FUNCTIONS = []
# DEVCMD_FUNCTIONS2 = []
# def devcmd2(*args):
# """ Decorator which registers a function as a developer command """
# noargs = len(args) == 1 and not isinstance(args[0], str)
# if noargs:
# # Function is only argument
# func = args[0]
# func_aliases = []
# else:
# func_aliases = list(args)
# def closure_devcmd2(func):
# global DEVCMD_FUNCTIONS2
# func_aliases.extend([get_funcname(func)])
# DEVCMD_FUNCTIONS2.append((tuple(func_aliases), func))
# def func_wrapper(*args_, **kwargs_):
# #if ut.VERBOSE:
# #if ut.QUIET:
# logger.info('[DEVCMD2] ' + ut.func_str(func, args_, kwargs_))
# return func(*args_, **kwargs_)
# return func_wrapper
# if noargs:
# return closure_devcmd2(func)
# return closure_devcmd2
[docs]def devcmd(*args):
"""Decorator which registers a function as a developer command"""
noargs = len(args) == 1 and not isinstance(args[0], str)
if noargs:
# Function is only argument
func = args[0]
func_aliases = []
else:
func_aliases = list(args)
def closure_devcmd(func):
global DEVCMD_FUNCTIONS
func_aliases.extend([ut.get_funcname(func)])
DEVCMD_FUNCTIONS.append((tuple(func_aliases), func))
def func_wrapper(*args_, **kwargs_):
# if ut.VERBOSE:
# if ut.QUIET:
logger.info('[DEVCMD] ' + ut.func_str(func, args_, kwargs_))
return func(*args_, **kwargs_)
return func_wrapper
if noargs:
return closure_devcmd(func)
return closure_devcmd
[docs]def devprecmd(*args):
"""Decorator which registers a function as a developer precommand"""
noargs = len(args) == 1 and not isinstance(args[0], str)
if noargs:
# Function is only argument
func = args[0]
func_aliases = []
else:
func_aliases = list(args)
def closure_devprecmd(func):
global DEVPRECMD_FUNCTIONS
func_aliases.extend([ut.get_funcname(func)])
DEVPRECMD_FUNCTIONS.append((tuple(func_aliases), func))
def func_wrapper(*args_, **kwargs_):
# if ut.VERBOSE:
# if ut.QUIET:
logger.info('[DEVPRECMD] ' + ut.func_str(func, args_, kwargs_))
return func(*args_, **kwargs_)
return func_wrapper
if noargs:
return closure_devprecmd(func)
return closure_devprecmd