From c2d6f5dc3a5bcf52327d1da7e8e9e0214ef2b43a Mon Sep 17 00:00:00 2001
From: Jameson Graef Rollins <jameson.rollins@ligo.org>
Date: Fri, 9 Oct 2020 10:00:19 -0700
Subject: [PATCH] cache precomp data between runs

This prevents the precomp data from being re-calculated if the ifo
hasn't changed.
---
 gwinc/nb.py | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/gwinc/nb.py b/gwinc/nb.py
index 1cac3b26..13279c25 100644
--- a/gwinc/nb.py
+++ b/gwinc/nb.py
@@ -145,6 +145,7 @@ class BudgetItem:
         for key, val in kwargs.items():
             setattr(self, key, val)
         self._loaded = False
+        self._precomp = dict()
 
     @property
     def name(self):
@@ -272,11 +273,12 @@ class Noise(BudgetItem):
                     kwargs['ifo'] = self.ifo
             self._ifo_hash = ifo_hash
 
-        _precomp = dict()
         if kwargs:
             self.update(**kwargs)
+            # clear precomp cache
+            self._precomp = dict()
 
-        return self.calc_trace(_precomp=_precomp)
+        return self.calc_trace(_precomp=self._precomp)
 
 
 class Budget(Noise):
-- 
GitLab