| 
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 
 |