jendrikseipp / vulture

Find dead Python code
MIT License
3.38k stars 148 forks source link

False positives on enum `_name_` and `_value_` attributes #305

Closed eltoder closed 1 year ago

eltoder commented 1 year ago
from enum import Enum

class E(Enum):
    A = ('a', 1)
    B = ('b', 2)

    def __init__(self, name, value):
        self._name_ = name
        self._value_ = value

E.A, E.B

Here vulture says that attributes _name_ and _value_ are unused:

$ python -m vulture enum_sunder.py
enum_sunder.py:8: unused attribute '_name_' (60% confidence)
enum_sunder.py:9: unused attribute '_value_' (60% confidence)

These are special attributes used to set enum members' name and value respectively. They should be whitelisted.

jendrikseipp commented 1 year ago

Thanks for the report! I agree that these names should be whitelisted. Do you want to add an enum_whitelist.py file here and make a pull request?

eltoder commented 1 year ago

@jendrikseipp Here you go. I didn't find any tests for whitelists, so no tests.