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

restore cursor to same line of code, not same line of buffer (#989)
[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[..., List[SomeClass]] = classmethod(  # type: ignore
378     sync(async_xxxx_xxx_xxxx_xxxxx_xxxx_xxx.__func__)
379 )
380 xxxx_xxx_xxxx_xxxxx_xxxx_xxx: Callable[..., List[SomeClass]] = classmethod(
381     sync(async_xxxx_xxx_xxxx_xxxxx_xxxx_xxx.__func__)
382 )  # type: ignore
383 slice[0]
384 slice[0:1]
385 slice[0:1:2]
386 slice[:]
387 slice[:-1]
388 slice[1:]
389 slice[::-1]
390 slice[d :: d + 1]
391 slice[:c, c - 1]
392 numpy[:, 0:1]
393 numpy[:, :-1]
394 numpy[0, :]
395 numpy[:, i]
396 numpy[0, :2]
397 numpy[:N, 0]
398 numpy[:2, :4]
399 numpy[2:4, 1:5]
400 numpy[4:, 2:]
401 numpy[:, (0, 1, 2, 5)]
402 numpy[0, [0]]
403 numpy[:, [i]]
404 numpy[1 : c + 1, c]
405 numpy[-(c + 1) :, d]
406 numpy[:, l[-2]]
407 numpy[:, ::-1]
408 numpy[np.newaxis, :]
409 (str or None) if (sys.version_info[0] > (3,)) else (str or bytes or None)
410 {"2.7": dead, "3.7": long_live or die_hard}
411 {"2.7", "3.6", "3.7", "3.8", "3.9", "4.0" if gilectomy else "3.10"}
412 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10 or A, 11 or B, 12 or C]
413 SomeName
414 SomeName
415 (Good, Bad, Ugly)
416 (i for i in (1, 2, 3))
417 ((i ** 2) for i in (1, 2, 3))
418 ((i ** 2) for i, _ in ((1, "a"), (2, "b"), (3, "c")))
419 (((i ** 2) + j) for i in (1, 2, 3) for j in (1, 2, 3))
420 (*starred)
421 {
422     "id": "1",
423     "type": "type",
424     "started_at": now(),
425     "ended_at": now() + timedelta(days=10),
426     "priority": 1,
427     "import_session_id": 1,
428     **kwargs,
429 }
430 a = (1,)
431 b = (1,)
432 c = 1
433 d = (1,) + a + (2,)
434 e = (1,).count(1)
435 f = 1, *range(10)
436 g = 1, *"ten"
437 what_is_up_with_those_new_coord_names = (coord_names + set(vars_to_create)) + set(
438     vars_to_remove
439 )
440 what_is_up_with_those_new_coord_names = (coord_names | set(vars_to_create)) - set(
441     vars_to_remove
442 )
443 result = (
444     session.query(models.Customer.id)
445     .filter(
446         models.Customer.account_id == account_id, models.Customer.email == email_address
447     )
448     .order_by(models.Customer.id.asc())
449     .all()
450 )
451 Ø = set()
452 authors.łukasz.say_thanks()
453 mapping = {
454     A: 0.25 * (10.0 / 12),
455     B: 0.1 * (10.0 / 12),
456     C: 0.1 * (10.0 / 12),
457     D: 0.1 * (10.0 / 12),
458 }
459
460
461 def gen():
462     yield from outside_of_generator
463     a = yield
464     b = yield
465     c = yield
466
467
468 async def f():
469     await some.complicated[0].call(with_args=(True or (1 is not 1)))
470
471
472 print(*[] or [1])
473 print(**{1: 3} if False else {x: x for x in range(3)})
474 print(*lambda x: x)
475 assert not Test, "Short message"
476 assert this is ComplexTest and not requirements.fit_in_a_single_line(
477     force=False
478 ), "Short message"
479 assert parens is TooMany
480 for (x,) in (1,), (2,), (3,):
481     ...
482 for y in ():
483     ...
484 for z in (i for i in (1, 2, 3)):
485     ...
486 for i in call():
487     ...
488 for j in 1 + (2 + 3):
489     ...
490 while this and that:
491     ...
492 for (
493     addr_family,
494     addr_type,
495     addr_proto,
496     addr_canonname,
497     addr_sockaddr,
498 ) in socket.getaddrinfo("google.com", "http"):
499     pass
500 a = (
501     aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii.jjjj.kkkk.llll.mmmm.nnnn.oooo.pppp
502     in qqqq.rrrr.ssss.tttt.uuuu.vvvv.xxxx.yyyy.zzzz
503 )
504 a = (
505     aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii.jjjj.kkkk.llll.mmmm.nnnn.oooo.pppp
506     not in qqqq.rrrr.ssss.tttt.uuuu.vvvv.xxxx.yyyy.zzzz
507 )
508 a = (
509     aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii.jjjj.kkkk.llll.mmmm.nnnn.oooo.pppp
510     is qqqq.rrrr.ssss.tttt.uuuu.vvvv.xxxx.yyyy.zzzz
511 )
512 a = (
513     aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii.jjjj.kkkk.llll.mmmm.nnnn.oooo.pppp
514     is not qqqq.rrrr.ssss.tttt.uuuu.vvvv.xxxx.yyyy.zzzz
515 )
516 if (
517     threading.current_thread() != threading.main_thread()
518     and threading.current_thread() != threading.main_thread()
519     or signal.getsignal(signal.SIGINT) != signal.default_int_handler
520 ):
521     return True
522 if (
523     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
524     | aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
525 ):
526     return True
527 if (
528     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
529     & aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
530 ):
531     return True
532 if (
533     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
534     + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
535 ):
536     return True
537 if (
538     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
539     - aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
540 ):
541     return True
542 if (
543     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
544     * aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
545 ):
546     return True
547 if (
548     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
549     / aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
550 ):
551     return True
552 if (
553     ~aaaa.a + aaaa.b - aaaa.c * aaaa.d / aaaa.e
554     | aaaa.f & aaaa.g % aaaa.h ^ aaaa.i << aaaa.k >> aaaa.l ** aaaa.m // aaaa.n
555 ):
556     return True
557 if (
558     ~aaaaaaaa.a + aaaaaaaa.b - aaaaaaaa.c @ aaaaaaaa.d / aaaaaaaa.e
559     | aaaaaaaa.f & aaaaaaaa.g % aaaaaaaa.h
560     ^ aaaaaaaa.i << aaaaaaaa.k >> aaaaaaaa.l ** aaaaaaaa.m // aaaaaaaa.n
561 ):
562     return True
563 if (
564     ~aaaaaaaaaaaaaaaa.a
565     + aaaaaaaaaaaaaaaa.b
566     - aaaaaaaaaaaaaaaa.c * aaaaaaaaaaaaaaaa.d @ aaaaaaaaaaaaaaaa.e
567     | aaaaaaaaaaaaaaaa.f & aaaaaaaaaaaaaaaa.g % aaaaaaaaaaaaaaaa.h
568     ^ aaaaaaaaaaaaaaaa.i
569     << aaaaaaaaaaaaaaaa.k
570     >> aaaaaaaaaaaaaaaa.l ** aaaaaaaaaaaaaaaa.m // aaaaaaaaaaaaaaaa.n
571 ):
572     return True
573 last_call()
574 # standalone comment at ENDMARKER