Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-pudb for openSUSE:Factory checked in at 2022-11-11 14:36:48 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-pudb (Old) and /work/SRC/openSUSE:Factory/.python-pudb.new.1597 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pudb" Fri Nov 11 14:36:48 2022 rev:10 rq:1035185 version:2022.1.3 Changes: -------- --- /work/SRC/openSUSE:Factory/python-pudb/python-pudb.changes 2022-10-14 15:42:06.843875795 +0200 +++ /work/SRC/openSUSE:Factory/.python-pudb.new.1597/python-pudb.changes 2022-11-11 14:36:54.526417466 +0100 @@ -1,0 +2,25 @@ +Wed Nov 9 17:18:38 UTC 2022 - Yogalakshmi Arunachalam <yarunacha...@suse.com> + +- Update to version 2022.1.3 + * Improve sidebar help + * Bump version to 2022.1.3 + * Remove reference to py.test in favor of pytest + * Bump versions of various github actions components + * Fix the midnight theme (#508) + * Remove old reference to master + * Implement "--continue" CLI arg (alias "-c") (#559) + * Save cwd and use for restart + * Fix setting of sys.path from name of script (closes gh-557) + * Fix zsh completion of `--pre-run` (#554) + * Support more shells by shtab + * Ignore B024 for abstract base classes with in var_view + * Add zsh completion support for `--pre-run` + * Generate zsh completion script automatically + * Fix test_executable_lines for Python 3.11 + * Fix critical bug when re-entering IPython 8.0.0 (and later) external shell (#533) + * Get terminal size using os.get_terminal_size() (#536) + * Close tty file when dne querying terminal info + * Close history file after reading + * makedirs(exist_ok=True) during config path finding + +------------------------------------------------------------------- Old: ---- pudb-2022.1.2.tar.gz New: ---- pudb-2022.1.3.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-pudb.spec ++++++ --- /var/tmp/diff_new_pack.DJNMa8/_old 2022-11-11 14:36:54.982419701 +0100 +++ /var/tmp/diff_new_pack.DJNMa8/_new 2022-11-11 14:36:54.986419720 +0100 @@ -22,7 +22,7 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} %define skip_python2 1 Name: python-pudb -Version: 2022.1.2 +Version: 2022.1.3 Release: 0 Summary: A full-screen, console-based Python debugger License: MIT ++++++ pudb-2022.1.2.tar.gz -> pudb-2022.1.3.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pudb-2022.1.2/PKG-INFO new/pudb-2022.1.3/PKG-INFO --- old/pudb-2022.1.2/PKG-INFO 2022-07-19 16:26:34.832047000 +0200 +++ new/pudb-2022.1.3/PKG-INFO 2022-11-03 17:35:56.721594300 +0100 @@ -1,6 +1,6 @@ -Metadata-Version: 1.2 +Metadata-Version: 2.1 Name: pudb -Version: 2022.1.2 +Version: 2022.1.3 Summary: A full-screen, console-based Python debugger Home-page: UNKNOWN Author: Andreas Kloeckner @@ -115,3 +115,4 @@ Classifier: Topic :: Terminals Classifier: Topic :: Utilities Requires-Python: ~=3.6 +Provides-Extra: completion diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pudb-2022.1.2/examples/theme.py new/pudb-2022.1.3/examples/theme.py --- old/pudb-2022.1.2/examples/theme.py 2021-12-28 18:43:14.000000000 +0100 +++ new/pudb-2022.1.3/examples/theme.py 2022-10-14 21:05:40.000000000 +0200 @@ -15,7 +15,7 @@ # "setting_name": (foreground_color, background_color), # See pudb/theme.py -# (https://github.com/inducer/pudb/blob/master/pudb/theme.py) to see what keys +# (https://github.com/inducer/pudb/blob/main/pudb/theme.py) to see what keys # there are. # Note, be sure to test your theme in both curses and raw mode (see the bottom diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pudb-2022.1.2/pudb/__init__.py new/pudb-2022.1.3/pudb/__init__.py --- old/pudb-2022.1.2/pudb/__init__.py 2022-07-19 16:25:34.000000000 +0200 +++ new/pudb-2022.1.3/pudb/__init__.py 2022-11-03 17:32:54.000000000 +0100 @@ -28,7 +28,7 @@ import sys -NUM_VERSION = (2022, 1, 2) +NUM_VERSION = (2022, 1, 3) VERSION = ".".join(str(nv) for nv in NUM_VERSION) __version__ = VERSION @@ -80,6 +80,7 @@ kwargs.setdefault("stdin", tty_file) kwargs.setdefault("stdout", tty_file) kwargs.setdefault("term_size", term_size) + tty_file.close() from pudb.debugger import Debugger dbg = Debugger(**kwargs) @@ -105,8 +106,11 @@ def runscript(mainpyfile, args=None, pre_run="", steal_output=False, - run_as_module=False): - dbg = _get_debugger(steal_output=steal_output) + _continue_at_start=False, run_as_module=False): + dbg = _get_debugger( + steal_output=steal_output, + _continue_at_start=_continue_at_start, + ) # Note on saving/restoring sys.argv: it's a good idea when sys.argv was # modified by the script being debugged. It's a bad idea when it was @@ -122,11 +126,17 @@ sys.argv = [mainpyfile] + args # replace pudb's dir with script's dir in front of module search path. - from os.path import dirname + from pathlib import Path prev_sys_path = sys.path[:] - sys.path[0] = dirname(mainpyfile) + sys.path[0] = str(Path(mainpyfile).resolve().parent) + + import os + cwd = os.getcwd() while True: + # Script may have changed directory. Restore cwd before restart. + os.chdir(cwd) + if pre_run: from subprocess import call retcode = call(pre_run, close_fds=True, shell=True) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pudb-2022.1.2/pudb/_shtab.py new/pudb-2022.1.3/pudb/_shtab.py --- old/pudb-2022.1.2/pudb/_shtab.py 1970-01-01 01:00:00.000000000 +0100 +++ new/pudb-2022.1.3/pudb/_shtab.py 2022-10-14 21:05:35.000000000 +0200 @@ -0,0 +1,8 @@ +FILE = None +DIRECTORY = DIR = None + + +def add_argument_to(parser, *args, **kwargs): + from argparse import Action + Action.complete = None + return parser diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pudb-2022.1.2/pudb/debugger.py new/pudb-2022.1.3/pudb/debugger.py --- old/pudb-2022.1.2/pudb/debugger.py 2022-07-19 16:25:19.000000000 +0200 +++ new/pudb-2022.1.3/pudb/debugger.py 2022-11-03 17:35:14.000000000 +0100 @@ -183,7 +183,7 @@ _current_debugger = [] def __init__(self, stdin=None, stdout=None, term_size=None, steal_output=False, - **kwargs): + _continue_at_start=False, **kwargs): if Debugger._current_debugger: raise ValueError("a Debugger instance already exists") @@ -193,6 +193,7 @@ bdb.Bdb.__init__(self, **kwargs) self.ui = DebuggerUI(self, stdin=stdin, stdout=stdout, term_size=term_size) self.steal_output = steal_output + self._continue_at_start__setting = _continue_at_start self.setup_state() @@ -304,6 +305,7 @@ self.bottom_frame = None self.mainpyfile = "" self._wait_for_mainpyfile = False + self._continue_at_start = self._continue_at_start__setting self.current_bp = None self.post_mortem = False # Mapping of (filename, lineno) to bool. If True, will stop on the @@ -442,12 +444,8 @@ if "__exc_tuple__" in frame.f_locals: del frame.f_locals["__exc_tuple__"] - if self._wait_for_mainpyfile: - if (self.mainpyfile != self.canonic(frame.f_code.co_filename) - or frame.f_lineno <= 0): - return - self._wait_for_mainpyfile = False - self.bottom_frame = frame + if self._waiting_for_mainpyfile(frame): + return if self.get_break(self.canonic(frame.f_code.co_filename), frame.f_lineno): self.current_bp = ( @@ -466,15 +464,24 @@ if frame.f_code.co_name != "<module>": frame.f_locals["__return__"] = return_value + if self._waiting_for_mainpyfile(frame): + return + + if "__exc_tuple__" not in frame.f_locals: + self.interaction(frame) + + def _waiting_for_mainpyfile(self, frame): if self._wait_for_mainpyfile: if (self.mainpyfile != self.canonic(frame.f_code.co_filename) or frame.f_lineno <= 0): - return + return True self._wait_for_mainpyfile = False self.bottom_frame = frame - - if "__exc_tuple__" not in frame.f_locals: - self.interaction(frame) + if self._continue_at_start: + self._continue_at_start = False + self.set_continue() + return True + return False def user_exception(self, frame, exc_tuple): """This function is called if an exception occurs, @@ -506,7 +513,7 @@ # events depends on python version). So we take special measures to # avoid stopping before we reach the main script (see user_line and # user_call for details). - self._wait_for_mainpyfile = 1 + self._wait_for_mainpyfile = True self.mainpyfile = self.canonic(filename) statement = 'exec(compile(open("{}").read(), "{}", "exec"))'.format( filename, filename) @@ -842,7 +849,8 @@ try: # Load global history if present - return open(path, "r").read().splitlines() + with open(path, "r") as histfile: + return histfile.read().splitlines() except FileNotFoundError: return [] @@ -2442,7 +2450,7 @@ self.message("Package 'pygments' not found. " "Syntax highlighting disabled.") - WELCOME_LEVEL = "e043" # noqa + WELCOME_LEVEL = "e044" # noqa if CONFIG["seen_welcome"] < WELCOME_LEVEL: CONFIG["seen_welcome"] = WELCOME_LEVEL from pudb import VERSION @@ -2459,6 +2467,12 @@ "(invoked by hitting '?' after this message) should get you " "on your way.\n" + "\nChanges in version 2022.1.3:\n\n" + "- Fix finding executable lines for Python 3.11 (Lumir Balhar)\n" + "- Fix the midnight theme (Aaron Meurer)\n" + "- Add a --continue flag (Michael van der Kamp)\n" + "- Various fixes\n" + "\nChanges in version 2022.1.2:\n\n" "- Various fixes\n" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pudb-2022.1.2/pudb/forked.py new/pudb-2022.1.3/pudb/forked.py --- old/pudb-2022.1.2/pudb/forked.py 2021-03-26 23:10:38.000000000 +0100 +++ new/pudb-2022.1.3/pudb/forked.py 2022-10-14 21:05:35.000000000 +0200 @@ -1,7 +1,5 @@ import sys -import fcntl -import termios -import struct +import os from pudb.debugger import Debugger @@ -18,11 +16,8 @@ if term_size is None: try: # Getting terminal size - s = struct.unpack( - "hh", - fcntl.ioctl(1, termios.TIOCGWINSZ, "1234"), - ) - term_size = (s[1], s[0]) + s = os.get_terminal_size() + term_size = (s.columns, s.lines) except Exception: term_size = (80, 24) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pudb-2022.1.2/pudb/remote.py new/pudb-2022.1.3/pudb/remote.py --- old/pudb-2022.1.2/pudb/remote.py 2022-01-07 18:44:27.000000000 +0100 +++ new/pudb-2022.1.3/pudb/remote.py 2022-10-14 21:05:35.000000000 +0200 @@ -40,9 +40,6 @@ import os import socket import sys -import fcntl -import termios -import struct import atexit from typing import Callable, Any @@ -118,8 +115,8 @@ if term_size is None: try: - s = struct.unpack("hh", fcntl.ioctl(1, termios.TIOCGWINSZ, "1234")) - term_size = (s[1], s[0]) + s = os.get_terminal_size() + term_size = (s.columns, s.lines) except Exception: term_size = (80, 24) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pudb-2022.1.2/pudb/run.py new/pudb-2022.1.3/pudb/run.py --- old/pudb-2022.1.2/pudb/run.py 2022-07-19 16:08:13.000000000 +0200 +++ new/pudb-2022.1.3/pudb/run.py 2022-10-14 21:05:40.000000000 +0200 @@ -1,21 +1,45 @@ -def main(): +COMMAND = {"zsh": "{_command_names -e}"} +PREAMBLE = { + "zsh": """\ +_script_args() { + _arguments -S -s '(-)1:script_args:_files -g "*.py"' '*: :_files' +} +""", +} +SCRIPT_ARGS = {"zsh": "_script_args"} + + +def get_argparse_parser(): import os import sys import argparse + try: + import shtab + except ImportError: + from . import _shtab as shtab from pudb import VERSION - version_info = "pudb:%(prog)s v" + VERSION + version_info = "%(prog)s v" + VERSION if sys.argv[1:] == ["-v"]: - print(version_info % {"prog": os.path.basename(__file__)}) + print(version_info % {"prog": "pudb"}) sys.exit(os.EX_OK) parser = argparse.ArgumentParser( + "pudb", usage="%(prog)s [options] [-m] SCRIPT-OR-MODULE-TO-RUN [SCRIPT_ARGS]", epilog=version_info ) - parser.add_argument("-s", "--steal-output", action="store_true"), + shtab.add_argument_to(parser, preamble=PREAMBLE) + # dest="_continue_at_start" needed as "continue" is a python keyword + parser.add_argument( + "-c", "--continue", + action="store_true", + dest="_continue_at_start", + help="Let the script run until an exception occurs or a breakpoint is hit", + ) + parser.add_argument("-s", "--steal-output", action="store_true") # note: we're implementing -m as a boolean flag, mimicking pdb's behavior, # and makes it possible without much fuss to support cases like: @@ -25,13 +49,22 @@ help="Debug as module or package instead of as a script") parser.add_argument("-le", "--log-errors", nargs=1, metavar="FILE", - help="Log internal errors to the given file") + help="Log internal errors to the given file" + ).complete = shtab.FILE parser.add_argument("--pre-run", metavar="COMMAND", help="Run command before each program run", - default="") + default="").complete = COMMAND parser.add_argument("--version", action="version", version=version_info) parser.add_argument("script_args", nargs=argparse.REMAINDER, - help="Arguments to pass to script or module") + help="Arguments to pass to script or module" + ).complete = SCRIPT_ARGS + return parser + + +def main(**kwargs): + import sys + + parser = get_argparse_parser() options = parser.parse_args() args = options.script_args @@ -43,6 +76,7 @@ options_kwargs = { "pre_run": options.pre_run, "steal_output": options.steal_output, + "_continue_at_start": options._continue_at_start, } if len(args) < 1: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pudb-2022.1.2/pudb/settings.py new/pudb-2022.1.3/pudb/settings.py --- old/pudb-2022.1.2/pudb/settings.py 2022-07-19 16:24:26.000000000 +0200 +++ new/pudb-2022.1.3/pudb/settings.py 2022-10-14 21:05:35.000000000 +0200 @@ -44,12 +44,12 @@ def get_save_config_path(): + # This may not raise, as it is called during import. if not XDG_CONFIG_HOME: return None path = os.path.join(XDG_CONFIG_HOME, XDG_CONF_RESOURCE) - if not os.path.isdir(path): - os.makedirs(path, mode=0o700) + os.makedirs(path, mode=0o700, exist_ok=True) return path @@ -65,6 +65,8 @@ def load_config(): + # This may not raise, as it is called during import. + # Only ever do this once if _config_[0] is not None: return _config_[0] @@ -136,6 +138,8 @@ def save_config(conf_dict): + # This may not raise, as it is called during import. + from os.path import join cparser = ConfigParser() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pudb-2022.1.2/pudb/shell.py new/pudb-2022.1.3/pudb/shell.py --- old/pudb-2022.1.2/pudb/shell.py 2022-05-27 01:41:41.000000000 +0200 +++ new/pudb-2022.1.3/pudb/shell.py 2022-10-14 21:05:35.000000000 +0200 @@ -220,7 +220,17 @@ args.append(banner) else: print(banner) + + # XXX Quick and dirty way to fix issues with IPython 8.0.0+, introduced + # by commit 08d54c0e367b535fd88aca5273fd09e5e70d08f8. + # Setting _atexit_once_called = True will prevent call to + # IPython.core.interactiveshell.InteractiveShell._atexit_once() from inside + # IPython.terminal.interactiveshell.TerminalInteractiveShell.mainloop() + # This allows us to repeatedly re-call mainloop() and the whole + # run_ipython_shell_v11() function + shell._atexit_once_called = True shell.mainloop(*args) + del shell._atexit_once_called # Restore originating namespace _update_ipython_ns(shell, old_globals, old_locals) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pudb-2022.1.2/pudb/theme.py new/pudb-2022.1.3/pudb/theme.py --- old/pudb-2022.1.2/pudb/theme.py 2022-02-16 23:58:51.000000000 +0100 +++ new/pudb-2022.1.3/pudb/theme.py 2022-10-14 21:05:40.000000000 +0200 @@ -469,57 +469,90 @@ palette_dict = { # {{{ base styles "background": ("black", "light gray"), - "selectable": ("light gray", "black"), - "focused selectable": ("black", "light green"), - "hotkey": (add_setting("black", "underline"), "light gray"), - "highlighted": ("black", "brown"), + "selectable": ("white", "black"), + "focused selectable": ("white", "dark blue"), + "hotkey": (add_setting("black", "underline, italics"), "light gray"), + "highlighted": ("black", "dark green"), # }}} # {{{ general ui - "focused sidebar": (add_setting("black", "bold"), "light gray"), - "group head": (add_setting("black", "bold"), "light gray"), - "warning": (add_setting("light red", "bold"), "black"), - "header warning": (add_setting("light red", "bold"), "light gray"), - "dialog title": ("black", "dark green"), - "fixed value": ("white", "dark gray"), + "input": ("light green", "black"), + "focused input": ("light green", "black"), + "warning": (add_setting("white", "bold"), "dark red"), + "dialog title": (add_setting("white", "bold"), "dark blue"), + "group head": (add_setting("dark blue", "bold"), "light gray"), + "button": (add_setting("white", "bold"), "dark blue"), + "focused button": ("white", "black"), + "focused sidebar": ("black", "white"), + "value": (add_setting("yellow", "bold"), "dark blue"), # }}} # {{{ source view - "current source": ("black", "dark cyan"), - "breakpoint source": ("white", "dark gray"), - "line number": (add_setting("dark gray", "bold"), "black"), - "breakpoint marker": ( - add_setting("light red", "bold"), "black"), - "current line marker": ("dark cyan", "black"), + "source": ("light green", "black"), + "highlighted source": ("black", "dark green"), + "current source": ("black", "brown"), + "current focused source": (add_setting("yellow", "bold"), "dark blue"), + "breakpoint source": (add_setting("yellow", "bold"), "dark red"), + "current breakpoint source": ("black", "dark red"), + + "line number": ("light gray", "black"), + "current line marker": ("dark red", "black"), + "breakpoint marker": ("dark red", "black"), # }}} # {{{ sidebar - "sidebar two": ("dark green", "black"), - "sidebar three": ("yellow", "black"), - "focused sidebar three": ("dark gray", "light green"), + "sidebar two": ("light blue", "black"), + "sidebar three": ("light cyan", "black"), # }}} # {{{ variables view - "return label": ("black", "dark green"), - "focused return label": ("black", "dark green"), + "return label": ("white", "dark blue"), + "return value": ("black", "dark cyan"), + "focused return label": ("light gray", "dark blue"), # }}} # {{{ stack - "current frame name": ( - add_setting("light gray", "bold"), "black"), + "current frame name": (add_setting("white", "bold"), "black"), + "current frame class": (add_setting("light blue", "bold"), "black"), + "current frame location": (add_setting("light cyan", "bold"), "black"), + + "focused current frame name": ( + add_setting("white", "bold"), "dark blue"), + "focused current frame class": ( + add_setting("white", "bold"), "dark blue"), + "focused current frame location": ( + add_setting("white", "bold"), "dark blue"), + # }}} + # {{{ breakpoints view + "breakpoint": ("white", "black"), + "disabled breakpoint": ("dark gray", "black"), + "focused disabled breakpoint": ("light gray", "dark blue"), + "current breakpoint": (add_setting("white", "bold"), "black"), + "disabled current breakpoint": ( + add_setting("dark gray", "bold"), "black"), + "focused current breakpoint": ( + add_setting("white", "bold"), "dark blue"), + "focused disabled current breakpoint": ( + add_setting("light gray", "bold"), "dark blue"), # }}} # {{{ shell - "command line prompt": ( - add_setting("white", "bold"), "black"), - "command line output": ("yellow", "black"), - "command line input": ( - add_setting("white", "bold"), "black"), + "command line edit": ("white", "black"), + "command line prompt": (add_setting("white", "bold"), "black"), + + "command line input": ("white", "black"), + "command line error": (add_setting("light red", "bold"), "black"), + + "command line clear button": (add_setting("white", "bold"), "black"), + "command line focused button": ("white", "dark blue"), # }}} # {{{ Code syntax "keyword": ("dark magenta", "black"), - "keyword2": (add_setting("light magenta", "bold"), "black"), - "pseudo": ("dark magenta", "black"), - "function": (add_setting("light cyan", "bold"), "black"), - "builtin": ("dark cyan", "black"), - "literal": (add_setting("light blue", "bold"), "black"), - "string": ("light red", "black"), - "exception": (add_setting("light red", "bold"), "black"), - "comment": ("dark green", "black"), + "operator": ("dark green", "black"), + "pseudo": ("light magenta", "black"), + "function": (add_setting("light blue", "bold"), "black"), + "builtin": ("dark gray", "black"), + "literal": ("dark cyan", "black"), + "string": ("dark red", "black"), + "docstring": ("yellow", "black"), + "backtick": ("dark green", "black"), + "punctuation": ("white", "black"), + "comment": ("white", "black"), + "exception": ("dark green", "black"), # }}} } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pudb-2022.1.2/pudb/var_view.py new/pudb-2022.1.3/pudb/var_view.py --- old/pudb-2022.1.2/pudb/var_view.py 2022-05-27 00:22:12.000000000 +0200 +++ new/pudb-2022.1.3/pudb/var_view.py 2022-10-14 21:05:35.000000000 +0200 @@ -47,7 +47,7 @@ # {{{ abstract base classes for containers -class PudbCollection(ABC): +class PudbCollection(ABC): # noqa: B024 @classmethod def __subclasshook__(cls, c): if cls is PudbCollection: @@ -80,7 +80,7 @@ return len(collection) -class PudbSequence(ABC): +class PudbSequence(ABC): # noqa: B024 @classmethod def __subclasshook__(cls, c): if cls is PudbSequence: @@ -113,7 +113,7 @@ return len(sequence) -class PudbMapping(ABC): +class PudbMapping(ABC): # noqa: B024 @classmethod def __subclasshook__(cls, c): if cls is PudbMapping: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pudb-2022.1.2/pudb.egg-info/PKG-INFO new/pudb-2022.1.3/pudb.egg-info/PKG-INFO --- old/pudb-2022.1.2/pudb.egg-info/PKG-INFO 2022-07-19 16:26:34.000000000 +0200 +++ new/pudb-2022.1.3/pudb.egg-info/PKG-INFO 2022-11-03 17:35:56.000000000 +0100 @@ -1,6 +1,6 @@ -Metadata-Version: 1.2 +Metadata-Version: 2.1 Name: pudb -Version: 2022.1.2 +Version: 2022.1.3 Summary: A full-screen, console-based Python debugger Home-page: UNKNOWN Author: Andreas Kloeckner @@ -115,3 +115,4 @@ Classifier: Topic :: Terminals Classifier: Topic :: Utilities Requires-Python: ~=3.6 +Provides-Extra: completion diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pudb-2022.1.2/pudb.egg-info/SOURCES.txt new/pudb-2022.1.3/pudb.egg-info/SOURCES.txt --- old/pudb-2022.1.2/pudb.egg-info/SOURCES.txt 2022-07-19 16:26:34.000000000 +0200 +++ new/pudb-2022.1.3/pudb.egg-info/SOURCES.txt 2022-11-03 17:35:56.000000000 +0100 @@ -25,6 +25,7 @@ manual-tests/test-postmortem.py pudb/__init__.py pudb/__main__.py +pudb/_shtab.py pudb/b.py pudb/debugger.py pudb/forked.py diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pudb-2022.1.2/pudb.egg-info/entry_points.txt new/pudb-2022.1.3/pudb.egg-info/entry_points.txt --- old/pudb-2022.1.2/pudb.egg-info/entry_points.txt 2022-07-19 16:26:34.000000000 +0200 +++ new/pudb-2022.1.3/pudb.egg-info/entry_points.txt 2022-11-03 17:35:56.000000000 +0100 @@ -1,5 +1,5 @@ [console_scripts] -pudb3 = pudb.run:main +pudb = pudb.run:main [gui_script] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pudb-2022.1.2/pudb.egg-info/requires.txt new/pudb-2022.1.3/pudb.egg-info/requires.txt --- old/pudb-2022.1.2/pudb.egg-info/requires.txt 2022-07-19 16:26:34.000000000 +0200 +++ new/pudb-2022.1.3/pudb.egg-info/requires.txt 2022-11-03 17:35:56.000000000 +0100 @@ -6,3 +6,6 @@ [:python_version < "3.7"] dataclasses>=0.7 + +[completion] +shtab diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pudb-2022.1.2/setup.py new/pudb-2022.1.3/setup.py --- old/pudb-2022.1.2/setup.py 2022-02-16 23:57:06.000000000 +0100 +++ new/pudb-2022.1.3/setup.py 2022-10-14 21:05:35.000000000 +0200 @@ -3,8 +3,6 @@ from setuptools import setup from pudb import VERSION -import sys - try: readme = open("README.rst") long_description = str(readme.read()) @@ -27,6 +25,7 @@ "packaging>=20.0", "dataclasses>=0.7;python_version<'3.7'", ], + extras_require={"completion": ["shtab"]}, test_requires=[ "pytest>=2", "pytest-mock", @@ -54,7 +53,7 @@ entry_points={ "console_scripts": [ # Deprecated. Should really use python -m pudb. - "pudb3 = pudb.run:main", + "pudb = pudb.run:main", ], "gui_script": [], }, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pudb-2022.1.2/test/test_lowlevel.py new/pudb-2022.1.3/test/test_lowlevel.py --- old/pudb-2022.1.2/test/test_lowlevel.py 2021-03-26 23:10:38.000000000 +0100 +++ new/pudb-2022.1.3/test/test_lowlevel.py 2022-10-14 21:05:35.000000000 +0200 @@ -1,3 +1,5 @@ +import sys + from pudb.lowlevel import detect_encoding, decode_lines @@ -76,20 +78,30 @@ main() """ + expected = {1, 2, 3, 4, 6, 8} + if sys.version_info >= (3, 11): + # See https://github.com/python/cpython/pull/94562 and + # https://peps.python.org/pep-0626/ + expected |= {0} - assert get_exec_lines(test_code) == {1, 2, 3, 4, 6, 8} + assert get_exec_lines(test_code) == expected test_code = "a = 3*5\n" + 333 * "\n" + "b = 15" - assert get_exec_lines(test_code) == { + expected = { 1, 128, # bogus, 255, # bogus, 335 - } + } + if sys.version_info >= (3, 11): + # See https://github.com/python/cpython/pull/94562 and + # https://peps.python.org/pep-0626/ + expected |= {0} + + assert get_exec_lines(test_code) == expected if __name__ == "__main__": - import sys if len(sys.argv) > 1: exec(sys.argv[1]) else: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pudb-2022.1.2/test/test_make_canvas.py new/pudb-2022.1.3/test/test_make_canvas.py --- old/pudb-2022.1.2/test/test_make_canvas.py 2021-03-26 23:10:38.000000000 +0100 +++ new/pudb-2022.1.3/test/test_make_canvas.py 2022-11-03 17:05:40.000000000 +0100 @@ -67,5 +67,5 @@ if len(sys.argv) > 1: exec(sys.argv[1]) else: - from py.test.cmdline import main + from pytest import main main([__file__]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pudb-2022.1.2/test/test_run.py new/pudb-2022.1.3/test/test_run.py --- old/pudb-2022.1.2/test/test_run.py 2022-07-19 16:08:13.000000000 +0200 +++ new/pudb-2022.1.3/test/test_run.py 2022-10-14 21:05:35.000000000 +0200 @@ -30,7 +30,7 @@ captured = capsys.readouterr() - assert "pudb:run.py v" in captured.out + assert "pudb v" in captured.out def test_main_v_with_args(capsys, mocker):