Hello community,

here is the log from the commit of package python-wurlitzer for 
openSUSE:Factory checked in at 2019-11-12 16:11:03
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-wurlitzer (Old)
 and      /work/SRC/openSUSE:Factory/.python-wurlitzer.new.2990 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-wurlitzer"

Tue Nov 12 16:11:03 2019 rev:3 rq:745984 version:2.0.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-wurlitzer/python-wurlitzer.changes        
2019-07-22 17:19:19.745913624 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-wurlitzer.new.2990/python-wurlitzer.changes  
    2019-11-12 16:11:10.015736078 +0100
@@ -1,0 +2,6 @@
+Wed Nov  6 12:18:11 UTC 2019 - Tomáš Chvátal <[email protected]>
+
+- Update to 2.0:
+  * use selectors instead of select.poll #34
+
+-------------------------------------------------------------------

Old:
----
  wurlitzer-1.0.3.tar.gz

New:
----
  wurlitzer-2.0.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-wurlitzer.spec ++++++
--- /var/tmp/diff_new_pack.gYYA7Q/_old  2019-11-12 16:11:11.375737540 +0100
+++ /var/tmp/diff_new_pack.gYYA7Q/_new  2019-11-12 16:11:11.375737540 +0100
@@ -18,21 +18,22 @@
 
 %{?!python_module:%define python_module() python-%{**} python3-%{**}}
 Name:           python-wurlitzer
-Version:        1.0.3
+Version:        2.0.0
 Release:        0
 Summary:        Python package to capture C-level output in context managers
 License:        MIT
-Group:          Development/Languages/Python
 URL:            https://github.com/minrk/wurlitzer
 Source:         
https://files.pythonhosted.org/packages/source/w/wurlitzer/wurlitzer-%{version}.tar.gz
+BuildRequires:  %{python_module mock}
+BuildRequires:  %{python_module pytest}
 BuildRequires:  %{python_module setuptools}
 BuildRequires:  fdupes
 BuildRequires:  python-rpm-macros
+BuildRequires:  python-selectors2
 BuildArch:      noarch
-# SECTION test requirements
-BuildRequires:  %{python_module mock}
-BuildRequires:  %{python_module pytest}
-# /SECTION
+%ifpython2
+Requires:       python-selectors2
+%endif
 %python_subpackages
 
 %description

