1 from optparse import OptionParser
4 from pprint import pprint
6 def main(cmdline=None):
8 opts, args = parser.parse_args(cmdline)
10 extensions = scan(args)
11 common_extensions = find_common_suffix(extensions)
14 print_rdf(common_extensions)
16 print common_extensions
19 parser = OptionParser("%prog: directory [directory...]")
20 parser.add_option('--rdf', action="store_true", default=False,
21 help="Produce rdf configuration file for ucsc_gather")
26 for cur_scan_dir in toscan:
27 for path, dirnames, filenames in os.walk(cur_scan_dir):
28 for filename in filenames:
29 base, ext = os.path.splitext(filename)
30 if ext in ('.daf', 'ddf'):
33 for c in filename[::-1]:
34 next_index = next_index.setdefault(c, {})
37 def find_common_suffix(index, tail=[]):
38 if len(tail) > 0 and len(index) > 1:
39 return "".join(tail[::-1])
42 for key, choice in index.items():
43 r = find_common_suffix(choice, tail+[key])
49 elif len(results) == 1:
54 def print_rdf(common_extensions):
56 from htsworkflow.util import rdfhelp
57 model = rdfhelp.get_model()
59 viewName = 'http://jumpgate.caltech.edu/wiki/SubmissionsLog/NAME/view/'
60 subView = RDF.NS(viewName)
61 fileReTerm = rdfhelp.dafTermOntology['filename_re']
64 for ext in common_extensions:
65 s = RDF.Statement(subView['VIEW{0}'.format(count)],
67 '.*{0}$'.format(ext.replace('.', '\\.')))
68 model.add_statement(s)
71 writer = rdfhelp.get_serializer()
72 writer.set_namespace('thisSubmissionView', subView._prefix)
73 print writer.serialize_model_to_string(model)
75 if __name__ == "__main__":