From 578af76ea16e68ace9f814299ca230a601b4beef Mon Sep 17 00:00:00 2001 From: Bruce Flynn <brucef@ssec.wisc.edu> Date: Mon, 15 Jun 2020 21:36:09 -0500 Subject: [PATCH] Support packets with 0 length data. SNPP time of day packet (APID 10) contains only headers with no additional user data. --- edosl0util/stream.py | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/edosl0util/stream.py b/edosl0util/stream.py index 889609b..02bc3d7 100644 --- a/edosl0util/stream.py +++ b/edosl0util/stream.py @@ -5,13 +5,8 @@ import os from collections import defaultdict, deque, namedtuple from edosl0util import headers -from edosl0util.headers import ( - GROUP_CONTINUING, - GROUP_FIRST, - GROUP_LAST, - GROUP_STANDALONE, - PrimaryHeader, -) +from edosl0util.headers import (GROUP_CONTINUING, GROUP_FIRST, GROUP_LAST, + GROUP_STANDALONE, PrimaryHeader) from edosl0util.timecode import dt_to_cds LOG = logging.getLogger(__name__) @@ -99,10 +94,10 @@ class BasicStream(object): # data length includes h2size total_size = h1size + h1.data_length_minus1 + 1 data_size = h1.data_length_minus1 + 1 - h2size - if self.with_data: + data = None + if self.with_data and data_size: data = self._read(data_size) else: - data = None self.file.seek(data_size, os.SEEK_CUR) self._offset += data_size return self.Tracker(h1, h2, total_size, offset, data) @@ -227,8 +222,7 @@ class PacketStream(object): if len(self._seek_cache): return self._seek_cache.popleft() try: - # namedtuple('Tracker', ['h1', 'h2', 'size', 'offset', 'data']) - h1, h2, data_size, offset, data = self._stream.next() + h1, h2, data_size, offset, data = next(self._stream) except PacketTooShort as err: if self._fail_on_tooshort: raise -- GitLab