On Thu, Mar 22, 2018 at 08:30:44PM -0500, Ian Stapleton Cordasco wrote:
Regarding Q2: Why would you want to prohibit class attributes starting with single or double underscores? The former is useful for "private" class attributes. The latter performs name mangling which can be useful in situations (see: https://stackoverflow.com/a/1301369/1953283). I don't think pylint should be warning in this case.
But __all__ is a dunder name, and dunders are reserved for use by Python.
I don't know what the author of the class thought they were doing, but they shouldn't have been using __all__ for it, hence the idea of a warning. But it probably isn't practical to keep a white list of permitted dunders and warn about those that any others.