From bba438be15daf80c2474837ce41069bbbd6c82a7 Mon Sep 17 00:00:00 2001
From: Robert Izzard <ri0005@login1.compute.eureka2.surrey.ac.uk>
Date: Mon, 24 Jan 2022 21:34:26 +0000
Subject: [PATCH] updates to improve type setting in parsing of cmdline args

---
 binarycpython/utils/grid.py                    | 18 ++++++++++++------
 .../population_extensions/spacing_functions.py | 10 ++++++----
 2 files changed, 18 insertions(+), 10 deletions(-)

diff --git a/binarycpython/utils/grid.py b/binarycpython/utils/grid.py
index c21dc4486..fe4258c62 100644
--- a/binarycpython/utils/grid.py
+++ b/binarycpython/utils/grid.py
@@ -374,7 +374,7 @@ class Population(
 
         # get the cmd-line args in the form x=y
         cmdline_args = sys.argv[1:]
-
+        
         if cmdline_args:
             self.verbose_print(
                 "Found cmdline args. Parsing them now",
@@ -385,7 +385,7 @@ class Population(
             # Grab the input and split them up, while accepting only non-empty entries
             # cmdline_args = args
             self.grid_options["_commandline_input"] = cmdline_args
-
+            
             # Make dict and fill it
             cmdline_dict = {}
             for cmdline_arg in cmdline_args:
@@ -401,14 +401,19 @@ class Population(
                         old_value = self.grid_options[parameter]
                         old_value_found = True
 
-                    elif parameter in self.defaults:
-                        old_value = self.defaults[parameter]
-                        old_value_found = True
-
                     elif parameter in self.custom_options:
                         old_value = self.custom_options[parameter]
                         old_value_found = True
 
+                    elif parameter in self.bse_options:
+                        old_value = self.bse_options[parameter]
+                        old_value_found = True
+
+                    elif parameter in self.defaults:
+                        # this will revert to a string type, always
+                        old_value = self.defaults[parameter]
+                        old_value_found = True
+
                     # (attempt to) convert type
                     if old_value_found:
                         if old_value is not None:
@@ -1986,6 +1991,7 @@ class Population(
                     self.grid_options["verbosity"],
                     0,
                 )
+                print("BSE",self.bse_options)
                 raise ValueError
 
             if not any(
diff --git a/binarycpython/utils/population_extensions/spacing_functions.py b/binarycpython/utils/population_extensions/spacing_functions.py
index 242fe7c0e..36edd02e4 100644
--- a/binarycpython/utils/population_extensions/spacing_functions.py
+++ b/binarycpython/utils/population_extensions/spacing_functions.py
@@ -20,7 +20,7 @@ import numpy as np
 import cachetools
 import diskcache
 
-# from binarycpython.utils.grid import Population
+
 
 import py_rinterpolate
 
@@ -345,13 +345,14 @@ class spacing_functions:
                 return func(*args, **kwargs)
 
             return wrapped
-
-        if cache:
+                
+        if cache is not None:
             __decorator = cache.memoize
         else:
             __decorator = __dummy_decorator
 
-        @__decorator
+        #@cache.memoize()    
+        @__decorator() # note: () works with python3.9+, maybe not for 3.8
         def _const_dt(
             cachedir=None,
             num_cores=None,
@@ -392,6 +393,7 @@ class spacing_functions:
             if max_evolution_time:
                 bse_options["max_evolution_time"] = max_evolution_time
 
+            from binarycpython.utils.grid import Population
             lifetime_population = Population()
             lifetime_population.bse_options = bse_options
 
-- 
GitLab