Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-qtconsole for
openSUSE:Factory checked in at 2026-03-30 18:31:27
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-qtconsole (Old)
and /work/SRC/openSUSE:Factory/.python-qtconsole.new.1999 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-qtconsole"
Mon Mar 30 18:31:27 2026 rev:39 rq:1343524 version:5.7.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-qtconsole/python-qtconsole.changes
2026-03-14 22:24:41.542840301 +0100
+++
/work/SRC/openSUSE:Factory/.python-qtconsole.new.1999/python-qtconsole.changes
2026-03-30 18:34:47.171804907 +0200
@@ -1,0 +2,6 @@
+Sun Mar 29 19:46:48 UTC 2026 - Dirk Müller <[email protected]>
+
+- update to 5.7.2:
+ * Handle ANSI codes to show/hide cursor.
+
+-------------------------------------------------------------------
Old:
----
qtconsole-5.7.1.tar.gz
New:
----
qtconsole-5.7.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-qtconsole.spec ++++++
--- /var/tmp/diff_new_pack.xNkJMs/_old 2026-03-30 18:34:47.999839526 +0200
+++ /var/tmp/diff_new_pack.xNkJMs/_new 2026-03-30 18:34:48.003839692 +0200
@@ -22,7 +22,7 @@
%bcond_with libalternatives
%endif
Name: python-qtconsole
-Version: 5.7.1
+Version: 5.7.2
Release: 0
Summary: Jupyter Qt console
License: BSD-3-Clause
++++++ qtconsole-5.7.1.tar.gz -> qtconsole-5.7.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/qtconsole-5.7.1/PKG-INFO new/qtconsole-5.7.2/PKG-INFO
--- old/qtconsole-5.7.1/PKG-INFO 2026-02-10 17:35:09.783546200 +0100
+++ new/qtconsole-5.7.2/PKG-INFO 2026-03-25 03:23:13.055505800 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.4
Name: qtconsole
-Version: 5.7.1
+Version: 5.7.2
Summary: Jupyter Qt console
Home-page: http://jupyter.org
Author: Jupyter Development Team
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/qtconsole-5.7.1/docs/source/changelog.rst
new/qtconsole-5.7.2/docs/source/changelog.rst
--- old/qtconsole-5.7.1/docs/source/changelog.rst 2026-02-10
17:31:21.000000000 +0100
+++ new/qtconsole-5.7.2/docs/source/changelog.rst 2026-03-25
03:18:20.000000000 +0100
@@ -8,6 +8,13 @@
5.7
~~~
+5.7.2
+-----
+
+`5.7.2 on GitHub <https://github.com/jupyter/qtconsole/milestones/5.7.2>`__
+
+* Handle ANSI codes to show/hide cursor.
+
5.7.1
-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/qtconsole-5.7.1/qtconsole/_version.py
new/qtconsole-5.7.2/qtconsole/_version.py
--- old/qtconsole-5.7.1/qtconsole/_version.py 2026-02-10 17:33:43.000000000
+0100
+++ new/qtconsole-5.7.2/qtconsole/_version.py 2026-03-25 03:20:42.000000000
+0100
@@ -1,2 +1,2 @@
-version_info = (5, 7, 1)
+version_info = (5, 7, 2)
__version__ = '.'.join(map(str, version_info))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/qtconsole-5.7.1/qtconsole/ansi_code_processor.py
new/qtconsole-5.7.2/qtconsole/ansi_code_processor.py
--- old/qtconsole-5.7.1/qtconsole/ansi_code_processor.py 2025-09-07
20:55:59.000000000 +0200
+++ new/qtconsole-5.7.2/qtconsole/ansi_code_processor.py 2026-03-25
03:13:44.000000000 +0100
@@ -18,6 +18,11 @@
# Constants and datatypes
#-----------------------------------------------------------------------------
+# An action for cursor visibility requests
+CursorVisibilityAction = namedtuple(
+ 'CursorVisibilityAction', ['action', 'visible']
+)
+
# An action for erase requests (ED and EL commands).
EraseAction = namedtuple('EraseAction', ['action', 'area', 'erase_to'])
@@ -42,7 +47,7 @@
BackSpaceAction = namedtuple('BackSpaceAction', ['action'])
# Regular expressions.
-CSI_COMMANDS = 'ABCDEFGHJKSTfmnsu'
+CSI_COMMANDS = 'ABCDEFGHJKSTfmnsuhl'
CSI_SUBPATTERN = '\\[(.*?)([%s])' % CSI_COMMANDS
OSC_SUBPATTERN = '\\](.*?)[\x07\x1b]'
ANSI_PATTERN = ('\x01?\x1b(%s|%s)\x02?' % \
@@ -122,9 +127,16 @@
yield None
self.actions = []
else:
- params = [ param for param in groups[1].split(';') if param ]
+ params = []
if g0.startswith('['):
- # Case 1: CSI code.
+ raw_params = groups[1] or ""
+
+ # Handle private mode sequences
+ if raw_params.startswith('?'):
+ raw_params = raw_params[1:]
+
+ params = [p for p in raw_params.split(';') if p]
+
try:
params = list(map(int, params))
except ValueError:
@@ -135,6 +147,7 @@
elif g0.startswith(']'):
# Case 2: OSC code.
+ params = [param for param in groups[1].split(';') if param]
self.set_osc_code(params)
raw = string[start:]
@@ -157,6 +170,13 @@
params : sequence of integers, optional
The parameter codes for the command.
"""
+
+ if command in ('h', 'l'):
+ if params == [25]:
+ visible = (command == 'h')
+ self.actions.append(
+ CursorVisibilityAction('cursor-visibility', visible)
+ )
if command == 'm': # SGR - Select Graphic Rendition
if params:
self.set_sgr_code(params)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/qtconsole-5.7.1/qtconsole/console_widget.py
new/qtconsole-5.7.2/qtconsole/console_widget.py
--- old/qtconsole-5.7.1/qtconsole/console_widget.py 2025-08-05
19:18:12.000000000 +0200
+++ new/qtconsole-5.7.2/qtconsole/console_widget.py 2026-03-25
03:13:44.000000000 +0100
@@ -588,6 +588,7 @@
keep_input : bool, optional (default True)
If set, restores the old input buffer if a new prompt is written.
"""
+ self._set_cursor_visible(True)
if self._executing:
self._control.clear()
else:
@@ -2257,6 +2258,8 @@
QtGui.QTextCursor.MoveAnchor,
)
cursor.insertText("\n")
+ elif act.action == 'cursor-visibility':
+ self._set_cursor_visible(act.visible)
# simulate replacement mode
if substring is not None:
@@ -2658,3 +2661,6 @@
"""
menu = self._context_menu_make(pos)
menu.exec_(self._control.mapToGlobal(pos))
+
+ def _set_cursor_visible(self, visible):
+ self._control.setCursorWidth(1 if visible else 0)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/qtconsole-5.7.1/qtconsole/tests/test_ansi_code_processor.py
new/qtconsole-5.7.2/qtconsole/tests/test_ansi_code_processor.py
--- old/qtconsole-5.7.1/qtconsole/tests/test_ansi_code_processor.py
2024-10-29 00:45:58.000000000 +0100
+++ new/qtconsole-5.7.2/qtconsole/tests/test_ansi_code_processor.py
2026-03-25 03:13:44.000000000 +0100
@@ -224,7 +224,28 @@
else:
self.fail('Too many substrings.')
self.assertEqual(i, 3, 'Too few substrings.')
+
+ def test_cursor_visibility(self):
+ """Test for the ANSI commands for cursor visibility (?25h / ?25l)
+ """
+ # This line hides the cursor, then shows it again.
+ string = '\x1b[?25l\x1b[?25h'
+ i = -1
+ for i, substring in enumerate(self.processor.split_string(string)):
+ self.assertEqual(len(self.processor.actions), 1)
+
+ action = self.processor.actions[0]
+ self.assertEqual(action.action, 'cursor-visibility')
+
+ if i == 0:
+ self.assertFalse(action.visible)
+ elif i == 1:
+ self.assertTrue(action.visible)
+ else:
+ self.fail('Too many substrings.')
+
+ self.assertEqual(i, 1, 'Too few substrings.')
if __name__ == '__main__':
unittest.main()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/qtconsole-5.7.1/qtconsole.egg-info/PKG-INFO
new/qtconsole-5.7.2/qtconsole.egg-info/PKG-INFO
--- old/qtconsole-5.7.1/qtconsole.egg-info/PKG-INFO 2026-02-10
17:35:09.000000000 +0100
+++ new/qtconsole-5.7.2/qtconsole.egg-info/PKG-INFO 2026-03-25
03:23:12.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.4
Name: qtconsole
-Version: 5.7.1
+Version: 5.7.2
Summary: Jupyter Qt console
Home-page: http://jupyter.org
Author: Jupyter Development Team