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.
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
26 1 + v2 - v3 * 4 ^ 5 ** v6 / 7 // 8
27 ((1 + v2) - (v3 * 4)) ^ (((5 ** v6) / 7) // 8)
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
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])
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}}
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
59 [1, 2, 3, 4, 5, 6, 7, 8, 9, (10 or A), (11 or B), (12 or C)]
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
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
89 call(**self.screen_kwargs)
90 call(b, **self.screen_kwargs)
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]]]],
103 xxxx_xxxxx_xxxx_xxx: Callable[..., List[SomeClass]] = classmethod( # type: ignore
104 sync(async_xxxx_xxx_xxxx_xxxxx_xxxx_xxx.__func__)
106 xxxx_xxx_xxxx_xxxxx_xxxx_xxx: Callable[..., List[SomeClass]] = classmethod( # type: ignore
107 sync(async_xxxx_xxx_xxxx_xxxxx_xxxx_xxx.__func__)
109 xxxx_xxx_xxxx_xxxxx_xxxx_xxx: Callable[
111 ] = classmethod(sync(async_xxxx_xxx_xxxx_xxxxx_xxxx_xxx.__func__)) # type: ignore
130 numpy[:, (0, 1, 2, 5)]
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]
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))
150 {"id": "1","type": "type","started_at": now(),"ended_at": now() + timedelta(days=10),"priority": 1,"import_session_id": 1,**kwargs}
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()
162 authors.łukasz.say_thanks()
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),
171 yield from outside_of_generator
177 await some.complicated[0].call(with_args=(True or (1 is not 1)))
179 print(**{1: 3} if False else {x: x for x in range(3)})
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,): ...
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'):
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
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
203 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa |
204 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
208 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa &
209 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
213 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +
214 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
218 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -
219 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
223 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa *
224 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
228 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa /
229 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
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
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
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
245 # standalone comment at ENDMARKER
262 True or False or None
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
276 1 + v2 - v3 * 4 ^ 5 ** v6 / 7 // 8
277 ((1 + v2) - (v3 * 4)) ^ (((5 ** v6) / 7) // 8)
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
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,
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)
302 (super_long_variable_name or None)
303 if (1 if super_long_test_name else 2)
304 else (str or bytes or None)
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}}
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
316 [1, 2, 3, 4, 5, 6, 7, 8, 9, (10 or A), (11 or B), (12 or C)]
323 this_is_a_very_long_variable_which_will_force_a_delimiter_split,
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()}
342 for k, v in this_is_a_very_long_variable_which_will_cause_a_trailing_comma_which_breaks_the_comprehension
344 Python3 > Python2 > COBOL
349 call(arg, kwarg="hey")
350 call(arg, another, kwarg="hey", **kwargs)
352 this_is_a_very_long_variable_which_will_force_a_delimiter_split,
357 ) # note: no trailing comma pre-3.6
359 call(a, *gidgets[:2])
360 call(**self.screen_kwargs)
361 call(b, **self.screen_kwargs)
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]]]],
374 xxxx_xxxxx_xxxx_xxx: Callable[..., List[SomeClass]] = classmethod( # type: ignore
375 sync(async_xxxx_xxx_xxxx_xxxxx_xxxx_xxx.__func__)
377 xxxx_xxx_xxxx_xxxxx_xxxx_xxx: Callable[
379 ] = classmethod( # type: ignore
380 sync(async_xxxx_xxx_xxxx_xxxxx_xxxx_xxx.__func__)
382 xxxx_xxx_xxxx_xxxxx_xxxx_xxx: Callable[..., List[SomeClass]] = classmethod(
383 sync(async_xxxx_xxx_xxxx_xxxxx_xxxx_xxx.__func__)
403 numpy[:, (0, 1, 2, 5)]
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]
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))
427 "ended_at": now() + timedelta(days=10),
429 "import_session_id": 1,
439 what_is_up_with_those_new_coord_names = (coord_names + set(vars_to_create)) + set(
442 what_is_up_with_those_new_coord_names = (coord_names | set(vars_to_create)) - set(
446 session.query(models.Customer.id)
448 models.Customer.account_id == account_id, models.Customer.email == email_address
450 .order_by(models.Customer.id.asc())
454 authors.łukasz.say_thanks()
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),
464 yield from outside_of_generator
471 await some.complicated[0].call(with_args=(True or (1 is not 1)))
475 print(**{1: 3} if False else {x: x for x in range(3)})
477 assert not Test, "Short message"
478 assert this is ComplexTest and not requirements.fit_in_a_single_line(
481 assert parens is TooMany
482 for (x,) in (1,), (2,), (3,):
486 for z in (i for i in (1, 2, 3)):
490 for j in 1 + (2 + 3):
500 ) in socket.getaddrinfo("google.com", "http"):
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
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
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
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
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
525 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
526 | aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
530 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
531 & aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
535 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
536 + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
540 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
541 - aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
545 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
546 * aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
550 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
551 / aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
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
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
568 - aaaaaaaaaaaaaaaa.c * aaaaaaaaaaaaaaaa.d @ aaaaaaaaaaaaaaaa.e
569 | aaaaaaaaaaaaaaaa.f & aaaaaaaaaaaaaaaa.g % aaaaaaaaaaaaaaaa.h
571 << aaaaaaaaaaaaaaaa.k
572 >> aaaaaaaaaaaaaaaa.l ** aaaaaaaaaaaaaaaa.m // aaaaaaaaaaaaaaaa.n
576 # standalone comment at ENDMARKER