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 foo = (lambda port_id, ignore_missing: {"port1": port1_resource, "port2": port2_resource}[port_id])
42 str or None if True else str or bytes or None
43 (str or None) if True else (str or bytes or None)
44 str or None if (1 if True else 2) else str or bytes or None
45 (str or None) if (1 if True else 2) else (str or bytes or None)
46 ((super_long_variable_name or None) if (1 if super_long_test_name else 2) else (str or bytes or None))
47 {'2.7': dead, '3.7': (long_live or die_hard)}
48 {'2.7': dead, '3.7': (long_live or die_hard), **{'3.6': verygood}}
50 {'2.7', '3.6', '3.7', '3.8', '3.9', ('4.0' if gilectomy else '3.10')}
51 ({'a': 'b'}, (True or False), (+value), 'string', b'bytes') or None
57 [1, 2, 3, 4, 5, 6, 7, 8, 9, (10 or A), (11 or B), (12 or C)]
63 [this_is_a_very_long_variable_which_will_force_a_delimiter_split, element, another, *more]
64 {i for i in (1, 2, 3)}
65 {(i ** 2) for i in (1, 2, 3)}
66 {(i ** 2) for i, _ in ((1, 'a'), (2, 'b'), (3, 'c'))}
67 {((i ** 2) + j) for i in (1, 2, 3) for j in (1, 2, 3)}
68 [i for i in (1, 2, 3)]
69 [(i ** 2) for i in (1, 2, 3)]
70 [(i ** 2) for i, _ in ((1, 'a'), (2, 'b'), (3, 'c'))]
71 [((i ** 2) + j) for i in (1, 2, 3) for j in (1, 2, 3)]
72 {i: 0 for i in (1, 2, 3)}
73 {i: j for i, j in ((1, 'a'), (2, 'b'), (3, 'c'))}
74 {a: b * 2 for a, b in dictionary.items()}
75 {a: b * -2 for a, b in dictionary.items()}
76 {k: v for k, v in this_is_a_very_long_variable_which_will_cause_a_trailing_comma_which_breaks_the_comprehension}
77 Python3 > Python2 > COBOL
82 call(arg, kwarg='hey')
83 call(arg, another, kwarg='hey', **kwargs)
84 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(**self.screen_kwargs)
88 call(b, **self.screen_kwargs)
97 tuple[str, int, float, dict[str, int],]
98 very_long_variable_name_filters: t.List[
99 t.Tuple[str, t.Union[str, t.List[t.Optional[str]]]],
119 numpy[:, (0, 1, 2, 5)]
127 (str or None) if (sys.version_info[0] > (3,)) else (str or bytes or None)
128 {'2.7': dead, '3.7': long_live or die_hard}
129 {'2.7', '3.6', '3.7', '3.8', '3.9', '4.0' if gilectomy else '3.10'}
130 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10 or A, 11 or B, 12 or C]
134 (i for i in (1, 2, 3))
135 ((i ** 2) for i in (1, 2, 3))
136 ((i ** 2) for i, _ in ((1, 'a'), (2, 'b'), (3, 'c')))
137 (((i ** 2) + j) for i in (1, 2, 3) for j in (1, 2, 3))
139 {"id": "1","type": "type","started_at": now(),"ended_at": now() + timedelta(days=10),"priority": 1,"import_session_id": 1,**kwargs}
145 what_is_up_with_those_new_coord_names = (coord_names + set(vars_to_create)) + set(vars_to_remove)
146 what_is_up_with_those_new_coord_names = (coord_names | set(vars_to_create)) - set(vars_to_remove)
147 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()
149 authors.łukasz.say_thanks()
151 A: 0.25 * (10.0 / 12),
152 B: 0.1 * (10.0 / 12),
153 C: 0.1 * (10.0 / 12),
154 D: 0.1 * (10.0 / 12),
158 yield from outside_of_generator
162 await some.complicated[0].call(with_args=(True or (1 is not 1)))
164 print(**{1: 3} if False else {x: x for x in range(3)})
166 assert(not Test),("Short message")
167 assert this is ComplexTest and not requirements.fit_in_a_single_line(force=False), "Short message"
168 assert(((parens is TooMany)))
169 for x, in (1,), (2,), (3,): ...
171 for z in (i for i in (1, 2, 3)): ...
172 for i in (call()): ...
173 for j in (1 + (2 + 3)): ...
174 while(this and that): ...
176 threading.current_thread() != threading.main_thread() and
177 threading.current_thread() != threading.main_thread() or
178 signal.getsignal(signal.SIGINT) != signal.default_int_handler
182 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa |
183 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
187 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa &
188 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
192 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +
193 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
197 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -
198 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
202 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa *
203 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
207 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa /
208 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
212 ~ 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
216 ~ 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
220 ~ 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
224 # standalone comment at ENDMARKER
241 True or False or None
243 True and False and None
244 (Name1 and Name2) or Name3
245 Name1 and Name2 or Name3
246 Name1 or (Name2 and Name3)
247 Name1 or Name2 and Name3
248 (Name1 and Name2) or (Name3 and Name4)
249 Name1 and Name2 or Name3 and Name4
250 Name1 or (Name2 and Name3) or Name4
251 Name1 or Name2 and Name3 or Name4
255 1 + v2 - v3 * 4 ^ 5 ** v6 / 7 // 8
256 ((1 + v2) - (v3 * 4)) ^ (((5 ** v6) / 7) // 8)
261 ~int and not v1 ^ 123 + v2 | True
262 (~int) and (not ((v1 ^ (123 + v2)) | True))
263 flags & ~select.EPOLLIN and waiters.write_task is not None
266 lambda a, b, c=True: a
267 lambda a, b, c=True, *, d=(1 << v2), e="str": a
268 lambda a, b, c=True, *vararg, d=(v1 << 2), e="str", **kwargs: a + b
270 lambda port_id, ignore_missing: {"port1": port1_resource, "port2": port2_resource}[
275 str or None if True else str or bytes or None
276 (str or None) if True else (str or bytes or None)
277 str or None if (1 if True else 2) else str or bytes or None
278 (str or None) if (1 if True else 2) else (str or bytes or None)
280 (super_long_variable_name or None)
281 if (1 if super_long_test_name else 2)
282 else (str or bytes or None)
284 {"2.7": dead, "3.7": (long_live or die_hard)}
285 {"2.7": dead, "3.7": (long_live or die_hard), **{"3.6": verygood}}
287 {"2.7", "3.6", "3.7", "3.8", "3.9", ("4.0" if gilectomy else "3.10")}
288 ({"a": "b"}, (True or False), (+value), "string", b"bytes") or None
294 [1, 2, 3, 4, 5, 6, 7, 8, 9, (10 or A), (11 or B), (12 or C)]
301 this_is_a_very_long_variable_which_will_force_a_delimiter_split,
306 {i for i in (1, 2, 3)}
307 {(i ** 2) for i in (1, 2, 3)}
308 {(i ** 2) for i, _ in ((1, "a"), (2, "b"), (3, "c"))}
309 {((i ** 2) + j) for i in (1, 2, 3) for j in (1, 2, 3)}
310 [i for i in (1, 2, 3)]
311 [(i ** 2) for i in (1, 2, 3)]
312 [(i ** 2) for i, _ in ((1, "a"), (2, "b"), (3, "c"))]
313 [((i ** 2) + j) for i in (1, 2, 3) for j in (1, 2, 3)]
314 {i: 0 for i in (1, 2, 3)}
315 {i: j for i, j in ((1, "a"), (2, "b"), (3, "c"))}
316 {a: b * 2 for a, b in dictionary.items()}
317 {a: b * -2 for a, b in dictionary.items()}
320 for k, v in this_is_a_very_long_variable_which_will_cause_a_trailing_comma_which_breaks_the_comprehension
322 Python3 > Python2 > COBOL
327 call(arg, kwarg="hey")
328 call(arg, another, kwarg="hey", **kwargs)
330 this_is_a_very_long_variable_which_will_force_a_delimiter_split,
335 ) # note: no trailing comma pre-3.6
337 call(a, *gidgets[:2])
338 call(**self.screen_kwargs)
339 call(b, **self.screen_kwargs)
348 tuple[str, int, float, dict[str, int]]
349 very_long_variable_name_filters: t.List[
350 t.Tuple[str, t.Union[str, t.List[t.Optional[str]]]],
370 numpy[:, (0, 1, 2, 5)]
378 (str or None) if (sys.version_info[0] > (3,)) else (str or bytes or None)
379 {"2.7": dead, "3.7": long_live or die_hard}
380 {"2.7", "3.6", "3.7", "3.8", "3.9", "4.0" if gilectomy else "3.10"}
381 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10 or A, 11 or B, 12 or C]
385 (i for i in (1, 2, 3))
386 ((i ** 2) for i in (1, 2, 3))
387 ((i ** 2) for i, _ in ((1, "a"), (2, "b"), (3, "c")))
388 (((i ** 2) + j) for i in (1, 2, 3) for j in (1, 2, 3))
394 "ended_at": now() + timedelta(days=10),
396 "import_session_id": 1,
404 what_is_up_with_those_new_coord_names = (coord_names + set(vars_to_create)) + set(
407 what_is_up_with_those_new_coord_names = (coord_names | set(vars_to_create)) - set(
410 result = session.query(models.Customer.id).filter(
411 models.Customer.account_id == account_id, models.Customer.email == email_address
413 models.Customer.id.asc()
416 authors.łukasz.say_thanks()
418 A: 0.25 * (10.0 / 12),
419 B: 0.1 * (10.0 / 12),
420 C: 0.1 * (10.0 / 12),
421 D: 0.1 * (10.0 / 12),
426 yield from outside_of_generator
431 await some.complicated[0].call(with_args=(True or (1 is not 1)))
435 print(**{1: 3} if False else {x: x for x in range(3)})
437 assert not Test, "Short message"
439 this is ComplexTest and not requirements.fit_in_a_single_line(force=False)
441 assert parens is TooMany
442 for (x,) in (1,), (2,), (3,):
446 for z in (i for i in (1, 2, 3)):
450 for j in 1 + (2 + 3):
455 threading.current_thread() != threading.main_thread()
456 and threading.current_thread() != threading.main_thread()
457 or signal.getsignal(signal.SIGINT) != signal.default_int_handler
461 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
462 | aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
466 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
467 & aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
471 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
472 + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
476 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
477 - aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
481 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
482 * aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
486 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
487 / aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
491 ~aaaa.a + aaaa.b - aaaa.c * aaaa.d / aaaa.e
492 | aaaa.f & aaaa.g % aaaa.h ^ aaaa.i << aaaa.k >> aaaa.l ** aaaa.m // aaaa.n
496 ~aaaaaaaa.a + aaaaaaaa.b - aaaaaaaa.c @ aaaaaaaa.d / aaaaaaaa.e
497 | aaaaaaaa.f & aaaaaaaa.g % aaaaaaaa.h
498 ^ aaaaaaaa.i << aaaaaaaa.k >> aaaaaaaa.l ** aaaaaaaa.m // aaaaaaaa.n
504 - aaaaaaaaaaaaaaaa.c * aaaaaaaaaaaaaaaa.d @ aaaaaaaaaaaaaaaa.e
505 | aaaaaaaaaaaaaaaa.f & aaaaaaaaaaaaaaaa.g % aaaaaaaaaaaaaaaa.h
507 << aaaaaaaaaaaaaaaa.k
508 >> aaaaaaaaaaaaaaaa.l ** aaaaaaaaaaaaaaaa.m // aaaaaaaaaaaaaaaa.n
512 # standalone comment at ENDMARKER