diff --git a/python/ionpy/Param.py b/python/ionpy/Param.py index 84156ced..f98981ad 100644 --- a/python/ionpy/Param.py +++ b/python/ionpy/Param.py @@ -10,20 +10,24 @@ class Param: def __init__(self, - key: Optional[str] = None, - val: Any = None, - # -- or - obj_: Optional[c_ion_param_t] = None, - ): + key: Optional[str] = None, + val: Any = None, + # -- or + obj_: Optional[c_ion_param_t] = None, + ): if obj_ is None: obj_ = c_ion_param_t() - - ret = ion_param_create(ctypes.byref(obj_), key.encode(), str(val).lower().encode()) + if isinstance(val, bool): + if val: + val = "true" + else: + val = "false" + ret = ion_param_create(ctypes.byref(obj_), key.encode(), str(val).encode()) if ret != 0: raise Exception('Invalid operation') self.obj = obj_ def __del__(self): - if self.obj: # check not nullptr + if self.obj: # check not nullptr ion_param_destroy(self.obj) diff --git a/python/test/test_param.py b/python/test/test_param.py index 4d47be9b..8ec1b0de 100644 --- a/python/test/test_param.py +++ b/python/test/test_param.py @@ -2,5 +2,10 @@ def test_param(): - p = Param(key='iamkey', val='iamval') - print(p) + + p1 = Param(key='iamkey1', val="IAMKEY") # 'IAMKEY' + p2 = Param(key='iamkey2', val="iamkey") # 'iamkey' + p3 = Param(key='iamkey3', val=1) # '1' + p4 = Param(key='iamkey4', val=0.1) # '0.1' + p5 = Param(key='iamkey5', val=True) # 'true' + p6 = Param(key='iamkey6', val=False) # 'false'