Background
Reading the answers for this question, and looking at the Pandas and Django repository.
If __all__ is defined then when you import * from your package, only the names defined in __all__ are imported in the current namespace.
I immediately draw the conclusion that if I use import package.specific_module, then there is no benefit of defining __all__.
However, digging around some common project like Pandas, Django... I realised that developers import specific modules and pass all of them as a list to the __all__ variable, like the below example:
from pandas.core.groupby.generic import (
DataFrameGroupBy,
NamedAgg,
SeriesGroupBy,
)
from pandas.core.groupby.groupby import GroupBy
from pandas.core.groupby.grouper import Grouper
__all__ = [
"DataFrameGroupBy",
"NamedAgg",
"SeriesGroupBy",
"GroupBy",
"Grouper",
]
Question
I know that pydocs will ignore modules that aren't in the __all__ variable.
But besides that, what are the other benefits of importing specific modules from within __init__.py and at the same time pass them as a list to the __all__ variable? isn't it redundant?