9 from . import dispatcher
12 class WalkerMeta(dispatcher
.DispatcherMeta
):
16 class Walker(dispatcher
.Dispatcher
, metaclass
=WalkerMeta
):
17 @dispatcher.Hook(tuple, list)
18 def dispatch_ordered_sequence(self
, node
):
19 for (index
, item
) in enumerate(node
):
23 @dispatcher.Hook(set, frozenset)
24 def dispatch_unordered_sequence(self
, node
):
28 @dispatcher.Hook(dataclasses
.is_dataclass
)
29 def dispatch_dataclass(self
, node
):
30 for field
in dataclasses
.fields(node
):
32 value
= getattr(node
, key
)
36 @dispatcher.Hook(dict)
37 def dispatch_mapping(self
, node
):
38 for (key
, value
) in node
.items():
42 @dispatcher.Hook(object)
43 def dispatch_object(self
, node
):