Commit Graph

194 Commits

Author SHA1 Message Date
Łukasz Langa
71bdd727a8 Put missing blank lines after return statements. 2018-08-17 10:29:19 -07:00
Łukasz Langa
ebbb98919d Make schedule_formatting logic less nested. 2018-08-17 10:17:37 -07:00
Łukasz Langa
1dbe77cd91 Simplify caching logic. 2018-08-17 10:14:10 -07:00
Jelle Zijlstra
9e15cacc67 write cache in --check mode (#453)
Fixes #448.

This diff makes us always write to the cache in normal mode, except
if the file is already in the cache, and it makes us write to the
cache in --check mode if the file is already well formatted.

I also fixed some related docstrings.

WriteBack.NO is now used only in tests.
2018-08-17 15:40:37 +01:00
Jelle Zijlstra
cc48bc56ca normalize numeric literals (#454)
Fixes #452

I ended up making a couple of other normalizations to numeric literals
too (lowercase everything, don't allow leading or trailing . in floats,
remove redundant + sign in exponent). I don't care too much about those,
so I'm happy to change the behavior there.

For reference, here is Python's grammar for numeric literals:
https://docs.python.org/3/reference/lexical_analysis.html#numeric-literals
2018-08-17 15:03:58 +01:00
Zsolt Dollenstein
e94a41f92a Look at actual parenthesis when generating ignored leafs.
Fixes #385
2018-07-22 15:30:02 +01:00
Zsolt Dollenstein
dd8bde6d2f Improve get_future_imports implementation.
Closes #389.
2018-07-02 17:49:47 +01:00
Łukasz Langa
41240e9a78 18.6b4 2018-06-21 14:25:07 -07:00
Łukasz Langa
d93e726806 Don't freeze when multiple comments directly precede # fmt: off
Fixes #371
2018-06-21 14:03:01 -07:00
Łukasz Langa
98b6c887da 18.6b3 2018-06-20 12:00:07 -07:00
Łukasz Langa
c2327c83b2 More tests for # fmt: off
Two more known limitations that I don't feel like solving now.  Probably very
low priority.
2018-06-19 23:46:58 -07:00
Łukasz Langa
048efa7476 Trivial nits 2018-06-19 23:08:10 -07:00
Łukasz Langa
2dfa69bb7f Stop Click from crashing Black on invalid environments
Fixes #277
2018-06-19 22:55:57 -07:00
Łukasz Langa
df2ae3bbe6 Use the separate pass for # fmt: off on all code
This removes the hacky exception-based handling that didn't work across
statement boundaries.

Fixes #335
2018-06-19 17:32:41 -07:00
Łukasz Langa
8a8c58252c Support # fmt: off/on pairs within brackets
Fixes #329
2018-06-18 22:37:46 -07:00
Łukasz Langa
e4340f5c3e Cache generated comments 2018-06-18 22:37:46 -07:00
Jelle Zijlstra
9db828c3de Add blank line after constants in stub file (#360)
Fixes #340
2018-06-16 11:53:45 -07:00
Neraste
42a3fe5331 Ignore symbolic links pointing outside of the root directory (#339)
Fixes #338
2018-06-13 00:07:04 -07:00
Zsolt Dollenstein
efcd039482 Fix string normalization eating all backslashes above 3 2018-06-10 09:44:41 +01:00
Łukasz Langa
d240ca25ea Make is_complex_subscript() ignore list literals
This fixes catastrophically quadratic behavior on long lists.
2018-06-09 16:04:09 -07:00
Zsolt Dollenstein
5d0a469e8e Fix string normalization sometimes producing invalid fstrings (#327) 2018-06-09 12:30:49 -07:00
Łukasz Langa
ff2e5dd6e6 18.6b2 2018-06-08 12:07:43 -07:00
Łukasz Langa
8482d38fb4 Return early from comment placement calculation on lines without comments 2018-06-08 12:00:53 -07:00
Loren Carvalho
39e9347687 Add -h as a shortcut for --help (#316) 2018-06-07 19:43:04 -07:00
Zsolt Dollenstein
7f3678885f fix handling of empty triple quoted strings (#314) 2018-06-07 11:41:34 -07:00
Łukasz Langa
489d00ed8f Support pyproject.toml
Fixes #65
2018-06-06 17:02:10 -07:00
Łukasz Langa
92a150d9e4 Fix improper unmodified file caching when -S was used
This will also future-proof the cache to changes to FileMode.
2018-06-06 15:46:30 -07:00
Zsolt Dollenstein
c1a962b885 Don't put a space after * in g = 1, *"x" (#309)
Fixes #305.
2018-06-06 15:44:12 -07:00
Hugo
9e9ee449b4 Link to GitHub + HTTPS + typos (#303)
* Link to GitHub, update 3.6 minor version

* http -> https

* Fix typos

* The Black style for Black, the project, is italics
2018-06-06 09:50:08 -07:00
Łukasz Langa
ed50737290 18.6b1 2018-06-05 09:49:06 -07:00
Peter Bengtsson
aeaaf571ad 🍰 isn't appropriate when it fails, fixes #300 (#301) 2018-06-05 09:35:35 -07:00
Zsolt Dollenstein
61a8d401c7 Print report on stderr.\n\nFixes #299. 2018-06-05 10:38:20 +01:00
Łukasz Langa
f3ea58cbc7 18.6b0
Fixes #289
2018-06-04 21:29:09 -07:00
Łukasz Langa
d638d56e0e Fix unnecessary parentheses when a line contains multiline strings
Fixes #232
2018-06-04 21:27:51 -07:00
Łukasz Langa
23a00f0515 Fix long trivial assignments being wrapped in unnecessary parentheses
Fixes #273
2018-06-04 20:24:50 -07:00
Łukasz Langa
7fc6ce9906 Fix handling of empty files 2018-06-04 19:04:29 -07:00
Łukasz Langa
bbc09a4f01 Consider stars in testlist_star_expr unpacking (because they are)
Fixes #297
2018-06-04 18:42:16 -07:00
Łukasz Langa
728e5a2f1e Properly format unified diff
Previously we weren't using timestamps.
2018-06-04 18:07:03 -07:00
Łukasz Langa
041ec995e5 Nits 2018-06-04 16:57:27 -07:00
Łukasz Langa
ee02ebe3e9 Always show summary of reformatting 2018-06-04 15:53:37 -07:00
Łukasz Langa
ed91dd4de6 Make source handling use sets instead of lists
Also, sort cached file output to be (more) deterministic.
2018-06-04 15:53:37 -07:00
Łukasz Langa
e5452a6b67 Make sure --verbose trumps --quiet
This is so that users can have a --quiet alias in their environment and only
occasionally add --verbose if they are surprised by the result.
2018-06-04 15:53:37 -07:00
Zsolt Dollenstein
00a302560b Preserve line endings when formatting a file in place (#288) 2018-06-04 15:52:06 -07:00
Łukasz Langa
75d2af2e3a Fix missing leading slash due to relative_to() resolution 2018-06-04 12:18:27 -07:00
Łukasz Langa
4c352ad4be Add --verbose and report excluded paths in it, too
Fixes #283
2018-06-04 12:09:18 -07:00
Łukasz Langa
e7b312fb43 [trivial] Simplify mode and write_back calculation in main() 2018-06-04 11:20:15 -07:00
Łukasz Langa
1aa14c5db0 [trivial] Simplify stdin handling 2018-06-04 11:06:38 -07:00
Łukasz Langa
36bed855e1 Introduce "project root" as a concept
This is required for regular expressions in `--include=` and `--exclude=` not
to catch false positives from directories outside of the project.
2018-06-04 11:03:18 -07:00
Łukasz Langa
a80e037a9a Don't over-eagerly make a path absolute if only one passed
If a directory or more than one file is passed, Black nicely shows the relative
paths in output.  Before this change, it showed an absolute path if only
a single file was passed as an argument.  This fixes the inconsistency.
2018-05-31 19:47:24 -07:00
Łukasz Langa
8a82e0bf9a Make empty --include mean "anything goes", simplify gen_python_files_in_dir 2018-05-31 19:40:07 -07:00