From bd3d091318d6b66ea197256e3c0a052a7b7acc58 Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Sun, 8 Mar 2015 22:31:29 +0100 Subject: [PATCH] pylint/openencoding: Fix checking of nonconst mode --- scripts/pylint_checkers/openencoding.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/scripts/pylint_checkers/openencoding.py b/scripts/pylint_checkers/openencoding.py index cef6880a5..2d66b4990 100644 --- a/scripts/pylint_checkers/openencoding.py +++ b/scripts/pylint_checkers/openencoding.py @@ -62,10 +62,16 @@ class OpenEncodingChecker(checkers.BaseChecker): except utils.NoSuchArgumentError: pass if _encoding is None: - if mode_arg is not None: + if mode_arg is None: + mode = None + else: mode = utils.safe_infer(mode_arg) - if (mode_arg is not None and isinstance(mode, astroid.Const) and - 'b' in getattr(mode, 'value', '')): + if mode is not None and not isinstance(mode, astroid.Const): + # We can't say what mode is exactly. + return + if mode is None: + self.add_message('open-without-encoding', node=node) + elif 'b' in getattr(mode, 'value', ''): # Files opened as binary don't need an encoding. return else: