Ejemplo n.º 1
0
    def check_fun(node_attr):
        if node_attr['type'] not in ('function', 'dispatcher'):
            return False

        if 'function' in node_attr:
            func = sh.parent_func(node_attr['function'])
            c = isinstance(func, dsp_classes)
            return c if node_type == 'dispatcher' else not c
        return node_attr['type'] == node_type
Ejemplo n.º 2
0
    def check_fun(node_attr):
        if node_attr['type'] not in ('function', 'dispatcher'):
            return False

        if 'function' in node_attr:
            func = sh.parent_func(node_attr['function'])
            c = isinstance(func, dsp_classes)
            return c if node_type == 'dispatcher' else not c
        return node_attr['type'] == node_type
Ejemplo n.º 3
0
    def test_add_args_parent_func(self):
        class original_func:
            __name__ = 'original_func'

            def __call__(self, a, b, *c, d=0, e=0):
                """Doc"""
                return list((a, b) + c)

        fo = original_func()
        func = sh.add_args(sh.partial(fo, 1, 2), 2)
        self.assertEqual(func.__name__, 'original_func')
        self.assertEqual(func.__doc__, None)
        self.assertEqual(func((1, 2, 3), 2, 4), [1, 2, 4])
        func = sh.add_args(sh.partial(sh.partial(func, 1), 1, 2),
                           2,
                           callback=lambda res, *args, **kwargs: res.pop())
        self.assertEqual(func.__name__, 'original_func')
        self.assertEqual(func.__doc__, None)
        self.assertEqual(func((1, 2, 3), 6, 5, 7), [1, 2, 2, 5])
        func = sh.parent_func(func)
        self.assertEqual(func, fo)
Ejemplo n.º 4
0
    def test_add_args_parent_func(self):
        class original_func:
            __name__ = 'original_func'

            def __call__(self, a, b, *c, d=0, e=0):
                """Doc"""
                return list((a, b) + c)

        fo = original_func()
        func = sh.add_args(functools.partial(fo, 1, 2), 2)
        self.assertEqual(func.__name__, 'original_func')
        self.assertEqual(func.__doc__, None)
        self.assertEqual(func((1, 2, 3), 2, 4), [1, 2, 4])
        func = sh.add_args(
            functools.partial(functools.partial(func, 1), 1, 2), 2,
            callback=lambda res, *args, **kwargs: res.pop()
        )
        self.assertEqual(func.__name__, 'original_func')
        self.assertEqual(func.__doc__, None)
        self.assertEqual(func((1, 2, 3), 6, 5, 7), [1, 2, 2, 5])
        func = sh.parent_func(func)
        self.assertEqual(func, fo)