Mercurial > repos > sanbi-uwc > neo4j_datatypes
changeset 8:666c7e606768 draft
planemo upload for repository https://github.com/SANBI-SA/tools-sanbi-uwc/tree/master/datatypes/neo4j_datatypes commit 017f62614ecc913e42cdd8df79b94775968f0c2c
author | sanbi-uwc |
---|---|
date | Wed, 18 May 2016 09:06:31 -0400 |
parents | ac9f9d1b2c00 |
children | f4714c838f27 |
files | neo4j.py |
diffstat | 1 files changed, 49 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/neo4j.py Wed May 18 08:54:22 2016 -0400 +++ b/neo4j.py Wed May 18 09:06:31 2016 -0400 @@ -3,22 +3,70 @@ """ import logging import sys +import os from galaxy.datatypes.images import Html from galaxy.datatypes.data import Data, Text, Html +from galaxy.datatypes.metadata import MetadataElement gal_Log = logging.getLogger(__name__) verbose = True -class Neo4j(object): +class Neo4j(Html): """ base class to use for neostore datatypes derived from html - composite datatype elements stored in extra files path """ + MetadataElement( name='neostore', default=None, desc='Neo4j NeoStore File', readonly=True, visible=True, set_in_upload=True, no_value=None ) + MetadataElement( name='neostore_count_file', default=None, desc='Neo4j Count File', readonly=True, visible=True, set_in_upload=True, no_value=None ) + MetadataElement( name="neostore_labeltokenstore_db_file", default=None, desc="Neostore LabelTokenStore File", readonly=True, visible=True, no_value=None ) + MetadataElement( name="neostore_nodestore_file", default=None, desc="Neostore NodeStore File", readonly=True, visible=True, no_value=None) + MetadataElement( name="neostore_propertystore_file", default=None, desc="Neostore Property Store File", readonly=True, visible=True, no_value=None) + MetadataElement( name="neostore_relationship_group_file", default=None, desc="Neostore Relationship Group File", readonly=True, visible=True, no_value=None) + MetadataElement( name="neostore_relationship_file", default=None, desc="Neostore Relationship File", readonly=True, visible=True, no_value=None) + MetadataElement( name="neostore_relationship_type_file", default=None, desc="Neostore Relationship Type File", readonly=True, visible=True, no_value=None) + MetadataElement( name="neostore_schema_store_file", default=None, desc="Neostore Schema Store File", readonly=True, visible=True, no_value=None) + MetadataElement( name="neostore_transaction_db_file", default=None, desc="Neostore Transaction File", readonly=True, visible=True, no_value=None) + + #composite_type = 'auto_primary_file' + composite_type = 'basic' + allow_datatype_change = False file_ext = 'neo4j' + def generate_primary_file( self, dataset=None ): + rval = ['<html><head><title>Neo4j Galaxy Composite Dataset </title></head><p/>'] + rval.append('<div>This composite dataset is composed of the following files:<p/><ul>') + for composite_name, composite_file in self.get_composite_files( dataset=dataset ).iteritems(): + fn = composite_name + opt_text = '' + if composite_file.optional: + opt_text = ' (optional)' + if composite_file.get('description'): + rval.append( '<li><a href="%s" type="application/binary">%s (%s)</a>%s</li>' % ( fn, fn, composite_file.get('description'), opt_text ) ) + else: + rval.append( '<li><a href="%s" type="application/binary">%s</a>%s</li>' % ( fn, fn, opt_text ) ) + rval.append( '</ul></div></html>' ) + return "\n".join( rval ) + + def regenerate_primary_file(self, dataset): + """ + cannot do this until we are setting metadata + """ + efp = dataset.extra_files_path + flist = os.listdir(efp) + rval = ['<html><head><title>Files for Composite Dataset %s</title></head><body><p/>Composite %s contains:<p/><ul>' % (dataset.name, dataset.name)] + for i, fname in enumerate(flist): + sfname = os.path.split(fname)[-1] + f, e = os.path.splitext(fname) + rval.append( '<li><a href="%s">%s</a></li>' % ( sfname, sfname) ) + rval.append( '</ul></body></html>' ) + f = file(dataset.file_name, 'w') + f.write("\n".join( rval )) + f.write('\n') + f.close() + def get_mime(self): """Returns the mime type of the datatype""" return 'text/html' @@ -67,8 +115,6 @@ class Neo4jDB(Neo4j, Data): """Class for neo4jDB database files.""" file_ext = 'neostore' - allow_datatype_change = False - composite_type = 'basic' def __init__(self, **kwd): Data.__init__(self, **kwd)