summaryrefslogtreecommitdiff
path: root/checkers/strings.py
diff options
context:
space:
mode:
authorClaudiu Popa <pcmanticore@gmail.com>2014-08-11 16:43:14 +0300
committerClaudiu Popa <pcmanticore@gmail.com>2014-08-11 16:43:14 +0300
commite6b31b9bfa8caaaf39e0b45a8c148aa012ccc56c (patch)
treefb3d35b99cbae4892c83f19eb2fce4fbfbb487c4 /checkers/strings.py
parent6b40825fab6606b0a7e5073c0c042cc303664a23 (diff)
downloadpylint-git-e6b31b9bfa8caaaf39e0b45a8c148aa012ccc56c.tar.gz
Fix a false positive with 'too-few-format-args', when the format strings contains duplicate manual position arguments. Closes issue #310.
Diffstat (limited to 'checkers/strings.py')
-rw-r--r--checkers/strings.py6
1 files changed, 3 insertions, 3 deletions
diff --git a/checkers/strings.py b/checkers/strings.py
index 522db4e8c..a30d29c5a 100644
--- a/checkers/strings.py
+++ b/checkers/strings.py
@@ -169,10 +169,10 @@ def parse_format_method_string(format_string):
"""
keys = []
num_args = 0
- manual_pos_arg = 0
+ manual_pos_arg = set()
for name in collect_string_fields(format_string):
if name and str(name).isdigit():
- manual_pos_arg += 1
+ manual_pos_arg.add(str(name))
elif name:
keyname, fielditerator = split_format_field_names(name)
if isinstance(keyname, numbers.Number):
@@ -182,7 +182,7 @@ def parse_format_method_string(format_string):
keys.append((keyname, list(fielditerator)))
else:
num_args += 1
- return keys, num_args, manual_pos_arg
+ return keys, num_args, len(manual_pos_arg)
def get_args(callfunc):
""" Get the arguments from the given `CallFunc` node.