__getattr__ typing silences legitimate issues
Opened this issue · 1 comments
jakub-borusewicz commented
Having
Container:
def __getattr__(self, name: str) -> Provider: ...
in stubs silences cases, when container does not have particular attribute at-all. In my current codebase, I add snippet:
if typing.TYPE_CHECKING:
from dependency_injector.containers import DeclarativeContainer as DC
class DeclarativeContainer(DC):
def __getattr__(self, name: str) -> typing.Never: ...
else:
from dependency_injector.containers import DeclarativeContainer
to work around it.
Is it necessary to have this method typed like that?
ZipFile commented
Is it necessary to have this method typed like that?
This is necessary for DynamicContainer to have these, but for DeclarativeContainer it does not make much sense.
This looks fixable, I'll see what can be done here.