a5762fadd096a8a57f55af2f00b63366ef830634
8 from . import dispatcher
11 class WalkerMeta(dispatcher
.DispatcherMeta
):
15 class Walker(dispatcher
.Dispatcher
, metaclass
=WalkerMeta
):
16 @dispatcher.Hook(tuple, list, set, frozenset)
17 def dispatch_sequence(self
, instance
):
22 @dispatcher.Hook(dict)
23 def dispatch_mapping(self
, instance
):
24 for (key
, value
) in instance
.items():
26 yield from self((key
, value
))
28 @dispatcher.Hook(dataclasses
.is_dataclass
)
29 def dispatch_dataclass(self
, instance
):
30 for field
in dataclasses
.fields(instance
):
32 value
= getattr(instance
, key
)
34 yield from self((key
, value
))
36 @dispatcher.Hook(object)
37 def dispatch_object(self
, instance
):