handle_call(): use arg_filter() and remove duplicate code
This commit is contained in:
parent
59bde48e43
commit
98ae624480
1 changed files with 13 additions and 19 deletions
32
cli/koji
32
cli/koji
|
|
@ -64,17 +64,23 @@ def _(args):
|
|||
"""Stub function for translation"""
|
||||
return args
|
||||
|
||||
def arg_filter(str):
|
||||
ARGMAP = {'None': None,
|
||||
'True': True,
|
||||
'False': False}
|
||||
|
||||
def arg_filter(arg):
|
||||
try:
|
||||
return int(str)
|
||||
return int(arg)
|
||||
except ValueError:
|
||||
pass
|
||||
try:
|
||||
return float(str)
|
||||
return float(arg)
|
||||
except ValueError:
|
||||
pass
|
||||
#handle lists?
|
||||
return str
|
||||
if arg in ARGMAP:
|
||||
return ARGMAP[arg]
|
||||
#handle lists/dicts?
|
||||
return arg
|
||||
|
||||
def get_options():
|
||||
"""process options from command line and config file"""
|
||||
|
|
@ -848,24 +854,12 @@ def handle_call(options, session, args):
|
|||
non_kw = []
|
||||
kw = {}
|
||||
|
||||
def _convarg(val):
|
||||
valmap = {'None': None,
|
||||
'True': True,
|
||||
'False': False}
|
||||
|
||||
if val.isdigit():
|
||||
return int(val)
|
||||
elif valmap.has_key(val):
|
||||
return valmap[val]
|
||||
else:
|
||||
return val
|
||||
|
||||
for arg in args[1:]:
|
||||
if arg.find('=') != -1:
|
||||
key, value = arg.split('=', 1)
|
||||
kw[key] = _convarg(value)
|
||||
kw[key] = arg_filter(value)
|
||||
else:
|
||||
non_kw.append(_convarg(arg))
|
||||
non_kw.append(arg_filter(arg))
|
||||
pprint.pprint(getattr(session, name).__call__(*non_kw, **kw))
|
||||
|
||||
def anon_handle_mock_config(options, session, args):
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue