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)]
56 {i for i in (1, 2, 3)}
57 {(i ** 2) for i in (1, 2, 3)}
58 {(i ** 2) for i, _ in ((1, 'a'), (2, 'b'), (3, 'c'))}
59 {((i ** 2) + j) for i in (1, 2, 3) for j in (1, 2, 3)}
60 [i for i in (1, 2, 3)]
61 [(i ** 2) for i in (1, 2, 3)]
62 [(i ** 2) for i, _ in ((1, 'a'), (2, 'b'), (3, 'c'))]
63 [((i ** 2) + j) for i in (1, 2, 3) for j in (1, 2, 3)]
64 {i: 0 for i in (1, 2, 3)}
65 {i: j for i, j in ((1, 'a'), (2, 'b'), (3, 'c'))}
66 {k: v for k, v in this_is_a_very_long_variable_which_will_cause_a_trailing_comma_which_breaks_the_comprehension}
67 Python3 > Python2 > COBOL
72 call(arg, kwarg='hey')
73 call(arg, another, kwarg='hey', **kwargs)
74 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
84 tuple[str, int, float, dict[str, int]]
103 numpy[:, (0, 1, 2, 5)]
111 (str or None) if (sys.version_info[0] > (3,)) else (str or bytes or None)
112 {'2.7': dead, '3.7': long_live or die_hard}
113 {'2.7', '3.6', '3.7', '3.8', '3.9', '4.0' if gilectomy else '3.10'}
114 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10 or A, 11 or B, 12 or C]
118 (i for i in (1, 2, 3))
119 ((i ** 2) for i in (1, 2, 3))
120 ((i ** 2) for i, _ in ((1, 'a'), (2, 'b'), (3, 'c')))
121 (((i ** 2) + j) for i in (1, 2, 3) for j in (1, 2, 3))
128 what_is_up_with_those_new_coord_names = (coord_names + set(vars_to_create)) + set(vars_to_remove)
129 what_is_up_with_those_new_coord_names = (coord_names | set(vars_to_create)) - set(vars_to_remove)
130 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()
133 yield from outside_of_generator
137 await some.complicated[0].call(with_args=(True or (1 is not 1)))
140 threading.current_thread() != threading.main_thread() and
141 threading.current_thread() != threading.main_thread() or
142 signal.getsignal(signal.SIGINT) != signal.default_int_handler
146 # standalone comment at ENDMARKER
163 True or False or None
165 True and False and None
166 (Name1 and Name2) or Name3
167 Name1 and Name2 or Name3
168 Name1 or (Name2 and Name3)
169 Name1 or Name2 and Name3
170 (Name1 and Name2) or (Name3 and Name4)
171 Name1 and Name2 or Name3 and Name4
172 Name1 or (Name2 and Name3) or Name4
173 Name1 or Name2 and Name3 or Name4
177 1 + v2 - v3 * 4 ^ 5 ** v6 / 7 // 8
178 ((1 + v2) - (v3 * 4)) ^ (((5 ** v6) / 7) // 8)
183 ~int and not v1 ^ 123 + v2 | True
184 (~int) and (not ((v1 ^ (123 + v2)) | True))
185 flags & ~select.EPOLLIN and waiters.write_task is not None
188 lambda a, b, c=True: a
189 lambda a, b, c=True, *, d=(1 << v2), e='str': a
190 lambda a, b, c=True, *vararg, d=(v1 << 2), e='str', **kwargs: a + b
192 str or None if True else str or bytes or None
193 (str or None) if True else (str or bytes or None)
194 str or None if (1 if True else 2) else str or bytes or None
195 (str or None) if (1 if True else 2) else (str or bytes or None)
196 {'2.7': dead, '3.7': (long_live or die_hard)}
197 {'2.7': dead, '3.7': (long_live or die_hard), **{'3.6': verygood}}
199 {'2.7', '3.6', '3.7', '3.8', '3.9', ('4.0' if gilectomy else '3.10')}
200 ({'a': 'b'}, (True or False), (+value), 'string', b'bytes') or None
206 [1, 2, 3, 4, 5, 6, 7, 8, 9, (10 or A), (11 or B), (12 or C)]
207 {i for i in (1, 2, 3)}
208 {(i ** 2) for i in (1, 2, 3)}
209 {(i ** 2) for i, _ in ((1, 'a'), (2, 'b'), (3, 'c'))}
210 {((i ** 2) + j) for i in (1, 2, 3) for j in (1, 2, 3)}
211 [i for i in (1, 2, 3)]
212 [(i ** 2) for i in (1, 2, 3)]
213 [(i ** 2) for i, _ in ((1, 'a'), (2, 'b'), (3, 'c'))]
214 [((i ** 2) + j) for i in (1, 2, 3) for j in (1, 2, 3)]
215 {i: 0 for i in (1, 2, 3)}
216 {i: j for i, j in ((1, 'a'), (2, 'b'), (3, 'c'))}
219 for k, v in this_is_a_very_long_variable_which_will_cause_a_trailing_comma_which_breaks_the_comprehension
221 Python3 > Python2 > COBOL
226 call(arg, kwarg='hey')
227 call(arg, another, kwarg='hey', **kwargs)
229 this_is_a_very_long_variable_which_will_force_a_delimiter_split,
234 ) # note: no trailing comma pre-3.6
244 tuple[str, int, float, dict[str, int]]
263 numpy[:, (0, 1, 2, 5)]
271 (str or None) if (sys.version_info[0] > (3,)) else (str or bytes or None)
272 {'2.7': dead, '3.7': long_live or die_hard}
273 {'2.7', '3.6', '3.7', '3.8', '3.9', '4.0' if gilectomy else '3.10'}
274 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10 or A, 11 or B, 12 or C]
278 (i for i in (1, 2, 3))
279 ((i ** 2) for i in (1, 2, 3))
280 ((i ** 2) for i, _ in ((1, 'a'), (2, 'b'), (3, 'c')))
281 (((i ** 2) + j) for i in (1, 2, 3) for j in (1, 2, 3))
288 what_is_up_with_those_new_coord_names = (coord_names + set(vars_to_create)) + set(
291 what_is_up_with_those_new_coord_names = (coord_names | set(vars_to_create)) - set(
294 result = session.query(models.Customer.id).filter(
295 models.Customer.account_id == account_id, models.Customer.email == email_address
297 models.Customer.id.asc()
302 yield from outside_of_generator
308 await some.complicated[0].call(with_args=(True or (1 is not 1)))
312 threading.current_thread() != threading.main_thread()
313 and threading.current_thread() != threading.main_thread()
314 or signal.getsignal(signal.SIGINT) != signal.default_int_handler
319 # standalone comment at ENDMARKER