Mercurial > repos > sanbi-uwc > neo4j_datatypes
comparison neo4j.py @ 11:6a177f046b73 draft
planemo upload for repository https://github.com/SANBI-SA/tools-sanbi-uwc/tree/master/datatypes/neo4j_datatypes commit 2de149508da75c935142db2fcba5e62c3faf2070
author | sanbi-uwc |
---|---|
date | Wed, 18 May 2016 09:20:55 -0400 |
parents | ce5df18856ee |
children | 7f63bb1dd162 |
comparison
equal
deleted
inserted
replaced
10:ce5df18856ee | 11:6a177f046b73 |
---|---|
5 import sys | 5 import sys |
6 import os | 6 import os |
7 | 7 |
8 #from galaxy.datatypes.images import Html | 8 #from galaxy.datatypes.images import Html |
9 from galaxy.datatypes.data import Data, Text, Html | 9 from galaxy.datatypes.data import Data, Text, Html |
10 #from galaxy.datatypes.metadata import MetadataElement | 10 from galaxy.datatypes.metadata import MetadataElement |
11 | 11 |
12 gal_Log = logging.getLogger(__name__) | 12 gal_Log = logging.getLogger(__name__) |
13 verbose = True | 13 verbose = True |
14 | 14 |
15 | 15 |
16 class Neo4j(object): | 16 class Neo4j(Html): |
17 """ | 17 """ |
18 base class to use for neostore datatypes | 18 base class to use for neostore datatypes |
19 derived from html - composite datatype elements | 19 derived from html - composite datatype elements |
20 stored in extra files path | 20 stored in extra files path |
21 """ | 21 """ |
22 MetadataElement( name='neostore', default=None, desc='Neo4j NeoStore File', readonly=True, visible=True, set_in_upload=True, no_value=None ) | |
23 MetadataElement( name='neostore_count_file', default=None, desc='Neo4j Count File', readonly=True, visible=True, set_in_upload=True, no_value=None ) | |
24 MetadataElement( name="neostore_labeltokenstore_db_file", default=None, desc="Neostore LabelTokenStore File", readonly=True, visible=True, no_value=None ) | |
25 MetadataElement( name="neostore_nodestore_file", default=None, desc="Neostore NodeStore File", readonly=True, visible=True, no_value=None) | |
26 MetadataElement( name="neostore_propertystore_file", default=None, desc="Neostore Property Store File", readonly=True, visible=True, no_value=None) | |
27 MetadataElement( name="neostore_relationship_group_file", default=None, desc="Neostore Relationship Group File", readonly=True, visible=True, no_value=None) | |
28 MetadataElement( name="neostore_relationship_file", default=None, desc="Neostore Relationship File", readonly=True, visible=True, no_value=None) | |
29 MetadataElement( name="neostore_relationship_type_file", default=None, desc="Neostore Relationship Type File", readonly=True, visible=True, no_value=None) | |
30 MetadataElement( name="neostore_schema_store_file", default=None, desc="Neostore Schema Store File", readonly=True, visible=True, no_value=None) | |
31 MetadataElement( name="neostore_transaction_db_file", default=None, desc="Neostore Transaction File", readonly=True, visible=True, no_value=None) | |
32 | |
33 composite_type = 'auto_primary_file' | |
34 allow_datatype_change = False | |
35 file_ext = 'neo4j' | |
36 | |
37 def generate_primary_file( self, dataset=None ): | |
38 rval = ['<html><head><title>Neo4j Galaxy Composite Dataset </title></head><p/>'] | |
39 rval.append('<div>This composite dataset is composed of the following files:<p/><ul>') | |
40 for composite_name, composite_file in self.get_composite_files( dataset=dataset ).iteritems(): | |
41 fn = composite_name | |
42 opt_text = '' | |
43 if composite_file.optional: | |
44 opt_text = ' (optional)' | |
45 if composite_file.get('description'): | |
46 rval.append( '<li><a href="%s" type="application/binary">%s (%s)</a>%s</li>' % ( fn, fn, composite_file.get('description'), opt_text ) ) | |
47 else: | |
48 rval.append( '<li><a href="%s" type="application/binary">%s</a>%s</li>' % ( fn, fn, opt_text ) ) | |
49 rval.append( '</ul></div></html>' ) | |
50 return "\n".join( rval ) | |
51 | |
52 def regenerate_primary_file(self, dataset): | |
53 """ | |
54 cannot do this until we are setting metadata | |
55 """ | |
56 efp = dataset.extra_files_path | |
57 flist = os.listdir(efp) | |
58 rval = ['<html><head><title>Files for Composite Dataset %s</title></head><body><p/>Composite %s contains:<p/><ul>' % (dataset.name, dataset.name)] | |
59 for i, fname in enumerate(flist): | |
60 sfname = os.path.split(fname)[-1] | |
61 f, e = os.path.splitext(fname) | |
62 rval.append( '<li><a href="%s">%s</a></li>' % ( sfname, sfname) ) | |
63 rval.append( '</ul></body></html>' ) | |
64 f = file(dataset.file_name, 'w') | |
65 f.write("\n".join( rval )) | |
66 f.write('\n') | |
67 f.close() | |
68 | |
69 | |
22 def get_mime(self): | 70 def get_mime(self): |
23 """Returns the mime type of the datatype""" | 71 """Returns the mime type of the datatype""" |
24 return 'text/html' | 72 return 'text/html' |
25 | 73 |
26 def set_peek(self, dataset, is_multi_byte=False): | 74 def set_peek(self, dataset, is_multi_byte=False): |
65 | 113 |
66 | 114 |
67 class Neo4jDB(Neo4j, Data): | 115 class Neo4jDB(Neo4j, Data): |
68 """Class for neo4jDB database files.""" | 116 """Class for neo4jDB database files.""" |
69 file_ext = 'neostore' | 117 file_ext = 'neostore' |
70 allow_datatype_change = False | |
71 composite_type = 'basic' | |
72 | 118 |
73 def __init__(self, **kwd): | 119 def __init__(self, **kwd): |
74 Data.__init__(self, **kwd) | 120 Data.__init__(self, **kwd) |
75 self.add_composite_file('neostore', substitute_name_with_metadata='neostore', is_binary=True) | 121 self.add_composite_file('neostore', substitute_name_with_metadata='neostore', is_binary=True) |
76 self.add_composite_file('neostore.id', substitute_name_with_metadata='neostore', is_binary=True) | 122 self.add_composite_file('neostore.id', substitute_name_with_metadata='neostore', is_binary=True) |