False positive W0108 (unnecessary lambda) · Issue #1709 · pylint-dev/pylint (original) (raw)
Steps to reproduce
lambda x: tuple(x)
Current behavior
This will be flagged as an unnecessary lambda, but note that, while we are converting something to a tuple, tuple
while appearing to be a function, isn't. This is a type cast.
This comes up in practice, for instance, when using Pandas.
The following does not work (precisely because tuple
is not a function):
grouped_df = df.groupby(group_by_attributes, as_index=False).aggregate(tuple)
The workaround:
grouped_df = df.groupby(group_by_attributes, as_index=False).aggregate(lambda x: tuple(x))
Leads to W0108 in pylint.
Expected behavior
No warning should be issued, by verifying the type of what is in the lambda. :)
pylint --version output
pylint 1.7.2,
astroid 1.5.3
Python 2.7.12 (default, Nov 19 2016, 06:48:10)
[GCC 5.4.0 20160609]