diff --git a/Magics/Magics.py b/Magics/Magics.py index 5f24364..2c0cf52 100644 --- a/Magics/Magics.py +++ b/Magics/Magics.py @@ -661,6 +661,28 @@ def seti(name, value): name = string_to_char(name) return py_seti(name, value) +@checked_return_code +def setli(name, value): + name = string_to_char(name) + val = (ctypes.c_ulonglong)(value) + return py_setli(name, val) + +def long_parameters(): + try: + long_parameters = dll.py_long_parameters + long_parameters.restype = ctypes.c_char_p + long_parameters.argtypes = None + params = long_parameters() + params = json.loads(params.decode()) + return params + except Exception: + return "long_parameters not supported" + +py_setli = dll.py_setli +py_setli.restype = c_char_p + +c_ulonglong = ctypes.c_ulonglong +c_ulonglong_p = ctypes.POINTER(c_ulonglong) def known_drivers(): try: diff --git a/Magics/__init__.py b/Magics/__init__.py index 459810e..fa5032d 100644 --- a/Magics/__init__.py +++ b/Magics/__init__.py @@ -2,4 +2,4 @@ from .Magics import * # noqa -__version__ = "1.5.8" +__version__ = "1.7.0" diff --git a/Magics/macro.py b/Magics/macro.py index baef35d..896b4d6 100644 --- a/Magics/macro.py +++ b/Magics/macro.py @@ -221,11 +221,23 @@ def find_type(self, data): if not isinstance(v, int): return "float" return "int" + + def patch_setli(self, param, value): + params = Magics.long_parameters() + if param in params.keys(): + if ( value > 2147483647 ): + Magics.setli(params[param], value) + return True + return False + def set(self): # noqa C901 for key in list(self.args.keys()): + + if (self.patch_setli(key, self.args[key])): + pass - if isinstance(self.args[key], dict): + elif isinstance(self.args[key], dict): Magics.setc(key, json.dumps(self.args[key])) elif isinstance(self.args[key], bool): if self.args[key]: