From 455ac545282328801f45ea1e5503e6d07dcd36af Mon Sep 17 00:00:00 2001 From: Jun Komoda <45822440+junkmd@users.noreply.github.com> Date: Mon, 22 Apr 2024 13:01:44 +0000 Subject: [PATCH] fix trailing newlines generated by `ComMethodGenerator`, `DispPropertyGenerator` and `DispMethodGenerator` --- comtypes/tools/codegenerator.py | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/comtypes/tools/codegenerator.py b/comtypes/tools/codegenerator.py index 3df77470..afc14cc7 100644 --- a/comtypes/tools/codegenerator.py +++ b/comtypes/tools/codegenerator.py @@ -235,7 +235,7 @@ class ComMethodGenerator(object): def __init__(self, m: typedesc.ComMethod, isdual: bool) -> None: self._m = m self._isdual = isdual - self._stream = io.StringIO() + self.data: List[str] = [] self._to_type_name = TypeNamer() def generate(self) -> str: @@ -243,7 +243,7 @@ def generate(self) -> str: self._make_noargs() else: self._make_withargs() - return self._stream.getvalue() + return "\n".join(self.data) def _get_common_elms(self) -> Tuple[List[_IdlFlagType], str, str]: idlflags: List[_IdlFlagType] = [] @@ -268,7 +268,7 @@ def _make_noargs(self) -> None: f" '{member_name}',\n" " )," ) - print(code, file=self._stream) + self.data.append(code) def _make_withargs(self) -> None: flags, type_name, member_name = self._get_common_elms() @@ -278,10 +278,10 @@ def _make_withargs(self) -> None: f" {type_name},\n" f" '{member_name}'," ) - print(code, file=self._stream) + self.data.append(code) arglist = [_to_arg_definition(*i) for i in self._iter_args()] - print(",\n".join(arglist), file=self._stream) - print(" ),", file=self._stream) + self.data.append(",\n".join(arglist)) + self.data.append(" ),") def _iter_args(self) -> Iterator[Tuple[str, str, List[str], _DefValType]]: for typ, arg_name, _f, _defval in self._m.arguments: @@ -342,7 +342,7 @@ def _iter_args(self) -> Iterator[Tuple[str, str, List[str], _DefValType]]: class DispMethodGenerator(object): def __init__(self, m: typedesc.DispMethod) -> None: self._m = m - self._stream = io.StringIO() + self.data: List[str] = [] self._to_type_name = TypeNamer() def generate(self) -> str: @@ -350,7 +350,7 @@ def generate(self) -> str: self._make_noargs() else: self._make_withargs() - return self._stream.getvalue() + return "\n".join(self.data) def _get_common_elms(self) -> Tuple[List[_IdlFlagType], str, str]: idlflags: List[_IdlFlagType] = [] @@ -372,7 +372,7 @@ def _make_noargs(self) -> None: f" '{member_name}',\n" " )," ) - print(code, file=self._stream) + self.data.append(code) def _make_withargs(self) -> None: flags, type_name, member_name = self._get_common_elms() @@ -382,10 +382,10 @@ def _make_withargs(self) -> None: f" {type_name},\n" f" '{member_name}'," ) - print(code, file=self._stream) + self.data.append(code) arglist = [_to_arg_definition(*i) for i in self._iter_args()] - print(",\n".join(arglist), file=self._stream) - print(" ),", file=self._stream) + self.data.append(",\n".join(arglist)) + self.data.append(" ),") def _iter_args(self) -> Iterator[Tuple[str, str, List[str], _DefValType]]: for typ, arg_name, idlflags, default in self._m.arguments: @@ -409,7 +409,7 @@ def generate(self) -> str: f" '{member_name}'\n" " )," ) - return code + "\n" + return code def _get_common_elms(self) -> Tuple[List[_IdlFlagType], str, str]: idlflags: List[_IdlFlagType] = [] @@ -1326,7 +1326,7 @@ def make_ComMethod(self, m: typedesc.ComMethod, isdual: bool) -> None: if __debug__ and m.doc: self.imports.add("comtypes", "helpstring") gen = ComMethodGenerator(m, isdual) - print(gen.generate(), file=self.stream, end="") + print(gen.generate(), file=self.stream) self.last_item_class = False for typ, _, _, default in m.arguments: if isinstance(typ, typedesc.ComInterface): @@ -1344,7 +1344,7 @@ def make_DispMethod(self, m: typedesc.DispMethod) -> None: if __debug__ and m.doc: self.imports.add("comtypes", "helpstring") gen = DispMethodGenerator(m) - print(gen.generate(), file=self.stream, end="") + print(gen.generate(), file=self.stream) self.last_item_class = False for _, _, _, default in m.arguments: if default is not None: @@ -1356,7 +1356,7 @@ def make_DispProperty(self, prop: typedesc.DispProperty) -> None: if __debug__ and prop.doc: self.imports.add("comtypes", "helpstring") gen = DispPropertyGenerator(prop) - print(gen.generate(), file=self.stream, end="") + print(gen.generate(), file=self.stream) self.last_item_class = False