Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-terminado for
openSUSE:Factory checked in at 2022-01-29 20:59:45
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-terminado (Old)
and /work/SRC/openSUSE:Factory/.python-terminado.new.1898 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-terminado"
Sat Jan 29 20:59:45 2022 rev:13 rq:949899 version:0.13.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-terminado/python-terminado.changes
2021-10-11 15:32:56.946973084 +0200
+++
/work/SRC/openSUSE:Factory/.python-terminado.new.1898/python-terminado.changes
2022-01-29 21:00:32.395296106 +0100
@@ -1,0 +2,19 @@
+Sat Jan 29 18:00:55 UTC 2022 - Arun Persaud <[email protected]>
+
+- specfile:
+ * update copyright year
+ * require python >= 3.7
+
+- update to version 0.13.1:
+ * Maintenance and upkeep improvements
+ + python_requires is an option in setup.cfg #140 (@minrk)
+
+- changes from version 0.13.0:
+ * Enhancements made
+ + Add pre_pty_read_hook in pty_read #136 (@Wh1isper)
+ * Maintenance and upkeep improvements
+ + Officially drop support for python 3.6 #137 (@blink1073)
+ + Fix even more setup.cfg formatting #134 (@blink1073)
+ + Fix more setup.cfg formatting #133 (@blink1073)
+
+-------------------------------------------------------------------
Old:
----
terminado-0.12.1.tar.gz
New:
----
terminado-0.13.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-terminado.spec ++++++
--- /var/tmp/diff_new_pack.0Lw3Wv/_old 2022-01-29 21:00:32.879292852 +0100
+++ /var/tmp/diff_new_pack.0Lw3Wv/_new 2022-01-29 21:00:32.887292798 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python-terminado
#
-# Copyright (c) 2021 SUSE LLC
+# 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
@@ -21,14 +21,14 @@
# Disable tests until random testing race condition fixed, see:
https://github.com/jupyter/terminado/issues/21
%bcond_with tests
Name: python-terminado
-Version: 0.12.1
+Version: 0.13.1
Release: 0
Summary: Terminals served to termjs using Tornado websockets
License: BSD-2-Clause
Group: Development/Languages/Python
URL: https://github.com/jupyter/terminado
Source:
https://files.pythonhosted.org/packages/source/t/terminado/terminado-%{version}.tar.gz
-BuildRequires: %{python_module base >= 3.6}
+BuildRequires: %{python_module base >= 3.7}
BuildRequires: %{python_module ptyprocess}
BuildRequires: %{python_module setuptools}
BuildRequires: %{python_module tornado >= 4}
++++++ terminado-0.12.1.tar.gz -> terminado-0.13.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/terminado-0.12.1/CHANGELOG.md
new/terminado-0.13.1/CHANGELOG.md
--- old/terminado-0.12.1/CHANGELOG.md 1970-01-01 01:00:00.000000000 +0100
+++ new/terminado-0.13.1/CHANGELOG.md 2022-01-27 15:20:39.000000000 +0100
@@ -0,0 +1,272 @@
+# Changelog
+
+<!-- <START NEW CHANGELOG ENTRY> -->
+
+## 0.13.1
+
+([Full
Changelog](https://github.com/jupyter/terminado/compare/v0.13.0...b522de5796e56c98a74918873ff453f828fb123e))
+
+### Maintenance and upkeep improvements
+
+- python_requires is an option in setup.cfg
[#140](https://github.com/jupyter/terminado/pull/140)
([@minrk](https://github.com/minrk))
+
+### Contributors to this release
+
+([GitHub contributors page for this
release](https://github.com/jupyter/terminado/graphs/contributors?from=2022-01-27&to=2022-01-27&type=c))
+
+[@minrk](https://github.com/search?q=repo%3Ajupyter%2Fterminado+involves%3Aminrk+updated%3A2022-01-27..2022-01-27&type=Issues)
+
+<!-- <END NEW CHANGELOG ENTRY> -->
+
+## 0.13.0
+
+([Full
Changelog](https://github.com/jupyter/terminado/compare/v0.12.4...d663c886bf39880585f97a2f46e28c3d368ea0f3))
+
+### Enhancements made
+
+- Add pre_pty_read_hook in pty_read
[#136](https://github.com/jupyter/terminado/pull/136)
([@Wh1isper](https://github.com/Wh1isper))
+
+### Maintenance and upkeep improvements
+
+- Officially drop support for python 3.6
[#137](https://github.com/jupyter/terminado/pull/137)
([@blink1073](https://github.com/blink1073))
+- Fix even more setup.cfg formatting
[#134](https://github.com/jupyter/terminado/pull/134)
([@blink1073](https://github.com/blink1073))
+- Fix more setup.cfg formatting
[#133](https://github.com/jupyter/terminado/pull/133)
([@blink1073](https://github.com/blink1073))
+
+### Contributors to this release
+
+([GitHub contributors page for this
release](https://github.com/jupyter/terminado/graphs/contributors?from=2022-01-26&to=2022-01-27&type=c))
+
+[@blink1073](https://github.com/search?q=repo%3Ajupyter%2Fterminado+involves%3Ablink1073+updated%3A2022-01-26..2022-01-27&type=Issues)
|
[@Wh1isper](https://github.com/search?q=repo%3Ajupyter%2Fterminado+involves%3AWh1isper+updated%3A2022-01-26..2022-01-27&type=Issues)
+
+## 0.12.4
+
+([Full
Changelog](https://github.com/jupyter/terminado/compare/v0.12.3...335e59d6e6c6574d2f0b48360dac9680faeeaa1a))
+
+### Maintenance and upkeep improvements
+
+- Fix formatting of trove classifiers again
[#131](https://github.com/jupyter/terminado/pull/131)
([@blink1073](https://github.com/blink1073))
+
+### Contributors to this release
+
+([GitHub contributors page for this
release](https://github.com/jupyter/terminado/graphs/contributors?from=2022-01-26&to=2022-01-26&type=c))
+
+[@blink1073](https://github.com/search?q=repo%3Ajupyter%2Fterminado+involves%3Ablink1073+updated%3A2022-01-26..2022-01-26&type=Issues)
+
+## 0.12.3
+
+([Full
Changelog](https://github.com/jupyter/terminado/compare/v0.12.2...d0510462c73663790bdb0ae87640b7565866d1f9))
+
+### Bugs fixed
+
+- Fix terminal output logging type error
[#122](https://github.com/jupyter/terminado/pull/122)
([@devmonkey22](https://github.com/devmonkey22))
+
+### Maintenance and upkeep improvements
+
+- Fix formatting of trove classifiers
[#129](https://github.com/jupyter/terminado/pull/129)
([@blink1073](https://github.com/blink1073))
+
+### Contributors to this release
+
+([GitHub contributors page for this
release](https://github.com/jupyter/terminado/graphs/contributors?from=2022-01-26&to=2022-01-26&type=c))
+
+[@blink1073](https://github.com/search?q=repo%3Ajupyter%2Fterminado+involves%3Ablink1073+updated%3A2022-01-26..2022-01-26&type=Issues)
|
[@devmonkey22](https://github.com/search?q=repo%3Ajupyter%2Fterminado+involves%3Adevmonkey22+updated%3A2022-01-26..2022-01-26&type=Issues)
+
+## 0.12.2
+
+([Full
Changelog](https://github.com/jupyter/terminado/compare/0.12.1...eea43b51a25be52e2e53334f94a5005a22d12109))
+
+### Bugs fixed
+
+- Use read_buffer for reconnect and remove preopen_buffer
[#127](https://github.com/jupyter/terminado/pull/127)
([@Wh1isper](https://github.com/Wh1isper))
+
+### Maintenance and upkeep improvements
+
+- Run CI Daily [#125](https://github.com/jupyter/terminado/pull/125)
([@blink1073](https://github.com/blink1073))
+
+### Contributors to this release
+
+([GitHub contributors page for this
release](https://github.com/jupyter/terminado/graphs/contributors?from=2021-09-07&to=2022-01-26&type=c))
+
+[@andfoy](https://github.com/search?q=repo%3Ajupyter%2Fterminado+involves%3Aandfoy+updated%3A2021-09-07..2022-01-26&type=Issues)
|
[@blink1073](https://github.com/search?q=repo%3Ajupyter%2Fterminado+involves%3Ablink1073+updated%3A2021-09-07..2022-01-26&type=Issues)
|
[@Wh1isper](https://github.com/search?q=repo%3Ajupyter%2Fterminado+involves%3AWh1isper+updated%3A2021-09-07..2022-01-26&type=Issues)
+
+## 0.12.1
+
+([Full
Changelog](https://github.com/jupyter/terminado/compare/0.12.0...a70e0bf98a597ce4d1ac5aa6915e70cf6e00789e))
+
+### Bugs fixed
+
+- Revert "only override TERM if its not previously set"
[#119](https://github.com/jupyter/terminado/pull/119)
([@rvalieris](https://github.com/rvalieris))
+
+### Contributors to this release
+
+([GitHub contributors page for this
release](https://github.com/jupyter/terminado/graphs/contributors?from=2021-09-07&to=2021-09-07&type=c))
+
+[@rvalieris](https://github.com/search?q=repo%3Ajupyter%2Fterminado+involves%3Arvalieris+updated%3A2021-09-07..2021-09-07&type=Issues)
+
+## 0.12.0
+
+([Full
Changelog](https://github.com/jupyter/terminado/compare/0.11.1...89425f34beb639eb10d7534cf8ce789d18f22c71))
+
+### Bugs fixed
+
+- correctly set the TERM variable
[#117](https://github.com/jupyter/terminado/pull/117)
([@rvalieris](https://github.com/rvalieris))
+
+### Maintenance and upkeep improvements
+
+- Replace deprecated unittest aliases
[#116](https://github.com/jupyter/terminado/pull/116)
([@hugovk](https://github.com/hugovk))
+
+### Contributors to this release
+
+([GitHub contributors page for this
release](https://github.com/jupyter/terminado/graphs/contributors?from=2021-08-18&to=2021-09-07&type=c))
+
+[@hugovk](https://github.com/search?q=repo%3Ajupyter%2Fterminado+involves%3Ahugovk+updated%3A2021-08-18..2021-09-07&type=Issues)
|
[@rvalieris](https://github.com/search?q=repo%3Ajupyter%2Fterminado+involves%3Arvalieris+updated%3A2021-08-18..2021-09-07&type=Issues)
+
+## 0.11.1
+
+([Full
Changelog](https://github.com/jupyter/terminado/compare/0.11.0...0fa5a0cb9cc3b622457b492759998686cb83b10a))
+
+### Maintenance and upkeep improvements
+
+- Clean up tests [#114](https://github.com/jupyter/terminado/pull/114)
([@blink1073](https://github.com/blink1073))
+
+### Contributors to this release
+
+([GitHub contributors page for this
release](https://github.com/jupyter/terminado/graphs/contributors?from=2021-08-12&to=2021-08-18&type=c))
+
+[@blink1073](https://github.com/search?q=repo%3Ajupyter%2Fterminado+involves%3Ablink1073+updated%3A2021-08-12..2021-08-18&type=Issues)
+
+## 0.11.0
+
+([Full
Changelog](https://github.com/jupyter/terminado/compare/0.10.1...baa26d500a3836ba8835b6c674e60ddf0e79295e))
+
+### Enhancements made
+
+- Log terminal output [#112](https://github.com/jupyter/terminado/pull/112)
([@OmriShiv](https://github.com/OmriShiv))
+
+### Bugs fixed
+
+- Switch select() to poll() in pty_read()
[#111](https://github.com/jupyter/terminado/pull/111)
([@arjanvandervelde](https://github.com/arjanvandervelde))
+
+### Contributors to this release
+
+([GitHub contributors page for this
release](https://github.com/jupyter/terminado/graphs/contributors?from=2021-06-10&to=2021-08-12&type=c))
+
+[@arjanvandervelde](https://github.com/search?q=repo%3Ajupyter%2Fterminado+involves%3Aarjanvandervelde+updated%3A2021-06-10..2021-08-12&type=Issues)
|
[@blink1073](https://github.com/search?q=repo%3Ajupyter%2Fterminado+involves%3Ablink1073+updated%3A2021-06-10..2021-08-12&type=Issues)
|
[@OmriShiv](https://github.com/search?q=repo%3Ajupyter%2Fterminado+involves%3AOmriShiv+updated%3A2021-06-10..2021-08-12&type=Issues)
+
+## 0.10.1
+
+([Full
Changelog](https://github.com/jupyter/terminado/compare/0.10.0...ada2b93a57bd0ebfae87d75b7561e2cd53ba598f))
+
+### Bugs fixed
+
+- Fix blocking of pty_read when there isn't pty data ready to read
[#107](https://github.com/jupyter/terminado/pull/107)
([@icankeep](https://github.com/icankeep))
+
+### Contributors to this release
+
+([GitHub contributors page for this
release](https://github.com/jupyter/terminado/graphs/contributors?from=2021-05-18&to=2021-06-10&type=c))
+
+[@icankeep](https://github.com/search?q=repo%3Ajupyter%2Fterminado+involves%3Aicankeep+updated%3A2021-05-18..2021-06-10&type=Issues)
+
+## 0.10.0
+
+([Full
Changelog](https://github.com/jupyter/terminado/compare/0.9.5...fbba87e45daa65029ad58a88b63384bffbf29937))
+
+### Enhancements made
+
+- Support creating terminal given name in kwargs.
[#104](https://github.com/jupyter/terminado/pull/104)
([@cailiang9](https://github.com/cailiang9))
+
+### Bugs fixed
+
+- avoid persistent handle on IOLoop instance
[#102](https://github.com/jupyter/terminado/pull/102)
([@minrk](https://github.com/minrk))
+
+### Maintenance and upkeep improvements
+
+- async/await syntax [#103](https://github.com/jupyter/terminado/pull/103)
([@minrk](https://github.com/minrk))
+- PR: Pin pywinpty version to 1.1.0
[#101](https://github.com/jupyter/terminado/pull/101)
([@andfoy](https://github.com/andfoy))
+
+### Contributors to this release
+
+([GitHub contributors page for this
release](https://github.com/jupyter/terminado/graphs/contributors?from=2021-05-11&to=2021-05-18&type=c))
+
+[@andfoy](https://github.com/search?q=repo%3Ajupyter%2Fterminado+involves%3Aandfoy+updated%3A2021-05-11..2021-05-18&type=Issues)
|
[@blink1073](https://github.com/search?q=repo%3Ajupyter%2Fterminado+involves%3Ablink1073+updated%3A2021-05-11..2021-05-18&type=Issues)
|
[@cailiang9](https://github.com/search?q=repo%3Ajupyter%2Fterminado+involves%3Acailiang9+updated%3A2021-05-11..2021-05-18&type=Issues)
|
[@minrk](https://github.com/search?q=repo%3Ajupyter%2Fterminado+involves%3Aminrk+updated%3A2021-05-11..2021-05-18&type=Issues)
+
+## 0.9.5
+
+* Pin pywinpty version [#98](https://github.com/jupyter/terminado/pull/98)
([@jtpio](https://github.com/jtpio))
+
+## 0.9.4
+
+* Allow non-strict decode for process output
[#95](https://github.com/jupyter/terminado/pull/95)
([@dong-zeyu](https://github.com/dong-zeyu))
+* Switch to GitHub Actions [#93](https://github.com/jupyter/terminado/pull/93)
([@afshin](https://github.com/afshin))
+* Add generated changelog [#92](https://github.com/jupyter/terminado/pull/92)
([@blink1073](https://github.com/blink1073))
+
+## 0.9.3
+
+* Make sure SIGPIPE has default handler set
[#91](https://github.com/jupyter/terminado/pull/91)
([@dlukes](https://github.com/dlukes))
+
+## 0.9.2
+
+* Add js files in package manifest
[#87](https://github.com/jupyter/terminado/pull/87)
([@MircoT](https://github.com/MircoT))
+* Add support to ppc64le [#86](https://github.com/jupyter/terminado/pull/86)
([@gururajrkatti](https://github.com/gururajrkatti))
+* Fix config files for publication
[#81](https://github.com/jupyter/terminado/pull/81)
([@afshin](https://github.com/afshin))
+
+## 0.9.1
+
+* v0.9.1 [#80](https://github.com/jupyter/terminado/pull/80)
([@afshin](https://github.com/afshin))
+
+## 0.9.0
+
+* Drop python 2 and 3.4 and 3.5 support
[#77](https://github.com/jupyter/terminado/pull/77)
([@jasongrout](https://github.com/jasongrout))
+* Make sure that all process output makes it to the terminal
[#76](https://github.com/jupyter/terminado/pull/76)
([@athornton](https://github.com/athornton))
+
+## v0.8.3
+
+* Add kwargs to NamedTermManager.new_named_terminal
[#70](https://github.com/jupyter/terminado/pull/70)
([@qntnrbns](https://github.com/qntnrbns))
+
+## 0.8.2
+
+* Run only the basic test on Appveyor
[#64](https://github.com/jupyter/terminado/pull/64)
([@blink1073](https://github.com/blink1073))
+* Fix for https://github.com/jupyter/terminado/issues/62
[#63](https://github.com/jupyter/terminado/pull/63)
([@cpranav](https://github.com/cpranav))
+* Add python_requires to help pip, and version classifers
[#57](https://github.com/jupyter/terminado/pull/57)
([@hugovk](https://github.com/hugovk))
+* Set websocket.terminal to None when the child exits
[#55](https://github.com/jupyter/terminado/pull/55)
([@takluyver](https://github.com/takluyver))
+
+## 0.8.1
+
+* Add support for Python 2 on Windows
[#50](https://github.com/jupyter/terminado/pull/50)
([@blink1073](https://github.com/blink1073))
+* Update ownership [#48](https://github.com/jupyter/terminado/pull/48)
([@blink1073](https://github.com/blink1073))
+
+## 0.8
+
+* Add support for Windows [#44](https://github.com/jupyter/terminado/pull/44)
([@blink1073](https://github.com/blink1073))
+
+## 0.7
+
+* Reduce duplication in PtyWithClients.terminate
[#43](https://github.com/jupyter/terminado/pull/43)
([@srstevenson](https://github.com/srstevenson))
+* Pass signal to terminal from manager method
[#42](https://github.com/jupyter/terminado/pull/42)
([@srstevenson](https://github.com/srstevenson))
+* Send SIGHUP to the process group in the terminal, not just the leader
[#38](https://github.com/jupyter/terminado/pull/38)
([@takluyver](https://github.com/takluyver))
+* Include LICENSE.txt file in the tarball
[#34](https://github.com/jupyter/terminado/pull/34)
([@irushchyshyn](https://github.com/irushchyshyn))
+* Add requirements and README for demos
[#31](https://github.com/jupyter/terminado/pull/31)
([@stuaxo](https://github.com/stuaxo))
+* Revert pinging implementation, and call super method in websocket open
[#28](https://github.com/jupyter/terminado/pull/28)
([@takluyver](https://github.com/takluyver))
+* keep websocket connection alive by sending pings when there is no activity
[#27](https://github.com/jupyter/terminado/pull/27)
([@zyzhu2000](https://github.com/zyzhu2000))
+
+## 0.6
+
+* require tornado 4 [#26](https://github.com/jupyter/terminado/pull/26)
([@minrk](https://github.com/minrk))
+* Close PtyProcess object instead of closing fd directly
[#24](https://github.com/jupyter/terminado/pull/24)
([@takluyver](https://github.com/takluyver))
+* use tornado's check_origin method name
[#20](https://github.com/jupyter/terminado/pull/20)
([@minrk](https://github.com/minrk))
+* Change `_log` -> `_logger`.
[#19](https://github.com/jupyter/terminado/pull/19)
([@mgmarino](https://github.com/mgmarino))
+* Make built wheels universal.
[#14](https://github.com/jupyter/terminado/pull/14)
([@aragilar](https://github.com/aragilar))
+
+## 0.5
+
+* Fix bugs when max_terminals reached, with test cases
[#11](https://github.com/jupyter/terminado/pull/11)
([@payne92](https://github.com/payne92))
+* More liberal read time out to address Travis CI test issues
[#10](https://github.com/jupyter/terminado/pull/10)
([@payne92](https://github.com/payne92))
+* More unit tests [#8](https://github.com/jupyter/terminado/pull/8)
([@payne92](https://github.com/payne92))
+
+## 0.4
+
+* Initial unit test framework
[#6](https://github.com/jupyter/terminado/pull/6)
([@payne92](https://github.com/payne92))
+* Buffer the last 10 reads from the pty, and play back to new clients
[#5](https://github.com/jupyter/terminado/pull/5)
([@takluyver](https://github.com/takluyver))
+
+## 0.3.2
+
+* add async terminate method [#3](https://github.com/jupyter/terminado/pull/3)
([@minrk](https://github.com/minrk))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/terminado-0.12.1/MANIFEST.in
new/terminado-0.13.1/MANIFEST.in
--- old/terminado-0.12.1/MANIFEST.in 2021-03-19 18:57:45.000000000 +0100
+++ new/terminado-0.13.1/MANIFEST.in 2022-01-27 15:20:39.000000000 +0100
@@ -1,3 +1,8 @@
include LICENSE
+include CHANGELOG.md
+include RELEASE.md
include terminado/uimod_embed.js
include terminado/_static/terminado.js
+
+prune demos
+prune doc
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/terminado-0.12.1/PKG-INFO
new/terminado-0.13.1/PKG-INFO
--- old/terminado-0.12.1/PKG-INFO 2021-09-07 16:32:39.483855700 +0200
+++ new/terminado-0.13.1/PKG-INFO 2022-01-27 15:20:57.056231500 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: terminado
-Version: 0.12.1
+Version: 0.13.1
Summary: Tornado websocket backend for the Xterm.js Javascript terminal
emulator library.
Home-page: https://github.com/jupyter/terminado
Author: Jupyter Development Team
@@ -9,87 +9,12 @@
Platform: UNKNOWN
Classifier: Environment :: Web Environment
Classifier: License :: OSI Approved :: BSD License
-Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Terminals :: Terminal Emulators/X Terminals
-Requires-Python: >=3.6
+Requires-Python: >=3.7
Description-Content-Type: text/x-rst
Provides-Extra: test
License-File: LICENSE
-This is a `Tornado <http://tornadoweb.org/>`_ websocket backend for the
-`Xterm.js <https://xtermjs.org/>`_ Javascript terminal emulator
-library.
-
-It evolved out of `pyxterm <https://github.com/mitotic/pyxterm>`_, which was
-part of `GraphTerm <https://github.com/mitotic/graphterm>`_ (as lineterm.py),
-v0.57.0 (2014-07-18), and ultimately derived from the public-domain `Ajaxterm
-<http://antony.lesuisse.org/software/ajaxterm/>`_ code, v0.11 (2008-11-13)
(also
-on Github as part of `QWeb <https://github.com/antonylesuisse/qweb>`_).
-
-Modules:
-
-* ``terminado.management``: controls launching virtual terminals,
- connecting them to Tornado's event loop, and closing them down.
-* ``terminado.websocket``: Provides a websocket handler for communicating with
- a terminal.
-* ``terminado.uimodule``: Provides a ``Terminal`` Tornado `UI Module
- <http://www.tornadoweb.org/en/stable/guide/templates.html#ui-modules>`_.
-
-JS:
-
-* ``terminado/_static/terminado.js``: A lightweight wrapper to set up a
- term.js terminal with a websocket.
-
-Local Installation:
-
- $ pip install -e .[test]
-
-
-Usage example:
-
-.. code:: python
-
- import os.path
- import tornado.web
- import tornado.ioloop
- # This demo requires tornado_xstatic and XStatic-term.js
- import tornado_xstatic
-
- import terminado
- STATIC_DIR = os.path.join(os.path.dirname(terminado.__file__), "_static")
-
- class TerminalPageHandler(tornado.web.RequestHandler):
- def get(self):
- return self.render("termpage.html", static=self.static_url,
-
xstatic=self.application.settings['xstatic_url'],
- ws_url_path="/websocket")
-
- if __name__ == '__main__':
- term_manager = terminado.SingleTermManager(shell_command=['bash'])
- handlers = [
- (r"/websocket", terminado.TermSocket,
- {'term_manager': term_manager}),
- (r"/", TerminalPageHandler),
- (r"/xstatic/(.*)", tornado_xstatic.XStaticFileHandler,
- {'allowed_modules': ['termjs']})
- ]
- app = tornado.web.Application(handlers, static_path=STATIC_DIR,
- xstatic_url = tornado_xstatic.url_maker('/xstatic/'))
- # Serve at http://localhost:8765/ N.B. Leaving out 'localhost' here
will
- # work, but it will listen on the public network interface as well.
- # Given what terminado does, that would be rather a security hole.
- app.listen(8765, 'localhost')
- try:
- tornado.ioloop.IOLoop.instance().start()
- finally:
- term_manager.shutdown()
-
-See the `demos directory
<https://github.com/takluyver/terminado/tree/master/demos>`_
-for more examples. This is a simplified version of the ``single.py`` demo.
-
-Run the unit tests with:
-
- $ pytest
-
+UNKNOWN
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/terminado-0.12.1/RELEASE.md
new/terminado-0.13.1/RELEASE.md
--- old/terminado-0.12.1/RELEASE.md 1970-01-01 01:00:00.000000000 +0100
+++ new/terminado-0.13.1/RELEASE.md 2022-01-27 15:20:39.000000000 +0100
@@ -0,0 +1,17 @@
+This repository uses
[`jupyter_releaser`](https://github.com/jupyter-server/jupyter_releaser) for
automated releases.
+
+To create a manual release, update the version number in
`terminado/__init__.py`, then run the following:
+
+```
+git clean -dffx
+python setup.py sdist
+python setup.py bdist_wheel
+export script_version=`python setup.py --version 2>/dev/null`
+git commit -a -m "Release $script_version"
+git tag $script_version
+git push --all
+git push --tags
+pip install twine
+twine check dist/*
+twine upload dist/*
+```
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/terminado-0.12.1/pyproject.toml
new/terminado-0.13.1/pyproject.toml
--- old/terminado-0.12.1/pyproject.toml 2021-03-19 18:57:45.000000000 +0100
+++ new/terminado-0.13.1/pyproject.toml 2022-01-27 15:20:47.000000000 +0100
@@ -1,3 +1,20 @@
[build-system]
-requires = ["setuptools>=40.8.0", "wheel"]
+requires = ["setuptools>=40.8.0", "wheel", "tornado"]
build-backend = "setuptools.build_meta"
+
+[tool.jupyter-releaser]
+skip = ["check-links"]
+
+[tool.tbump.version]
+current = "0.13.1"
+regex = '''
+ (?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)
+ ((?P<channel>a|b|rc|.dev)(?P<release>\d+))?
+'''
+
+[tool.tbump.git]
+message_template = "Bump to {new_version}"
+tag_template = "v{new_version}"
+
+[[tool.tbump.file]]
+src = "terminado/__init__.py"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/terminado-0.12.1/setup.cfg
new/terminado-0.13.1/setup.cfg
--- old/terminado-0.12.1/setup.cfg 2021-09-07 16:32:39.484384000 +0200
+++ new/terminado-0.13.1/setup.cfg 2022-01-27 15:20:57.056231500 +0100
@@ -1,3 +1,30 @@
+[metadata]
+name = terminado
+version = attr: terminado.__init__.__version__
+author = Jupyter Development Team
+author_email = [email protected]
+url = https://github.com/jupyter/terminado
+description = Tornado websocket backend for the Xterm.js Javascript terminal
emulator library.
+description_file = README.rst
+long_description_content_type = text/x-rst
+classifiers =
+ Environment :: Web Environment
+ License :: OSI Approved :: BSD License
+ Programming Language :: Python :: 3
+ Topic :: Terminals :: Terminal Emulators/X Terminals
+
+[options]
+include_package_data = True
+packages = find:
+python_requires = >=3.7
+install_requires =
+ ptyprocess;os_name!='nt'
+ pywinpty (>=1.1.0);os_name=='nt'
+ tornado (>=4)
+
+[options.extras_require]
+test = pytest
+
[egg_info]
tag_build =
tag_date = 0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/terminado-0.12.1/setup.py
new/terminado-0.13.1/setup.py
--- old/terminado-0.12.1/setup.py 2021-05-18 11:41:39.000000000 +0200
+++ new/terminado-0.13.1/setup.py 2022-01-27 15:20:39.000000000 +0100
@@ -1,40 +1,2 @@
-from setuptools import setup, find_packages
-import io
-
-with io.open('terminado/__init__.py', encoding='utf-8') as fid:
- for line in fid:
- if line.startswith('__version__'):
- version = line.strip().split()[-1][1:-1]
- break
-
-
-setup_args = dict(
- name = "terminado",
- version = version,
- author = "Jupyter Development Team",
- author_email = "[email protected]",
- url = "https://github.com/jupyter/terminado",
- packages = find_packages(),
- include_package_data = True,
- description = "Tornado websocket backend for the Xterm.js Javascript
terminal emulator library.",
- long_description = open("README.rst").read(),
- long_description_content_type="text/x-rst",
- install_requires = [
- "ptyprocess;os_name!='nt'",
- "pywinpty (>=1.1.0);os_name=='nt'",
- "tornado (>=4)",
- ],
- extras_require = dict(test=['pytest']),
- python_requires=">=3.6",
- classifiers=[
- "Environment :: Web Environment",
- "License :: OSI Approved :: BSD License",
- "Programming Language :: Python :: 2",
- "Programming Language :: Python :: 3",
- "Topic :: Terminals :: Terminal Emulators/X Terminals",
- ]
-)
-
-
-if __name__ == '__main__':
- setup(**setup_args)
+from setuptools import setup
+setup()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/terminado-0.12.1/terminado/__init__.py
new/terminado-0.13.1/terminado/__init__.py
--- old/terminado-0.12.1/terminado/__init__.py 2021-09-07 16:32:30.000000000
+0200
+++ new/terminado-0.13.1/terminado/__init__.py 2022-01-27 15:20:47.000000000
+0100
@@ -12,4 +12,4 @@
# Prevent a warning about no attached handlers in Python 2
logging.getLogger(__name__).addHandler(logging.NullHandler())
-__version__ = '0.12.1'
+__version__ = '0.13.1'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/terminado-0.12.1/terminado/management.py
new/terminado-0.13.1/terminado/management.py
--- old/terminado-0.12.1/terminado/management.py 2021-09-07
16:32:20.000000000 +0200
+++ new/terminado-0.13.1/terminado/management.py 2022-01-27
15:20:39.000000000 +0100
@@ -18,15 +18,20 @@
try:
from ptyprocess import PtyProcessUnicode
+
+
def preexec_fn():
signal.signal(signal.SIGPIPE, signal.SIG_DFL)
except ImportError:
- from winpty import PtyProcess as PtyProcessUnicode
+ try:
+ from winpty import PtyProcess as PtyProcessUnicode
+ except ImportError:
+ PtyProcessUnicode = object
preexec_fn = None
from tornado.ioloop import IOLoop
-ENV_PREFIX = "PYXTERM_" # Environment variable prefix
+ENV_PREFIX = "PYXTERM_" # Environment variable prefix
# TERM is set according to xterm.js capabilities
DEFAULT_TERM_TYPE = "xterm-256color"
@@ -35,14 +40,8 @@
class PtyWithClients(object):
def __init__(self, argv, env=[], cwd=None):
self.clients = []
- # If you start the process and then construct this object from it,
- # output generated by the process prior to the object's creation
- # is lost. Hence the change from 0.8.3.
- # Buffer output until a client connects; then let the client
- # drain the buffer.
- # We keep the same read_buffer as before
- self.read_buffer = deque([], maxlen=10)
- self.preopen_buffer = deque([])
+ # Use read_buffer to store historical messages for reconnection
+ self.read_buffer = deque([], maxlen=20)
kwargs = dict(argv=argv, env=env, cwd=cwd)
if preexec_fn is not None:
kwargs["preexec_fn"] = preexec_fn
@@ -97,7 +96,9 @@
signal.SIGTERM]
loop = IOLoop.current()
- def sleep(): return asyncio.sleep(self.ptyproc.delayafterterminate)
+
+ def sleep():
+ return asyncio.sleep(self.ptyproc.delayafterterminate)
if not self.ptyproc.isalive():
return True
@@ -228,13 +229,9 @@
return
ptywclients = self.ptys_by_fd[fd]
try:
+ self.pre_pty_read_hook(ptywclients)
s = ptywclients.ptyproc.read(65536)
- client_list = ptywclients.clients
ptywclients.read_buffer.append(s)
- if not client_list:
- # No one to consume our output: buffer it.
- ptywclients.preopen_buffer.append(s)
- return
for client in ptywclients.clients:
client.on_pty_read(s)
except EOFError:
@@ -242,6 +239,9 @@
for client in ptywclients.clients:
client.on_pty_died()
+ def pre_pty_read_hook(self, ptywclients):
+ """Hook before pty read, subclass can patch something into ptywclients
when pty_read"""
+
def get_terminal(self, url_component=None):
"""Override in a subclass to give a terminal to a new websocket
connection
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/terminado-0.12.1/terminado/tests/basic_test.py
new/terminado-0.13.1/terminado/tests/basic_test.py
--- old/terminado-0.12.1/terminado/tests/basic_test.py 2021-09-07
11:21:15.000000000 +0200
+++ new/terminado-0.13.1/terminado/tests/basic_test.py 2022-01-27
15:20:39.000000000 +0100
@@ -14,11 +14,9 @@
from tornado.ioloop import IOLoop
import tornado.testing
import datetime
-import logging
import json
import os
import re
-import signal
import pytest
from sys import platform
@@ -39,6 +37,8 @@
class TestTermClient(object):
"""Test connection to a terminal manager"""
+ __test__ = False
+
def __init__(self, websocket):
self.ws = websocket
self.pending_read = None
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/terminado-0.12.1/terminado/websocket.py
new/terminado-0.13.1/terminado/websocket.py
--- old/terminado-0.12.1/terminado/websocket.py 2021-08-12 13:08:56.000000000
+0200
+++ new/terminado-0.13.1/terminado/websocket.py 2022-01-27 15:20:39.000000000
+0100
@@ -16,9 +16,7 @@
import json
import logging
-import re
-import tornado.web
import tornado.websocket
@@ -40,6 +38,9 @@
self._logger = logging.getLogger(__name__)
self._user_command = ''
+ # Enable if the environment variable LOG_TERMINAL_OUTPUT is "true"
+ self._enable_output_logging =
(str.lower(os.getenv("LOG_TERMINAL_OUTPUT", "false")) == "true")
+
def origin_check(self, origin=None):
"""Deprecated: backward-compat for terminado <= 0.5."""
return self.check_origin(origin or self.request.headers.get('Origin'))
@@ -62,12 +63,13 @@
self.terminal.clients.append(self)
self.send_json_message(["setup", {}])
self._logger.info("TermSocket.open: Opened %s", self.term_name)
- # Now drain the preopen buffer, if it exists.
+ # Now drain the preopen buffer, if reconnect.
buffered = ""
+ preopen_buffer = self.terminal.read_buffer.copy()
while True:
- if not self.terminal.preopen_buffer:
+ if not preopen_buffer:
break
- s = self.terminal.preopen_buffer.popleft()
+ s = preopen_buffer.popleft()
buffered += s
if buffered:
self.on_pty_read(buffered)
@@ -78,14 +80,12 @@
def send_json_message(self, content):
json_msg = json.dumps(content)
- pattern = re.compile(r'^(\w|\d)+')
- try:
- if pattern.search(content[1]):
- self.log_terminal_output(f'STDOUT: {content[1]}')
- except TypeError as e:
- self._logger.error(f'not able to serialize: {e}')
self.write_message(json_msg)
+ if self._enable_output_logging:
+ if content[0] == "stdout" and isinstance(content[1], str):
+ self.log_terminal_output(f'STDOUT: {content[1]}')
+
def on_message(self, message):
"""Handle incoming websocket message
@@ -98,11 +98,12 @@
if msg_type == "stdin":
self.terminal.ptyproc.write(command[1])
- if command[1] == '\r':
- self.log_terminal_output(f'STDIN: {self._user_command}')
- self._user_command = ''
- else:
- self._user_command += command[1]
+ if self._enable_output_logging:
+ if command[1] == '\r':
+ self.log_terminal_output(f'STDIN: {self._user_command}')
+ self._user_command = ''
+ else:
+ self._user_command += command[1]
elif msg_type == "set_size":
self.size = command[1:3]
self.terminal.resize_to_smallest()
@@ -128,9 +129,8 @@
def log_terminal_output(self, log: str = ''):
"""
- Logs the terminal input/output if the environment variable
LOG_TERMINAL_OUTPUT is "true"
+ Logs the terminal input/output
:param log: log line to write
:return:
"""
- if str.lower(os.getenv("LOG_TERMINAL_OUTPUT", "false")) == "true":
- self._logger.debug(log)
+ self._logger.debug(log)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/terminado-0.12.1/terminado.egg-info/PKG-INFO
new/terminado-0.13.1/terminado.egg-info/PKG-INFO
--- old/terminado-0.12.1/terminado.egg-info/PKG-INFO 2021-09-07
16:32:39.000000000 +0200
+++ new/terminado-0.13.1/terminado.egg-info/PKG-INFO 2022-01-27
15:20:57.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: terminado
-Version: 0.12.1
+Version: 0.13.1
Summary: Tornado websocket backend for the Xterm.js Javascript terminal
emulator library.
Home-page: https://github.com/jupyter/terminado
Author: Jupyter Development Team
@@ -9,87 +9,12 @@
Platform: UNKNOWN
Classifier: Environment :: Web Environment
Classifier: License :: OSI Approved :: BSD License
-Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Terminals :: Terminal Emulators/X Terminals
-Requires-Python: >=3.6
+Requires-Python: >=3.7
Description-Content-Type: text/x-rst
Provides-Extra: test
License-File: LICENSE
-This is a `Tornado <http://tornadoweb.org/>`_ websocket backend for the
-`Xterm.js <https://xtermjs.org/>`_ Javascript terminal emulator
-library.
-
-It evolved out of `pyxterm <https://github.com/mitotic/pyxterm>`_, which was
-part of `GraphTerm <https://github.com/mitotic/graphterm>`_ (as lineterm.py),
-v0.57.0 (2014-07-18), and ultimately derived from the public-domain `Ajaxterm
-<http://antony.lesuisse.org/software/ajaxterm/>`_ code, v0.11 (2008-11-13)
(also
-on Github as part of `QWeb <https://github.com/antonylesuisse/qweb>`_).
-
-Modules:
-
-* ``terminado.management``: controls launching virtual terminals,
- connecting them to Tornado's event loop, and closing them down.
-* ``terminado.websocket``: Provides a websocket handler for communicating with
- a terminal.
-* ``terminado.uimodule``: Provides a ``Terminal`` Tornado `UI Module
- <http://www.tornadoweb.org/en/stable/guide/templates.html#ui-modules>`_.
-
-JS:
-
-* ``terminado/_static/terminado.js``: A lightweight wrapper to set up a
- term.js terminal with a websocket.
-
-Local Installation:
-
- $ pip install -e .[test]
-
-
-Usage example:
-
-.. code:: python
-
- import os.path
- import tornado.web
- import tornado.ioloop
- # This demo requires tornado_xstatic and XStatic-term.js
- import tornado_xstatic
-
- import terminado
- STATIC_DIR = os.path.join(os.path.dirname(terminado.__file__), "_static")
-
- class TerminalPageHandler(tornado.web.RequestHandler):
- def get(self):
- return self.render("termpage.html", static=self.static_url,
-
xstatic=self.application.settings['xstatic_url'],
- ws_url_path="/websocket")
-
- if __name__ == '__main__':
- term_manager = terminado.SingleTermManager(shell_command=['bash'])
- handlers = [
- (r"/websocket", terminado.TermSocket,
- {'term_manager': term_manager}),
- (r"/", TerminalPageHandler),
- (r"/xstatic/(.*)", tornado_xstatic.XStaticFileHandler,
- {'allowed_modules': ['termjs']})
- ]
- app = tornado.web.Application(handlers, static_path=STATIC_DIR,
- xstatic_url = tornado_xstatic.url_maker('/xstatic/'))
- # Serve at http://localhost:8765/ N.B. Leaving out 'localhost' here
will
- # work, but it will listen on the public network interface as well.
- # Given what terminado does, that would be rather a security hole.
- app.listen(8765, 'localhost')
- try:
- tornado.ioloop.IOLoop.instance().start()
- finally:
- term_manager.shutdown()
-
-See the `demos directory
<https://github.com/takluyver/terminado/tree/master/demos>`_
-for more examples. This is a simplified version of the ``single.py`` demo.
-
-Run the unit tests with:
-
- $ pytest
-
+UNKNOWN
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/terminado-0.12.1/terminado.egg-info/SOURCES.txt
new/terminado-0.13.1/terminado.egg-info/SOURCES.txt
--- old/terminado-0.12.1/terminado.egg-info/SOURCES.txt 2021-09-07
16:32:39.000000000 +0200
+++ new/terminado-0.13.1/terminado.egg-info/SOURCES.txt 2022-01-27
15:20:57.000000000 +0100
@@ -1,7 +1,10 @@
+CHANGELOG.md
LICENSE
MANIFEST.in
README.rst
+RELEASE.md
pyproject.toml
+setup.cfg
setup.py
terminado/__init__.py
terminado/management.py