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

Reset trailing comma handling
[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 [
318     1,
319     2,
320     3,
321 ]
322 [*a]
323 [*range(10)]
324 [
325     *a,
326     4,
327     5,
328 ]
329 [
330     4,
331     *a,
332     5,
333 ]
334 [
335     this_is_a_very_long_variable_which_will_force_a_delimiter_split,
336     element,
337     another,
338     *more,
339 ]
340 {i for i in (1, 2, 3)}
341 {(i ** 2) for i in (1, 2, 3)}
342 {(i ** 2) for i, _ in ((1, "a"), (2, "b"), (3, "c"))}
343 {((i ** 2) + j) for i in (1, 2, 3) for j in (1, 2, 3)}
344 [i for i in (1, 2, 3)]
345 [(i ** 2) for i in (1, 2, 3)]
346 [(i ** 2) for i, _ in ((1, "a"), (2, "b"), (3, "c"))]
347 [((i ** 2) + j) for i in (1, 2, 3) for j in (1, 2, 3)]
348 {i: 0 for i in (1, 2, 3)}
349 {i: j for i, j in ((1, "a"), (2, "b"), (3, "c"))}
350 {a: b * 2 for a, b in dictionary.items()}
351 {a: b * -2 for a, b in dictionary.items()}
352 {
353     k: v
354     for k, v in this_is_a_very_long_variable_which_will_cause_a_trailing_comma_which_breaks_the_comprehension
355 }
356 Python3 > Python2 > COBOL
357 Life is Life
358 call()
359 call(arg)
360 call(kwarg="hey")
361 call(arg, kwarg="hey")
362 call(arg, another, kwarg="hey", **kwargs)
363 call(
364     this_is_a_very_long_variable_which_will_force_a_delimiter_split,
365     arg,
366     another,
367     kwarg="hey",
368     **kwargs
369 )  # note: no trailing comma pre-3.6
370 call(*gidgets[:2])
371 call(a, *gidgets[:2])
372 call(**self.screen_kwargs)
373 call(b, **self.screen_kwargs)
374 lukasz.langa.pl
375 call.me(maybe)
376 1 .real
377 1.0 .real
378 ....__class__
379 list[str]
380 dict[str, int]
381 tuple[str, ...]
382 tuple[
383     str, int, float, dict[str, int],
384 ]
385 very_long_variable_name_filters: t.List[
386     t.Tuple[str, t.Union[str, t.List[t.Optional[str]]]],
387 ]
388 xxxx_xxxxx_xxxx_xxx: Callable[..., List[SomeClass]] = classmethod(  # type: ignore
389     sync(async_xxxx_xxx_xxxx_xxxxx_xxxx_xxx.__func__)
390 )
391 xxxx_xxx_xxxx_xxxxx_xxxx_xxx: Callable[..., List[SomeClass]] = classmethod(  # type: ignore
392     sync(async_xxxx_xxx_xxxx_xxxxx_xxxx_xxx.__func__)
393 )
394 xxxx_xxx_xxxx_xxxxx_xxxx_xxx: Callable[..., List[SomeClass]] = classmethod(
395     sync(async_xxxx_xxx_xxxx_xxxxx_xxxx_xxx.__func__)
396 )  # type: ignore
397 slice[0]
398 slice[0:1]
399 slice[0:1:2]
400 slice[:]
401 slice[:-1]
402 slice[1:]
403 slice[::-1]
404 slice[d :: d + 1]
405 slice[:c, c - 1]
406 numpy[:, 0:1]
407 numpy[:, :-1]
408 numpy[0, :]
409 numpy[:, i]
410 numpy[0, :2]
411 numpy[:N, 0]
412 numpy[:2, :4]
413 numpy[2:4, 1:5]
414 numpy[4:, 2:]
415 numpy[:, (0, 1, 2, 5)]
416 numpy[0, [0]]
417 numpy[:, [i]]
418 numpy[1 : c + 1, c]
419 numpy[-(c + 1) :, d]
420 numpy[:, l[-2]]
421 numpy[:, ::-1]
422 numpy[np.newaxis, :]
423 (str or None) if (sys.version_info[0] > (3,)) else (str or bytes or None)
424 {"2.7": dead, "3.7": long_live or die_hard}
425 {"2.7", "3.6", "3.7", "3.8", "3.9", "4.0" if gilectomy else "3.10"}
426 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10 or A, 11 or B, 12 or C]
427 (SomeName)
428 SomeName
429 (Good, Bad, Ugly)
430 (i for i in (1, 2, 3))
431 ((i ** 2) for i in (1, 2, 3))
432 ((i ** 2) for i, _ in ((1, "a"), (2, "b"), (3, "c")))
433 (((i ** 2) + j) for i in (1, 2, 3) for j in (1, 2, 3))
434 (*starred,)
435 {
436     "id": "1",
437     "type": "type",
438     "started_at": now(),
439     "ended_at": now() + timedelta(days=10),
440     "priority": 1,
441     "import_session_id": 1,
442     **kwargs,
443 }
444 a = (1,)
445 b = (1,)
446 c = 1
447 d = (1,) + a + (2,)
448 e = (1,).count(1)
449 f = 1, *range(10)
450 g = 1, *"ten"
451 what_is_up_with_those_new_coord_names = (coord_names + set(vars_to_create)) + set(
452     vars_to_remove
453 )
454 what_is_up_with_those_new_coord_names = (coord_names | set(vars_to_create)) - set(
455     vars_to_remove
456 )
457 result = (
458     session.query(models.Customer.id)
459     .filter(
460         models.Customer.account_id == account_id, models.Customer.email == email_address
461     )
462     .order_by(models.Customer.id.asc(),)
463     .all()
464 )
465 Ø = set()
466 authors.łukasz.say_thanks()
467 mapping = {
468     A: 0.25 * (10.0 / 12),
469     B: 0.1 * (10.0 / 12),
470     C: 0.1 * (10.0 / 12),
471     D: 0.1 * (10.0 / 12),
472 }
473
474
475 def gen():
476     yield from outside_of_generator
477     a = yield
478     b = yield
479     c = yield
480
481
482 async def f():
483     await some.complicated[0].call(with_args=(True or (1 is not 1)))
484
485
486 print(*[] or [1])
487 print(**{1: 3} if False else {x: x for x in range(3)})
488 print(*lambda x: x)
489 assert not Test, "Short message"
490 assert this is ComplexTest and not requirements.fit_in_a_single_line(
491     force=False
492 ), "Short message"
493 assert parens is TooMany
494 for (x,) in (1,), (2,), (3,):
495     ...
496 for y in ():
497     ...
498 for z in (i for i in (1, 2, 3)):
499     ...
500 for i in call():
501     ...
502 for j in 1 + (2 + 3):
503     ...
504 while this and that:
505     ...
506 for (
507     addr_family,
508     addr_type,
509     addr_proto,
510     addr_canonname,
511     addr_sockaddr,
512 ) in socket.getaddrinfo("google.com", "http"):
513     pass
514 a = (
515     aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii.jjjj.kkkk.llll.mmmm.nnnn.oooo.pppp
516     in qqqq.rrrr.ssss.tttt.uuuu.vvvv.xxxx.yyyy.zzzz
517 )
518 a = (
519     aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii.jjjj.kkkk.llll.mmmm.nnnn.oooo.pppp
520     not in qqqq.rrrr.ssss.tttt.uuuu.vvvv.xxxx.yyyy.zzzz
521 )
522 a = (
523     aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii.jjjj.kkkk.llll.mmmm.nnnn.oooo.pppp
524     is qqqq.rrrr.ssss.tttt.uuuu.vvvv.xxxx.yyyy.zzzz
525 )
526 a = (
527     aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii.jjjj.kkkk.llll.mmmm.nnnn.oooo.pppp
528     is not qqqq.rrrr.ssss.tttt.uuuu.vvvv.xxxx.yyyy.zzzz
529 )
530 if (
531     threading.current_thread() != threading.main_thread()
532     and threading.current_thread() != threading.main_thread()
533     or signal.getsignal(signal.SIGINT) != signal.default_int_handler
534 ):
535     return True
536 if (
537     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
538     | aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
539 ):
540     return True
541 if (
542     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
543     & aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
544 ):
545     return True
546 if (
547     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
548     + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
549 ):
550     return True
551 if (
552     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
553     - aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
554 ):
555     return True
556 if (
557     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
558     * aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
559 ):
560     return True
561 if (
562     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
563     / aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
564 ):
565     return True
566 if (
567     ~aaaa.a + aaaa.b - aaaa.c * aaaa.d / aaaa.e
568     | aaaa.f & aaaa.g % aaaa.h ^ aaaa.i << aaaa.k >> aaaa.l ** aaaa.m // aaaa.n
569 ):
570     return True
571 if (
572     ~aaaaaaaa.a + aaaaaaaa.b - aaaaaaaa.c @ aaaaaaaa.d / aaaaaaaa.e
573     | aaaaaaaa.f & aaaaaaaa.g % aaaaaaaa.h
574     ^ aaaaaaaa.i << aaaaaaaa.k >> aaaaaaaa.l ** aaaaaaaa.m // aaaaaaaa.n
575 ):
576     return True
577 if (
578     ~aaaaaaaaaaaaaaaa.a
579     + aaaaaaaaaaaaaaaa.b
580     - aaaaaaaaaaaaaaaa.c * aaaaaaaaaaaaaaaa.d @ aaaaaaaaaaaaaaaa.e
581     | aaaaaaaaaaaaaaaa.f & aaaaaaaaaaaaaaaa.g % aaaaaaaaaaaaaaaa.h
582     ^ aaaaaaaaaaaaaaaa.i
583     << aaaaaaaaaaaaaaaa.k
584     >> aaaaaaaaaaaaaaaa.l ** aaaaaaaaaaaaaaaa.m // aaaaaaaaaaaaaaaa.n
585 ):
586     return True
587 last_call()
588 # standalone comment at ENDMARKER