4
4
import trio as noterror
5
5
6
6
7
+ # fmt: off
7
8
async def foo ():
8
9
async with trio .open_nursery ():
9
10
...
@@ -12,37 +13,37 @@ async def foo():
12
13
async with trio .open_nursery () as nursery :
13
14
# async context manager
14
15
async with trio .open_process () as bar :
15
- nursery .start (bar ) # error: 12 , line-1, line-3
16
- nursery .start (foo = bar ) # error: 12 , line-2, line-4
17
- nursery .start (..., ..., bar , ...) # error: 12 , line-3, line-5
16
+ nursery .start (bar ) # error: 26 , line-1, line-3, "bar", "start"
17
+ nursery .start (foo = bar ) # error: 30 , line-2, line-4, "bar", "start"
18
+ nursery .start (..., ..., bar , ...) # error: 36 , line-3, line-5, "bar", "start"
18
19
19
- nursery .start_soon (bar ) # error: 12 , line-5, line-7
20
+ nursery .start_soon (bar ) # error: 31 , line-5, line-7, "bar", "start_soon"
20
21
21
22
# sync context manager
22
23
with open ("" ) as bar :
23
- nursery .start (bar ) # error: 12 , line-1, line-11
24
- nursery .start (foo = bar ) # error: 12 , line-2, line-12
25
- nursery .start (..., ..., bar , ...) # error: 12 , line-3, line-13
24
+ nursery .start (bar ) # error: 26 , line-1, line-11, "bar", "start"
25
+ nursery .start (foo = bar ) # error: 30 , line-2, line-12, "bar", "start"
26
+ nursery .start (..., ..., bar , ...) # error: 36 , line-3, line-13, "bar", "start"
26
27
27
- nursery .start_soon (bar ) # error: 12 , line-5, line-15
28
+ nursery .start_soon (bar ) # error: 31 , line-5, line-15, "bar", "start_soon"
28
29
29
30
# sync nursery
30
31
with trio .open_nursery () as nursery :
31
32
# async context manager
32
33
async with trio .open_process () as bar :
33
- nursery .start (bar ) # error: 12 , line-1, line-3
34
- nursery .start (foo = bar ) # error: 12 , line-2, line-4
35
- nursery .start (..., ..., bar , ...) # error: 12 , line-3, line-5
34
+ nursery .start (bar ) # error: 26 , line-1, line-3, "bar", "start"
35
+ nursery .start (foo = bar ) # error: 30 , line-2, line-4, "bar", "start"
36
+ nursery .start (..., ..., bar , ...) # error: 36 , line-3, line-5, "bar", "start"
36
37
37
- nursery .start_soon (bar ) # error: 12 , line-5, line-7
38
+ nursery .start_soon (bar ) # error: 31 , line-5, line-7, "bar", "start_soon"
38
39
39
40
# sync context manager
40
41
with open ("" ) as bar :
41
- nursery .start (bar ) # error: 12 , line-1, line-11
42
- nursery .start (foo = bar ) # error: 12 , line-2, line-12
43
- nursery .start (..., ..., bar , ...) # error: 12 , line-3, line-13
42
+ nursery .start (bar ) # error: 26 , line-1, line-11, "bar", "start"
43
+ nursery .start (foo = bar ) # error: 30 , line-2, line-12, "bar", "start"
44
+ nursery .start (..., ..., bar , ...) # error: 36 , line-3, line-13, "bar", "start"
44
45
45
- nursery .start_soon (bar ) # error: 12 , line-5, line-15
46
+ nursery .start_soon (bar ) # error: 31 , line-5, line-15, "bar", "start_soon"
46
47
47
48
# nursery inside context manager
48
49
async with trio .open_process () as bar :
@@ -91,18 +92,18 @@ def foo_2():
91
92
nursery_2 .start (bar_1 )
92
93
nursery_2 .start (bar_2 )
93
94
with open ("" ) as bar_1 :
94
- nursery_1 .start (bar_1 ) # error: 16 , line-1, line-11
95
+ nursery_1 .start (bar_1 ) # error: 32 , line-1, line-11, "bar_1", "start"
95
96
nursery_1 .start (bar_2 )
96
- nursery_2 .start (bar_1 ) # error: 16 , line-3, line-8
97
+ nursery_2 .start (bar_1 ) # error: 32 , line-3, line-8, "bar_1", "start"
97
98
nursery_2 .start (bar_2 )
98
99
async with trio .open ("" ) as bar_2 :
99
- nursery_1 .start (bar_1 ) # error: 20 , line-6, line-16
100
- nursery_1 .start (bar_2 ) # error: 20 , line-2, line-17
101
- nursery_2 .start (bar_1 ) # error: 20 , line-8, line-13
102
- nursery_2 .start (bar_2 ) # error: 20 , line-4, line-14
103
- nursery_1 .start (bar_1 ) # error: 16 , line-10, line-20
100
+ nursery_1 .start (bar_1 ) # error: 36 , line-6, line-16, "bar_1", "start"
101
+ nursery_1 .start (bar_2 ) # error: 36 , line-2, line-17, "bar_2", "start"
102
+ nursery_2 .start (bar_1 ) # error: 36 , line-8, line-13, "bar_1", "start"
103
+ nursery_2 .start (bar_2 ) # error: 36 , line-4, line-14, "bar_2", "start"
104
+ nursery_1 .start (bar_1 ) # error: 32 , line-10, line-20, "bar_1", "start"
104
105
nursery_1 .start (bar_2 )
105
- nursery_2 .start (bar_1 ) # error: 16 , line-12, line-17
106
+ nursery_2 .start (bar_1 ) # error: 32 , line-12, line-17, "bar_1", "start"
106
107
nursery_2 .start (bar_2 )
107
108
nursery_1 .start (bar_1 )
108
109
nursery_1 .start (bar_2 )
@@ -119,25 +120,25 @@ def foo_2():
119
120
nursery_2 .start (bar_1 )
120
121
nursery_2 .start (bar_2 )
121
122
with open ("" ) as bar_1 :
122
- nursery_1 .start (bar_1 ) # error: 12 , line-1, line-6
123
+ nursery_1 .start (bar_1 ) # error: 28 , line-1, line-6, "bar_1", "start"
123
124
nursery_1 .start (bar_2 )
124
125
nursery_2 .start (bar_1 )
125
126
nursery_2 .start (bar_2 )
126
127
async with trio .open_nursery () as nursery_2 :
127
- nursery_1 .start (bar_1 ) # error: 16 , line-6, line-11
128
+ nursery_1 .start (bar_1 ) # error: 32 , line-6, line-11, "bar_1", "start"
128
129
nursery_1 .start (bar_2 )
129
130
nursery_2 .start (bar_1 )
130
131
nursery_2 .start (bar_2 )
131
132
async with trio .open ("" ) as bar_2 :
132
- nursery_1 .start (bar_1 ) # error: 20 , line-11, line-16
133
- nursery_1 .start (bar_2 ) # error: 20 , line-2, line-17
133
+ nursery_1 .start (bar_1 ) # error: 36 , line-11, line-16, "bar_1", "start"
134
+ nursery_1 .start (bar_2 ) # error: 36 , line-2, line-17, "bar_2", "start"
134
135
nursery_2 .start (bar_1 )
135
- nursery_2 .start (bar_2 ) # error: 20 , line-4, line-9
136
- nursery_1 .start (bar_1 ) # error: 16 , line-15, line-20
136
+ nursery_2 .start (bar_2 ) # error: 36 , line-4, line-9, "bar_2", "start"
137
+ nursery_1 .start (bar_1 ) # error: 32 , line-15, line-20, "bar_1", "start"
137
138
nursery_1 .start (bar_2 )
138
139
nursery_2 .start (bar_1 )
139
140
nursery_2 .start (bar_2 )
140
- nursery_1 .start (bar_1 ) # error: 12 , line-19, line-24
141
+ nursery_1 .start (bar_1 ) # error: 28 , line-19, line-24, "bar_1", "start"
141
142
nursery_1 .start (bar_2 )
142
143
nursery_2 .start (bar_1 )
143
144
nursery_2 .start (bar_2 )
@@ -147,29 +148,75 @@ def foo_2():
147
148
nursery_2 .start (bar_2 )
148
149
149
150
async with trio .open_nursery () as nursery_1 , trio .anything () as bar_1 , trio .open_nursery () as nursery_2 , trio .anything () as bar_2 :
150
- nursery_1 .start (bar_1 ) # error: 8 , line-1, line-1
151
- nursery_1 .start (bar_2 ) # error: 8 , line-2, line-2
151
+ nursery_1 .start (bar_1 ) # error: 24 , line-1, line-1, "bar_1", "start"
152
+ nursery_1 .start (bar_2 ) # error: 24 , line-2, line-2, "bar_2", "start"
152
153
nursery_2 .start (bar_1 )
153
- nursery_2 .start (bar_2 ) # error: 8 , line-4, line-4
154
+ nursery_2 .start (bar_2 ) # error: 24 , line-4, line-4, "bar_2", "start"
154
155
155
156
async with trio .open_nursery () as nursery :
156
157
async with trio .anything () as bar :
157
158
nursery .start (noterror .bar ) # safe
158
- nursery .start (bar .anything ) # error: 12 , line-2, line-3
159
- nursery .start (bar .anything .anything ) # error: 12 , line-3, line-4
159
+ nursery .start (bar .anything ) # error: 26 , line-2, line-3, "bar", "start"
160
+ nursery .start (bar .anything .anything ) # error: 26 , line-3, line-4, "bar", "start"
160
161
161
162
# I think this is an error
162
163
async with trio .open_nursery () as nursery :
163
164
async with trio .open_nursery () as nursery_2 :
164
- nursery .start (nursery_2 ) # error: 12, line-1, line-2
165
+ nursery .start (nursery_2 ) # error: 26, line-1, line-2, "nursery_2", "start"
166
+ nursery_2 .start (nursery )
165
167
166
- # in theory safe
168
+ # in theory safe-ish, but treated as error
167
169
async with trio .open_nursery () as nursery :
168
170
nursery = noterror .anything
169
171
async with trio .anything () as bar :
170
- nursery .start_soon (bar ) # error: 12 , line-1, line-3
172
+ nursery .start_soon (bar ) # error: 31 , line-1, line-3, "bar", "start_soon"
171
173
172
174
async with trio .open_nursery () as nursery :
173
175
async with trio .anything () as nursery :
174
176
async with trio .anything () as bar :
175
177
nursery .start_soon (bar )
178
+
179
+ # weird calls
180
+ # async nursery
181
+ async with trio .open_nursery () as nursery :
182
+ # async context manager
183
+ async with trio .open_process () as bar :
184
+ nursery .start (* bar ) # error: 27, line-1, line-3, "bar", "start"
185
+ nursery .start (foo = [* bar ]) # error: 32, line-2, line-4, "bar", "start"
186
+ nursery .start (..., ..., * bar , ...) # error: 37, line-3, line-5, "bar", "start"
187
+ nursery .start_soon (* bar ) # error: 32, line-4, line-6, "bar", "start_soon"
188
+
189
+ # async nursery
190
+ async with trio .open_nursery () as nursery :
191
+ # async context manager
192
+ async with trio .open_process () as bar :
193
+ nursery .start (** bar ) # error: 28, line-1, line-3, "bar", "start"
194
+ nursery .start (foo = {** bar }) # error: 33, line-2, line-4, "bar", "start"
195
+ nursery .start (..., ..., ** bar , foo = ...) # error: 38, line-3, line-5, "bar", "start"
196
+ nursery .start_soon (** bar ) # error: 33, line-4, line-6, "bar", "start_soon"
197
+
198
+ # async nursery
199
+ async with trio .open_nursery () as nursery :
200
+ # async context manager
201
+ async with trio .open_process () as bar :
202
+ nursery .start (
203
+ ...,
204
+ bar , # error: 16, line-3, line-5, "bar", "start"
205
+ ...,
206
+ * bar , # error: 17, line-5, line-7, "bar", "start"
207
+ ...,
208
+ ** bar , # error: 18, line-7, line-9, "bar", "start"
209
+ )
210
+
211
+ async with trio .open_nursery () as nursery :
212
+ # async context manager
213
+ async with trio .open_process () as bar :
214
+ nursery .start (list ((tuple ([0 ]), (bar )))) # error: 45, line-1, line-3, "bar", "start"
215
+
216
+ nursery .start ("bar" )
217
+ nursery .start (lambda bar : bar + 1 )
218
+
219
+ def myfun (nursery , bar ):
220
+ nursery .start (bar )
221
+
386E
code>
222
+ # fmt: on
0 commit comments