all: simplify walking
[mdis.git] / src / mdis / walker.py
index 894357dc6279d850052436d3c045b463de7d2b7f..6d316ac61999029ed9acd194e8f2a7bc41db5c3d 100644 (file)
@@ -46,28 +46,30 @@ class HashPath(GenericPath):
 
 class Walker(dispatcher.Dispatcher, metaclass=WalkerMeta):
     @dispatcher.Hook(tuple, list)
-    def dispatch_ordered_sequence(self, node, *_, **__):
+    def dispatch_ordered_sequence(self, node):
         for (index, item) in enumerate(node):
-            yield (item, node, index, IndexPath)
+            yield index
+            yield item
 
     @dispatcher.Hook(set, frozenset)
-    def dispatch_unordered_sequence(self, node, *_, **__):
+    def dispatch_unordered_sequence(self, node):
         for item in node:
-            yield (item, node, item, HashPath)
+            yield item
 
     @dispatcher.Hook(dataclasses.is_dataclass)
-    def dispatch_dataclass(self, node, *_, **__):
+    def dispatch_dataclass(self, node):
         for field in dataclasses.fields(node):
             key = field.name
             value = getattr(node, key)
-            yield (value, node, key, AttributePath)
+            yield key
+            yield value
 
     @dispatcher.Hook(dict)
-    def dispatch_mapping(self, node, *_, **__):
+    def dispatch_mapping(self, node):
         for (key, value) in node.items():
-            yield (key, node, key, HashPath)
-            yield (value, node, key, IndexPath)
+            yield key
+            yield value
 
     @dispatcher.Hook(object)
-    def dispatch_object(self, node, *_, **__):
+    def dispatch_object(self, node):
         yield from ()