def validate_and_prepare_common_arguments(args): # flatten lists of lists to a list containing elements lists_to_flatten = ["input_files", "blacklisted_parameters"] for list_to_flatten in lists_to_flatten: utils.flatten_list_of_lists(args, list_to_flatten) # if input is a single file, we expect output to be a file (and not a dir that already exists) if len(args.input_files) == 1: if os.path.isdir(args.output_destination): raise ApplicationException( "If a single input file is provided, output (%s) is expected to be a file " "and not a folder.\n" % args.output_destination) # if input is a list of files, we expect output to be a folder if len(args.input_files) > 1: if not os.path.isdir(args.output_destination): raise ApplicationException( "If several input files are provided, output (%s) is expected to be an " "existing directory.\n" % args.output_destination) # check that the provided input files, if provided, contain a valid file path input_arguments_to_check = [ "xsd_location", "input_files", "hardcoded_parameters" ] for argument_name in input_arguments_to_check: utils.validate_argument_is_valid_path(args, argument_name) # add the parameter hardcoder args.parameter_hardcoder = utils.parse_hardcoded_parameters( args.hardcoded_parameters)
def validate_and_prepare_common_arguments(args): # flatten lists of lists to a list containing elements lists_to_flatten = ["input_files", "blacklisted_parameters"] for list_to_flatten in lists_to_flatten: utils.flatten_list_of_lists(args, list_to_flatten) # if input is a single file, we expect output to be a file (and not a dir that already exists) if len(args.input_files) == 1: if os.path.isdir(args.output_destination): raise ApplicationException("If a single input file is provided, output (%s) is expected to be a file " "and not a folder.\n" % args.output_destination) # if input is a list of files, we expect output to be a folder if len(args.input_files) > 1: if not os.path.isdir(args.output_destination): raise ApplicationException("If several input files are provided, output (%s) is expected to be an " "existing directory.\n" % args.output_destination) # check that the provided input files, if provided, contain a valid file path input_arguments_to_check = ["xsd_location", "input_files", "hardcoded_parameters"] for argument_name in input_arguments_to_check: utils.validate_argument_is_valid_path(args, argument_name) # add the parameter hardcoder args.parameter_hardcoder = utils.parse_hardcoded_parameters(args.hardcoded_parameters)
def validate_and_prepare_args(args): # check that only one of skip_tools_file and required_tools_file has been provided if args.skip_tools_file is not None and args.required_tools_file is not None: raise ApplicationException( "You have provided both a file with tools to ignore and a file with required tools.\n" "Only one of -s/--skip-tools, -r/--required-tools can be provided." ) # flatten macros_files to make sure that we have a list containing file names and not a list of lists utils.flatten_list_of_lists(args, "macros_files") # check that the arguments point to a valid, existing path input_variables_to_check = [ "skip_tools_file", "required_tools_file", "macros_files", "formats_file" ] for variable_name in input_variables_to_check: utils.validate_argument_is_valid_path(args, variable_name) # check that the provided output files, if provided, contain a valid file path (i.e., not a folder) output_variables_to_check = [ "data_types_destination", "tool_conf_destination" ] for variable_name in output_variables_to_check: file_name = getattr(args, variable_name) if file_name is not None and os.path.isdir(file_name): raise ApplicationException( "The provided output file name (%s) points to a directory." % file_name) if not args.macros_files: # list is empty, provide the default value logger.warning("Using default macros from galaxy/macros.xml", 0) args.macros_files = ["galaxy/macros.xml"]
def validate_and_prepare_args(args): # check that only one of skip_tools_file and required_tools_file has been provided if args.skip_tools_file is not None and args.required_tools_file is not None: raise ApplicationException( "You have provided both a file with tools to ignore and a file with required tools.\n" "Only one of -s/--skip-tools, -r/--required-tools can be provided.") # flatten macros_files to make sure that we have a list containing file names and not a list of lists utils.flatten_list_of_lists(args, "macros_files") # check that the arguments point to a valid, existing path input_variables_to_check = ["skip_tools_file", "required_tools_file", "macros_files", "formats_file"] for variable_name in input_variables_to_check: utils.validate_argument_is_valid_path(args, variable_name) # check that the provided output files, if provided, contain a valid file path (i.e., not a folder) output_variables_to_check = ["data_types_destination", "tool_conf_destination"] for variable_name in output_variables_to_check: file_name = getattr(args, variable_name) if file_name is not None and os.path.isdir(file_name): raise ApplicationException("The provided output file name (%s) points to a directory." % file_name) if not args.macros_files: # list is empty, provide the default value logger.warning("Using default macros from galaxy/macros.xml", 0) args.macros_files = ["galaxy/macros.xml"]