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

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