From b8d7e2345d20c5c2fd1f0c1e43d195306568e770 Mon Sep 17 00:00:00 2001 From: geisserml Date: Mon, 23 Dec 2024 00:25:33 +0100 Subject: [PATCH] Inline simple/func macro handling --- src/ctypesgen/printer_python.py | 28 ++++++++++------------------ 1 file changed, 10 insertions(+), 18 deletions(-) diff --git a/src/ctypesgen/printer_python.py b/src/ctypesgen/printer_python.py index 78fe9e3..5aaa3eb 100755 --- a/src/ctypesgen/printer_python.py +++ b/src/ctypesgen/printer_python.py @@ -263,27 +263,19 @@ def print_typedef(self, typedef): self._srcinfo(typedef.src) self.file.write(f"{typedef.name} = {typedef.ctype.py_string()}") - def print_macro(self, macro): self._srcinfo(macro.src) # important: must check precisely against None because params may be an empty list for a func macro - if macro.params is None: - self._print_simple_macro(macro) - else: - self._print_func_macro(macro) - - def _print_simple_macro(self, macro): - entry = f"{macro.name} = {macro.expr.py_string(True)}" - if self.opts.guard_macros: - entry = self._try_except_wrap(entry) - self.file.write(entry) - - def _print_func_macro(self, macro): - self.file.write( - f"def {macro.name}({', '.join(macro.params)}):" - f"\n return {macro.expr.py_string(True)}" - ) - + if macro.params is None: # simple macro + entry = f"{macro.name} = {macro.expr.py_string(True)}" + if self.opts.guard_macros: + entry = self._try_except_wrap(entry) + self.file.write(entry) + else: # func macro + self.file.write( + f"def {macro.name}({', '.join(macro.params)}):" + f"\n return {macro.expr.py_string(True)}" + ) def print_undef(self, undef): self._srcinfo(undef.src)