]> git.madduck.net Git - etc/vim.git/blob - CHANGES.md

madduck's git repository

Every one of the projects in this repository is available at the canonical URL git://git.madduck.net/madduck/pub/<projectpath> — see each project's metadata for the exact URL.

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.

SSH access, as well as push access can be individually arranged.

If you use my repositories frequently, consider adding the following snippet to ~/.gitconfig and using the third clone URL listed for each project:

[url "git://git.madduck.net/madduck/"]
  insteadOf = madduck:

6e2721ba19c9fb8727575c8bbf01766778813bd5
[etc/vim.git] / CHANGES.md
1 # Change Log
2
3 ## 21.8b0
4
5 ### _Black_
6
7 - Add support for formatting Jupyter Notebook files (#2357)
8 - Move from `appdirs` dependency to `platformdirs` (#2375)
9 - Present a more user-friendly error if .gitignore is invalid (#2414)
10 - The failsafe for accidentally added backslashes in f-string expressions has been
11   hardened to handle more edge cases during quote normalization (#2437)
12 - Avoid changing a function return type annotation's type to a tuple by adding a
13   trailing comma (#2384)
14 - Parsing support has been added for unparenthesized walruses in set literals, set
15   comprehensions, and indices (#2447).
16 - Pin `setuptools-scm` build-time dependency version (#2457)
17
18 ### _Blackd_
19
20 - Replace sys.exit(-1) with raise ImportError as it plays more nicely with tools that
21   scan installed packages (#2440)
22
23 ### Integrations
24
25 - The provided pre-commit hooks no longer specify `language_version` to avoid overriding
26   `default_language_version` (#2430)
27
28 ## 21.7b0
29
30 ### _Black_
31
32 - Configuration files using TOML features higher than spec v0.5.0 are now supported
33   (#2301)
34 - Add primer support and test for code piped into black via STDIN (#2315)
35 - Fix internal error when `FORCE_OPTIONAL_PARENTHESES` feature is enabled (#2332)
36 - Accept empty stdin (#2346)
37 - Provide a more useful error when parsing fails during AST safety checks (#2304)
38
39 ### Docker
40
41 - Add new `latest_release` tag automation to follow latest black release on docker
42   images (#2374)
43
44 ### Integrations
45
46 - The vim plugin now searches upwards from the directory containing the current buffer
47   instead of the current working directory for pyproject.toml. (#1871)
48 - The vim plugin now reads the correct string normalization option in pyproject.toml
49   (#1869)
50 - The vim plugin no longer crashes Black when there's boolean values in pyproject.toml
51   (#1869)
52
53 ## 21.6b0
54
55 ### _Black_
56
57 - Fix failure caused by `fmt: skip` and indentation (#2281)
58 - Account for += assignment when deciding whether to split string (#2312)
59 - Correct max string length calculation when there are string operators (#2292)
60 - Fixed option usage when using the `--code` flag (#2259)
61 - Do not call `uvloop.install()` when _Black_ is used as a library (#2303)
62 - Added `--required-version` option to require a specific version to be running (#2300)
63 - Fix incorrect custom breakpoint indices when string group contains fake f-strings
64   (#2311)
65 - Fix regression where `R` prefixes would be lowercased for docstrings (#2285)
66 - Fix handling of named escapes (`\N{...}`) when `--experimental-string-processing` is
67   used (#2319)
68
69 ### Integrations
70
71 - The official Black action now supports choosing what version to use, and supports the
72   major 3 OSes. (#1940)
73
74 ## 21.5b2
75
76 ### _Black_
77
78 - A space is no longer inserted into empty docstrings (#2249)
79 - Fix handling of .gitignore files containing non-ASCII characters on Windows (#2229)
80 - Respect `.gitignore` files in all levels, not only `root/.gitignore` file (apply
81   `.gitignore` rules like `git` does) (#2225)
82 - Restored compatibility with Click 8.0 on Python 3.6 when LANG=C used (#2227)
83 - Add extra uvloop install + import support if in python env (#2258)
84 - Fix --experimental-string-processing crash when matching parens are not found (#2283)
85 - Make sure to split lines that start with a string operator (#2286)
86 - Fix regular expression that black uses to identify f-expressions (#2287)
87
88 ### _Blackd_
89
90 - Add a lower bound for the `aiohttp-cors` dependency. Only 0.4.0 or higher is
91   supported. (#2231)
92
93 ### Packaging
94
95 - Release self-contained x86_64 MacOS binaries as part of the GitHub release pipeline
96   (#2198)
97 - Always build binaries with the latest available Python (#2260)
98
99 ### Documentation
100
101 - Add discussion of magic comments to FAQ page (#2272)
102 - `--experimental-string-processing` will be enabled by default in the future (#2273)
103 - Fix typos discovered by codespell (#2228)
104 - Fix Vim plugin installation instructions. (#2235)
105 - Add new Frequently Asked Questions page (#2247)
106 - Fix encoding + symlink issues preventing proper build on Windows (#2262)
107
108 ## 21.5b1
109
110 ### _Black_
111
112 - Refactor `src/black/__init__.py` into many files (#2206)
113
114 ### Documentation
115
116 - Replaced all remaining references to the
117   [`master`](https://github.com/psf/black/tree/main) branch with the
118   [`main`](https://github.com/psf/black/tree/main) branch. Some additional changes in
119   the source code were also made. (#2210)
120 - Sigificantly reorganized the documentation to make much more sense. Check them out by
121   heading over to [the stable docs on RTD](https://black.readthedocs.io/en/stable/).
122   (#2174)
123
124 ## 21.5b0
125
126 ### _Black_
127
128 - Set `--pyi` mode if `--stdin-filename` ends in `.pyi` (#2169)
129 - Stop detecting target version as Python 3.9+ with pre-PEP-614 decorators that are
130   being called but with no arguments (#2182)
131
132 ### _Black-Primer_
133
134 - Add `--no-diff` to black-primer to suppress formatting changes (#2187)
135
136 ## 21.4b2
137
138 ### _Black_
139
140 - Fix crash if the user configuration directory is inaccessible. (#2158)
141
142 - Clarify
143   [circumstances](https://github.com/psf/black/blob/master/docs/the_black_code_style.md#pragmatism)
144   in which _Black_ may change the AST (#2159)
145
146 - Allow `.gitignore` rules to be overridden by specifying `exclude` in `pyproject.toml`
147   or on the command line. (#2170)
148
149 ### _Packaging_
150
151 - Install `primer.json` (used by `black-primer` by default) with black. (#2154)
152
153 ## 21.4b1
154
155 ### _Black_
156
157 - Fix crash on docstrings ending with "\\ ". (#2142)
158
159 - Fix crash when atypical whitespace is cleaned out of dostrings (#2120)
160
161 - Reflect the `--skip-magic-trailing-comma` and `--experimental-string-processing` flags
162   in the name of the cache file. Without this fix, changes in these flags would not take
163   effect if the cache had already been populated. (#2131)
164
165 - Don't remove necessary parentheses from assignment expression containing assert /
166   return statements. (#2143)
167
168 ### _Packaging_
169
170 - Bump pathspec to >= 0.8.1 to solve invalid .gitignore exclusion handling
171
172 ## 21.4b0
173
174 ### _Black_
175
176 - Fixed a rare but annoying formatting instability created by the combination of
177   optional trailing commas inserted by `Black` and optional parentheses looking at
178   pre-existing "magic" trailing commas. This fixes issue #1629 and all of its many many
179   duplicates. (#2126)
180
181 - `Black` now processes one-line docstrings by stripping leading and trailing spaces,
182   and adding a padding space when needed to break up """". (#1740)
183
184 - `Black` now cleans up leading non-breaking spaces in comments (#2092)
185
186 - `Black` now respects `--skip-string-normalization` when normalizing multiline
187   docstring quotes (#1637)
188
189 - `Black` no longer removes all empty lines between non-function code and decorators
190   when formatting typing stubs. Now `Black` enforces a single empty line. (#1646)
191
192 - `Black` no longer adds an incorrect space after a parenthesized assignment expression
193   in if/while statements (#1655)
194
195 - Added `--skip-magic-trailing-comma` / `-C` to avoid using trailing commas as a reason
196   to split lines (#1824)
197
198 - fixed a crash when PWD=/ on POSIX (#1631)
199
200 - fixed "I/O operation on closed file" when using --diff (#1664)
201
202 - Prevent coloured diff output being interleaved with multiple files (#1673)
203
204 - Added support for PEP 614 relaxed decorator syntax on python 3.9 (#1711)
205
206 - Added parsing support for unparenthesized tuples and yield expressions in annotated
207   assignments (#1835)
208
209 - added `--extend-exclude` argument (PR #2005)
210
211 - speed up caching by avoiding pathlib (#1950)
212
213 - `--diff` correctly indicates when a file doesn't end in a newline (#1662)
214
215 - Added `--stdin-filename` argument to allow stdin to respect `--force-exclude` rules
216   (#1780)
217
218 - Lines ending with `fmt: skip` will now be not formatted (#1800)
219
220 - PR #2053: Black no longer relies on typed-ast for Python 3.8 and higher
221
222 - PR #2053: Python 2 support is now optional, install with
223   `python3 -m pip install black[python2]` to maintain support.
224
225 - Exclude `venv` directory by default (#1683)
226
227 - Fixed "Black produced code that is not equivalent to the source" when formatting
228   Python 2 docstrings (#2037)
229
230 ### _Packaging_
231
232 - Self-contained native _Black_ binaries are now provided for releases via GitHub
233   Releases (#1743)
234
235 ## 20.8b1
236
237 ### _Packaging_
238
239 - explicitly depend on Click 7.1.2 or newer as `Black` no longer works with versions
240   older than 7.0
241
242 ## 20.8b0
243
244 ### _Black_
245
246 - re-implemented support for explicit trailing commas: now it works consistently within
247   any bracket pair, including nested structures (#1288 and duplicates)
248
249 - `Black` now reindents docstrings when reindenting code around it (#1053)
250
251 - `Black` now shows colored diffs (#1266)
252
253 - `Black` is now packaged using 'py3' tagged wheels (#1388)
254
255 - `Black` now supports Python 3.8 code, e.g. star expressions in return statements
256   (#1121)
257
258 - `Black` no longer normalizes capital R-string prefixes as those have a
259   community-accepted meaning (#1244)
260
261 - `Black` now uses exit code 2 when specified configuration file doesn't exit (#1361)
262
263 - `Black` now works on AWS Lambda (#1141)
264
265 - added `--force-exclude` argument (#1032)
266
267 - removed deprecated `--py36` option (#1236)
268
269 - fixed `--diff` output when EOF is encountered (#526)
270
271 - fixed `# fmt: off` handling around decorators (#560)
272
273 - fixed unstable formatting with some `# type: ignore` comments (#1113)
274
275 - fixed invalid removal on organizing brackets followed by indexing (#1575)
276
277 - introduced `black-primer`, a CI tool that allows us to run regression tests against
278   existing open source users of Black (#1402)
279
280 - introduced property-based fuzzing to our test suite based on Hypothesis and
281   Hypothersmith (#1566)
282
283 - implemented experimental and disabled by default long string rewrapping (#1132),
284   hidden under a `--experimental-string-processing` flag while it's being worked on;
285   this is an undocumented and unsupported feature, you lose Internet points for
286   depending on it (#1609)
287
288 ### Vim plugin
289
290 - prefer virtualenv packages over global packages (#1383)
291
292 ## 19.10b0
293
294 - added support for PEP 572 assignment expressions (#711)
295
296 - added support for PEP 570 positional-only arguments (#943)
297
298 - added support for async generators (#593)
299
300 - added support for pre-splitting collections by putting an explicit trailing comma
301   inside (#826)
302
303 - added `black -c` as a way to format code passed from the command line (#761)
304
305 - --safe now works with Python 2 code (#840)
306
307 - fixed grammar selection for Python 2-specific code (#765)
308
309 - fixed feature detection for trailing commas in function definitions and call sites
310   (#763)
311
312 - `# fmt: off`/`# fmt: on` comment pairs placed multiple times within the same block of
313   code now behave correctly (#1005)
314
315 - _Black_ no longer crashes on Windows machines with more than 61 cores (#838)
316
317 - _Black_ no longer crashes on standalone comments prepended with a backslash (#767)
318
319 - _Black_ no longer crashes on `from` ... `import` blocks with comments (#829)
320
321 - _Black_ no longer crashes on Python 3.7 on some platform configurations (#494)
322
323 - _Black_ no longer fails on comments in from-imports (#671)
324
325 - _Black_ no longer fails when the file starts with a backslash (#922)
326
327 - _Black_ no longer merges regular comments with type comments (#1027)
328
329 - _Black_ no longer splits long lines that contain type comments (#997)
330
331 - removed unnecessary parentheses around `yield` expressions (#834)
332
333 - added parentheses around long tuples in unpacking assignments (#832)
334
335 - added parentheses around complex powers when they are prefixed by a unary operator
336   (#646)
337
338 - fixed bug that led _Black_ format some code with a line length target of 1 (#762)
339
340 - _Black_ no longer introduces quotes in f-string subexpressions on string boundaries
341   (#863)
342
343 - if _Black_ puts parenthesis around a single expression, it moves comments to the
344   wrapped expression instead of after the brackets (#872)
345
346 - `blackd` now returns the version of _Black_ in the response headers (#1013)
347
348 - `blackd` can now output the diff of formats on source code when the `X-Diff` header is
349   provided (#969)
350
351 ## 19.3b0
352
353 - new option `--target-version` to control which Python versions _Black_-formatted code
354   should target (#618)
355
356 - deprecated `--py36` (use `--target-version=py36` instead) (#724)
357
358 - _Black_ no longer normalizes numeric literals to include `_` separators (#696)
359
360 - long `del` statements are now split into multiple lines (#698)
361
362 - type comments are no longer mangled in function signatures
363
364 - improved performance of formatting deeply nested data structures (#509)
365
366 - _Black_ now properly formats multiple files in parallel on Windows (#632)
367
368 - _Black_ now creates cache files atomically which allows it to be used in parallel
369   pipelines (like `xargs -P8`) (#673)
370
371 - _Black_ now correctly indents comments in files that were previously formatted with
372   tabs (#262)
373
374 - `blackd` now supports CORS (#622)
375
376 ## 18.9b0
377
378 - numeric literals are now formatted by _Black_ (#452, #461, #464, #469):
379
380   - numeric literals are normalized to include `_` separators on Python 3.6+ code
381
382   - added `--skip-numeric-underscore-normalization` to disable the above behavior and
383     leave numeric underscores as they were in the input
384
385   - code with `_` in numeric literals is recognized as Python 3.6+
386
387   - most letters in numeric literals are lowercased (e.g., in `1e10`, `0x01`)
388
389   - hexadecimal digits are always uppercased (e.g. `0xBADC0DE`)
390
391 - added `blackd`, see
392   [its documentation](https://github.com/psf/black/blob/18.9b0/README.md#blackd) for
393   more info (#349)
394
395 - adjacent string literals are now correctly split into multiple lines (#463)
396
397 - trailing comma is now added to single imports that don't fit on a line (#250)
398
399 - cache is now populated when `--check` is successful for a file which speeds up
400   consecutive checks of properly formatted unmodified files (#448)
401
402 - whitespace at the beginning of the file is now removed (#399)
403
404 - fixed mangling [pweave](http://mpastell.com/pweave/) and
405   [Spyder IDE](https://www.spyder-ide.org/) special comments (#532)
406
407 - fixed unstable formatting when unpacking big tuples (#267)
408
409 - fixed parsing of `__future__` imports with renames (#389)
410
411 - fixed scope of `# fmt: off` when directly preceding `yield` and other nodes (#385)
412
413 - fixed formatting of lambda expressions with default arguments (#468)
414
415 - fixed `async for` statements: _Black_ no longer breaks them into separate lines (#372)
416
417 - note: the Vim plugin stopped registering `,=` as a default chord as it turned out to
418   be a bad idea (#415)
419
420 ## 18.6b4
421
422 - hotfix: don't freeze when multiple comments directly precede `# fmt: off` (#371)
423
424 ## 18.6b3
425
426 - typing stub files (`.pyi`) now have blank lines added after constants (#340)
427
428 - `# fmt: off` and `# fmt: on` are now much more dependable:
429
430   - they now work also within bracket pairs (#329)
431
432   - they now correctly work across function/class boundaries (#335)
433
434   - they now work when an indentation block starts with empty lines or misaligned
435     comments (#334)
436
437 - made Click not fail on invalid environments; note that Click is right but the
438   likelihood we'll need to access non-ASCII file paths when dealing with Python source
439   code is low (#277)
440
441 - fixed improper formatting of f-strings with quotes inside interpolated expressions
442   (#322)
443
444 - fixed unnecessary slowdown when long list literals where found in a file
445
446 - fixed unnecessary slowdown on AST nodes with very many siblings
447
448 - fixed cannibalizing backslashes during string normalization
449
450 - fixed a crash due to symbolic links pointing outside of the project directory (#338)
451
452 ## 18.6b2
453
454 - added `--config` (#65)
455
456 - added `-h` equivalent to `--help` (#316)
457
458 - fixed improper unmodified file caching when `-S` was used
459
460 - fixed extra space in string unpacking (#305)
461
462 - fixed formatting of empty triple quoted strings (#313)
463
464 - fixed unnecessary slowdown in comment placement calculation on lines without comments
465
466 ## 18.6b1
467
468 - hotfix: don't output human-facing information on stdout (#299)
469
470 - hotfix: don't output cake emoji on non-zero return code (#300)
471
472 ## 18.6b0
473
474 - added `--include` and `--exclude` (#270)
475
476 - added `--skip-string-normalization` (#118)
477
478 - added `--verbose` (#283)
479
480 - the header output in `--diff` now actually conforms to the unified diff spec
481
482 - fixed long trivial assignments being wrapped in unnecessary parentheses (#273)
483
484 - fixed unnecessary parentheses when a line contained multiline strings (#232)
485
486 - fixed stdin handling not working correctly if an old version of Click was used (#276)
487
488 - _Black_ now preserves line endings when formatting a file in place (#258)
489
490 ## 18.5b1
491
492 - added `--pyi` (#249)
493
494 - added `--py36` (#249)
495
496 - Python grammar pickle caches are stored with the formatting caches, making _Black_
497   work in environments where site-packages is not user-writable (#192)
498
499 - _Black_ now enforces a PEP 257 empty line after a class-level docstring (and/or
500   fields) and the first method
501
502 - fixed invalid code produced when standalone comments were present in a trailer that
503   was omitted from line splitting on a large expression (#237)
504
505 - fixed optional parentheses being removed within `# fmt: off` sections (#224)
506
507 - fixed invalid code produced when stars in very long imports were incorrectly wrapped
508   in optional parentheses (#234)
509
510 - fixed unstable formatting when inline comments were moved around in a trailer that was
511   omitted from line splitting on a large expression (#238)
512
513 - fixed extra empty line between a class declaration and the first method if no class
514   docstring or fields are present (#219)
515
516 - fixed extra empty line between a function signature and an inner function or inner
517   class (#196)
518
519 ## 18.5b0
520
521 - call chains are now formatted according to the
522   [fluent interfaces](https://en.wikipedia.org/wiki/Fluent_interface) style (#67)
523
524 - data structure literals (tuples, lists, dictionaries, and sets) are now also always
525   exploded like imports when they don't fit in a single line (#152)
526
527 - slices are now formatted according to PEP 8 (#178)
528
529 - parentheses are now also managed automatically on the right-hand side of assignments
530   and return statements (#140)
531
532 - math operators now use their respective priorities for delimiting multiline
533   expressions (#148)
534
535 - optional parentheses are now omitted on expressions that start or end with a bracket
536   and only contain a single operator (#177)
537
538 - empty parentheses in a class definition are now removed (#145, #180)
539
540 - string prefixes are now standardized to lowercase and `u` is removed on Python 3.6+
541   only code and Python 2.7+ code with the `unicode_literals` future import (#188, #198,
542   #199)
543
544 - typing stub files (`.pyi`) are now formatted in a style that is consistent with PEP
545   484 (#207, #210)
546
547 - progress when reformatting many files is now reported incrementally
548
549 - fixed trailers (content with brackets) being unnecessarily exploded into their own
550   lines after a dedented closing bracket (#119)
551
552 - fixed an invalid trailing comma sometimes left in imports (#185)
553
554 - fixed non-deterministic formatting when multiple pairs of removable parentheses were
555   used (#183)
556
557 - fixed multiline strings being unnecessarily wrapped in optional parentheses in long
558   assignments (#215)
559
560 - fixed not splitting long from-imports with only a single name
561
562 - fixed Python 3.6+ file discovery by also looking at function calls with unpacking.
563   This fixed non-deterministic formatting if trailing commas where used both in function
564   signatures with stars and function calls with stars but the former would be
565   reformatted to a single line.
566
567 - fixed crash on dealing with optional parentheses (#193)
568
569 - fixed "is", "is not", "in", and "not in" not considered operators for splitting
570   purposes
571
572 - fixed crash when dead symlinks where encountered
573
574 ## 18.4a4
575
576 - don't populate the cache on `--check` (#175)
577
578 ## 18.4a3
579
580 - added a "cache"; files already reformatted that haven't changed on disk won't be
581   reformatted again (#109)
582
583 - `--check` and `--diff` are no longer mutually exclusive (#149)
584
585 - generalized star expression handling, including double stars; this fixes
586   multiplication making expressions "unsafe" for trailing commas (#132)
587
588 - _Black_ no longer enforces putting empty lines behind control flow statements (#90)
589
590 - _Black_ now splits imports like "Mode 3 + trailing comma" of isort (#127)
591
592 - fixed comment indentation when a standalone comment closes a block (#16, #32)
593
594 - fixed standalone comments receiving extra empty lines if immediately preceding a
595   class, def, or decorator (#56, #154)
596
597 - fixed `--diff` not showing entire path (#130)
598
599 - fixed parsing of complex expressions after star and double stars in function calls
600   (#2)
601
602 - fixed invalid splitting on comma in lambda arguments (#133)
603
604 - fixed missing splits of ternary expressions (#141)
605
606 ## 18.4a2
607
608 - fixed parsing of unaligned standalone comments (#99, #112)
609
610 - fixed placement of dictionary unpacking inside dictionary literals (#111)
611
612 - Vim plugin now works on Windows, too
613
614 - fixed unstable formatting when encountering unnecessarily escaped quotes in a string
615   (#120)
616
617 ## 18.4a1
618
619 - added `--quiet` (#78)
620
621 - added automatic parentheses management (#4)
622
623 - added [pre-commit](https://pre-commit.com) integration (#103, #104)
624
625 - fixed reporting on `--check` with multiple files (#101, #102)
626
627 - fixed removing backslash escapes from raw strings (#100, #105)
628
629 ## 18.4a0
630
631 - added `--diff` (#87)
632
633 - add line breaks before all delimiters, except in cases like commas, to better comply
634   with PEP 8 (#73)
635
636 - standardize string literals to use double quotes (almost) everywhere (#75)
637
638 - fixed handling of standalone comments within nested bracketed expressions; _Black_
639   will no longer produce super long lines or put all standalone comments at the end of
640   the expression (#22)
641
642 - fixed 18.3a4 regression: don't crash and burn on empty lines with trailing whitespace
643   (#80)
644
645 - fixed 18.3a4 regression: `# yapf: disable` usage as trailing comment would cause
646   _Black_ to not emit the rest of the file (#95)
647
648 - when CTRL+C is pressed while formatting many files, _Black_ no longer freaks out with
649   a flurry of asyncio-related exceptions
650
651 - only allow up to two empty lines on module level and only single empty lines within
652   functions (#74)
653
654 ## 18.3a4
655
656 - `# fmt: off` and `# fmt: on` are implemented (#5)
657
658 - automatic detection of deprecated Python 2 forms of print statements and exec
659   statements in the formatted file (#49)
660
661 - use proper spaces for complex expressions in default values of typed function
662   arguments (#60)
663
664 - only return exit code 1 when --check is used (#50)
665
666 - don't remove single trailing commas from square bracket indexing (#59)
667
668 - don't omit whitespace if the previous factor leaf wasn't a math operator (#55)
669
670 - omit extra space in kwarg unpacking if it's the first argument (#46)
671
672 - omit extra space in
673   [Sphinx auto-attribute comments](http://www.sphinx-doc.org/en/stable/ext/autodoc.html#directive-autoattribute)
674   (#68)
675
676 ## 18.3a3
677
678 - don't remove single empty lines outside of bracketed expressions (#19)
679
680 - added ability to pipe formatting from stdin to stdin (#25)
681
682 - restored ability to format code with legacy usage of `async` as a name (#20, #42)
683
684 - even better handling of numpy-style array indexing (#33, again)
685
686 ## 18.3a2
687
688 - changed positioning of binary operators to occur at beginning of lines instead of at
689   the end, following
690   [a recent change to PEP 8](https://github.com/python/peps/commit/c59c4376ad233a62ca4b3a6060c81368bd21e85b)
691   (#21)
692
693 - ignore empty bracket pairs while splitting. This avoids very weirdly looking
694   formattings (#34, #35)
695
696 - remove a trailing comma if there is a single argument to a call
697
698 - if top level functions were separated by a comment, don't put four empty lines after
699   the upper function
700
701 - fixed unstable formatting of newlines with imports
702
703 - fixed unintentional folding of post scriptum standalone comments into last statement
704   if it was a simple statement (#18, #28)
705
706 - fixed missing space in numpy-style array indexing (#33)
707
708 - fixed spurious space after star-based unary expressions (#31)
709
710 ## 18.3a1
711
712 - added `--check`
713
714 - only put trailing commas in function signatures and calls if it's safe to do so. If
715   the file is Python 3.6+ it's always safe, otherwise only safe if there are no `*args`
716   or `**kwargs` used in the signature or call. (#8)
717
718 - fixed invalid spacing of dots in relative imports (#6, #13)
719
720 - fixed invalid splitting after comma on unpacked variables in for-loops (#23)
721
722 - fixed spurious space in parenthesized set expressions (#7)
723
724 - fixed spurious space after opening parentheses and in default arguments (#14, #17)
725
726 - fixed spurious space after unary operators when the operand was a complex expression
727   (#15)
728
729 ## 18.3a0
730
731 - first published version, Happy 🍰 Day 2018!
732
733 - alpha quality
734
735 - date-versioned (see: <https://calver.org/>)