gnu: python-pep8: Patch to fix test failure with Python 3.7.

Patch from the upstream repository, see
https://github.com/PyCQA/pycodestyle/issues/786 for more details.

* gnu/packages/patches/python-pep8-stdlib-tokenize-compat.patch: New file.
* gnu/packages/python-xyz.scm (python-pep8)[source]: Add it.
This commit is contained in:
Christopher Baines 2019-07-13 22:51:48 +01:00
parent 6005440d98
commit 2be878d8e5
No known key found for this signature in database
GPG Key ID: 5E28A33B0B84F577
2 changed files with 37 additions and 1 deletions

View File

@ -0,0 +1,35 @@
From 397463014fda3cdefe8d6c9d117ae16d878dc494 Mon Sep 17 00:00:00 2001
From: Michael Hudson-Doyle <michael.hudson@canonical.com>
Date: Tue, 25 Sep 2018 14:58:57 +1200
Subject: [PATCH] Keep compability with stdlib tokenize.py changes
https://github.com/python/cpython/commit/c4ef4896eac86a6759901c8546e26de4695a1389
is not yet part of any release of Python but has been backported to all
versions in Git (includeing 2.7!). It causes the tokenize.py module to
emit a synthetic NEWLINE token for files that do not in fact end with a
newline, which confuses pycodestyle's checks for blank lines at the end
of a file. Fortunately the synthetic NEWLINE tokens are easy to detect
(the token text is "").
Fixes #786
---
pycodestyle.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/pycodestyle.py b/pycodestyle.py
index 0d725d27..fbc3dca3 100755
--- a/pep8.py
+++ b/pep8.py
@@ -258,10 +258,10 @@ def trailing_blank_lines(physical_line, lines, line_number, total_lines):
"""
if line_number == total_lines:
stripped_last_line = physical_line.rstrip()
- if not stripped_last_line:
+ if physical_line and not stripped_last_line:
return 0, "W391 blank line at end of file"
if stripped_last_line == physical_line:
- return len(physical_line), "W292 no newline at end of file"
+ return len(lines[-1]), "W292 no newline at end of file"
@register_check

View File

@ -6350,7 +6350,8 @@ applications.")
(uri (pypi-uri "pep8" version))
(sha256
(base32
"002rkl4lsn6x2mxmf8ar00l0m8i3mzrc6pnzz77blyksmpsxa4x1"))))
"002rkl4lsn6x2mxmf8ar00l0m8i3mzrc6pnzz77blyksmpsxa4x1"))
(patches (search-patches "python-pep8-stdlib-tokenize-compat.patch"))))
(build-system python-build-system)
(home-page "https://pep8.readthedocs.org/")
(synopsis "Python style guide checker")