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()
140 yield from outside_of_generator
144 await some.complicated[0].call(with_args=(True or (1 is not 1)))
147 threading.current_thread() != threading.main_thread() and
148 threading.current_thread() != threading.main_thread() or
149 signal.getsignal(signal.SIGINT) != signal.default_int_handler
153 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa |
154 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
158 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa &
159 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
163 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +
164 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
168 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -
169 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
173 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa *
174 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
178 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa /
179 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
183 # standalone comment at ENDMARKER
200 True or False or None
202 True and False and None
203 (Name1 and Name2) or Name3
204 Name1 and Name2 or Name3
205 Name1 or (Name2 and Name3)
206 Name1 or Name2 and Name3
207 (Name1 and Name2) or (Name3 and Name4)
208 Name1 and Name2 or Name3 and Name4
209 Name1 or (Name2 and Name3) or Name4
210 Name1 or Name2 and Name3 or Name4
214 1 + v2 - v3 * 4 ^ 5 ** v6 / 7 // 8
215 ((1 + v2) - (v3 * 4)) ^ (((5 ** v6) / 7) // 8)
220 ~int and not v1 ^ 123 + v2 | True
221 (~int) and (not ((v1 ^ (123 + v2)) | True))
222 flags & ~select.EPOLLIN and waiters.write_task is not None
225 lambda a, b, c=True: a
226 lambda a, b, c=True, *, d=(1 << v2), e="str": a
227 lambda a, b, c=True, *vararg, d=(v1 << 2), e="str", **kwargs: a + b
229 str or None if True else str or bytes or None
230 (str or None) if True else (str or bytes or None)
231 str or None if (1 if True else 2) else str or bytes or None
232 (str or None) if (1 if True else 2) else (str or bytes or None)
233 {"2.7": dead, "3.7": (long_live or die_hard)}
234 {"2.7": dead, "3.7": (long_live or die_hard), **{"3.6": verygood}}
236 {"2.7", "3.6", "3.7", "3.8", "3.9", ("4.0" if gilectomy else "3.10")}
237 ({"a": "b"}, (True or False), (+value), "string", b"bytes") or None
243 [1, 2, 3, 4, 5, 6, 7, 8, 9, (10 or A), (11 or B), (12 or C)]
245 {i for i in (1, 2, 3)}
246 {(i ** 2) for i in (1, 2, 3)}
247 {(i ** 2) for i, _ in ((1, "a"), (2, "b"), (3, "c"))}
248 {((i ** 2) + j) for i in (1, 2, 3) for j in (1, 2, 3)}
249 [i for i in (1, 2, 3)]
250 [(i ** 2) for i in (1, 2, 3)]
251 [(i ** 2) for i, _ in ((1, "a"), (2, "b"), (3, "c"))]
252 [((i ** 2) + j) for i in (1, 2, 3) for j in (1, 2, 3)]
253 {i: 0 for i in (1, 2, 3)}
254 {i: j for i, j in ((1, "a"), (2, "b"), (3, "c"))}
255 {a: b * 2 for a, b in dictionary.items()}
256 {a: b * -2 for a, b in dictionary.items()}
259 for k, v in this_is_a_very_long_variable_which_will_cause_a_trailing_comma_which_breaks_the_comprehension
261 Python3 > Python2 > COBOL
266 call(arg, kwarg="hey")
267 call(arg, another, kwarg="hey", **kwargs)
269 this_is_a_very_long_variable_which_will_force_a_delimiter_split,
274 ) # note: no trailing comma pre-3.6
276 call(**self.screen_kwargs)
285 tuple[str, int, float, dict[str, int]]
286 very_long_variable_name_filters: t.List[
287 t.Tuple[str, t.Union[str, t.List[t.Optional[str]]]],
307 numpy[:, (0, 1, 2, 5)]
315 (str or None) if (sys.version_info[0] > (3,)) else (str or bytes or None)
316 {"2.7": dead, "3.7": long_live or die_hard}
317 {"2.7", "3.6", "3.7", "3.8", "3.9", "4.0" if gilectomy else "3.10"}
318 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10 or A, 11 or B, 12 or C]
322 (i for i in (1, 2, 3))
323 ((i ** 2) for i in (1, 2, 3))
324 ((i ** 2) for i, _ in ((1, "a"), (2, "b"), (3, "c")))
325 (((i ** 2) + j) for i in (1, 2, 3) for j in (1, 2, 3))
332 what_is_up_with_those_new_coord_names = (coord_names + set(vars_to_create)) + set(
335 what_is_up_with_those_new_coord_names = (coord_names | set(vars_to_create)) - set(
338 result = session.query(models.Customer.id).filter(
339 models.Customer.account_id == account_id, models.Customer.email == email_address
341 models.Customer.id.asc()
346 yield from outside_of_generator
352 await some.complicated[0].call(with_args=(True or (1 is not 1)))
356 threading.current_thread() != threading.main_thread()
357 and threading.current_thread() != threading.main_thread()
358 or signal.getsignal(signal.SIGINT) != signal.default_int_handler
363 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
364 | aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
369 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
370 & aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
375 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
376 + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
381 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
382 - aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
387 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
388 * aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
393 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
394 / aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
399 # standalone comment at ENDMARKER