# HG changeset patch # User rhpvorderman # Date 1504882571 14400 # Node ID 7bdc452bec9b710cd7cde48b699c835f48740ea3 # Parent afd01fcbea26cc45cb9b3b00a986cdfc184ef315 planemo upload for repository https://github.com/LUMC/lumc-galaxy-tools/tree/master/data_manager_select_index_by_path commit f7e0688eca04c26ceef980c78eb79fc3edbf92db diff -r afd01fcbea26 -r 7bdc452bec9b data_manager/data_manager_select_index_by_path.xml --- a/data_manager/data_manager_select_index_by_path.xml Fri Sep 08 08:57:33 2017 -0400 +++ b/data_manager/data_manager_select_index_by_path.xml Fri Sep 08 10:56:11 2017 -0400 @@ -15,7 +15,7 @@ - + @@ -26,7 +26,7 @@ - + diff -r afd01fcbea26 -r 7bdc452bec9b data_manager/path_name_value_key_manager.py --- a/data_manager/path_name_value_key_manager.py Fri Sep 08 08:57:33 2017 -0400 +++ b/data_manager/path_name_value_key_manager.py Fri Sep 08 10:56:11 2017 -0400 @@ -1,8 +1,8 @@ #!/usr/bin/env python import json -import optparse -import os.path +import argparse +import os def _add_data_table_entry( data_manager_dict, data_table_name, data_table_entry ): data_manager_dict['data_tables'] = data_manager_dict.get( 'data_tables', {} ) @@ -22,6 +22,15 @@ raise Exception( '{0} is not a valid {1}. It may not contain a tab because these are used as seperators by galaxy .'.format( value, name ) ) return value +def prefix_exists(directory, prefix): + '''checks if files exist with prefix in a directory. Returns Boolean''' + matched_files = [] + directory_files = os.listdir(directory) + for directory_file in directory_files: + if directory_file.startswith(prefix): + matched_files.append(directory_file) + # Empty list should return False + return bool(matched_files) def main(): @@ -31,18 +40,28 @@ #print '{0} is not a valid {1}. It may not contain a tab.'.format( value, name ) #Parse Command Line - parser = optparse.OptionParser() - parser.add_option( '--value', action='store', type="string", default=None, help='value' ) - parser.add_option( '--dbkey', action='store', type="string", default=None, help='dbkey' ) - parser.add_option( '--name', action='store', type="string", default=None, help='name' ) - parser.add_option( '--path', action='store', type="string", default=None, help='path' ) - parser.add_option( '--data_table_name', action='store', type="string", default=None, help='path' ) - parser.add_option( '--json_output_file', action='store', type="string", default=None, help='path' ) - (options, args) = parser.parse_args() - + parser = argparse.ArgumentParser() + parser.add_argument( '--value', action='store', type=str, default=None, help='value' ) + parser.add_argument( '--dbkey', action='store', type=str, default=None, help='dbkey' ) + parser.add_argument( '--name', action='store', type=str, default=None, help='name' ) + parser.add_argument( '--path', action='store', type=str, default=None, help='path' ) + parser.add_argument( '--data_table_name', action='store', type=str, default=None, help='path' ) + parser.add_argument( '--json_output_file', action='store', type=str, default=None, help='path' ) + parser.add_argument( '--no_prefix', action='store_true', help='Does not check the prefix but checks the path. Useful for indexes that reference a single file.') + options = parser.parse_args() + path = check_param("path", options.path) - if not os.path.exists(path): - raise Exception( 'Unable to find path {0}.'.format( path ) ) + + # Check if file or prefix exists + if not options.no_prefix: + dirname = os.path.dirname(path) + prefix = os.path.basename(path) + if not prefix_exists(dirname,prefix): + raise Exception( 'Unable to find files with prefix "{0}" in {1}.'.format( prefix, dirname ) ) + else: + if not os.path.exists(path): + raise Exception( 'Unable to find path {0}.'.format( path ) ) + basename = os.path.basename(path) filename = os.path.splitext(basename)[0] name = check_param("name", options.name, default=filename) @@ -66,5 +85,5 @@ output_file.write( json.dumps( data_manager_dict ) ) output_file.write( "\n" ) -if __name__ == "__main__": +if __name__ == "__main__": main() diff -r afd01fcbea26 -r 7bdc452bec9b test.json --- a/test.json Fri Sep 08 08:57:33 2017 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -{"data_tables": {"all_fasta": [{"path": "/home/christian/Dropbox/Gene_data/ercc_and_TPA_mouse_rRNA.fa", "dbkey": "ercc_and_TPA_mouse_rRNA", "name": "ercc_and_TPA_mouse_rRNA", "value": "ercc_and_TPA_mouse_rRNA"}]}}