diff options
author | cpopa <devnull@localhost> | 2013-09-25 23:02:24 +0300 |
---|---|---|
committer | cpopa <devnull@localhost> | 2013-09-25 23:02:24 +0300 |
commit | e191027464f9800fca4e525773a68daf536d372d (patch) | |
tree | d372ade5e4f4d65f0a3730c15fc5665b0de2b4b2 | |
parent | 09832b4a8bdebb30d7b3c29466b7fd6dd4212a6a (diff) | |
download | pylint-e191027464f9800fca4e525773a68daf536d372d.tar.gz |
Proper handling of manual field specifiers.
-rw-r--r-- | checkers/strings.py | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/checkers/strings.py b/checkers/strings.py index 13112cb..dd1de2c 100644 --- a/checkers/strings.py +++ b/checkers/strings.py @@ -261,7 +261,7 @@ class StringMethodsChecker(BaseChecker): manual_keys = set([key for key in required_keys if key.isdigit()]) - if required_keys - manual_keys: + if manual_keys and required_keys - manual_keys: self.add_message('format-combined-specifiers', node=node) return @@ -276,7 +276,7 @@ class StringMethodsChecker(BaseChecker): self.add_message('mixed-format-string', node=node) elif required_keys: for key in required_keys: - if key not in named: + if key not in named and not key.isdigit(): self.add_message('missing-format-argument-key', node=node, args=(key, )) @@ -289,8 +289,10 @@ class StringMethodsChecker(BaseChecker): if positional > required_num_args: self.add_message('too-many-format-args', node=node) elif positional < required_num_args: - self.add_message('too-few-format-args', node=node) - + self.add_message('too-few-format-args', node=node) + + if manual_keys and positional < len(manual_keys): + self.add_message('too-few-format-args', node=node) class StringConstantChecker(BaseTokenChecker): """Check string literals""" |