diff --git a/config/datatypes_conf.xml.sample b/config/datatypes_conf.xml.sample
index 802484d964b..9495f1637fd 100644
--- a/config/datatypes_conf.xml.sample
+++ b/config/datatypes_conf.xml.sample
@@ -145,7 +145,7 @@
-
+
diff --git a/lib/galaxy/datatypes/binary.py b/lib/galaxy/datatypes/binary.py
index 65bb18e6f47..265f8e440f2 100644
--- a/lib/galaxy/datatypes/binary.py
+++ b/lib/galaxy/datatypes/binary.py
@@ -146,6 +146,31 @@ class CompressedArchive( Binary ):
Binary.register_unsniffable_binary_ext("compressed_archive")
+class CompressedZipArchive( CompressedArchive ):
+ """
+ Class describing an compressed binary file
+ This class can be sublass'ed to implement archive filetypes that will not be unpacked by upload.py.
+ """
+ file_ext = "zip"
+
+ def set_peek( self, dataset, is_multi_byte=False ):
+ if not dataset.dataset.purged:
+ dataset.peek = "Compressed zip file"
+ dataset.blurb = nice_size( dataset.get_size() )
+ else:
+ dataset.peek = 'file does not exist'
+ dataset.blurb = 'file purged from disk'
+
+ def display_peek( self, dataset ):
+ try:
+ return dataset.peek
+ except:
+ return "Compressed zip file (%s)" % ( nice_size( dataset.get_size() ) )
+
+
+Binary.register_unsniffable_binary_ext("zip")
+
+
class GenericAsn1Binary( Binary ):
"""Class for generic ASN.1 binary format"""
file_ext = "asn1-binary"