Although the parameter collect_by_mro is implemented in
|
def attrs( |
|
maybe_cls=None, |
|
these=None, |
|
repr_ns=None, |
|
repr=None, |
|
cmp=None, |
|
hash=None, |
|
init=None, |
|
slots=False, |
|
frozen=False, |
|
weakref_slot=True, |
|
str=False, |
|
auto_attribs=False, |
|
kw_only=False, |
|
cache_hash=False, |
|
auto_exc=False, |
|
eq=None, |
|
order=None, |
|
auto_detect=False, |
|
collect_by_mro=False, |
|
getstate_setstate=None, |
|
on_setattr=None, |
|
field_transformer=None, |
|
): |
it is missing it the typed signature of the pyi file
|
def attrs( |
|
maybe_cls: _C, |
|
these: Optional[Dict[str, Any]] = ..., |
|
repr_ns: Optional[str] = ..., |
|
repr: bool = ..., |
|
cmp: Optional[bool] = ..., |
|
hash: Optional[bool] = ..., |
|
init: bool = ..., |
|
slots: bool = ..., |
|
frozen: bool = ..., |
|
weakref_slot: bool = ..., |
|
str: bool = ..., |
|
auto_attribs: bool = ..., |
|
kw_only: bool = ..., |
|
cache_hash: bool = ..., |
|
auto_exc: bool = ..., |
|
eq: Optional[bool] = ..., |
|
order: Optional[bool] = ..., |
|
auto_detect: bool = ..., |
|
getstate_setstate: Optional[bool] = ..., |
|
on_setattr: Optional[_OnSetAttrArgType] = ..., |
|
field_transformer: Optional[_FieldTransformer] = ..., |
|
) -> _C: ... |
|
@overload |
|
def attrs( |
|
maybe_cls: None = ..., |
|
these: Optional[Dict[str, Any]] = ..., |
|
repr_ns: Optional[str] = ..., |
|
repr: bool = ..., |
|
cmp: Optional[bool] = ..., |
|
hash: Optional[bool] = ..., |
|
init: bool = ..., |
|
slots: bool = ..., |
|
frozen: bool = ..., |
|
weakref_slot: bool = ..., |
|
str: bool = ..., |
|
auto_attribs: bool = ..., |
|
kw_only: bool = ..., |
|
cache_hash: bool = ..., |
|
auto_exc: bool = ..., |
|
eq: Optional[bool] = ..., |
|
order: Optional[bool] = ..., |
|
auto_detect: bool = ..., |
|
getstate_setstate: Optional[bool] = ..., |
|
on_setattr: Optional[_OnSetAttrArgType] = ..., |
|
field_transformer: Optional[_FieldTransformer] = ..., |
|
) -> Callable[[_C], _C]: ... |
As a consequence, type checkers such as mypy would never allow to use collect_by_mro, since the signature cannot match, although in runtime it would work because the actual implementation of the function has the parameter.
Although the parameter
collect_by_mrois implemented inattrs/src/attr/_make.py
Lines 994 to 1017 in 48157a5
it is missing it the typed signature of the pyi file
attrs/src/attr/__init__.pyi
Lines 257 to 303 in 48157a5
As a consequence, type checkers such as
mypywould never allow to usecollect_by_mro, since the signature cannot match, although in runtime it would work because the actual implementation of the function has the parameter.