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:
James Addison [Thu, 4 Feb 2021 17:30:05 +0000 (17:30 +0000)]
Clarity: isolate and extract each responsibility from an overloaded variable
James Addison [Thu, 4 Feb 2021 17:26:29 +0000 (17:26 +0000)]
Brevity: rename method
James Addison [Sat, 20 Feb 2021 16:44:48 +0000 (16:44 +0000)]
fuzzer: add special-case for multi-line EOF TokenError (#1991)
* Add special-case for multi-line EOF TokenError under Python3.7
* Update conditional check to correspond to original issue description (and include issue hyperlink)
* Add warning and hint regarding replaying the fuzzer code generation
* Include code review suggestion (with modifications for this to follow)
Co-authored-by: Zac Hatfield-Dodds <zac.hatfield.dodds@gmail.com>
* Remove Python version check, since this issue does exist across more recent Python versions than 3.7
* Update explanatory comment
* Add clarification for potentially-ambiguous blib2to3 import
* Update explanatory comment
* Bring comment into consistent format with previous comment
* Revert "Add clarification for potentially-ambiguous blib2to3 import"
This reverts commit
357b7cc03bdb19dd924f1accd428352f4bb44e5c.
Co-authored-by: Zac Hatfield-Dodds <zac.hatfield.dodds@gmail.com>
Romain Rigaux [Tue, 16 Feb 2021 21:10:23 +0000 (13:10 -0800)]
Use 'args' to Avoid GH workflow warning (#1990)
Unexpected input(s) 'black_args', valid inputs are ['entryPoint', 'args']
Archit Gopal [Mon, 15 Feb 2021 16:05:23 +0000 (21:35 +0530)]
add gedit integration (#1988)
Sagi Shadur [Mon, 15 Feb 2021 16:02:48 +0000 (18:02 +0200)]
Add "# fmt: skip" directive to black (#1800)
Fixes #1162
rht [Sun, 14 Feb 2021 15:32:29 +0000 (10:32 -0500)]
readme: Include Zulip in used-by section (#1987)
Zulip has recently formatted their code in Black and also set Black as a linter: https://github.com/zulip/zulip/pull/15662.
See also https://chat.zulip.org/#narrow/stream/2-general/topic/black.
Richard Si [Sun, 14 Feb 2021 15:23:47 +0000 (10:23 -0500)]
Fix duplication of checks on internal PRs (#1986)
Internal PRs (that come from branches of psf/black) match both the push
and pull_request events. This leads to a duplication of test, lint, etc.
checks on such PRs. Not only is it a waste of resources, it makes the
Status Checks UI more frustrating to go through.
Patch taken from:
https://github.community/t/duplicate-checks-on-push-and-pull-request-simultaneous-event/18012
James Addison [Thu, 11 Feb 2021 20:11:42 +0000 (20:11 +0000)]
Stability fixup: interaction between newlines and comments (#1975)
* Add test case to illustrate the issue
* Accept carriage returns as valid separators while enumerating comments
Without this acceptance, escaped multi-line statments that use carriage returns will not be counted into the 'ignored_lines' variable since the emitted line values will end with a CR and not an escape character. That leads to comments associated with the line being incorrectly labeled with the STANDALONE_COMMENT type, affecting comment placement and line space management.
* Remove comment linking to ephemeral build log
dependabot[bot] [Wed, 10 Feb 2021 02:17:23 +0000 (18:17 -0800)]
Bump cryptography from 3.3.1 to 3.3.2 (#1981)
Bumps [cryptography](https://github.com/pyca/cryptography) from 3.3.1 to 3.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.3.1...3.3.2)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
James Addison [Wed, 10 Feb 2021 01:10:02 +0000 (01:10 +0000)]
Regenerate documentation (#1980)
Resolves #1979 and ensures that the content from #1861 is included in the repository-published documentation.
Richard Si [Fri, 5 Feb 2021 04:10:45 +0000 (23:10 -0500)]
Update prettier in pre-commit config (#1966)
With older versions of prettier, when the hook failed a bunch of
"[error] No parser could be inferred for file: {PATH}" error lines
showed up because of lack of support of a flag that pre-commit
passes for us by default. It made figuring out why the prettier hook
failed annoying.
Anthony Sottile [Thu, 4 Feb 2021 21:03:42 +0000 (13:03 -0800)]
speed up cache by approximately 42x by avoiding pathlib (#1953)
dependabot[bot] [Tue, 2 Feb 2021 23:54:14 +0000 (15:54 -0800)]
Bump bleach from 3.2.1 to 3.3.0 (#1957)
Bumps [bleach](https://github.com/mozilla/bleach) from 3.2.1 to 3.3.0.
- [Release notes](https://github.com/mozilla/bleach/releases)
- [Changelog](https://github.com/mozilla/bleach/blob/master/CHANGES)
- [Commits](https://github.com/mozilla/bleach/compare/v3.2.1...v3.3.0)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
James Addison [Mon, 1 Feb 2021 17:54:19 +0000 (17:54 +0000)]
Remove placeholder exit code in unreachable 'black-primer' subprocess handler (#1952)
Oliver Newman [Wed, 27 Jan 2021 17:36:21 +0000 (12:36 -0500)]
Update example exclude to match only files in root (#1861)
* Update example exclude to match only files in root
The `exclude` section of the example `pyproject.toml` file didn't work
as expected. It claimed to exclude matched files only in the project
root, but it actually excluded matched files at any directory level
within the project. We can address this by prepending `^/` to the regex
to ensure that it only matches files in the project root.
See https://github.com/psf/black/issues/1473#issuecomment-
740008873 for
explanation.
* Mention excluding directories as well
Shantanu [Mon, 18 Jan 2021 00:59:06 +0000 (16:59 -0800)]
Add --skip-magic-trailing-comma (#1824)
Zac Hatfield-Dodds [Sat, 16 Jan 2021 00:05:15 +0000 (11:05 +1100)]
OSS-Fuzz integration (#1930)
Emilv2 [Fri, 15 Jan 2021 22:43:23 +0000 (23:43 +0100)]
Fix typo (#1931)
Peter Stensmyr [Thu, 14 Jan 2021 23:57:45 +0000 (10:57 +1100)]
Update link pointing to how-black-wraps-lines (#1925)
The section about the Black code style has been moved to its own file.
Update link on the compatible configs page to point to the right place.
Cooper Lees [Wed, 13 Jan 2021 23:17:30 +0000 (15:17 -0800)]
Update Contributing Docs (#1915)
* Update Contributing Docs
- Update docs with all new tox hotness
- Test running docs build:
- `sphinx-build -a -b html -W docs/ docs/_build/`
Fixes #1907
* Fix docs/contributing_to_black.md lint
* Remove autogenerated copy pasta
* Fix review typos + regen automated docs via Running Sphinx v1.8.5
Thomas Hagebols [Mon, 11 Jan 2021 16:23:11 +0000 (17:23 +0100)]
Set gh action entrypoint interpreter to bash (#1919)
Shota Ray Imaki [Mon, 11 Jan 2021 16:21:14 +0000 (01:21 +0900)]
fix #1917 (#1918)
Troy Murray [Fri, 8 Jan 2021 20:26:42 +0000 (07:26 +1100)]
Changed max workers on windows to 60 (#1912)
Rick Staa [Fri, 8 Jan 2021 19:47:03 +0000 (20:47 +0100)]
Release gh action (#1909)
* Gets gh-action ready for marketplace release
* Updates documentation and removes redundant gh-action input argument
* Fixes gh-action bug
This commit fixes a bug which caused not all input arguments were forwarder to the black formatter.
* Update README.md
Co-authored-by: Cooper Lees <me@cooperlees.com>
Co-authored-by: Cooper Lees <me@cooperlees.com>
Taneli Hukkinen [Sun, 3 Jan 2021 16:14:59 +0000 (17:14 +0100)]
Only require typing-extensions if Python < 3.8 (#1873)
Paul "TBBle" Hampson [Fri, 1 Jan 2021 18:54:35 +0000 (05:54 +1100)]
Use Prettier pre-commit mirror (#1896)
This fixes Prettier install failures similar to those seen in
https://github.com/prettier/prettier/issues/9459, and is the solution
recommended there.
Signed-off-by: Paul "TBBle" Hampson <Paul.Hampson@Pobox.com>
Jon Dufresne [Thu, 31 Dec 2020 19:10:18 +0000 (11:10 -0800)]
Bump minimum_pre_commit_version per recommendation (#1895)
Recommended by @asottile, the pre-commit author and maintainer, to avoid
some breakages in version 2.9.0.
Jon Dufresne [Thu, 31 Dec 2020 17:09:07 +0000 (09:09 -0800)]
Add pyi file support to .pre-commit-hooks.yaml (#1875)
Since pre-commit 2.9.0 (2020-11-21), the types_or key can be used to
match multiple disparate file types. For more upstream details, see:
https://github.com/pre-commit/pre-commit/issues/607
Add the minimum_pre_commit_version to require pre-commit 2.9.0+.
Fixes #402
Hugo van Kemenade [Thu, 31 Dec 2020 17:07:31 +0000 (19:07 +0200)]
Bump typed-ast to fix for s390x (#1892)
* Bump typed-ast to fix for s390x
* pipenv install typed-ast==1.4.2
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