Python accepts non-string objects in __all__ as long as modules are only imported via 'import X'. If __all__ is inspected due to a from import and non-string objects are found, an exception is raised. Pylint should be able to detect problems like this.
__all__ = [foo]
|appeared in||<not specified>|