diff mbox series

[v3,1/4] bitbake: progressbar: Add self._fd_console to use for self._handle_resize()

Message ID 20250125122752.649-2-egyszeregy@freemail.hu
State New
Headers show
Series bitbake: knotty/progressbar: Optimize footer update and prints. | expand

Commit Message

Livius Jan. 25, 2025, 12:27 p.m. UTC
s=20181004; d=freemail.hu;

	h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References:MIME-Version:Content-Type:Content-Transfer-Encoding;

	l=1756; bh=OMbJ1pXWmsldkpXzCJhrbnm3JgAdcrjxZC3B6XkI6RA=;

	b=KRKFY94lFtcTjT2XO1BedIo1zEF+uEgBwjYKuNfoW5MvqazsEtw5ot1mAtH+jzud

	I9x3Qsgk9Eiggot56XetRnkqXfnphfPrroW1nAPGOTikeSLSWQ4tNJkBXji2FY17rEP

	QiPrPUWIOaR01DmF0KBAB8RJjob4H27E/NcxJWvBZfElQBc5etSWIgpSyG2MN5/HHQj

	SyU8GDX22/NxvjqEB3DZY5HkRepfWaQZ/NlvwpSVaE/GQIwmBi3tszk2PUJ42fF7HSq

	GbZq77j/gnj1bhPfVMoKbil22OybGgPPkeZtKZPdL3xLmSSMgzlWLWf6I0ZTJFR+8A+

	vGPKoRzSwA==
Content-Transfer-Encoding: quoted-printable

From: Benjamin Sz=C5=91ke <egyszeregy@freemail.hu>

Introduce self._fd_console as a dedicated attribute of self._handle_resiz=
e().

Signed-off-by: Benjamin Sz=C5=91ke <egyszeregy@freemail.hu>
---
 lib/progressbar/progressbar.py | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

             except Exception as e:
-                print("DEBUG 5 %s" % e)
                 self.term_width =3D self._env_size()
=20
         self.__iterable =3D None
@@ -182,7 +189,7 @@ class ProgressBar(object):
     def _handle_resize(self, signum=3DNone, frame=3DNone):
         """Tries to catch resize signals sent from the terminal."""
=20
-        h, w =3D array('h', ioctl(self.fd, termios.TIOCGWINSZ, '\0' * 8)=
)[:2]
+        h, w =3D array('h', ioctl(self._fd_console, termios.TIOCGWINSZ, =
'\0' * 8))[:2]
         self.term_width =3D w
=20
=20
--=20
2.47.1.windows.2
diff mbox series

Patch

diff --git a/lib/progressbar/progressbar.py b/lib/progressbar/progressbar=
.py
index d4da10ab7..eccc45849 100644
--- a/lib/progressbar/progressbar.py
+++ b/lib/progressbar/progressbar.py
@@ -110,18 +110,25 @@  class ProgressBar(object):
         self.widgets =3D widgets
         self.fd =3D fd
         self.left_justify =3D left_justify
+        self._fd_console =3D None
=20
         self.signal_set =3D False
         if term_width is not None:
             self.term_width =3D term_width
         else:
             try:
+                # Check if given file descriptor is resizable for exampl=
e belong
+                # to a terminal/console as STDOUT or STDERR. If file des=
criptor
+                # is resizable, let's allow to use for self._handle_resi=
ze()
+                # in a dedicated self._fd_console in order to be able to=
 set
+                # temporarily/permanently self.fd to any StringIO or oth=
er
+                # file descriptor later.
+                self._fd_console =3D fd
                 self._handle_resize(None, None)
                 signal.signal(signal.SIGWINCH, self._handle_resize)
                 self.signal_set =3D True
             except (SystemExit, KeyboardInterrupt): raise