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.
2 +++ <stdin> (formatted)
18 ~int and not v1 ^ 123 + v2 | True
19 (~int) and (not ((v1 ^ (123 + v2)) | True))
20 -flags & ~ select.EPOLLIN and waiters.write_task is not None
21 +flags & ~select.EPOLLIN and waiters.write_task is not None
24 lambda a, b, c=True: a
25 -lambda a, b, c=True, *, d=(1 << v2), e='str': a
26 -lambda a, b, c=True, *vararg, d=(v1 << 2), e='str', **kwargs: a + b
27 +lambda a, b, c=True, *, d=(1 << v2), e="str": a
28 +lambda a, b, c=True, *vararg, d=(v1 << 2), e="str", **kwargs: a + b
29 manylambdas = lambda x=lambda y=lambda z=1: z: y(): x()
30 -foo = (lambda port_id, ignore_missing: {"port1": port1_resource, "port2": port2_resource}[port_id])
31 +foo = lambda port_id, ignore_missing: {
32 + "port1": port1_resource, "port2": port2_resource
35 str or None if True else str or bytes or None
36 (str or None) if True else (str or bytes or None)
37 str or None if (1 if True else 2) else str or bytes or None
38 (str or None) if (1 if True else 2) else (str or bytes or None)
39 -((super_long_variable_name or None) if (1 if super_long_test_name else 2) else (str or bytes or None))
40 -{'2.7': dead, '3.7': (long_live or die_hard)}
41 -{'2.7': dead, '3.7': (long_live or die_hard), **{'3.6': verygood}}
43 + (super_long_variable_name or None)
44 + if (1 if super_long_test_name else 2)
45 + 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
52 +{"2.7", "3.6", "3.7", "3.8", "3.9", ("4.0" if gilectomy else "3.10")}
53 +({"a": "b"}, (True or False), (+value), "string", b"bytes") or None
59 [1, 2, 3, 4, 5, 6, 7, 8, 9, (10 or A), (11 or B), (12 or C)]
66 -[this_is_a_very_long_variable_which_will_force_a_delimiter_split, element, another, *more]
70 + this_is_a_very_long_variable_which_will_force_a_delimiter_split,
75 {i for i in (1, 2, 3)}
76 {(i ** 2) for i in (1, 2, 3)}
77 -{(i ** 2) for i, _ in ((1, 'a'), (2, 'b'), (3, 'c'))}
78 +{(i ** 2) for i, _ in ((1, "a"), (2, "b"), (3, "c"))}
79 {((i ** 2) + j) for i in (1, 2, 3) for j in (1, 2, 3)}
80 [i for i in (1, 2, 3)]
81 [(i ** 2) for i in (1, 2, 3)]
82 -[(i ** 2) for i, _ in ((1, 'a'), (2, 'b'), (3, 'c'))]
83 +[(i ** 2) for i, _ in ((1, "a"), (2, "b"), (3, "c"))]
84 [((i ** 2) + j) for i in (1, 2, 3) for j in (1, 2, 3)]
85 {i: 0 for i in (1, 2, 3)}
86 -{i: j for i, j in ((1, 'a'), (2, 'b'), (3, 'c'))}
87 +{i: j for i, j in ((1, "a"), (2, "b"), (3, "c"))}
88 {a: b * 2 for a, b in dictionary.items()}
89 {a: b * -2 for a, b in dictionary.items()}
90 -{k: v for k, v in this_is_a_very_long_variable_which_will_cause_a_trailing_comma_which_breaks_the_comprehension}
93 + for k, v in this_is_a_very_long_variable_which_will_cause_a_trailing_comma_which_breaks_the_comprehension
95 Python3 > Python2 > COBOL
100 -call(arg, kwarg='hey')
101 -call(arg, another, kwarg='hey', **kwargs)
102 -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
104 +call(arg, kwarg="hey")
105 +call(arg, another, kwarg="hey", **kwargs)
107 + this_is_a_very_long_variable_which_will_force_a_delimiter_split,
112 +) # note: no trailing comma pre-3.6
114 call(a, *gidgets[:2])
115 call(**self.screen_kwargs)
116 call(b, **self.screen_kwargs)
124 -tuple[str, int, float, dict[str, int],]
125 +tuple[str, int, float, dict[str, int]]
126 very_long_variable_name_filters: t.List[
127 t.Tuple[str, t.Union[str, t.List[t.Optional[str]]]],
131 @@ -124,107 +144,154 @@
136 (str or None) if (sys.version_info[0] > (3,)) else (str or bytes or None)
137 -{'2.7': dead, '3.7': long_live or die_hard}
138 -{'2.7', '3.6', '3.7', '3.8', '3.9', '4.0' if gilectomy else '3.10'}
139 +{"2.7": dead, "3.7": long_live or die_hard}
140 +{"2.7", "3.6", "3.7", "3.8", "3.9", "4.0" if gilectomy else "3.10"}
141 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10 or A, 11 or B, 12 or C]
145 (i for i in (1, 2, 3))
146 ((i ** 2) for i in (1, 2, 3))
147 -((i ** 2) for i, _ in ((1, 'a'), (2, 'b'), (3, 'c')))
148 +((i ** 2) for i, _ in ((1, "a"), (2, "b"), (3, "c")))
149 (((i ** 2) + j) for i in (1, 2, 3) for j in (1, 2, 3))
151 -{"id": "1","type": "type","started_at": now(),"ended_at": now() + timedelta(days=10),"priority": 1,"import_session_id": 1,**kwargs}
155 + "started_at": now(),
156 + "ended_at": now() + timedelta(days=10),
158 + "import_session_id": 1,
167 -what_is_up_with_those_new_coord_names = (coord_names + set(vars_to_create)) + set(vars_to_remove)
168 -what_is_up_with_those_new_coord_names = (coord_names | set(vars_to_create)) - set(vars_to_remove)
169 -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()
170 +what_is_up_with_those_new_coord_names = (coord_names + set(vars_to_create)) + set(
173 +what_is_up_with_those_new_coord_names = (coord_names | set(vars_to_create)) - set(
176 +result = session.query(models.Customer.id).filter(
177 + models.Customer.account_id == account_id, models.Customer.email == email_address
178 +).order_by(models.Customer.id.asc()).all()
180 authors.łukasz.say_thanks()
182 A: 0.25 * (10.0 / 12),
183 B: 0.1 * (10.0 / 12),
184 C: 0.1 * (10.0 / 12),
185 D: 0.1 * (10.0 / 12),
190 yield from outside_of_generator
195 await some.complicated[0].call(with_args=(True or (1 is not 1)))
200 print(**{1: 3} if False else {x: x for x in range(3)})
201 -print(* lambda x: x)
202 -assert(not Test),("Short message")
203 -assert this is ComplexTest and not requirements.fit_in_a_single_line(force=False), "Short message"
204 -assert(((parens is TooMany)))
205 -for x, in (1,), (2,), (3,): ...
207 -for z in (i for i in (1, 2, 3)): ...
208 -for i in (call()): ...
209 -for j in (1 + (2 + 3)): ...
210 -while(this and that): ...
211 -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
212 -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
213 -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
214 -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
216 - threading.current_thread() != threading.main_thread() and
217 - threading.current_thread() != threading.main_thread() or
218 - signal.getsignal(signal.SIGINT) != signal.default_int_handler
222 - aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa |
223 - aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
227 - aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa &
228 - aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
232 - aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +
233 - aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
237 - aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -
238 - aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
242 - aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa *
243 - aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
247 - aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa /
248 - aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
252 - ~ 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
256 - ~ 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
260 - ~ 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
262 +assert not Test, "Short message"
263 +assert this is ComplexTest and not requirements.fit_in_a_single_line(
266 +assert parens is TooMany
267 +for (x,) in (1,), (2,), (3,):
271 +for z in (i for i in (1, 2, 3)):
275 +for j in 1 + (2 + 3):
277 +while this and that:
280 + aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii.jjjj.kkkk.llll.mmmm.nnnn.oooo.pppp
281 + in qqqq.rrrr.ssss.tttt.uuuu.vvvv.xxxx.yyyy.zzzz
284 + aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii.jjjj.kkkk.llll.mmmm.nnnn.oooo.pppp
285 + not in qqqq.rrrr.ssss.tttt.uuuu.vvvv.xxxx.yyyy.zzzz
288 + aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii.jjjj.kkkk.llll.mmmm.nnnn.oooo.pppp
289 + is qqqq.rrrr.ssss.tttt.uuuu.vvvv.xxxx.yyyy.zzzz
292 + aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii.jjjj.kkkk.llll.mmmm.nnnn.oooo.pppp
293 + is not qqqq.rrrr.ssss.tttt.uuuu.vvvv.xxxx.yyyy.zzzz
296 + threading.current_thread() != threading.main_thread()
297 + and threading.current_thread() != threading.main_thread()
298 + or signal.getsignal(signal.SIGINT) != signal.default_int_handler
302 + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
303 + | aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
307 + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
308 + & aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
312 + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
313 + + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
317 + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
318 + - aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
322 + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
323 + * aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
327 + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
328 + / aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
332 + ~aaaa.a + aaaa.b - aaaa.c * aaaa.d / aaaa.e
333 + | aaaa.f & aaaa.g % aaaa.h ^ aaaa.i << aaaa.k >> aaaa.l ** aaaa.m // aaaa.n
337 + ~aaaaaaaa.a + aaaaaaaa.b - aaaaaaaa.c @ aaaaaaaa.d / aaaaaaaa.e
338 + | aaaaaaaa.f & aaaaaaaa.g % aaaaaaaa.h
339 + ^ aaaaaaaa.i << aaaaaaaa.k >> aaaaaaaa.l ** aaaaaaaa.m // aaaaaaaa.n
343 + ~aaaaaaaaaaaaaaaa.a
344 + + aaaaaaaaaaaaaaaa.b
345 + - aaaaaaaaaaaaaaaa.c * aaaaaaaaaaaaaaaa.d @ aaaaaaaaaaaaaaaa.e
346 + | aaaaaaaaaaaaaaaa.f & aaaaaaaaaaaaaaaa.g % aaaaaaaaaaaaaaaa.h
347 + ^ aaaaaaaaaaaaaaaa.i
348 + << aaaaaaaaaaaaaaaa.k
349 + >> aaaaaaaaaaaaaaaa.l ** aaaaaaaaaaaaaaaa.m // aaaaaaaaaaaaaaaa.n
353 # standalone comment at ENDMARKER