Hello community,

here is the log from the commit of package python3-websockets for 
openSUSE:Factory checked in at 2017-07-07 10:17:41
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python3-websockets (Old)
 and      /work/SRC/openSUSE:Factory/.python3-websockets.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python3-websockets"

Fri Jul  7 10:17:41 2017 rev:9 rq:508511 version:3.3

Changes:
--------
--- /work/SRC/openSUSE:Factory/python3-websockets/python3-websockets.changes    
2016-09-08 17:39:19.000000000 +0200
+++ 
/work/SRC/openSUSE:Factory/.python3-websockets.new/python3-websockets.changes   
    2017-07-07 10:17:43.180192447 +0200
@@ -1,0 +2,12 @@
+Tue Apr  4 06:57:32 UTC 2017 - mschnit...@suse.com
+
+Release 3.3 (boo#1047446)
+
+* Reduced noise in logs caused by connection resets.
+* Avoided crashing on concurrent writes on slow connections.
+
+Add enforce_utf8_encoding.patch:
+ * Enforces utf-8 encoding in order to make the package build.
+   See: https://github.com/aaugustin/websockets/pull/171
+
+-------------------------------------------------------------------

Old:
----
  websockets-3.2.tar.gz

New:
----
  enforce_utf8_encoding.patch
  websockets-3.3.tar.gz

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

Other differences:
------------------
++++++ python3-websockets.spec ++++++
--- /var/tmp/diff_new_pack.bVd5PR/_old  2017-07-07 10:17:44.040070780 +0200
+++ /var/tmp/diff_new_pack.bVd5PR/_new  2017-07-07 10:17:44.044070214 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package python3-websockets
 #
-# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
 
 
 Name:           python3-websockets
-Version:        3.2
+Version:        3.3
 Release:        0
 Summary:        An implementation of the WebSocket Protocol (RFC 6455)
 License:        BSD-3-Clause
@@ -29,6 +29,8 @@
 Requires:       python3 >= 3.4
 BuildArch:      noarch
 
+Patch0:         enforce_utf8_encoding.patch
+
 %description
 python3-websockets is a library for developing WebSocket servers and clients in
 Python. It implements RFC 6455 with a focus on correctness and simplicity.
@@ -45,6 +47,7 @@
 
 %prep
 %setup -q -n websockets-%{version}
+%patch0
 
 %build
 python3 setup.py build
@@ -54,7 +57,7 @@
 
 %files
 %defattr(-,root,root,-)
-%doc LICENSE README
+%doc LICENSE README.rst
 %{python3_sitelib}/*
 
 %changelog

++++++ enforce_utf8_encoding.patch ++++++
Index: setup.py
===================================================================
--- setup.py    2017-03-29 15:47:49.000000000 +0200
+++ setup.py.new        2017-07-06 08:59:13.552338153 +0200
@@ -7,7 +7,7 @@
 
 description = "An implementation of the WebSocket Protocol (RFC 6455)"
 
-with open(os.path.join(root_dir, 'README.rst')) as f:
+with open(os.path.join(root_dir, 'README.rst'), encoding="utf-8") as f:
     long_description = f.read()
 
 with open(os.path.join(root_dir, 'websockets', 'version.py')) as f:
++++++ websockets-3.2.tar.gz -> websockets-3.3.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/websockets-3.2/PKG-INFO new/websockets-3.3/PKG-INFO
--- old/websockets-3.2/PKG-INFO 2016-08-17 23:23:04.000000000 +0200
+++ new/websockets-3.3/PKG-INFO 2017-03-29 15:48:14.000000000 +0200
@@ -1,13 +1,15 @@
 Metadata-Version: 1.1
 Name: websockets
-Version: 3.2
+Version: 3.3
 Summary: An implementation of the WebSocket Protocol (RFC 6455)
 Home-page: https://github.com/aaugustin/websockets
 Author: Aymeric Augustin
 Author-email: aymeric.augus...@m4x.org
 License: BSD
-Download-URL: https://pypi.python.org/pypi/websockets
-Description: ``websockets`` is a library for developing WebSocket servers_ and 
clients_ in
+Description: WebSockets
+        ==========
+        
+        ``websockets`` is a library for developing WebSocket servers_ and 
clients_ in
         Python. It implements `RFC 6455`_ with a focus on correctness and 
simplicity.
         It passes the `Autobahn Testsuite`_.
         
@@ -33,7 +35,7 @@
         .. _issue: https://github.com/aaugustin/websockets/issues/new
         .. _pull request: https://github.com/aaugustin/websockets/compare/
         
-Platform: all
+Platform: UNKNOWN
 Classifier: Development Status :: 5 - Production/Stable
 Classifier: Environment :: Web Environment
 Classifier: Intended Audience :: Developers
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/websockets-3.2/README new/websockets-3.3/README
--- old/websockets-3.2/README   2016-05-19 22:24:01.000000000 +0200
+++ new/websockets-3.3/README   1970-01-01 01:00:00.000000000 +0100
@@ -1,28 +0,0 @@
-WebSockets
-==========
-
-``websockets`` is a library for developing WebSocket servers_ and clients_ in
-Python. It implements `RFC 6455`_ with a focus on correctness and simplicity.
-It passes the `Autobahn Testsuite`_.
-
-Built on top of Python's asynchronous I/O support introduced in `PEP 3156`_,
-it provides an API based on coroutines, making it easy to write highly
-concurrent applications.
-
-Installation is as simple as ``pip install websockets``. It requires Python ≥
-3.4 or Python 3.3 with the ``asyncio`` module, which is available with ``pip
-install asyncio``.
-
-Documentation is available on `Read the Docs`_.
-
-Bug reports, patches and suggestions welcome! Just open an issue_ or send a
-`pull request`_.
-
-.. _servers: 
https://github.com/aaugustin/websockets/blob/master/example/server.py
-.. _clients: 
https://github.com/aaugustin/websockets/blob/master/example/client.py
-.. _RFC 6455: http://tools.ietf.org/html/rfc6455
-.. _Autobahn Testsuite: 
https://github.com/aaugustin/websockets/blob/master/compliance/README.rst
-.. _PEP 3156: http://www.python.org/dev/peps/pep-3156/
-.. _Read the Docs: https://websockets.readthedocs.io/
-.. _issue: https://github.com/aaugustin/websockets/issues/new
-.. _pull request: https://github.com/aaugustin/websockets/compare/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/websockets-3.2/README.rst 
new/websockets-3.3/README.rst
--- old/websockets-3.2/README.rst       1970-01-01 01:00:00.000000000 +0100
+++ new/websockets-3.3/README.rst       2016-05-19 22:24:01.000000000 +0200
@@ -0,0 +1,28 @@
+WebSockets
+==========
+
+``websockets`` is a library for developing WebSocket servers_ and clients_ in
+Python. It implements `RFC 6455`_ with a focus on correctness and simplicity.
+It passes the `Autobahn Testsuite`_.
+
+Built on top of Python's asynchronous I/O support introduced in `PEP 3156`_,
+it provides an API based on coroutines, making it easy to write highly
+concurrent applications.
+
+Installation is as simple as ``pip install websockets``. It requires Python ≥
+3.4 or Python 3.3 with the ``asyncio`` module, which is available with ``pip
+install asyncio``.
+
+Documentation is available on `Read the Docs`_.
+
+Bug reports, patches and suggestions welcome! Just open an issue_ or send a
+`pull request`_.
+
+.. _servers: 
https://github.com/aaugustin/websockets/blob/master/example/server.py
+.. _clients: 
https://github.com/aaugustin/websockets/blob/master/example/client.py
+.. _RFC 6455: http://tools.ietf.org/html/rfc6455
+.. _Autobahn Testsuite: 
https://github.com/aaugustin/websockets/blob/master/compliance/README.rst
+.. _PEP 3156: http://www.python.org/dev/peps/pep-3156/
+.. _Read the Docs: https://websockets.readthedocs.io/
+.. _issue: https://github.com/aaugustin/websockets/issues/new
+.. _pull request: https://github.com/aaugustin/websockets/compare/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/websockets-3.2/setup.cfg new/websockets-3.3/setup.cfg
--- old/websockets-3.2/setup.cfg        2016-08-17 23:23:04.000000000 +0200
+++ new/websockets-3.3/setup.cfg        2017-03-29 15:48:14.000000000 +0200
@@ -2,14 +2,14 @@
 python-tag = py33.py34.py35
 
 [flake8]
-ignore = E731,F403
+ignore = E731,F403,F405
 
 [isort]
 known_standard_library = asyncio
 lines_after_imports = 2
 
 [egg_info]
-tag_date = 0
 tag_build = 
+tag_date = 0
 tag_svn_revision = 0
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/websockets-3.2/setup.py new/websockets-3.3/setup.py
--- old/websockets-3.2/setup.py 2016-05-15 20:12:47.000000000 +0200
+++ new/websockets-3.3/setup.py 2016-09-03 19:15:18.000000000 +0200
@@ -1,25 +1,16 @@
-import os
+import os.path
 import sys
 
 import setuptools
 
-
-# Avoid polluting the .tar.gz with ._* files under Mac OS X
-os.putenv('COPYFILE_DISABLE', 'true')
-
-root = os.path.dirname(__file__)
-
-# Prevent distutils from complaining that a standard file wasn't found
-README = os.path.join(root, 'README')
-if not os.path.exists(README):
-    os.symlink(README + '.rst', README)
+root_dir = os.path.abspath(os.path.dirname(__file__))
 
 description = "An implementation of the WebSocket Protocol (RFC 6455)"
 
-with open(os.path.join(root, 'README'), encoding='utf-8') as f:
-    long_description = '\n\n'.join(f.read().split('\n\n')[1:])
+with open(os.path.join(root_dir, 'README.rst')) as f:
+    long_description = f.read()
 
-with open(os.path.join(root, 'websockets', 'version.py'), encoding='utf-8') as 
f:
+with open(os.path.join(root_dir, 'websockets', 'version.py')) as f:
     exec(f.read())
 
 py_version = sys.version_info[:2]
@@ -28,34 +19,33 @@
     raise Exception("websockets requires Python >= 3.3.")
 
 packages = ['websockets']
+
 if py_version >= (3, 5):
     packages.append('websockets/py35')
 
 setuptools.setup(
     name='websockets',
     version=version,
-    author='Aymeric Augustin',
-    author_email='aymeric.augus...@m4x.org',
-    url='https://github.com/aaugustin/websockets',
     description=description,
     long_description=long_description,
-    download_url='https://pypi.python.org/pypi/websockets',
+    url='https://github.com/aaugustin/websockets',
+    author='Aymeric Augustin',
+    author_email='aymeric.augus...@m4x.org',
+    license='BSD',
+    classifiers=[
+        'Development Status :: 5 - Production/Stable',
+        'Environment :: Web Environment',
+        'Intended Audience :: Developers',
+        'License :: OSI Approved :: BSD License',
+        'Operating System :: OS Independent',
+        'Programming Language :: Python',
+        'Programming Language :: Python :: 3',
+        'Programming Language :: Python :: 3.3',
+        'Programming Language :: Python :: 3.4',
+        'Programming Language :: Python :: 3.5',
+    ],
     packages=packages,
     extras_require={
         ':python_version=="3.3"': ['asyncio'],
     },
-    classifiers=[
-        "Development Status :: 5 - Production/Stable",
-        "Environment :: Web Environment",
-        "Intended Audience :: Developers",
-        "License :: OSI Approved :: BSD License",
-        "Operating System :: OS Independent",
-        "Programming Language :: Python",
-        "Programming Language :: Python :: 3",
-        "Programming Language :: Python :: 3.3",
-        "Programming Language :: Python :: 3.4",
-        "Programming Language :: Python :: 3.5",
-    ],
-    platforms='all',
-    license='BSD'
 )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/websockets-3.2/websockets/http.py 
new/websockets-3.3/websockets/http.py
--- old/websockets-3.2/websockets/http.py       2016-05-15 20:44:26.000000000 
+0200
+++ new/websockets-3.3/websockets/http.py       2017-03-29 15:45:27.000000000 
+0200
@@ -63,7 +63,7 @@
 
     """
     status_line, headers = yield from read_message(stream)
-    version, status, reason = status_line[:-2].decode().split(None, 2)
+    version, status, reason = status_line[:-2].decode().split(" ", 2)
     if version != 'HTTP/1.1':
         raise ValueError("Unsupported HTTP version")
     return int(status), headers
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/websockets-3.2/websockets/protocol.py 
new/websockets-3.3/websockets/protocol.py
--- old/websockets-3.2/websockets/protocol.py   2016-08-17 16:03:53.000000000 
+0200
+++ new/websockets-3.3/websockets/protocol.py   2017-03-29 15:45:27.000000000 
+0200
@@ -124,6 +124,7 @@
 
         self.reader = None
         self.writer = None
+        self._drain_lock = asyncio.Lock(loop=loop)
 
         self.request_headers = None
         self.raw_request_headers = None
@@ -562,8 +563,12 @@
                     yield
 
         try:
-            # Handle flow control automatically.
-            yield from self.writer.drain()
+            # drain() cannot be called concurrently by multiple coroutines:
+            # http://bugs.python.org/issue29930. Remove this lock when no
+            # version of Python where this bugs exists is supported anymore.
+            with (yield from self._drain_lock):
+                # Handle flow control automatically.
+                yield from self.writer.drain()
         except ConnectionError:
             # Terminate the connection if the socket died.
             yield from self.fail_connection(1006)
Binary files 
old/websockets-3.2/websockets/py35/__pycache__/__init__.cpython-36.pyc and 
new/websockets-3.3/websockets/py35/__pycache__/__init__.cpython-36.pyc differ
Binary files 
old/websockets-3.2/websockets/py35/__pycache__/client.cpython-35.pyc and 
new/websockets-3.3/websockets/py35/__pycache__/client.cpython-35.pyc differ
Binary files 
old/websockets-3.2/websockets/py35/__pycache__/client.cpython-36.pyc and 
new/websockets-3.3/websockets/py35/__pycache__/client.cpython-36.pyc differ
Binary files 
old/websockets-3.2/websockets/py35/__pycache__/client_server.cpython-35.pyc and 
new/websockets-3.3/websockets/py35/__pycache__/client_server.cpython-35.pyc 
differ
Binary files 
old/websockets-3.2/websockets/py35/__pycache__/client_server.cpython-36.pyc and 
new/websockets-3.3/websockets/py35/__pycache__/client_server.cpython-36.pyc 
differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/websockets-3.2/websockets/server.py 
new/websockets-3.3/websockets/server.py
--- old/websockets-3.2/websockets/server.py     2016-08-17 23:17:39.000000000 
+0200
+++ new/websockets-3.3/websockets/server.py     2017-03-29 15:45:27.000000000 
+0200
@@ -62,6 +62,9 @@
                 path = yield from self.handshake(
                     origins=self.origins, subprotocols=self.subprotocols,
                     extra_headers=self.extra_headers)
+            except ConnectionError as exc:
+                logger.info('Connection error during opening handshake', 
exc_info=True)
+                raise
             except Exception as exc:
                 if self._is_server_shutting_down(exc):
                     response = ('HTTP/1.1 503 Service Unavailable\r\n\r\n'
@@ -89,6 +92,11 @@
 
             try:
                 yield from self.close()
+            except ConnectionError as exc:
+                if self._is_server_shutting_down(exc):
+                    pass
+                logger.info('Connection error in closing handshake', 
exc_info=True)
+                raise
             except Exception as exc:
                 if self._is_server_shutting_down(exc):
                     pass
@@ -195,7 +203,8 @@
 
         return path
 
-    def select_subprotocol(self, client_protos, server_protos):
+    @staticmethod
+    def select_subprotocol(client_protos, server_protos):
         """
         Pick a subprotocol among those offered by the client.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/websockets-3.2/websockets/test_client_server.py 
new/websockets-3.3/websockets/test_client_server.py
--- old/websockets-3.2/websockets/test_client_server.py 2016-08-17 
23:13:29.000000000 +0200
+++ new/websockets-3.3/websockets/test_client_server.py 2017-01-15 
16:56:40.000000000 +0100
@@ -234,8 +234,7 @@
         self.stop_client()
         self.stop_server()
 
-    @unittest.mock.patch.object(
-        WebSocketServerProtocol, 'select_subprotocol', autospec=True)
+    @unittest.mock.patch.object(WebSocketServerProtocol, 'select_subprotocol')
     def test_subprotocol_error(self, _select_subprotocol):
         _select_subprotocol.return_value = 'superchat'
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/websockets-3.2/websockets/test_protocol.py 
new/websockets-3.3/websockets/test_protocol.py
--- old/websockets-3.2/websockets/test_protocol.py      2016-08-17 
16:03:53.000000000 +0200
+++ new/websockets-3.3/websockets/test_protocol.py      2017-01-15 
12:54:15.000000000 +0100
@@ -258,7 +258,7 @@
         self.run_loop_once()
         # The connection is established.
         self.assertEqual(self.protocol.local_address, ('host', 4312))
-        get_extra_info.assert_called_once_with('sockname', None)
+        get_extra_info.assert_called_with('sockname', None)
 
     def test_remote_address(self):
         get_extra_info = unittest.mock.Mock(return_value=('host', 4312))
@@ -268,7 +268,7 @@
         self.run_loop_once()
         # The connection is established.
         self.assertEqual(self.protocol.remote_address, ('host', 4312))
-        get_extra_info.assert_called_once_with('peername', None)
+        get_extra_info.assert_called_with('peername', None)
 
     def test_open(self):
         self.assertTrue(self.protocol.open)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/websockets-3.2/websockets/version.py 
new/websockets-3.3/websockets/version.py
--- old/websockets-3.2/websockets/version.py    2016-08-17 23:22:42.000000000 
+0200
+++ new/websockets-3.3/websockets/version.py    2017-03-29 15:47:43.000000000 
+0200
@@ -1 +1 @@
-version = '3.2'
+version = '3.3'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/websockets-3.2/websockets.egg-info/PKG-INFO 
new/websockets-3.3/websockets.egg-info/PKG-INFO
--- old/websockets-3.2/websockets.egg-info/PKG-INFO     2016-08-17 
23:23:02.000000000 +0200
+++ new/websockets-3.3/websockets.egg-info/PKG-INFO     2017-03-29 
15:48:14.000000000 +0200
@@ -1,13 +1,15 @@
 Metadata-Version: 1.1
 Name: websockets
-Version: 3.2
+Version: 3.3
 Summary: An implementation of the WebSocket Protocol (RFC 6455)
 Home-page: https://github.com/aaugustin/websockets
 Author: Aymeric Augustin
 Author-email: aymeric.augus...@m4x.org
 License: BSD
-Download-URL: https://pypi.python.org/pypi/websockets
-Description: ``websockets`` is a library for developing WebSocket servers_ and 
clients_ in
+Description: WebSockets
+        ==========
+        
+        ``websockets`` is a library for developing WebSocket servers_ and 
clients_ in
         Python. It implements `RFC 6455`_ with a focus on correctness and 
simplicity.
         It passes the `Autobahn Testsuite`_.
         
@@ -33,7 +35,7 @@
         .. _issue: https://github.com/aaugustin/websockets/issues/new
         .. _pull request: https://github.com/aaugustin/websockets/compare/
         
-Platform: all
+Platform: UNKNOWN
 Classifier: Development Status :: 5 - Production/Stable
 Classifier: Environment :: Web Environment
 Classifier: Intended Audience :: Developers
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/websockets-3.2/websockets.egg-info/SOURCES.txt 
new/websockets-3.3/websockets.egg-info/SOURCES.txt
--- old/websockets-3.2/websockets.egg-info/SOURCES.txt  2016-08-17 
23:23:03.000000000 +0200
+++ new/websockets-3.3/websockets.egg-info/SOURCES.txt  2017-03-29 
15:48:14.000000000 +0200
@@ -1,6 +1,6 @@
 LICENSE
 MANIFEST.in
-README
+README.rst
 setup.cfg
 setup.py
 websockets/__init__.py
@@ -31,5 +31,8 @@
 websockets/py35/__pycache__/__init__.cpython-33.pyc
 websockets/py35/__pycache__/__init__.cpython-34.pyc
 websockets/py35/__pycache__/__init__.cpython-35.pyc
+websockets/py35/__pycache__/__init__.cpython-36.pyc
 websockets/py35/__pycache__/client.cpython-35.pyc
-websockets/py35/__pycache__/client_server.cpython-35.pyc
\ No newline at end of file
+websockets/py35/__pycache__/client.cpython-36.pyc
+websockets/py35/__pycache__/client_server.cpython-35.pyc
+websockets/py35/__pycache__/client_server.cpython-36.pyc
\ No newline at end of file


Reply via email to