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:
Hugo van Kemenade [Thu, 31 Dec 2020 17:03:39 +0000 (19:03 +0200)]
As long as it's black (#1893)
Make background transparent for dark mode
Bryan Bugyi [Mon, 28 Dec 2020 20:30:23 +0000 (15:30 -0500)]
Fix INTERNAL ERROR caused by removing parens from pointless string (#1888)
Fixes #1846.
Richard Si [Mon, 28 Dec 2020 02:38:11 +0000 (21:38 -0500)]
Bump mypy to 0.780 in pre-commit config (#1887)
To avoid hitting a mypy bug causes pre-commit to always fail on CPython
3.9. Even though it's still an outdated version, the bug effectively
blocks development on CPython 3.9 so that's why this commit exists
instead of waiting for cooperlees to finish his bump to 0.790 PR.
Also this fixes primer to ensure it always raises CalledProcessError
with an int error code. I stole the patch from cooperlees's mypy bump
PR.
It's funny how mypy 0.790 is already asked for in our
Pipfile.lock file, but oh well mypy is probably more commonly run
through pre-commit than standalone I guess.
Oh and if you're curious why the bug doesn't up on CPython 3.8 or lower:
there was some subscription AST changes in CPython 3.9.
Richard Si [Sun, 27 Dec 2020 15:19:08 +0000 (10:19 -0500)]
Fuzz on Python 3.9 too (#1882)
Fuzzing on Python 3.9 used to cause errors but now they have disappeared
on more modern Python 3.9 and Hypothesmith.
nikkie [Sun, 27 Dec 2020 15:18:35 +0000 (00:18 +0900)]
fix format_str() docstring to prevent users from running into NameError (#1885)
Shantanu [Mon, 14 Dec 2020 07:20:25 +0000 (23:20 -0800)]
Remove all trace of flake8-mypy (#1867)
flake8-mypy is long dead and shouldn't be used, see
https://github.com/ambv/flake8-mypy. We appear to use pre-commit to run
mypy now anyway.
I ran `pipenv uninstall flake8-mypy`, which seems to have made several
changes to Pipfile.lock. Let me know if there's a better way to do this.
Co-authored-by: hauntsaninja <>
Noel Evans [Wed, 9 Dec 2020 23:40:45 +0000 (23:40 +0000)]
vim plugin: Add quiet flag so non-error actions go unreported (#1733)
Richard Si [Thu, 26 Nov 2020 00:26:35 +0000 (19:26 -0500)]
Switch back to Python 3.8 for ReadTheDocs (#1839)
ReadTheDocs doesn't support Python 3.9 yet.
Richard Si [Tue, 24 Nov 2020 09:39:25 +0000 (04:39 -0500)]
Allow same RHS expressions in annotated assignments as in regular assignments (#1835)
Thiago Bellini Ribeiro [Fri, 13 Nov 2020 15:26:07 +0000 (12:26 -0300)]
Provide a stdin-filename to allow stdin to respect force-exclude rules (#1780)
* Provide a stdin-filename to allow stdin to respect exclude/force-exclude rules
This will allow automatic tools to enforce the project's
exclude/force-exclude rules even if they pass the file through stdin to
update its buffer.
This is a similar solution to --stdin-display-name in flake8.
* Update src/black/__init__.py
Co-authored-by: Richard Si <63936253+ichard26@users.noreply.github.com>
* --stdin-filename should only respect --exclude-filename
* Update README with the new --stdin-filename option
* Write some tests for the new stdin-filename functionality
* Apply suggestions from code review
Co-authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com>
* Force stdin output when we asked for stdin even if the file exists
* Add an entry in the changelog regarding --stdin-filename
* Reduce disk reads if possible
Co-authored-by: Richard Si <63936253+ichard26@users.noreply.github.com>
* Check for is_stdin and p.is_file before checking for p.is_dir()
Co-authored-by: Richard Si <63936253+ichard26@users.noreply.github.com>
Co-authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com>
Casper Weiss Bang [Fri, 13 Nov 2020 15:25:17 +0000 (16:25 +0100)]
Use lowercase hex numbers fixes #1692 (#1775)
* Made hex lower case
* Refactored numeric formatting section
* Redid some refactoring and removed bloat
* Removed additions from test_requirements.txt
* Primer now expects expected changes
* Undid some refactoring
* added to changelog
* Update src/black/__init__.py
Co-authored-by: Zsolt Dollenstein <zsol.zsol@gmail.com>
Co-authored-by: Zsolt Dollenstein <zsol.zsol@gmail.com>
Co-authored-by: Cooper Lees <me@cooperlees.com>
Justin Prieto [Mon, 9 Nov 2020 19:58:23 +0000 (14:58 -0500)]
Correctly handle inline tabs in docstrings (#1810)
The `fix_docstring` function expanded all tabs, which caused a
difference in the AST representation when those tabs were inline and not
leading. This changes the function to only expand leading tabs so inline
tabs are preserved.
Fixes #1601.
Bryan Bugyi [Sat, 7 Nov 2020 00:17:23 +0000 (19:17 -0500)]
Fix bug which causes f-expressions to be split (#1809)
Closes #1807.
Richard Si [Sun, 1 Nov 2020 21:17:23 +0000 (16:17 -0500)]
Automatically build and upload binaries on release (#1743)
This commit adds a new GitHub Actions workflow that builds self-contained
binaries / executables and uploads them as release assets to the triggering
release. Publishing a release, drafting one doesn't count, will trigger this
workflow.
I personally used GitHub Actions only because it's the CI/CD platform(?)
I am familiar with. Only Windows and Linux binaries are supported since
I don't have any systems running Mac OS.
For Linux, I had originally planned to use the manylinux2010 docker image
the PyPA provides for highly compatible wheel building, but unfortunately
it wasn't feasible due to GitHub Actions and PyInstaller incompatibilities.
As a stopgap the oldest versions of Linux and Windows are used although
Windows Server 2019 isn't that old nor is Ubuntu 16.04! I guess someone
(maybe me) could work out something else if compatibility is big problem.
A few things you should know about the workflow:
- You don't need to set the `GITHUB_TOKEN` secret as it is automatically
provided by GitHub.
- matrix.pathsep is used because PyInstaller configuration's format is OS
dependent for some reason ...
Also it's worth mentioning that Black once had Travis CI and AppVeyor
configuration that did the same thing as this commit. They were committed
in mid 2018 and worked (somewhat) well. Eventually we stopped using AppVeyor
and the refactor to packages broke the Travis CI config. This commit
replaces the still existing and broken Travis CI config wholesale.
Co-authored-by: Anders Fredrik Kiær <31612826+anders-kiaer@users.noreply.github.com>
- Anders told me that I could get the release asset upload URL directly
from the github.event.release payload. I originally planned to use
bruceadams/get-release to get such URL.
Bryan Bugyi [Sat, 31 Oct 2020 17:42:36 +0000 (13:42 -0400)]
Fix bug where black tries to split string on escaped space (#1799)
Closes #1505.
Abdullah Selek [Fri, 30 Oct 2020 15:24:18 +0000 (15:24 +0000)]
Start using Python 3.9 on Travis (#1790)
* Start using Python 3.9 on Travis
* Remove allow_failures
dependabot[bot] [Fri, 30 Oct 2020 15:15:09 +0000 (08:15 -0700)]
Bump cryptography from 3.1 to 3.2 (#1791)
Bumps [cryptography](https://github.com/pyca/cryptography) from 3.1 to 3.2.
- [Release notes](https://github.com/pyca/cryptography/releases)
- [Changelog](https://github.com/pyca/cryptography/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/3.1...3.2)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Shota Ray Imaki [Fri, 30 Oct 2020 15:13:55 +0000 (00:13 +0900)]
Add compatible configuration files. (psf#1789) (#1792)
* Add compatible configuration files. (psf#1789)
* Simplify isort configuration files. (#1789)
Sagi Shadur [Fri, 30 Oct 2020 15:12:04 +0000 (17:12 +0200)]
Extract formatting tests (#1785)
* Update test versions
* Use parametrize to remove tests duplications
* Extract sources format tests
* Fix mypy errors
* Fix .travis.yml
Bibo-Joshi [Tue, 27 Oct 2020 20:59:43 +0000 (21:59 +0100)]
Document some culprits with pre-commit (#1783)
* Document some culprits with pre-commit
* make pre-commit happy
* don't use monospace for black & pre-commit
Co-authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com>
* make pre-commit happy again
Co-authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com>
Antek S [Tue, 27 Oct 2020 10:52:19 +0000 (11:52 +0100)]
Update readme.md with current version (#1788)
* Update readme.md with current version
* Update version_control_integration.md
Sagi Shadur [Mon, 19 Oct 2020 17:35:26 +0000 (20:35 +0300)]
Switch to pytest and tox (#1763)
* Add venv to .gitignore
* Use tox to run tests
* Make fuzz run in tox
* Split tests files
* Fix import error
johnthagen [Mon, 19 Oct 2020 17:34:42 +0000 (13:34 -0400)]
Update PyCharm integrations instructions to avoid running on external changes (#1769)
David W.H. Swenson [Sun, 18 Oct 2020 21:27:15 +0000 (23:27 +0200)]
Fix GitHub markdown links to work on RTD (#1752)
* Fix internal links to work on RTD
Note that these still lead to GitHub, instead of staying on RTD.
* Point links to better anchors
Hadi Alqattan [Sun, 18 Oct 2020 21:24:33 +0000 (00:24 +0300)]
Allow black's Github action params overriding. (#1755)
* Allow default params overriding.
* Update: docs and action.yaml.
* The second contirbution, add my name to authors.md
* Correct docs `with.args` example.
* Just to rerun the Travis jobs.
* chmod 755
Cooper Lees [Tue, 13 Oct 2020 05:03:00 +0000 (22:03 -0700)]
Add blackd to nicely exit if missing aiohttp deps (#1761)
- If no aiohttp* deps exist nicely print a helpful message and exit
- There seems to be no nice way to optionally install the entry point, so lets make the entry point nicer
Test:
```
cooper-mbp1:black cooper$ /tmp/tb/bin/pip install .
cooper-mbp1:black cooper$ /tmp/tb/bin/blackd
aiohttp dependency is not installed: No module named 'aiohttp'. Please re-install black with the '[d]' extra install to obtain aiohttp_cors: `pip install black[d]`
cooper-mbp1:black cooper$ /tmp/tb/bin/pip install .[d]
...
Successfully installed aiohttp-3.6.3 aiohttp-cors-0.7.0 black
cooper-mbp1:black cooper$ /tmp/tb/bin/blackd
blackd version 20.8b2.dev31+gdd2f86a.
d20201013 listening on localhost port 45484
```
Fixes #1688
Hadi Alqattan [Thu, 8 Oct 2020 21:13:13 +0000 (00:13 +0300)]
Support stable Python3.9. (#1748)
* Support stable Python3.9.
* Get back to 3.9-dev
* Add py39 to black usage.
* remove 3.9 temporarily.
Cha Gyuseok [Wed, 7 Oct 2020 14:45:06 +0000 (23:45 +0900)]
docs: update `used-by` link to proper url (#1745)
Hugo van Kemenade [Fri, 2 Oct 2020 11:47:57 +0000 (14:47 +0300)]
Primer: pyramid and sqlalchemy are now formatted with latest Black (#1736)
Hakan Çelik [Mon, 28 Sep 2020 19:55:35 +0000 (22:55 +0300)]
Fix unnecessary if checks (#1728)
Hugo van Kemenade [Mon, 28 Sep 2020 02:42:01 +0000 (05:42 +0300)]
Hypothesis is now formatted with Black 20.8b1 (#1729)
Pete Grayson [Sun, 27 Sep 2020 21:41:11 +0000 (21:41 +0000)]
Repair colorama wrapping on non-Windows platforms (#1670)
* Repair colorama wrapping on non-Windows platforms
The wrap_stream_for_windows() function calls
colorama.initialise.wrap_stream() function to apply colorama's magic to
wrapper to the output stream. Except this wrapper is only applied on
Windows platforms that need it, otherwise the original stream is
returned as-is.
The colorama wrapped stream lacks a detach() method, so a no-op lambda
was being assigned to the wrapped stream.
The problem is that the no-op lambda was being assigned unconditionally
whether or not colorama actually returns a wrapped stream, thus
replacing the original TextIOWrapper's detach() method. Replacing the
detach() method with a no-op lambda is the root cause of the problem
observed in #1664.
The solution is to only assign the no-op detach() method if the stream
lacks its own detach() method.
Repairs #1664
Vipul [Sun, 27 Sep 2020 05:54:21 +0000 (05:54 +0000)]
End 'force-exclude' help message with a period (#1727)
It would be nice, if like other options help message, force-exclude's
help message also ends with a period punctuation mark.
QuentinSoubeyran [Sat, 19 Sep 2020 18:33:10 +0000 (20:33 +0200)]
PEP 614 support (#1717)
Daniel [Sun, 13 Sep 2020 15:59:18 +0000 (17:59 +0200)]
Fix typo in docstring (#1700)
Added a missing preposition
Richard Si [Thu, 10 Sep 2020 20:21:37 +0000 (16:21 -0400)]
Fix empty line handling when formatting typing stubs (#1646)
Black used to erroneously remove all empty lines between non-function
code and decorators when formatting typing stubs. Now a single empty
line is enforced.
I chose for putting empty lines around decorated classes that have empty
bodies since removing empty lines around such classes would cause a
formatting issue that seems to be impossible to fix.
For example:
```
class A: ...
@some_decorator
class B: ...
class C: ...
class D: ...
@some_other_decorator
def foo(): -> None: ...
```
It is easy to enforce no empty lines between class A, B, and C.
Just return 0, 0 for a line that is a decorator and precedes an stub
class. Fortunately before this commit, empty lines after that class
would be removed already.
Now let's look at the empty line between class D and function foo. In
this case, there should be an empty line there since it's class code next
to function code. The problem is that when deciding to add X empty lines
before a decorator, you can't tell whether it's before a class or a
function. If the decorator is before a function, then an empty line
is needed, while no empty lines are needed when the decorator is
before a class.
So even though I personally prefer no empty lines around decorated
classes, I had to go the other way surrounding decorated classes with
empty lines.
Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
Hugo van Kemenade [Thu, 10 Sep 2020 19:52:23 +0000 (22:52 +0300)]
Virtualenv is now formatted with newest Black https://github.com/pypa/virtualenv/pull/1939 (#1695)
Bryan Bugyi [Thu, 10 Sep 2020 16:24:01 +0000 (12:24 -0400)]
Fix unstable subscript assignment string wrapping (#1678)
Fixes #1598
Michael Wilkinson [Tue, 8 Sep 2020 16:42:57 +0000 (12:42 -0400)]
Add link to conda-forge integration (#1687)
* Add link to conda-forge integration
resolves #1686
* README: keep PyPI tags together
Co-authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com>
Bryan Bugyi [Sun, 6 Sep 2020 16:15:40 +0000 (12:15 -0400)]
Fix crash on assert and parenthesized % format (fixes #1597, fixes #1605) (#1681)
Bryan Bugyi [Sun, 6 Sep 2020 15:02:57 +0000 (11:02 -0400)]
Fix crash on concatenated string + comment (fixes #1596) (#1677)
Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
Bryan Bugyi [Sun, 6 Sep 2020 00:24:00 +0000 (20:24 -0400)]
Fix unstable formatting on string split + % formatting (#1680)
Fixes #1595
Tom Saunders [Sat, 5 Sep 2020 19:15:28 +0000 (20:15 +0100)]
Handle .COLOR_DIFF in the same way as .DIFF (#1673)
Hugo van Kemenade [Sat, 5 Sep 2020 16:38:43 +0000 (19:38 +0300)]
Test primer on Pillow (#1679)
Richard Si [Fri, 4 Sep 2020 21:20:55 +0000 (17:20 -0400)]
Update primer.json to reflect Black's adoption (#1674)
- tox recently adopted Black
https://github.com/tox-dev/tox/commit/
a7903508fa07068b327e15cfdbf8ea330ab78765
- attrs already adopted Black but they updated to 20.08b1 + did a format pass and removed some trailing commas
https://github.com/python-attrs/attrs/commit/
f680c5b83e65413eeb684c68ece60198015058c3
Łukasz Langa [Tue, 1 Sep 2020 11:24:31 +0000 (13:24 +0200)]
Clarify current trailing comma behavior in the docs
Łukasz Langa [Tue, 1 Sep 2020 11:18:46 +0000 (13:18 +0200)]
Mention optional invalid W503 warning in pycodestyle
Richard Si [Mon, 31 Aug 2020 21:20:05 +0000 (17:20 -0400)]
Fix incorrect space before colon in if/while stmts (#1655)
* Fix incorrect space before colon in if/while stmts
Previously Black would format this code
```
if (foo := True):
print(foo)
```
as
```
if (foo := True) :
print(foo)
```
adding an incorrect space after the RPAR. Buggy code in the
normalize_invisible_parens function caused the colon to be wrapped in
invisible parentheses. The LPAR of that pair was then prefixed with a
single space at the request of the whitespace function.
This commit fixes the accidental skipping of a pre-condition check
which must return True before parenthesis normalization of a specific
child Leaf or Node can happen. The pre-condition check being skipped
was why the colon was wrapped in invisible parentheses.
* Add an entry in CHANGES.md
Jon Dufresne [Mon, 31 Aug 2020 21:18:43 +0000 (14:18 -0700)]
Remove flake8 W503 from docs as it is ignored by default (#1661)
Fixes #1660
Tristan Seligmann [Fri, 28 Aug 2020 15:37:37 +0000 (17:37 +0200)]
Fix typo in comment (#1650)
Co-authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com>
mbarkhau [Thu, 27 Aug 2020 11:47:59 +0000 (11:47 +0000)]
fix 1631 and add test (#1641)
Richard Si [Wed, 26 Aug 2020 22:17:59 +0000 (18:17 -0400)]
Fix multiline docstring quote normalization
The quotes of multiline docstrings are now only normalized when string
normalization is off, instead of the string normalization setting being
ignored and the quotes being *always* normalized.
I had to make a new test case and data file since the current pair for
docstrings only worked when there is no formatting difference between the
formatting results with string normalization on and off. I needed to add
tests for when there *are* differences between the two. So I split
test_docstring's test code when string normalization is disabled into a
new test case along with a new data file.
Rowan Rodrik van der Molen [Sat, 11 Jul 2020 19:20:31 +0000 (21:20 +0200)]
Fix g:black_fast and g:black_(skip)_string_normalization opts
Yurii Karabas [Wed, 26 Aug 2020 10:43:00 +0000 (13:43 +0300)]
Revert contains_pragma_comment function changes
Yurii Karabas [Wed, 26 Aug 2020 06:35:21 +0000 (09:35 +0300)]
Revert contains_standalone_comments function changes
Yurii Karabas [Tue, 23 Jun 2020 21:33:05 +0000 (00:33 +0300)]
Simplify black code by using generator expressions
Łukasz Langa [Wed, 26 Aug 2020 16:18:14 +0000 (18:18 +0200)]
Stop running Primer on macOS as it's flaky on GitHub Actions
Łukasz Langa [Wed, 26 Aug 2020 15:50:44 +0000 (17:50 +0200)]
v20.8b1
Łukasz Langa [Wed, 26 Aug 2020 15:15:20 +0000 (17:15 +0200)]
Make dependency on Click 7.0, regex 2020.1.8, and toml 0.10.1 explicit
Łukasz Langa [Wed, 26 Aug 2020 10:57:38 +0000 (12:57 +0200)]
Add expected failure tests with the unstable formattings
Łukasz Langa [Wed, 26 Aug 2020 10:57:05 +0000 (12:57 +0200)]
Include mode information for unstable formattings
Łukasz Langa [Wed, 26 Aug 2020 10:22:56 +0000 (12:22 +0200)]
Treat all trailing commas as pre-existing, as they effectively are
On a second pass of Black on the same file, inserted trailing commas are now
pre-existing. Doesn't make sense to differentiate between the passes then.
Łukasz Langa [Wed, 26 Aug 2020 14:00:55 +0000 (16:00 +0200)]
v20.8b0
Cooper Lees [Wed, 26 Aug 2020 04:55:05 +0000 (21:55 -0700)]
Primer update config - enable pytest (#1626)
Reformatted projects I have acceess to:
- aioexabgp
- bandersnatch
- flake8-bugbear
```
-- primer results 📊 --
13 / 16 succeeded (81.25%) ✅
0 / 16 FAILED (0.0%) 💩
- 3 projects disabled by config
- 0 projects skipped due to Python version
- 0 skipped due to long checkout
```
* Also re-enable pytest
```
-- primer results 📊 --
14 / 16 succeeded (87.5%) ✅
0 / 16 FAILED (0.0%) 💩
- 2 projects disabled by config
- 0 projects skipped due to Python version
- 0 skipped due to long checkout
real 2m26.207s
user 17m55.404s
sys 0m43.061s
```
Ned Twigg [Wed, 26 Aug 2020 01:54:05 +0000 (18:54 -0700)]
Add links regarding Spotless integration for gradle/maven users (#1622)
Co-authored-by: Łukasz Langa <lukasz@langa.pl>
Łukasz Langa [Tue, 25 Aug 2020 20:26:13 +0000 (22:26 +0200)]
Improve docstring re-indentation handling
This addresses a few crashers, namely:
* producing non-equivalent code due to mangling escaped newlines,
* invalid hugging quote characters in the docstring body to the docstring outer
triple quotes (causing a quadruple quote which is a syntax error),
* lack of handling for docstrings that start on the same line as the `def`, and
* invalid stripping of outer triple quotes when the docstring contained
a string prefix.
As a bonus, tests now also run when string normalization is disabled.
Łukasz Langa [Mon, 24 Aug 2020 16:29:59 +0000 (18:29 +0200)]
Address pre-existing trailing commas when not in the rightmost bracket pair
This required some hackery. Long story short, we need to reuse the ability to
omit rightmost bracket pairs (which glues them together and splits on something
else instead), for use with pre-existing trailing commas.
This form of user-controlled formatting is brittle so we have to be careful not
to cause a scenario where Black first formats code without trailing commas in
one way, and then looks at the same file with pre-existing trailing commas
(that it itself put on the previous run) and decides to format the code again.
One particular ugly edge case here is handling of optional parentheses. In
particular, the long-standing `line_length=1` hack got in the way of
pre-existing trailing commas and had to be removed. Instead, a more
intelligent but costly solution was put in place: a "second opinion" if the
formatting that omits optional parentheses ended up causing lines to be too
long. Again, for efficiency purposes, Black reuses Leaf objects from blib2to3
and modifies them in place, which was invalid for having two separate
formattings. Line cloning was used to mitigate this.
Fixes #1619
Łukasz Langa [Mon, 24 Aug 2020 19:33:51 +0000 (21:33 +0200)]
Run trailing comma tests with TargetVersion.PY38
Łukasz Langa [Mon, 24 Aug 2020 16:48:11 +0000 (18:48 +0200)]
Add more trailing comma test variants
Łukasz Langa [Mon, 24 Aug 2020 12:33:16 +0000 (14:33 +0200)]
Make doc generation a little smarter, update doc sections
Łukasz Langa [Mon, 24 Aug 2020 12:11:18 +0000 (14:11 +0200)]
Update the changelog
Zac-HD [Fri, 21 Aug 2020 10:58:58 +0000 (20:58 +1000)]
Property-based fuzz test
Łukasz Langa [Fri, 21 Aug 2020 13:55:03 +0000 (15:55 +0200)]
Fix dealing with generated files in docs
Łukasz Langa [Fri, 21 Aug 2020 13:46:00 +0000 (15:46 +0200)]
Use properly renamed function name in docs
Łukasz Langa [Fri, 21 Aug 2020 13:42:58 +0000 (15:42 +0200)]
Require Sphinx 3
Łukasz Langa [Fri, 21 Aug 2020 13:27:08 +0000 (15:27 +0200)]
Mark Primer projects that will change formatting
Łukasz Langa [Thu, 20 Aug 2020 17:21:40 +0000 (19:21 +0200)]
Open file explicitly with UTF-8 so it works on Windows, too
Łukasz Langa [Thu, 20 Aug 2020 17:04:56 +0000 (19:04 +0200)]
Reformat docs/conf.py according to the new style
Łukasz Langa [Mon, 28 Oct 2019 23:50:42 +0000 (00:50 +0100)]
Re-implement magic trailing comma handling:
- when a trailing comma is specified in any bracket pair, that signals to Black
that this bracket pair needs to be always exploded, e.g. presented as "one
item per line";
- this causes some changes to previously formatted code that erroneously left
trailing commas embedded into single-line expressions;
- internally, Black needs to be able to identify trailing commas that it put
itself compared to pre-existing trailing commas. We do this by using/abusing
lib2to3's `was_checked` attribute. It's True for internally generated
trailing commas and False for pre-existing ones (in fact, for all
pre-existing leaves and nodes).
Fixes #1288
Łukasz Langa [Mon, 28 Oct 2019 23:34:46 +0000 (00:34 +0100)]
Reset trailing comma handling
Richard Si [Thu, 20 Aug 2020 22:06:41 +0000 (18:06 -0400)]
Upgrade docs to Sphinx 3+ and add doc build test (#1613)
* Upgrade docs to Sphinx 3+
* Fix all the warnings...
- Fixed bad docstrings
- Fixed bad fenced code blocks in documentation
- Blocklisted some sections from being generated from the README
- Added missing documentation to index.rst
- Fixed an invalid autofunction directive in reference/reference_functions.rst
- Pin another documentation dependency
* Add documentation build test
Jelle Zijlstra [Thu, 20 Aug 2020 12:23:28 +0000 (05:23 -0700)]
Disable string splitting/merging by default (#1609)
* put experimental string stuff behind a flag
* update tests
* don't need an output section if it's the same as the input
* Primer: Expect no formatting changes in attrs, hypothesis and poetry with --experimental-string-processing off
Co-authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com>
Łukasz Langa [Tue, 18 Aug 2020 10:31:15 +0000 (12:31 +0200)]
Update all dependencies to latest versions
Daanyaal Syed [Mon, 17 Aug 2020 18:55:38 +0000 (14:55 -0400)]
Fix inline code style in README (#1608)
Refer to `pyproject.toml` in HTML section of README with HTML code tags
David Szotten [Fri, 14 Aug 2020 16:17:56 +0000 (17:17 +0100)]
fix unary op detection (#1600)
David Szotten [Fri, 14 Aug 2020 02:20:46 +0000 (03:20 +0100)]
don't strip brackets before lsqb (#1575) (#1590)
if the string contains a PERCENT, it's not safe to remove brackets that
follow and operator with the same or higher precedence than PERCENT
Jelle Zijlstra [Thu, 13 Aug 2020 23:40:45 +0000 (16:40 -0700)]
fix some docstring crashes (#1593)
Allow removing some trailing whitespace
Jelle Zijlstra [Thu, 13 Aug 2020 18:14:34 +0000 (11:14 -0700)]
in verbose mode, print stack trace (#1594)
Make Black failures easier to debug
Richard Si [Thu, 13 Aug 2020 03:07:19 +0000 (23:07 -0400)]
Make --exclude only apply to recursively found files (#1591)
Ever since --force-exclude was added, --exclude started to touch files
that were given to Black through the CLI too. This is not documented
behaviour and neither expected as --exclude and --force-exclude now
behave the same!
Before this commit, get_sources() when encountering a file that was passed
explicitly through the CLI would pass a single Path object list to
gen_python_files(). This causes bad behaviour since that function
doesn't treat the exclude and force_exclude regexes differently. Which
is fine for recursively found files, but *not* for files given through
the CLI.
Now when get_sources() iterates through srcs and encounters
a file, it checks if the force_exclude regex matches, if not, then the
file will be added to the computed sources set.
A new function had to be created since before you can do regex matching,
the path must be normalized. The full process of normalizing the path is
somewhat long as there is special error handling. I didn't want to
duplicate this logic in get_sources() and gen_python_files() so that's
why there is a new helper function.
Chris Rose [Thu, 13 Aug 2020 02:28:01 +0000 (19:28 -0700)]
Add the direnv base directory to the default excludes (#1564)
Co-authored-by: Chris Rose <offline@offby1.net>
Jelle Zijlstra [Thu, 13 Aug 2020 02:12:21 +0000 (19:12 -0700)]
Remove slow assertion (#1592)
Partial fix for #1581
This assertion produces behavior quadratic in the number of leaves in a line, which is making Black extremely slow on files with very long expressions. On my benchmark file this change makes Black 10x faster.
Kaligule [Sat, 1 Aug 2020 21:21:55 +0000 (23:21 +0200)]
fix spelling (#1567)
Co-authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com>
Maximilian Cosmo Sitter [Wed, 22 Jul 2020 00:29:38 +0000 (02:29 +0200)]
Update to accomodate isort 5 release changes. (#1559)
Isort 5 introduced profiles and ensure_newline_before_comments options. Either needs to be added to work correctly with black.
Co-authored-by: Richard Si <63936253+ichard26@users.noreply.github.com>
Vinicius Gubiani Ferreira [Thu, 16 Jul 2020 04:51:39 +0000 (01:51 -0300)]
docs: Improve pre-commit use (#1551)
Stable tag wasn't available and crashed when attempting to set initial
pre-commit. Also the python version needs to be installed so it would
be better to use the generic "python3" command.
Hugo van Kemenade [Wed, 15 Jul 2020 21:53:48 +0000 (00:53 +0300)]
pre-commit: show diff on failure on CI (#1552)
* pre-commit: --show-diff-on-failure
* pre-commit: --show-diff-on-failure
Steven Maude [Wed, 15 Jul 2020 18:36:14 +0000 (19:36 +0100)]
Update curl command to use stable branch (#1543)
dhaug-op [Wed, 15 Jul 2020 15:06:30 +0000 (17:06 +0200)]
Ensure path for finding root is absolute (#1550)
As Path.resolve() is buggy on windows (see https://bugs.python.org/issue38671)
an absolute path is ensured by prepending the Path.cwd()
jtpavlock [Mon, 13 Jul 2020 22:27:05 +0000 (15:27 -0700)]
Spelling fix in CONTRIBUTING.md (#1547)
Olexiy [Wed, 8 Jul 2020 15:51:18 +0000 (18:51 +0300)]
ISSUE 1533: Fix --config argument description (#1534)
Change --config argument description to "Read configuration from FILE."
The "--config FILE Read configuration from FILE path"
Jelle Zijlstra [Mon, 6 Jul 2020 19:45:13 +0000 (12:45 -0700)]
add Quora to orgs that use Black (#1532)