0
|
1 """
|
|
2 PRIMS masscomb classes for types defined in datatypes_conf.xml
|
|
3 """
|
|
4 import logging
|
|
5 import zipfile
|
|
6 import re
|
|
7 from galaxy.datatypes.data import *
|
|
8 from galaxy.datatypes.xml import *
|
|
9 from galaxy.datatypes.sniff import *
|
|
10 from galaxy.datatypes.binary import *
|
|
11 from galaxy.datatypes.interval import *
|
|
12
|
|
13 log = logging.getLogger(__name__)
|
|
14
|
|
15 class FileSet( Binary ):
|
|
16 """FileSet containing N files"""
|
|
17 file_ext = "prims.fileset.zip"
|
|
18 blurb = "(zipped) FileSet containing multiple files"
|
|
19 def sniff( self, filename ):
|
|
20 # If the zip file contains multiple files then return true, false otherwise:
|
|
21 zf = zipfile.ZipFile(filename)
|
|
22 if (len(zf.infolist())>1):
|
|
23 return True
|
|
24 else :
|
|
25 return False
|
|
26
|
|
27 # the if is just for backwards compatibility...could remove this at some point
|
|
28 if hasattr(Binary, 'register_sniffable_binary_format'):
|
|
29 Binary.register_sniffable_binary_format('FileSet', 'prims.fileset.zip', FileSet)
|