]> git.madduck.net Git - etc/vim.git/log

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:

etc/vim.git
2 years agoBump peter-evans/create-or-update-comment from 2.0.1 to 2.1.0 (#3366)
dependabot[bot] [Mon, 31 Oct 2022 13:49:52 +0000 (06:49 -0700)]
Bump peter-evans/create-or-update-comment from 2.0.1 to 2.1.0 (#3366)

Bumps [peter-evans/create-or-update-comment](https://github.com/peter-evans/create-or-update-comment) from 2.0.1 to 2.1.0.
- [Release notes](https://github.com/peter-evans/create-or-update-comment/releases)
- [Commits](https://github.com/peter-evans/create-or-update-comment/compare/2b2c85d0bf1b8a7b4e7e344bd5c71dc4b9196e9f...5adcb0bb0f9fb3f95ef05400558bdb3f329ee808)

---
updated-dependencies:
- dependency-name: peter-evans/create-or-update-comment
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2 years agoVim plugin: allow using system black rather than virtualenv (#3309)
Corey Hickey [Thu, 27 Oct 2022 23:55:33 +0000 (16:55 -0700)]
Vim plugin: allow using system black rather than virtualenv (#3309)

Provide a configuration parameter to the Vim plugin which will allow the
plugin to skip setting up a virtualenv. This is useful when there is a
system installation of black (e.g. from a Linux distribution) which the
user prefers to use.

Using a virtualenv remains the default.

- Fixes #3308

2 years agoAdd Archer Aviation to organizations in readme (#3361)
Hongbo Miao [Thu, 27 Oct 2022 21:22:44 +0000 (14:22 -0700)]
Add Archer Aviation to organizations in readme (#3361)

2 years agoWrap concatenated strings used as function args in parens (#3307)
Yilei "Dolee" Yang [Thu, 27 Oct 2022 01:03:10 +0000 (18:03 -0700)]
Wrap concatenated strings used as function args in parens (#3307)

Fixes #3292

2 years agoUpdate README.md (#3284)
Ned Western [Wed, 26 Oct 2022 02:04:31 +0000 (13:04 +1100)]
Update README.md (#3284)

Minor typo

2 years agoExclude pytest-xdist 3.0.2 (#3356)
Jelle Zijlstra [Wed, 26 Oct 2022 02:03:24 +0000 (19:03 -0700)]
Exclude pytest-xdist 3.0.2 (#3356)

We're getting warnings like https://github.com/psf/black/actions/runs/3325521041/jobs/5498291478 and I'm not sure how to fix them. I'll open an issue for a long-term solution, but for now avoid 3.0.2 to unbreak CI.

2 years agoEnforce empty lines before classes/functions with sticky leading comments. (#3302)
Yilei "Dolee" Yang [Wed, 26 Oct 2022 01:03:24 +0000 (18:03 -0700)]
Enforce empty lines before classes/functions with sticky leading comments. (#3302)

Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
2 years agoBump peter-evans/create-or-update-comment from 2.0.0 to 2.0.1 (#3354)
dependabot[bot] [Mon, 24 Oct 2022 18:40:19 +0000 (11:40 -0700)]
Bump peter-evans/create-or-update-comment from 2.0.0 to 2.0.1 (#3354)

Bumps [peter-evans/create-or-update-comment](https://github.com/peter-evans/create-or-update-comment) from 2.0.0 to 2.0.1.
- [Release notes](https://github.com/peter-evans/create-or-update-comment/releases)
- [Commits](https://github.com/peter-evans/create-or-update-comment/compare/c9fcb64660bc90ec1cc535646af190c992007c32...2b2c85d0bf1b8a7b4e7e344bd5c71dc4b9196e9f)

---
updated-dependencies:
- dependency-name: peter-evans/create-or-update-comment
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2 years agoBump peter-evans/find-comment from 2.0.0 to 2.0.1 (#3353)
dependabot[bot] [Mon, 24 Oct 2022 16:50:14 +0000 (09:50 -0700)]
Bump peter-evans/find-comment from 2.0.0 to 2.0.1 (#3353)

Bumps [peter-evans/find-comment](https://github.com/peter-evans/find-comment) from 2.0.0 to 2.0.1.
- [Release notes](https://github.com/peter-evans/find-comment/releases)
- [Commits](https://github.com/peter-evans/find-comment/compare/1769778a0c5bd330272d749d12c036d65e70d39d...b657a70ff16d17651703a84bee1cb9ad9d2be2ea)

---
updated-dependencies:
- dependency-name: peter-evans/find-comment
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2 years agoBump sphinx from 5.2.3 to 5.3.0 in /docs (#3333)
dependabot[bot] [Tue, 18 Oct 2022 01:12:41 +0000 (21:12 -0400)]
Bump sphinx from 5.2.3 to 5.3.0 in /docs (#3333)

updated-dependencies:
- dependency-name: sphinx
  dependency-type: direct:production
  update-type: version-update:semver-minor

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2 years agoClarify check argument is needed for github action workflow (#3325)
jlplenio [Sat, 15 Oct 2022 18:44:02 +0000 (20:44 +0200)]
Clarify check argument is needed for github action workflow (#3325)

Co-authored-by: Richard Si <63936253+ichard26@users.noreply.github.com>
2 years agoremove unreachable code (#3328)
nn [Tue, 11 Oct 2022 21:34:37 +0000 (00:34 +0300)]
remove unreachable code (#3328)

fixes #3321

2 years agoFix license metadata to follow PEP 621 (#3326)
Amethyst Reese [Mon, 10 Oct 2022 23:54:49 +0000 (16:54 -0700)]
Fix license metadata to follow PEP 621 (#3326)

2 years agoAdd support for named exprs inside function calls as gen-exps (#3327)
Batuhan Taskaya [Mon, 10 Oct 2022 23:54:09 +0000 (02:54 +0300)]
Add support for named exprs inside function calls as gen-exps (#3327)

2 years agoRemove redundant 3.6 code and bump mypy's python_version to 3.7 (#3313)
Hugo van Kemenade [Fri, 7 Oct 2022 00:37:37 +0000 (17:37 -0700)]
Remove redundant 3.6 code and bump mypy's python_version to 3.7 (#3313)

2 years agoPrepare release 22.10.0 (#3311)
Jelle Zijlstra [Thu, 6 Oct 2022 22:33:51 +0000 (15:33 -0700)]
Prepare release 22.10.0 (#3311)

2 years agoAdd option to skip the first line of source code (#3299)
Antonio Ossa-Guerra [Thu, 6 Oct 2022 22:17:32 +0000 (19:17 -0300)]
Add option to skip the first line of source code (#3299)

* Add option to skip the first line in source file

This commit adds a CLi option to skip the first line in the source
files, just like the Cpython command line allows [1]. By enabling the
flag, using `-x` or `--skip-source-first-line`, the first line is
removed temporarilly while the remaining contents are formatted. The
first line is added back before returning the formatted output.

[1]: https://docs.python.org/dev/using/cmdline.html#cmdoption-x

Signed-off-by: Antonio Ossa Guerra <aaossa@uc.cl>
* Add tests for `--skip-source-first-line` option

When the flag is disabled (default), black formats the entire source
file, as in every line. In the other hand, if the flag is enabled, by
using `-x` or `--skip-source-first-line`, the first line is retained
while the rest of the source is formatted and then is added back.

These tests use an empty Python file that contains invalid syntax in
its first line (`invalid_header.py`, at `miscellaneous/`). First,
Black is invoked without enabling the flag which should result in an
exit code different than 0. When the flag is enabled, Black is
expected to return a successful exit code and the header is expected
to be retained (even if its not valid Python syntax).

Signed-off-by: Antonio Ossa Guerra <aaossa@uc.cl>
* Support skip source first line option for blackd

The recently added option can be added as an acceptable header for
blackd. The arguments are passed in such a way that using the new
header will activate the skip source first line behaviour as expected

Signed-off-by: Antonio Ossa Guerra <aaossa@uc.cl>
* Add skip source first line option to blackd docs

The new option can be passed to blackd as a header. This commit
updates the blackd docs to include the new header.

Signed-off-by: Antonio Ossa Guerra <aaossa@uc.cl>
* Update CHANGES.md

Include the new Black option to skip the first line of source code in
the configuration section

Signed-off-by: Antonio Ossa Guerra <aaossa@uc.cl>
* Update skip first line test including valid syntax

Including valid Python syntax help us make sure that the file is still
actually valid after skipping the first line of the source file (which
contains invalid Python syntax)

Signed-off-by: Antonio Ossa Guerra <aaossa@uc.cl>
* Skip first source line at `format_file_in_place`

Instead of skipping the first source line at `format_file_contents`,
do it before. This allow us to find the correct newline and encoding
on the actual source code (everything that's after the header).

This change is also applied at Blackd: take the header before passing
the source to `format_file_contents` and put the header back once we
get the formatted result.

Signed-off-by: Antonio Ossa Guerra <aaossa@uc.cl>
* Test output newlines when skipping first line

When skipping the first line of source code, the reference newline must
be taken from the second line of the file instead of the first one, in
case that the file mixes more than one kind of newline character

Signed-off-by: Antonio Ossa Guerra <aaossa@uc.cl>
* Test that Blackd also skips first line correctly

Simliarly to the Black tests, we first compare that Blackd fails when
the first line is invalid Python syntax and then check that the result
is the expected when tha flag is activated

Signed-off-by: Antonio Ossa Guerra <aaossa@uc.cl>
* Use the content encoding to decode the header

When decoding the header to put it back at the top of the contents of
the file, use the same encoding used in the content. This should be a
better "guess" that using the default value

Signed-off-by: Antonio Ossa Guerra <aaossa@uc.cl>
2 years agoPreserve crlf line endings in blackd (#3257)
KotlinIsland [Tue, 4 Oct 2022 20:10:11 +0000 (06:10 +1000)]
Preserve crlf line endings in blackd (#3257)

Co-authored-by: KotlinIsland <kotlinisland@users.noreply.github.com>
2 years agoBump docutils from 0.18.1 to 0.19 in /docs (#3161)
dependabot[bot] [Mon, 3 Oct 2022 16:36:44 +0000 (09:36 -0700)]
Bump docutils from 0.18.1 to 0.19 in /docs (#3161)

Bumps [docutils](https://docutils.sourceforge.io/) from 0.18.1 to 0.19.

---
updated-dependencies:
- dependency-name: docutils
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2 years agoBump sphinx from 5.2.1 to 5.2.3 in /docs (#3305)
dependabot[bot] [Mon, 3 Oct 2022 07:15:59 +0000 (02:15 -0500)]
Bump sphinx from 5.2.1 to 5.2.3 in /docs (#3305)

Bumps [sphinx](https://github.com/sphinx-doc/sphinx) from 5.2.1 to 5.2.3.
- [Release notes](https://github.com/sphinx-doc/sphinx/releases)
- [Changelog](https://github.com/sphinx-doc/sphinx/blob/5.x/CHANGES)
- [Commits](https://github.com/sphinx-doc/sphinx/compare/v5.2.1...v5.2.3)

---
updated-dependencies:
- dependency-name: sphinx
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2 years agoBump furo from 2022.9.15 to 2022.9.29 in /docs (#3304)
dependabot[bot] [Mon, 3 Oct 2022 07:08:20 +0000 (02:08 -0500)]
Bump furo from 2022.9.15 to 2022.9.29 in /docs (#3304)

Bumps [furo](https://github.com/pradyunsg/furo) from 2022.9.15 to 2022.9.29.
- [Release notes](https://github.com/pradyunsg/furo/releases)
- [Changelog](https://github.com/pradyunsg/furo/blob/main/docs/changelog.md)
- [Commits](https://github.com/pradyunsg/furo/compare/2022.09.15...2022.09.29)

---
updated-dependencies:
- dependency-name: furo
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Cooper Lees <cooper@fb.com>
2 years agoBump myst-parser from 0.18.0 to 0.18.1 in /docs (#3303)
dependabot[bot] [Mon, 3 Oct 2022 07:06:06 +0000 (02:06 -0500)]
Bump myst-parser from 0.18.0 to 0.18.1 in /docs (#3303)

Bumps [myst-parser](https://github.com/executablebooks/MyST-Parser) from 0.18.0 to 0.18.1.
- [Release notes](https://github.com/executablebooks/MyST-Parser/releases)
- [Changelog](https://github.com/executablebooks/MyST-Parser/blob/master/CHANGELOG.md)
- [Commits](https://github.com/executablebooks/MyST-Parser/compare/v0.18.0...v0.18.1)

---
updated-dependencies:
- dependency-name: myst-parser
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2 years agoAdd .ipynb_checkpoints to DEFAULT_EXCLUDES (#3293)
Ray Bell [Sun, 2 Oct 2022 16:26:45 +0000 (12:26 -0400)]
Add .ipynb_checkpoints to DEFAULT_EXCLUDES (#3293)

Jupyter creates a checkpoint file every single time you create an .ipynb
file, and then it updates the checkpoint file every single time you
manually save your progress for the initial .ipynb. These checkpoints
are stored in a directory named `.ipynb_checkpoints`.

Co-authored-by: Batuhan Taskaya <isidentical@gmail.com>
2 years agoEnable build isolation under CIWB (#3297)
Richard Si [Thu, 29 Sep 2022 02:56:28 +0000 (22:56 -0400)]
Enable build isolation under CIWB (#3297)

No idea how this is still here after the Hatchling PR, but it is no
longer useful and is breaking the build.

2 years agoBump pypa/cibuildwheel from 2.10.0 to 2.10.2 (#3290)
dependabot[bot] [Thu, 29 Sep 2022 02:19:08 +0000 (22:19 -0400)]
Bump pypa/cibuildwheel from 2.10.0 to 2.10.2 (#3290)

updated-dependencies:
- dependency-name: pypa/cibuildwheel
  dependency-type: direct:production
  update-type: version-update:semver-patch

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2 years agoMention CHANGES.md in PR template explicitly (#3295)
Ray Bell [Thu, 29 Sep 2022 01:44:16 +0000 (21:44 -0400)]
Mention CHANGES.md in PR template explicitly (#3295)

This makes the location more explicit which hopefully makes the PR
process smoother for other first time contributors.

Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
2 years agoAdd option to format Jupyter Notebooks in GitHub Action (#3282)
Antonio Ossa-Guerra [Mon, 26 Sep 2022 21:45:34 +0000 (18:45 -0300)]
Add option to format Jupyter Notebooks in GitHub Action (#3282)

To run the formatter on Jupyter Notebooks, Black must be installed
with an extra dependency (`black[jupyter]`). This commit adds an
optional argument to install Black with this dependency when using the
official GitHub Action [1]. To enable the formatter on Jupyter
Notebooks, just add `jupyter: true` as an argument. Feature requested
at [2].

[1]: https://black.readthedocs.io/en/stable/integrations/github_actions.html
[2]: https://github.com/psf/black/issues/3280

Signed-off-by: Antonio Ossa Guerra <aaossa@uc.cl>
2 years agoBump sphinx from 5.1.1 to 5.2.1 in /docs (#3288)
dependabot[bot] [Mon, 26 Sep 2022 16:48:50 +0000 (09:48 -0700)]
Bump sphinx from 5.1.1 to 5.2.1 in /docs (#3288)

Bumps [sphinx](https://github.com/sphinx-doc/sphinx) from 5.1.1 to 5.2.1.
- [Release notes](https://github.com/sphinx-doc/sphinx/releases)
- [Changelog](https://github.com/sphinx-doc/sphinx/blob/5.x/CHANGES)
- [Commits](https://github.com/sphinx-doc/sphinx/compare/v5.1.1...v5.2.1)

---
updated-dependencies:
- dependency-name: sphinx
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2 years agoBump actions/upload-artifact from 2 to 3 (#3289)
dependabot[bot] [Mon, 26 Sep 2022 12:35:23 +0000 (08:35 -0400)]
Bump actions/upload-artifact from 2 to 3 (#3289)

updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2 years agoAlways call freeze_support() if sys.frozen is True (#3275)
Richard Si [Mon, 26 Sep 2022 00:55:52 +0000 (20:55 -0400)]
Always call freeze_support() if sys.frozen is True (#3275)

2 years agoFix outdated references to 3.6 and run pyupgrade (#3286)
Richard Si [Mon, 26 Sep 2022 00:24:18 +0000 (20:24 -0400)]
Fix outdated references to 3.6 and run pyupgrade (#3286)

I also missed the accidental removal of the 3.11 classifier in the PR.

2 years agoSwitch build backend to Hatchling (#3233)
Ofek Lev [Sun, 25 Sep 2022 21:54:33 +0000 (14:54 -0700)]
Switch build backend to Hatchling (#3233)

This implements PEP 621, obviating the need for `setup.py`, `setup.cfg`,
and `MANIFEST.in`. The build backend Hatchling (of which I am a
maintainer in the PyPA) is now used as that is the default in the
official Python packaging tutorial. Hatchling is available on all the
major distribution channels such as Debian, Fedora, and many more.

## Python support

The earliest supported Python 3 version of Hatchling is 3.7, therefore
I've also set that as the minimum here. Python 3.6 is EOL and other
build backends like flit-core and setuptools also dropped support.
Python 3.6 accounted for 3-4% of downloads in the last month.

## Plugins

Configuration is now completely static with the help of 3 plugins:

### Readme

hynek's hatch-fancy-pypi-readme allows for the dynamic construction of
the readme which was previously coded up in `setup.py`. Now it's simply:

```toml
[tool.hatch.metadata.hooks.fancy-pypi-readme]
content-type = "text/markdown"
fragments = [
  { path = "README.md" },
  { path = "CHANGES.md" },
]
```

### Versioning

hatch-vcs is currently just a wrapper around setuptools-scm (which
despite the legacy naming is actually now decoupled from setuptools):

```toml
[tool.hatch.version]
source = "vcs"

[tool.hatch.build.hooks.vcs]
version-file = "src/_black_version.py"
template = '''
version = "{version}"
'''
```

### mypyc

hatch-mypyc offers many benefits over the existing approach:

- No need to manually select files for inclusion
- Avoids the need for the current CI workaround for https://github.com/mypyc/mypyc/issues/946
- Intermediate artifacts (like `build/`) from setuptools and mypyc
  itself no longer clutter the project directory
- Runtime dependencies required at build time no longer need to be
  manually redeclared as this is a built-in option of Hatchling

Co-authored-by: Richard Si <63936253+ichard26@users.noreply.github.com>
Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
2 years agoMake README logo link to docs (#3285)
Stijn de Gooijer [Sun, 25 Sep 2022 09:28:43 +0000 (11:28 +0200)]
Make README logo link to docs (#3285)

docs: Make README logo link to docs

2 years agoFix a crash when `# fmt: on` is used on a different block level than `# fmt: off...
Yilei "Dolee" Yang [Sat, 24 Sep 2022 03:37:22 +0000 (20:37 -0700)]
Fix a crash when `# fmt: on` is used on a different block level than `# fmt: off` (#3281)

Previously _Black_ produces invalid code because the `# fmt: on` is used on a different block level.

While _Black_ requires `# fmt: off` and `# fmt: on` to be used at the same block level, incorrect usage shouldn't cause crashes.

The formatting behavior this PR introduces is, the code below the initial `# fmt: off` block level will be turned off for formatting, when `# fmt: on` is used on a different level or there is no `# fmt: on`. This also matches the current behavior when `# fmt: off` is used at the top-level without a matching `# fmt: on`, it turns off formatting for everything below `# fmt: off`.

- Fixes #2567
- Fixes #3184
- Fixes #2985
- Fixes #2882
- Fixes #2232
- Fixes #2140
- Fixes #1817
- Fixes #569

2 years agoSupport version specifiers in GH action (#3265)
Jakub Kuczys [Fri, 23 Sep 2022 03:23:35 +0000 (05:23 +0200)]
Support version specifiers in GH action (#3265)

Co-authored-by: Richard Si <63936253+ichard26@users.noreply.github.com>
2 years agoMake context manager examples in future style docs consistent (#3274)
Blandes22 [Fri, 23 Sep 2022 03:19:31 +0000 (22:19 -0500)]
Make context manager examples in future style docs consistent (#3274)

2 years agoBuild mypyc wheels for CPython 3.11 (#3276)
Richard Si [Fri, 23 Sep 2022 03:11:56 +0000 (23:11 -0400)]
Build mypyc wheels for CPython 3.11 (#3276)

Bumps cibuildwheel from 2.8.1 to 2.10.0 which has 3.11 building enabled
by default. Unfortunately mypyc errors out on 3.11:

src/black/files.py:29:9: error: Name "tomllib" already defined (by an import)  [no-redef]

... so we have to also hide the fallback import of tomli on older 3.11
alphas from mypy[c].

2 years agoBump furo from 2022.6.21 to 2022.9.15 in /docs (#3277)
dependabot[bot] [Mon, 19 Sep 2022 23:35:46 +0000 (19:35 -0400)]
Bump furo from 2022.6.21 to 2022.9.15 in /docs (#3277)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2 years agoFix mypyc build errors on newer manylinux2014_x86_64 images (#3272)
Zsolt Dollenstein [Thu, 15 Sep 2022 20:08:26 +0000 (21:08 +0100)]
Fix mypyc build errors on newer manylinux2014_x86_64 images (#3272)

Make sure `gcc` is installed in the build env

The mypyc build requires `gcc` to be installed even if it's being built with `clang`, otherwise `clang` fails to find `libgcc`.

2 years agoImprove order of paragraphs on line splitting (#3270)
Tom Fryers [Thu, 15 Sep 2022 02:31:26 +0000 (03:31 +0100)]
Improve order of paragraphs on line splitting (#3270)

These two paragraphs were tucked away at the end of the section, after
the diversion on backslashes. I nearly missed the first paragraph and
opened a nonsense issue, and I think the second belongs higher up with
it too.

2 years agoFix a crash on dicts with paren-wrapped long string keys (#3262)
Yilei "Dolee" Yang [Wed, 14 Sep 2022 03:23:51 +0000 (20:23 -0700)]
Fix a crash on dicts with paren-wrapped long string keys (#3262)

Fix a crash when formatting some dicts with parenthesis-wrapped long
string keys. When LL[0] is an atom string, we need to check the atom
node's siblings instead of LL[0] itself, e.g.:

    dictsetmaker
      atom
        STRING '"This is a really long string that can\'t be expected to fit in one line and is used as a nested dict\'s key"'
      /atom
      COLON ':'
      atom
        LSQB ' ' '['
        listmaker
          STRING '"value"'
          COMMA ','
          STRING ' ' '"value"'
        /listmaker
        RSQB ']'
      /atom
      COMMA ','
    /dictsetmaker

2 years ago[FIX] migrate-black.py: don't fail on binary files (#3266)
Holger Brunn [Wed, 14 Sep 2022 03:06:54 +0000 (05:06 +0200)]
[FIX] migrate-black.py: don't fail on binary files (#3266)

2 years agoMove 3.11 tests to install aiohttp without C extensions (#3258)
Cooper Lees [Mon, 5 Sep 2022 22:27:39 +0000 (08:27 +1000)]
Move 3.11 tests to install aiohttp without C extensions (#3258)

* Move 311 tests to install aiohttp without C extensions

- Configure tox to install aiohttp without extensions
  - i.e. use `AIOHTTP_NO_EXTENSIONS=1` for pip install
  - This allows us to reenable blackd tests that use aiohttp testing helpers etc.
- Had to ignore `cgi` module deprecation warning
  - Filed issue for aiohttp to fix: https://github.com/aio-libs/aiohttp/issues/6905

Test:
- `/tmp/tb/bin/tox -e 311`

* Fix formatting + linting

* Add latest aiohttp for loop fix + Try to exempt deprecation warning but failed - will ask for help

* Remove unnecessary warning ignore

Co-authored-by: Cooper Ry Lees <me@wcooperlees.com>
Co-authored-by: Richard Si <63936253+ichard26@users.noreply.github.com>
2 years agoMitigate deprecation of aiohttp's `@middleware` decorator (#3259)
Richard Si [Mon, 5 Sep 2022 20:27:05 +0000 (16:27 -0400)]
Mitigate deprecation of aiohttp's `@middleware` decorator (#3259)

This is deprecated since aiohttp 4.0. If it doesn't exist just define a
no-op decorator that does nothing (after the other aiohttp imports
though!). By doing this, it's safe to ignore the DeprecationWarning
without needing to require the latest aiohttp once they remove
`@middleware`.

2 years agoAdd preview flag to Vim plugin (#3246)
PeterGrossmann [Thu, 1 Sep 2022 16:39:47 +0000 (18:39 +0200)]
Add preview flag to Vim plugin (#3246)

This allows the configuration of the --preview flag in the Vim plugin.

2 years agodocs: adds ExitStack alternative to future_style.md (#3247)
James Salvatore [Thu, 1 Sep 2022 04:25:13 +0000 (23:25 -0500)]
docs: adds ExitStack alternative to future_style.md (#3247)

Co-authored-by: Richard Si <63936253+ichard26@users.noreply.github.com>
Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
2 years agoPrepare docs for release 22.8.0 (#3248)
Richard Si [Wed, 31 Aug 2022 22:39:54 +0000 (18:39 -0400)]
Prepare docs for release 22.8.0 (#3248)

2 years agoUpdate stable branch after publishing to PyPI (#3223)
Richard Si [Wed, 31 Aug 2022 21:56:47 +0000 (17:56 -0400)]
Update stable branch after publishing to PyPI (#3223)

We've decided to a) convert stable back into a branch and b) to update
it immediately as part of the release process. We may as well automate
it. And about going back to a branch ...

Git tags are not the right tool, at all[^1]. They come with the
expectation that they will never change. Things will not work as
expected if they do change, doubly so if they change regularly. Once
you pull stable from the remote and it's copied in your local
repository, no matter how many times you run git pull you'll never see
it get updated automatically. Your only recourse is to delete the tag
via `git tag -d stable` before pulling.

This gets annoying really quickly since stable is supposed to be the
solution for folks "who want to move along as Black developers deem
the newest version reliable."[^2] See this comment for how this impacts
users using our Vim plugin[^3]. It also affects us developers[^4]. If
you have stable locally, once we cut a new release and update the stable
tag, a simple `git pull` / `git fetch` will not pull down the updated
stable tag. Unless you remember to delete stable before pulling, stable
will become stale and useless.

You can argue this is a good thing ("people should explicitly opt into
updating stable"), but IMO it does not match user expectations nor
developer expectations[^5]. Especially since not all our integrations
that use stable are bound by this security measure, for example our
GitHub Action (since it does a clean fetch of the repository every time
it's used). I believe consistency would be good here.

Finally, ever since we switched to a tag, we've been facing issues with
ReadTheDocs not picking up updates to stable unless we force a rebuild.
The initial rebuild on the stable update just pulls the commit the tag
previously pointed to. I'm not sure if switching back to a branch will
fix this, but I'd wager it will.

[^1]: https://git-scm.com/docs/git-tag#_on_re_tagging

[^2]: https://black.readthedocs.io/en/stable/contributing/release_process.html#moving-the-stable-tag

[^3]: https://github.com/psf/black/issues/2503#issuecomment-1196357379

[^4]: In fairness, most folks working on Black probably don't use the
      `stable` ref anyway, especially us maintainers who'd know what is
      the latest version by heart, but it'd still be nice to make it
      usable for local dev though.

[^5]: Also what benefit does a `stable` ref have over explicit version
      tags like `22.6.0`? If you're going to opt into some odd pin
      mechanism, might as well use explicit version tags for clarity
      and consistency.

2 years agoImprove & update release process to reflect recent changes (#3242)
Richard Si [Wed, 31 Aug 2022 21:46:48 +0000 (17:46 -0400)]
Improve & update release process to reflect recent changes (#3242)

- Formalise release cadence guidelines
- Overhaul release steps to be easier to follow and more thorough
- Reorder changelog template to something more sensible
- Update release automation docs to reflect recent improvements (notably
  the addition of in-repo mypyc wheel builds)

Co-authored-by: Felix Hildén <felix.hilden@gmail.com>
Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
2 years agoUse .gitignore files in the initial source directories (#3237)
Martin de La Gorce [Wed, 31 Aug 2022 19:47:42 +0000 (20:47 +0100)]
Use .gitignore files in the initial source directories (#3237)

Solves https://github.com/psf/black/issues/2598 where Black wouldn't
use .gitignore at folder/.gitignore if you ran `black folder` for
example.

Co-authored-by: Richard Si <63936253+ichard26@users.noreply.github.com>
2 years agoUse strict mypy checking (#3222)
Shantanu [Wed, 31 Aug 2022 03:46:46 +0000 (20:46 -0700)]
Use strict mypy checking (#3222)

Co-authored-by: Richard Si <63936253+ichard26@users.noreply.github.com>
2 years agoAdd parens around implicit string concatenations where it increases readability ...
Yilei "Dolee" Yang [Wed, 31 Aug 2022 02:52:00 +0000 (19:52 -0700)]
Add parens around implicit string concatenations where it increases readability (#3162)

Adds parentheses around implicit string concatenations when it's inside
a list, set, or tuple. Except when it's only element and there's no trailing
comma.

Looking at the order of the transformers here, we need to "wrap in
parens" before string_split runs. So my solution is to introduce a
"collaboration" between StringSplitter and StringParenWrapper where the
splitter "skips" the split until the wrapper adds the parens (and then
the line after the paren is split by StringSplitter) in another pass.

I have also considered an alternative approach, where I tried to add a
different "string paren wrapper" class, and it runs before string_split.
Then I found out it requires a different do_transform implementation
than StringParenWrapper.do_transform, since the later assumes it runs
after the delimiter_split transform. So I stopped researching that
route.

Originally function calls were also included in this change, but given
missing commas should usually result in a runtime error and the scary
amount of changes this cause on downstream code, they were removed in
later revisions.

2 years agoDelay worker count determination
Richard Si [Sat, 13 Aug 2022 17:46:52 +0000 (13:46 -0400)]
Delay worker count determination

os.cpu_count() can return None (sounds like a super arcane edge case
though) so the type annotation for the `workers` parameter of
`black.main` is wrong. This *could* technically cause a runtime
TypeError since it'd trip one of mypyc's runtime type checks so we
might as well fix it.

Reading the documentation (and cross-checking with the source code),
you are actually allowed to pass None as `max_workers` to
`concurrent.futures.ProcessPoolExecutor`. If it is None, the pool
initializer will simply call os.cpu_count() [^1] (defaulting to 1 if it
returns None [^2]). It'll even round down the worker count to a level
that's safe for Windows.

... so theoretically we don't even need to call os.cpu_count()
ourselves, but our Windows limit is 60 (unlike the stdlib's 61) and I'd
prefer not accidentally reintroducing a crash on machines with many,
many CPU cores.

[^1]: https://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.ProcessPoolExecutor
[^2]: https://github.com/python/cpython/blob/a372a7d65320396d44e8beb976e3a6c382963d4e/Lib/concurrent/futures/process.py#L600

2 years agoLoad .gitignore and exclude regex at time of use
Richard Si [Fri, 5 Aug 2022 18:04:43 +0000 (14:04 -0400)]
Load .gitignore and exclude regex at time of use

Loading .gitignore and compiling the exclude regex can take more than
15ms. We shouldn't and don't need to pay this cost if we're simply
formatting files given on the command line directly.

I would've loved to lazily import pathspec, but the patch won't be clean
until the file collection and discovery logic is refactored first.

Co-authored-by: Fabio Zadrozny <fabiofz@gmail.com>
2 years agoLazily import parallelized format modules
Richard Si [Thu, 4 Aug 2022 00:18:33 +0000 (20:18 -0400)]
Lazily import parallelized format modules

`black.reformat_many` depends on a lot of slow-to-import modules. When
formatting simply a single file, the time paid to import those modules
is totally wasted. So I moved `black.reformat_many` and its helpers
to `black.concurrency` which is now *only* imported if there's more
than one file to reformat. This way, running Black over a single file
is snappier

Here are the numbers before and after this patch running `python -m
black --version`:

- interpreted: 411 ms +- 9 ms -> 342 ms +- 7 ms: 1.20x faster
- compiled: 365 ms +- 15 ms -> 304 ms +- 7 ms: 1.20x faster

Co-authored-by: Fabio Zadrozny <fabiofz@gmail.com>
2 years agoFix misdetection of project root with `--stdin-filename` (#3216)
Shantanu [Fri, 26 Aug 2022 21:07:25 +0000 (14:07 -0700)]
Fix misdetection of project root with `--stdin-filename` (#3216)

There are a number of places this behaviour could be patched, for
instance, it's quite tempting to patch it in `get_sources`. However
I believe we generally have the invariant that project root contains all
files we want to format, in which case it seems prudent to keep that
invariant.

This also improves the accuracy of the "sources to be formatted" log
message with --stdin-filename.

Fixes GH-3207.

2 years agoRemove hacky subprocess call in action.yml (#3226)
Ionite [Fri, 26 Aug 2022 19:45:31 +0000 (15:45 -0400)]
Remove hacky subprocess call in action.yml (#3226)

Updates action.yml to use the alternative $GITHUB_ACTION_PATH variable
instead of the original ${{ github.action_path }} which caused issues
with bash on the Windows runners. This removes the need for a Python
subprocess to call the main.py script.

2 years agoFix a string merging/split issue caused by standalone comments. (#3227)
Yilei "Dolee" Yang [Tue, 23 Aug 2022 03:40:38 +0000 (20:40 -0700)]
Fix a string merging/split issue caused by standalone comments. (#3227)

Fixes #2734: a standalone comment causes strings to be merged into one far too long (and requiring two passes to do so).

Co-authored-by: Richard Si <63936253+ichard26@users.noreply.github.com>
2 years agoAdd passing 3.11 CI by exempting blackd tests (#3234)
Cooper Lees [Tue, 23 Aug 2022 03:39:48 +0000 (20:39 -0700)]
Add passing 3.11 CI by exempting blackd tests (#3234)

- Had to exempt blackd tests for now due to aiohttp
  - Skip by using `sys.version_info` tuple
  - aiohttp does not compile in 3.11 yet - refer to #3230
- Add a deadsnakes ubuntu workflow to run 3.11-dev to ensure we don't regress
  - Have it also format ourselves

Test:
- `tox -e 311`

Co-authored-by: Cooper Ry Lees <me@wcooperlees.com>
Co-authored-by: Richard Si <63936253+ichard26@users.noreply.github.com>
2 years agoUpdate email (#3235)
Alexander Huynh [Sat, 20 Aug 2022 17:45:20 +0000 (13:45 -0400)]
Update email (#3235)

This file gets scraped a lot, so create a distinct email for potential
spam.

2 years agoStrip trailing commas in subscripts with -C (#3209)
Shantanu [Sat, 13 Aug 2022 13:41:34 +0000 (06:41 -0700)]
Strip trailing commas in subscripts with -C (#3209)

Fixes #2296, #3204

2 years agoPort & upstream mypyc wheel build workflow (#3197)
Richard Si [Sat, 13 Aug 2022 03:33:17 +0000 (23:33 -0400)]
Port & upstream mypyc wheel build workflow  (#3197)

2 years agoadd preview option support for blackd (#3217)
Alexandr Artemyev [Sat, 13 Aug 2022 03:23:02 +0000 (09:23 +0600)]
add preview option support for blackd (#3217)

Fixes #3195

Co-authored-by: Richard Si <63936253+ichard26@users.noreply.github.com>
2 years agoUse --no-implicit-optional for type checking (#3220)
Shantanu [Sat, 13 Aug 2022 02:28:47 +0000 (19:28 -0700)]
Use --no-implicit-optional for type checking (#3220)

This makes type checking PEP 484 compliant (as of 2018).
mypy will change its defaults soon.

See:
https://github.com/python/mypy/issues/9091
https://github.com/python/mypy/pull/13401

2 years agoUse debug f-strings for feature detection (#3215)
Shantanu [Wed, 10 Aug 2022 21:29:47 +0000 (14:29 -0700)]
Use debug f-strings for feature detection (#3215)

Fixes GH-2907.

2 years agoRemove invalid syntax in docstrings -S --preview test (#3205)
Tom Fryers [Tue, 2 Aug 2022 21:22:04 +0000 (22:22 +0100)]
Remove invalid syntax in docstrings -S --preview test (#3205)

uR is not a legal string prefix, so this test breaks (AssertionError:
cannot use --safe with this file; failed to parse source file AST:
invalid syntax) if changed to one in which the file is changed. I've
changed the last test to have u alone, and added an R to the test above
instead.

2 years agomakes install available for all users in docker image (#3202)
Nicolò Intrieri [Tue, 2 Aug 2022 16:01:15 +0000 (18:01 +0200)]
makes install available for all users in docker image (#3202)

* makes install available for all users in docker image

moves the installation path from /root/.local to a
virtualenv. this way we still get the lightweight
multistage build without excluding non-root users.

* adds changelog entry for docker-image fix

A changelog entry has been added under the Integration
subheader

* changes dockerfile to use the venv activate script

we are now using the inbuilt venv activate script, as well
as explicitly mentioning the binary location in the entrypoint
cmd.

Co-authored-by: Nicolò <nicolo.intrieri@spinforward.it>
Co-authored-by: Cooper Lees <me@cooperlees.com>
2 years agoBump sphinx from 5.1.0 to 5.1.1 in /docs (#3201)
dependabot[bot] [Mon, 1 Aug 2022 17:51:46 +0000 (13:51 -0400)]
Bump sphinx from 5.1.0 to 5.1.1 in /docs (#3201)

Bumps [sphinx](https://github.com/sphinx-doc/sphinx) from 5.1.0 to 5.1.1.
- [Release notes](https://github.com/sphinx-doc/sphinx/releases)
- [Changelog](https://github.com/sphinx-doc/sphinx/blob/5.x/CHANGES)
- [Commits](https://github.com/sphinx-doc/sphinx/compare/v5.1.0...v5.1.1)

---
updated-dependencies:
- dependency-name: sphinx
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2 years agoMove fuzz.py to scripts/ (#3199)
Richard Si [Sun, 31 Jul 2022 14:34:29 +0000 (10:34 -0400)]
Move fuzz.py to scripts/ (#3199)

2 years agoAdd sanity check to executable CD + more (#3190)
Richard Si [Sat, 30 Jul 2022 03:38:39 +0000 (23:38 -0400)]
Add sanity check to executable CD + more (#3190)

Building executables without any testing is quite sketchy, let's at
least verify they won't crash on startup and format Black's own
codebase.

Also replaced "binaries" with "executables" since it's clearer and
won't be confused with mypyc.

Finally, I added colorama so all Windows users can get colour.

2 years agoRemove blib2to3 grammar cache logging (#3193)
Richard Si [Sat, 30 Jul 2022 03:28:43 +0000 (23:28 -0400)]
Remove blib2to3 grammar cache logging (#3193)

As error logs are emitted often (they happen when Black's cache
directory is created after blib2to3 tries to write its cache) and cause
issues to be filed by users who think Black isn't working correctly.

These errors are expected for now and aren't a cause for concern so
let's remove them to stop worrying users (and new issues from being
opened). We can improve the blib2to3 caching mechanism to write its
cache at the end of a successful command line invocation later.

2 years agoVim plugin: prefix messages with "Black: " (#3194)
Théophile Bastian [Thu, 28 Jul 2022 23:49:00 +0000 (01:49 +0200)]
Vim plugin: prefix messages with "Black: " (#3194)

As mentioned in GH-3185, when using Black as a Vim plugin, especially
automatically on save, the plugin's messages can be confusing, as
nothing indicates that they come from Black.

2 years agoConsolidate test CI and add concurrency limits (#3189)
Richard Si [Thu, 28 Jul 2022 20:55:36 +0000 (16:55 -0400)]
Consolidate test CI and add concurrency limits (#3189)

2 years agoBump pre-commit hooks (#3191)
Richard Si [Thu, 28 Jul 2022 02:04:14 +0000 (22:04 -0400)]
Bump pre-commit hooks (#3191)

2 years agoReformat codebase with isort
Richard Si [Wed, 27 Jul 2022 01:33:08 +0000 (21:33 -0400)]
Reformat codebase with isort

2 years agoAdd isort to linting toolchain
Richard Si [Wed, 27 Jul 2022 01:32:31 +0000 (21:32 -0400)]
Add isort to linting toolchain

Co-authored-by: Shivansh-007 <shivansh-007@outlook.com>
2 years agoBump sphinx from 5.0.2 to 5.1.0 in /docs (#3183)
dependabot[bot] [Wed, 27 Jul 2022 00:51:32 +0000 (20:51 -0400)]
Bump sphinx from 5.0.2 to 5.1.0 in /docs (#3183)

Bumps [sphinx](https://github.com/sphinx-doc/sphinx) from 5.0.2 to 5.1.0.
- [Release notes](https://github.com/sphinx-doc/sphinx/releases)
- [Changelog](https://github.com/sphinx-doc/sphinx/blob/5.x/CHANGES)
- [Commits](https://github.com/sphinx-doc/sphinx/compare/v5.0.2...v5.1.0)

---
updated-dependencies:
- dependency-name: sphinx
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2 years agoUse underscores instead of a space in a test file's name (#3180)
Yilei "Dolee" Yang [Wed, 20 Jul 2022 01:33:00 +0000 (18:33 -0700)]
Use underscores instead of a space in a test file's name (#3180)

... for *consistency*

2 years agoFix an infinite loop when using `# fmt: on/off` ... (#3158)
Yilei "Dolee" Yang [Wed, 20 Jul 2022 00:57:23 +0000 (17:57 -0700)]
Fix an infinite loop when using `# fmt: on/off` ... (#3158)

... in the middle of an expression or code block by adding a missing return.

Co-authored-by: Richard Si <63936253+ichard26@users.noreply.github.com>
Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
2 years agoFix the handling of `# fmt: skip` when it's at a colon line (#3148)
Yilei "Dolee" Yang [Tue, 19 Jul 2022 21:26:11 +0000 (14:26 -0700)]
Fix the handling of `# fmt: skip` when it's at a colon line (#3148)

When the Leaf node with `# fmt: skip` is a NEWLINE inside a `suite`
Node, the nodes to ignore should be from the siblings of the parent
`suite` Node.

There is a also a special case for the ASYNC token, where it expands
to the grandparent Node where the ASYNC token is.

This fixes GH-2646, GH-3126, GH-2680, GH-2421, GH-2339, and GH-2138.

2 years agoImprove warning filtering in tests (#3175)
Thomas Grainger [Tue, 19 Jul 2022 02:17:13 +0000 (03:17 +0100)]
Improve warning filtering in tests (#3175)

2 years agoAdd pypy-3.8 to test matrix (#3174)
Thomas Grainger [Sun, 17 Jul 2022 01:55:46 +0000 (02:55 +0100)]
Add pypy-3.8 to test matrix (#3174)

2 years agoconfigure strict pytest and filterwarnings=['error', ... (#3173)
Thomas Grainger [Sat, 16 Jul 2022 12:18:55 +0000 (13:18 +0100)]
configure strict pytest and filterwarnings=['error', ... (#3173)

* configure strict pytest

* ignore current warnings

2 years agoFix typo in config docs for --extend-exclude (#3170)
onescriptkid [Thu, 14 Jul 2022 23:51:18 +0000 (16:51 -0700)]
Fix typo in config docs for --extend-exclude (#3170)

The old regex in the example was invalid and caused an error on startup.

2 years agoActually disable docstring prefix normalization with -S + fix instability (#3168)
Richard Si [Thu, 14 Jul 2022 23:47:33 +0000 (19:47 -0400)]
Actually disable docstring prefix normalization with -S + fix instability (#3168)

The former was a regression I introduced a long time ago. To avoid
changing the stable style too much, the regression is only fixed if
--preview is enabled

Annoyingly enough, as we currently always enforce a second format pass if
changes were made, there's no good way to prove the existence of the
docstring quote normalization instability issue. For posterity, here's
one failing example:

    --- source
    +++ first pass
    @@ -1,7 +1,7 @@
     def some_function(self):
    -    ''''<text here>
    +    """ '<text here>

         <text here, since without another non-empty line black is stable>

    -    '''
    +    """
         pass
    --- first pass
    +++ second pass
    @@ -1,7 +1,7 @@
     def some_function(self):
    -    """ '<text here>
    +    """'<text here>

         <text here, since without another non-empty line black is stable>

         """
         pass

Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
2 years agoMove to explicitly creating a new loop (#3164)
Cooper Lees [Thu, 14 Jul 2022 22:24:34 +0000 (15:24 -0700)]
Move to explicitly creating a new loop (#3164)

* Move to explicitly creating a new loop

- >= 3.10 add a warning that `get_event_loop` will not automatically create a loop
- Move to explicit API

Test:
- `python3.11 -m venv --upgrade-deps /tmp/tb`
  - `/tmp/tb/bin/pip install -e .`
  - Install deps and no blackd as aiohttp + yarl can't build still with 3.11
  - https://github.com/aio-libs/aiohttp/issues/6600
- `export PYTHONWARNINGS=error`
```
cooper@l33t:~/repos/black$ /tmp/tb/bin/black .
All done! ✨ 🍰 ✨
44 files left unchanged.
```

Fixes #3110

* Add to CHANGES.md

* Fix a cooper typo yet again

* Set default asyncio loop to our explicitly created one + unset on exit

* Update CHANGES.md

Fix my silly typo.

Co-authored-by: Thomas Grainger <tagrain@gmail.com>
Co-authored-by: Cooper Ry Lees <me@wcooperlees.com>
Co-authored-by: Thomas Grainger <tagrain@gmail.com>
2 years agoAdd warning to not run blackd publicly in docs (#3167)
Nimrod [Thu, 14 Jul 2022 19:22:29 +0000 (22:22 +0300)]
Add warning to not run blackd publicly in docs (#3167)

Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
2 years agoDon't (ever) put a single-char closing docstring quote on a new line (#3166)
Richard Si [Thu, 14 Jul 2022 02:26:05 +0000 (22:26 -0400)]
Don't (ever) put a single-char closing docstring quote on a new line (#3166)

Doing so is invalid. Note this only fixes the preview style since the
logic putting closing docstring quotes on their own line if they violate
the line length limit is quite new.

Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
2 years agoCopy over comments when hugging power ops (#2874)
Richard Si [Thu, 14 Jul 2022 00:02:51 +0000 (20:02 -0400)]
Copy over comments when hugging power ops  (#2874)

Otherwise they'd be deleted which was a regression in 22.1.0 (oops! my
bad!). Also type comments are now tracked in the AST safety check on all
compatible platforms to error out if this happens again.

Overall the line rewriting code has been rewritten to do "the right
thing (tm)", I hope this fixes other potential bugs in the code (fwiw I
got to drop the bugfix in blib2to3.pytree.Leaf.clone since now bracket
metadata is properly copied over).

Fixes #2873

2 years agoRecommend using BlackConnect in IntelliJ IDEs (#3150)
Maciej Olko [Mon, 11 Jul 2022 16:27:51 +0000 (18:27 +0200)]
Recommend using BlackConnect in IntelliJ IDEs (#3150)

* Recommend using BlackConnect in IntelliJ IDEs

* IntelliJ IDEs integration docs: improve formatting

* Add changelog for recommending BlackConnect

* IntelliJ IDEs integration docs: improve formatting

* Apply suggestions from code review

Co-authored-by: Richard Si <63936253+ichard26@users.noreply.github.com>
* Fix indentation

* Apply italic to Black name

Consequently with other places in the document

* Move CHANGELOG entry to Unreleased section

* IntelliJ IDEs integration docs: bring back a point with formatting a file

* IntelliJ IDEs integration docs: fix extra whitespace and linebreak

Co-authored-by: Richard Si <63936253+ichard26@users.noreply.github.com>
2 years agoStability policy: permit exceptional changes for unformatted code (#3155)
Jelle Zijlstra [Wed, 6 Jul 2022 17:33:07 +0000 (10:33 -0700)]
Stability policy: permit exceptional changes for unformatted code (#3155)

2 years agoUse RTD's new build process and config (#3149)
Jakub Kuczys [Sun, 3 Jul 2022 20:47:18 +0000 (22:47 +0200)]
Use RTD's new build process and config (#3149)

See the deprecation notice:
https://docs.readthedocs.io/en/stable/config-file/v2.html#python-version

2 years agoFix typo in CHANGES.md (#3142)
Dimitri Merejkowsky [Tue, 28 Jun 2022 07:44:55 +0000 (09:44 +0200)]
Fix typo in CHANGES.md (#3142)

2 years agoPrepare docs for release 22.6.0 (#3139)
Richard Si [Tue, 28 Jun 2022 00:33:35 +0000 (20:33 -0400)]
Prepare docs for release 22.6.0 (#3139)

2 years agoUpdate preview style docs to include recent changes (#3136)
Felix Hildén [Mon, 27 Jun 2022 20:24:34 +0000 (23:24 +0300)]
Update preview style docs to include recent changes (#3136)

Covers GH-2926, GH-2990, GH-2991, and GH-3035.

Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
Co-authored-by: Richard Si <63936253+ichard26@users.noreply.github.com>
2 years agoBump furo from 2022.6.4.1 to 2022.6.21 in /docs (#3138)
dependabot[bot] [Mon, 27 Jun 2022 13:54:49 +0000 (09:54 -0400)]
Bump furo from 2022.6.4.1 to 2022.6.21 in /docs (#3138)

Bumps [furo](https://github.com/pradyunsg/furo) from 2022.6.4.1 to 2022.6.21.
- [Release notes](https://github.com/pradyunsg/furo/releases)
- [Changelog](https://github.com/pradyunsg/furo/blob/main/docs/changelog.md)
- [Commits](https://github.com/pradyunsg/furo/compare/2022.06.04.1...2022.06.21)

---
updated-dependencies:
- dependency-name: furo
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2 years agoOnly call get_future_imports when needed (#3135)
Yilei "Dolee" Yang [Thu, 23 Jun 2022 19:41:05 +0000 (12:41 -0700)]
Only call get_future_imports when needed (#3135)

2 years agoBump sphinx from 5.0.1 to 5.0.2 in /docs (#3128)
dependabot[bot] [Mon, 20 Jun 2022 14:22:24 +0000 (10:22 -0400)]
Bump sphinx from 5.0.1 to 5.0.2 in /docs (#3128)

Bumps [sphinx](https://github.com/sphinx-doc/sphinx) from 5.0.1 to 5.0.2.
- [Release notes](https://github.com/sphinx-doc/sphinx/releases)
- [Changelog](https://github.com/sphinx-doc/sphinx/blob/5.x/CHANGES)
- [Commits](https://github.com/sphinx-doc/sphinx/compare/v5.0.1...v5.0.2)

---
updated-dependencies:
- dependency-name: sphinx
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2 years agoReplace link to Requests documentation (#3125)
Nate Prewitt [Fri, 17 Jun 2022 19:37:33 +0000 (13:37 -0600)]
Replace link to Requests documentation (#3125)

2 years agoTest run black on self (#3114)
Sagi Shadur [Tue, 14 Jun 2022 16:08:36 +0000 (19:08 +0300)]
Test run black on self (#3114)

* Add run_self environment in tox

* Add run_self task as part of the lint CI flow

* Remove hard coded sources list

* Remove black from pre-commit

Co-authored-by: Cooper Lees <me@cooperlees.com>