From 30005e72656e906c2f8118025d4a4a0a928e0b9e Mon Sep 17 00:00:00 2001 From: Wurschdhaud Date: Tue, 23 Sep 2025 11:44:50 +0200 Subject: [PATCH 1/2] PY3 compatibility for itertools --- pyrevitlib/pyrevit/output/__init__.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pyrevitlib/pyrevit/output/__init__.py b/pyrevitlib/pyrevit/output/__init__.py index 011c8c337..b0db30f19 100644 --- a/pyrevitlib/pyrevit/output/__init__.py +++ b/pyrevitlib/pyrevit/output/__init__.py @@ -21,7 +21,11 @@ from __future__ import print_function import os.path as op -import itertools +from pyrevit.compat import PY2, PY3 +if PY2: + from itertools import izip_longest +elif PY3: + from itertools import zip_longest as izip_longest from pyrevit import HOST_APP, EXEC_PARAMS from pyrevit import framework @@ -579,7 +583,7 @@ def print_table(self, table_data, columns=None, formats=None, self.add_style('tr:last-child {{ {style} }}' .format(style=last_line_style)) - zipper = itertools.izip_longest #pylint: disable=E1101 + zipper = izip_longest #pylint: disable=E1101 adjust_base_col = '|' adjust_extra_col = ':---|' base_col = '|' From 62eaf5de30fd888c4ec9d2c3116d7525a9988fbd Mon Sep 17 00:00:00 2001 From: Wurschdhaud Date: Wed, 24 Sep 2025 15:15:33 +0200 Subject: [PATCH 2/2] add flush for print_md, cleanup zip_longest --- pyrevitlib/pyrevit/output/__init__.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/pyrevitlib/pyrevit/output/__init__.py b/pyrevitlib/pyrevit/output/__init__.py index b0db30f19..a3ebcd51b 100644 --- a/pyrevitlib/pyrevit/output/__init__.py +++ b/pyrevitlib/pyrevit/output/__init__.py @@ -21,11 +21,12 @@ from __future__ import print_function import os.path as op +import sys from pyrevit.compat import PY2, PY3 if PY2: - from itertools import izip_longest + from itertools import izip_longest as zip_longest elif PY3: - from itertools import zip_longest as izip_longest + from itertools import zip_longest from pyrevit import HOST_APP, EXEC_PARAMS from pyrevit import framework @@ -547,6 +548,8 @@ def print_md(md_str): markdown_html = markdown_html.replace('\n', '').replace('\r', '') html_code = coreutils.prepare_html_str(markdown_html) print(html_code, end="") + if PY3: + sys.stdout.flush() def print_table(self, table_data, columns=None, formats=None, title='', last_line_style=''): @@ -583,7 +586,6 @@ def print_table(self, table_data, columns=None, formats=None, self.add_style('tr:last-child {{ {style} }}' .format(style=last_line_style)) - zipper = izip_longest #pylint: disable=E1101 adjust_base_col = '|' adjust_extra_col = ':---|' base_col = '|' @@ -595,7 +597,7 @@ def print_table(self, table_data, columns=None, formats=None, header = '' if columns: header = base_col - for idx, col_name in zipper(range(max_col), columns, fillvalue=''): #pylint: disable=W0612 + for idx, col_name in zip_longest(range(max_col), columns, fillvalue=''): #pylint: disable=W0612 header += extra_col.format(data=col_name) header += '\n' @@ -610,7 +612,7 @@ def print_table(self, table_data, columns=None, formats=None, for entry in table_data: row = base_col for idx, attrib, attr_format \ - in zipper(range(max_col), entry, formats, fillvalue=''): + in zip_longest(range(max_col), entry, formats, fillvalue=''): if attr_format: value = attr_format.format(attrib) else: