def run(self, **kwargs): is_json = not is_hdf5_file(kwargs['table']) if kwargs['format_version'] in [None, 'None']: if is_json: kwargs['format_version'] = '1.0.0' else: kwargs['format_version'] = '2.1' else: if is_json: raise ValueError("Only format 1.0.0 is valid for JSON") fmt_ver = [int(v) for v in kwargs['format_version'].split('.')] if tuple(fmt_ver) not in self.HDF5FormatVersions: raise ValueError("Unrecognized format version: %s" % kwargs['format_version']) with biom_open(kwargs['table']) as f: if is_json: kwargs['table'] = json.load(f) return self._validate_json(**kwargs) elif HAVE_H5PY: import h5py kwargs['table'] = f if not isinstance(f, h5py.File): print("Attempting to validate an HDF5 BIOM table, but the " "table does not appear to be in HDF5 format!") sys.exit(1) return self._validate_hdf5(**kwargs) else: raise IOError("h5py is not installed, can only validate JSON " "tables")
def run(self, **kwargs): is_json = not is_hdf5_file(kwargs['table']) if kwargs['format_version'] in [None, 'None']: if is_json: kwargs['format_version'] = '1.0.0' else: kwargs['format_version'] = '2.1' elif is_json: if kwargs['format_version'] != "1.0.0": raise ValueError("Only format 1.0.0 is valid for JSON") else: fmt_ver = [int(v) for v in kwargs['format_version'].split('.')] if tuple(fmt_ver) not in self.HDF5FormatVersions: raise ValueError("Unrecognized format version: %s" % kwargs['format_version']) with biom_open(kwargs['table']) as f: if is_json: kwargs['table'] = json.load(f) return self._validate_json(**kwargs) elif HAVE_H5PY: import h5py kwargs['table'] = f if not isinstance(f, h5py.File): print("Attempting to validate an HDF5 BIOM table, but the " "table does not appear to be in HDF5 format!") sys.exit(1) return self._validate_hdf5(**kwargs) else: raise IOError("h5py is not installed, can only validate JSON " "tables")
def test_is_hdf5_file(self): self.assertTrue(is_hdf5_file(get_data_path('test.biom'))) self.assertFalse(is_hdf5_file(get_data_path('test.json')))