def test_pop(self): """ Tests pop method of AttribDict class. """ ad = AttribDict() ad.test = 1 ad['test2'] = 'test' # removing via pop temp = ad.pop('test') self.assertEquals(temp, 1) self.assertFalse('test' in ad) self.assertTrue('test2' in ad) self.assertFalse('test' in ad.__dict__) self.assertTrue('test2' in ad.__dict__) self.assertFalse(hasattr(ad, 'test')) self.assertTrue(hasattr(ad, 'test2')) # using pop() for not existing element raises a KeyError self.assertRaises(KeyError, ad.pop, 'test')
def dataset2trace(dataset, headonly=False): """Load trace from dataset.""" stats = AttribDict(dataset.attrs) for key, val in stats.items(): # decode bytes to utf-8 string for py3 if isinstance(val, bytes): stats[key] = val = val.decode('utf-8') if _is_utc(val): stats[key] = UTC(val) elif key == 'processing': # this block is only necessary for files written with old obspyh5 # versions (< 0.5.0) stats[key] = json.loads(val) jsondata = stats.pop('_json', None) if jsondata is not None: for k, v in json.loads(jsondata).items(): stats[k] = v if headonly: stats['npts'] = len(dataset) trace = Trace(header=stats) else: trace = Trace(data=dataset[...], header=stats) return trace