From 64e090e93a0ef7b9a69ede670d6d9d5e34b35d67 Mon Sep 17 00:00:00 2001 From: Tito Dal Canton Date: Tue, 6 Aug 2024 13:57:50 +0200 Subject: [PATCH] =?UTF-8?q?This=20is=20a=20bit=20more=20complicated?= =?UTF-8?q?=E2=80=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pycbc/frame/frame.py | 6 ++++++ pycbc/strain/strain.py | 11 ++++++++--- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/pycbc/frame/frame.py b/pycbc/frame/frame.py index 924c810a745..f0d0570c047 100644 --- a/pycbc/frame/frame.py +++ b/pycbc/frame/frame.py @@ -863,6 +863,12 @@ def advance(self, blocksize): self.null_advance(blocksize) return None + def attempt_advance(self, blocksize, timeout=10): + result = super().attempt_advance(blocksize, timeout) + if result is None: + return None + return self.check_valid(result) + class iDQBuffer(object): diff --git a/pycbc/strain/strain.py b/pycbc/strain/strain.py index 7ef407bc030..08cfa15f3f6 100644 --- a/pycbc/strain/strain.py +++ b/pycbc/strain/strain.py @@ -1848,7 +1848,7 @@ def null_advance_strain(self, blocksize): self.taper_immediate_strain = True def advance(self, blocksize, timeout=10): - """Advanced buffer blocksize seconds. + """Advance buffer blocksize seconds. Add blocksize seconds more to the buffer, push blocksize seconds from the beginning. @@ -1856,7 +1856,10 @@ def advance(self, blocksize, timeout=10): Parameters ---------- blocksize: int - The number of seconds to attempt to read from the channel + The number of seconds to attempt to read from the channel. + timeout: {int, 10} + Maximum time (in seconds) to wait before declaring frame files are + too late and reporting unusable data. Returns ------- @@ -1866,7 +1869,9 @@ def advance(self, blocksize, timeout=10): if self.state: # We are using information from the state vector, so check what is # says about the new strain data. - state_advance_result = self.state.advance(blocksize) + state_advance_result = self.state.attempt_advance( + blocksize, timeout=timeout + ) if not state_advance_result: # Something about the state vector indicates a problem. if state_advance_result is None: