From f8808bc92cf2cd24b7afec78e363ff81b1671cc5 Mon Sep 17 00:00:00 2001
From: Cristian C Lalescu <Cristian.Lalescu@ds.mpg.de>
Date: Wed, 27 Jan 2016 16:19:23 +0100
Subject: [PATCH] fix base_class value

---
 bfps/__main__.py | 36 +++++++++++++++++++-----------------
 1 file changed, 19 insertions(+), 17 deletions(-)

diff --git a/bfps/__main__.py b/bfps/__main__.py
index 6d788bd9..5a75928a 100644
--- a/bfps/__main__.py
+++ b/bfps/__main__.py
@@ -37,34 +37,36 @@ def main():
             '-v', '--version',
             action = 'version',
             version = '%(prog)s ' + bfps.__version__)
+    NSoptions = ['NavierStokes',
+                 'NavierStokes-single',
+                 'NavierStokes-double',
+                 'NS',
+                 'NS-single',
+                 'NS-double']
+    FRoptions = ['FluidResize',
+                 'FluidResize-single',
+                 'FluidResize-double',
+                 'FR',
+                 'FR-single',
+                 'FR-double']
     parser.add_argument(
             'base_class',
-            choices = ['NavierStokes',
-                       'NavierStokes-single',
-                       'NavierStokes-double',
-                       'NS',
-                       'NS-single',
-                       'NS-double',
-                       'FluidResize',
-                       'FluidResize-single',
-                       'FluidResize-double',
-                       'FR',
-                       'FR-single',
-                       'FR-double'],
+            choices = NSoptions + FRoptions,
             type = str)
     # first option is the choice of base class or -h or -v
     # all other options are passed on to the base_class instance
     opt = parser.parse_args(sys.argv[1:2])
     # error is thrown if first option is not a base class, so launch
     # cannot be executed by mistake.
-    if opt.base_class in ['NavierStokes-double',
-                          'NS-double',
-                          'FluidResize-double',
-                          'FR-double']:
+    if 'double' in opt.base_class:
         precision = 'double'
     else:
         precision = 'single'
-    c = eval('{0}(fluid_precision = \'{1}\')'.format(opt.base_class, precision))
+    if opt.base_class in NSoptions:
+        base_class = NavierStokes
+    elif opt.base_class in FRoptions:
+        base_class = FluidResize
+    c = base_class(fluid_precision = precision)
     c.launch(args = sys.argv[2:])
     return None
 
-- 
GitLab