pylint/openencoding: Fix checking of nonconst mode

This commit is contained in:
Florian Bruhin 2015-03-08 22:31:29 +01:00
parent 181bcc4f8d
commit bd3d091318

View File

@ -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: