Hello community, here is the log from the commit of package python-hyperframe for openSUSE:Factory checked in at 2019-03-29 20:37:55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-hyperframe (Old) and /work/SRC/openSUSE:Factory/.python-hyperframe.new.25356 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-hyperframe" Fri Mar 29 20:37:55 2019 rev:5 rq:688742 version:5.2.0 Changes: -------- --- /work/SRC/openSUSE:Factory/python-hyperframe/python-hyperframe.changes 2018-12-27 00:26:30.335804730 +0100 +++ /work/SRC/openSUSE:Factory/.python-hyperframe.new.25356/python-hyperframe.changes 2019-03-29 20:37:56.566655965 +0100 @@ -1,0 +2,7 @@ +Tue Mar 26 13:59:58 UTC 2019 - Tomáš Chvátal <tchva...@suse.com> + +- Update to 5.2.0: + * Add a new ENABLE_CONNECT_PROTOCOL settings paramter. + * Fix collections.abc deprecation. + +------------------------------------------------------------------- Old: ---- hyperframe-5.1.0.tar.gz New: ---- hyperframe-5.2.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-hyperframe.spec ++++++ --- /var/tmp/diff_new_pack.hnh61H/_old 2019-03-29 20:37:57.134656278 +0100 +++ /var/tmp/diff_new_pack.hnh61H/_new 2019-03-29 20:37:57.134656278 +0100 @@ -1,7 +1,7 @@ # # spec file for package python-hyperframe # -# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2019 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 @@ -18,15 +18,15 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} Name: python-hyperframe -Version: 5.1.0 +Version: 5.2.0 Release: 0 Summary: HTTP/2 framing layer for Python License: MIT Group: Development/Languages/Python -URL: http://hyper.rtfd.org +URL: https://github.com/python-hyper/hyperframe Source0: https://files.pythonhosted.org/packages/source/h/hyperframe/hyperframe-%{version}.tar.gz -# test requirements BuildRequires: %{python_module pytest} +BuildRequires: %{python_module setuptools} BuildRequires: fdupes BuildRequires: python-rpm-macros BuildArch: noarch @@ -45,10 +45,10 @@ %install %python_install -%python_expand %fdupes -s %{buildroot}%{$python_sitelib} +%python_expand %fdupes %{buildroot}%{$python_sitelib} %check -%python_expand PYTHONPATH=%{buildroot}%{$python_sitelib} py.test-%{$python_version} -v +%pytest %files %{python_files} %license LICENSE ++++++ hyperframe-5.1.0.tar.gz -> hyperframe-5.2.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hyperframe-5.1.0/HISTORY.rst new/hyperframe-5.2.0/HISTORY.rst --- old/hyperframe-5.1.0/HISTORY.rst 2017-04-24 11:42:32.000000000 +0200 +++ new/hyperframe-5.2.0/HISTORY.rst 2019-01-18 11:25:27.000000000 +0100 @@ -4,6 +4,18 @@ 6.0.0dev0 --------- +5.2.0 (2019-01-18) +------------------ + +**API Changes (Backward-compatible)** + +- Add a new ENABLE_CONNECT_PROTOCOL settings paramter. + +**Other Changes** + +- Fix collections.abc deprecation. +- Drop support for Python 3.3 and support 3.7. + 5.1.0 (2017-04-24) ------------------ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hyperframe-5.1.0/PKG-INFO new/hyperframe-5.2.0/PKG-INFO --- old/hyperframe-5.1.0/PKG-INFO 2017-04-24 12:05:03.000000000 +0200 +++ new/hyperframe-5.2.0/PKG-INFO 2019-01-18 11:27:09.000000000 +0100 @@ -1,8 +1,8 @@ Metadata-Version: 1.1 Name: hyperframe -Version: 5.1.0 +Version: 5.2.0 Summary: HTTP/2 framing layer for Python -Home-page: http://hyper.rtfd.org +Home-page: https://python-hyper.org/hyperframe/en/latest/ Author: Cory Benfield Author-email: c...@lukasa.co.uk License: MIT License @@ -53,6 +53,18 @@ 6.0.0dev0 --------- + 5.2.0 (2019-01-18) + ------------------ + + **API Changes (Backward-compatible)** + + - Add a new ENABLE_CONNECT_PROTOCOL settings paramter. + + **Other Changes** + + - Fix collections.abc deprecation. + - Drop support for Python 3.3 and support 3.7. + 5.1.0 (2017-04-24) ------------------ @@ -223,8 +235,8 @@ Classifier: Programming Language :: Python :: 2 Classifier: Programming Language :: Python :: 2.7 Classifier: Programming Language :: Python :: 3 -Classifier: Programming Language :: Python :: 3.3 Classifier: Programming Language :: Python :: 3.4 Classifier: Programming Language :: Python :: 3.5 Classifier: Programming Language :: Python :: 3.6 +Classifier: Programming Language :: Python :: 3.7 Classifier: Programming Language :: Python :: Implementation :: CPython diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hyperframe-5.1.0/hyperframe/__init__.py new/hyperframe-5.2.0/hyperframe/__init__.py --- old/hyperframe-5.1.0/hyperframe/__init__.py 2017-04-24 11:43:04.000000000 +0200 +++ new/hyperframe-5.2.0/hyperframe/__init__.py 2019-01-18 11:25:27.000000000 +0100 @@ -5,4 +5,4 @@ A module for providing a pure-Python HTTP/2 framing layer. """ -__version__ = '5.1.0' +__version__ = '5.2.0' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hyperframe-5.1.0/hyperframe/flags.py new/hyperframe-5.2.0/hyperframe/flags.py --- old/hyperframe-5.1.0/hyperframe/flags.py 2016-04-10 20:10:22.000000000 +0200 +++ new/hyperframe-5.2.0/hyperframe/flags.py 2019-01-18 11:21:09.000000000 +0100 @@ -7,11 +7,16 @@ """ import collections +try: + from collections.abc import MutableSet +except ImportError: # pragma: no cover + # Python 2.7 compatibility + from collections import MutableSet Flag = collections.namedtuple("Flag", ["name", "bit"]) -class Flags(collections.MutableSet): +class Flags(MutableSet): """ A simple MutableSet implementation that will only accept known flags as elements. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hyperframe-5.1.0/hyperframe/frame.py new/hyperframe-5.2.0/hyperframe/frame.py --- old/hyperframe-5.1.0/hyperframe/frame.py 2017-04-24 11:40:07.000000000 +0200 +++ new/hyperframe-5.2.0/hyperframe/frame.py 2019-01-18 11:25:27.000000000 +0100 @@ -395,6 +395,8 @@ MAX_FRAME_SIZE = 0x05 #: The byte that signals the SETTINGS_MAX_HEADER_LIST_SIZE setting. MAX_HEADER_LIST_SIZE = 0x06 + #: The byte that signals SETTINGS_ENABLE_CONNECT_PROTOCOL setting. + ENABLE_CONNECT_PROTOCOL = 0x08 def __init__(self, stream_id=0, settings=None, **kwargs): super(SettingsFrame, self).__init__(stream_id, **kwargs) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hyperframe-5.1.0/hyperframe.egg-info/PKG-INFO new/hyperframe-5.2.0/hyperframe.egg-info/PKG-INFO --- old/hyperframe-5.1.0/hyperframe.egg-info/PKG-INFO 2017-04-24 12:05:03.000000000 +0200 +++ new/hyperframe-5.2.0/hyperframe.egg-info/PKG-INFO 2019-01-18 11:27:09.000000000 +0100 @@ -1,8 +1,8 @@ Metadata-Version: 1.1 Name: hyperframe -Version: 5.1.0 +Version: 5.2.0 Summary: HTTP/2 framing layer for Python -Home-page: http://hyper.rtfd.org +Home-page: https://python-hyper.org/hyperframe/en/latest/ Author: Cory Benfield Author-email: c...@lukasa.co.uk License: MIT License @@ -53,6 +53,18 @@ 6.0.0dev0 --------- + 5.2.0 (2019-01-18) + ------------------ + + **API Changes (Backward-compatible)** + + - Add a new ENABLE_CONNECT_PROTOCOL settings paramter. + + **Other Changes** + + - Fix collections.abc deprecation. + - Drop support for Python 3.3 and support 3.7. + 5.1.0 (2017-04-24) ------------------ @@ -223,8 +235,8 @@ Classifier: Programming Language :: Python :: 2 Classifier: Programming Language :: Python :: 2.7 Classifier: Programming Language :: Python :: 3 -Classifier: Programming Language :: Python :: 3.3 Classifier: Programming Language :: Python :: 3.4 Classifier: Programming Language :: Python :: 3.5 Classifier: Programming Language :: Python :: 3.6 +Classifier: Programming Language :: Python :: 3.7 Classifier: Programming Language :: Python :: Implementation :: CPython diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hyperframe-5.1.0/setup.cfg new/hyperframe-5.2.0/setup.cfg --- old/hyperframe-5.1.0/setup.cfg 2017-04-24 12:05:03.000000000 +0200 +++ new/hyperframe-5.2.0/setup.cfg 2019-01-18 11:27:09.000000000 +0100 @@ -1,6 +1,9 @@ [wheel] universal = 1 +[tool:pytest] +testpaths = test + [egg_info] tag_build = tag_date = 0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hyperframe-5.1.0/setup.py new/hyperframe-5.2.0/setup.py --- old/hyperframe-5.1.0/setup.py 2017-02-09 09:26:42.000000000 +0100 +++ new/hyperframe-5.2.0/setup.py 2019-01-18 11:21:09.000000000 +0100 @@ -36,7 +36,7 @@ long_description=open('README.rst').read() + '\n\n' + open('HISTORY.rst').read(), author='Cory Benfield', author_email='c...@lukasa.co.uk', - url='http://hyper.rtfd.org', + url='https://python-hyper.org/hyperframe/en/latest/', packages=packages, package_data={'': ['LICENSE', 'README.rst', 'CONTRIBUTORS.rst', 'HISTORY.rst']}, package_dir={'hyperframe': 'hyperframe'}, @@ -50,10 +50,10 @@ 'Programming Language :: Python :: 2', 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.3', 'Programming Language :: Python :: 3.4', 'Programming Language :: Python :: 3.5', 'Programming Language :: Python :: 3.6', + 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: Implementation :: CPython', ], ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hyperframe-5.1.0/test/test_frames.py new/hyperframe-5.2.0/test/test_frames.py --- old/hyperframe-5.1.0/test/test_frames.py 2017-04-24 11:40:07.000000000 +0200 +++ new/hyperframe-5.2.0/test/test_frames.py 2019-01-18 11:25:27.000000000 +0100 @@ -56,29 +56,29 @@ assert f.stream_id == 0 def test_parse_frame_header_unknown_type(self): - f, l = Frame.parse_frame_header( + frame, length = Frame.parse_frame_header( b'\x00\x00\x59\xFF\x00\x00\x00\x00\x01' ) - assert f.type == 0xFF - assert l == 0x59 - assert isinstance(f, ExtensionFrame) - assert f.stream_id == 1 + assert frame.type == 0xFF + assert length == 0x59 + assert isinstance(frame, ExtensionFrame) + assert frame.stream_id == 1 def test_flags_are_persisted(self): - f, l = Frame.parse_frame_header( + frame, length = Frame.parse_frame_header( b'\x00\x00\x59\xFF\x09\x00\x00\x00\x01' ) - assert f.type == 0xFF - assert l == 0x59 - assert f.flag_byte == 0x09 + assert frame.type == 0xFF + assert length == 0x59 + assert frame.flag_byte == 0x09 def test_parse_body_unknown_type(self): - f = decode_frame( + frame = decode_frame( b'\x00\x00\x0C\xFF\x00\x00\x00\x00\x01hello world!' ) - assert f.body == b'hello world!' - assert f.body_len == 12 - assert f.stream_id == 1 + assert frame.body == b'hello world!' + assert frame.body_len == 12 + assert frame.stream_id == 1 def test_can_round_trip_unknown_frames(self): frame_data = b'\x00\x00\x0C\xFF\x00\x00\x00\x00\x01hello world!' @@ -306,13 +306,14 @@ class TestSettingsFrame(object): serialized = ( - b'\x00\x00\x24\x04\x01\x00\x00\x00\x00' + # Frame header + b'\x00\x00\x2A\x04\x01\x00\x00\x00\x00' + # Frame header b'\x00\x01\x00\x00\x10\x00' + # HEADER_TABLE_SIZE b'\x00\x02\x00\x00\x00\x00' + # ENABLE_PUSH b'\x00\x03\x00\x00\x00\x64' + # MAX_CONCURRENT_STREAMS b'\x00\x04\x00\x00\xFF\xFF' + # INITIAL_WINDOW_SIZE b'\x00\x05\x00\x00\x40\x00' + # MAX_FRAME_SIZE - b'\x00\x06\x00\x00\xFF\xFF' # MAX_HEADER_LIST_SIZE + b'\x00\x06\x00\x00\xFF\xFF' + # MAX_HEADER_LIST_SIZE + b'\x00\x08\x00\x00\x00\x01' # ENABLE_CONNECT_PROTOCOL ) settings = { @@ -322,6 +323,7 @@ SettingsFrame.INITIAL_WINDOW_SIZE: 65535, SettingsFrame.MAX_FRAME_SIZE: 16384, SettingsFrame.MAX_HEADER_LIST_SIZE: 65535, + SettingsFrame.ENABLE_CONNECT_PROTOCOL: 1, } def test_settings_frame_has_only_one_flag(self): @@ -359,7 +361,7 @@ assert isinstance(f, SettingsFrame) assert f.flags == set(['ACK']) assert f.settings == self.settings - assert f.body_len == 36 + assert f.body_len == 42 def test_settings_frames_never_have_streams(self): with pytest.raises(ValueError): @@ -519,6 +521,19 @@ assert f.additional_data == b'hello' assert f.body_len == 13 + s = ( + b'\x00\x00\x08\x07\x00\x00\x00\x00\x00' + # Frame header + b'\x00\x00\x00\x40' + # Last Stream ID + b'\x00\x00\x00\x20' + # Error Code + b'' # Additional data + ) + f = decode_frame(s) + + assert isinstance(f, GoAwayFrame) + assert f.flags == set() + assert f.additional_data == b'' + assert f.body_len == 8 + def test_goaway_frame_never_has_a_stream(self): with pytest.raises(ValueError): GoAwayFrame(stream_id=1)