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)