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 - [email protected]
+
+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: [email protected]
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='[email protected]',
- 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='[email protected]',
+ 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: [email protected]
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