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 2024-06-10 17:37:45
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-uritools (Old)
and /work/SRC/openSUSE:Factory/.python-uritools.new.19518 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-uritools"
Mon Jun 10 17:37:45 2024 rev:5 rq:1179633 version:4.0.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-uritools/python-uritools.changes
2023-12-04 23:02:21.053477188 +0100
+++
/work/SRC/openSUSE:Factory/.python-uritools.new.19518/python-uritools.changes
2024-06-10 17:37:58.471710485 +0200
@@ -1,0 +2,7 @@
+Mon Jun 10 07:47:32 UTC 2024 - Dirk Müller <[email protected]>
+
+- update to 4.0.3:
+ * Prepare for Python 3.13.
+- use PEP 517 build
+
+-------------------------------------------------------------------
Old:
----
uritools-4.0.2.tar.gz
New:
----
uritools-4.0.3.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-uritools.spec ++++++
--- /var/tmp/diff_new_pack.GHmExA/_old 2024-06-10 17:37:59.399744814 +0200
+++ /var/tmp/diff_new_pack.GHmExA/_new 2024-06-10 17:37:59.399744814 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-uritools
#
-# Copyright (c) 2023 SUSE LLC
+# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -18,14 +18,16 @@
%{?sle15_python_module_pythons}
Name: python-uritools
-Version: 4.0.2
+Version: 4.0.3
Release: 0
Summary: URI parsing, classification and composition
License: MIT
Group: Development/Languages/Python
URL: https://github.com/tkem/uritools/
Source:
https://files.pythonhosted.org/packages/source/u/uritools/uritools-%{version}.tar.gz
+BuildRequires: %{python_module pip}
BuildRequires: %{python_module setuptools}
+BuildRequires: %{python_module wheel}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
BuildArch: noarch
@@ -38,10 +40,10 @@
%setup -q -n uritools-%{version}
%build
-%python_build
+%pyproject_wheel
%install
-%python_install
+%pyproject_install
%python_expand %fdupes %{buildroot}%{$python_sitelib}
%check
@@ -50,5 +52,6 @@
%files %{python_files}
%doc CHANGELOG.rst README.rst
%license LICENSE
-%{python_sitelib}/*
+%{python_sitelib}/uritools
+%{python_sitelib}/uritools-%{version}.dist-info
++++++ uritools-4.0.2.tar.gz -> uritools-4.0.3.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/uritools-4.0.2/CHANGELOG.rst
new/uritools-4.0.3/CHANGELOG.rst
--- old/uritools-4.0.2/CHANGELOG.rst 2023-08-30 21:31:51.000000000 +0200
+++ new/uritools-4.0.3/CHANGELOG.rst 2024-05-28 20:03:50.000000000 +0200
@@ -1,3 +1,9 @@
+v4.0.3 (2024-05-28)
+===================
+
+- Prepare for Python 3.13.
+
+
v4.0.2 (2023-08-30)
===================
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/uritools-4.0.2/LICENSE new/uritools-4.0.3/LICENSE
--- old/uritools-4.0.2/LICENSE 2022-01-02 11:31:17.000000000 +0100
+++ new/uritools-4.0.3/LICENSE 2024-05-28 20:03:31.000000000 +0200
@@ -1,6 +1,6 @@
The MIT License (MIT)
-Copyright (c) 2014-2022 Thomas Kemmer
+Copyright (c) 2014-2024 Thomas Kemmer
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/uritools-4.0.2/MANIFEST.in
new/uritools-4.0.3/MANIFEST.in
--- old/uritools-4.0.2/MANIFEST.in 2020-08-10 19:35:07.000000000 +0200
+++ new/uritools-4.0.3/MANIFEST.in 2024-05-01 20:41:31.000000000 +0200
@@ -3,6 +3,7 @@
include MANIFEST.in
include README.rst
include tox.ini
+exclude .readthedocs.yaml
recursive-include docs *
prune docs/_build
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/uritools-4.0.2/PKG-INFO new/uritools-4.0.3/PKG-INFO
--- old/uritools-4.0.2/PKG-INFO 2023-08-30 21:34:03.441240300 +0200
+++ new/uritools-4.0.3/PKG-INFO 2024-05-28 20:05:22.811203200 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: uritools
-Version: 4.0.2
+Version: 4.0.3
Summary: URI parsing, classification and composition
Home-page: https://github.com/tkem/uritools/
Author: Thomas Kemmer
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/uritools-4.0.2/docs/conf.py
new/uritools-4.0.3/docs/conf.py
--- old/uritools-4.0.2/docs/conf.py 2023-08-30 21:31:51.000000000 +0200
+++ new/uritools-4.0.3/docs/conf.py 2024-05-28 20:03:31.000000000 +0200
@@ -1,7 +1,26 @@
+import pathlib
+import sys
+
+src_directory = (pathlib.Path(__file__).parent.parent / "src").resolve()
+sys.path.insert(0, str(src_directory))
+
+
+# Extract the current version from the source.
+def get_version():
+ """Get the version and release from the source code."""
+
+ text = (src_directory / "uritools/__init__.py").read_text()
+ for line in text.splitlines():
+ if not line.strip().startswith("__version__"):
+ continue
+ full_version = line.partition("=")[2].strip().strip("\"'")
+ partial_version = ".".join(full_version.split(".")[:2])
+ return full_version, partial_version
+
+
project = "uritools"
-copyright = "2014-2023 Thomas Kemmer"
-version = "4.0"
-release = "4.0.2"
+copyright = "2014-2024 Thomas Kemmer"
+release, version = get_version()
extensions = [
"sphinx.ext.autodoc",
@@ -11,4 +30,4 @@
]
exclude_patterns = ["_build"]
master_doc = "index"
-html_theme = "default"
+html_theme = "classic"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/uritools-4.0.2/setup.cfg new/uritools-4.0.3/setup.cfg
--- old/uritools-4.0.2/setup.cfg 2023-08-30 21:34:03.441240300 +0200
+++ new/uritools-4.0.3/setup.cfg 2024-05-28 20:05:22.811203200 +0200
@@ -5,7 +5,7 @@
author = Thomas Kemmer
author_email = [email protected]
license = MIT
-license_file = LICENSE
+license_files = LICENSE
description = URI parsing, classification and composition
long_description = file: README.rst
classifiers =
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/uritools-4.0.2/src/uritools/__init__.py
new/uritools-4.0.3/src/uritools/__init__.py
--- old/uritools-4.0.2/src/uritools/__init__.py 2023-08-30 21:31:51.000000000
+0200
+++ new/uritools-4.0.3/src/uritools/__init__.py 2024-05-28 20:03:31.000000000
+0200
@@ -34,7 +34,7 @@
"uriunsplit",
)
-__version__ = "4.0.2"
+__version__ = "4.0.3"
# RFC 3986 2.2. Reserved Characters
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/uritools-4.0.2/src/uritools.egg-info/PKG-INFO
new/uritools-4.0.3/src/uritools.egg-info/PKG-INFO
--- old/uritools-4.0.2/src/uritools.egg-info/PKG-INFO 2023-08-30
21:34:03.000000000 +0200
+++ new/uritools-4.0.3/src/uritools.egg-info/PKG-INFO 2024-05-28
20:05:22.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: uritools
-Version: 4.0.2
+Version: 4.0.3
Summary: URI parsing, classification and composition
Home-page: https://github.com/tkem/uritools/
Author: Thomas Kemmer
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/uritools-4.0.2/tests/test_split.py
new/uritools-4.0.3/tests/test_split.py
--- old/uritools-4.0.2/tests/test_split.py 2021-10-11 20:18:34.000000000
+0200
+++ new/uritools-4.0.3/tests/test_split.py 2024-05-28 20:03:31.000000000
+0200
@@ -406,52 +406,133 @@
"Error parsing query list for %r" % query,
)
- def test_ip_literal(self):
+ def test_ipv4_literal(self):
cases = [
- ("http://Test.python.org:5432/foo/", "test.python.org", 5432),
+ ("http://12.34.56.78/foo/", "12.34.56.78", None),
+ ("http://12.34.56.78:/foo/", "12.34.56.78", None),
("http://12.34.56.78:5432/foo/", "12.34.56.78", 5432),
- ("http://[::1]:5432/foo/", "::1", 5432),
- ("http://[dead:beef::1]:5432/foo/", "dead:beef::1", 5432),
- ("http://[dead:beef::]:5432/foo/", "dead:beef::", 5432),
+ ]
+ for uri, host, port in cases:
+ for parts in (urisplit(uri), urisplit(uri.encode("ascii"))):
+ self.assertEqual(host, str(parts.gethost()))
+ self.assertEqual(port, parts.getport())
+
+ def test_ipv6_literal(self):
+ cases = [
+ ("http://[::1]:5432/foo/",
"0000:0000:0000:0000:0000:0000:0000:0001", 5432),
+ (
+ "http://[dead:beef::1]:5432/foo/",
+ "dead:beef:0000:0000:0000:0000:0000:0001",
+ 5432,
+ ),
+ (
+ "http://[dead:beef::]:5432/foo/",
+ "dead:beef:0000:0000:0000:0000:0000:0000",
+ 5432,
+ ),
(
"http://[dead:beef:cafe:5417:affe:8FA3:deaf:feed]:5432/foo/",
"dead:beef:cafe:5417:affe:8fa3:deaf:feed",
5432,
),
- ("http://[::12.34.56.78]:5432/foo/", "::c22:384e", 5432),
- ("http://[::ffff:12.34.56.78]:5432/foo/", "::ffff:c22:384e", 5432),
- ("http://Test.python.org/foo/", "test.python.org", None),
- ("http://12.34.56.78/foo/", "12.34.56.78", None),
- ("http://[::1]/foo/", "::1", None),
- ("http://[dead:beef::1]/foo/", "dead:beef::1", None),
- ("http://[dead:beef::]/foo/", "dead:beef::", None),
+ ("http://[::1]/foo/", "0000:0000:0000:0000:0000:0000:0000:0001",
None),
+ (
+ "http://[dead:beef::1]/foo/",
+ "dead:beef:0000:0000:0000:0000:0000:0001",
+ None,
+ ),
+ (
+ "http://[dead:beef::]/foo/",
+ "dead:beef:0000:0000:0000:0000:0000:0000",
+ None,
+ ),
(
"http://[dead:beef:cafe:5417:affe:8FA3:deaf:feed]/foo/",
"dead:beef:cafe:5417:affe:8fa3:deaf:feed",
None,
),
- ("http://[::12.34.56.78]/foo/", "::c22:384e", None),
- ("http://[::ffff:12.34.56.78]/foo/", "::ffff:c22:384e", None),
- ("http://Test.python.org:/foo/", "test.python.org", None),
- ("http://12.34.56.78:/foo/", "12.34.56.78", None),
- ("http://[::1]:/foo/", "::1", None),
- ("http://[dead:beef::1]:/foo/", "dead:beef::1", None),
- ("http://[dead:beef::]:/foo/", "dead:beef::", None),
+ ("http://[::1]:/foo/", "0000:0000:0000:0000:0000:0000:0000:0001",
None),
+ (
+ "http://[dead:beef::1]:/foo/",
+ "dead:beef:0000:0000:0000:0000:0000:0001",
+ None,
+ ),
+ (
+ "http://[dead:beef::]:/foo/",
+ "dead:beef:0000:0000:0000:0000:0000:0000",
+ None,
+ ),
(
"http://[dead:beef:cafe:5417:affe:8FA3:deaf:feed]:/foo/",
"dead:beef:cafe:5417:affe:8fa3:deaf:feed",
None,
),
- ("http://[::12.34.56.78]:/foo/", "::c22:384e", None),
- ("http://[::ffff:12.34.56.78]:/foo/", "::ffff:c22:384e", None),
]
for uri, host, port in cases:
+ for parts in (urisplit(uri), urisplit(uri.encode("ascii"))):
+ self.assertEqual(host, parts.gethost().exploded)
+ self.assertEqual(port, parts.getport())
+
+ def test_ipv4_mapped_literal(self):
+ # since Python 3.13, the "alternative form" is used for
+ # IPv4-mapped addresses, see RFC 4291 2.2 p.3
+ cases = [
+ (
+ "http://[::12.34.56.78]:5432/foo/",
+ [
+ "0000:0000:0000:0000:0000:0000:0c22:384e",
+ "0000:0000:0000:0000:0000:0000:12.34.56.78",
+ ],
+ 5432,
+ ),
+ (
+ "http://[::ffff:12.34.56.78]:5432/foo/",
+ [
+ "0000:0000:0000:0000:0000:ffff:0c22:384e",
+ "0000:0000:0000:0000:0000:ffff:12.34.56.78",
+ ],
+ 5432,
+ ),
+ (
+ "http://[::12.34.56.78]/foo/",
+ [
+ "0000:0000:0000:0000:0000:0000:0c22:384e",
+ "0000:0000:0000:0000:0000:0000:12.34.56.78",
+ ],
+ None,
+ ),
+ (
+ "http://[::ffff:12.34.56.78]/foo/",
+ [
+ "0000:0000:0000:0000:0000:ffff:0c22:384e",
+ "0000:0000:0000:0000:0000:ffff:12.34.56.78",
+ ],
+ None,
+ ),
+ (
+ "http://[::12.34.56.78]:/foo/",
+ [
+ "0000:0000:0000:0000:0000:0000:0c22:384e",
+ "0000:0000:0000:0000:0000:0000:12.34.56.78",
+ ],
+ None,
+ ),
+ (
+ "http://[::ffff:12.34.56.78]:/foo/",
+ [
+ "0000:0000:0000:0000:0000:ffff:0c22:384e",
+ "0000:0000:0000:0000:0000:ffff:12.34.56.78",
+ ],
+ None,
+ ),
+ ]
+ for uri, hosts, port in cases:
parts = urisplit(uri)
- self.assertEqual(host, str(parts.gethost()))
- self.assertEqual(port, parts.getport())
+ self.assertIn(parts.gethost().exploded, hosts)
+ self.assertEqual(parts.getport(), port)
parts = urisplit(uri.encode("ascii"))
- self.assertEqual(host, str(parts.gethost()))
- self.assertEqual(port, parts.getport())
+ self.assertIn(parts.gethost().exploded, hosts)
+ self.assertEqual(parts.getport(), port)
def test_invalid_ip_literal(self):
uris = [
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/uritools-4.0.2/tox.ini new/uritools-4.0.3/tox.ini
--- old/uritools-4.0.2/tox.ini 2021-10-11 20:18:34.000000000 +0200
+++ new/uritools-4.0.3/tox.ini 2024-05-28 20:03:31.000000000 +0200
@@ -3,7 +3,6 @@
[testenv]
deps =
- coverage
pytest
pytest-cov
commands =