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
41 str or None if True else str or bytes or None
42 (str or None) if True else (str or bytes or None)
43 str or None if (1 if True else 2) else str or bytes or None
44 (str or None) if (1 if True else 2) else (str or bytes or None)
45 {'2.7': dead, '3.7': (long_live or die_hard)}
46 {'2.7': dead, '3.7': (long_live or die_hard), **{'3.6': verygood}}
48 {'2.7', '3.6', '3.7', '3.8', '3.9', ('4.0' if gilectomy else '3.10')}
49 ({'a': 'b'}, (True or False), (+value), 'string', b'bytes') or None
55 [1, 2, 3, 4, 5, 6, 7, 8, 9, (10 or A), (11 or B), (12 or C)]
57 {i for i in (1, 2, 3)}
58 {(i ** 2) for i in (1, 2, 3)}
59 {(i ** 2) for i, _ in ((1, 'a'), (2, 'b'), (3, 'c'))}
60 {((i ** 2) + j) for i in (1, 2, 3) for j in (1, 2, 3)}
61 [i for i in (1, 2, 3)]
62 [(i ** 2) for i in (1, 2, 3)]
63 [(i ** 2) for i, _ in ((1, 'a'), (2, 'b'), (3, 'c'))]
64 [((i ** 2) + j) for i in (1, 2, 3) for j in (1, 2, 3)]
65 {i: 0 for i in (1, 2, 3)}
66 {i: j for i, j in ((1, 'a'), (2, 'b'), (3, 'c'))}
67 {a: b * 2 for a, b in dictionary.items()}
68 {a: b * -2 for a, b in dictionary.items()}
69 {k: v for k, v in this_is_a_very_long_variable_which_will_cause_a_trailing_comma_which_breaks_the_comprehension}
70 Python3 > Python2 > COBOL
75 call(arg, kwarg='hey')
76 call(arg, another, kwarg='hey', **kwargs)
77 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
79 call(**self.screen_kwargs)
88 tuple[str, int, float, dict[str, int],]
89 very_long_variable_name_filters: t.List[
90 t.Tuple[str, t.Union[str, t.List[t.Optional[str]]]],
110 numpy[:, (0, 1, 2, 5)]
118 (str or None) if (sys.version_info[0] > (3,)) else (str or bytes or None)
119 {'2.7': dead, '3.7': long_live or die_hard}
120 {'2.7', '3.6', '3.7', '3.8', '3.9', '4.0' if gilectomy else '3.10'}
121 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10 or A, 11 or B, 12 or C]
125 (i for i in (1, 2, 3))
126 ((i ** 2) for i in (1, 2, 3))
127 ((i ** 2) for i, _ in ((1, 'a'), (2, 'b'), (3, 'c')))
128 (((i ** 2) + j) for i in (1, 2, 3) for j in (1, 2, 3))
135 what_is_up_with_those_new_coord_names = (coord_names + set(vars_to_create)) + set(vars_to_remove)
136 what_is_up_with_those_new_coord_names = (coord_names | set(vars_to_create)) - set(vars_to_remove)
137 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()
139 authors.łukasz.say_thanks()
142 yield from outside_of_generator
146 await some.complicated[0].call(with_args=(True or (1 is not 1)))
149 threading.current_thread() != threading.main_thread() and
150 threading.current_thread() != threading.main_thread() or
151 signal.getsignal(signal.SIGINT) != signal.default_int_handler
155 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa |
156 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
160 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa &
161 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
165 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +
166 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
170 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -
171 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
175 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa *
176 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
180 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa /
181 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
185 # standalone comment at ENDMARKER
202 True or False or None
204 True and False and None
205 (Name1 and Name2) or Name3
206 Name1 and Name2 or Name3
207 Name1 or (Name2 and Name3)
208 Name1 or Name2 and Name3
209 (Name1 and Name2) or (Name3 and Name4)
210 Name1 and Name2 or Name3 and Name4
211 Name1 or (Name2 and Name3) or Name4
212 Name1 or Name2 and Name3 or Name4
216 1 + v2 - v3 * 4 ^ 5 ** v6 / 7 // 8
217 ((1 + v2) - (v3 * 4)) ^ (((5 ** v6) / 7) // 8)
222 ~int and not v1 ^ 123 + v2 | True
223 (~int) and (not ((v1 ^ (123 + v2)) | True))
224 flags & ~select.EPOLLIN and waiters.write_task is not None
227 lambda a, b, c=True: a
228 lambda a, b, c=True, *, d=(1 << v2), e="str": a
229 lambda a, b, c=True, *vararg, d=(v1 << 2), e="str", **kwargs: a + b
231 str or None if True else str or bytes or None
232 (str or None) if True else (str or bytes or None)
233 str or None if (1 if True else 2) else str or bytes or None
234 (str or None) if (1 if True else 2) else (str or bytes or None)
235 {"2.7": dead, "3.7": (long_live or die_hard)}
236 {"2.7": dead, "3.7": (long_live or die_hard), **{"3.6": verygood}}
238 {"2.7", "3.6", "3.7", "3.8", "3.9", ("4.0" if gilectomy else "3.10")}
239 ({"a": "b"}, (True or False), (+value), "string", b"bytes") or None
245 [1, 2, 3, 4, 5, 6, 7, 8, 9, (10 or A), (11 or B), (12 or C)]
247 {i for i in (1, 2, 3)}
248 {(i ** 2) for i in (1, 2, 3)}
249 {(i ** 2) for i, _ in ((1, "a"), (2, "b"), (3, "c"))}
250 {((i ** 2) + j) for i in (1, 2, 3) for j in (1, 2, 3)}
251 [i for i in (1, 2, 3)]
252 [(i ** 2) for i in (1, 2, 3)]
253 [(i ** 2) for i, _ in ((1, "a"), (2, "b"), (3, "c"))]
254 [((i ** 2) + j) for i in (1, 2, 3) for j in (1, 2, 3)]
255 {i: 0 for i in (1, 2, 3)}
256 {i: j for i, j in ((1, "a"), (2, "b"), (3, "c"))}
257 {a: b * 2 for a, b in dictionary.items()}
258 {a: b * -2 for a, b in dictionary.items()}
261 for k, v in this_is_a_very_long_variable_which_will_cause_a_trailing_comma_which_breaks_the_comprehension
263 Python3 > Python2 > COBOL
268 call(arg, kwarg="hey")
269 call(arg, another, kwarg="hey", **kwargs)
271 this_is_a_very_long_variable_which_will_force_a_delimiter_split,
276 ) # note: no trailing comma pre-3.6
278 call(**self.screen_kwargs)
287 tuple[str, int, float, dict[str, int]]
288 very_long_variable_name_filters: t.List[
289 t.Tuple[str, t.Union[str, t.List[t.Optional[str]]]],
309 numpy[:, (0, 1, 2, 5)]
317 (str or None) if (sys.version_info[0] > (3,)) else (str or bytes or None)
318 {"2.7": dead, "3.7": long_live or die_hard}
319 {"2.7", "3.6", "3.7", "3.8", "3.9", "4.0" if gilectomy else "3.10"}
320 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10 or A, 11 or B, 12 or C]
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))
334 what_is_up_with_those_new_coord_names = (coord_names + set(vars_to_create)) + set(
337 what_is_up_with_those_new_coord_names = (coord_names | set(vars_to_create)) - set(
340 result = session.query(models.Customer.id).filter(
341 models.Customer.account_id == account_id, models.Customer.email == email_address
343 models.Customer.id.asc()
346 authors.łukasz.say_thanks()
350 yield from outside_of_generator
356 await some.complicated[0].call(with_args=(True or (1 is not 1)))
360 threading.current_thread() != threading.main_thread()
361 and threading.current_thread() != threading.main_thread()
362 or signal.getsignal(signal.SIGINT) != signal.default_int_handler
367 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
368 | aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
373 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
374 & aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
379 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
380 + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
385 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
386 - aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
391 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
392 * aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
397 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
398 / aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
403 # standalone comment at ENDMARKER