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:
Peter Bengtsson [Tue, 5 Jun 2018 16:35:35 +0000 (12:35 -0400)]
✨ 🍰 ✨ isn't appropriate when it fails, fixes #300 (#301)
Zsolt Dollenstein [Tue, 5 Jun 2018 09:38:20 +0000 (10:38 +0100)]
Print report on stderr.\n\nFixes #299.
Łukasz Langa [Tue, 5 Jun 2018 04:29:09 +0000 (21:29 -0700)]
18.6b0
Fixes #289
Łukasz Langa [Tue, 5 Jun 2018 04:27:51 +0000 (21:27 -0700)]
Fix unnecessary parentheses when a line contains multiline strings
Fixes #232
Łukasz Langa [Tue, 5 Jun 2018 03:24:50 +0000 (20:24 -0700)]
Fix long trivial assignments being wrapped in unnecessary parentheses
Fixes #273
Łukasz Langa [Tue, 5 Jun 2018 02:04:29 +0000 (19:04 -0700)]
Fix handling of empty files
Łukasz Langa [Tue, 5 Jun 2018 01:42:16 +0000 (18:42 -0700)]
Consider stars in testlist_star_expr unpacking (because they are)
Fixes #297
Łukasz Langa [Tue, 5 Jun 2018 00:10:32 +0000 (17:10 -0700)]
Properly format unified diff
Previously we weren't using timestamps.
Łukasz Langa [Mon, 4 Jun 2018 23:42:10 +0000 (16:42 -0700)]
Nits
Łukasz Langa [Mon, 4 Jun 2018 22:20:18 +0000 (15:20 -0700)]
Always show summary of reformatting
Łukasz Langa [Mon, 4 Jun 2018 19:50:24 +0000 (12:50 -0700)]
Make source handling use sets instead of lists
Also, sort cached file output to be (more) deterministic.
Łukasz Langa [Mon, 4 Jun 2018 19:36:35 +0000 (12:36 -0700)]
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.
Zsolt Dollenstein [Mon, 4 Jun 2018 22:52:06 +0000 (00:52 +0200)]
Preserve line endings when formatting a file in place (#288)
Łukasz Langa [Mon, 4 Jun 2018 19:24:20 +0000 (12:24 -0700)]
Reformat docs/conf.py, too.
Łukasz Langa [Mon, 4 Jun 2018 19:18:27 +0000 (12:18 -0700)]
Fix missing leading slash due to `relative_to()` resolution
Łukasz Langa [Mon, 4 Jun 2018 18:58:26 +0000 (11:58 -0700)]
Add `--verbose` and report excluded paths in it, too
Fixes #283
Łukasz Langa [Mon, 4 Jun 2018 18:20:15 +0000 (11:20 -0700)]
[trivial] Simplify `mode` and `write_back` calculation in main()
Łukasz Langa [Mon, 4 Jun 2018 18:06:38 +0000 (11:06 -0700)]
[trivial] Simplify stdin handling
Łukasz Langa [Mon, 4 Jun 2018 18:03:45 +0000 (11:03 -0700)]
Revert "don't run tests from /build"
This reverts commit
1687892d63fdff7525bb50a0166db3c5214ce2de.
This is no longer necessary with the fix in the previous commit.
Łukasz Langa [Mon, 4 Jun 2018 17:59:36 +0000 (10:59 -0700)]
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.
Łukasz Langa [Fri, 1 Jun 2018 21:14:22 +0000 (14:14 -0700)]
Add .pie from tests to MANIFEST.in
Anthony Sottile [Sun, 3 Jun 2018 18:46:59 +0000 (11:46 -0700)]
`python_version` => `language_version` (#296)
Noticed this in `pytest`'s config -- `python_version` isn't a thing :D
Zsolt Dollenstein [Fri, 1 Jun 2018 22:12:20 +0000 (23:12 +0100)]
don't run tests from /build
Zsolt Dollenstein [Fri, 1 Jun 2018 21:47:07 +0000 (23:47 +0200)]
Skip symlink test if can't create one (#287)
Łukasz Langa [Fri, 1 Jun 2018 02:47:24 +0000 (19:47 -0700)]
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.
Łukasz Langa [Fri, 1 Jun 2018 02:40:07 +0000 (19:40 -0700)]
Make empty --include mean "anything goes", simplify `gen_python_files_in_dir`
Łukasz Langa [Fri, 1 Jun 2018 02:24:09 +0000 (19:24 -0700)]
Reorder command-line options
Łukasz Langa [Fri, 1 Jun 2018 02:09:51 +0000 (19:09 -0700)]
Sort default excludes, include the leading slash
Mika⠙ [Fri, 1 Jun 2018 00:51:15 +0000 (02:51 +0200)]
Added --include and --exclude cli options (#281)
These 2 options allow you to pass in regular expressions that determine
whether files/directories are included or excluded in the recursive file
search.
Fixes #270
Łukasz Langa [Thu, 31 May 2018 17:53:26 +0000 (10:53 -0700)]
acks += Stavros; document fix, add to Pipfile
Stavros Korokithakis [Thu, 31 May 2018 17:46:05 +0000 (19:46 +0200)]
Specify the minimum click version (#284)
Łukasz Langa [Wed, 30 May 2018 19:54:52 +0000 (12:54 -0700)]
Add --skip-string-normalization
Fixes #118
LukasDrude [Tue, 29 May 2018 21:50:15 +0000 (23:50 +0200)]
Improve doc regarding PyCharm keyboard shortcut (#271)
Łukasz Langa [Tue, 29 May 2018 09:37:34 +0000 (02:37 -0700)]
Move setuptools and wheel to dev deps, upgrade them, too
Łukasz Langa [Tue, 29 May 2018 09:07:09 +0000 (02:07 -0700)]
18.5b1
Łukasz Langa [Tue, 29 May 2018 09:04:57 +0000 (02:04 -0700)]
Change minor whitespace in "Usage"
Łukasz Langa [Tue, 29 May 2018 08:53:54 +0000 (01:53 -0700)]
Refactor --pyi and --py36 into FileMode
Łukasz Langa [Tue, 29 May 2018 08:12:16 +0000 (01:12 -0700)]
Mention fix for #196 in the README
Łukasz Langa [Tue, 29 May 2018 07:47:52 +0000 (00:47 -0700)]
Clean up PEP 257 support
I documented the new behavior, added it to the change log, greatly expanded
tests, added support for inner defs and classes, and added Luka to ACKS.
Fixes #196
Luka Sterbic [Tue, 29 May 2018 06:48:59 +0000 (08:48 +0200)]
Class new line between docstrings / vars / methods (#219)
Partially addresses #144
Łukasz Langa [Tue, 29 May 2018 06:19:40 +0000 (23:19 -0700)]
Fix dangling file in documentation
Łukasz Langa [Tue, 29 May 2018 06:15:07 +0000 (23:15 -0700)]
Reword isort configuration, add --combine-as
Jason Friedland [Tue, 29 May 2018 06:06:02 +0000 (16:06 +1000)]
Add isort args to README (#268)
Mahmoud Hossam [Sat, 26 May 2018 20:01:17 +0000 (22:01 +0200)]
Add instructions for running Black on save in Vim (#255)
Łukasz Langa [Thu, 24 May 2018 20:32:52 +0000 (13:32 -0700)]
Remove remains of extra empty lines for flow control statements
Łukasz Langa [Wed, 23 May 2018 18:52:41 +0000 (11:52 -0700)]
Reword --pyi and --py36 documentation
Carl Meyer [Wed, 23 May 2018 18:13:13 +0000 (12:13 -0600)]
Update changelog for PR 249.
Carl Meyer [Wed, 23 May 2018 18:01:27 +0000 (12:01 -0600)]
Add --pyi and --py36 flags (#249)
Fixes #244.
wouter bolsterlee [Tue, 22 May 2018 15:54:28 +0000 (17:54 +0200)]
tweak grammar in docs about fluent interfaces (#247)
...to make the sentence a bit easier to understand.
Łukasz Langa [Tue, 22 May 2018 07:38:31 +0000 (00:38 -0700)]
Fix unstable formatting on trailers omitted from line splitting with comments
Fixes #238
Łukasz Langa [Mon, 21 May 2018 23:35:45 +0000 (16:35 -0700)]
Fix invalid code on stars in long from-imports being wrapped in parentheses
Fixes #234
Łukasz Langa [Mon, 21 May 2018 22:20:19 +0000 (15:20 -0700)]
Fix optional parentheses being removed within `# fmt: off` sections
Fixes #224
Hugo [Mon, 21 May 2018 20:20:41 +0000 (23:20 +0300)]
Sentence case (#242)
Łukasz Langa [Mon, 21 May 2018 19:29:36 +0000 (12:29 -0700)]
Fix invalid code in an omitted trailer on large expressions
Fixes #237
Łukasz Langa [Mon, 21 May 2018 18:22:08 +0000 (11:22 -0700)]
Mention fix for pickle files
Carol Willing [Mon, 21 May 2018 16:58:04 +0000 (09:58 -0700)]
Add navigation (#229)
Hugo [Sun, 20 May 2018 16:50:41 +0000 (19:50 +0300)]
README updates (#235)
* Consistent titles in 'Sentence case'
* Add console Markdown formatting
* Fix macOS typos
* Fix Homebrew typo
Łukasz Langa [Sat, 19 May 2018 21:04:38 +0000 (14:04 -0700)]
Store grammar pickle caches in CACHE_DIR
Fixes #192
Fixes #203
Christian Heimes [Sat, 19 May 2018 20:09:20 +0000 (22:09 +0200)]
Include blib2to3 LICENSE file (#230)
See: https://github.com/ambv/black/issues/226
Signed-off-by: Christian Heimes <christian@python.org>
Christian Heimes [Fri, 18 May 2018 20:59:05 +0000 (16:59 -0400)]
Remove grammar pickles from git (#225)
There is no need to keep the pickled grammar files in git. PR #203 will
move them into a user-specific cache directory any way.
See: https://github.com/ambv/black/issues/192
Signed-off-by: Christian Heimes <christian@python.org>
Christian Heimes [Fri, 18 May 2018 17:24:15 +0000 (13:24 -0400)]
Include stub files (*.pyi) (#222)
Fixes: https://github.com/ambv/black/issues/221
Signed-off-by: Christian Heimes <christian@python.org>
Łukasz Langa [Fri, 18 May 2018 00:31:22 +0000 (17:31 -0700)]
18.5b0
Łukasz Langa [Thu, 17 May 2018 22:07:40 +0000 (15:07 -0700)]
Don't explode a one-element collection ending with a comma.
Łukasz Langa [Thu, 17 May 2018 21:49:31 +0000 (14:49 -0700)]
Fix overly optimistic removal of optional parentheses
The current behavior is explained with much detail in
`can_omit_invisible_parens`.
Łukasz Langa [Thu, 17 May 2018 18:52:47 +0000 (11:52 -0700)]
Don't allow indexing to trigger omitting optional parentheses
Łukasz Langa [Thu, 17 May 2018 18:20:36 +0000 (11:20 -0700)]
Fix consecutive string literals not forcing optional parentheses
Łukasz Langa [Thu, 17 May 2018 18:19:32 +0000 (11:19 -0700)]
Avoid treating ellipsis as a dot delimiter
Łukasz Langa [Thu, 17 May 2018 04:33:29 +0000 (21:33 -0700)]
Always explode data structure literals
Fixes #152
Łukasz Langa [Thu, 17 May 2018 02:35:46 +0000 (19:35 -0700)]
Consistent empty lines in the README
Hynek Schlawack [Thu, 17 May 2018 03:38:47 +0000 (23:38 -0400)]
Fix double colon (#216)
Łukasz Langa [Thu, 17 May 2018 02:19:48 +0000 (19:19 -0700)]
Fix multiline strings unnecessarily wrapped in optional parentheses
Fixes #215
Łukasz Langa [Wed, 16 May 2018 22:26:36 +0000 (15:26 -0700)]
Explain automatic parentheses management better
Łukasz Langa [Wed, 16 May 2018 22:09:02 +0000 (15:09 -0700)]
Implement fluent interfaces
Fixes #67
Łukasz Langa [Wed, 16 May 2018 21:31:37 +0000 (14:31 -0700)]
Consider `in`, `not in`, `is`, `is not` operators
Łukasz Langa [Wed, 16 May 2018 21:40:23 +0000 (14:40 -0700)]
For omitting optional parentheses, ignore delimiters of lower priorities
Łukasz Langa [Wed, 16 May 2018 18:45:32 +0000 (11:45 -0700)]
Report progress on multiple files incrementally
Łukasz Langa [Wed, 16 May 2018 05:15:28 +0000 (22:15 -0700)]
Link fix to issue
Łukasz Langa [Wed, 16 May 2018 03:52:22 +0000 (20:52 -0700)]
Don't use optional parentheses in unnecessary situations
If an expression starts or ends with a bracket and only contains a single
delimiter, don't wrap it in additional optional parentheses. We can use the
brackets for the split.
Fixes #177
Fixes #193
Łukasz Langa [Tue, 15 May 2018 20:25:00 +0000 (13:25 -0700)]
Simplify `is_trivial_*` methods
Łukasz Langa [Tue, 15 May 2018 20:05:19 +0000 (13:05 -0700)]
Document .pyi formatting
Łukasz Langa [Tue, 15 May 2018 19:18:28 +0000 (12:18 -0700)]
Warn that `right_hand_split()` modifies `bracket_depth` in leaves
Jelle Zijlstra [Tue, 15 May 2018 19:09:35 +0000 (15:09 -0400)]
Add support for pyi files (#210)
Fixes #207
Łukasz Langa [Tue, 15 May 2018 08:08:51 +0000 (01:08 -0700)]
acks += miggaiowski
Łukasz Langa [Mon, 14 May 2018 19:05:39 +0000 (12:05 -0700)]
Don't explode trailers that fit in a single line
Łukasz Langa [Mon, 14 May 2018 18:17:56 +0000 (11:17 -0700)]
Re-use indexes of current iteration in `comments_after()`
Łukasz Langa [Thu, 10 May 2018 04:40:51 +0000 (21:40 -0700)]
acks += JelleZijlstra
Łukasz Langa [Wed, 9 May 2018 23:05:12 +0000 (16:05 -0700)]
Travis workaround script no longer necessary
Miguel Gaiowski [Tue, 15 May 2018 05:13:48 +0000 (22:13 -0700)]
Check for broken symlinks before checking file data (#202)
jose nazario [Sat, 12 May 2018 17:44:30 +0000 (13:44 -0400)]
fix a spelling typo (#206)
Łukasz Langa [Wed, 9 May 2018 22:56:44 +0000 (15:56 -0700)]
Update Travis to use the default 3.7-dev binary
Łukasz Langa [Wed, 9 May 2018 22:45:38 +0000 (15:45 -0700)]
Document string prefix standardization
Vishwas B Sharma [Wed, 9 May 2018 22:26:56 +0000 (03:56 +0530)]
Adding Jupyter Notebook magic command (#200)
Jelle Zijlstra [Wed, 9 May 2018 22:26:41 +0000 (15:26 -0700)]
Remove u prefix if unicode_literals is present (#199)
Łukasz Langa [Wed, 9 May 2018 07:01:20 +0000 (00:01 -0700)]
Show badge for stable docs, not latest
Łukasz Langa [Wed, 9 May 2018 06:31:41 +0000 (23:31 -0700)]
Don't make parentheses invisible around yield expressions
Łukasz Langa [Wed, 9 May 2018 06:03:59 +0000 (23:03 -0700)]
Fix docstring of is_vararg
Łukasz Langa [Wed, 9 May 2018 04:08:07 +0000 (21:08 -0700)]
Clarify language in README
Łukasz Langa [Wed, 9 May 2018 04:01:50 +0000 (21:01 -0700)]
Automatic management of parentheses in `elif`, too
Łukasz Langa [Wed, 9 May 2018 03:59:18 +0000 (20:59 -0700)]
Support nested lambdas in BracketTracker
Łukasz Langa [Wed, 9 May 2018 00:28:40 +0000 (17:28 -0700)]
Automatic management of parentheses in assignments
Fixes #140
Note: this is an evolution but the end result needs to be different. See
cantfit.py for some good examples on bad formatting caused by this change.