From 68e06da328967bff74a8272805d3ca3dc9c7f4d7 Mon Sep 17 00:00:00 2001 From: Greg Quinn <greg.quinn@ssec.wisc.edu> Date: Tue, 5 Sep 2017 07:46:54 -0500 Subject: [PATCH] Extract _decode_rdr_blob function --- edosl0util/jpssrdr.py | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/edosl0util/jpssrdr.py b/edosl0util/jpssrdr.py index 9654c73..beef1e2 100644 --- a/edosl0util/jpssrdr.py +++ b/edosl0util/jpssrdr.py @@ -191,15 +191,23 @@ def _rdrs_for_packet_dataset(group): rdrs = [] if group: for name, buf in _generate_packet_datasets(group): - if buf.shape[0] < c.sizeof(StaticHeader): - LOG.warn('Not enough bytes for %s static header', name) + try: + rdr = _decode_rdr_blob(buf) + except ValueError as e: + LOG.warn('{} ({})'.format(e.message, name)) continue - header = StaticHeader.from_buffer(buf) - apids = _read_apid_list(header, buf) - rdrs.append(CommonRdr(buf, header, list(apids))) + rdrs.append(rdr) return rdrs +def _decode_rdr_blob(buf): + if buf.shape[0] < c.sizeof(StaticHeader): + raise ValueError('Not enough bytes for static header') + header = StaticHeader.from_buffer(buf) + apids = _read_apid_list(header, buf) + return CommonRdr(buf, header, list(apids)) + + def rdr_datasets(filepath): fobj = H5File(filepath) rdr = dict( -- GitLab