From 0518cbf02e5541514dbbca6178213dcc046b7bc4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A9r=C3=A9nice=20Batut?= Date: Thu, 5 Jan 2017 16:37:12 +0100 Subject: [PATCH 1/7] Add sniffer for dmnd extension --- config/datatypes_conf.xml.sample | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/config/datatypes_conf.xml.sample b/config/datatypes_conf.xml.sample index 054bb6274c58..bd4d1cb5b014 100644 --- a/config/datatypes_conf.xml.sample +++ b/config/datatypes_conf.xml.sample @@ -38,7 +38,7 @@ - + @@ -593,6 +593,7 @@ + From 87000dca9ef49d7d6e068cf50313dec43dd10a3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A9r=C3=A9nice=20Batut?= Date: Thu, 5 Jan 2017 16:39:05 +0100 Subject: [PATCH 2/7] Add dmnd class --- lib/galaxy/datatypes/binary.py | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/lib/galaxy/datatypes/binary.py b/lib/galaxy/datatypes/binary.py index 87882101b50b..3bd00f025ecd 100644 --- a/lib/galaxy/datatypes/binary.py +++ b/lib/galaxy/datatypes/binary.py @@ -1436,3 +1436,34 @@ def sniff( self, filename ): Binary.register_sniffable_binary_format("netcdf", "netcdf", NetCDF) + +class DMND( Binary ): + """ + Class describing an DMND file + >>> from galaxy.datatypes.sniff import get_test_fname + >>> fname = get_test_fname( 'test.dmnd' ) + >>> DMND().sniff( fname ) + True + >>> fname = get_test_fname( 'interval.interval' ) + >>> DMND().sniff( fname ) + False + """ + + file_ext = "dmnd" + edam_format = "" + + def __init__( self, **kwd ): + Binary.__init__( self, **kwd ) + self._magic = binascii.unhexlify("24af8a415ee186dllu") + + def sniff( self, filename ): + # The first 8 bytes of any hdf5 file are 0x24af8a415ee186dllu + try: + header = open( filename, 'rb' ).read(8) + if header == self._magic: + return True + return False + except: + return False + +Binary.register_sniffable_binary_format("dmnd", "dmnd", DMND) From 8cfbfcdaff4cfdeefe4e11733ac1530eebb80da2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A9r=C3=A9nice=20Batut?= Date: Thu, 5 Jan 2017 16:40:49 +0100 Subject: [PATCH 3/7] Add test to dmnd --- lib/galaxy/datatypes/sniff.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/galaxy/datatypes/sniff.py b/lib/galaxy/datatypes/sniff.py index d7bfdd0a95b9..23f18b8f1920 100644 --- a/lib/galaxy/datatypes/sniff.py +++ b/lib/galaxy/datatypes/sniff.py @@ -356,6 +356,9 @@ def guess_ext( fname, sniff_order, is_multi_byte=False ): >>> fname = get_test_fname('1.gg') >>> guess_ext(fname, sniff_order) 'gg' + >>> fname = get_test_fname('test.dmnd') + >>> guess_ext(fname, sniff_order) + 'dmnd' """ file_ext = None for datatype in sniff_order: From 275f2fb84beffb89c7a8a22d14a176455d9bf328 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A9r=C3=A9nice=20Batut?= Date: Thu, 5 Jan 2017 16:53:14 +0100 Subject: [PATCH 4/7] Add test data for diamond datatype --- lib/galaxy/datatypes/binary.py | 2 +- lib/galaxy/datatypes/sniff.py | 2 +- lib/galaxy/datatypes/test/diamond_db.dmnd | Bin 0 -> 423 bytes 3 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 lib/galaxy/datatypes/test/diamond_db.dmnd diff --git a/lib/galaxy/datatypes/binary.py b/lib/galaxy/datatypes/binary.py index 3bd00f025ecd..bad76cdfd156 100644 --- a/lib/galaxy/datatypes/binary.py +++ b/lib/galaxy/datatypes/binary.py @@ -1441,7 +1441,7 @@ class DMND( Binary ): """ Class describing an DMND file >>> from galaxy.datatypes.sniff import get_test_fname - >>> fname = get_test_fname( 'test.dmnd' ) + >>> fname = get_test_fname( 'diamond_db.dmnd' ) >>> DMND().sniff( fname ) True >>> fname = get_test_fname( 'interval.interval' ) diff --git a/lib/galaxy/datatypes/sniff.py b/lib/galaxy/datatypes/sniff.py index 23f18b8f1920..7188bafdba5c 100644 --- a/lib/galaxy/datatypes/sniff.py +++ b/lib/galaxy/datatypes/sniff.py @@ -356,7 +356,7 @@ def guess_ext( fname, sniff_order, is_multi_byte=False ): >>> fname = get_test_fname('1.gg') >>> guess_ext(fname, sniff_order) 'gg' - >>> fname = get_test_fname('test.dmnd') + >>> fname = get_test_fname('diamond_db.dmnd') >>> guess_ext(fname, sniff_order) 'dmnd' """ diff --git a/lib/galaxy/datatypes/test/diamond_db.dmnd b/lib/galaxy/datatypes/test/diamond_db.dmnd new file mode 100644 index 0000000000000000000000000000000000000000..b5322de561778c8dcd2c7608d8f0e663d3b7e10a GIT binary patch literal 423 zcmZ{gKWkJ`5XI-+n|<@7)YFD2+heCWK-dgFPh!BRqSa#dNY- zL*}f#3F-Am1i0k_&X&_ujItqxVUpR#r7Dyv2?lSLW-vDp6fRBrnqoaFe4Yj`1%ts? zeYymqWT0aa_La46{fch~!ii&xw2=KTES tX1~7q_WAMV{^R5Bc745m_xk)qAYhuxQdyrdWZdHbPFzX5V@D5?Me literal 0 HcmV?d00001 From 34471bbc47b5bd428099c8f5518c0329b3c86582 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A9r=C3=A9nice=20Batut?= Date: Thu, 5 Jan 2017 17:34:55 +0100 Subject: [PATCH 5/7] Correct the header --- lib/galaxy/datatypes/binary.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/galaxy/datatypes/binary.py b/lib/galaxy/datatypes/binary.py index bad76cdfd156..8a0a8a96f7fe 100644 --- a/lib/galaxy/datatypes/binary.py +++ b/lib/galaxy/datatypes/binary.py @@ -1454,10 +1454,11 @@ class DMND( Binary ): def __init__( self, **kwd ): Binary.__init__( self, **kwd ) - self._magic = binascii.unhexlify("24af8a415ee186dllu") + self._magic = binascii.unhexlify("24af8a415ee186d") def sniff( self, filename ): - # The first 8 bytes of any hdf5 file are 0x24af8a415ee186dllu + # The first 8 bytes of any dmnd file are 0x24af8a415ee186d + try: header = open( filename, 'rb' ).read(8) if header == self._magic: From 5dcb2f317bc3a3f07e30e1fce070ed012f0e7379 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A9r=C3=A9nice=20Batut?= Date: Mon, 9 Jan 2017 09:53:01 +0100 Subject: [PATCH 6/7] Change the header to find for dmnd --- lib/galaxy/datatypes/binary.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/galaxy/datatypes/binary.py b/lib/galaxy/datatypes/binary.py index 8a0a8a96f7fe..294d0ecfbc35 100644 --- a/lib/galaxy/datatypes/binary.py +++ b/lib/galaxy/datatypes/binary.py @@ -1454,7 +1454,7 @@ class DMND( Binary ): def __init__( self, **kwd ): Binary.__init__( self, **kwd ) - self._magic = binascii.unhexlify("24af8a415ee186d") + self._magic = binascii.unhexlify("6d18ee15a4f84a02") def sniff( self, filename ): # The first 8 bytes of any dmnd file are 0x24af8a415ee186d From 50f9f74884068690f7c5e125b4aae10fd48bf41e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A9r=C3=A9nice=20Batut?= Date: Mon, 9 Jan 2017 10:37:56 +0100 Subject: [PATCH 7/7] Add extra line to fix flake8 --- lib/galaxy/datatypes/binary.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/galaxy/datatypes/binary.py b/lib/galaxy/datatypes/binary.py index 294d0ecfbc35..161d25a854a4 100644 --- a/lib/galaxy/datatypes/binary.py +++ b/lib/galaxy/datatypes/binary.py @@ -1437,6 +1437,7 @@ def sniff( self, filename ): Binary.register_sniffable_binary_format("netcdf", "netcdf", NetCDF) + class DMND( Binary ): """ Class describing an DMND file @@ -1448,7 +1449,6 @@ class DMND( Binary ): >>> DMND().sniff( fname ) False """ - file_ext = "dmnd" edam_format = "" @@ -1467,4 +1467,5 @@ def sniff( self, filename ): except: return False + Binary.register_sniffable_binary_format("dmnd", "dmnd", DMND)