You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We face a lot of mypy errors due to the dynamic nature of inherit_names. See issue #31716 and the discussion that evolved there.
Summary:
In the past, we added explicit type annotations to the respective classes, but this approach doesn't scale.
As mypy is a static type checker, it cannot understand the dynamic nature of inherit_names by design. The only alternative would be to refactor inherit_names to work by inheritance instead of dynamic assignments. This would make the code more understandable to humans as well.
The text was updated successfully, but these errors were encountered:
Convincing pyright/mypy to infer "inherited" methods sounds unlikely microsoft/pyright#3812.
Using mixin sub-classes to out-source common methods/properties definitely sounds like the best way to go! Is that still the ideal way to deal with that? @simonjayhawkins
I can imagine that those mixin-classes might need to be abstract as the shared methods might refer to methods/properties not existing in those otherwise empty mixin-classes (or we add many mypy ignore comments inside those methods).
There are luckily only a "few" classes making use of inherit_names: IntervalIndex, DatetimeIndexOpsMixin, CategoricalIndex, PeriodIndex, TimedeltaIndex, DatetimeIndex.
We face a lot of mypy errors due to the dynamic nature of
inherit_names
. See issue #31716 and the discussion that evolved there.Summary:
In the past, we added explicit type annotations to the respective classes, but this approach doesn't scale.
As mypy is a static type checker, it cannot understand the dynamic nature of inherit_names by design. The only alternative would be to refactor
inherit_names
to work by inheritance instead of dynamic assignments. This would make the code more understandable to humans as well.The text was updated successfully, but these errors were encountered: