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 flags & ~ select.EPOLLIN and waiters.write_task is not None
37 lambda a, b, c=True: a
38 lambda a, b, c=True, *, d=(1 << v2), e='str': a
39 lambda a, b, c=True, *vararg, d=(v1 << 2), e='str', **kwargs: a + b
40 manylambdas = lambda x=lambda y=lambda z=1: z: y(): x()
41 foo = (lambda port_id, ignore_missing: {"port1": port1_resource, "port2": port2_resource}[port_id])
43 str or None if True else str or bytes or None
44 (str or None) if True else (str or bytes or None)
45 str or None if (1 if True else 2) else str or bytes or None
46 (str or None) if (1 if True else 2) else (str or bytes or None)
47 ((super_long_variable_name or None) if (1 if super_long_test_name else 2) else (str or bytes or None))
48 {'2.7': dead, '3.7': (long_live or die_hard)}
49 {'2.7': dead, '3.7': (long_live or die_hard), **{'3.6': verygood}}
51 {'2.7', '3.6', '3.7', '3.8', '3.9', ('4.0' if gilectomy else '3.10')}
52 ({'a': 'b'}, (True or False), (+value), 'string', b'bytes') or None
58 [1, 2, 3, 4, 5, 6, 7, 8, 9, (10 or A), (11 or B), (12 or C)]
64 [this_is_a_very_long_variable_which_will_force_a_delimiter_split, element, another, *more]
65 {i for i in (1, 2, 3)}
66 {(i ** 2) for i in (1, 2, 3)}
67 {(i ** 2) for i, _ in ((1, 'a'), (2, 'b'), (3, 'c'))}
68 {((i ** 2) + j) for i in (1, 2, 3) for j in (1, 2, 3)}
69 [i for i in (1, 2, 3)]
70 [(i ** 2) for i in (1, 2, 3)]
71 [(i ** 2) for i, _ in ((1, 'a'), (2, 'b'), (3, 'c'))]
72 [((i ** 2) + j) for i in (1, 2, 3) for j in (1, 2, 3)]
73 {i: 0 for i in (1, 2, 3)}
74 {i: j for i, j in ((1, 'a'), (2, 'b'), (3, 'c'))}
75 {a: b * 2 for a, b in dictionary.items()}
76 {a: b * -2 for a, b in dictionary.items()}
77 {k: v for k, v in this_is_a_very_long_variable_which_will_cause_a_trailing_comma_which_breaks_the_comprehension}
78 Python3 > Python2 > COBOL
83 call(arg, kwarg='hey')
84 call(arg, another, kwarg='hey', **kwargs)
85 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
88 call(**self.screen_kwargs)
89 call(b, **self.screen_kwargs)
98 tuple[str, int, float, dict[str, int],]
99 very_long_variable_name_filters: t.List[
100 t.Tuple[str, t.Union[str, t.List[t.Optional[str]]]],
102 xxxx_xxxxx_xxxx_xxx: Callable[..., List[SomeClass]] = classmethod( # type: ignore
103 sync(async_xxxx_xxx_xxxx_xxxxx_xxxx_xxx.__func__)
105 xxxx_xxx_xxxx_xxxxx_xxxx_xxx: Callable[..., List[SomeClass]] = classmethod( # type: ignore
106 sync(async_xxxx_xxx_xxxx_xxxxx_xxxx_xxx.__func__)
108 xxxx_xxx_xxxx_xxxxx_xxxx_xxx: Callable[
110 ] = classmethod(sync(async_xxxx_xxx_xxxx_xxxxx_xxxx_xxx.__func__)) # type: ignore
129 numpy[:, (0, 1, 2, 5)]
137 (str or None) if (sys.version_info[0] > (3,)) else (str or bytes or None)
138 {'2.7': dead, '3.7': long_live or die_hard}
139 {'2.7', '3.6', '3.7', '3.8', '3.9', '4.0' if gilectomy else '3.10'}
140 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10 or A, 11 or B, 12 or C]
144 (i for i in (1, 2, 3))
145 ((i ** 2) for i in (1, 2, 3))
146 ((i ** 2) for i, _ in ((1, 'a'), (2, 'b'), (3, 'c')))
147 (((i ** 2) + j) for i in (1, 2, 3) for j in (1, 2, 3))
149 {"id": "1","type": "type","started_at": now(),"ended_at": now() + timedelta(days=10),"priority": 1,"import_session_id": 1,**kwargs}
157 what_is_up_with_those_new_coord_names = (coord_names + set(vars_to_create)) + set(vars_to_remove)
158 what_is_up_with_those_new_coord_names = (coord_names | set(vars_to_create)) - set(vars_to_remove)
159 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 authors.łukasz.say_thanks()
163 A: 0.25 * (10.0 / 12),
164 B: 0.1 * (10.0 / 12),
165 C: 0.1 * (10.0 / 12),
166 D: 0.1 * (10.0 / 12),
170 yield from outside_of_generator
174 await some.complicated[0].call(with_args=(True or (1 is not 1)))
176 print(**{1: 3} if False else {x: x for x in range(3)})
178 assert(not Test),("Short message")
179 assert this is ComplexTest and not requirements.fit_in_a_single_line(force=False), "Short message"
180 assert(((parens is TooMany)))
181 for x, in (1,), (2,), (3,): ...
183 for z in (i for i in (1, 2, 3)): ...
184 for i in (call()): ...
185 for j in (1 + (2 + 3)): ...
186 while(this and that): ...
187 for addr_family, addr_type, addr_proto, addr_canonname, addr_sockaddr in socket.getaddrinfo('google.com', 'http'):
189 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
190 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
191 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
192 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
194 threading.current_thread() != threading.main_thread() and
195 threading.current_thread() != threading.main_thread() or
196 signal.getsignal(signal.SIGINT) != signal.default_int_handler
200 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa |
201 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
205 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa &
206 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
210 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +
211 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
215 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -
216 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
220 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa *
221 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
225 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa /
226 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
230 ~ 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 ~ 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 ~ 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 # standalone comment at ENDMARKER
259 True or False or None
261 True and False and None
262 (Name1 and Name2) or Name3
263 Name1 and Name2 or Name3
264 Name1 or (Name2 and Name3)
265 Name1 or Name2 and Name3
266 (Name1 and Name2) or (Name3 and Name4)
267 Name1 and Name2 or Name3 and Name4
268 Name1 or (Name2 and Name3) or Name4
269 Name1 or Name2 and Name3 or Name4
273 1 + v2 - v3 * 4 ^ 5 ** v6 / 7 // 8
274 ((1 + v2) - (v3 * 4)) ^ (((5 ** v6) / 7) // 8)
279 ~int and not v1 ^ 123 + v2 | True
280 (~int) and (not ((v1 ^ (123 + v2)) | True))
281 flags & ~select.EPOLLIN and waiters.write_task is not None
284 lambda a, b, c=True: a
285 lambda a, b, c=True, *, d=(1 << v2), e="str": a
286 lambda a, b, c=True, *vararg, d=(v1 << 2), e="str", **kwargs: a + b
287 manylambdas = lambda x=lambda y=lambda z=1: z: y(): x()
288 foo = lambda port_id, ignore_missing: {
289 "port1": port1_resource,
290 "port2": port2_resource,
293 str or None if True else str or bytes or None
294 (str or None) if True else (str or bytes or None)
295 str or None if (1 if True else 2) else str or bytes or None
296 (str or None) if (1 if True else 2) else (str or bytes or None)
298 (super_long_variable_name or None)
299 if (1 if super_long_test_name else 2)
300 else (str or bytes or None)
302 {"2.7": dead, "3.7": (long_live or die_hard)}
303 {"2.7": dead, "3.7": (long_live or die_hard), **{"3.6": verygood}}
305 {"2.7", "3.6", "3.7", "3.8", "3.9", ("4.0" if gilectomy else "3.10")}
306 ({"a": "b"}, (True or False), (+value), "string", b"bytes") or None
312 [1, 2, 3, 4, 5, 6, 7, 8, 9, (10 or A), (11 or B), (12 or C)]
319 this_is_a_very_long_variable_which_will_force_a_delimiter_split,
324 {i for i in (1, 2, 3)}
325 {(i ** 2) for i in (1, 2, 3)}
326 {(i ** 2) for i, _ in ((1, "a"), (2, "b"), (3, "c"))}
327 {((i ** 2) + j) for i in (1, 2, 3) for j in (1, 2, 3)}
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: 0 for i in (1, 2, 3)}
333 {i: j for i, j in ((1, "a"), (2, "b"), (3, "c"))}
334 {a: b * 2 for a, b in dictionary.items()}
335 {a: b * -2 for a, b in dictionary.items()}
338 for k, v in this_is_a_very_long_variable_which_will_cause_a_trailing_comma_which_breaks_the_comprehension
340 Python3 > Python2 > COBOL
345 call(arg, kwarg="hey")
346 call(arg, another, kwarg="hey", **kwargs)
348 this_is_a_very_long_variable_which_will_force_a_delimiter_split,
353 ) # note: no trailing comma pre-3.6
355 call(a, *gidgets[:2])
356 call(**self.screen_kwargs)
357 call(b, **self.screen_kwargs)
366 tuple[str, int, float, dict[str, int]]
367 very_long_variable_name_filters: t.List[
368 t.Tuple[str, t.Union[str, t.List[t.Optional[str]]]],
370 xxxx_xxxxx_xxxx_xxx: Callable[..., List[SomeClass]] = classmethod( # type: ignore
371 sync(async_xxxx_xxx_xxxx_xxxxx_xxxx_xxx.__func__)
373 xxxx_xxx_xxxx_xxxxx_xxxx_xxx: Callable[
375 ] = classmethod( # type: ignore
376 sync(async_xxxx_xxx_xxxx_xxxxx_xxxx_xxx.__func__)
378 xxxx_xxx_xxxx_xxxxx_xxxx_xxx: Callable[..., List[SomeClass]] = classmethod(
379 sync(async_xxxx_xxx_xxxx_xxxxx_xxxx_xxx.__func__)
399 numpy[:, (0, 1, 2, 5)]
407 (str or None) if (sys.version_info[0] > (3,)) else (str or bytes or None)
408 {"2.7": dead, "3.7": long_live or die_hard}
409 {"2.7", "3.6", "3.7", "3.8", "3.9", "4.0" if gilectomy else "3.10"}
410 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10 or A, 11 or B, 12 or C]
414 (i for i in (1, 2, 3))
415 ((i ** 2) for i in (1, 2, 3))
416 ((i ** 2) for i, _ in ((1, "a"), (2, "b"), (3, "c")))
417 (((i ** 2) + j) for i in (1, 2, 3) for j in (1, 2, 3))
423 "ended_at": now() + timedelta(days=10),
425 "import_session_id": 1,
435 what_is_up_with_those_new_coord_names = (coord_names + set(vars_to_create)) + set(
438 what_is_up_with_those_new_coord_names = (coord_names | set(vars_to_create)) - set(
442 session.query(models.Customer.id)
444 models.Customer.account_id == account_id, models.Customer.email == email_address
446 .order_by(models.Customer.id.asc())
450 authors.łukasz.say_thanks()
452 A: 0.25 * (10.0 / 12),
453 B: 0.1 * (10.0 / 12),
454 C: 0.1 * (10.0 / 12),
455 D: 0.1 * (10.0 / 12),
460 yield from outside_of_generator
465 await some.complicated[0].call(with_args=(True or (1 is not 1)))
469 print(**{1: 3} if False else {x: x for x in range(3)})
471 assert not Test, "Short message"
472 assert this is ComplexTest and not requirements.fit_in_a_single_line(
475 assert parens is TooMany
476 for (x,) in (1,), (2,), (3,):
480 for z in (i for i in (1, 2, 3)):
484 for j in 1 + (2 + 3):
494 ) in socket.getaddrinfo("google.com", "http"):
497 aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii.jjjj.kkkk.llll.mmmm.nnnn.oooo.pppp
498 in qqqq.rrrr.ssss.tttt.uuuu.vvvv.xxxx.yyyy.zzzz
501 aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii.jjjj.kkkk.llll.mmmm.nnnn.oooo.pppp
502 not 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 is 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 not qqqq.rrrr.ssss.tttt.uuuu.vvvv.xxxx.yyyy.zzzz
513 threading.current_thread() != threading.main_thread()
514 and threading.current_thread() != threading.main_thread()
515 or signal.getsignal(signal.SIGINT) != signal.default_int_handler
519 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
520 | aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
524 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
525 & aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
529 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
530 + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
534 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
535 - aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
539 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
540 * aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
544 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
545 / aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
549 ~aaaa.a + aaaa.b - aaaa.c * aaaa.d / aaaa.e
550 | aaaa.f & aaaa.g % aaaa.h ^ aaaa.i << aaaa.k >> aaaa.l ** aaaa.m // aaaa.n
554 ~aaaaaaaa.a + aaaaaaaa.b - aaaaaaaa.c @ aaaaaaaa.d / aaaaaaaa.e
555 | aaaaaaaa.f & aaaaaaaa.g % aaaaaaaa.h
556 ^ aaaaaaaa.i << aaaaaaaa.k >> aaaaaaaa.l ** aaaaaaaa.m // aaaaaaaa.n
562 - aaaaaaaaaaaaaaaa.c * aaaaaaaaaaaaaaaa.d @ aaaaaaaaaaaaaaaa.e
563 | aaaaaaaaaaaaaaaa.f & aaaaaaaaaaaaaaaa.g % aaaaaaaaaaaaaaaa.h
565 << aaaaaaaaaaaaaaaa.k
566 >> aaaaaaaaaaaaaaaa.l ** aaaaaaaaaaaaaaaa.m // aaaaaaaaaaaaaaaa.n
570 # standalone comment at ENDMARKER