15
0

- 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

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-docformatter?expand=0&rev=19
This commit is contained in:
2024-11-29 00:00:36 +00:00
committed by Git OBS Bridge
parent 7be6aa2f9d
commit 487f5a9eaa
7 changed files with 182 additions and 19 deletions

15
do-not-require-venv.patch Normal file
View File

@@ -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:

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:064e6d81f04ac96bc0d176cbaae953a0332482b22d3ad70d47c8a7f2732eef6f
size 208955

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d35de4c83b78172bf618500a8b0e9075378ec41aa4a71b28f2f633a60668b3ab
size 265766

View File

@@ -1,3 +1,38 @@
-------------------------------------------------------------------
Fri Nov 29 00:00:01 UTC 2024 - Steve Kowalik <steven.kowalik@suse.com>
- 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

View File

@@ -1,7 +1,7 @@
#
# spec file for package python-docformatter
#
# Copyright (c) 2021 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
@@ -16,28 +16,32 @@
#
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-docformatter
Version: 1.4
Version: 1.7.5
Release: 0
Summary: Utility to re-format docstrings per PEP 257
License: MIT
Group: Development/Languages/Python
URL: https://github.com/myint/docformatter
Source: https://files.pythonhosted.org/packages/source/d/docformatter/docformatter-%{version}.tar.gz
BuildRequires: %{python_module setuptools}
Source: https://github.com/PyCQA/docformatter/archive/refs/tags/v%{version}.tar.gz#/docformatter-%{version}.tar.gz
# PATCH-FIX-UPSTREAM gh#PyCQA/docformatter#280
Patch0: remove-mock.patch
# PATCH-FIX-UPSTREAM gh#PyCQA/docformatter#296
Patch1: support-python-312.patch
# PATCH-FIX-OPENSUSE Do not require virtualenvs to run the tests
Patch2: do-not-require-venv.patch
BuildRequires: %{python_module base >= 3.7}
BuildRequires: %{python_module pip}
BuildRequires: %{python_module poetry-core}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
Requires: python-setuptools
Requires: python-charset-normalizer
Requires: python-untokenize
Requires(post): update-alternatives
Requires(postun):update-alternatives
Requires(postun): update-alternatives
BuildArch: noarch
# SECTION test requirements
%if %{suse_version} <= 1500
BuildRequires: python2-mock
%endif
BuildRequires: %{python_module pytest}
BuildRequires: %{python_module charset-normalizer >= 3.0}
BuildRequires: %{python_module untokenize}
# /SECTION
%python_subpackages
@@ -63,18 +67,22 @@ docformatter also handles some of the PEP 8 conventions.
and some editors (or more recently, reindent.py) will trim them.
%prep
%setup -q -n docformatter-%{version}
sed -i -e '/^#!\//, 1d' docformatter.py
%autosetup -p1 -n docformatter-%{version}
sed -i -e '/^#!\//, 1d' src/docformatter/*.py
chmod -x src/docformatter/__main__.py
%build
%python_build
%pyproject_wheel
%install
%python_install
%pyproject_install
# Do not install LICENSE
%python_expand rm %{buildroot}%{$python_sitelib}/LICENSE
%python_clone -a %{buildroot}%{_bindir}/docformatter
%python_expand %fdupes %{buildroot}%{$python_sitelib}
%check
export BUILDROOT=%{buildroot}
%pytest
%post
@@ -87,6 +95,7 @@ sed -i -e '/^#!\//, 1d' docformatter.py
%license LICENSE
%doc AUTHORS.rst README.rst
%python_alternative %{_bindir}/docformatter
%{python_sitelib}/*
%{python_sitelib}/docformatter
%{python_sitelib}/docformatter-%{version}.dist-info
%changelog

28
remove-mock.patch Normal file
View File

@@ -0,0 +1,28 @@
From ba56f8498a1ebed724316e3affcc2c98eeac4ca7 Mon Sep 17 00:00:00 2001
From: Alexandre Detiste <alexandre.detiste@gmail.com>
Date: Sat, 27 Apr 2024 13:44:08 +0200
Subject: [PATCH] prefer new unittest.mock from the standard library
---
tests/test_utility_functions.py | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/tests/test_utility_functions.py b/tests/test_utility_functions.py
index c9fffd3..e127f33 100644
--- a/tests/test_utility_functions.py
+++ b/tests/test_utility_functions.py
@@ -36,9 +36,13 @@
- is_some_sort_of_code()
"""
+try:
+ from unittest.mock import patch
+except ImportError:
+ from mock import patch
+
# Third Party Imports
import pytest
-from mock import patch
# docformatter Package Imports
import docformatter

76
support-python-312.patch Normal file
View File

@@ -0,0 +1,76 @@
From ea60c5528506361f1f9edbeabb75ff874bb77046 Mon Sep 17 00:00:00 2001
From: finswimmer <finswimmer77@gmail.com>
Date: Sat, 19 Oct 2024 13:22:28 +0200
Subject: [PATCH 1/2] feat: drop support for Python < 3.9
Added CI pipelines for Pyton 3.12, 3.13
---
.github/workflows/ci.yml | 6 +--
pyproject.toml | 46 ++++++++++----------
tests/_data/string_files/do_format_code.toml | 6 +--
tests/test_docformatter.py | 14 +++---
4 files changed, 35 insertions(+), 37 deletions(-)
diff --git a/tests/_data/string_files/do_format_code.toml b/tests/_data/string_files/do_format_code.toml
index 5d886f3..469c78b 100644
--- a/tests/_data/string_files/do_format_code.toml
+++ b/tests/_data/string_files/do_format_code.toml
@@ -37,7 +37,7 @@ instring='''
CONST = 123
"""docstring for CONST."""
- '''
+'''
outstring='''
CONST = 123
"""docstring for CONST."""
@@ -50,7 +50,7 @@ instring='''
:cvar test_int: a class attribute.
..py.method: big_method()
"""
- '''
+'''
outstring='''
class TestClass:
"""This is a class docstring.
@@ -74,7 +74,7 @@ instring='''
"""This is a second class variable docstring."""
- '''
+'''
outstring='''
class TestClass:
"""This is a class docstring."""
diff --git a/tests/test_docformatter.py b/tests/test_docformatter.py
index 20c0809..dbad7c0 100644
--- a/tests/test_docformatter.py
+++ b/tests/test_docformatter.py
@@ -688,9 +688,9 @@ class TestEndToEndPyproject:
"contents",
[
'''\
- class TestFoo():
- """Docstring that should not have a pre-summary space."""
- '''
+class TestFoo():
+ """ Docstring that should not have a pre-summary space."""
+'''
],
)
@pytest.mark.parametrize(
@@ -725,10 +725,10 @@ def test_no_pre_summary_space_using_pyproject(
See issue #119.
"""
assert '''\
-@@ -1,3 +1,2 @@
- class TestFoo():
- """Docstring that should not have a pre-summary space."""
--
+@@ -1,2 +1,2 @@
+ class TestFoo():
+- """ Docstring that should not have a pre-summary space."""
++ """Docstring that should not have a pre-summary space."""
''' == "\n".join(
run_docformatter.communicate()[0].decode().replace("\r", "").split("\n")[2:]
)