Hello community, here is the log from the commit of package python-yarl for openSUSE:Factory checked in at 2018-01-07 17:22:56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-yarl (Old) and /work/SRC/openSUSE:Factory/.python-yarl.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-yarl" Sun Jan 7 17:22:56 2018 rev:6 rq:562155 version:0.17.0 Changes: -------- --- /work/SRC/openSUSE:Factory/python-yarl/python-yarl.changes 2017-12-14 10:56:54.573276442 +0100 +++ /work/SRC/openSUSE:Factory/.python-yarl.new/python-yarl.changes 2018-01-07 17:23:00.940656215 +0100 @@ -1,0 +2,13 @@ +Thu Jan 4 17:17:54 UTC 2018 - a...@gmx.de + +- specfile: + * update copyright year + * require python-idna + +- update to version 0.17.0: + * Add idna requirement + * update to idna 2008 and test + * Update mypy from 0.550 to 0.560 + * Better fix for #141 + +------------------------------------------------------------------- Old: ---- yarl-0.16.0.tar.gz New: ---- yarl-0.17.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-yarl.spec ++++++ --- /var/tmp/diff_new_pack.8gtcxB/_old 2018-01-07 17:23:01.500629967 +0100 +++ /var/tmp/diff_new_pack.8gtcxB/_new 2018-01-07 17:23:01.504629780 +0100 @@ -1,7 +1,7 @@ # # spec file for package python-yarl # -# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2018 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 @@ -19,7 +19,7 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} %define skip_python2 1 Name: python-yarl -Version: 0.16.0 +Version: 0.17.0 Release: 0 Summary: Yet another URL library License: Apache-2.0 @@ -28,12 +28,14 @@ Source: https://files.pythonhosted.org/packages/source/y/yarl/yarl-%{version}.tar.gz BuildRequires: %{python_module Cython} BuildRequires: %{python_module devel} +BuildRequires: %{python_module idna >= 2.0} BuildRequires: %{python_module setuptools} BuildRequires: python-rpm-macros # test requirements BuildRequires: %{python_module pytest-runner} BuildRequires: %{python_module pytest} BuildRequires: python3-multidict >= 2.0 +Requires: python-idna >= 2.0 %ifpython3 Requires: python3-multidict >= 2.0 %endif ++++++ yarl-0.16.0.tar.gz -> yarl-0.17.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yarl-0.16.0/PKG-INFO new/yarl-0.17.0/PKG-INFO --- old/yarl-0.16.0/PKG-INFO 2017-12-07 21:12:47.000000000 +0100 +++ new/yarl-0.17.0/PKG-INFO 2017-12-30 15:09:53.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: yarl -Version: 0.16.0 +Version: 0.17.0 Summary: Yet another URL library Home-page: https://github.com/aio-libs/yarl/ Author: Andrew Svetlov diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yarl-0.16.0/setup.py new/yarl-0.17.0/setup.py --- old/yarl-0.16.0/setup.py 2017-12-07 21:09:21.000000000 +0100 +++ new/yarl-0.17.0/setup.py 2017-12-30 15:06:32.000000000 +0100 @@ -56,7 +56,7 @@ except IndexError: raise RuntimeError('Unable to determine version.') -install_requires = ['multidict>=2.0'] +install_requires = ['multidict>=2.0', 'idna>=2.0'] needs_pytest = {'pytest', 'test', 'ptr'}.intersection(sys.argv) if needs_pytest: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yarl-0.16.0/tests/test_url.py new/yarl-0.17.0/tests/test_url.py --- old/yarl-0.16.0/tests/test_url.py 2017-12-07 21:09:21.000000000 +0100 +++ new/yarl-0.17.0/tests/test_url.py 2017-12-30 15:06:32.000000000 +0100 @@ -122,6 +122,11 @@ assert "историк.рф" == url.host +def test_localhost(): + url = URL('http://[::1]') + assert "::1" == url.host + + def test_raw_host_when_port_is_specified(): url = URL('http://example.com:8888') assert "example.com" == url.raw_host @@ -719,11 +724,15 @@ def test_from_idna(): url = URL('http://xn--jxagkqfkduily1i.eu') assert "http://xn--jxagkqfkduily1i.eu" == str(url) + url = URL('http://xn--einla-pqa.de/') # needs idna 2008 + assert "http://xn--einla-pqa.de/" == str(url) def test_to_idna(): url = URL('http://εμπορικόσήμα.eu') assert "http://xn--jxagkqfkduily1i.eu" == str(url) + url = URL('http://einlaß.de/') + assert "http://xn--einla-pqa.de/" == str(url) def test_from_ascii_login(): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yarl-0.16.0/yarl/__init__.py new/yarl-0.17.0/yarl/__init__.py --- old/yarl-0.16.0/yarl/__init__.py 2017-12-07 21:09:21.000000000 +0100 +++ new/yarl-0.17.0/yarl/__init__.py 2017-12-30 15:06:32.000000000 +0100 @@ -7,11 +7,12 @@ urljoin, urlsplit, urlunsplit) from multidict import MultiDict, MultiDictProxy +import idna from .quoting import quote, unquote -__version__ = '0.16.0' +__version__ = '0.17.0' __all__ = ('URL',) @@ -163,7 +164,7 @@ try: netloc.encode('ascii') except UnicodeEncodeError: - netloc = netloc.encode('idna').decode('ascii') + netloc = idna.encode(netloc, uts46=True).decode('ascii') else: try: ip = ip_address(netloc) @@ -434,7 +435,10 @@ raw = self.raw_host if raw is None: return None - return raw.encode('ascii').decode('idna') + try: + return idna.decode(raw.encode('ascii')) + except idna.core.InvalidCodepoint: # e.g. '::1' + return raw @property def port(self): @@ -689,7 +693,7 @@ try: ip = ip_address(host) except ValueError: - host = host.encode('idna').decode('ascii') + host = idna.encode(host, uts46=True).decode('ascii') else: if ip.version == 6: host = '[' + host + ']' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yarl-0.16.0/yarl/__init__.pyi new/yarl-0.17.0/yarl/__init__.pyi --- old/yarl-0.16.0/yarl/__init__.pyi 2017-12-07 21:09:21.000000000 +0100 +++ new/yarl-0.17.0/yarl/__init__.pyi 2017-12-30 15:06:32.000000000 +0100 @@ -3,37 +3,37 @@ class URL: - scheme = ... # type: str - raw_user = ... # type: str - user = ... # type: Optional[str] - raw_password = ... # type: Optional[str] - password = ... # type: Optional[str] - raw_host = ... # type: Optional[str] - host = ... # type: Optional[str] - port = ... # type: Optional[int] - raw_path = ... # type: str - path = ... # type: str - raw_query_string = ... # type: str - query_string = ... # type: str - path_qs = ... # type: str - raw_path_qs = ... # type: str - raw_fragment = ... # type: str - fragment = ... # type: str - query = ... # type: multidict.MultiDict - raw_name = ... # type: str - name = ... # type: str - raw_parts = ... # type: Tuple[str, ...] - parts = ... # type: Tuple[str, ...] - parent = ... # type: URL + scheme: str = ... + raw_user: str = ... + user: Optional[str] = ... + raw_password: Optional[str] = ... + password: Optional[str] = ... + raw_host: Optional[str] = ... + host: Optional[str] = ... + port: Optional[int] = ... + raw_path: str = ... + path: str = ... + raw_query_string: str = ... + query_string: str = ... + path_qs: str = ... + raw_path_qs: str = ... + raw_fragment: str = ... + fragment: str = ... + query: multidict.MultiDict = ... + raw_name: str = ... + name: str = ... + raw_parts: Tuple[str, ...] = ... + parts: Tuple[str, ...] = ... + parent: URL = ... - def __init__(self, val: Union[str, 'URL']=..., *, encoded: bool=..., - strict: bool=...) -> None: ... + def __init__(self, val: Union[str, 'URL']=..., *, + encoded: bool=...) -> None: ... @classmethod def build(cls, *, scheme: str=..., user: str=..., password: str=..., - host: str=..., port: int=..., path: str=..., - query: Mapping=..., query_string: str=..., - fragment: str=..., strict: bool=...) -> URL: ... + host: str=..., port: int=..., path: str=..., + query: Mapping=..., query_string: str=..., + fragment: str=..., strict: bool=...) -> URL: ... def __str__(self) -> str: ... def __repr__(self) -> str: ... diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yarl-0.16.0/yarl.egg-info/PKG-INFO new/yarl-0.17.0/yarl.egg-info/PKG-INFO --- old/yarl-0.16.0/yarl.egg-info/PKG-INFO 2017-12-07 21:12:47.000000000 +0100 +++ new/yarl-0.17.0/yarl.egg-info/PKG-INFO 2017-12-30 15:09:53.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: yarl -Version: 0.16.0 +Version: 0.17.0 Summary: Yet another URL library Home-page: https://github.com/aio-libs/yarl/ Author: Andrew Svetlov diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yarl-0.16.0/yarl.egg-info/requires.txt new/yarl-0.17.0/yarl.egg-info/requires.txt --- old/yarl-0.16.0/yarl.egg-info/requires.txt 2017-12-07 21:12:47.000000000 +0100 +++ new/yarl-0.17.0/yarl.egg-info/requires.txt 2017-12-30 15:09:53.000000000 +0100 @@ -1 +1,2 @@ multidict>=2.0 +idna>=2.0