Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-PyMsgBox for openSUSE:Factory checked in at 2022-08-30 14:50:33 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-PyMsgBox (Old) and /work/SRC/openSUSE:Factory/.python-PyMsgBox.new.2083 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "python-PyMsgBox" Tue Aug 30 14:50:33 2022 rev:5 rq:1000172 version:1.0.9 Changes: -------- --- /work/SRC/openSUSE:Factory/python-PyMsgBox/python-PyMsgBox.changes 2019-09-25 08:40:38.470285572 +0200 +++ /work/SRC/openSUSE:Factory/.python-PyMsgBox.new.2083/python-PyMsgBox.changes 2022-08-30 14:51:20.536405533 +0200 @@ -1,0 +2,8 @@ +Sun Aug 28 22:33:36 UTC 2022 - Yogalakshmi Arunachalam <yarunachalam@suse.com> + +- Update to 1.0.9 + * no upstream changelog +- Update to 1.0.8 + * Text is automatically converted to string with str() + +------------------------------------------------------------------- Old: ---- PyMsgBox-1.0.7.tar.gz New: ---- PyMsgBox-1.0.9.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-PyMsgBox.spec ++++++ --- /var/tmp/diff_new_pack.obAwee/_old 2022-08-30 14:51:20.940406563 +0200 +++ /var/tmp/diff_new_pack.obAwee/_new 2022-08-30 14:51:20.948406584 +0200 @@ -1,7 +1,7 @@ # # spec file for package python-PyMsgBox # -# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2022 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -18,7 +18,7 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} Name: python-PyMsgBox -Version: 1.0.7 +Version: 1.0.9 Release: 0 Summary: A Python module for JavaScript-like message boxes License: BSD-3-Clause ++++++ PyMsgBox-1.0.7.tar.gz -> PyMsgBox-1.0.9.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/PyMsgBox-1.0.7/PKG-INFO new/PyMsgBox-1.0.9/PKG-INFO --- old/PyMsgBox-1.0.7/PKG-INFO 2019-06-18 20:19:48.834768500 +0200 +++ new/PyMsgBox-1.0.9/PKG-INFO 2020-10-11 03:51:28.239751000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: PyMsgBox -Version: 1.0.7 +Version: 1.0.9 Summary: A simple, cross-platform, pure Python module for JavaScript-like message boxes. Home-page: https://github.com/asweigart/pymsgbox Author: Al Sweigart @@ -48,4 +48,5 @@ Classifier: Programming Language :: Python :: 3.6 Classifier: Programming Language :: Python :: 3.7 Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 Description-Content-Type: text/markdown diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/PyMsgBox-1.0.7/setup.py new/PyMsgBox-1.0.9/setup.py --- old/PyMsgBox-1.0.7/setup.py 2019-06-18 05:43:15.000000000 +0200 +++ new/PyMsgBox-1.0.9/setup.py 2020-10-11 03:50:33.000000000 +0200 @@ -33,6 +33,7 @@ 'Programming Language :: Python :: 3.5', 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', - 'Programming Language :: Python :: 3.8' + 'Programming Language :: Python :: 3.8', + 'Programming Language :: Python :: 3.9', ], ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/PyMsgBox-1.0.7/src/PyMsgBox.egg-info/PKG-INFO new/PyMsgBox-1.0.9/src/PyMsgBox.egg-info/PKG-INFO --- old/PyMsgBox-1.0.7/src/PyMsgBox.egg-info/PKG-INFO 2019-06-18 20:19:48.000000000 +0200 +++ new/PyMsgBox-1.0.9/src/PyMsgBox.egg-info/PKG-INFO 2020-10-11 03:51:27.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: PyMsgBox -Version: 1.0.7 +Version: 1.0.9 Summary: A simple, cross-platform, pure Python module for JavaScript-like message boxes. Home-page: https://github.com/asweigart/pymsgbox Author: Al Sweigart @@ -48,4 +48,5 @@ Classifier: Programming Language :: Python :: 3.6 Classifier: Programming Language :: Python :: 3.7 Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 Description-Content-Type: text/markdown diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/PyMsgBox-1.0.7/src/PyMsgBox.egg-info/SOURCES.txt new/PyMsgBox-1.0.9/src/PyMsgBox.egg-info/SOURCES.txt --- old/PyMsgBox-1.0.7/src/PyMsgBox.egg-info/SOURCES.txt 2019-06-18 20:19:48.000000000 +0200 +++ new/PyMsgBox-1.0.9/src/PyMsgBox.egg-info/SOURCES.txt 2020-10-11 03:51:27.000000000 +0200 @@ -1,6 +1,7 @@ MANIFEST.in README.md code_of_conduct.md +pyproject.toml setup.py docs/Makefile docs/basics.rst diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/PyMsgBox-1.0.7/src/pymsgbox/__init__.py new/PyMsgBox-1.0.9/src/pymsgbox/__init__.py --- old/PyMsgBox-1.0.7/src/pymsgbox/__init__.py 2019-06-18 07:14:38.000000000 +0200 +++ new/PyMsgBox-1.0.9/src/pymsgbox/__init__.py 2020-10-11 03:50:42.000000000 +0200 @@ -1,7 +1,7 @@ # PyMsgBox - A simple, cross-platform, pure Python module for JavaScript-like message boxes. # By Al Sweigart al@inventwithpython.com -__version__ = '1.0.7' +__version__ = "1.0.9" # Modified BSD License # Derived from Stephen Raymond Ferg's EasyGui http://easygui.sourceforge.net/ @@ -36,6 +36,7 @@ """ import sys + RUNNING_PYTHON_2 = sys.version_info[0] == 2 # Because PyAutoGUI requires PyMsgBox but might be installed on systems @@ -50,38 +51,43 @@ else: import tkinter as tk - rootWindowPosition = '+300+200' + rootWindowPosition = "+300+200" - if tk.TkVersion < 8.0 : - raise RuntimeError('You are running Tk version: ' + str(tk.TkVersion) + 'You must be using Tk version 8.0 or greater to use PyMsgBox.') + if tk.TkVersion < 8.0: + raise RuntimeError( + "You are running Tk version: " + + str(tk.TkVersion) + + "You must be using Tk version 8.0 or greater to use PyMsgBox." + ) except ImportError: TKINTER_IMPORT_SUCCEEDED = False +PROPORTIONAL_FONT_FAMILY = ("MS", "Sans", "Serif") +MONOSPACE_FONT_FAMILY = "Courier" -PROPORTIONAL_FONT_FAMILY = ('MS', 'Sans', 'Serif') -MONOSPACE_FONT_FAMILY = ('Courier') - -PROPORTIONAL_FONT_SIZE = 10 -MONOSPACE_FONT_SIZE = 9 #a little smaller, because it it more legible at a smaller size -TEXT_ENTRY_FONT_SIZE = 12 # a little larger makes it easier to see +PROPORTIONAL_FONT_SIZE = 10 +MONOSPACE_FONT_SIZE = ( + 9 +) # a little smaller, because it it more legible at a smaller size +TEXT_ENTRY_FONT_SIZE = 12 # a little larger makes it easier to see -STANDARD_SELECTION_EVENTS = ['Return', 'Button-1', 'space'] +STANDARD_SELECTION_EVENTS = ["Return", "Button-1", "space"] # constants for strings: (TODO: for internationalization, change these) -OK_TEXT = 'OK' -CANCEL_TEXT = 'Cancel' -YES_TEXT = 'Yes' -NO_TEXT = 'No' -RETRY_TEXT = 'Retry' -ABORT_TEXT = 'Abort' -IGNORE_TEXT = 'Ignore' -TRY_AGAIN_TEXT = 'Try Again' -CONTINUE_TEXT = 'Continue' +OK_TEXT = "OK" +CANCEL_TEXT = "Cancel" +YES_TEXT = "Yes" +NO_TEXT = "No" +RETRY_TEXT = "Retry" +ABORT_TEXT = "Abort" +IGNORE_TEXT = "Ignore" +TRY_AGAIN_TEXT = "Try Again" +CONTINUE_TEXT = "Continue" -TIMEOUT_RETURN_VALUE = 'Timeout' +TIMEOUT_RETURN_VALUE = "Timeout" # Initialize some global variables that will be reset later __choiceboxMultipleSelect = None @@ -90,8 +96,8 @@ __choiceboxResults = None __firstWidget = None __enterboxText = None -__enterboxDefaultText='' -__multenterboxText = '' +__enterboxDefaultText = "" +__multenterboxText = "" choiceboxChoices = None choiceboxWidget = None entryWidget = None @@ -99,50 +105,72 @@ buttonsFrame = None - - - -def _alertTkinter(text='', title='', button=OK_TEXT, root=None, timeout=None): +def _alertTkinter(text="", title="", button=OK_TEXT, root=None, timeout=None): """Displays a simple message box with text and a single OK button. Returns the text of the button clicked on.""" - assert TKINTER_IMPORT_SUCCEEDED, 'Tkinter is required for pymsgbox' - retVal = _buttonbox(msg=text, title=title, choices=[str(button)], root=root, timeout=timeout) + assert TKINTER_IMPORT_SUCCEEDED, "Tkinter is required for pymsgbox" + text = str(text) + retVal = _buttonbox( + msg=text, title=title, choices=[str(button)], root=root, timeout=timeout + ) if retVal is None: return button else: return retVal + + alert = _alertTkinter -def _confirmTkinter(text='', title='', buttons=(OK_TEXT, CANCEL_TEXT), root=None, timeout=None): +def _confirmTkinter( + text="", title="", buttons=(OK_TEXT, CANCEL_TEXT), root=None, timeout=None +): """Displays a message box with OK and Cancel buttons. Number and text of buttons can be customized. Returns the text of the button clicked on.""" - assert TKINTER_IMPORT_SUCCEEDED, 'Tkinter is required for pymsgbox' - return _buttonbox(msg=text, title=title, choices=[str(b) for b in buttons], root=root, timeout=timeout) + assert TKINTER_IMPORT_SUCCEEDED, "Tkinter is required for pymsgbox" + text = str(text) + return _buttonbox( + msg=text, + title=title, + choices=[str(b) for b in buttons], + root=root, + timeout=timeout, + ) + + confirm = _confirmTkinter -def _promptTkinter(text='', title='' , default='', root=None, timeout=None): +def _promptTkinter(text="", title="", default="", root=None, timeout=None): """Displays a message box with text input, and OK & Cancel buttons. Returns the text entered, or None if Cancel was clicked.""" - assert TKINTER_IMPORT_SUCCEEDED, 'Tkinter is required for pymsgbox' - return __fillablebox(text, title, default=default, mask=None,root=root, timeout=timeout) + assert TKINTER_IMPORT_SUCCEEDED, "Tkinter is required for pymsgbox" + text = str(text) + return __fillablebox( + text, title, default=default, mask=None, root=root, timeout=timeout + ) + + prompt = _promptTkinter -def _passwordTkinter(text='', title='', default='', mask='*', root=None, timeout=None): +def _passwordTkinter(text="", title="", default="", mask="*", root=None, timeout=None): """Displays a message box with text input, and OK & Cancel buttons. Typed characters appear as *. Returns the text entered, or None if Cancel was clicked.""" - assert TKINTER_IMPORT_SUCCEEDED, 'Tkinter is required for pymsgbox' + assert TKINTER_IMPORT_SUCCEEDED, "Tkinter is required for pymsgbox" + text = str(text) return __fillablebox(text, title, default, mask=mask, root=root, timeout=timeout) + + password = _passwordTkinter # Load the native versions of the alert/confirm/prompt/password functions, if available: -if sys.platform == 'win32': +if sys.platform == "win32": from . import _native_win - NO_ICON = 0 - STOP = 0x10 + + NO_ICON = 0 + STOP = 0x10 QUESTION = 0x20 - WARNING = 0x30 - INFO = 0x40 - alert = _native_win.alert + WARNING = 0x30 + INFO = 0x40 + alert = _native_win.alert confirm = _native_win.confirm @@ -165,7 +193,6 @@ """ global boxRoot, __replyButtonText, __widgetTexts, buttonsFrame - # Initialize __replyButtonText to the first choice. # This is what will be used if the window is closed by the close button. __replyButtonText = choices[0] @@ -179,7 +206,7 @@ boxRoot.withdraw() boxRoot.title(title) - boxRoot.iconname('Dialog') + boxRoot.iconname("Dialog") boxRoot.geometry(rootWindowPosition) boxRoot.minsize(400, 100) @@ -194,7 +221,7 @@ # -------------------- place the widgets in the frames ----------------------- messageWidget = tk.Message(messageFrame, text=msg, width=400) messageWidget.configure(font=(PROPORTIONAL_FONT_FAMILY, PROPORTIONAL_FONT_SIZE)) - messageWidget.pack(side=tk.TOP, expand=tk.YES, fill=tk.X, padx='3m', pady='3m') + messageWidget.pack(side=tk.TOP, expand=tk.YES, fill=tk.X, padx="3m", pady="3m") __put_buttons_in_buttonframe(choices) @@ -212,7 +239,8 @@ if __replyButtonText != TIMEOUT_RETURN_VALUE: __replyButtonText = None - if root: root.deiconify() + if root: + root.deiconify() return __replyButtonText @@ -228,7 +256,9 @@ for buttonText in choices: tempButton = tk.Button(buttonsFrame, takefocus=1, text=buttonText) _bindArrows(tempButton) - tempButton.pack(expand=tk.YES, side=tk.LEFT, padx='1m', pady='1m', ipadx='2m', ipady='1m') + tempButton.pack( + expand=tk.YES, side=tk.LEFT, padx="1m", pady="1m", ipadx="2m", ipady="1m" + ) # remember the text associated with this widget __widgetTexts[tempButton] = buttonText @@ -239,46 +269,49 @@ i = 1 # for the commandButton, bind activation events to the activation event handler - commandButton = tempButton + commandButton = tempButton handler = __buttonEvent for selectionEvent in STANDARD_SELECTION_EVENTS: - commandButton.bind('<%s>' % selectionEvent, handler) + commandButton.bind("<%s>" % selectionEvent, handler) if CANCEL_TEXT in choices: - commandButton.bind('<Escape>', __cancelButtonEvent) + commandButton.bind("<Escape>", __cancelButtonEvent) def _bindArrows(widget, skipArrowKeys=False): - widget.bind('<Down>', _tabRight) - widget.bind('<Up>' , _tabLeft) + widget.bind("<Down>", _tabRight) + widget.bind("<Up>", _tabLeft) if not skipArrowKeys: - widget.bind('<Right>',_tabRight) - widget.bind('<Left>' , _tabLeft) + widget.bind("<Right>", _tabRight) + widget.bind("<Left>", _tabLeft) + def _tabRight(event): - boxRoot.event_generate('<Tab>') + boxRoot.event_generate("<Tab>") + def _tabLeft(event): - boxRoot.event_generate('<Shift-Tab>') + boxRoot.event_generate("<Shift-Tab>") def __buttonEvent(event): """ Handle an event that is generated by a person clicking a button. """ - global boxRoot, __widgetTexts, __replyButtonText + global boxRoot, __widgetTexts, __replyButtonText __replyButtonText = __widgetTexts[event.widget] - boxRoot.quit() # quit the main loop + boxRoot.quit() # quit the main loop + def __cancelButtonEvent(event): """Handle pressing Esc by clicking the Cancel button.""" - global boxRoot, __widgetTexts, __replyButtonText + global boxRoot, __widgetTexts, __replyButtonText __replyButtonText = CANCEL_TEXT boxRoot.quit() -def __fillablebox(msg, title='', default='', mask=None, root=None, timeout=None): +def __fillablebox(msg, title="", default="", mask=None, root=None, timeout=None): """ Show a box in which a user can enter some text. You may optionally specify some default text, which will appear in the @@ -290,11 +323,11 @@ global cancelButton, entryWidget, okButton if title == None: - title == '' + title == "" if default == None: - default = '' + default = "" __enterboxDefaultText = default - __enterboxText = __enterboxDefaultText + __enterboxText = __enterboxDefaultText if root: root.withdraw() @@ -305,9 +338,9 @@ boxRoot.withdraw() boxRoot.title(title) - boxRoot.iconname('Dialog') + boxRoot.iconname("Dialog") boxRoot.geometry(rootWindowPosition) - boxRoot.bind('<Escape>', __enterboxCancel) + boxRoot.bind("<Escape>", __enterboxCancel) # ------------- define the messageFrame --------------------------------- messageFrame = tk.Frame(master=boxRoot) @@ -317,7 +350,6 @@ buttonsFrame = tk.Frame(master=boxRoot) buttonsFrame.pack(side=tk.TOP, fill=tk.BOTH) - # ------------- define the entryFrame --------------------------------- entryFrame = tk.Frame(master=boxRoot) entryFrame.pack(side=tk.TOP, fill=tk.BOTH) @@ -326,10 +358,10 @@ buttonsFrame = tk.Frame(master=boxRoot) buttonsFrame.pack(side=tk.TOP, fill=tk.BOTH) - #-------------------- the msg widget ---------------------------- - messageWidget = tk.Message(messageFrame, width='4.5i', text=msg) + # -------------------- the msg widget ---------------------------- + messageWidget = tk.Message(messageFrame, width="4.5i", text=msg) messageWidget.configure(font=(PROPORTIONAL_FONT_FAMILY, PROPORTIONAL_FONT_SIZE)) - messageWidget.pack(side=tk.RIGHT, expand=1, fill=tk.BOTH, padx='3m', pady='3m') + messageWidget.pack(side=tk.RIGHT, expand=1, fill=tk.BOTH, padx="3m", pady="3m") # --------- entryWidget ---------------------------------------------- entryWidget = tk.Entry(entryFrame, width=40) @@ -337,47 +369,49 @@ entryWidget.configure(font=(PROPORTIONAL_FONT_FAMILY, TEXT_ENTRY_FONT_SIZE)) if mask: entryWidget.configure(show=mask) - entryWidget.pack(side=tk.LEFT, padx='3m') - entryWidget.bind('<Return>', __enterboxGetText) - entryWidget.bind('<Escape>', __enterboxCancel) + entryWidget.pack(side=tk.LEFT, padx="3m") + entryWidget.bind("<Return>", __enterboxGetText) + entryWidget.bind("<Escape>", __enterboxCancel) # put text into the entryWidget and have it pre-highlighted - if __enterboxDefaultText != '': - entryWidget.insert(0,__enterboxDefaultText) + if __enterboxDefaultText != "": + entryWidget.insert(0, __enterboxDefaultText) entryWidget.select_range(0, tk.END) # ------------------ ok button ------------------------------- okButton = tk.Button(buttonsFrame, takefocus=1, text=OK_TEXT) _bindArrows(okButton) - okButton.pack(expand=1, side=tk.LEFT, padx='3m', pady='3m', ipadx='2m', ipady='1m') + okButton.pack(expand=1, side=tk.LEFT, padx="3m", pady="3m", ipadx="2m", ipady="1m") # for the commandButton, bind activation events to the activation event handler - commandButton = okButton + commandButton = okButton handler = __enterboxGetText for selectionEvent in STANDARD_SELECTION_EVENTS: - commandButton.bind('<%s>' % selectionEvent, handler) - + commandButton.bind("<%s>" % selectionEvent, handler) # ------------------ cancel button ------------------------------- cancelButton = tk.Button(buttonsFrame, takefocus=1, text=CANCEL_TEXT) _bindArrows(cancelButton) - cancelButton.pack(expand=1, side=tk.RIGHT, padx='3m', pady='3m', ipadx='2m', ipady='1m') + cancelButton.pack( + expand=1, side=tk.RIGHT, padx="3m", pady="3m", ipadx="2m", ipady="1m" + ) # for the commandButton, bind activation events to the activation event handler - commandButton = cancelButton + commandButton = cancelButton handler = __enterboxCancel for selectionEvent in STANDARD_SELECTION_EVENTS: - commandButton.bind('<%s>' % selectionEvent, handler) + commandButton.bind("<%s>" % selectionEvent, handler) # ------------------- time for action! ----------------- - entryWidget.focus_force() # put the focus on the entryWidget + entryWidget.focus_force() # put the focus on the entryWidget boxRoot.deiconify() if timeout is not None: boxRoot.after(timeout, timeoutBoxRoot) boxRoot.mainloop() # run it! # -------- after the run has completed ---------------------------------- - if root: root.deiconify() + if root: + root.deiconify() try: boxRoot.destroy() # button_click didn't destroy boxRoot, so we do it now except tk.TclError: @@ -397,7 +431,7 @@ def __enterboxRestore(event): global entryWidget - entryWidget.delete(0,len(entryWidget.get())) + entryWidget.delete(0, len(entryWidget.get())) entryWidget.insert(0, __enterboxDefaultText) @@ -406,6 +440,3 @@ __enterboxText = None boxRoot.quit() - - - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/PyMsgBox-1.0.7/src/pymsgbox/_native_win.py new/PyMsgBox-1.0.9/src/pymsgbox/_native_win.py --- old/PyMsgBox-1.0.7/src/pymsgbox/_native_win.py 2019-06-18 07:40:01.000000000 +0200 +++ new/PyMsgBox-1.0.9/src/pymsgbox/_native_win.py 2020-05-12 02:01:33.000000000 +0200 @@ -46,12 +46,21 @@ runningOnPython2 = sys.version_info[0] == 2 if runningOnPython2: messageBoxFunc = ctypes.windll.user32.MessageBoxA -else: # Python 3 functions. +else: # Python 3 functions. messageBoxFunc = ctypes.windll.user32.MessageBoxW -def alert(text='', title='', button=pymsgbox.OK_TEXT, root=None, timeout=None, icon=NO_ICON, _tkinter=False): +def alert( + text="", + title="", + button=pymsgbox.OK_TEXT, + root=None, + timeout=None, + icon=NO_ICON, + _tkinter=False, +): """Displays a simple message box with text and a single OK button. Returns the text of the button clicked on.""" + text = str(text) if (_tkinter) or (timeout is not None) or (button != pymsgbox.OK_TEXT): # Timeouts are not supported by Windows message boxes. # Call the original tkinter alert function, not this native one: @@ -60,8 +69,18 @@ messageBoxFunc(0, text, title, MB_OK | MB_SETFOREGROUND | MB_TOPMOST | icon) return button -def confirm(text='', title='', buttons=(pymsgbox.OK_TEXT, pymsgbox.CANCEL_TEXT), root=None, timeout=None, icon=QUESTION, _tkinter=False): + +def confirm( + text="", + title="", + buttons=(pymsgbox.OK_TEXT, pymsgbox.CANCEL_TEXT), + root=None, + timeout=None, + icon=QUESTION, + _tkinter=False, +): """Displays a message box with OK and Cancel buttons. Number and text of buttons can be customized. Returns the text of the button clicked on.""" + text = str(text) buttonFlag = None if len(buttons) == 1: if buttons[0] == pymsgbox.OK_TEXT: @@ -74,18 +93,32 @@ elif buttons[0] == pymsgbox.RETRY_TEXT and buttons[1] == pymsgbox.CANCEL_TEXT: buttonFlag = MB_RETRYCANCEL elif len(buttons) == 3: - if buttons[0] == pymsgbox.ABORT_TEXT and buttons[1] == pymsgbox.RETRY_TEXT and buttons[2] == pymsgbox.IGNORE_TEXT: + if ( + buttons[0] == pymsgbox.ABORT_TEXT + and buttons[1] == pymsgbox.RETRY_TEXT + and buttons[2] == pymsgbox.IGNORE_TEXT + ): buttonFlag = MB_ABORTRETRYIGNORE - elif buttons[0] == pymsgbox.CANCEL_TEXT and buttons[1] == pymsgbox.TRY_AGAIN_TEXT and buttons[2] == pymsgbox.CONTINUE_TEXT: + elif ( + buttons[0] == pymsgbox.CANCEL_TEXT + and buttons[1] == pymsgbox.TRY_AGAIN_TEXT + and buttons[2] == pymsgbox.CONTINUE_TEXT + ): buttonFlag = MB_CANCELTRYCONTINUE - elif buttons[0] == pymsgbox.YES_TEXT and buttons[1] == pymsgbox.NO_TEXT and buttons[2] == pymsgbox.CANCEL_TEXT: + elif ( + buttons[0] == pymsgbox.YES_TEXT + and buttons[1] == pymsgbox.NO_TEXT + and buttons[2] == pymsgbox.CANCEL_TEXT + ): buttonFlag = MB_YESNOCANCEL if (_tkinter) or (timeout is not None) or (buttonFlag is None): # Call the original tkinter confirm() function, not this native one: return pymsgbox._confirmTkinter(text, title, buttons, root, timeout) - retVal = messageBoxFunc(0, text, title, buttonFlag | MB_SETFOREGROUND | MB_TOPMOST | icon) + retVal = messageBoxFunc( + 0, text, title, buttonFlag | MB_SETFOREGROUND | MB_TOPMOST | icon + ) if retVal == IDOK or len(buttons) == 1: return pymsgbox.OK_TEXT elif retVal == IDCANCEL: @@ -105,8 +138,7 @@ elif retVal == IDABORT: return pymsgbox.ABORT_TEXT else: - assert False, 'Unexpected return value from MessageBox: %s' % (retVal) - + assert False, "Unexpected return value from MessageBox: %s" % (retVal) ''' @@ -118,4 +150,4 @@ """Displays a message box with text input, and OK & Cancel buttons. Typed characters appear as *. Returns the text entered, or None if Cancel was clicked.""" pass -''' \ No newline at end of file +''' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/PyMsgBox-1.0.7/tests/test_pymsgbox.py new/PyMsgBox-1.0.9/tests/test_pymsgbox.py --- old/PyMsgBox-1.0.7/tests/test_pymsgbox.py 2019-06-18 07:46:28.000000000 +0200 +++ new/PyMsgBox-1.0.9/tests/test_pymsgbox.py 2020-10-11 03:49:27.000000000 +0200 @@ -5,7 +5,6 @@ import threading import inspect -sys.path.insert(0, os.path.abspath('..')) import pymsgbox # Note: Yes, PyAutoGUI does have PyMsgBox itself as a dependency, but we won't be using that part of PyAutoGUI for this testing. @@ -13,7 +12,7 @@ pyautogui.PAUSE = 0.1 -GUI_WAIT = 0.2 # if tests start failing, maybe try bumping this up a bit (though that'll slow the tests down) +GUI_WAIT = 0.4 # if tests start failing, maybe try bumping this up a bit (though that'll slow the tests down) """