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 <a...@gmx.de>
+
+- 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 = jupy...@googlegroups.com
+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 = "jupy...@googlegroups.com",
-    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

Reply via email to