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 2022-04-11 23:48:46
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-qtconsole (Old)
and /work/SRC/openSUSE:Factory/.python-qtconsole.new.1900 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-qtconsole"
Mon Apr 11 23:48:46 2022 rev:23 rq:968071 version:5.3.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-qtconsole/python-qtconsole.changes
2022-02-04 21:52:02.715296741 +0100
+++
/work/SRC/openSUSE:Factory/.python-qtconsole.new.1900/python-qtconsole.changes
2022-04-11 23:50:12.106414540 +0200
@@ -1,0 +2,9 @@
+Sat Apr 9 22:04:33 UTC 2022 - Ben Greiner <[email protected]>
+
+- Update to version 5.3.0
+ * Add support for PyQt6.
+ * Don't show spurious blank lines when running input statements.
+ * Fix showing Latex images with dark background colors.
+ * Drop support for Python 3.6
+
+-------------------------------------------------------------------
Old:
----
qtconsole-5.2.2.tar.gz
New:
----
qtconsole-5.3.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-qtconsole.spec ++++++
--- /var/tmp/diff_new_pack.rFkT8c/_old 2022-04-11 23:50:12.694407832 +0200
+++ /var/tmp/diff_new_pack.rFkT8c/_new 2022-04-11 23:50:12.698407786 +0200
@@ -24,7 +24,7 @@
%bcond_with libalternatives
%endif
Name: python-qtconsole
-Version: 5.2.2
+Version: 5.3.0
Release: 0
Summary: Jupyter Qt console
License: BSD-3-Clause
@@ -32,6 +32,7 @@
URL: https://github.com/jupyter/qtconsole
Source0:
https://files.pythonhosted.org/packages/source/q/qtconsole/qtconsole-%{version}.tar.gz
Source100: python-qtconsole-rpmlintrc
+BuildRequires: %{python_module base >= 3.7}
BuildRequires: %{python_module jupyter-core}
BuildRequires: %{python_module setuptools}
BuildRequires: desktop-file-utils
@@ -45,7 +46,7 @@
Requires: (python-qt5 or python-pyside2)
Requires: jupyter-qtconsole = %{version}
Requires: python-Pygments
-Requires: python-QtPy
+Requires: python-QtPy >= 2.0.1
Requires: python-ipykernel >= 4.1
Requires: python-ipython_genutils
Requires: python-jupyter-client >= 4.1
@@ -63,7 +64,7 @@
%endif
# SECTION test requirements
BuildRequires: %{python_module Pygments}
-BuildRequires: %{python_module QtPy}
+BuildRequires: %{python_module QtPy >= 2.0.1}
BuildRequires: %{python_module flaky}
BuildRequires: %{python_module ipykernel >= 4.1}
BuildRequires: %{python_module ipython_genutils}
++++++ qtconsole-5.2.2.tar.gz -> qtconsole-5.3.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/qtconsole-5.2.2/CONTRIBUTING.md
new/qtconsole-5.3.0/CONTRIBUTING.md
--- old/qtconsole-5.2.2/CONTRIBUTING.md 2020-10-24 17:40:21.000000000 +0200
+++ new/qtconsole-5.3.0/CONTRIBUTING.md 2022-03-27 20:25:58.000000000 +0200
@@ -11,7 +11,7 @@
```
conda create -n qtdev python=3
conda activate qtdev
-conda install qtpy pyqt
+conda env update --file requirements/environment.yml
```
To run after the changes have been made to source (preferred):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/qtconsole-5.2.2/PKG-INFO new/qtconsole-5.3.0/PKG-INFO
--- old/qtconsole-5.2.2/PKG-INFO 2021-12-13 18:55:15.354424500 +0100
+++ new/qtconsole-5.3.0/PKG-INFO 2022-03-28 19:04:57.685921200 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: qtconsole
-Version: 5.2.2
+Version: 5.3.0
Summary: Jupyter Qt console
Home-page: http://jupyter.org
Author: Jupyter Development Team
@@ -17,11 +17,11 @@
Classifier: License :: OSI Approved :: BSD License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
-Requires-Python: >= 3.6
+Classifier: Programming Language :: Python :: 3.10
+Requires-Python: >= 3.7
Description-Content-Type: text/markdown
Provides-Extra: test
Provides-Extra: doc
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/qtconsole-5.2.2/docs/source/changelog.rst
new/qtconsole-5.3.0/docs/source/changelog.rst
--- old/qtconsole-5.2.2/docs/source/changelog.rst 2021-12-13
18:53:18.000000000 +0100
+++ new/qtconsole-5.3.0/docs/source/changelog.rst 2022-03-28
19:03:21.000000000 +0200
@@ -3,6 +3,28 @@
Changes in Jupyter Qt console
=============================
+.. _5.3:
+
+5.3
+~~~
+
+5.3.0
+-----
+
+`5.3.0 on GitHub <https://github.com/jupyter/qtconsole/milestones/5.3.0>`__
+
+Additions
++++++++++
+
+* Add support for PyQt6.
+
+Changes
++++++++
+
+* Don't show spurious blank lines when running input statements.
+* Fix showing Latex images with dark background colors.
+* Drop support for Python 3.6
+
.. _5.2:
5.2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/qtconsole-5.2.2/qtconsole/_version.py
new/qtconsole-5.3.0/qtconsole/_version.py
--- old/qtconsole-5.2.2/qtconsole/_version.py 2021-12-13 18:54:03.000000000
+0100
+++ new/qtconsole-5.3.0/qtconsole/_version.py 2022-03-28 19:04:07.000000000
+0200
@@ -1,2 +1,2 @@
-version_info = (5, 2, 2)
+version_info = (5, 3, 0)
__version__ = '.'.join(map(str, version_info))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/qtconsole-5.2.2/qtconsole/call_tip_widget.py
new/qtconsole-5.3.0/qtconsole/call_tip_widget.py
--- old/qtconsole-5.2.2/qtconsole/call_tip_widget.py 2021-11-23
17:22:26.000000000 +0100
+++ new/qtconsole-5.3.0/qtconsole/call_tip_widget.py 2022-03-27
20:25:58.000000000 +0200
@@ -3,6 +3,7 @@
from unicodedata import category
# System library imports
+from qtpy import QT6
from qtpy import QtCore, QtGui, QtWidgets
@@ -171,7 +172,10 @@
# location based trying to minimize the area that goes off-screen.
padding = 3 # Distance in pixels between cursor bounds and tip box.
cursor_rect = text_edit.cursorRect(cursor)
- screen_rect =
QtWidgets.QApplication.instance().desktop().screenGeometry(text_edit)
+ if QT6:
+ screen_rect = text_edit.screen().geometry()
+ else:
+ screen_rect =
QtWidgets.QApplication.instance().desktop().screenGeometry(text_edit)
point = text_edit.mapToGlobal(cursor_rect.bottomRight())
point.setY(point.y() + padding)
tip_height = self.size().height()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/qtconsole-5.2.2/qtconsole/completion_widget.py
new/qtconsole-5.3.0/qtconsole/completion_widget.py
--- old/qtconsole-5.2.2/qtconsole/completion_widget.py 2021-12-13
18:48:13.000000000 +0100
+++ new/qtconsole-5.3.0/qtconsole/completion_widget.py 2022-03-27
20:25:58.000000000 +0200
@@ -3,6 +3,7 @@
import os
import sys
+from qtpy import QT6
from qtpy import QtCore, QtGui, QtWidgets
@@ -132,7 +133,10 @@
self.addItem(list_item)
height = self.sizeHint().height()
- screen_rect = QtWidgets.QApplication.desktop().availableGeometry(self)
+ if QT6:
+ screen_rect = self.screen().availableGeometry()
+ else:
+ screen_rect =
QtWidgets.QApplication.desktop().availableGeometry(self)
if (screen_rect.size().height() + screen_rect.y() -
point.y() - height < 0):
point = text_edit.mapToGlobal(text_edit.cursorRect().topRight())
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/qtconsole-5.2.2/qtconsole/console_widget.py
new/qtconsole-5.3.0/qtconsole/console_widget.py
--- old/qtconsole-5.2.2/qtconsole/console_widget.py 2021-11-23
17:22:26.000000000 +0100
+++ new/qtconsole-5.3.0/qtconsole/console_widget.py 2022-03-28
18:38:07.000000000 +0200
@@ -13,13 +13,16 @@
from unicodedata import category
import webbrowser
+from qtpy import QT6
from qtpy import QtCore, QtGui, QtPrintSupport, QtWidgets
-from traitlets.config.configurable import LoggingConfigurable
from qtconsole.rich_text import HtmlExporter
from qtconsole.util import MetaQObjectHasTraits, get_font, superQ
+
from ipython_genutils.text import columnize
+from traitlets.config.configurable import LoggingConfigurable
from traitlets import Bool, Enum, Integer, Unicode
+
from .ansi_code_processor import QtAnsiCodeProcessor
from .completion_widget import CompletionWidget
from .completion_html import CompletionHtml
@@ -432,7 +435,7 @@
# Make middle-click paste safe.
elif getattr(event, 'button', False) and \
etype == QtCore.QEvent.MouseButtonRelease and \
- event.button() == QtCore.Qt.MidButton and \
+ event.button() == QtCore.Qt.MiddleButton and \
obj == self._control.viewport():
cursor = self._control.cursorForPosition(event.pos())
self._control.setTextCursor(cursor)
@@ -465,7 +468,11 @@
elif etype == QtCore.QEvent.MouseMove:
anchor = self._control.anchorAt(event.pos())
- QtWidgets.QToolTip.showText(event.globalPos(), anchor)
+ if QT6:
+ pos = event.globalPosition().toPoint()
+ else:
+ pos = event.globalPos()
+ QtWidgets.QToolTip.showText(pos, anchor)
return super().eventFilter(obj, event)
@@ -1659,8 +1666,9 @@
t = time.time()
self._insert_plain_text(self._get_end_cursor(), text, flush=True)
# Set the flush interval to equal the maximum time to update text.
- self._pending_text_flush_interval.setInterval(max(100,
- (time.time()-t)*1000))
+ self._pending_text_flush_interval.setInterval(
+ int(max(100, (time.time() - t) * 1000))
+ )
def _format_as_columns(self, items, separator=' '):
""" Transform a list of strings into a single string with columns.
@@ -2408,7 +2416,12 @@
if password:
self._show_prompt('Warning: QtConsole does not support password
mode, '\
'the text you type will be visible.',
newline=True)
- self._show_prompt(prompt, newline=False)
+
+ if 'ipdb' not in prompt.lower():
+ # This is a prompt that asks for input from the user.
+ self._show_prompt(prompt, newline=False, separator=False)
+ else:
+ self._show_prompt(prompt, newline=False)
if callback is None:
self._reading_callback = None
@@ -2454,7 +2467,8 @@
self._control.ensureCursorVisible()
self._control.setTextCursor(original_cursor)
- def _show_prompt(self, prompt=None, html=False, newline=True):
+ def _show_prompt(self, prompt=None, html=False, newline=True,
+ separator=True):
""" Writes a new prompt at the end of the buffer.
Parameters
@@ -2470,6 +2484,9 @@
newline : bool, optional (default True)
If set, a new line will be written before showing the prompt if
there is not already a newline at the end of the buffer.
+
+ separator : bool, optional (default True)
+ If set, a separator will be written before the prompt.
"""
self._flush_pending_stream()
cursor = self._get_end_cursor()
@@ -2494,7 +2511,8 @@
self._append_block()
# Write the prompt.
- self._append_plain_text(self._prompt_sep)
+ if separator:
+ self._append_plain_text(self._prompt_sep)
if prompt is None:
if self._prompt_html is None:
self._append_plain_text(self._prompt)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/qtconsole-5.2.2/qtconsole/mainwindow.py
new/qtconsole-5.3.0/qtconsole/mainwindow.py
--- old/qtconsole-5.2.2/qtconsole/mainwindow.py 2021-03-17 02:07:09.000000000
+0100
+++ new/qtconsole-5.3.0/qtconsole/mainwindow.py 2022-03-27 20:25:58.000000000
+0200
@@ -36,6 +36,7 @@
confirm_exit=True,
new_frontend_factory=None, slave_frontend_factory=None,
connection_frontend_factory=None,
+ parent=None
):
""" Create a tabbed MainWindow for managing FrontendWidgets
@@ -53,7 +54,7 @@
JupyterWidget instance, attached to the same kernel.
"""
- super().__init__()
+ super().__init__(parent=parent)
self._kernel_counter = 0
self._external_kernel_counter = 0
self._app = app
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/qtconsole-5.2.2/qtconsole/qtconsoleapp.py
new/qtconsole-5.3.0/qtconsole/qtconsoleapp.py
--- old/qtconsole-5.2.2/qtconsole/qtconsoleapp.py 2021-03-17
02:07:09.000000000 +0100
+++ new/qtconsole-5.3.0/qtconsole/qtconsoleapp.py 2022-03-27
20:25:58.000000000 +0200
@@ -259,8 +259,11 @@
def init_qt_app(self):
# separate from qt_elements, because it must run first
- self.app = QtWidgets.QApplication(['jupyter-qtconsole'])
- self.app.setApplicationName('jupyter-qtconsole')
+ if QtWidgets.QApplication.instance() is None:
+ self.app = QtWidgets.QApplication(['jupyter-qtconsole'])
+ self.app.setApplicationName('jupyter-qtconsole')
+ else:
+ self.app = QtWidgets.QApplication.instance()
def init_qt_elements(self):
# Create the widget.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/qtconsole-5.2.2/qtconsole/rich_jupyter_widget.py
new/qtconsole-5.3.0/qtconsole/rich_jupyter_widget.py
--- old/qtconsole-5.2.2/qtconsole/rich_jupyter_widget.py 2021-03-17
02:07:09.000000000 +0100
+++ new/qtconsole-5.3.0/qtconsole/rich_jupyter_widget.py 2022-03-27
20:25:58.000000000 +0200
@@ -10,9 +10,11 @@
from ipython_genutils.path import ensure_dir_exists
from traitlets import Bool
+from pygments.util import ClassNotFound
+
from qtconsole.svg import save_svg, svg_to_clipboard, svg_to_image
from .jupyter_widget import JupyterWidget
-
+from .styles import get_colors
try:
from IPython.lib.latextools import latex_to_png
@@ -212,19 +214,30 @@
return True
return False
+ def _get_color(self, color):
+ """Get color from the current syntax style if loadable."""
+ try:
+ return get_colors(self.syntax_style)[color]
+ except ClassNotFound:
+ # The syntax_style has been sideloaded (e.g. by spyder).
+ # In this case the overloading class should override this method.
+ return get_colors('default')[color]
+
def _append_latex(self, latex, before_prompt=False, metadata=None):
""" Append latex data to the widget."""
png = None
if self._is_latex_math(latex):
- png = latex_to_png(latex, wrap=False, backend='dvipng')
+ png = latex_to_png(latex, wrap=False, backend='dvipng',
+ color=self._get_color('fgcolor'))
# Matplotlib only supports strings enclosed in dollar signs
if png is None and latex.startswith('$') and latex.endswith('$'):
# To avoid long and ugly errors, like the one reported in
# spyder-ide/spyder#7619
try:
- png = latex_to_png(latex, wrap=False, backend='matplotlib')
+ png = latex_to_png(latex, wrap=False, backend='matplotlib',
+ color=self._get_color('fgcolor'))
except Exception:
pass
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/qtconsole-5.2.2/qtconsole/tests/test_00_console_widget.py
new/qtconsole-5.3.0/qtconsole/tests/test_00_console_widget.py
--- old/qtconsole-5.2.2/qtconsole/tests/test_00_console_widget.py
2021-11-14 20:26:45.000000000 +0100
+++ new/qtconsole-5.3.0/qtconsole/tests/test_00_console_widget.py
2022-03-27 20:25:58.000000000 +0200
@@ -3,11 +3,13 @@
from flaky import flaky
import pytest
+
from qtpy import QtCore, QtGui, QtWidgets
from qtpy.QtTest import QTest
from qtconsole.console_widget import ConsoleWidget
from qtconsole.qtconsoleapp import JupyterQtConsoleApp
+
from . import no_display
from IPython.core.inputtransformer2 import TransformerManager
@@ -23,10 +25,12 @@
console = JupyterQtConsoleApp()
console.initialize(argv=[])
- qtbot.addWidget(console.window)
console.window.confirm_exit = False
console.window.show()
- return console
+
+ yield console
+
+ console.window.close()
@flaky(max_runs=3)
@@ -272,10 +276,9 @@
cursor.insertText('')
def test_link_handling(self):
- noKeys = QtCore.Qt
- noButton = QtCore.Qt.MouseButton(0)
- noButtons = QtCore.Qt.MouseButtons(0)
- noModifiers = QtCore.Qt.KeyboardModifiers(0)
+ noButton = QtCore.Qt.NoButton
+ noButtons = QtCore.Qt.NoButton
+ noModifiers = QtCore.Qt.NoModifier
MouseMove = QtCore.QEvent.MouseMove
QMouseEvent = QtGui.QMouseEvent
@@ -287,20 +290,20 @@
self.assertEqual(tip.text(), '')
# should be somewhere else
- elsewhereEvent = QMouseEvent(MouseMove, QtCore.QPoint(50,50),
+ elsewhereEvent = QMouseEvent(MouseMove, QtCore.QPointF(50, 50),
noButton, noButtons, noModifiers)
w.eventFilter(obj, elsewhereEvent)
self.assertEqual(tip.isVisible(), False)
self.assertEqual(tip.text(), '')
# should be over text
- overTextEvent = QMouseEvent(MouseMove, QtCore.QPoint(1,5),
+ overTextEvent = QMouseEvent(MouseMove, QtCore.QPointF(1, 5),
noButton, noButtons, noModifiers)
w.eventFilter(obj, overTextEvent)
self.assertEqual(tip.isVisible(), True)
self.assertEqual(tip.text(), "http://python.org")
# should still be over text
- stillOverTextEvent = QMouseEvent(MouseMove, QtCore.QPoint(1,5),
+ stillOverTextEvent = QMouseEvent(MouseMove, QtCore.QPointF(1, 5),
noButton, noButtons, noModifiers)
w.eventFilter(obj, stillOverTextEvent)
self.assertEqual(tip.isVisible(), True)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/qtconsole-5.2.2/qtconsole/tests/test_jupyter_widget.py
new/qtconsole-5.3.0/qtconsole/tests/test_jupyter_widget.py
--- old/qtconsole-5.2.2/qtconsole/tests/test_jupyter_widget.py 2021-03-17
02:07:09.000000000 +0100
+++ new/qtconsole-5.3.0/qtconsole/tests/test_jupyter_widget.py 2022-03-27
20:25:58.000000000 +0200
@@ -2,12 +2,14 @@
import sys
import pytest
+from qtpy import QT6
from qtpy import QtWidgets, QtGui
+from qtpy.QtTest import QTest
from qtconsole.client import QtKernelClient
from qtconsole.jupyter_widget import JupyterWidget
+
from . import no_display
-from qtpy.QtTest import QTest
@pytest.mark.skipif(no_display, reason="Doesn't work without a display")
@@ -70,18 +72,34 @@
))
# Check proper syntax highlighting
- self.assertEqual(document.toHtml(), (
- '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"
"http://www.w3.org/TR/REC-html40/strict.dtd">\n'
- '<html><head><meta name="qrichtext" content="1" /><style
type="text/css">\n'
- 'p, li { white-space: pre-wrap; }\n'
- '</style></head><body style=" font-family:\'Monospace\';
font-size:9pt; font-weight:400; font-style:normal;">\n'
- '<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px;
margin-right:0px; -qt-block-indent:0; text-indent:0px;">Header</p>\n'
- '<p style="-qt-paragraph-type:empty; margin-top:0px;
margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0;
text-indent:0px;"><br /></p>\n'
- '<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px;
margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style="
color:#000080;">[other] In [</span><span style=" font-weight:600;
color:#000080;">1</span><span style=" color:#000080;">]:</span> a = 1 + 1</p>\n'
- '<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px;
margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style="
color:#000080;">\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0...:</span> b =
range(10)</p>\n'
- '<p style="-qt-paragraph-type:empty; margin-top:0px;
margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0;
text-indent:0px;"><br /></p>\n'
- '<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px;
margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style="
color:#000080;">In [</span><span style=" font-weight:600;
color:#000080;">2</span><span style=" color:#000080;">]:</span>
</p></body></html>'
- ))
+ if QT6:
+ html = (
+ '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"
"http://www.w3.org/TR/REC-html40/strict.dtd">\n'
+ '<html><head><meta name="qrichtext" content="1" /><meta
charset="utf-8" /><style type="text/css">\n'
+ 'p, li { white-space: pre-wrap; }\n'
+ '</style></head><body style=\" font-family:\'Monospace\';
font-size:9pt; font-weight:400; font-style:normal;\">\n'
+ '<p style=" margin-top:0px; margin-bottom:0px;
margin-left:0px; margin-right:0px; -qt-block-indent:0;
text-indent:0px;">Header</p>\n'
+ '<p style="-qt-paragraph-type:empty; margin-top:0px;
margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0;
text-indent:0px;"><br /></p>\n'
+ '<p style=" margin-top:0px; margin-bottom:0px;
margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span
style=" color:#000080;">[other] In [</span><span style=" font-weight:700;
color:#000080;">1</span><span style=" color:#000080;">]:</span> a = 1 + 1</p>\n'
+ '<p style=" margin-top:0px; margin-bottom:0px;
margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span
style=" color:#000080;">\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0...:</span>
b = range(10)</p>\n'
+ '<p style="-qt-paragraph-type:empty; margin-top:0px;
margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0;
text-indent:0px;"><br /></p>\n'
+ '<p style=" margin-top:0px; margin-bottom:0px;
margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span
style=" color:#000080;">In [</span><span style=" font-weight:700;
color:#000080;">2</span><span style=" color:#000080;">]:</span>
</p></body></html>'
+ )
+ else:
+ html = (
+ '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"
"http://www.w3.org/TR/REC-html40/strict.dtd">\n'
+ '<html><head><meta name="qrichtext" content="1" /><style
type="text/css">\n'
+ 'p, li { white-space: pre-wrap; }\n'
+ '</style></head><body style=" font-family:\'Monospace\';
font-size:9pt; font-weight:400; font-style:normal;">\n'
+ '<p style=" margin-top:0px; margin-bottom:0px;
margin-left:0px; margin-right:0px; -qt-block-indent:0;
text-indent:0px;">Header</p>\n'
+ '<p style="-qt-paragraph-type:empty; margin-top:0px;
margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0;
text-indent:0px;"><br /></p>\n'
+ '<p style=" margin-top:0px; margin-bottom:0px;
margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span
style=" color:#000080;">[other] In [</span><span style=" font-weight:600;
color:#000080;">1</span><span style=" color:#000080;">]:</span> a = 1 + 1</p>\n'
+ '<p style=" margin-top:0px; margin-bottom:0px;
margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span
style=" color:#000080;">\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0...:</span>
b = range(10)</p>\n'
+ '<p style="-qt-paragraph-type:empty; margin-top:0px;
margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0;
text-indent:0px;"><br /></p>\n'
+ '<p style=" margin-top:0px; margin-bottom:0px;
margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span
style=" color:#000080;">In [</span><span style=" font-weight:600;
color:#000080;">2</span><span style=" color:#000080;">]:</span>
</p></body></html>'
+ )
+
+ self.assertEqual(document.toHtml(), html)
def test_copy_paste_prompt(self):
"""Test copy/paste removes partial and full prompts."""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/qtconsole-5.2.2/qtconsole.egg-info/PKG-INFO
new/qtconsole-5.3.0/qtconsole.egg-info/PKG-INFO
--- old/qtconsole-5.2.2/qtconsole.egg-info/PKG-INFO 2021-12-13
18:55:15.000000000 +0100
+++ new/qtconsole-5.3.0/qtconsole.egg-info/PKG-INFO 2022-03-28
19:04:57.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: qtconsole
-Version: 5.2.2
+Version: 5.3.0
Summary: Jupyter Qt console
Home-page: http://jupyter.org
Author: Jupyter Development Team
@@ -17,11 +17,11 @@
Classifier: License :: OSI Approved :: BSD License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
-Requires-Python: >= 3.6
+Classifier: Programming Language :: Python :: 3.10
+Requires-Python: >= 3.7
Description-Content-Type: text/markdown
Provides-Extra: test
Provides-Extra: doc
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/qtconsole-5.2.2/qtconsole.egg-info/entry_points.txt
new/qtconsole-5.3.0/qtconsole.egg-info/entry_points.txt
--- old/qtconsole-5.2.2/qtconsole.egg-info/entry_points.txt 2021-12-13
18:55:15.000000000 +0100
+++ new/qtconsole-5.3.0/qtconsole.egg-info/entry_points.txt 2022-03-28
19:04:57.000000000 +0200
@@ -1,3 +1,2 @@
[gui_scripts]
jupyter-qtconsole = qtconsole.qtconsoleapp:main
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/qtconsole-5.2.2/qtconsole.egg-info/requires.txt
new/qtconsole-5.3.0/qtconsole.egg-info/requires.txt
--- old/qtconsole-5.2.2/qtconsole.egg-info/requires.txt 2021-12-13
18:55:15.000000000 +0100
+++ new/qtconsole-5.3.0/qtconsole.egg-info/requires.txt 2022-03-28
19:04:57.000000000 +0200
@@ -4,7 +4,7 @@
jupyter_client>=4.1
pygments
ipykernel>=4.1
-qtpy
+qtpy>=2.0.1
pyzmq>=17.1
[doc]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/qtconsole-5.2.2/setup.py new/qtconsole-5.3.0/setup.py
--- old/qtconsole-5.2.2/setup.py 2021-03-17 02:07:09.000000000 +0100
+++ new/qtconsole-5.3.0/setup.py 2022-03-27 20:25:58.000000000 +0200
@@ -13,8 +13,8 @@
import sys
v = sys.version_info
-if v[0] >= 3 and v[:2] < (3, 5):
- error = "ERROR: %s requires Python version 3.6 or above." % name
+if v[0] >= 3 and v[:2] < (3, 6):
+ error = "ERROR: %s requires Python version 3.7 or above." % name
print(error, file=sys.stderr)
sys.exit(1)
@@ -66,7 +66,7 @@
license = 'BSD',
platforms = "Linux, Mac OS X, Windows",
keywords = ['Interactive', 'Interpreter', 'Shell'],
- python_requires = '>= 3.6',
+ python_requires = '>= 3.7',
install_requires = [
'traitlets',
'ipython_genutils',
@@ -74,7 +74,7 @@
'jupyter_client>=4.1',
'pygments',
'ipykernel>=4.1', # not a real dependency, but require the reference
kernel
- 'qtpy',
+ 'qtpy>=2.0.1',
'pyzmq>=17.1'
],
extras_require = {
@@ -93,10 +93,10 @@
'License :: OSI Approved :: BSD License',
'Programming Language :: Python',
'Programming Language :: Python :: 3',
- 'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9',
+ 'Programming Language :: Python :: 3.10',
],
)