++++++ wurlitzer-1.0.3.tar.gz -> wurlitzer-2.0.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/wurlitzer-1.0.3/.bumpversion.cfg 
new/wurlitzer-2.0.0/.bumpversion.cfg
--- old/wurlitzer-1.0.3/.bumpversion.cfg        1970-01-01 01:00:00.000000000 
+0100
+++ new/wurlitzer-2.0.0/.bumpversion.cfg        2019-10-17 15:57:18.000000000 
+0200
@@ -0,0 +1,19 @@
+[bumpversion]
+current_version = 1.0.4.dev
+parse = 
(?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)(\.(?P<release>[a-z0-9]+))?
+tag_name = {new_version}
+allow_dirty = True
+commit = True
+tag = False
+serialize = 
+       {major}.{minor}.{patch}.{release}
+       {major}.{minor}.{patch}
+
+[bumpversion:file:wurlitzer.py]
+
+[bumpversion:part:release]
+optional_value = stable
+values = 
+       dev
+       stable
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/wurlitzer-1.0.3/.gitignore 
new/wurlitzer-2.0.0/.gitignore
--- old/wurlitzer-1.0.3/.gitignore      1970-01-01 01:00:00.000000000 +0100
+++ new/wurlitzer-2.0.0/.gitignore      2018-05-20 19:43:32.000000000 +0200
@@ -0,0 +1,64 @@
+# Byte-compiled / optimized / DLL files
+__pycache__/
+*.py[cod]
+*$py.class
+
+# C extensions
+*.so
+
+# Distribution / packaging
+MANIFEST
+.Python
+env/
+build/
+develop-eggs/
+dist/
+downloads/
+eggs/
+.eggs/
+lib/
+lib64/
+parts/
+sdist/
+var/
+*.egg-info/
+.installed.cfg
+*.egg
+
+# PyInstaller
+#  Usually these files are written by a python script from a template
+#  before PyInstaller builds the exe, so as to inject date/other infos into it.
+*.manifest
+*.spec
+
+# Installer logs
+pip-log.txt
+pip-delete-this-directory.txt
+
+# Unit test / coverage reports
+htmlcov/
+.tox/
+.coverage
+.coverage.*
+.cache
+.pytest_cache
+nosetests.xml
+coverage.xml
+*,cover
+.hypothesis/
+
+# Translations
+*.mo
+*.pot
+
+# Django stuff:
+*.log
+
+# Sphinx documentation
+docs/_build/
+
+# PyBuilder
+target/
+
+#Ipython Notebook
+.ipynb_checkpoints
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/wurlitzer-1.0.3/.travis.yml 
new/wurlitzer-2.0.0/.travis.yml
--- old/wurlitzer-1.0.3/.travis.yml     1970-01-01 01:00:00.000000000 +0100
+++ new/wurlitzer-2.0.0/.travis.yml     2019-06-13 10:48:40.000000000 +0200
@@ -0,0 +1,43 @@
+language: python
+python:
+  - 2.7
+  - 3.4
+  - 3.5
+  - 3.6
+  - nightly
+branches:
+  only:
+    - master
+before_install:
+  - |
+    # setup mac virtualenv
+    if [[ $(uname) == "Darwin" ]]; then
+      brew install python
+      python3 -m pip install virtualenv
+      virtualenv -p $(which python$PY) ./test-env
+      source ./test-env/bin/activate
+    fi
+install:
+  - pip install --upgrade setuptools pip
+  - pip install --upgrade . -r dev-requirements.txt
+  - pip freeze
+script:
+  - py.test --cov wurlitzer test.py
+after_success:
+  - codecov
+env:
+  global:
+    - HOMEBREW_NO_AUTO_UPDATE=1
+matrix:
+  include:
+    - os: osx
+      language: generic
+      env:
+        - PY=2
+    - os: osx
+      language: generic
+      env:
+        - PY=3
+    - os: linux
+      dist: xenial
+      python: 3.7
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/wurlitzer-1.0.3/CHANGELOG.md 
new/wurlitzer-2.0.0/CHANGELOG.md
--- old/wurlitzer-1.0.3/CHANGELOG.md    1970-01-01 01:00:00.000000000 +0100
+++ new/wurlitzer-2.0.0/CHANGELOG.md    2019-10-25 13:57:31.000000000 +0200
@@ -0,0 +1,67 @@
+### Changelog
+
+All notable changes to this project will be documented in this file. Dates are 
displayed in UTC.
+
+Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
+
+### [2.0.0](https://github.com/minrk/wurlitzer/compare/1.0.3...2.0.0)
+
+> 25 October 2019
+
+- use selectors instead of select.poll 
[`#34`](https://github.com/minrk/wurlitzer/pull/34). Requires `selectors2` 
package on Python < 3.4.
+
+#### [1.0.3](https://github.com/minrk/wurlitzer/compare/1.0.2...1.0.3)
+
+> 13 June 2019
+
+- Add thread lock  [`#30`](https://github.com/minrk/wurlitzer/pull/30)
+- using poll instead of select in forwarder 
[`#24`](https://github.com/minrk/wurlitzer/pull/24)
+- setup.py improvements [`#19`](https://github.com/minrk/wurlitzer/pull/19)
+- Link blogpost about redirecting stdout/stderr 
[`#18`](https://github.com/minrk/wurlitzer/pull/18)
+- Prevent wurlitzer from entering multiple times 
[`#27`](https://github.com/minrk/wurlitzer/pull/28)
+- fix threading issues 
[`1c59bb4`](https://github.com/minrk/wurlitzer/commit/1c59bb435da05fe2e48915aa5c9f485575a7ad1b)
+
+#### [1.0.2](https://github.com/minrk/wurlitzer/compare/1.0.1...1.0.2)
+
+> 20 May 2018
+
+- move fflush to a thread [`#16`](https://github.com/minrk/wurlitzer/pull/16)
+
+#### [1.0.1](https://github.com/minrk/wurlitzer/compare/1.0.0...1.0.1)
+
+> 22 January 2018
+
+- avoid unnecessary close of original FDs 
[`#11`](https://github.com/minrk/wurlitzer/pull/11)
+
+### [1.0.0](https://github.com/minrk/wurlitzer/compare/0.2.0...1.0.0)
+
+> 22 June 2017
+
+- use control pipe to signal closure 
[`#8`](https://github.com/minrk/wurlitzer/pull/8)
+
+- Do nothing if loaded in terminal IPython 
[`#2`](https://github.com/minrk/wurlitzer/pull/2)
+- retry dup2 on EBUSY 
[`6e2e906`](https://github.com/minrk/wurlitzer/commit/6e2e906a8f2ffbd5b27d92a147cd59b0d5008041)
+
+#### [0.2.0](https://github.com/minrk/wurlitzer/compare/0.1.2...0.2.0)
+
+> 14 March 2016
+
+- Make it an IPython extension 
[`5aa2237`](https://github.com/minrk/wurlitzer/commit/5aa22375de5516915bb1cb9168e04430933e86a6)
+
+#### [0.1.2](https://github.com/minrk/wurlitzer/compare/0.1.1...0.1.2)
+
+> 13 March 2016
+
+- flush before entering wurlitzer 
[`a8b3a85`](https://github.com/minrk/wurlitzer/commit/a8b3a856a576fe50e8771fddad7fcf3b21ae3285)
+
+#### [0.1.1](https://github.com/minrk/wurlitzer/compare/0.1.0...0.1.1)
+
+> 9 March 2016
+
+- fix names in README, long_description 
[`7f95a69`](https://github.com/minrk/wurlitzer/commit/7f95a690985e9ff2e7360c2c433fa9b9187f8758)
+
+#### 0.1.0
+
+> 9 March 2016
+
+Initial release
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/wurlitzer-1.0.3/PKG-INFO new/wurlitzer-2.0.0/PKG-INFO
--- old/wurlitzer-1.0.3/PKG-INFO        2019-06-13 10:49:38.000000000 +0200
+++ new/wurlitzer-2.0.0/PKG-INFO        2019-10-25 13:58:18.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: wurlitzer
-Version: 1.0.3
+Version: 2.0.0
 Summary: Capture C-level output in context managers
 Home-page: https://github.com/minrk/wurlitzer
 Author: Min RK
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/wurlitzer-1.0.3/release.sh 
new/wurlitzer-2.0.0/release.sh
--- old/wurlitzer-1.0.3/release.sh      1970-01-01 01:00:00.000000000 +0100
+++ new/wurlitzer-2.0.0/release.sh      2016-03-09 15:31:50.000000000 +0100
@@ -0,0 +1,9 @@
+#!/bin/sh
+set -e
+
+bumpversion release --tag
+py.test test.py
+python setup.py sdist bdist_wheel
+twine upload dist/*
+bumpversion patch
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/wurlitzer-1.0.3/setup.py new/wurlitzer-2.0.0/setup.py
--- old/wurlitzer-1.0.3/setup.py        2018-12-10 12:49:42.000000000 +0100
+++ new/wurlitzer-2.0.0/setup.py        2019-10-25 13:41:32.000000000 +0200
@@ -33,6 +33,7 @@
     author="Min RK",
     author_email="[email protected]",
     description="Capture C-level output in context managers",
+    install_requires=["selectors2; python_version<'3.4'"],
     long_description=long_description,
     long_description_content_type="text/markdown",
     url="https://github.com/minrk/wurlitzer";,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/wurlitzer-1.0.3/wurlitzer.egg-info/PKG-INFO 
new/wurlitzer-2.0.0/wurlitzer.egg-info/PKG-INFO
--- old/wurlitzer-1.0.3/wurlitzer.egg-info/PKG-INFO     2019-06-13 
10:49:38.000000000 +0200
+++ new/wurlitzer-2.0.0/wurlitzer.egg-info/PKG-INFO     2019-10-25 
13:58:17.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: wurlitzer
-Version: 1.0.3
+Version: 2.0.0
 Summary: Capture C-level output in context managers
 Home-page: https://github.com/minrk/wurlitzer
 Author: Min RK
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/wurlitzer-1.0.3/wurlitzer.egg-info/SOURCES.txt 
new/wurlitzer-2.0.0/wurlitzer.egg-info/SOURCES.txt
--- old/wurlitzer-1.0.3/wurlitzer.egg-info/SOURCES.txt  2019-06-13 
10:49:38.000000000 +0200
+++ new/wurlitzer-2.0.0/wurlitzer.egg-info/SOURCES.txt  2019-10-25 
13:58:18.000000000 +0200
@@ -1,8 +1,13 @@
+.bumpversion.cfg
+.gitignore
+.travis.yml
+CHANGELOG.md
 Demo.ipynb
 LICENSE
 MANIFEST.in
 README.md
 dev-requirements.txt
+release.sh
 setup.cfg
 setup.py
 test.py
@@ -10,4 +15,5 @@
 wurlitzer.egg-info/PKG-INFO
 wurlitzer.egg-info/SOURCES.txt
 wurlitzer.egg-info/dependency_links.txt
+wurlitzer.egg-info/requires.txt
 wurlitzer.egg-info/top_level.txt
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/wurlitzer-1.0.3/wurlitzer.egg-info/requires.txt 
new/wurlitzer-2.0.0/wurlitzer.egg-info/requires.txt
--- old/wurlitzer-1.0.3/wurlitzer.egg-info/requires.txt 1970-01-01 
01:00:00.000000000 +0100
+++ new/wurlitzer-2.0.0/wurlitzer.egg-info/requires.txt 2019-10-25 
13:58:17.000000000 +0200
@@ -0,0 +1,3 @@
+
+[:python_version < "3.4"]
+selectors2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/wurlitzer-1.0.3/wurlitzer.py 
new/wurlitzer-2.0.0/wurlitzer.py
--- old/wurlitzer-1.0.3/wurlitzer.py    2019-06-13 10:49:36.000000000 +0200
+++ new/wurlitzer-2.0.0/wurlitzer.py    2019-10-25 13:50:51.000000000 +0200
@@ -4,7 +4,7 @@
 """
 from __future__ import print_function
 
-__version__ = '1.0.3'
+__version__ = '2.0.0'
 
 __all__ = [
     'pipes',
@@ -20,11 +20,18 @@
 from fcntl import fcntl, F_GETFL, F_SETFL
 import io
 import os
+
 try:
     from queue import Queue
 except ImportError:
     from Queue import Queue
-import select
+
+try:
+    import selectors
+except ImportError:
+    # py < 3.4
+    import selectors2 as selectors
+
 import sys
 import threading
 import time
@@ -176,13 +183,13 @@
             """Forward bytes on a pipe to stream messages"""
             draining = False
             flush_interval = 0
-            poller = select.poll()
+            poller = selectors.DefaultSelector()
+
             for pipe_ in pipes:
-                poller.register(pipe_, select.POLLIN | select.POLLPRI)
+                poller.register(pipe_, selectors.EVENT_READ)
 
             while pipes:
-                events = poller.poll(int(flush_interval * 1000))
-                #r = all([(r_[1] == (select.POLLIN | select.POLLPRI)) for r_ 
in events])
+                events = poller.select(flush_interval)
                 if events:
                     # found something to read, don't block select until
                     # we run out of things to read
@@ -200,7 +207,8 @@
                         flush_interval = self.flush_interval
                         continue
 
-                for fd, flags in events:
+                for selector_key, flags in events:
+                    fd = selector_key.fd
                     if fd == self._control_r:
                         draining = True
                         pipes.remove(self._control_r)


Reply via email to