Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-prompt_toolkit for
openSUSE:Factory checked in at 2022-11-12 17:40:23
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-prompt_toolkit (Old)
and /work/SRC/openSUSE:Factory/.python-prompt_toolkit.new.1597 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-prompt_toolkit"
Sat Nov 12 17:40:23 2022 rev:19 rq:1035182 version:3.0.32
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-prompt_toolkit/python-prompt_toolkit.changes
2022-10-10 18:44:32.590866154 +0200
+++
/work/SRC/openSUSE:Factory/.python-prompt_toolkit.new.1597/python-prompt_toolkit.changes
2022-11-12 17:40:33.977952656 +0100
@@ -1,0 +2,16 @@
+Wed Nov 9 16:32:15 UTC 2022 - Yogalakshmi Arunachalam <[email protected]>
+
+- Update to version 3.0.32:
+ Bug fixes:
+ - Use `DummyInput` by default in `create_input()` if `sys.stdin` does not
have
+ a valid file descriptor. This fixes errors when `sys.stdin` is patched in
+ certain situations.
+ - Fix control-c key binding for `ProgressBar` when the progress bar was not
+ created from the main thread. The current code would try to kill the main
+ thread when control-c was pressed.
+ New features:
+ - Accept a `cancel_callback` in `ProgressBar` to specify the cancellation
+ behavior for when `control-c` is pressed.
+ - Small performance improvement in the renderer.
+
+-------------------------------------------------------------------
Old:
----
prompt_toolkit-3.0.31.tar.gz
New:
----
prompt_toolkit-3.0.32.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-prompt_toolkit.spec ++++++
--- /var/tmp/diff_new_pack.I8axF8/_old 2022-11-12 17:40:34.509955823 +0100
+++ /var/tmp/diff_new_pack.I8axF8/_new 2022-11-12 17:40:34.517955870 +0100
@@ -19,7 +19,7 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
%define skip_python2 1
Name: python-prompt_toolkit
-Version: 3.0.31
+Version: 3.0.32
Release: 0
Summary: Library for building interactive command lines in Python
License: BSD-3-Clause
++++++ prompt_toolkit-3.0.31.tar.gz -> prompt_toolkit-3.0.32.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/prompt_toolkit-3.0.31/CHANGELOG
new/prompt_toolkit-3.0.32/CHANGELOG
--- old/prompt_toolkit-3.0.31/CHANGELOG 2022-09-02 11:00:02.000000000 +0200
+++ new/prompt_toolkit-3.0.32/CHANGELOG 2022-11-03 17:29:06.000000000 +0100
@@ -1,6 +1,23 @@
CHANGELOG
=========
+3.0.32: 2022-11-03
+------------------
+
+Bug fixes:
+- Use `DummyInput` by default in `create_input()` if `sys.stdin` does not have
+ a valid file descriptor. This fixes errors when `sys.stdin` is patched in
+ certain situations.
+- Fix control-c key binding for `ProgressBar` when the progress bar was not
+ created from the main thread. The current code would try to kill the main
+ thread when control-c was pressed.
+
+New features:
+- Accept a `cancel_callback` in `ProgressBar` to specify the cancellation
+ behavior for when `control-c` is pressed.
+- Small performance improvement in the renderer.
+
+
3.0.31: 2022-09-02
------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/prompt_toolkit-3.0.31/PKG-INFO
new/prompt_toolkit-3.0.32/PKG-INFO
--- old/prompt_toolkit-3.0.31/PKG-INFO 2022-09-02 11:00:33.564112200 +0200
+++ new/prompt_toolkit-3.0.32/PKG-INFO 2022-11-03 17:32:01.266258000 +0100
@@ -1,9 +1,11 @@
Metadata-Version: 2.1
Name: prompt_toolkit
-Version: 3.0.31
+Version: 3.0.32
Summary: Library for building powerful interactive command lines in Python
Home-page: https://github.com/prompt-toolkit/python-prompt-toolkit
Author: Jonathan Slenders
+License: UNKNOWN
+Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
@@ -179,3 +181,5 @@
.. |Codecov| image::
https://codecov.io/gh/prompt-toolkit/python-prompt-toolkit/branch/master/graphs/badge.svg?style=flat
:target: https://codecov.io/gh/prompt-toolkit/python-prompt-toolkit/
+
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/prompt_toolkit-3.0.31/src/prompt_toolkit/__init__.py
new/prompt_toolkit-3.0.32/src/prompt_toolkit/__init__.py
--- old/prompt_toolkit-3.0.31/src/prompt_toolkit/__init__.py 2022-09-02
11:00:02.000000000 +0200
+++ new/prompt_toolkit-3.0.32/src/prompt_toolkit/__init__.py 2022-11-03
17:29:36.000000000 +0100
@@ -18,7 +18,7 @@
from .shortcuts import PromptSession, print_formatted_text, prompt
# Don't forget to update in `docs/conf.py`!
-__version__ = "3.0.31"
+__version__ = "3.0.32"
# Version tuple.
VERSION = tuple(__version__.split("."))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/prompt_toolkit-3.0.31/src/prompt_toolkit/contrib/ssh/server.py
new/prompt_toolkit-3.0.32/src/prompt_toolkit/contrib/ssh/server.py
--- old/prompt_toolkit-3.0.31/src/prompt_toolkit/contrib/ssh/server.py
2022-09-02 10:53:41.000000000 +0200
+++ new/prompt_toolkit-3.0.32/src/prompt_toolkit/contrib/ssh/server.py
2022-11-03 17:22:03.000000000 +0100
@@ -120,7 +120,7 @@
self._input.send_text(data)
-class PromptToolkitSSHServer(asyncssh.SSHServer): # type: ignore
+class PromptToolkitSSHServer(asyncssh.SSHServer):
"""
Run a prompt_toolkit application over an asyncssh server.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/prompt_toolkit-3.0.31/src/prompt_toolkit/input/defaults.py
new/prompt_toolkit-3.0.32/src/prompt_toolkit/input/defaults.py
--- old/prompt_toolkit-3.0.31/src/prompt_toolkit/input/defaults.py
2022-09-01 17:02:15.000000000 +0200
+++ new/prompt_toolkit-3.0.32/src/prompt_toolkit/input/defaults.py
2022-11-03 15:44:40.000000000 +0100
@@ -1,3 +1,4 @@
+import io
import sys
from typing import ContextManager, Optional, TextIO
@@ -38,11 +39,20 @@
stdin = sys.stdin
if always_prefer_tty:
- for io in [sys.stdin, sys.stdout, sys.stderr]:
- if io.isatty():
- stdin = io
+ for obj in [sys.stdin, sys.stdout, sys.stderr]:
+ if obj.isatty():
+ stdin = obj
break
+ # If we can't access the file descriptor for the selected stdin, return
+ # a `DummyInput` instead. This can happen for instance in unit tests,
+ # when `sys.stdin` is patched by something that's not an actual file.
+ # (Instantiating `Vt100Input` would fail in this case.)
+ try:
+ stdin.fileno()
+ except io.UnsupportedOperation:
+ return DummyInput()
+
return Vt100Input(stdin)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/prompt_toolkit-3.0.31/src/prompt_toolkit/layout/utils.py
new/prompt_toolkit-3.0.32/src/prompt_toolkit/layout/utils.py
--- old/prompt_toolkit-3.0.31/src/prompt_toolkit/layout/utils.py
2022-09-01 17:02:15.000000000 +0200
+++ new/prompt_toolkit-3.0.32/src/prompt_toolkit/layout/utils.py
2022-11-03 17:22:03.000000000 +0100
@@ -73,8 +73,8 @@
result: List[_T] = []
- for style, string, *rest in fragments: # type: ignore
- for c in string: # type: ignore
+ for style, string, *rest in fragments:
+ for c in string:
result.append((style, c, *rest)) # type: ignore
return _ExplodedList(result)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/prompt_toolkit-3.0.31/src/prompt_toolkit/renderer.py
new/prompt_toolkit-3.0.32/src/prompt_toolkit/renderer.py
--- old/prompt_toolkit-3.0.31/src/prompt_toolkit/renderer.py 2022-09-02
10:53:32.000000000 +0200
+++ new/prompt_toolkit-3.0.32/src/prompt_toolkit/renderer.py 2022-10-28
22:01:33.000000000 +0200
@@ -152,13 +152,12 @@
- The `Window` adds a style class to the current line for highlighting
(cursor-line).
"""
- numbers = [
+ numbers = (
index
for index, cell in row.items()
if cell.char != " " or style_string_has_style[cell.style]
- ]
- numbers.append(0)
- return max(numbers)
+ )
+ return max(numbers, default=0)
# Render for the first time: reset styling.
if not previous_screen:
@@ -189,7 +188,6 @@
# Loop over the rows.
row_count = min(max(screen.height, previous_screen.height), height)
- c = 0 # Column counter.
for y in range(row_count):
new_row = screen.data_buffer[y]
@@ -200,7 +198,7 @@
previous_max_line_len = min(width - 1,
get_max_column_index(previous_row))
# Loop over the columns.
- c = 0
+ c = 0 # Column counter.
while c <= new_max_line_len:
new_char = new_row[c]
old_char = previous_row[c]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/prompt_toolkit-3.0.31/src/prompt_toolkit/shortcuts/progress_bar/base.py
new/prompt_toolkit-3.0.32/src/prompt_toolkit/shortcuts/progress_bar/base.py
--- old/prompt_toolkit-3.0.31/src/prompt_toolkit/shortcuts/progress_bar/base.py
2022-09-01 17:02:15.000000000 +0200
+++ new/prompt_toolkit-3.0.32/src/prompt_toolkit/shortcuts/progress_bar/base.py
2022-11-03 17:22:03.000000000 +0100
@@ -15,6 +15,7 @@
import traceback
from asyncio import new_event_loop, set_event_loop
from typing import (
+ Callable,
Generic,
Iterable,
Iterator,
@@ -69,7 +70,7 @@
_SIGWINCH = getattr(signal, "SIGWINCH", None)
-def create_key_bindings() -> KeyBindings:
+def create_key_bindings(cancel_callback: Optional[Callable[[], None]]) ->
KeyBindings:
"""
Key bindings handled by the progress bar.
(The main thread is not supposed to handle any key bindings.)
@@ -80,10 +81,13 @@
def _clear(event: E) -> None:
event.app.renderer.clear()
- @kb.add("c-c")
- def _interrupt(event: E) -> None:
- # Send KeyboardInterrupt to the main thread.
- os.kill(os.getpid(), signal.SIGINT)
+ if cancel_callback is not None:
+
+ @kb.add("c-c")
+ def _interrupt(event: E) -> None:
+ "Kill the 'body' of the progress bar, but only if we run from the
main thread."
+ assert cancel_callback is not None
+ cancel_callback()
return kb
@@ -108,6 +112,9 @@
can be a callable or formatted text.
:param style: :class:`prompt_toolkit.styles.BaseStyle` instance.
:param key_bindings: :class:`.KeyBindings` instance.
+ :param cancel_callback: Callback function that's called when control-c is
+ pressed by the user. This can be used for instance to start "proper"
+ cancellation if the wrapped code supports it.
:param file: The file object used for rendering, by default `sys.stderr`
is used.
:param color_depth: `prompt_toolkit` `ColorDepth` instance.
@@ -122,6 +129,7 @@
bottom_toolbar: AnyFormattedText = None,
style: Optional[BaseStyle] = None,
key_bindings: Optional[KeyBindings] = None,
+ cancel_callback: Optional[Callable[[], None]] = None,
file: Optional[TextIO] = None,
color_depth: Optional[ColorDepth] = None,
output: Optional[Output] = None,
@@ -134,6 +142,20 @@
self.counters: List[ProgressBarCounter[object]] = []
self.style = style
self.key_bindings = key_bindings
+ self.cancel_callback = cancel_callback
+
+ # If no `cancel_callback` was given, and we're creating the progress
+ # bar from the main thread. Cancel by sending a `KeyboardInterrupt` to
+ # the main thread.
+ if (
+ self.cancel_callback is None
+ and threading.currentThread() == threading.main_thread()
+ ):
+
+ def keyboard_interrupt_to_main_thread() -> None:
+ os.kill(os.getpid(), signal.SIGINT)
+
+ self.cancel_callback = keyboard_interrupt_to_main_thread
# Note that we use __stderr__ as default error output, because that
# works best with `patch_stdout`.
@@ -143,7 +165,6 @@
self._thread: Optional[threading.Thread] = None
- self._loop = get_event_loop()
self._app_loop = new_event_loop()
self._has_sigwinch = False
self._app_started = threading.Event()
@@ -179,7 +200,7 @@
progress_controls = [
Window(
- content=_ProgressControl(self, f),
+ content=_ProgressControl(self, f, self.cancel_callback),
width=functools.partial(width_for_formatter, f),
)
for f in self.formatters
@@ -271,10 +292,15 @@
User control for the progress bar.
"""
- def __init__(self, progress_bar: ProgressBar, formatter: Formatter) ->
None:
+ def __init__(
+ self,
+ progress_bar: ProgressBar,
+ formatter: Formatter,
+ cancel_callback: Optional[Callable[[], None]],
+ ) -> None:
self.progress_bar = progress_bar
self.formatter = formatter
- self._key_bindings = create_key_bindings()
+ self._key_bindings = create_key_bindings(cancel_callback)
def create_content(self, width: int, height: int) -> UIContent:
items: List[StyleAndTextTuples] = []
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/prompt_toolkit-3.0.31/src/prompt_toolkit.egg-info/PKG-INFO
new/prompt_toolkit-3.0.32/src/prompt_toolkit.egg-info/PKG-INFO
--- old/prompt_toolkit-3.0.31/src/prompt_toolkit.egg-info/PKG-INFO
2022-09-02 11:00:33.000000000 +0200
+++ new/prompt_toolkit-3.0.32/src/prompt_toolkit.egg-info/PKG-INFO
2022-11-03 17:32:01.000000000 +0100
@@ -1,9 +1,11 @@
Metadata-Version: 2.1
Name: prompt-toolkit
-Version: 3.0.31
+Version: 3.0.32
Summary: Library for building powerful interactive command lines in Python
Home-page: https://github.com/prompt-toolkit/python-prompt-toolkit
Author: Jonathan Slenders
+License: UNKNOWN
+Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
@@ -179,3 +181,5 @@
.. |Codecov| image::
https://codecov.io/gh/prompt-toolkit/python-prompt-toolkit/branch/master/graphs/badge.svg?style=flat
:target: https://codecov.io/gh/prompt-toolkit/python-prompt-toolkit/
+
+