cython

Форк
0
/
py34_signature.pyx 
117 строк · 2.1 Кб
1
# cython: binding=True, language_level=3
2
# mode: run
3
# tag: cyfunction
4

5
import inspect
6

7
try:
8
    sig = inspect.Signature.from_callable
9
except AttributeError:
10
    sig = inspect.Signature.from_function
11

12

13
def signatures_match(f1, f2):
14
    if sig(f1) == sig(f2):
15
        return None  # nothing to show in doctest
16
    return sig(f1), sig(f2)
17

18

19
def b(a, b, c):
20
    """
21
    >>> def py_b(a, b, c): pass
22
    >>> signatures_match(b, py_b)
23
    """
24

25

26
def c(a, b, c=1):
27
    """
28
    >>> def py_c(a, b, c=1): pass
29
    >>> signatures_match(c, py_c)
30
    """
31

32

33
def d(a, b, *, c = 88):
34
    """
35
    >>> def py_d(a, b, *, c = 88): pass
36
    >>> signatures_match(d, py_d)
37
    """
38

39

40
def e(a, b, c = 88, **kwds):
41
    """
42
    >>> def py_e(a, b, c = 88, **kwds): pass
43
    >>> signatures_match(e, py_e)
44
    """
45

46

47
def f(a, b, *, c, d = 42):
48
    """
49
    >>> def py_f(a, b, *, c, d = 42): pass
50
    >>> signatures_match(f, py_f)
51
    """
52

53

54
def g(a, b, *, c, d = 42, e = 17, f, **kwds):
55
    """
56
    >>> def py_g(a, b, *, c, d = 42, e = 17, f, **kwds): pass
57
    >>> signatures_match(g, py_g)
58
    """
59

60

61
def h(a, b, *args, c, d = 42, e = 17, f, **kwds):
62
    """
63
    >>> def py_h(a, b, *args, c, d = 42, e = 17, f, **kwds): pass
64
    >>> signatures_match(h, py_h)
65
    """
66

67

68
def k(a, b, c=1, *args, d = 42, e = 17, f, **kwds):
69
    """
70
    >>> def py_k(a, b, c=1, *args, d = 42, e = 17, f, **kwds): pass
71
    >>> signatures_match(k, py_k)
72
    """
73

74

75
def l(*, a, b, c = 88):
76
    """
77
    >>> def py_l(*, a, b, c = 88): pass
78
    >>> signatures_match(l, py_l)
79
    """
80

81

82
def m(a, *, b, c = 88):
83
    """
84
    >>> def py_m(a, *, b, c = 88): pass
85
    >>> signatures_match(m, py_m)
86
    """
87
    a, b, c = b, c, a
88

89

90
def n(a, *, b, c = 88):
91
    """
92
    >>> def py_n(a, *, b, c = 88): pass
93
    >>> signatures_match(n, py_n)
94
    """
95

96

97
cpdef cp1(a, b):
98
    """
99
    >>> def py_cp1(a, b): pass
100
    >>> signatures_match(cp1, py_cp1)
101
    """
102

103

104
cpdef cp2(a, b=True):
105
    """
106
    >>> def py_cp2(a, b=True): pass
107

108
    >>> signatures_match(cp2, py_cp2)
109
    """
110

111

112
cpdef cp3(a=1, b=True):
113
    """
114
    >>> def py_cp3(a=1, b=True): pass
115

116
    >>> signatures_match(cp3, py_cp3)
117
    """
118

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.