def __call__(self, *args):
        if self.takes_arg:
            if len(args) != 1:
                raise TypeError(
                    '"%s" takes exactly one argument' % self.info_key
                )
            req = '%s/%s' % (self.info_key, str(args[0]))

        else:
            if len(args) != 0:
                raise TypeError(self.info_key % '"%s" takes no arguments')

            req = self.info_key

        def stripper(key, arg):
            # strip "keyname="
            # sometimes keyname= is followed by a newline, so final .strip()
            return arg.strip()[len(key) + 1:].strip()

        d = self.proto.get_info_raw(req)
        d.addCallback(functools.partial(stripper, req))
        return d
dataset/ETHPy150Open meejah/txtorcon/txtorcon/torinfo.py/ConfigMethod.__call__/swapped operands of `%`