From 2e01bf4145087159fbecc741a9e8a96dc0a2b9c3 Mon Sep 17 00:00:00 2001 From: Aaron LI Date: Fri, 9 Dec 2016 19:03:27 +0800 Subject: products.py: Add parameter "load" to __init__() The "load" parameter explicitly controls whether to load the specified manifest file. Update "foregrounds.py" to use this new "load" parameter, which prevent the manifest file been loaded. Otherwise, if the output manifest file already exists, it will be loaded to Products, which may cause inconsistencies with the manifest of newly simulated products. --- fg21sim/foregrounds.py | 2 +- fg21sim/products.py | 16 ++++++++++------ 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/fg21sim/foregrounds.py b/fg21sim/foregrounds.py index a64f21c..d74dfaf 100644 --- a/fg21sim/foregrounds.py +++ b/fg21sim/foregrounds.py @@ -80,7 +80,7 @@ class Foregrounds: # Initialize the products manifest logger.info("Initialize the products manifest ...") manifestfile = self.configs.get_path("output/manifest") - self.products = Products(manifestfile) + self.products = Products(manifestfile, load=False) # Initialize enabled components self.components = OrderedDict() for comp in self.components_id: diff --git a/fg21sim/products.py b/fg21sim/products.py index e355054..5f8d2d9 100644 --- a/fg21sim/products.py +++ b/fg21sim/products.py @@ -24,6 +24,13 @@ class Products: """ Manage and manipulate the simulation products. + Parameters + ---------- + manifestfile : str, optional + The absolute path to the manifest file for loading. + load : bool, optional + Load the specified manifest file if ``True``. + Attributes ---------- manifest : dict @@ -61,14 +68,11 @@ class Products: } `` """ - def __init__(self, manifestfile=None): + def __init__(self, manifestfile=None, load=True): self.manifest = OrderedDict() self.manifestfile = manifestfile - if manifestfile is not None: - try: - self.load(manifestfile) - except FileNotFoundError: - pass + if (manifestfile is not None) and load: + self.load(manifestfile) @property def frequencies(self): -- cgit v1.2.2