Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-uritools for openSUSE:Factory
checked in at 2026-04-26 21:11:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-uritools (Old)
and /work/SRC/openSUSE:Factory/.python-uritools.new.11940 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-uritools"
Sun Apr 26 21:11:31 2026 rev:7 rq:1349288 version:6.0.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-uritools/python-uritools.changes
2026-03-10 18:01:07.810894813 +0100
+++
/work/SRC/openSUSE:Factory/.python-uritools.new.11940/python-uritools.changes
2026-04-26 21:14:12.656524718 +0200
@@ -1,0 +2,7 @@
+Sat Apr 25 20:55:45 UTC 2026 - Dirk Müller <[email protected]>
+
+- update to 6.0.2:
+ * Minor code improvements.
+ * Update project URLs.
+
+-------------------------------------------------------------------
Old:
----
uritools-6.0.1.tar.gz
New:
----
uritools-6.0.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-uritools.spec ++++++
--- /var/tmp/diff_new_pack.1wcMQa/_old 2026-04-26 21:14:13.236548415 +0200
+++ /var/tmp/diff_new_pack.1wcMQa/_new 2026-04-26 21:14:13.240548579 +0200
@@ -18,7 +18,7 @@
%{?sle15_python_module_pythons}
Name: python-uritools
-Version: 6.0.1
+Version: 6.0.2
Release: 0
Summary: URI parsing, classification and composition
License: MIT
++++++ uritools-6.0.1.tar.gz -> uritools-6.0.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/uritools-6.0.1/CHANGELOG.rst
new/uritools-6.0.2/CHANGELOG.rst
--- old/uritools-6.0.1/CHANGELOG.rst 2025-12-21 19:57:35.000000000 +0100
+++ new/uritools-6.0.2/CHANGELOG.rst 2026-04-22 22:09:19.000000000 +0200
@@ -1,3 +1,12 @@
+v6.0.2 (2026-04-22)
+===================
+
+- Minor code improvements.
+
+- Update project URLs.
+
+- Update CI environment.
+
v6.0.1 (2025-12-21)
===================
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/uritools-6.0.1/PKG-INFO new/uritools-6.0.2/PKG-INFO
--- old/uritools-6.0.1/PKG-INFO 2025-12-21 19:58:40.898700000 +0100
+++ new/uritools-6.0.2/PKG-INFO 2026-04-22 22:16:59.532577000 +0200
@@ -1,11 +1,16 @@
Metadata-Version: 2.4
Name: uritools
-Version: 6.0.1
+Version: 6.0.2
Summary: URI parsing, classification and composition
Author-email: Thomas Kemmer <[email protected]>
Maintainer-email: Thomas Kemmer <[email protected]>
License-Expression: MIT
Project-URL: Homepage, https://github.com/tkem/uritools/
+Project-URL: Documentation, https://uritools.readthedocs.io/en/stable/
+Project-URL: Source, https://github.com/tkem/uritools/
+Project-URL: Repository, https://github.com/tkem/uritools/
+Project-URL: Issues, https://github.com/tkem/uritools/issues
+Project-URL: Changelog,
https://github.com/tkem/uritools/blob/master/CHANGELOG.rst
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
@@ -26,8 +31,8 @@
========================================================================
.. image:: https://img.shields.io/pypi/v/uritools
- :target: https://pypi.org/project/uritools
- :alt: Latest PyPI version
+ :target: https://pypi.org/project/uritools
+ :alt: Latest PyPI version
.. image::
https://img.shields.io/github/actions/workflow/status/tkem/uritools/ci.yml
:target: https://github.com/tkem/uritools/actions/workflows/ci.yml
@@ -121,14 +126,14 @@
- rfc3986_: A Python implementation of RFC 3986 including validation
and authority parsing.
-- rfc3987_: Parsing and validation of URIs (RFC 3896) and IRIs (RFC
+- rfc3987_: Parsing and validation of URIs (RFC 3986) and IRIs (RFC
3987).
License
------------------------------------------------------------------------
-Copyright (c) 2014-2025 Thomas Kemmer.
+Copyright (c) 2014-2026 Thomas Kemmer.
Licensed under the `MIT License`_.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/uritools-6.0.1/README.rst
new/uritools-6.0.2/README.rst
--- old/uritools-6.0.1/README.rst 2025-05-02 15:51:45.000000000 +0200
+++ new/uritools-6.0.2/README.rst 2026-04-22 22:09:19.000000000 +0200
@@ -2,8 +2,8 @@
========================================================================
.. image:: https://img.shields.io/pypi/v/uritools
- :target: https://pypi.org/project/uritools
- :alt: Latest PyPI version
+ :target: https://pypi.org/project/uritools
+ :alt: Latest PyPI version
.. image::
https://img.shields.io/github/actions/workflow/status/tkem/uritools/ci.yml
:target: https://github.com/tkem/uritools/actions/workflows/ci.yml
@@ -97,14 +97,14 @@
- rfc3986_: A Python implementation of RFC 3986 including validation
and authority parsing.
-- rfc3987_: Parsing and validation of URIs (RFC 3896) and IRIs (RFC
+- rfc3987_: Parsing and validation of URIs (RFC 3986) and IRIs (RFC
3987).
License
------------------------------------------------------------------------
-Copyright (c) 2014-2025 Thomas Kemmer.
+Copyright (c) 2014-2026 Thomas Kemmer.
Licensed under the `MIT License`_.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/uritools-6.0.1/docs/conf.py
new/uritools-6.0.2/docs/conf.py
--- old/uritools-6.0.1/docs/conf.py 2025-05-02 15:05:47.000000000 +0200
+++ new/uritools-6.0.2/docs/conf.py 2026-04-22 22:09:19.000000000 +0200
@@ -19,7 +19,7 @@
project = "uritools"
-copyright = "2014-2025 Thomas Kemmer"
+copyright = "2014-2026 Thomas Kemmer"
release, version = get_version()
extensions = [
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/uritools-6.0.1/pyproject.toml
new/uritools-6.0.2/pyproject.toml
--- old/uritools-6.0.1/pyproject.toml 2025-12-21 19:53:22.000000000 +0100
+++ new/uritools-6.0.2/pyproject.toml 2026-04-22 22:09:19.000000000 +0200
@@ -32,6 +32,11 @@
[project.urls]
Homepage = "https://github.com/tkem/uritools/"
+Documentation = "https://uritools.readthedocs.io/en/stable/"
+Source = "https://github.com/tkem/uritools/"
+Repository = "https://github.com/tkem/uritools/"
+Issues = "https://github.com/tkem/uritools/issues"
+Changelog = "https://github.com/tkem/uritools/blob/master/CHANGELOG.rst"
[tool.setuptools]
package-dir = {"" = "src"}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/uritools-6.0.1/src/uritools/__init__.py
new/uritools-6.0.2/src/uritools/__init__.py
--- old/uritools-6.0.1/src/uritools/__init__.py 2025-12-21 19:57:35.000000000
+0100
+++ new/uritools-6.0.2/src/uritools/__init__.py 2026-04-22 22:09:19.000000000
+0200
@@ -13,7 +13,6 @@
import re
from string import hexdigits
-
__all__ = (
"GEN_DELIMS",
"RESERVED",
@@ -34,7 +33,7 @@
"uriunsplit",
)
-__version__ = "6.0.1"
+__version__ = "6.0.2"
# RFC 3986 2.2. Reserved Characters
@@ -77,6 +76,9 @@
uristring = uristring.encode(encoding, errors)
if not isinstance(safe, bytes):
safe = safe.encode("ascii")
+ # FIXME: though unlikely, _encoded may grow without bounds if arbitrary
+ # safe values are passed by a caller - consider using @functools.lru_cache
+ # instead of plain dict?
try:
encoded = _encoded[safe]
except KeyError:
@@ -293,10 +295,10 @@
the values are lists of values for each name.
"""
- dict = collections.defaultdict(list)
+ result = collections.defaultdict(list)
for name, value in self.getquerylist(sep, encoding, errors):
- dict[name].append(value)
- return dict
+ result[name].append(value)
+ return result
def getquerylist(self, sep="&", encoding="utf-8", errors="strict"):
"""Split the query component into individual `name=value` pairs
@@ -312,15 +314,15 @@
qsl = self.query.split(sep.decode("ascii"))
else:
qsl = self.query.split(sep.encode("ascii"))
- items = []
+ result = []
for parts in [qs.partition(self.EQ) for qs in qsl if qs]:
name = uridecode(parts[0], encoding, errors)
if parts[1]:
value = uridecode(parts[2], encoding, errors)
else:
value = None
- items.append((name, value))
- return items
+ result.append((name, value))
+ return result
def getfragment(self, default=None, encoding="utf-8", errors="strict"):
"""Return the decoded fragment identifier, or `default` if the
@@ -636,8 +638,10 @@
authority.append(host.compressed.encode())
elif isinstance(host, bytes):
authority.append(_host(host))
- elif host is not None:
+ elif isinstance(host, str):
authority.append(_host(host.encode("utf-8")))
+ elif host is not None:
+ raise TypeError("Invalid host type: %r" % type(host))
if isinstance(port, numbers.Number):
authority.append(_port(str(port).encode()))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/uritools-6.0.1/src/uritools.egg-info/PKG-INFO
new/uritools-6.0.2/src/uritools.egg-info/PKG-INFO
--- old/uritools-6.0.1/src/uritools.egg-info/PKG-INFO 2025-12-21
19:58:40.000000000 +0100
+++ new/uritools-6.0.2/src/uritools.egg-info/PKG-INFO 2026-04-22
22:16:59.000000000 +0200
@@ -1,11 +1,16 @@
Metadata-Version: 2.4
Name: uritools
-Version: 6.0.1
+Version: 6.0.2
Summary: URI parsing, classification and composition
Author-email: Thomas Kemmer <[email protected]>
Maintainer-email: Thomas Kemmer <[email protected]>
License-Expression: MIT
Project-URL: Homepage, https://github.com/tkem/uritools/
+Project-URL: Documentation, https://uritools.readthedocs.io/en/stable/
+Project-URL: Source, https://github.com/tkem/uritools/
+Project-URL: Repository, https://github.com/tkem/uritools/
+Project-URL: Issues, https://github.com/tkem/uritools/issues
+Project-URL: Changelog,
https://github.com/tkem/uritools/blob/master/CHANGELOG.rst
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
@@ -26,8 +31,8 @@
========================================================================
.. image:: https://img.shields.io/pypi/v/uritools
- :target: https://pypi.org/project/uritools
- :alt: Latest PyPI version
+ :target: https://pypi.org/project/uritools
+ :alt: Latest PyPI version
.. image::
https://img.shields.io/github/actions/workflow/status/tkem/uritools/ci.yml
:target: https://github.com/tkem/uritools/actions/workflows/ci.yml
@@ -121,14 +126,14 @@
- rfc3986_: A Python implementation of RFC 3986 including validation
and authority parsing.
-- rfc3987_: Parsing and validation of URIs (RFC 3896) and IRIs (RFC
+- rfc3987_: Parsing and validation of URIs (RFC 3986) and IRIs (RFC
3987).
License
------------------------------------------------------------------------
-Copyright (c) 2014-2025 Thomas Kemmer.
+Copyright (c) 2014-2026 Thomas Kemmer.
Licensed under the `MIT License`_.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/uritools-6.0.1/tests/test_compose.py
new/uritools-6.0.2/tests/test_compose.py
--- old/uritools-6.0.1/tests/test_compose.py 2021-10-11 20:18:34.000000000
+0200
+++ new/uritools-6.0.2/tests/test_compose.py 2026-04-22 22:09:19.000000000
+0200
@@ -115,9 +115,9 @@
uricompose(authority=authority)
# invalid host type
for host in (True, 42, 3.14, ipaddress.IPv6Network("2001:db00::0/24")):
- with self.assertRaises(AttributeError, msg="host=%r" % host):
+ with self.assertRaises(TypeError, msg="host=%r" % host):
uricompose(authority=[None, host, None])
- with self.assertRaises(AttributeError, msg="host=%r" % host):
+ with self.assertRaises(TypeError, msg="host=%r" % host):
uricompose(host=host)
# invalid host ip-literal
for host in ("[foo]", "[v1.x]"):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/uritools-6.0.1/tests/test_encoding.py
new/uritools-6.0.2/tests/test_encoding.py
--- old/uritools-6.0.1/tests/test_encoding.py 2021-10-11 20:18:34.000000000
+0200
+++ new/uritools-6.0.2/tests/test_encoding.py 2026-04-22 22:09:19.000000000
+0200
@@ -57,13 +57,13 @@
("%F6lk%FCrbis", b"\xf6lk\xfcrbis"),
(b"%F6lk%FCrbis", b"\xf6lk\xfcrbis"),
]
- for input, output in cases:
- self.assertEqual(uridecode(input, encoding=None), output)
+ for uristring, expected in cases:
+ self.assertEqual(uridecode(uristring, encoding=None), expected)
def test_encode_bytes(self):
cases = [(b"\xf6lk\xfcrbis", b"%F6lk%FCrbis")]
- for input, output in cases:
- self.assertEqual(uriencode(input, encoding=None), output)
+ for uristring, expected in cases:
+ self.assertEqual(uriencode(uristring, encoding=None), expected)
def test_decode_errors(self):
cases = [
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/uritools-6.0.1/tests/test_split.py
new/uritools-6.0.2/tests/test_split.py
--- old/uritools-6.0.1/tests/test_split.py 2025-12-21 19:41:35.000000000
+0100
+++ new/uritools-6.0.2/tests/test_split.py 2026-04-22 22:09:19.000000000
+0200
@@ -4,7 +4,7 @@
class SplitTest(unittest.TestCase):
- def check(self, uri, parts, decoded=None):
+ def check(self, uri, parts):
result = urisplit(uri)
self.assertEqual(result, parts, "Error parsing %r" % uri)
self.assertEqual(result.geturi(), uri, "Error recomposing %r" % uri)
@@ -387,12 +387,12 @@
self.assertEqual(
parts.getquerylist(),
querylist,
- "Error parsing query dict for %r" % query,
+ "Error parsing query list for %r" % query,
)
self.assertEqual(
parts.getquerydict(),
querydict,
- "Error parsing query list for %r" % query,
+ "Error parsing query dict for %r" % query,
)
def test_getquerysep(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/uritools-6.0.1/tests/test_unsplit.py
new/uritools-6.0.2/tests/test_unsplit.py
--- old/uritools-6.0.1/tests/test_unsplit.py 2021-10-11 20:18:34.000000000
+0200
+++ new/uritools-6.0.2/tests/test_unsplit.py 2026-04-22 22:09:19.000000000
+0200
@@ -28,5 +28,5 @@
b"urn:example:animal:ferret:nose",
),
]
- for uri, parts in cases:
- self.check(uri, parts)
+ for parts, uri in cases:
+ self.check(parts, uri)