pylint-dev/pylint
Vedi su GitHubExpand to ``use-implicit-booleaness-not-len`` to catch `len(iterable) == 0` and `>0`
Open
#10.281 aperta il 17 mar 2025
False Negative 🦋Good first issueHacktoberfestNeeds decision :lock:
Metriche repository
- Star
- (4978 star)
- Metriche merge PR
- (Merge medio 58g 21h) (63 PR mergiate in 30 g)
Descrizione
Current problem
C1802 currently catches this
Examples 1&2 (currently caught by rule C1802)
fruits = ["orange", "apple"]
vegetables = []
if len(fruits):
print(fruits)
if not len(vegetables):
print(vegetables)
I come across the following sometimes as well (potentially in botched attempt to fix the the flagged violation above), which I think should be equally flagged as a violation.
Examples 3&4 (not caught by PLC1802)
fruits = ["orange", "apple"]
vegetables = []
if len(fruits) > 0:
print(fruits)
if len(vegetables) == 0:
print(vegetables)
Examples 5&6 (recommended formulation)
fruits = ["orange", "apple"]
vegetables = []
if fruits:
print(fruits)
if not vegetables:
print(vegetables)
Desired solution
Examples 3&4 to be flagged as well
Additional context
See our previous discussion on this issue.