]> git.madduck.net Git - etc/vim.git/blob - tests/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:

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