blob: cc963092d6fd7362e9467ddfe262bf9bba089042 [file] [log] [blame]
Bill Wendlingdcafd5f2015-09-12 15:26:03 -07001# Change Log
2# All notable changes to this project will be documented in this file.
3# This project adheres to [Semantic Versioning](http://semver.org/).
4
Bill Wendlinge58b7c42023-06-13 02:37:41 -05005## [0.40.0] 2023-06-13
Sebastian Pipping83582642023-05-02 21:55:49 +02006### Added
7- Support for Python 3.11
Eugene Todere29a9b02023-05-23 15:19:49 -04008- Add the `--print-modified` flag to print out file names of modified files when
9 running in in-place mode.
Bill Wendling85bd59b2023-06-10 01:06:29 -050010### Changes
11- Replace the outdated and no-longer-supported lib2to3 with a fork of blib2to3,
12 Black's version of lib2to3.
Sebastian Pipping83582642023-05-02 21:55:49 +020013### Removed
Bill Wendlinge58b7c42023-06-13 02:37:41 -050014- Support for Python versions < 3.7 are no longer supported.
Sebastian Pipping83582642023-05-02 21:55:49 +020015
Bill Wendling02c6bf02023-04-18 21:01:02 +000016## [0.33.0] 2023-04-18
Bill Wendling516e1972021-12-25 02:21:06 -060017### Added
18- Add a new Python parser to generate logical lines.
Yilei "Dolee" Yange0979072022-09-23 10:44:06 -070019- Added support for `# fmt: on` and `# fmt: off` pragmas.
Bill Wendling831fb3d2021-12-27 13:04:22 -080020### Changes
21- Moved 'pytree' parsing tools into its own subdirectory.
Hugo van Kemenadee02dfd12022-01-02 03:54:34 +020022- Add support for Python 3.10.
Alexey Pelykhbb2baba2023-01-04 06:26:36 +010023- Format generated dicts with respect to same rules as regular dicts
Sergei Lebedevb41eb9c2022-02-21 21:49:06 +000024- Generalized the ending comma heuristic to subscripts.
Bill Wendling02c6bf02023-04-18 21:01:02 +000025- Supports "pyproject.toml" by default.
Nuri Jung3684f3c2022-01-12 04:25:35 +090026### Fixed
27- Split line before all comparison operators.
Bill Wendling831fb3d2021-12-27 13:04:22 -080028
Bill Wendlingd3873c02021-12-26 00:49:04 -060029## [0.32.0] 2021-12-26
hirosassaf16340e2021-07-13 10:00:32 +090030### Added
31- Look at the 'pyproject.toml' file to see if it contains ignore file information
32 for YAPF.
Sergei Lebedev6471e0a2021-09-02 17:49:34 +000033- New entry point `yapf_api.FormatTree` for formatting lib2to3 concrete
34 syntax trees.
Bill Wendling5142e582021-11-04 03:39:00 -070035- Add CI via GitHub Actions.
Bill Wendling8ec4ed62021-11-04 03:09:01 -070036### Changes
37- Change tests to support "pytest".
Bill Wendling7d16a182021-11-04 03:32:37 -070038- Reformat so that "flake8" is happy.
Bill Wendling82ebfca2021-11-04 04:11:03 -070039- Use GitHub Actions instead of Travis for CI.
Bill Wendlinge9dd4e52021-11-08 01:36:48 -080040- Clean up the FormatToken interface to limit how much it relies upon the
41 pytree node object.
Bill Wendling5b75e6f2021-12-25 22:31:14 -060042- Rename "unwrapped_line" module to "logical_line."
43- Rename "UnwrappedLine" class to "LogicalLine."
Bouwe Andela5fda04e2021-08-23 21:38:15 +020044### Fixed
Mauricio Herrera Cuadrafb0fbb42022-02-08 11:27:53 -080045- Added pyproject extra to install toml package as an optional dependency.
Bouwe Andela5fda04e2021-08-23 21:38:15 +020046- Enable `BLANK_LINE_BEFORE_NESTED_CLASS_OR_DEF` knob for "pep8" style, so
47 method definitions inside a class are surrounded by a single blank line as
48 prescribed by PEP8.
Bill Wendlingdbd49c32021-11-03 02:46:33 -070049- Fixed the '...' token to be spaced after a colon.
hirosassaf16340e2021-07-13 10:00:32 +090050
Bill Wendlingc6077952021-03-12 13:42:14 -080051## [0.31.0] 2021-03-14
Mauricio Herrera Cuadra37924d42020-08-19 20:41:56 -070052### Added
Bill Wendling85bd59b2023-06-10 01:06:29 -050053- Renamed 'master' branch to 'main'.
Mauricio Herrera Cuadra37924d42020-08-19 20:41:56 -070054- Add 'BLANK_LINES_BETWEEN_TOP_LEVEL_IMPORTS_AND_VARIABLES' to support setting
55 a custom number of blank lines between top-level imports and variable
56 definitions.
Gregory P. Smithc4ce1582020-12-20 17:58:11 -080057- Ignore end of line `# copybara:` directives when checking line length.
hirosassa664e7c02021-03-13 06:31:58 +090058- Look at the 'pyproject.toml' file to see if it contains style information for
59 YAPF.
Brénainn Woodsenda53e3402021-02-05 20:54:31 +000060### Changed
Christian Clauss633744e2021-09-16 20:04:21 +020061- Do not scan excluded directories. Prior versions would scan an excluded
Brénainn Woodsenda53e3402021-02-05 20:54:31 +000062 folder then exclude its contents on a file by file basis. Preventing the
63 folder being scanned is faster.
Brénainn Woodsend6abab7f2020-12-02 19:53:38 +000064### Fixed
65- Exclude directories on Windows.
Mauricio Herrera Cuadra37924d42020-08-19 20:41:56 -070066
Bill Wendling51ffe2d2020-04-23 12:05:40 -070067## [0.30.0] 2020-04-23
David Brownell86a12d62020-04-23 10:47:13 -070068### Added
69- Added `SPACES_AROUND_LIST_DELIMITERS`, `SPACES_AROUND_DICT_DELIMITERS`,
70 and `SPACES_AROUND_TUPLE_DELIMITERS` to add spaces after the opening-
71 and before the closing-delimiters for lists, dicts, and tuples.
72- Adds `FORCE_MULTILINE_DICT` knob to ensure dictionaries always split,
73 even when shorter than the max line length.
74- New knob `SPACE_INSIDE_BRACKETS` to add spaces inside brackets, braces, and
75 parentheses.
76- New knob `SPACES_AROUND_SUBSCRIPT_COLON` to add spaces around the subscript /
77 slice operator.
agrieve22ef70f2020-04-23 14:23:20 -040078### Changed
79- Renamed "chromium" style to "yapf". Chromium will now use PEP-8 directly.
Yinyinf967fd62020-04-24 02:27:42 +080080- `CONTINUATION_ALIGN_STYLE` with `FIXED` or `VALIGN-RIGHT` now works with
81 space indentation.
Bill Wendlingc4257ed2020-01-14 14:04:09 -080082### Fixed
83- Honor a disable directive at the end of a multiline comment.
Bill Wendling8d184be2020-01-21 11:35:43 -080084- Don't require splitting before comments in a list when
85 `SPLIT_ALL_TOP_LEVEL_COMMA_SEPARATED_VALUES` is set. The knob is meant for
86 values, not comments, which may be associated with the current line.
Bill Wendling2bd2b222020-01-22 03:50:25 -080087- Don't over-indent a parameter list when not needed. But make sure it is
88 properly indented so that it doesn't collide with the lines afterwards.
Bill Wendlingf752a012020-02-03 16:57:15 -080089- Don't split between two-word comparison operators: "is not", "not in", etc.
Bill Wendlingc4257ed2020-01-14 14:04:09 -080090
Bill Wendlingee4c28e2019-11-28 01:56:01 -080091## [0.29.0] 2019-11-28
Bill Wendling419a0012019-08-06 01:04:46 -070092### Added
93- Add the `--quiet` flag to suppress output. The return code is 1 if there are
94 changes, similarly to the `--diff` flag.
Ethan Furman46245112019-11-14 13:45:12 -080095- Add the `indent_closing_brackets` option. This is the same as the
96 `dedent_closing_brackets` option except the brackets are indented the same
97 as the previous line.
Bill Wendlingbf54d8c2019-07-11 22:25:51 -070098### Changed
99- Collect a parameter list into a single object. This allows us to track how a
100 parameter list is formatted, keeping state along the way. This helps when
101 supporting Python 3 type annotations.
Bill Wendling419a0012019-08-06 01:04:46 -0700102- Catch and report `UnicodeDecodeError` exceptions.
Bill Wendlingbe634cd2019-11-27 18:05:28 -0800103- Improved description of .yapfignore syntax.
Bill Wendlingb4acb6f2019-07-11 23:46:15 -0700104### Fixed
105- Format subscript lists so that splits are essentially free after a comma.
Bill Wendling0c58cf72019-07-16 01:28:38 -0700106- Don't add a space between a string and its subscript.
Eric Anec311412019-07-19 08:41:25 -0700107- Extend discovery of '.style.yapf' & 'setup.cfg' files to search the root
108 directory as well.
Bill Wendling3498e3f2019-07-20 14:22:20 -0700109- Make sure we have parameters before we start calculating penalties for
110 splitting them.
Bill Wendling126fc7e2019-08-13 14:28:22 -0700111- Indicate if a class/function is nested to ensure blank lines when needed.
Väinö Järvelä24c1ac02019-11-14 06:39:52 +0200112- Fix extra indentation in async-for else statement.
Bill Wendling0565b692019-11-23 15:18:12 -0800113- A parameter list with no elements shouldn't count as exceeding the column
114 limit.
Bill Wendling405a5242019-11-27 16:25:40 -0800115- When splitting all comma separated values, don't treat the ending bracket as
116 special.
Bill Wendling505a59f2019-11-27 16:56:38 -0800117- The "no blank lines between nested classes or functions" knob should only
118 apply to the first nested class or function, not all of them.
Bill Wendlingbf54d8c2019-07-11 22:25:51 -0700119
Bill Wendling58458f92019-07-11 22:07:39 -0700120## [0.28.0] 2019-07-11
Sergio Girod2814d82019-04-24 09:49:49 +0100121### Added
122- New knob `SPLIT_ALL_TOP_LEVEL_COMMA_SEPARATED_VALUES` is a variation on
Bill Wendlinga47ca732019-04-24 02:01:17 -0700123 `SPLIT_ALL_COMMA_SEPARATED_VALUES` in which, if a subexpression with a comma
Sergio Girod2814d82019-04-24 09:49:49 +0100124 fits in its starting line, then the subexpression is not split (thus avoiding
125 unnecessary splits).
Brian Quinlanb3e33c32019-04-08 14:06:53 -0700126### Changed
127- Set `INDENT_DICTIONARY_VALUE` for Google style.
Gary Miguel1d9db2a2019-07-10 15:12:07 -0700128- Set `JOIN_MULTIPLE_LINES = False` for Google style.
Bill Wendlingba85e7c2019-04-09 03:00:56 -0700129### Fixed
130- `BLANK_LINE_BEFORE_NESTED_CLASS_OR_DEF=False` wasn't honored because the
131 number of newlines was erroneously calculated beforehand.
Bill Wendlingf42b4892019-06-21 11:44:32 -0700132- Lambda expressions shouldn't have an increased split penalty applied to the
133 'lambda' keyword. This prevents them from being properly formatted when they're
134 arguments to functions.
Bill Wendlingbe4be442019-06-21 12:56:22 -0700135- A comment with continuation markers (??) shouldn't mess with the lineno count.
Bill Wendlingc28f9992019-06-27 10:31:34 -0700136- Only emit unformatted if the "disable long line" is at the end of the line.
137 Otherwise we could mess up formatting for containers which have them
138 interspersed with code.
Bill Wendling4b087812019-07-01 15:16:05 -0700139- Fix a potential race condition by using the correct style for opening a file
140 which may not exist.
Brian Quinlanb3e33c32019-04-08 14:06:53 -0700141
Bill Wendlinga1e69ad2019-04-07 03:44:52 -0700142## [0.27.0] 2019-04-07
Bill Wendling7903f382019-02-10 02:48:32 -0800143### Added
144- `SPLIT_BEFORE_ARITHMETIC_OPERATOR` splits before an arithmetic operator when
145 set. `SPLIT_PENALTY_ARITHMETIC_OPERATOR` allows you to set the split penalty
146 around arithmetic operators.
Bill Wendling4787f232019-04-07 01:43:39 -0700147### Changed
148- Catch lib2to3's "TokenError" exception and output a nicer message.
Bill Wendlinga4d0b6d2019-02-09 06:01:29 -0800149### Fixed
150- Parse integer lists correctly, removing quotes if the list is within a
151 string.
Bill Wendlinge2ce8932019-02-10 02:06:37 -0800152- Adjust the penalties of bitwise operands for '&' and '^', similar to '|'.
Alessandro Pietro Bardellia017b732019-03-12 17:19:27 +0100153- Avoid splitting after opening parens if SPLIT_BEFORE_FIRST_ARGUMENT is set
154 to False.
155- Adjust default SPLIT_PENALTY_AFTER_OPENING_BRACKET.
Kevin Coxfb0220e2019-03-14 14:18:34 +0000156- Re-enable removal of extra lines on the boundaries of formatted regions.
Bill Wendling07a7d592019-03-26 17:07:58 -0700157- Adjust list splitting to avoid splitting before a dictionary element, because
158 those are likely to be split anyway. If we do split, it leads to horrible
159 looking code.
Bill Wendling14ae9192019-04-07 02:15:26 -0700160- Dictionary arguments were broken in a recent version. It resulted in
161 unreadable formatting, where the remaining arguments were indented far more
162 than the dictionary. Fixed so that if the dictionary is the first argument in
163 a function call and doesn't fit on a single line, then it forces a split.
Bill Wendling726dce12019-04-07 02:48:45 -0700164- Improve the connectiveness between items in a list. This prevents random
165 splitting when it's not 100% necessary.
Bill Wendlinga293e922019-04-07 03:41:17 -0700166- Don't remove a comment attached to a previous object just because it's part
167 of the "prefix" of a function/class node.
Bill Wendlinga4d0b6d2019-02-09 06:01:29 -0800168
Bill Wendling37f675d2019-02-08 23:07:28 -0800169## [0.26.0] 2019-02-08
Bill Wendlingceed6ab2018-12-04 19:40:12 -0800170### Added
171- `ALLOW_SPLIT_BEFORE_DEFAULT_OR_NAMED_ASSIGNS` allows us to split before
172 default / named assignments.
Harald Husum4f21ba62019-02-08 11:15:17 +0100173- `ARITHMETIC_PRECEDENCE_INDICATION` removes spacing around binary operators
174 if they have higher precedence than other operators in the same expression.
David Brownell7703a4e2018-12-02 10:03:24 -0800175### Changed
176- `SPACES_BEFORE_COMMENT` can now be assigned to a specific value (standard
Alessandro Pietro Bardellia017b732019-03-12 17:19:27 +0100177 behavior) or a list of column values. When assigned to a list, trailing
David Brownell7703a4e2018-12-02 10:03:24 -0800178 comments will be horizontally aligned to the first column value within
179 the list that is greater than the maximum line length in the block.
Bill Wendling00af74e2018-12-04 19:14:10 -0800180- Don't modify the vertical spacing of a line that has a comment "pylint:
181 disable=line-too-long". The line is expected to be too long.
Yinyin L5314aeb2019-01-20 01:36:57 +0800182- improved `CONTINUATION_ALIGN_STYLE` to accept quoted or underline-separated
183 option value for passing option with command line arguments.
Bill Wendling225ad432018-11-27 23:57:42 -0800184### Fixed
185- When retrieving the opening bracket make sure that it's actually an opening
186 bracket.
Bill Wendling480143c2018-11-28 00:50:16 -0800187- Don't completely deny a lambda formatting if it goes over the column limit.
188 Split only if absolutely necessary.
Bill Wendling30dbe322018-11-28 01:04:08 -0800189- Bump up penalty for splitting before a dot ('.').
Bill Wendling84a3d9d2018-12-04 16:35:24 -0800190- Ignore pseudo tokens when calculating split penalties.
191- Increase the penalty for splitting before the first bit of a subscript.
Bill Wendlingf2692e22018-12-04 17:27:59 -0800192- Improve splitting before dictionary values. Look more closely to see if the
193 dictionary entry is a container. If so, then it's probably split over
194 multiple lines with the opening bracket on the same line as the key.
195 Therefore, we shouldn't enforce a split because of that.
Bill Wendling05706ac2018-12-05 03:44:47 -0800196- Increase split penalty around exponent operator.
Harald Husumc7128932019-02-08 16:31:41 +0100197- Correct spacing when using binary operators on strings with the
198 `NO_SPACES_AROUND_SELECTED_BINARY_OPERATORS` option enabled.
Bill Wendling225ad432018-11-27 23:57:42 -0800199
200## [0.25.0] 2018-11-25
Bill Wendlingc7ff59f2018-09-07 04:06:57 -0700201### Added
202- Added `INDENT_BLANK_LINES` knob to select whether the blank lines are empty
203 or indented consistently with the current block.
Bill Wendling868fa312018-11-25 00:08:31 -0800204- Support additional file exclude patterns in .yapfignore file.
Bill Wendling72d83a12018-09-07 04:09:53 -0700205### Fixed
206- Correctly determine if a scope is the last in line. It avoids a wrong
207 computation of the line end when determining if it must split after the
208 opening bracket with `DEDENT_CLOSING_BRACKETS` enabled.
Bill Wendlingc7ff59f2018-09-07 04:06:57 -0700209
Bill Wendling259f5992018-09-07 04:02:43 -0700210## [0.24.0] 2018-09-07
Bill Wendling49003a82018-08-27 18:30:38 -0700211### Added
212- Added 'SPLIT_BEFORE_DOT' knob to support "builder style" calls. The "builder
213 style" option didn't work as advertised. Lines would split after the dots,
214 not before them regardless of the penalties.
Bill Wendling3d2ce8f2018-09-07 03:20:30 -0700215### Changed
216- Support Python 3.7 in the tests. The old "comp_for" and "comp_if" nodes are
217 now "old_comp_for" and "old_comp_if" in lib2to3.
Bill Wendlingfcbfee12018-08-28 17:46:41 -0700218### Fixed
219- Don't count inner function calls when marking arguments as named assignments.
Bill Wendlingea904bd2018-08-28 18:08:23 -0700220- Make sure that tuples and the like are formatted nicely if they all can't fit
221 on a single line. This is similar to how we format function calls within an
222 argument list.
Bill Wendling931f4322018-09-03 18:12:13 -0700223- Allow splitting in a subscript if it goes over the line limit.
Bill Wendling30155be2018-09-03 18:54:38 -0700224- Increase the split penalty for an if-expression.
Bill Wendling50e54422018-09-03 19:34:51 -0700225- Increase penalty for splitting in a subscript so that it's more likely to
226 split in a function call or other data literal.
Bill Wendling29710012018-09-07 02:55:56 -0700227- Cloning a pytree node doesn't transfer its a annotations. Make sure we do
228 that so that we don't lose information.
Bill Wendlingeb950082018-09-07 03:41:00 -0700229- Revert change that broke the "no_spaces_around_binary_operators" option.
Bill Wendling86b27ee2018-09-07 03:56:57 -0700230- The "--style-help" option would output string lists and sets in Python types.
231 If the output was used as a style, then it wouldn't parse those values
232 correctly.
Bill Wendling49003a82018-08-27 18:30:38 -0700233
Bill Wendlingffd72cb2018-08-27 05:09:42 -0700234## [0.23.0] 2018-08-27
Bill Wendling49225492018-07-01 23:02:35 -0700235### Added
236- `DISABLE_ENDING_COMMA_HEURISTIC` is a new knob to disable the heuristic which
237 splits a list onto separate lines if the list is comma-terminated.
Bill Wendling19dbc7a2018-05-21 14:29:10 -0700238### Fixed
239- There's no need to increase N_TOKENS. In fact, it causes other things which
240 use lib2to3 to fail if called from YAPF.
Bill Wendlinga1001b12018-07-01 22:25:30 -0700241- Change the exception message instead of creating a new one that's just a
242 clone.
Bill Wendlingdd9f72b2018-08-26 20:05:26 -0700243- Make sure not to reformat when a line is disabled even if the --lines option
244 is specified.
Bill Wendlingdc94ddb2018-08-26 21:34:09 -0700245- The "no spaces around operators" flag wasn't correctly converting strings to
246 sets. Changed the regexp to handle it better.
Bill Wendling19dbc7a2018-05-21 14:29:10 -0700247
Bill Wendlingd52ae2a2018-05-15 22:24:24 -0700248## [0.22.0] 2018-05-15
Dan Porter61d88092018-03-22 12:52:16 +0000249### Added
250- The `BLANK_LINE_BEFORE_MODULE_DOCSTRING` knob adds a blank line before a
251 module's docstring.
cardenb83a62ad2018-05-14 22:54:12 -0700252- The `SPLIT_ALL_COMMA_SEPARATED_VALUES` knob causes all lists, tuples, dicts
253 function defs, etc... to split on all values, instead of maximizing the
254 number of elements on each line, when not able to fit on a single line.
Bill Wendling3bab5842018-03-26 22:26:06 -0700255### Changed
256- Improve the heuristic we use to determine when to split at the start of a
257 function call. First check whether or not all elements can fit in the space
258 without wrapping. If not, then we split.
Bill Wendling2b0b2ca2018-03-26 22:56:55 -0700259- Check all of the elements of a tuple. Similarly to how arguments are
260 analyzed. This allows tuples to be split more rationally.
Bill Wendling8f8c5f52018-03-27 13:43:11 -0700261- Adjust splitting penalties around arithmetic operators so that the code can
262 flow more freely. The code must flow!
Bill Wendling4ddb2fe2018-03-27 15:31:54 -0700263- Try to meld an argument list's closing parenthesis to the last argument.
Bill Wendlingd5df2082018-03-26 23:25:45 -0700264### Fixed
265- Attempt to determine if long lambdas are allowed. This can be done on a
266 case-by-case basis with a "pylint" disable comment.
Bill Wendling3d9e9982018-03-27 00:15:30 -0700267- A comment before a decorator isn't part of the decorator's line.
Bill Wendlingd059cc42018-03-30 20:45:14 -0700268- Only force a new wrapped line after a comment in a decorator when it's the
269 first token in the decorator.
Dan Porter61d88092018-03-22 12:52:16 +0000270
Bill Wendling06a23402018-03-18 20:42:05 -0700271## [0.21.0] 2018-03-18
Patryk Zawadzki6d79f132018-02-13 16:31:25 +0100272### Added
273- Introduce a new option of formatting multiline literals. Add
274 `SPLIT_BEFORE_CLOSING_BRACKET` knob to control whether closing bracket should
275 get their own line.
Yinyin La56072f2018-03-05 02:04:34 +0800276- Added `CONTINUATION_ALIGN_STYLE` knob to choose continuation alignment style
277 when `USE_TABS` is enabled.
Markus Gerstel52ca45a2018-02-14 17:07:35 +0000278- Add 'BLANK_LINES_AROUND_TOP_LEVEL_DEFINITION' knob to control the number
279 of blank lines between top-level function and class definitions.
Bill Wendling338c1c42018-03-14 23:59:49 -0700280### Fixed
281- Don't split ellipses.
Patryk Zawadzki6d79f132018-02-13 16:31:25 +0100282
Bill Wendling6e83cf32018-02-12 13:22:47 -0800283## [0.20.2] 2018-02-12
Bill Wendling9e3dc4e2018-01-24 11:19:24 -0800284### Changed
285- Improve the speed at which files are excluded by ignoring them earlier.
Bill Wendling6ae096b2018-01-25 22:22:31 -0800286- Allow dictionaries to stay on a single line if they only have one entry
Bill Wendlingd3775492018-01-14 17:43:10 -0800287### Fixed
288- Use tabs when constructing a continuation line when `USE_TABS` is enabled.
Bill Wendling7c316cc2018-01-24 12:35:26 -0800289- A dictionary entry may not end in a colon, but may be an "unpacking"
Christian Clauss633744e2021-09-16 20:04:21 +0200290 operation: `**foo`. Take that into account and don't split after the
Bill Wendling7c316cc2018-01-24 12:35:26 -0800291 unpacking operator.
Bill Wendlingd3775492018-01-14 17:43:10 -0800292
Bill Wendling06c973f2018-01-13 22:04:00 -0800293## [0.20.1] 2018-01-13
Bill Wendlinga0de11a2017-12-17 23:58:02 -0800294### Fixed
295- Don't treat 'None' as a keyword if calling a function on it, like '__ne__()'.
Petter Strandmark4d2bee02018-01-10 21:42:37 +0100296- use_tabs=True always uses a single tab per indentation level; spaces are
297 used for aligning vertically after that.
Bill Wendling06c973f2018-01-13 22:04:00 -0800298- Relax the split of a paren at the end of an if statement. With
delirious-lettuceb795f6d2018-01-16 20:38:46 -0700299 `dedent_closing_brackets` option requires that it be able to split there.
Bill Wendlinga0de11a2017-12-17 23:58:02 -0800300
Bill Wendling0b8364e2017-11-14 23:45:50 -0800301## [0.20.0] 2017-11-14
Matthew Suozzof0211052017-11-01 17:52:28 -0400302### Added
303- Improve splitting of comprehensions and generators. Add
304 `SPLIT_PENALTY_COMPREHENSION` knob to control preference for keeping
305 comprehensions on a single line and `SPLIT_COMPLEX_COMPREHENSION` to enable
306 splitting each clause of complex comprehensions onto its own line.
Bill Wendling8c07cc12017-10-16 00:37:58 -0700307### Changed
308- Take into account a named function argument when determining if we should
309 split before the first argument in a function call.
Bill Wendling1dc75ac2017-10-16 02:45:46 -0700310- Split before the first argument in a function call if the arguments contain a
311 dictionary that doesn't fit on a single line.
Bill Wendlingb1c7ca82017-10-21 00:02:49 -0700312- Improve splitting of elements in a tuple. We want to split if there's a
313 function call in the tuple that doesn't fit on the line.
Bill Wendling7bfc0a92017-10-16 03:22:19 -0700314### Fixed
315- Enforce spaces between ellipses and keywords.
Bill Wendlingbd9d9552017-10-16 22:45:17 -0700316- When calculating the split penalty for a "trailer", process the child nodes
317 afterwards because their penalties may change. For example if a list
318 comprehension is an argument.
Bill Wendlingd404b702017-10-16 23:16:14 -0700319- Don't enforce a split before a comment after the opening of a container if it
320 doesn't it on the current line. We try hard not to move such comments around.
Bill Wendlingca46e862017-10-24 00:46:11 -0700321- Use a TextIOWrapper when reading from stdin in Python3. This is necessary for
322 some encodings, like cp936, used on Windows.
Matthew Suozzo2112ad22017-10-29 18:23:03 -0400323- Remove the penalty for a split before the first argument in a function call
324 where the only argument is a generator expression.
Bill Wendling8c07cc12017-10-16 00:37:58 -0700325
Bill Wendling4d9b9052017-10-14 15:02:31 -0700326## [0.19.0] 2017-10-14
Bill Wendling9680f732017-10-09 01:11:38 -0700327### Added
328- Added `SPLIT_BEFORE_EXPRESSION_AFTER_OPENING_PAREN` that enforces a split
329 after the opening paren of an expression that's surrounded by parens.
Bill Wendling5f83cfb2017-10-08 01:12:27 -0700330### Changed
331- Split before the ending bracket of a comma-terminated tuple / argument list
332 if it's not a single element tuple / arg list.
Bill Wendlingba55eb12017-09-19 14:30:02 -0700333### Fixed
334- Prefer to split after a comma in an argument list rather than in the middle
335 of an argument.
Bill Wendling61f93c32017-10-01 00:35:30 -0700336- A non-multiline string may have newlines if it contains continuation markers
337 itself. Don't add a newline after the string when retaining the vertical
338 space.
Bill Wendling9df211b2017-10-01 01:12:22 -0700339- Take into account the "async" keyword when determining if we must split
340 before the first argument.
Bill Wendling74911872017-10-04 02:59:30 -0700341- Increase affinity for "atom" arguments in function calls. This helps prevent
342 lists from being separated when they don't need to be.
Bill Wendlingb00e4f62017-10-07 03:22:12 -0700343- Don't place a dictionary argument on its own line if it's the last argument
344 in the function call where that function is part of a builder-style call.
Bill Wendlinga531f212017-10-12 15:58:29 -0700345- Append the "var arg" type to a star in a star_expr.
Bill Wendlingba55eb12017-09-19 14:30:02 -0700346
Bill Wendling7ef7e142017-09-18 16:59:48 -0700347## [0.18.0] 2017-09-18
Bill Wendling8a3b71f2017-08-26 02:34:03 -0700348### Added
349- Option `ALLOW_SPLIT_BEFORE_DICT_VALUE` allows a split before a value. If
350 False, then it won't be split even if it goes over the column limit.
Bill Wendling855860e2017-08-24 21:31:33 -0700351### Changed
352- Use spaces around the '=' in a typed name argument to align with 3.6 syntax.
Bill Wendling8012f592017-08-21 01:23:18 -0700353### Fixed
354- Allow semicolons if the line is disabled.
Bouwe Andelaf6dba622017-08-21 21:33:23 +0200355- Fix issue where subsequent comments at decreasing levels of indentation
356 were improperly aligned and/or caused output with invalid syntax.
Bill Wendling562e04c2017-08-23 02:32:11 -0700357- Fix issue where specifying a line range removed a needed line before a
358 comment.
Bill Wendling6e7f5a82017-08-24 20:15:08 -0700359- Fix spacing between unary operators if one is 'not'.
Bill Wendling578854b2017-08-24 22:26:59 -0700360- Indent the dictionary value correctly if there's a multi-line key.
Bill Wendling8ee1b532017-09-06 13:58:32 -0700361- Don't remove needed spacing before a comment in a dict when in "chromium"
362 style.
Bill Wendling6412ce72017-09-18 16:18:48 -0700363- Increase indent for continuation line with same indent as next logical line
364 with 'async with' statement.
Bill Wendling8012f592017-08-21 01:23:18 -0700365
Bill Wendling5f737202017-08-20 22:03:12 -0700366## [0.17.0] 2017-08-20
Jiri Kuncarf14bd172017-07-21 09:45:31 +0200367### Added
368- Option `NO_SPACES_AROUND_SELECTED_BINARY_OPERATORS` prevents adding spaces
369 around selected binary operators, in accordance with the current style guide.
Kevin Coxc565e832017-07-21 13:50:47 +0100370### Changed
371- Adjust blank lines on formatting boundaries when using the `--lines` option.
Bill Wendling71d9b2e2017-08-01 13:38:54 -0700372- Return 1 if a diff changed the code. This is in line with how GNU diff acts.
Max Vorobev3b903112017-08-26 14:43:48 +0300373- Add `-vv` flag to print out file names as they are processed
Richard Wallacad4ce2017-08-04 15:08:40 +0100374### Fixed
375- Corrected how `DEDENT_CLOSING_BRACKETS` and `COALESCE_BRACKETS` interacted.
Bill Wendlingb0de56d2017-08-12 15:21:12 -0700376- Fix return value to return a boolean.
Anton Yuzhaninovdb85e872017-07-19 22:45:45 -0400377- Correct vim plugin not to clobber edited code if yapf returns an error.
Justin Huang767edac2017-08-12 17:36:41 -0700378- Ensured comma-terminated tuples with multiple elements are split onto separate lines.
Kevin Coxc565e832017-07-21 13:50:47 +0100379
Bill Wendling4aa43d82017-07-13 00:45:39 -0700380## [0.16.3] 2017-07-13
Bill Wendling81a6d842017-07-12 23:58:17 -0700381### Changed
delirious-lettuceb795f6d2018-01-16 20:38:46 -0700382- Add filename information to a ParseError exception.
Bill Wendling77ca21d2017-03-28 00:41:18 -0700383### Fixed
Bill Wendling4aa43d82017-07-13 00:45:39 -0700384- A token that ends in a continuation marker may have more than one newline in
385 it, thus changing its "lineno" value. This can happen if multiple
386 continuation markers are used with no intervening tokens. Adjust the line
387 number to account for the lines covered by those markers.
388- Make sure to split after a comment even for "pseudo" parentheses.
389
390## [0.16.2] 2017-05-19
391### Fixed
Bill Wendling77ca21d2017-03-28 00:41:18 -0700392- Treat expansion operators ('*', '**') in a similar way to function calls to
393 avoid splitting directly after the opening parenthesis.
394- Increase the penalty for splitting after the start of a tuple.
Bill Wendlinge67e3532017-03-31 00:43:00 -0700395- Increase penalty for excess characters.
Bill Wendling16becc52017-04-02 19:52:49 -0700396- Check that we have enough children before trying to access them all.
Bill Wendlingda3697c2017-04-13 00:32:09 -0700397- Remove trailing whitespaces from comments.
Bill Wendlinga36bb6d2017-04-16 18:51:53 -0700398- Split before a function call in a list if the full list isn't able to fit on
399 a single line.
Bill Wendling1cfcbd12017-04-17 19:38:28 -0700400- Trying not to split around the '=' of a named assign.
Bill Wendling81a6d842017-07-12 23:58:17 -0700401- Changed split before the first argument behavior to ignore compound
402 statements like if and while, but not function declarations.
403- Changed coalesce brackets not to line split before closing bracket.
Bill Wendling77ca21d2017-03-28 00:41:18 -0700404
Bill Wendling5ca31092017-03-22 11:41:07 -0700405## [0.16.1] 2017-03-22
Bill Wendling5a1e3312017-02-14 18:40:43 -0800406### Changed
407- Improved performance of cloning the format decision state object. This
408 improved the time in one *large* case from 273.485s to 234.652s.
Bill Wendlingc2f520c2017-02-15 22:03:18 -0800409- Relax the requirement that a named argument needs to be on one line. Going
410 over the column limit is more of an issue to pylint than putting named args
411 on multiple lines.
Bill Wendling79b82ef2017-02-17 00:24:51 -0800412- Don't make splitting penalty decisions based on the original formatting. This
413 can and does lead to non-stable formatting, where yapf will reformat the same
414 code in different ways.
Bill Wendlinga9529662017-02-06 21:47:39 -0800415### Fixed
416- Ensure splitting of arguments if there's a named assign present.
Bill Wendling56f0fb62017-02-06 22:58:05 -0800417- Prefer to coalesce opening brackets if it's not at the beginning of a
418 function call.
Bill Wendling313c65a2017-02-17 01:56:45 -0800419- Prefer not to squish all of the elements in a function call over to the
420 right-hand side. Split the arguments instead.
Bill Wendling257c1b02017-02-20 15:32:29 -0800421- We need to split a dictionary value if the first element is a comment anyway,
422 so don't force the split here. It's forced elsewhere.
CaselITd69801d2017-02-21 13:45:13 +0100423- Ensure tabs are used for continued indentation when USE_TABS is True.
Bill Wendlinga9529662017-02-06 21:47:39 -0800424
Bill Wendling873039e2017-02-05 20:24:46 -0800425## [0.16.0] 2017-02-05
Bill Wendling0e9b3212017-01-31 14:41:00 -0800426### Added
427- The `EACH_DICT_ENTRY_ON_SEPARATE_LINE` knob indicates that each dictionary
428 entry should be in separate lines if the full dictionary isn't able to fit on
429 a single line.
430- The `SPLIT_BEFORE_DICT_SET_GENERATOR` knob splits before the `for` part of a
431 dictionary/set generator.
Bill Wendling9f497522017-02-04 04:39:47 -0800432- The `BLANK_LINE_BEFORE_CLASS_DOCSTRING` knob adds a blank line before a
433 class's docstring.
Bill Wendling8d321362017-02-05 18:29:26 -0800434- The `ALLOW_MULTILINE_DICTIONARY_KEYS` knob allows dictionary keys to span
435 more than one line.
Bill Wendling94962e52017-02-04 04:07:19 -0800436### Fixed
437- Split before all entries in a dict/set or list maker when comma-terminated,
438 even if there's only one entry.
Adrian Tejn Kernbfee67d2017-02-05 08:36:02 +0100439- Will now try to set O_BINARY mode on stdout under Windows and Python 2.
440- Avoid unneeded newline transformation when writing formatted code to
441 output on (affects only Python 2)
Bill Wendling0e9b3212017-01-31 14:41:00 -0800442
Bill Wendling3d470dd2017-01-29 19:45:13 -0800443## [0.15.2] 2017-01-29
Bill Wendlingbf631182017-01-24 15:34:35 -0800444### Fixed
445- Don't perform a global split when a named assign is part of a function call
446 which itself is an argument to a function call. I.e., don't cause 'a' to
447 split here:
448
449 func(a, b, c, d(x, y, z=42))
Bill Wendlingb64e7022017-01-25 09:44:41 -0800450- Allow splitting inside a subscript if it's a logical or bitwise operating.
451 This should keep the subscript mostly contiguous otherwise.
Bill Wendlingbf631182017-01-24 15:34:35 -0800452
Bill Wendling5d7b3612017-01-21 23:43:35 -0800453## [0.15.1] 2017-01-21
Bill Wendling672ece02017-01-14 16:35:48 -0800454### Fixed
455- Don't insert a space between a type hint and the '=' sign.
Bill Wendlingb57e71c2017-01-14 16:51:35 -0800456- The '@' operator can be used in Python 3 for matrix multiplication. Give the
457 '@' in the decorator a DECORATOR subtype to distinguish it.
Bill Wendlingfd30b912017-01-15 16:45:24 -0800458- Encourage the formatter to split at the beginning of an argument list instead
459 of in the middle. Especially if the middle is an empty parameter list. This
460 adjusts the affinity of binary and comparison operators. In particular, the
461 "not in" and other such operators don't want to have a split after it (or
462 before it) if at all possible.
Bill Wendling672ece02017-01-14 16:35:48 -0800463
Bill Wendling61061f62017-01-12 20:58:55 -0800464## [0.15.0] 2017-01-12
465### Added
466- Keep type annotations intact as much as possible. Don't try to split the over
delirious-lettuceb795f6d2018-01-16 20:38:46 -0700467 multiple lines.
Bill Wendlingb50a6b22016-11-27 17:06:58 -0800468### Fixed
469- When determining if each element in a dictionary can fit on a single line, we
470 are skipping dictionary entries. However, we need to ignore comments in our
471 calculations and implicitly concatenated strings, which are already placed on
472 separate lines.
Bill Wendling596300d2016-11-28 13:08:57 -0800473- Allow text before a "pylint" comment.
Bill Wendlingeb979f32016-11-28 13:16:04 -0800474- Also allow text before a "yapf: (disable|enable)" comment.
Bill Wendlingb50a6b22016-11-27 17:06:58 -0800475
Bill Wendling544a2812016-11-21 15:29:19 -0800476## [0.14.0] 2016-11-21
Bill Wendling61061f62017-01-12 20:58:55 -0800477### Added
Diogo de Campos2f246c02016-10-06 14:04:38 +0200478- formatting can be run in parallel using the "-p" / "--parallel" flags.
Bill Wendling6041f222016-11-02 01:07:39 -0700479### Fixed
480- "not in" and "is not" should be subtyped as binary operators.
Bill Wendlingccea10e2016-11-08 16:26:21 -0800481- A non-Node dictionary value may have a comment before it. In those cases, we
482 want to avoid encompassing only the comment in pseudo parens. So we include
483 the actual value as well.
Bill Wendlingf7286532016-11-16 17:52:50 -0800484- Adjust calculation so that pseudo-parentheses don't count towards the total
485 line length.
Bill Wendling508694b2016-11-20 23:52:52 -0800486- Don't count a dictionary entry as not fitting on a single line in a
487 dictionary.
Bill Wendling47c3e4f2016-11-21 15:25:09 -0800488- Don't count pseudo-parentheses in the length of the line.
Bill Wendling6041f222016-11-02 01:07:39 -0700489
Bill Wendling35d6b7c2016-10-22 01:18:51 -0700490## [0.13.2] 2016-10-22
491### Fixed
492- REGRESSION: A comment may have a prefix with newlines in it. When calculating
493 the prefix indent, we cannot take the newlines into account. Otherwise, the
494 comment will be misplaced causing the code to fail.
495
Bill Wendlingf3e09652016-10-17 14:26:41 -0700496## [0.13.1] 2016-10-17
497### Fixed
498- Correct emitting a diff that was accidentally removed.
499
Bill Wendling31f82132016-10-16 22:54:01 -0700500## [0.13.0] 2016-10-16
Bill Wendlingcec6b192016-10-16 00:30:02 -0500501### Added
502- Added support to retain the original line endings of the source code.
503
Bill Wendlinga5a52e22016-10-11 13:40:38 -0700504### Fixed
505- Functions or classes with comments before them were reformatting the comments
506 even if the code was supposed to be ignored by the formatter. We now don't
507 adjust the whitespace before a function's comment if the comment is a
508 "disabled" line. We also don't count "# yapf: {disable|enable}" as a disabled
509 line, which seems logical.
Bill Wendlinge6c93572016-10-11 20:26:23 -0700510- It's not really more readable to split before a dictionary value if it's part
511 of a dictionary comprehension.
Bill Wendling556f9152016-10-13 01:27:38 -0700512- Enforce two blank lines after a function or class definition, even before a
Bill Wendling7cc4d182016-10-13 11:26:26 -0700513 comment. (But not between a decorator and a comment.) This is related to PEP8
514 error E305.
Bill Wendling0d372eb2016-10-14 00:36:21 -0700515- Remove O(n^2) algorithm from the line disabling logic.
Bill Wendlinga5a52e22016-10-11 13:40:38 -0700516
Bill Wendlingc2620f92016-10-09 20:40:15 -0700517## [0.12.2] 2016-10-09
Bill Wendling293cb6c2016-10-02 16:46:11 -0700518### Fixed
519- If `style.SetGlobalStyle(<create pre-defined style>)` was called and then
520 `yapf_api.FormatCode` was called, the style set by the first call would be
521 lost, because it would return the style created by `DEFAULT_STYLE_FACTORY`,
522 which is set to PEP8 by default. Fix this by making the first call set which
523 factory we call as the "default" style.
Bill Wendling85b5a632016-10-03 20:30:43 -0700524- Don't force a split before non-function call arguments.
Bill Wendling261c79a2016-10-03 20:58:08 -0700525- A dictionary being used as an argument to a function call and which can exist
526 on a single line shouldn't be split.
Bill Wendling35edcbd2016-10-03 22:33:34 -0700527- Don't rely upon the original line break to determine if we should split
Bill Wendlingc18abac2016-10-03 22:49:52 -0700528 before the elements in a container. Especially split if there's a comment in
529 the container.
Bill Wendling690132a2016-10-04 22:55:47 -0700530- Don't add spaces between star and args in a lambda expression.
Bill Wendlingeef8fbd2016-10-05 00:34:25 -0700531- If a nested data structure terminates in a comma, then split before the first
532 element, but only if there's more than one element in the list.
Bill Wendling293cb6c2016-10-02 16:46:11 -0700533
534## [0.12.1] 2016-10-02
Bill Wendling1960ffc2016-10-01 23:57:05 -0700535### Changed
536- Dictionary values will be placed on the same line as the key if *all* of the
537 elements in the dictionary can be placed on one line. Otherwise, the
538 dictionary values will be placed on the next line.
539
Bill Wendlinge0412442016-09-28 02:19:31 -0700540### Fixed
541- Prefer to split before a terminating r-paren in an argument list if the line
542 would otherwise go over the column limit.
Bill Wendling21836ef2016-09-28 19:13:16 -0700543- Split before the first key in a dictionary if the dictionary cannot fit on a
544 single line.
Bill Wendling61997072016-09-30 00:45:59 -0700545- Don't count "pylint" comments when determining if the line goes over the
546 column limit.
Bill Wendling0e703572016-10-01 23:02:32 -0700547- Don't count the argument list of a lambda as a named assign in a function
548 call.
Bill Wendlinge0412442016-09-28 02:19:31 -0700549
Bill Wendling1b919632016-09-25 16:03:04 -0700550## [0.12.0] 2016-09-25
Bill Wendling90eab552016-08-19 23:47:23 -0700551### Added
552- Support formatting of typed names. Typed names are formatted a similar way to
553 how named arguments are formatted, except that there's a space after the
554 colon.
Alexander Lenz5fda36a2016-08-26 17:27:57 +0200555- Add a knob, 'SPACES_AROUND_DEFAULT_OR_NAMED_ASSIGN', to allow adding spaces
556 around the assign operator on default or named assigns.
Bill Wendling90eab552016-08-19 23:47:23 -0700557
Bill Wendling7c7f6032016-08-31 10:46:33 -0700558## Changed
559- Turn "verification" off by default for external APIs.
Bill Wendlingf0dd0a42016-09-25 15:54:02 -0700560- If a function call in an argument list won't fit on the current line but will
561 fit on a line by itself, then split before the call so that it won't be split
562 up unnecessarily.
Bill Wendling7c7f6032016-08-31 10:46:33 -0700563
Bill Wendlinga6fb6f72016-09-17 14:39:26 -0700564## Fixed
565- Don't add space after power operator if the next operator's a unary operator.
566
Bill Wendling79ee44a2016-08-17 00:33:02 -0700567## [0.11.1] 2016-08-17
Bill Wendling7b87b0a2016-08-17 00:01:56 -0700568### Changed
569- Issue #228: Return exit code 0 on success, regardless of whether files were
570 changed. (Previously, 0 meant success with no files
571 modified, and 2 meant success with at least one file modified.)
572
Bill Wendlingf4de4c62016-07-21 00:08:29 -0700573### Fixed
574- Enforce splitting each element in a dictionary if comma terminated.
Bill Wendlingb8d20bd2016-08-05 23:44:23 -0700575- It's okay to split in the middle of a dotted name if the whole expression is
576 going to go over the column limit.
Bill Wendling15edda22016-08-15 17:04:26 -0700577- Asynchronous functions were going missing if they were preceded by a comment
578 (a what? exactly). The asynchronous function processing wasn't taking the
579 comment into account and thus skipping the whole function.
Bill Wendling7b87b0a2016-08-17 00:01:56 -0700580- The splitting of arguments when comma terminated had a conflict. The split
581 penalty of the closing bracket was set to the maximum, but it shouldn't be if
582 the closing bracket is preceded by a comma.
Reece Hart039c0b52016-08-11 13:46:15 -0700583
Bill Wendling1d8638e2016-07-17 00:06:01 -0700584## [0.11.0] 2016-07-17
Ben Plotnick7e088292016-06-09 18:29:56 -0700585### Added
586- The COALESCE_BRACKETS knob prevents splitting consecutive brackets when
587 DEDENT_CLOSING_BRACKETS is set.
Bill Wendling61e80c02016-07-14 16:50:10 -0700588- Don't count "pylint" directives as exceeding the column limit.
Ben Plotnick7e088292016-06-09 18:29:56 -0700589
Bill Wendling33636712016-07-16 02:49:28 -0700590### Changed
591- We split all of the arguments to a function call if there's a named argument.
Bill Wendling2df29282016-07-16 17:23:41 -0700592 In this case, we want to split after the opening bracket too. This makes
Bill Wendling33636712016-07-16 02:49:28 -0700593 things look a bit better.
594
Bill Wendling4761b182016-07-03 00:11:14 -0700595### Fixed
596- When retaining format of a multiline string with Chromium style, make sure
597 that the multiline string doesn't mess up where the following comma ends up.
Bill Wendling821a36f2016-07-13 23:02:16 -0700598- Correct for when 'lib2to3' smooshes comments together into the same DEDENT
599 node.
Bill Wendling4761b182016-07-03 00:11:14 -0700600
Bill Wendling7521d4b2016-06-14 01:35:38 -0700601## [0.10.0] 2016-06-14
Draconye582d632016-06-05 11:48:26 +0200602### Added
603- Add a knob, 'USE_TABS', to allow using tabs for indentation.
Bill Wendling184c2de2016-06-13 03:21:04 -0700604
Bill Wendlingb0285ba2016-05-31 16:10:59 -0700605### Changed
606- Performance enhancements.
607
Draconye582d632016-06-05 11:48:26 +0200608### Fixed
Bill Wendlingd02b5922016-06-03 23:48:19 -0700609- Don't split an import list if it's not surrounded by parentheses.
610
Bill Wendling90f361f2016-05-29 16:13:10 -0700611## [0.9.0] 2016-05-29
Bill Wendlinga6988c32016-05-22 18:47:11 -0700612### Added
Bill Wendling1e161592016-05-23 16:34:03 -0700613- Added a knob (SPLIT_PENALTY_BEFORE_IF_EXPR) to adjust the split penalty
614 before an if expression. This allows the user to place a list comprehension
615 all on one line.
616- Added a knob (SPLIT_BEFORE_FIRST_ARGUMENT) that encourages splitting before
617 the first element of a list of arguments or parameters if they are going to
618 be split anyway.
Bill Wendling86e51782016-05-24 00:47:44 -0700619- Added a knob (SPLIT_ARGUMENTS_WHEN_COMMA_TERMINATED) splits arguments to a
620 function if the list is terminated by a comma.
Bill Wendlinga6988c32016-05-22 18:47:11 -0700621
Bill Wendling7edb3842016-05-21 15:07:54 -0700622### Fixed
623- Don't split before a first element list argument as we would before a first
624 element function call.
Bill Wendlinge8a85692016-05-21 23:57:20 -0700625- Don't penalize when we must split a line.
Bill Wendling283f4ea2016-05-23 16:19:15 -0700626- Allow splitting before the single argument in a function call.
Bill Wendling7edb3842016-05-21 15:07:54 -0700627
Bill Wendlingd2a585d2016-05-21 00:41:24 -0700628## [0.8.2] 2016-05-21
Bill Wendling72cd2342016-05-19 01:28:58 -0700629### Fixed
630- Prefer not to split after the opening of a subscript.
Bill Wendling1e179bb2016-05-19 01:51:34 -0700631- Don't add space before the 'await' keyword if it's preceded by an opening
632 paren.
Bill Wendling4b6cead2016-05-19 11:33:38 -0700633- When we're setting the split penalty for a continuous list, we don't want to
634 mistake a comment at the end of that list as part of the list.
Bill Wendlingda6ab272016-05-19 21:45:34 -0700635- When calculating blank lines, don't assume the last seen object was a class
636 or function when we're in a class or function.
Bill Wendlingf61861d2016-05-21 00:36:27 -0700637- Don't count the closing scope when determining if the current scope is the
638 last scope on the line.
Bill Wendling72cd2342016-05-19 01:28:58 -0700639
Bill Wendlingde2c5b22016-05-18 21:10:29 -0700640## [0.8.1] 2016-05-18
Bill Wendling8f1d1402016-05-14 19:22:48 -0700641### Fixed
642- 'SPLIT_BEFORE_LOGICAL_OPERATOR' wasn't working correctly. The penalty was
643 being set incorrectly when it was part of a larger construct.
Bill Wendling99cbd562016-05-15 18:41:12 -0700644- Don't separate a keyword, like "await", from a left paren.
Bill Wendling311c0872016-05-18 01:51:12 -0700645- Don't rely upon the original tokens' line number to determine if we should
646 perform splitting in Facebook mode. The line number isn't the line number of
647 the reformatted token, but the line number where it was in the original code.
648 Instead, we need to carefully determine if the line is liabel to be split and
649 act accordingly.
Bill Wendling8f1d1402016-05-14 19:22:48 -0700650
Bill Wendlingfe7a4ac2016-05-10 23:51:57 -0700651## [0.8.0] 2016-05-10
Bill Wendling9dc79082016-05-10 00:23:53 -0700652### Added
Bill Wendling43eaa752016-05-12 01:25:20 -0700653- Add a knob, 'SPACES_AROUND_POWER_OPERATOR', to allow adding spaces around the
654 power operator.
Bill Wendling9dc79082016-05-10 00:23:53 -0700655
Bill Wendlingf015a3c2016-04-21 20:14:24 -0700656### Fixed
657- There shouldn't be a space between a decorator and an intervening comment.
Bill Wendling3e15d002016-04-28 00:16:32 -0700658- If we split before a bitwise operator, then we assume that the programmer
659 knows what they're doing, more or less, and so we enforce a split before said
660 operator if one exists in the original program.
Bill Wendlingadf1d442016-05-10 01:03:50 -0700661- Strengthen the bond between a keyword and value argument.
Bill Wendling93c42d92016-05-10 23:35:57 -0700662- Don't add a blank line after a multiline string.
Bill Wendlingcae1edd2016-05-10 23:49:19 -0700663- If the "for" part of a list comprehension can exist on the starting line
664 without going over the column limit, then let it remain there.
Bill Wendlingf015a3c2016-04-21 20:14:24 -0700665
Bill Wendling8d36eb82016-04-21 02:33:36 -0700666## [0.7.1] 2016-04-21
Bill Wendling4dc472d2016-04-10 03:03:55 -0700667### Fixed
668- Don't rewrite the file if there are no changes.
Bill Wendlingac00a252016-04-12 05:31:03 -0700669- Ensure the proper number of blank lines before an async function.
Bill Wendlingc4a49652016-04-13 13:42:43 -0700670- Split after a bitwise operator when in PEP 8 mode.
Bill Wendling423759f2016-04-14 21:14:20 -0700671- Retain the splitting within a dictionary data literal between the key and
672 value.
Bill Wendling9882f3d2016-04-21 02:29:35 -0700673- Try to keep short function calls all on one line even if they're part of a
674 larger series of tokens. This stops us from splitting too much.
Bill Wendling4dc472d2016-04-10 03:03:55 -0700675
Bill Wendlingdefe5f32016-04-09 22:29:51 -0700676## [0.7.0] 2016-04-09
Bill Wendling2e588512016-03-13 01:02:47 -0800677### Added
Bill Wendling5758e4d2016-03-19 03:38:48 -0700678- Support for Python 3.5.
679- Add 'ALLOW_MULTILINE_LAMBDAS' which allows lambdas to be formatted onto
680 multiple lines.
Bill Wendling2e588512016-03-13 01:02:47 -0800681
682### Fixed
683- Lessen penalty for splitting before a dictionary keyword.
Bill Wendling90a2aa52016-03-20 02:25:13 -0700684- Formatting of trailing comments on disabled formatting lines.
Bill Wendling2064d882016-04-09 22:21:15 -0700685- Disable / enable formatting at end of multi-line comment.
Bill Wendling2e588512016-03-13 01:02:47 -0800686
Bill Wendling0bca2aa2016-03-06 20:44:14 -0800687## [0.6.3] 2016-03-06
688### Changed
689- Documentation updated.
690
Bill Wendling95e47b92015-11-04 22:58:30 -0800691### Fixed
692- Fix spacing of multiline comments when formatting is disabled.
693
Bill Wendling9ffd8152015-11-01 17:49:25 -0800694## [0.6.2] 2015-11-01
Bill Wendling6e8ca7b2015-10-25 01:16:43 -0700695### Changed
696- Look at the 'setup.cfg' file to see if it contains style information for
697 YAPF.
Bill Wendling169790e2015-10-25 03:13:13 -0700698- Look at the '~/.config/yapf/style' file to see if it contains global style
699 information for YAPF.
Bill Wendling6e8ca7b2015-10-25 01:16:43 -0700700
Bill Wendling57ffbbb2015-10-25 00:20:14 -0700701### Fixed
702- Make lists that can fit on one line more likely to stay together.
Bill Wendling5091fa62015-10-28 01:51:53 -0700703- Correct formatting of '*args' and '**kwargs' when there are default values in
704 the argument list.
Bill Wendling57ffbbb2015-10-25 00:20:14 -0700705
Bill Wendling348b2f32015-10-24 03:20:10 -0700706## [0.6.1] 2015-10-24
Bill Wendling3a3cb6d2015-10-20 13:40:27 -0700707### Fixed
708- Make sure to align comments in data literals correctly. Also make sure we
709 don't count a "#." in a string as an i18n comment.
Bill Wendlinga6b57a62015-10-20 13:57:52 -0700710- Retain proper vertical spacing before comments in a data literal.
Bill Wendling843e48c2015-10-20 16:53:08 -0700711- Make sure that continuations from a compound statement are distinguished from
712 the succeeding line.
Christian Clauss633744e2021-09-16 20:04:21 +0200713- Ignore preceding comments when calculating what is a "dictionary maker".
Bill Wendlinga5585722015-10-21 15:32:22 -0700714- Add a small penalty for splitting before a closing bracket.
Bill Wendlingdbcf3422015-10-21 22:11:15 -0700715- Ensure that a space is enforced after we remove a pseudo-paren that's between
716 two names, keywords, numbers, etc.
Bill Wendlingf8856722015-10-21 23:53:29 -0700717- Increase the penalty for splitting after a pseudo-paren. This could lead to
718 less readable code in some circumstances.
Bill Wendling3a3cb6d2015-10-20 13:40:27 -0700719
Bill Wendling7ef492b2015-10-18 14:43:06 -0700720## [0.6.0] 2015-10-18
Bill Wendlinga5cef8e2015-10-15 21:42:03 -0700721### Added
722- Add knob to indent the dictionary value if there is a split before it.
723
Bill Wendlingcec66962015-10-17 04:08:23 -0700724### Changed
725- No longer check that a file is a "Python" file unless the '--recursive' flag
726 is specified.
727- No longer allow the user to specify a directory unless the '--recursive' flag
728 is specified.
729
Bill Wendlingc87690c2015-10-11 16:45:21 -0700730### Fixed
731- When determining if we should split a dictionary's value to a new line, use
732 the longest entry instead of the total dictionary's length. This allows the
733 formatter to reformat the dictionary in a more consistent manner.
Bill Wendling0946c0f2015-10-12 00:42:30 -0700734- Improve how list comprehensions are formatted. Make splitting dependent upon
735 whether the "comp_for" or "comp_if" goes over the column limit.
Bill Wendling43bdc7b2015-10-12 14:25:30 -0700736- Don't over indent if expression hanging indents if we expect to dedent the
737 closing bracket.
Bill Wendlingc1052c62015-10-15 03:12:28 -0700738- Improve splitting heuristic when the first argument to a function call is
739 itself a function call with arguments. In cases like this, the remaining
740 arguments to the function call would look badly aligned, even though they are
Christian Clauss633744e2021-09-16 20:04:21 +0200741 technically correct (the best kind of correct!).
Bill Wendlingb1037b52015-10-15 22:38:19 -0700742- Improve splitting heuristic more so that if the first argument to a function
743 call is a data literal that will go over the column limit, then we want to
744 split before it.
Bill Wendling8d8f5122015-10-16 11:46:23 -0700745- Remove spaces around '**' operator.
Bill Wendlingf8325e62015-10-16 15:38:54 -0700746- Retain formatting of comments in the middle of an expression.
Bill Wendling454cef62015-10-18 03:49:03 -0700747- Don't add a newline to an empty file.
Bill Wendling7ef492b2015-10-18 14:43:06 -0700748- Over indent a function's parameter list if it's not distinguished from the
749 body of the function.
Bill Wendlingc87690c2015-10-11 16:45:21 -0700750
Bill Wendling2aff7fc2015-10-11 14:08:10 -0700751## [0.5.0] 2015-10-11
Bill Wendlingd03c99f2015-10-08 21:06:07 -0700752### Added
753- Add option to exclude files/directories from formatting.
Bill Wendling5c608732015-10-10 23:39:16 -0700754- Add a knob to control whether import names are split after the first '('.
Bill Wendlingd03c99f2015-10-08 21:06:07 -0700755
Bill Wendlinga7e3f502015-10-08 00:23:40 -0700756### Fixed
757- Indent the continuation of an if-then statement when it's not distinguished
758 from the body of the if-then.
Bill Wendling1ce18c72015-10-10 23:12:16 -0700759- Allow for sensible splitting of array indices where appropriate.
Bill Wendlingbe974d82015-10-11 01:04:00 -0700760- Prefer to not split before the ending bracket of an atom. This produces
761 better code in most cases.
Bill Wendlingbbd148c2015-10-11 01:45:24 -0700762- Corrected how horizontal spaces were presevered in a disabled region.
Bill Wendlinga7e3f502015-10-08 00:23:40 -0700763
Bill Wendling967c3b22015-10-07 22:20:18 -0700764## [0.4.0] 2015-10-07
Łukasz Langa94089872015-09-22 16:02:26 -0700765### Added
766- Support for dedenting closing brackets, "facebook" style.
767
Bill Wendling25c8e602015-10-04 20:48:35 -0700768### Fixed
769- Formatting of tokens after a multiline string didn't retain their horizontal
770 spacing.
771
Bill Wendling06865ab2015-09-30 01:25:47 -0700772## [0.3.1] 2015-09-30
773### Fixed
774- Format closing scope bracket correctly when indentation size changes.
775
Bill Wendlinga690a622015-09-20 12:38:50 -0700776## [0.3.0] 2015-09-20
777### Added
778- Return a 2 if the source changed, 1 on error, and 0 for no change.
779
780### Fixed
781- Make sure we format if the "lines" specified are in the middle of a
782 statement.
783
Bill Wendling9adfa0c2015-09-13 05:37:30 -0700784## [0.2.9] - 2015-09-13
785### Fixed
786- Formatting of multiple files. It was halting after formatting the first file.
787
Bill Wendlingdcafd5f2015-09-12 15:26:03 -0700788## [0.2.8] - 2015-09-12
789### Added
790- Return a non-zero exit code if the source was changed.
791- Add bitwise operator splitting penalty and prefer to split before bitwise
792 operators.
793
794### Fixed
795- Retain vertical spacing between disabled and enabled lines.
796- Split only at start of named assign.
797- Retain comment position when formatting is disabled.
798- Honor splitting before or after logical ops.