[Libre-soc-bugs] [Bug 1094] insndb instruction database visitor-walker is needed

bugzilla-daemon at libre-soc.org bugzilla-daemon at libre-soc.org
Sun Jun 18 20:14:20 BST 2023


--- Comment #166 from Dmitry Selyutin <ghostmansd at gmail.com> ---
Oh, by the way, I just recalled that tuples et al. simply yield stuff from
collection upon walking by default.

class Walker(dispatcher.Dispatcher, metaclass=WalkerMeta):
    @dispatcher.Hook(tuple, list, set, frozenset)
    def dispatch_sequence(self, instance):
        for item in instance:
            yield item
            yield from self(item)

dicts and dataclasses, on the other hand, yield key too. Should the dispatcher
look like this instead?

    @dispatcher.Hook(tuple, list, set, frozenset)
    def dispatch_sequence(self, instance):
        for (index, item) in enumerate(instance):
            yield (index, item)
            yield from self(item)

Also, whilst we're at it, we could perhaps support namedtuple default hook
(yielding keys too I think).
I'd like to listen to your opinion, folks, on these two.

You are receiving this mail because:
You are on the CC list for the bug.

More information about the libre-soc-bugs mailing list