Collections of inner validators for `deep_iterable`/`deep_mapping`
AdrianSosic opened this issue · 0 comments
AdrianSosic commented
This is a copy of the first issue collected in #1206 to enable separate tracking of the bug.
The issue
Some of the inner validators accept lists while others still require the explicit use of and_
. For consistency, I think all of them should ideally be able to handle lists. For the member_validator
, the change has been in implemented in #925, but iterable_validator
still struggles with lists. For example, the following piece of code works, but replacing any_
with a list will make it fail:
@define
class A:
x: List[str] = field(
validator=deep_iterable(
member_validator=[instance_of(str), min_len(1)],
iterable_validator=and_(instance_of(list), min_len(1)),
),
)
For deep_mapping
, lists/tuples not supported for any of its three arguments.