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 <dmuel...@suse.com>
+
+- 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 = tkem...@computer.org
 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 =

Reply via email to