in cbmc_viewer/optionst.py [0:0]
def default_source_method(args):
'Set default source method.'
# Set source_method to an enum
if hasattr(args, 'source_method'):
# Set source method to its enum value or None
args.source_method = {
'find': Sources.FIND,
'walk': Sources.WALK,
'make': Sources.MAKE,
'goto': Sources.GOTO,
None: None
}[args.source_method]
# Set source method to a reasonable default value
if args.source_method is None:
if getattr(args, 'srcdir') is not None:
if getattr(args, 'wkdir') is not None:
if getattr(args, 'goto') is not None:
args.source_method = Sources.GOTO
else:
args.source_method = Sources.MAKE
elif platform.system() == 'Windows':
args.source_method = Sources.WALK
else:
args.source_method = Sources.FIND
# Confirm existence of command line options needed by source method
if args.source_method == Sources.GOTO:
if (not hasattr(args, 'srcdir') or
not hasattr(args, 'wkdir') or
not hasattr(args, 'goto')):
raise UserWarning('Options --srcdir, --wkdir, and --goto '
'required by source method goto.')
if args.source_method == Sources.FIND:
if not hasattr(args, 'srcdir'):
raise UserWarning('Option --srcdir required '
'by source method find.')
if args.source_method == Sources.WALK:
if not hasattr(args, 'srcdir'):
raise UserWarning('Option --srcdir required '
'by source method walk.')
if args.source_method == Sources.MAKE:
if not hasattr(args, 'srcdir') or not hasattr(args, 'wkdir'):
raise UserWarning('Options --srcdir and --wkdir required '
'by source method make.')
return args