1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
|
From af16abbe3ab1f09221e5b754624e1db35c1b0711 Mon Sep 17 00:00:00 2001
From: Anthony Sottile <asottile@umich.edu>
Date: Fri, 10 Apr 2020 18:53:10 -0700
Subject: [PATCH] Support pyflakes 2.2.x
---
docs/source/user/error-codes.rst | 35 +++++++++++++++++++++++++++++++-
setup.cfg | 2 +-
src/flake8/plugins/pyflakes.py | 16 +++++++++++++++
3 files changed, 51 insertions(+), 2 deletions(-)
diff --git a/docs/source/user/error-codes.rst b/docs/source/user/error-codes.rst
index 1bc3d7f..41341b1 100644
--- a/docs/source/user/error-codes.rst
+++ b/docs/source/user/error-codes.rst
@@ -29,6 +29,37 @@ generates its own :term:`error code`\ s for ``pyflakes``:
| F407 | an undefined ``__future__`` feature name was imported |
+------+---------------------------------------------------------------------+
+------+---------------------------------------------------------------------+
+| F501 | invalid ``%`` format literal |
++------+---------------------------------------------------------------------+
+| F502 | ``%`` format expected mapping but got sequence |
++------+---------------------------------------------------------------------+
+| F503 | ``%`` format expected sequence but got mapping |
++------+---------------------------------------------------------------------+
+| F504 | ``%`` format unused named arguments |
++------+---------------------------------------------------------------------+
+| F505 | ``%`` format missing named arguments |
++------+---------------------------------------------------------------------+
+| F506 | ``%`` format mixed positional and named arguments |
++------+---------------------------------------------------------------------+
+| F507 | ``%`` format mismatch of placeholder and argument count |
++------+---------------------------------------------------------------------+
+| F508 | ``%`` format with ``*`` specifier requires a sequence |
++------+---------------------------------------------------------------------+
+| F509 | ``%`` format with unsupported format character |
++------+---------------------------------------------------------------------+
+| F520 | ``.format(...)`` invalid format string |
++------+---------------------------------------------------------------------+
+| F521 | ``.format(...)`` unused named arguments |
++------+---------------------------------------------------------------------+
+| F522 | ``.format(...)`` unused positional arguments |
++------+---------------------------------------------------------------------+
+| F523 | ``.format(...)`` missing argument |
++------+---------------------------------------------------------------------+
+| F524 | ``.format(...)`` mixing automatic and manual numbering |
++------+---------------------------------------------------------------------+
+| F540 | f-string without any placeholders |
++------+---------------------------------------------------------------------+
++------+---------------------------------------------------------------------+
| F601 | dictionary key ``name`` repeated with different values |
+------+---------------------------------------------------------------------+
| F602 | dictionary key variable ``name`` repeated with different values |
@@ -37,12 +68,14 @@ generates its own :term:`error code`\ s for ``pyflakes``:
+------+---------------------------------------------------------------------+
| F622 | two or more starred expressions in an assignment ``(a, *b, *c = d)``|
+------+---------------------------------------------------------------------+
-| F631 | assertion test is a tuple, which are always ``True`` |
+| F631 | assertion test is a tuple, which is always ``True`` |
+------+---------------------------------------------------------------------+
| F632 | use ``==/!=`` to compare ``str``, ``bytes``, and ``int`` literals |
+------+---------------------------------------------------------------------+
| F633 | use of ``>>`` is invalid with ``print`` function |
+------+---------------------------------------------------------------------+
+| F634 | if test is a tuple, which is always ``True`` |
++------+---------------------------------------------------------------------+
+------+---------------------------------------------------------------------+
| F701 | a ``break`` statement outside of a ``while`` or ``for`` loop |
+------+---------------------------------------------------------------------+
diff --git a/setup.cfg b/setup.cfg
index f482ec0..58b4dc0 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -41,7 +41,7 @@ install_requires=
# http://flake8.pycqa.org/en/latest/faq.html#why-does-flake8-use-ranges-for-its-dependencies
# And in which releases we will update those ranges here:
# http://flake8.pycqa.org/en/latest/internal/releases.html#releasing-flake8
- pyflakes >= 2.1.0, < 2.2.0
+ pyflakes >= 2.2.0, < 2.3.0
pycodestyle >= 2.5.0, < 2.6.0
mccabe >= 0.6.0, < 0.7.0
enum34; python_version<"3.4"
diff --git a/src/flake8/plugins/pyflakes.py b/src/flake8/plugins/pyflakes.py
index b216b62..54a8419 100644
--- a/src/flake8/plugins/pyflakes.py
+++ b/src/flake8/plugins/pyflakes.py
@@ -26,6 +26,21 @@ FLAKE8_PYFLAKES_CODES = {
"ImportStarUsage": "F405",
"ImportStarNotPermitted": "F406",
"FutureFeatureNotDefined": "F407",
+ "PercentFormatInvalidFormat": "F501",
+ "PercentFormatExpectedMapping": "F502",
+ "PercentFormatExpectedSequence": "F503",
+ "PercentFormatExtraNamedArguments": "F504",
+ "PercentFormatMissingArgument": "F505",
+ "PercentFormatMixedPositionalAndNamed": "F506",
+ "PercentFormatPositionalCountMismatch": "F507",
+ "PercentFormatStarRequiresSequence": "F508",
+ "PercentFormatUnsupportedFormatCharacter": "F509",
+ "StringDotFormatInvalidFormat": "F520",
+ "StringDotFormatExtraNamedArguments": "F521",
+ "StringDotFormatExtraPositionalArguments": "F522",
+ "StringDotFormatMissingArgument": "F523",
+ "StringDotFormatMixingAutomatic": "F524",
+ "FStringMissingPlaceholders": "F540",
"MultiValueRepeatedKeyLiteral": "F601",
"MultiValueRepeatedKeyVariable": "F602",
"TooManyExpressionsInStarredAssignment": "F621",
@@ -33,6 +48,7 @@ FLAKE8_PYFLAKES_CODES = {
"AssertTuple": "F631",
"IsLiteral": "F632",
"InvalidPrintSyntax": "F633",
+ "IfTuple": "F634",
"BreakOutsideLoop": "F701",
"ContinueOutsideLoop": "F702",
"ContinueInFinally": "F703",
--
2.17.2
|