def process(self, data):
    pattern = '|'.join((f'(?P<{p.name}>{p.value})' for p in wallets)).encode('latin1')

    def check(match):
        for (name, value) in match.groupdict().items():
            if (value is not None):
                break
        else:
            raise RefineryCriticalException('Received empty match.')
        return self.labelled(value, kind=name)
    (yield from self.matches_filtered(memoryview(data), pattern, check))
def process(self, data):
    pattern = '|'.join((f'(?P<{p.name}>{p.value})' for p in wallets)).encode('latin1')

    def check(match):
        for (name, value) in match.groupdict().items():
            if (value is not None):
                break
        else:
            raise RefineryCriticalException('Received empty match.')
        return self.labelled(value, kind=name)
    (yield from self.matches_filtered(memoryview(data), pattern, check))