]> git.madduck.net Git - etc/vim.git/blob - tests/data/expression.py

madduck's git repository

Every one of the projects in this repository is available at the canonical URL git://git.madduck.net/madduck/pub/<projectpath> — see each project's metadata for the exact URL.

All patches and comments are welcome. Please squash your changes to logical commits before using git-format-patch and git-send-email to patches@git.madduck.net. If you'd read over the Git project's submission guidelines and adhered to them, I'd be especially grateful.

SSH access, as well as push access can be individually arranged.

If you use my repositories frequently, consider adding the following snippet to ~/.gitconfig and using the third clone URL listed for each project:

[url "git://git.madduck.net/madduck/"]
  insteadOf = madduck:

Add `version` to github action (and rewrite the whole thing while at it) (#1940)
[etc/vim.git] / tests / data / expression.py
1 ...
2 'some_string'
3 b'\\xa3'
4 Name
5 None
6 True
7 False
8 1
9 1.0
10 1j
11 True or False
12 True or False or None
13 True and False
14 True and False and None
15 (Name1 and Name2) or Name3
16 Name1 and Name2 or Name3
17 Name1 or (Name2 and Name3)
18 Name1 or Name2 and Name3
19 (Name1 and Name2) or (Name3 and Name4)
20 Name1 and Name2 or Name3 and Name4
21 Name1 or (Name2 and Name3) or Name4
22 Name1 or Name2 and Name3 or Name4
23 v1 << 2
24 1 >> v2
25 1 % finished
26 1 + v2 - v3 * 4 ^ 5 ** v6 / 7 // 8
27 ((1 + v2) - (v3 * 4)) ^ (((5 ** v6) / 7) // 8)
28 not great
29 ~great
30 +value
31 -1
32 ~int and not v1 ^ 123 + v2 | True
33 (~int) and (not ((v1 ^ (123 + v2)) | True))
34 +really ** -confusing ** ~operator ** -precedence
35 flags & ~ select.EPOLLIN and waiters.write_task is not None
36 lambda arg: None
37 lambda a=True: a
38 lambda a, b, c=True: a
39 lambda a, b, c=True, *, d=(1 << v2), e='str': a
40 lambda a, b, c=True, *vararg, d=(v1 << 2), e='str', **kwargs: a + b
41 manylambdas = lambda x=lambda y=lambda z=1: z: y(): x()
42 foo = (lambda port_id, ignore_missing: {"port1": port1_resource, "port2": port2_resource}[port_id])
43 1 if True else 2
44 str or None if True else str or bytes or None
45 (str or None) if True else (str or bytes or None)
46 str or None if (1 if True else 2) else str or bytes or None
47 (str or None) if (1 if True else 2) else (str or bytes or None)
48 ((super_long_variable_name or None) if (1 if super_long_test_name else 2) else (str or bytes or None))
49 {'2.7': dead, '3.7': (long_live or die_hard)}
50 {'2.7': dead, '3.7': (long_live or die_hard), **{'3.6': verygood}}
51 {**a, **b, **c}
52 {'2.7', '3.6', '3.7', '3.8', '3.9', ('4.0' if gilectomy else '3.10')}
53 ({'a': 'b'}, (True or False), (+value), 'string', b'bytes') or None
54 ()
55 (1,)
56 (1, 2)
57 (1, 2, 3)
58 []
59 [1, 2, 3, 4, 5, 6, 7, 8, 9, (10 or A), (11 or B), (12 or C)]
60 [1, 2, 3,]
61 [*a]
62 [*range(10)]
63 [*a, 4, 5,]
64 [4, *a, 5,]
65 [this_is_a_very_long_variable_which_will_force_a_delimiter_split, element, another, *more]
66 {i for i in (1, 2, 3)}
67 {(i ** 2) for i in (1, 2, 3)}
68 {(i ** 2) for i, _ in ((1, 'a'), (2, 'b'), (3, 'c'))}
69 {((i ** 2) + j) for i in (1, 2, 3) for j in (1, 2, 3)}
70 [i for i in (1, 2, 3)]
71 [(i ** 2) for i in (1, 2, 3)]
72 [(i ** 2) for i, _ in ((1, 'a'), (2, 'b'), (3, 'c'))]
73 [((i ** 2) + j) for i in (1, 2, 3) for j in (1, 2, 3)]
74 {i: 0 for i in (1, 2, 3)}
75 {i: j for i, j in ((1, 'a'), (2, 'b'), (3, 'c'))}
76 {a: b * 2 for a, b in dictionary.items()}
77 {a: b * -2 for a, b in dictionary.items()}
78 {k: v for k, v in this_is_a_very_long_variable_which_will_cause_a_trailing_comma_which_breaks_the_comprehension}
79 Python3 > Python2 > COBOL
80 Life is Life
81 call()
82 call(arg)
83 call(kwarg='hey')
84 call(arg, kwarg='hey')
85 call(arg, another, kwarg='hey', **kwargs)
86 call(this_is_a_very_long_variable_which_will_force_a_delimiter_split, arg, another, kwarg='hey', **kwargs)  # note: no trailing comma pre-3.6
87 call(*gidgets[:2])
88 call(a, *gidgets[:2])
89 call(**self.screen_kwargs)
90 call(b, **self.screen_kwargs)
91 lukasz.langa.pl
92 call.me(maybe)
93 1 .real
94 1.0 .real
95 ....__class__
96 list[str]
97 dict[str, int]
98 tuple[str, ...]
99 tuple[
100     str, int, float, dict[str, int]
101 ]
102 tuple[str, int, float, dict[str, int],]
103 very_long_variable_name_filters: t.List[
104     t.Tuple[str, t.Union[str, t.List[t.Optional[str]]]],
105 ]
106 xxxx_xxxxx_xxxx_xxx: Callable[..., List[SomeClass]] = classmethod(  # type: ignore
107     sync(async_xxxx_xxx_xxxx_xxxxx_xxxx_xxx.__func__)
108 )
109 xxxx_xxx_xxxx_xxxxx_xxxx_xxx: Callable[..., List[SomeClass]] = classmethod(  # type: ignore
110     sync(async_xxxx_xxx_xxxx_xxxxx_xxxx_xxx.__func__)
111 )
112 xxxx_xxx_xxxx_xxxxx_xxxx_xxx: Callable[
113     ..., List[SomeClass]
114 ] = classmethod(sync(async_xxxx_xxx_xxxx_xxxxx_xxxx_xxx.__func__))  # type: ignore
115 slice[0]
116 slice[0:1]
117 slice[0:1:2]
118 slice[:]
119 slice[:-1]
120 slice[1:]
121 slice[::-1]
122 slice[d :: d + 1]
123 slice[:c, c - 1]
124 numpy[:, 0:1]
125 numpy[:, :-1]
126 numpy[0, :]
127 numpy[:, i]
128 numpy[0, :2]
129 numpy[:N, 0]
130 numpy[:2, :4]
131 numpy[2:4, 1:5]
132 numpy[4:, 2:]
133 numpy[:, (0, 1, 2, 5)]
134 numpy[0, [0]]
135 numpy[:, [i]]
136 numpy[1 : c + 1, c]
137 numpy[-(c + 1) :, d]
138 numpy[:, l[-2]]
139 numpy[:, ::-1]
140 numpy[np.newaxis, :]
141 (str or None) if (sys.version_info[0] > (3,)) else (str or bytes or None)
142 {'2.7': dead, '3.7': long_live or die_hard}
143 {'2.7', '3.6', '3.7', '3.8', '3.9', '4.0' if gilectomy else '3.10'}
144 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10 or A, 11 or B, 12 or C]
145 (SomeName)
146 SomeName
147 (Good, Bad, Ugly)
148 (i for i in (1, 2, 3))
149 ((i ** 2) for i in (1, 2, 3))
150 ((i ** 2) for i, _ in ((1, 'a'), (2, 'b'), (3, 'c')))
151 (((i ** 2) + j) for i in (1, 2, 3) for j in (1, 2, 3))
152 (*starred,)
153 {"id": "1","type": "type","started_at": now(),"ended_at": now() + timedelta(days=10),"priority": 1,"import_session_id": 1,**kwargs}
154 a = (1,)
155 b = 1,
156 c = 1
157 d = (1,) + a + (2,)
158 e = (1,).count(1)
159 f = 1, *range(10)
160 g = 1, *"ten"
161 what_is_up_with_those_new_coord_names = (coord_names + set(vars_to_create)) + set(vars_to_remove)
162 what_is_up_with_those_new_coord_names = (coord_names | set(vars_to_create)) - set(vars_to_remove)
163 result = session.query(models.Customer.id).filter(models.Customer.account_id == account_id, models.Customer.email == email_address).order_by(models.Customer.id.asc()).all()
164 result = session.query(models.Customer.id).filter(models.Customer.account_id == account_id, models.Customer.email == email_address).order_by(models.Customer.id.asc(),).all()
165 Ø = set()
166 authors.łukasz.say_thanks()
167 mapping = {
168     A: 0.25 * (10.0 / 12),
169     B: 0.1 * (10.0 / 12),
170     C: 0.1 * (10.0 / 12),
171     D: 0.1 * (10.0 / 12),
172 }
173
174 def gen():
175     yield from outside_of_generator
176     a = (yield)
177     b = ((yield))
178     c = (((yield)))
179
180 async def f():
181     await some.complicated[0].call(with_args=(True or (1 is not 1)))
182 print(* [] or [1])
183 print(**{1: 3} if False else {x: x for x in range(3)})
184 print(* lambda x: x)
185 assert(not Test),("Short message")
186 assert this is ComplexTest and not requirements.fit_in_a_single_line(force=False), "Short message"
187 assert(((parens is TooMany)))
188 for x, in (1,), (2,), (3,): ...
189 for y in (): ...
190 for z in (i for i in (1, 2, 3)): ...
191 for i in (call()): ...
192 for j in (1 + (2 + 3)): ...
193 while(this and that): ...
194 for addr_family, addr_type, addr_proto, addr_canonname, addr_sockaddr in socket.getaddrinfo('google.com', 'http'):
195     pass
196 a = aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii.jjjj.kkkk.llll.mmmm.nnnn.oooo.pppp in qqqq.rrrr.ssss.tttt.uuuu.vvvv.xxxx.yyyy.zzzz
197 a = aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii.jjjj.kkkk.llll.mmmm.nnnn.oooo.pppp not in qqqq.rrrr.ssss.tttt.uuuu.vvvv.xxxx.yyyy.zzzz
198 a = aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii.jjjj.kkkk.llll.mmmm.nnnn.oooo.pppp is qqqq.rrrr.ssss.tttt.uuuu.vvvv.xxxx.yyyy.zzzz
199 a = aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii.jjjj.kkkk.llll.mmmm.nnnn.oooo.pppp is not qqqq.rrrr.ssss.tttt.uuuu.vvvv.xxxx.yyyy.zzzz
200 if (
201     threading.current_thread() != threading.main_thread() and
202     threading.current_thread() != threading.main_thread() or
203     signal.getsignal(signal.SIGINT) != signal.default_int_handler
204 ):
205     return True
206 if (
207     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa |
208     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
209 ):
210     return True
211 if (
212     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa &
213     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
214 ):
215     return True
216 if (
217     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +
218     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
219 ):
220     return True
221 if (
222     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -
223     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
224 ):
225     return True
226 if (
227     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa *
228     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
229 ):
230     return True
231 if (
232     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa /
233     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
234 ):
235     return True
236 if (
237     ~ aaaa.a + aaaa.b - aaaa.c * aaaa.d / aaaa.e | aaaa.f & aaaa.g % aaaa.h ^ aaaa.i << aaaa.k >> aaaa.l ** aaaa.m // aaaa.n
238 ):
239     return True
240 if (
241     ~ aaaaaaaa.a + aaaaaaaa.b - aaaaaaaa.c @ aaaaaaaa.d / aaaaaaaa.e | aaaaaaaa.f & aaaaaaaa.g % aaaaaaaa.h ^ aaaaaaaa.i << aaaaaaaa.k >> aaaaaaaa.l ** aaaaaaaa.m // aaaaaaaa.n
242 ):
243     return True
244 if (
245     ~ aaaaaaaaaaaaaaaa.a + aaaaaaaaaaaaaaaa.b - aaaaaaaaaaaaaaaa.c * aaaaaaaaaaaaaaaa.d @ aaaaaaaaaaaaaaaa.e | aaaaaaaaaaaaaaaa.f & aaaaaaaaaaaaaaaa.g % aaaaaaaaaaaaaaaa.h ^ aaaaaaaaaaaaaaaa.i << aaaaaaaaaaaaaaaa.k >> aaaaaaaaaaaaaaaa.l ** aaaaaaaaaaaaaaaa.m // aaaaaaaaaaaaaaaa.n
246 ):
247     return True
248 aaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaa - aaaaaaaaaaaaaaaa * (aaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaa) / (aaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaa)
249 aaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaa
250 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >> aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa << aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
251 bbbb >> bbbb * bbbb
252 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ^bbbb.a & aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa^aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
253 last_call()
254 # standalone comment at ENDMARKER
255
256
257 # output
258
259
260 ...
261 "some_string"
262 b"\\xa3"
263 Name
264 None
265 True
266 False
267 1
268 1.0
269 1j
270 True or False
271 True or False or None
272 True and False
273 True and False and None
274 (Name1 and Name2) or Name3
275 Name1 and Name2 or Name3
276 Name1 or (Name2 and Name3)
277 Name1 or Name2 and Name3
278 (Name1 and Name2) or (Name3 and Name4)
279 Name1 and Name2 or Name3 and Name4
280 Name1 or (Name2 and Name3) or Name4
281 Name1 or Name2 and Name3 or Name4
282 v1 << 2
283 1 >> v2
284 1 % finished
285 1 + v2 - v3 * 4 ^ 5 ** v6 / 7 // 8
286 ((1 + v2) - (v3 * 4)) ^ (((5 ** v6) / 7) // 8)
287 not great
288 ~great
289 +value
290 -1
291 ~int and not v1 ^ 123 + v2 | True
292 (~int) and (not ((v1 ^ (123 + v2)) | True))
293 +(really ** -(confusing ** ~(operator ** -precedence)))
294 flags & ~select.EPOLLIN and waiters.write_task is not None
295 lambda arg: None
296 lambda a=True: a
297 lambda a, b, c=True: a
298 lambda a, b, c=True, *, d=(1 << v2), e="str": a
299 lambda a, b, c=True, *vararg, d=(v1 << 2), e="str", **kwargs: a + b
300 manylambdas = lambda x=lambda y=lambda z=1: z: y(): x()
301 foo = lambda port_id, ignore_missing: {
302     "port1": port1_resource,
303     "port2": port2_resource,
304 }[port_id]
305 1 if True else 2
306 str or None if True else str or bytes or None
307 (str or None) if True else (str or bytes or None)
308 str or None if (1 if True else 2) else str or bytes or None
309 (str or None) if (1 if True else 2) else (str or bytes or None)
310 (
311     (super_long_variable_name or None)
312     if (1 if super_long_test_name else 2)
313     else (str or bytes or None)
314 )
315 {"2.7": dead, "3.7": (long_live or die_hard)}
316 {"2.7": dead, "3.7": (long_live or die_hard), **{"3.6": verygood}}
317 {**a, **b, **c}
318 {"2.7", "3.6", "3.7", "3.8", "3.9", ("4.0" if gilectomy else "3.10")}
319 ({"a": "b"}, (True or False), (+value), "string", b"bytes") or None
320 ()
321 (1,)
322 (1, 2)
323 (1, 2, 3)
324 []
325 [1, 2, 3, 4, 5, 6, 7, 8, 9, (10 or A), (11 or B), (12 or C)]
326 [
327     1,
328     2,
329     3,
330 ]
331 [*a]
332 [*range(10)]
333 [
334     *a,
335     4,
336     5,
337 ]
338 [
339     4,
340     *a,
341     5,
342 ]
343 [
344     this_is_a_very_long_variable_which_will_force_a_delimiter_split,
345     element,
346     another,
347     *more,
348 ]
349 {i for i in (1, 2, 3)}
350 {(i ** 2) for i in (1, 2, 3)}
351 {(i ** 2) for i, _ in ((1, "a"), (2, "b"), (3, "c"))}
352 {((i ** 2) + j) for i in (1, 2, 3) for j in (1, 2, 3)}
353 [i for i in (1, 2, 3)]
354 [(i ** 2) for i in (1, 2, 3)]
355 [(i ** 2) for i, _ in ((1, "a"), (2, "b"), (3, "c"))]
356 [((i ** 2) + j) for i in (1, 2, 3) for j in (1, 2, 3)]
357 {i: 0 for i in (1, 2, 3)}
358 {i: j for i, j in ((1, "a"), (2, "b"), (3, "c"))}
359 {a: b * 2 for a, b in dictionary.items()}
360 {a: b * -2 for a, b in dictionary.items()}
361 {
362     k: v
363     for k, v in this_is_a_very_long_variable_which_will_cause_a_trailing_comma_which_breaks_the_comprehension
364 }
365 Python3 > Python2 > COBOL
366 Life is Life
367 call()
368 call(arg)
369 call(kwarg="hey")
370 call(arg, kwarg="hey")
371 call(arg, another, kwarg="hey", **kwargs)
372 call(
373     this_is_a_very_long_variable_which_will_force_a_delimiter_split,
374     arg,
375     another,
376     kwarg="hey",
377     **kwargs
378 )  # note: no trailing comma pre-3.6
379 call(*gidgets[:2])
380 call(a, *gidgets[:2])
381 call(**self.screen_kwargs)
382 call(b, **self.screen_kwargs)
383 lukasz.langa.pl
384 call.me(maybe)
385 1 .real
386 1.0 .real
387 ....__class__
388 list[str]
389 dict[str, int]
390 tuple[str, ...]
391 tuple[str, int, float, dict[str, int]]
392 tuple[
393     str,
394     int,
395     float,
396     dict[str, int],
397 ]
398 very_long_variable_name_filters: t.List[
399     t.Tuple[str, t.Union[str, t.List[t.Optional[str]]]],
400 ]
401 xxxx_xxxxx_xxxx_xxx: Callable[..., List[SomeClass]] = classmethod(  # type: ignore
402     sync(async_xxxx_xxx_xxxx_xxxxx_xxxx_xxx.__func__)
403 )
404 xxxx_xxx_xxxx_xxxxx_xxxx_xxx: Callable[..., List[SomeClass]] = classmethod(  # type: ignore
405     sync(async_xxxx_xxx_xxxx_xxxxx_xxxx_xxx.__func__)
406 )
407 xxxx_xxx_xxxx_xxxxx_xxxx_xxx: Callable[..., List[SomeClass]] = classmethod(
408     sync(async_xxxx_xxx_xxxx_xxxxx_xxxx_xxx.__func__)
409 )  # type: ignore
410 slice[0]
411 slice[0:1]
412 slice[0:1:2]
413 slice[:]
414 slice[:-1]
415 slice[1:]
416 slice[::-1]
417 slice[d :: d + 1]
418 slice[:c, c - 1]
419 numpy[:, 0:1]
420 numpy[:, :-1]
421 numpy[0, :]
422 numpy[:, i]
423 numpy[0, :2]
424 numpy[:N, 0]
425 numpy[:2, :4]
426 numpy[2:4, 1:5]
427 numpy[4:, 2:]
428 numpy[:, (0, 1, 2, 5)]
429 numpy[0, [0]]
430 numpy[:, [i]]
431 numpy[1 : c + 1, c]
432 numpy[-(c + 1) :, d]
433 numpy[:, l[-2]]
434 numpy[:, ::-1]
435 numpy[np.newaxis, :]
436 (str or None) if (sys.version_info[0] > (3,)) else (str or bytes or None)
437 {"2.7": dead, "3.7": long_live or die_hard}
438 {"2.7", "3.6", "3.7", "3.8", "3.9", "4.0" if gilectomy else "3.10"}
439 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10 or A, 11 or B, 12 or C]
440 (SomeName)
441 SomeName
442 (Good, Bad, Ugly)
443 (i for i in (1, 2, 3))
444 ((i ** 2) for i in (1, 2, 3))
445 ((i ** 2) for i, _ in ((1, "a"), (2, "b"), (3, "c")))
446 (((i ** 2) + j) for i in (1, 2, 3) for j in (1, 2, 3))
447 (*starred,)
448 {
449     "id": "1",
450     "type": "type",
451     "started_at": now(),
452     "ended_at": now() + timedelta(days=10),
453     "priority": 1,
454     "import_session_id": 1,
455     **kwargs,
456 }
457 a = (1,)
458 b = (1,)
459 c = 1
460 d = (1,) + a + (2,)
461 e = (1,).count(1)
462 f = 1, *range(10)
463 g = 1, *"ten"
464 what_is_up_with_those_new_coord_names = (coord_names + set(vars_to_create)) + set(
465     vars_to_remove
466 )
467 what_is_up_with_those_new_coord_names = (coord_names | set(vars_to_create)) - set(
468     vars_to_remove
469 )
470 result = (
471     session.query(models.Customer.id)
472     .filter(
473         models.Customer.account_id == account_id, models.Customer.email == email_address
474     )
475     .order_by(models.Customer.id.asc())
476     .all()
477 )
478 result = (
479     session.query(models.Customer.id)
480     .filter(
481         models.Customer.account_id == account_id, models.Customer.email == email_address
482     )
483     .order_by(
484         models.Customer.id.asc(),
485     )
486     .all()
487 )
488 Ø = set()
489 authors.łukasz.say_thanks()
490 mapping = {
491     A: 0.25 * (10.0 / 12),
492     B: 0.1 * (10.0 / 12),
493     C: 0.1 * (10.0 / 12),
494     D: 0.1 * (10.0 / 12),
495 }
496
497
498 def gen():
499     yield from outside_of_generator
500     a = yield
501     b = yield
502     c = yield
503
504
505 async def f():
506     await some.complicated[0].call(with_args=(True or (1 is not 1)))
507
508
509 print(*[] or [1])
510 print(**{1: 3} if False else {x: x for x in range(3)})
511 print(*lambda x: x)
512 assert not Test, "Short message"
513 assert this is ComplexTest and not requirements.fit_in_a_single_line(
514     force=False
515 ), "Short message"
516 assert parens is TooMany
517 for (x,) in (1,), (2,), (3,):
518     ...
519 for y in ():
520     ...
521 for z in (i for i in (1, 2, 3)):
522     ...
523 for i in call():
524     ...
525 for j in 1 + (2 + 3):
526     ...
527 while this and that:
528     ...
529 for (
530     addr_family,
531     addr_type,
532     addr_proto,
533     addr_canonname,
534     addr_sockaddr,
535 ) in socket.getaddrinfo("google.com", "http"):
536     pass
537 a = (
538     aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii.jjjj.kkkk.llll.mmmm.nnnn.oooo.pppp
539     in qqqq.rrrr.ssss.tttt.uuuu.vvvv.xxxx.yyyy.zzzz
540 )
541 a = (
542     aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii.jjjj.kkkk.llll.mmmm.nnnn.oooo.pppp
543     not in qqqq.rrrr.ssss.tttt.uuuu.vvvv.xxxx.yyyy.zzzz
544 )
545 a = (
546     aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii.jjjj.kkkk.llll.mmmm.nnnn.oooo.pppp
547     is qqqq.rrrr.ssss.tttt.uuuu.vvvv.xxxx.yyyy.zzzz
548 )
549 a = (
550     aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii.jjjj.kkkk.llll.mmmm.nnnn.oooo.pppp
551     is not qqqq.rrrr.ssss.tttt.uuuu.vvvv.xxxx.yyyy.zzzz
552 )
553 if (
554     threading.current_thread() != threading.main_thread()
555     and threading.current_thread() != threading.main_thread()
556     or signal.getsignal(signal.SIGINT) != signal.default_int_handler
557 ):
558     return True
559 if (
560     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
561     | aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
562 ):
563     return True
564 if (
565     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
566     & aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
567 ):
568     return True
569 if (
570     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
571     + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
572 ):
573     return True
574 if (
575     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
576     - aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
577 ):
578     return True
579 if (
580     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
581     * aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
582 ):
583     return True
584 if (
585     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
586     / aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
587 ):
588     return True
589 if (
590     ~aaaa.a + aaaa.b - aaaa.c * aaaa.d / aaaa.e
591     | aaaa.f & aaaa.g % aaaa.h ^ aaaa.i << aaaa.k >> aaaa.l ** aaaa.m // aaaa.n
592 ):
593     return True
594 if (
595     ~aaaaaaaa.a + aaaaaaaa.b - aaaaaaaa.c @ aaaaaaaa.d / aaaaaaaa.e
596     | aaaaaaaa.f & aaaaaaaa.g % aaaaaaaa.h
597     ^ aaaaaaaa.i << aaaaaaaa.k >> aaaaaaaa.l ** aaaaaaaa.m // aaaaaaaa.n
598 ):
599     return True
600 if (
601     ~aaaaaaaaaaaaaaaa.a
602     + aaaaaaaaaaaaaaaa.b
603     - aaaaaaaaaaaaaaaa.c * aaaaaaaaaaaaaaaa.d @ aaaaaaaaaaaaaaaa.e
604     | aaaaaaaaaaaaaaaa.f & aaaaaaaaaaaaaaaa.g % aaaaaaaaaaaaaaaa.h
605     ^ aaaaaaaaaaaaaaaa.i
606     << aaaaaaaaaaaaaaaa.k
607     >> aaaaaaaaaaaaaaaa.l ** aaaaaaaaaaaaaaaa.m // aaaaaaaaaaaaaaaa.n
608 ):
609     return True
610 (
611     aaaaaaaaaaaaaaaa
612     + aaaaaaaaaaaaaaaa
613     - aaaaaaaaaaaaaaaa
614     * (aaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaa)
615     / (aaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaa)
616 )
617 aaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaa
618 (
619     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
620     >> aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
621     << aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
622 )
623 bbbb >> bbbb * bbbb
624 (
625     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
626     ^ bbbb.a & aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
627     ^ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
628 )
629 last_call()
630 # standalone comment at ENDMARKER