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[..., List[SomeClass]] = classmethod( # type: ignore
378 sync(async_xxxx_xxx_xxxx_xxxxx_xxxx_xxx.__func__)
380 xxxx_xxx_xxxx_xxxxx_xxxx_xxx: Callable[..., List[SomeClass]] = classmethod(
381 sync(async_xxxx_xxx_xxxx_xxxxx_xxxx_xxx.__func__)
401 numpy[:, (0, 1, 2, 5)]
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]
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))
425 "ended_at": now() + timedelta(days=10),
427 "import_session_id": 1,
437 what_is_up_with_those_new_coord_names = (coord_names + set(vars_to_create)) + set(
440 what_is_up_with_those_new_coord_names = (coord_names | set(vars_to_create)) - set(
444 session.query(models.Customer.id)
446 models.Customer.account_id == account_id, models.Customer.email == email_address
448 .order_by(models.Customer.id.asc())
452 authors.łukasz.say_thanks()
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),
462 yield from outside_of_generator
469 await some.complicated[0].call(with_args=(True or (1 is not 1)))
473 print(**{1: 3} if False else {x: x for x in range(3)})
475 assert not Test, "Short message"
476 assert this is ComplexTest and not requirements.fit_in_a_single_line(
479 assert parens is TooMany
480 for (x,) in (1,), (2,), (3,):
484 for z in (i for i in (1, 2, 3)):
488 for j in 1 + (2 + 3):
498 ) in socket.getaddrinfo("google.com", "http"):
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
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
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
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
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
523 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
524 | aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
528 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
529 & aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
533 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
534 + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
538 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
539 - aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
543 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
544 * aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
548 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
549 / aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
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
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
566 - aaaaaaaaaaaaaaaa.c * aaaaaaaaaaaaaaaa.d @ aaaaaaaaaaaaaaaa.e
567 | aaaaaaaaaaaaaaaa.f & aaaaaaaaaaaaaaaa.g % aaaaaaaaaaaaaaaa.h
569 << aaaaaaaaaaaaaaaa.k
570 >> aaaaaaaaaaaaaaaa.l ** aaaaaaaaaaaaaaaa.m // aaaaaaaaaaaaaaaa.n
574 # standalone comment at ENDMARKER