From 8077fbc89761813a680e8106900b249d80daf5d9a882e7a81fda9926bc015a22 Mon Sep 17 00:00:00 2001 From: Steve Kowalik Date: Fri, 11 Apr 2025 05:10:17 +0000 Subject: [PATCH] - Update to 2.2.0: * Added + New `default_domain` parameter to support absolute paths with domain names + New command-line interface (`url-normalize`) + Query parameter filtering functionality + Parameter allowlist feature for controlling accepted query parameters + IDNA 2008 support via `idna` package * Fixed + Handle URLs with missing slashes correctly + Fix decoding of reserved characters in URL paths + Fix Twitter hashtag encoding in query parameters + Do not encode equals sign in fragment + Reverted license format in pyproject.toml to maintain Python 3.8 compatibility with older setuptools versions * Changed + **BREAKING:** Switch default scheme from 'http' to 'https' + **BREAKING:** Migrated IDNA handling to use IDNA 2008 with UTS46 processing + **BREAKING:** Updated minimum Python version to 3.8 + **BREAKING:** Removed sort_query_params option as it was incorrect + Enhanced query normalization with parameter filtering support + Updated URL cleanup to support new filtering features + Changed host normalization to handle each domain label separately - Drop patch url-normalize-pr28-poetry-core.patch, now included. OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-url-normalize?expand=0&rev=5 --- python-url-normalize.changes | 29 ++++++++++++++++++++++++ python-url-normalize.spec | 33 +++++++++++++++++++--------- url-normalize-1.4.3.tar.gz | 3 --- url-normalize-2.2.0.tar.gz | 3 +++ url-normalize-pr28-poetry-core.patch | 21 ------------------ 5 files changed, 55 insertions(+), 34 deletions(-) delete mode 100644 url-normalize-1.4.3.tar.gz create mode 100644 url-normalize-2.2.0.tar.gz delete mode 100644 url-normalize-pr28-poetry-core.patch diff --git a/python-url-normalize.changes b/python-url-normalize.changes index a2295c0..65c22ae 100644 --- a/python-url-normalize.changes +++ b/python-url-normalize.changes @@ -1,3 +1,32 @@ +------------------------------------------------------------------- +Fri Apr 11 05:09:53 UTC 2025 - Steve Kowalik + +- Update to 2.2.0: + * Added + + New `default_domain` parameter to support absolute paths with domain + names + + New command-line interface (`url-normalize`) + + Query parameter filtering functionality + + Parameter allowlist feature for controlling accepted query parameters + + IDNA 2008 support via `idna` package + * Fixed + + Handle URLs with missing slashes correctly + + Fix decoding of reserved characters in URL paths + + Fix Twitter hashtag encoding in query parameters + + Do not encode equals sign in fragment + + Reverted license format in pyproject.toml to maintain Python 3.8 + compatibility with older setuptools versions + * Changed + + **BREAKING:** Switch default scheme from 'http' to 'https' + + **BREAKING:** Migrated IDNA handling to use IDNA 2008 with UTS46 + processing + + **BREAKING:** Updated minimum Python version to 3.8 + + **BREAKING:** Removed sort_query_params option as it was incorrect + + Enhanced query normalization with parameter filtering support + + Updated URL cleanup to support new filtering features + + Changed host normalization to handle each domain label separately +- Drop patch url-normalize-pr28-poetry-core.patch, now included. + ------------------------------------------------------------------- Tue May 9 19:33:52 UTC 2023 - Ben Greiner diff --git a/python-url-normalize.spec b/python-url-normalize.spec index ce7b469..de33152 100644 --- a/python-url-normalize.spec +++ b/python-url-normalize.spec @@ -1,7 +1,7 @@ # # spec file for package python-url-normalize # -# Copyright (c) 2023 SUSE LLC +# Copyright (c) 2025 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,23 +17,25 @@ Name: python-url-normalize -Version: 1.4.3 +Version: 2.2.0 Release: 0 Summary: URL normalization for Python License: MIT -Group: Development/Languages/Python URL: https://github.com/niksite/url-normalize -Source: https://github.com/niksite/url-normalize/archive/refs/tags/%{version}.tar.gz#/url-normalize-%{version}.tar.gz -# PATCH-FIX-UPSTREAM url-normalize-pr28-poetry-core.patch gh#niksite/url-normalize#28 -Patch0: https://github.com/niksite/url-normalize/pull/28.patch#/url-normalize-pr28-poetry-core.patch +Source: https://github.com/niksite/url-normalize/archive/refs/tags/v%{version}.tar.gz#/url-normalize-%{version}.tar.gz +BuildRequires: %{python_module base >= 3.8} +BuildRequires: %{python_module idna >= 3.3} BuildRequires: %{python_module pip} -BuildRequires: %{python_module poetry-core >= 1.0.0} +BuildRequires: %{python_module pytest-cov} +BuildRequires: %{python_module pytest-socket} BuildRequires: %{python_module pytest} -BuildRequires: %{python_module six} +BuildRequires: %{python_module setuptools >= 42} BuildRequires: fdupes BuildRequires: python-rpm-macros Provides: python-url_normalize = %{version}-%{release} -Requires: python-six +Requires: python-idna >= 3.3 +Requires(post): update-alternatives +Requires(postun): update-alternatives BuildArch: noarch %python_subpackages @@ -42,7 +44,10 @@ URL normalization for Python. %prep %autosetup -p1 -n url-normalize-%{version} -rm tox.ini +# Do not require pytest-ruff +sed -i '/^ "--ruff",$/d' pyproject.toml +# Do not fail over coverage issues +sed -i '/^ "--cov-fail-under=100",$/d' pyproject.toml %build %pyproject_wheel @@ -50,13 +55,21 @@ rm tox.ini %install %pyproject_install %python_expand %fdupes %{buildroot}%{$python_sitelib} +%python_clone -a %{buildroot}%{_bindir}/url-normalize %check %pytest +%post +%python_install_alternative url-normalize + +%postun +%python_uninstall_alternative url-normalize + %files %{python_files} %doc README.md %license LICENSE +%python_alternative %{_bindir}/url-normalize %{python_sitelib}/url_normalize %{python_sitelib}/url_normalize-%{version}.dist-info diff --git a/url-normalize-1.4.3.tar.gz b/url-normalize-1.4.3.tar.gz deleted file mode 100644 index 10a3ba7..0000000 --- a/url-normalize-1.4.3.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9803deb16a6ecd88075686c4445ff6c78986d3ae676a4cc6cc3e4d324bc45c56 -size 8478 diff --git a/url-normalize-2.2.0.tar.gz b/url-normalize-2.2.0.tar.gz new file mode 100644 index 0000000..3b1e352 --- /dev/null +++ b/url-normalize-2.2.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:34281180cb1edda4edd37d567ebe9f56f4d6607bc82336f866fff5f42c564dbc +size 17161 diff --git a/url-normalize-pr28-poetry-core.patch b/url-normalize-pr28-poetry-core.patch deleted file mode 100644 index 2892b61..0000000 --- a/url-normalize-pr28-poetry-core.patch +++ /dev/null @@ -1,21 +0,0 @@ -From b8557b10c977b191cc9d37e6337afe874a24ad08 Mon Sep 17 00:00:00 2001 -From: Fabian Affolter -Date: Sun, 2 Jan 2022 11:14:15 +0100 -Subject: [PATCH] Switch to poetry-core - ---- - pyproject.toml | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/pyproject.toml b/pyproject.toml -index f824aa9..ed77161 100644 ---- a/pyproject.toml -+++ b/pyproject.toml -@@ -30,5 +30,5 @@ pytest-socket = [{version="0.3.3", python="~2.7"}, {version="*", python="^3.6"}] - tox = [{version="*", python="^3.6"}] - - [build-system] --build-backend = "poetry.masonry.api" --requires = ["poetry>=0.12"] -+requires = ["poetry-core>=1.0.0"] -+build-backend = "poetry.core.masonry.api"