From 13c9812c9d409bdeba5a55dabac3fae72261186dc3f61073434c24161b955447 Mon Sep 17 00:00:00 2001 From: Nico Krapp Date: Mon, 17 Nov 2025 07:15:55 +0000 Subject: [PATCH] - Add upstream ignore-utf16.patch to fix test failure OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-docformatter?expand=0&rev=25 --- .gitattributes | 23 +++++++ .gitignore | 1 + do-not-require-venv.patch | 15 +++++ docformatter-1.7.7.tar.gz | 3 + ignore-utf16.patch | 32 +++++++++ python-docformatter.changes | 127 ++++++++++++++++++++++++++++++++++++ python-docformatter.spec | 98 ++++++++++++++++++++++++++++ 7 files changed, 299 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 do-not-require-venv.patch create mode 100644 docformatter-1.7.7.tar.gz create mode 100644 ignore-utf16.patch create mode 100644 python-docformatter.changes create mode 100644 python-docformatter.spec diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/do-not-require-venv.patch b/do-not-require-venv.patch new file mode 100644 index 0000000..4d8feda --- /dev/null +++ b/do-not-require-venv.patch @@ -0,0 +1,15 @@ +Index: docformatter-1.7.5/tests/conftest.py +=================================================================== +--- docformatter-1.7.5.orig/tests/conftest.py ++++ docformatter-1.7.5/tests/conftest.py +@@ -113,8 +113,9 @@ def run_docformatter(arguments, temporar + os.environ["VIRTUAL_ENV"] + "/bin/docformatter", + ] + else: ++ version = f"{sys.version_info.major}.{sys.version_info.minor}" + DOCFORMATTER_COMMAND = [ +- os.environ["VIRTUAL_ENV"] + "/bin/docformatter", ++ f"{os.environ['BUILDROOT']}/usr/bin/docformatter-{version}", + ] # pragma: no cover + + if "-" not in arguments: diff --git a/docformatter-1.7.7.tar.gz b/docformatter-1.7.7.tar.gz new file mode 100644 index 0000000..312bc3f --- /dev/null +++ b/docformatter-1.7.7.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6d76165e3a52384ed982889672751bf3d96f3126b57c47c04f66925b35dd7374 +size 315538 diff --git a/ignore-utf16.patch b/ignore-utf16.patch new file mode 100644 index 0000000..f87c3a0 --- /dev/null +++ b/ignore-utf16.patch @@ -0,0 +1,32 @@ +From 412479e5d6b02f7dd7e20f870132a413dc83898a Mon Sep 17 00:00:00 2001 +From: Doyle Rowland +Date: Thu, 14 Aug 2025 17:58:02 -0400 +Subject: [PATCH] fix: explicitly ignore utf_16 and utf_32 encoding + +--- + src/docformatter/encode.py | 12 +++++++++--- + 1 file changed, 9 insertions(+), 3 deletions(-) + +diff --git a/src/docformatter/encode.py b/src/docformatter/encode.py +index ac55ee9..c7e36f0 100644 +--- a/src/docformatter/encode.py ++++ b/src/docformatter/encode.py +@@ -64,9 +64,15 @@ def do_detect_encoding(self, filename) -> None: + """ + try: + detection_result = from_path(filename).best() +- self.encoding = ( +- detection_result.encoding if detection_result else self.DEFAULT_ENCODING +- ) ++ if detection_result and detection_result.encoding in ["utf_16", "utf_32"]: ++ # Treat undetectable/binary encodings as failure ++ self.encoding = self.DEFAULT_ENCODING ++ else: ++ self.encoding = ( ++ detection_result.encoding ++ if detection_result ++ else self.DEFAULT_ENCODING ++ ) + + # Check for correctness of encoding. + with self.do_open_with_encoding(filename) as check_file: diff --git a/python-docformatter.changes b/python-docformatter.changes new file mode 100644 index 0000000..29ee10b --- /dev/null +++ b/python-docformatter.changes @@ -0,0 +1,127 @@ +------------------------------------------------------------------- +Fri Nov 14 13:51:14 UTC 2025 - Markéta Machová + +- Add upstream ignore-utf16.patch to fix test failure + +------------------------------------------------------------------- +Mon May 19 10:01:24 UTC 2025 - John Paul Adrian Glaubitz + +- Update to 1.7.7 + * Merged pull requests: + + chore(deps-dev): bump black from 22.12.0 to 24.3.0 + + chore(deps-dev): bump jinja2 from 3.1.4 to 3.1.6 + + chore(deps-dev): bump requests from 2.31.0 to 2.32.2 + + chore(deps-dev): bump virtualenv from 20.21.1 to 20.26.6 + + chore(deps-dev): bump zipp from 3.15.0 to 3.19.1 + + chore(deps-dev): bump urllib3 from 2.0.7 to 2.2.2 +- from version 1.7.6 + * Features + + prefer new unittest.mock from the standard library #280 + + Handle abbreviation 'etc.' (et cetera) #273 + * Bug Fixes + + Do not double-process urls #284 + * Merged pull requests: + + Fix pre-commit syntax #266 + + Update version listed in documentation's Pre-Commit example #262 + + Add missing comma in requirements table #261 +- Drop remove-mock.patch, merged upstream +- Drop support-python-312.patch, merged upstream +- Use Python 3.11 on SLE-15 by default + +------------------------------------------------------------------- +Thu Jan 16 14:06:31 UTC 2025 - Markéta Machová + +- Fix packaging + +------------------------------------------------------------------- +Fri Nov 29 00:00:01 UTC 2024 - Steve Kowalik + +- Update to 1.7.5: + * Features + + fix: not recognizing `yield` as a sphinx field name + + feat: support epytext style + + feat: use tomllib for Python 3.11+ + + feat: wrap Sphinx style long parameter descriptions + + feat: add option for user to provide list of words not to capitalize + + Support python 3.11 + * Bug Fixes + + fix: summary with back ticks and sphinx field names with periods + + fix: removing newline between Sphinx field lists + + fix: wrapping issues with reST directives, quoted URLs, and Sphinx + field lists + + fix: improper wrapping of short anonymous hyperlnks + + fix: removing blank line after import section + + fix: IndexError when only URL in long description + + fix: removing newline after shebang + + fix: not capitalizing first word when summary ends in period + + fix: adding newlines around wrapped URL + + fix: adding blank line in summary with symbol + + fix: remove blank lines after line beginning with 'def' + + fix: update URL handling functions +- Switch to autosetup and pyproject macros. +- No more greedy globs in %files. +- Add patches: + * remove-mock.patch + + Do not use external mock module + * support-python-312.patch + + Support Python 3.12+ changes + * do-not-require-venv.patch + + Do not require a virtualenv to run the testsuite + +------------------------------------------------------------------- +Thu May 20 07:18:31 UTC 2021 - pgajdos@suse.com + +- version update to 1.4 + * Add --docstring-length flag + * Not add period for summary formatted as title + * Added command line exclude option +- use %pytest macro + +------------------------------------------------------------------- +Tue May 26 07:22:42 UTC 2020 - Petr Gajdos + +- %python3_only -> %python_alternative + +------------------------------------------------------------------- +Thu Apr 2 12:38:39 UTC 2020 - Marketa Calabkova + +- update to 1.3.1 + * A pydoc reference such as ':see:' should not be start of sentence + +------------------------------------------------------------------- +Fri Jul 26 09:26:07 UTC 2019 - pgajdos@suse.com + +- version update to 1.3 + * no upstream changelog + +------------------------------------------------------------------- +Fri Mar 8 14:28:00 UTC 2019 - Tomáš Chvátal + +- Update to 1.1: + * fixes for python 3.7 + * varioius cleanups + +------------------------------------------------------------------- +Tue Dec 4 12:47:23 UTC 2018 - Matej Cepl + +- Remove superfluous devel dependency for noarch package + +------------------------------------------------------------------- +Sun Jul 29 13:14:37 UTC 2018 - jengelh@inai.de + +- Use noun phrase in summary. + +------------------------------------------------------------------- +Thu May 24 17:31:41 UTC 2018 - toddrme2178@gmail.com + +- Update to version 1.0 + * Document and test disabling of wrapping + * Add @kapsh + * Make text wrapping trigger more conservative + * Adds support for argument lists +- Spec file cleanups + +------------------------------------------------------------------- +Tue Nov 7 18:41:21 UTC 2017 - toddrme2178@gmail.com + +- initial version diff --git a/python-docformatter.spec b/python-docformatter.spec new file mode 100644 index 0000000..4cfe21e --- /dev/null +++ b/python-docformatter.spec @@ -0,0 +1,98 @@ +# +# spec file for package python-docformatter +# +# Copyright (c) 2025 SUSE LLC and contributors +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%{?sle15_python_module_pythons} +Name: python-docformatter +Version: 1.7.7 +Release: 0 +Summary: Utility to re-format docstrings per PEP 257 +License: MIT +URL: https://github.com/myint/docformatter +Source: https://github.com/PyCQA/docformatter/archive/refs/tags/v%{version}.tar.gz#/docformatter-%{version}.tar.gz +# PATCH-FIX-OPENSUSE Do not require virtualenvs to run the tests +Patch0: do-not-require-venv.patch +# PATCH-FIX-UPSTREAM cherry-pick from https://github.com/PyCQA/docformatter/pull/323 fix: issue 321 +Patch1: ignore-utf16.patch +BuildRequires: %{python_module base >= 3.7} +BuildRequires: %{python_module pip} +BuildRequires: %{python_module poetry-core} +BuildRequires: fdupes +BuildRequires: python-rpm-macros +Requires: python-charset-normalizer +Requires: python-untokenize +Requires(post): update-alternatives +Requires(postun): update-alternatives +BuildArch: noarch +# SECTION test requirements +BuildRequires: %{python_module pytest} +BuildRequires: %{python_module charset-normalizer >= 3.0} +BuildRequires: %{python_module untokenize} +# /SECTION +%python_subpackages + +%description +Docformatter currently automatically formats docstrings to follow a +subset of the PEP 257 conventions. Below are the relevant items quoted +from PEP 257. + +- For consistency, always use triple double quotes around docstrings. +- Triple quotes are used even though the string fits on one line. +- Multi-line docstrings consist of a summary line just like a one-line + docstring, followed by a blank line, followed by a more elaborate + description. +- The BDFL recommends inserting a blank line between the last paragraph + in a multi-line docstring and its closing quotes, placing the closing + quotes on a line by themselves. + +docformatter also handles some of the PEP 8 conventions. + +- Don't write string literals that rely on significant trailing + whitespace. Such trailing whitespace is visually indistinguishable + and some editors (or more recently, reindent.py) will trim them. + +%prep +%autosetup -p1 -n docformatter-%{version} +sed -i -e '/^#!\//, 1d' src/docformatter/*.py +chmod -x src/docformatter/__main__.py + +%build +%pyproject_wheel + +%install +%pyproject_install +%python_clone -a %{buildroot}%{_bindir}/docformatter +%python_expand %fdupes %{buildroot}%{$python_sitelib} + +%check +export BUILDROOT=%{buildroot} +%pytest + +%post +%python_install_alternative docformatter + +%postun +%python_uninstall_alternative docformatter + +%files %{python_files} +%license LICENSE +%doc AUTHORS.rst README.rst +%python_alternative %{_bindir}/docformatter +%{python_sitelib}/docformatter +%{python_sitelib}/docformatter-%{version}.dist-info + +%changelog