| 0 | 1 | 
|  | 2 """ | 
|  | 3 GSV visualisation datatypes | 
|  | 4 """ | 
|  | 5 | 
|  | 6 | 
|  | 7 import logging, os, os.path, sys, time, tempfile, shutil, string, glob, re | 
|  | 8 | 
|  | 9 from galaxy.datatypes.sniff import * | 
|  | 10 from galaxy.datatypes import data | 
|  | 11 from galaxy.datatypes.metadata import MetadataElement | 
|  | 12 from galaxy.datatypes.xml import GenericXml | 
|  | 13 | 
|  | 14 log = logging.getLogger(__name__) | 
|  | 15 | 
|  | 16 class GenericMapJson( data.Text ): | 
|  | 17     """Base format class for any JSON file.""" | 
|  | 18     file_ext = "mapjson" | 
|  | 19 | 
|  | 20     def set_peek( self, dataset, is_multi_byte=False ): | 
|  | 21         """Set the peek and blurb text""" | 
|  | 22         if not dataset.dataset.purged: | 
|  | 23             dataset.peek = data.get_file_peek( dataset.file_name, is_multi_byte=is_multi_byte ) | 
|  | 24             dataset.blurb = 'Mapjson data' | 
|  | 25         else: | 
|  | 26             dataset.peek = 'file does not exist' | 
|  | 27             dataset.blurb = 'file purged from disk' | 
|  | 28 | 
|  | 29     def sniff( self, filename ): | 
|  | 30         """ | 
|  | 31 	Determines whether the file is JSON or not | 
|  | 32 | 
|  | 33         >>> fname = get_test_fname( 'megablast_xml_parser_test1.blastxml' ) | 
|  | 34         >>> GenericMapJson().sniff( fname ) | 
|  | 35         True | 
|  | 36 	>>> fname = get_test_fname( 'interval.interval' ) | 
|  | 37         >>> GenericMapJson().sniff( fname ) | 
|  | 38         False | 
|  | 39 	""" | 
|  | 40 	#TODO - Use a context manager on Python 2.5+ to close handle | 
|  | 41         handle = open(filename) | 
|  | 42         line = handle.readline() | 
|  | 43         handle.close() | 
|  | 44 | 
|  | 45 | 
|  | 46 class Gjson( GenericMapJson ): | 
|  | 47     """ | 
|  | 48     Resource Description Framework format (http://www.w3.org/RDF/). | 
|  | 49     """ | 
|  | 50     file_ext = "gjson" | 
|  | 51 | 
|  | 52     def sniff( self, filename ): | 
|  | 53         """ | 
|  | 54 	Returns false and the user must manually set. | 
|  | 55         """ | 
|  | 56         return False | 
|  | 57 | 
|  | 58     def set_peek( self, dataset, is_multi_byte=False ): | 
|  | 59         """Set the peek and blurb text""" | 
|  | 60         if not dataset.dataset.purged: | 
|  | 61             dataset.peek = data.get_file_peek( dataset.file_name, is_multi_byte=is_multi_byte ) | 
|  | 62             dataset.blurb = 'GJSON data' | 
|  | 63         else: | 
|  | 64             dataset.peek = 'file does not exist' | 
|  | 65             dataset.blurb = 'file purged from disk' | 
|  | 66 |