]> 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:

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