import hashlib hmm = hashlib.sha1('tst') hmm.digest()
E1121: 3,0: Too many positional arguments for function call
Strangely enough, the code below does not report this issue.
import hashlib hmm = hashlib.sha1('tst') hmm.hexdigest()
Because the hashlib library is implemented as a C-level module (see http://www.logilab.org/78354 for more context), Pylint needs to have these string declarations in place to do proper static code analysis. It turns out that recent changes to Pylint added the digest() method to the hashlib module but forgot to include the self parameter.
Within the Pylint type checker (in /usr/local/lib/python2.7/dist-packages/pylint/checkers/typecheck.py, line 268), the function is inferred to require an additional 'self' argument. However, because the string declaration does not, this error message gets reported.
if isinstance(called, astng.BoundMethod): # Bound methods have an extra implicit 'self' argument. num_positional_args += 1The proper fix is included at this link: https://bitbucket.org/rogerjhu/astng/commits/fd99960bc86a26503cb0fc2eb5f7f484c4861ccd