comparison neo4j.py @ 10:ce5df18856ee draft

planemo upload for repository https://github.com/SANBI-SA/tools-sanbi-uwc/tree/master/datatypes/neo4j_datatypes commit 31097469911a6200b265a1a8dcea285b3a65b6a9
author sanbi-uwc
date Wed, 18 May 2016 09:17:11 -0400
parents f4714c838f27
children 6a177f046b73
comparison
equal deleted inserted replaced
9:f4714c838f27 10:ce5df18856ee
3 """ 3 """
4 import logging 4 import logging
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(Html): 16 class Neo4j(object):
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 #composite_type = 'basic'
35 allow_datatype_change = False
36 file_ext = 'neo4j'
37
38 def generate_primary_file( self, dataset=None ):
39 rval = ['<html><head><title>Neo4j Galaxy Composite Dataset </title></head><p/>']
40 rval.append('<div>This composite dataset is composed of the following files:<p/><ul>')
41 for composite_name, composite_file in self.get_composite_files( dataset=dataset ).iteritems():
42 fn = composite_name
43 opt_text = ''
44 if composite_file.optional:
45 opt_text = ' (optional)'
46 if composite_file.get('description'):
47 rval.append( '<li><a href="%s" type="application/binary">%s (%s)</a>%s</li>' % ( fn, fn, composite_file.get('description'), opt_text ) )
48 else:
49 rval.append( '<li><a href="%s" type="application/binary">%s</a>%s</li>' % ( fn, fn, opt_text ) )
50 rval.append( '</ul></div></html>' )
51 return "\n".join( rval )
52
53 def regenerate_primary_file(self, dataset):
54 """
55 cannot do this until we are setting metadata
56 """
57 efp = dataset.extra_files_path
58 flist = os.listdir(efp)
59 rval = ['<html><head><title>Files for Composite Dataset %s</title></head><body><p/>Composite %s contains:<p/><ul>' % (dataset.name, dataset.name)]
60 for i, fname in enumerate(flist):
61 sfname = os.path.split(fname)[-1]
62 f, e = os.path.splitext(fname)
63 rval.append( '<li><a href="%s">%s</a></li>' % ( sfname, sfname) )
64 rval.append( '</ul></body></html>' )
65 f = file(dataset.file_name, 'w')
66 f.write("\n".join( rval ))
67 f.write('\n')
68 f.close()
69
70 def get_mime(self): 22 def get_mime(self):
71 """Returns the mime type of the datatype""" 23 """Returns the mime type of the datatype"""
72 return 'text/html' 24 return 'text/html'
73 25
74 def set_peek(self, dataset, is_multi_byte=False): 26 def set_peek(self, dataset, is_multi_byte=False):
113 65
114 66
115 class Neo4jDB(Neo4j, Data): 67 class Neo4jDB(Neo4j, Data):
116 """Class for neo4jDB database files.""" 68 """Class for neo4jDB database files."""
117 file_ext = 'neostore' 69 file_ext = 'neostore'
70 allow_datatype_change = False
71 composite_type = 'basic'
118 72
119 def __init__(self, **kwd): 73 def __init__(self, **kwd):
120 Data.__init__(self, **kwd) 74 Data.__init__(self, **kwd)
121 self.add_composite_file('neostore', substitute_name_with_metadata='neostore', is_binary=True) 75 self.add_composite_file('neostore', substitute_name_with_metadata='neostore', is_binary=True)
122 self.add_composite_file('neostore.id', substitute_name_with_metadata='neostore', is_binary=True) 76 self.add_composite_file('neostore.id', substitute_name_with_metadata='neostore', is_binary=True)
153 self.add_composite_file('neostore.transaction.db.0', substitute_name_with_metadata='neostore_count_file', is_binary=True) 107 self.add_composite_file('neostore.transaction.db.0', substitute_name_with_metadata='neostore_count_file', is_binary=True)
154 108
155 109
156 if __name__ == '__main__': 110 if __name__ == '__main__':
157 import doctest 111 import doctest
158
159
160 doctest.testmod(sys.modules[__name__]) 112 doctest.testmod(sys.modules[__name__])