cython
1# cython: embedsignature=True
2# cython: embedsignature.format=clinic
3# cython: annotation_typing=False
4# cython: binding=False
5# cython: c_string_type=bytearray
6# tag: py3only
7
8def f00(a, object b=42):
9"f00 docstring"
10pass
11
12def f01(unsigned int a: int, unsigned int b: int = 42, /, c=123):
13"f01 docstring"
14pass
15
16def f02(unsigned int a: float, *, unsigned int b: float = 42) -> tuple[int]:
17"f02 docstring"
18pass
19
20__doc__ = ur"""
21>>> print(f00.__doc__)
22f00 docstring
23>>> print(f00.__text_signature__)
24(a, b=42)
25
26>>> print(f01.__doc__)
27f01 docstring
28>>> print(f01.__text_signature__)
29(a, b=42, /, c=123)
30
31>>> print(f02.__doc__)
32f02 docstring
33>>> print(f02.__text_signature__)
34(a, *, b=42)
35
36"""
37
38
39cdef class Foo:
40"Foo docstring"
41
42def __init__(self, *args: Any, **kwargs: Any) -> None:
43"init Foo"
44pass
45
46def m00(self, a, b=42, *args, c=123):
47"m00 docstring"
48pass
49
50def m01(self, a, b=42, *, c=123, **kwargs):
51"m01 docstring"
52pass
53
54@classmethod
55def c00(cls, a):
56"c00 docstring"
57pass
58
59@staticmethod
60def s00(a):
61"s00 docstring"
62pass
63
64cdef public long int p0
65property p1:
66"p1 docstring"
67def __get__(self):
68return 0
69property p2:
70"p2 docstring"
71def __get__(self) -> int:
72return 0
73cdef public Foo p3
74
75
76__doc__ += ur"""
77>>> print(Foo.__doc__)
78Foo docstring
79>>> print(Foo.__init__.__doc__)
80init Foo
81>>> print(Foo.__init__.__text_signature__)
82($self, *args, **kwargs)
83
84"""
85
86__doc__ += ur"""
87>>> print(Foo.m00.__doc__)
88m00 docstring
89>>> print(Foo.m00.__text_signature__)
90($self, a, b=42, *args, c=123)
91
92>>> print(Foo.m01.__doc__)
93m01 docstring
94>>> print(Foo.m01.__text_signature__)
95($self, a, b=42, *, c=123, **kwargs)
96
97"""
98
99__doc__ += ur"""
100>>> print(Foo.c00.__doc__)
101c00 docstring
102>>> print(Foo.c00.__text_signature__)
103($type, a)
104
105>>> print(Foo.s00.__doc__)
106s00 docstring
107>>> print(Foo.s00.__text_signature__)
108(a)
109
110"""
111
112
113__doc__ += ur"""
114>>> print(Foo.p0.__doc__)
115None
116
117>>> print(Foo.p1.__doc__)
118p1 docstring
119
120>>> print(Foo.p2.__doc__)
121p2 docstring
122
123>>> print(Foo.p3.__doc__)
124None
125
126"""
127