From 2c6c5236323dbea196cfd2e8fe3915f0c7e4c6df Mon Sep 17 00:00:00 2001 From: Daniel Blankenberg Date: Wed, 2 Dec 2015 11:53:17 -0500 Subject: [PATCH] Only store ids for row and column in BIOM1 datatype. --- lib/galaxy/datatypes/text.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/galaxy/datatypes/text.py b/lib/galaxy/datatypes/text.py index f42d181ceba..c90a6774546 100644 --- a/lib/galaxy/datatypes/text.py +++ b/lib/galaxy/datatypes/text.py @@ -188,6 +188,11 @@ class Biom1( Json ): json_dict = json.load( fh ) except Exception: return + def _transform_dict_list_ids( dict_list ): + if dict_list: + return [ x.get( 'id', None ) for x in dict_list ] + return [] + b_transform = { 'rows': _transform_dict_list_ids, 'columns': _transform_dict_list_ids } for ( m_name, b_name ) in [ ('table_rows', 'rows'), ('table_matrix_element_type', 'matrix_element_type'), ('table_format', 'format'), @@ -200,7 +205,10 @@ class Biom1( Json ): ('table_id', 'id'), ('table_columns', 'columns') ]: try: - setattr( dataset.metadata, m_name, json_dict.get( b_name, None ) ) + metadata_value = json_dict.get( b_name, None ) + if b_name in b_transform: + metadata_value = b_transform[ b_name ]( metadata_value ) + setattr( dataset.metadata, m_name, metadata_value ) except Exception: pass