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

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