372
372
# Call the function recursively
373
373
add_options(value, "%s%s"%(opt_base_copy, key))
375
376
elif isinstance(value, Param):
381
382
# If the value is a Param get the value
383
actuall_value = value.getvalue()
382
386
description = value.description
383
value = value.getvalue()
385
# Check for available types
386
if not type(value) in FORMAT_CONVERTER.keys():
389
if isinstance(value, (list, tuple)):
390
# If a default length of the list or tuple is 0,
391
# assume sequence type to be int
389
if isinstance(actuall_value, (list, tuple)):
390
# If a default length of the list or tuple is 0,
391
# assume sequence type to be int
392
if len(actuall_value) == 0:
395
# Else assume it to be equal to the first argument
396
sequence_type = type(actuall_value[0])
395
# Else assume it to be equal to the first argument
396
sequence_type = type(value[0])
400
# Nicely formated value
401
formated_value = value.format_data()
403
# Check for available types
404
if not type(actuall_value) in FORMAT_CONVERTER.keys():
400
407
# Add option with callback function
401
408
parser.add_option("%s%s"%(opt_base_copy, key), \
402
409
action = "callback",
403
410
callback = callback(\
404
parent, key, type(value), sequence_type),
405
type = FORMAT_CONVERTER[type(value)],
406
help = "Default(%s)%s"%(str(value),\
411
parent, key, type(actuall_value), sequence_type),
412
type = FORMAT_CONVERTER[type(actuall_value)],
413
help = "Default(%s)%s"%(str(formated_value),\
407
414
(": " + description) if description else "")