As part of a larger effort to improve developer experience (#566), I started adding mypy to the dev tool chain.
This PR adds a minimal configuration that checks as I am following the using mypy with an existing codebase recommendations.
This PR adds mypy only for amlb.utils.
The mypy configuration globally ignores the "attr-defined" error, because of the amlb.utils.core.Namespace class which uses dynamically created attributes (technically not even that, but it is mimicked with __getattr__). I tried to narrow down the filtering of this error by just the Namespace class (either through configuration, or by redefining Namespace as Any for type checking purposes), but unfortunately I could not get that to work - so a global ignore it is. Reducing (or removing) the use of Namespace is something I'd like to refactor anyway, hopefully it will be enough so that we can remove the global ignore (possibly by adding specific line-level ignores if need be).
As part of a larger effort to improve developer experience (#566), I started adding
mypy
to the dev tool chain. This PR adds a minimal configuration that checks as I am following the using mypy with an existing codebase recommendations. This PR adds mypy only foramlb.utils
.The
mypy
configuration globally ignores the "attr-defined" error, because of theamlb.utils.core.Namespace
class which uses dynamically created attributes (technically not even that, but it is mimicked with__getattr__
). I tried to narrow down the filtering of this error by just theNamespace
class (either through configuration, or by redefiningNamespace
asAny
for type checking purposes), but unfortunately I could not get that to work - so a global ignore it is. Reducing (or removing) the use ofNamespace
is something I'd like to refactor anyway, hopefully it will be enough so that we can remove the global ignore (possibly by adding specific line-level ignores if need be).