X-Git-Url: https://git.madduck.net/etc/vim.git/blobdiff_plain/f50ba078b3f15b3292f01b76f5c0f4209a57f8c7..9027ca63cac2b5ed24117ea6f5b6e760f1f2e11d:/README.md diff --git a/README.md b/README.md index 6635675..0d14b68 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,14 @@ -![Black Logo](https://raw.githubusercontent.com/python/black/master/docs/_static/logo2-readme.png) +![Black Logo](https://raw.githubusercontent.com/psf/black/master/docs/_static/logo2-readme.png)

The Uncompromising Code Formatter

-Build Status +Build Status Documentation Status -Coverage Status -License: MIT +Coverage Status +License: MIT PyPI Downloads -Code style: black +Code style: black

> “Any color you like.” @@ -28,6 +28,7 @@ content instead. possible. Try it out now using the [Black Playground](https://black.now.sh). +Watch the [PyCon 2019 talk](https://youtu.be/esZLCuWs_2Y) to learn more. --- @@ -177,14 +178,14 @@ great. ```py3 # in: -l = [1, +j = [1, 2, 3, ] # out: -l = [1, 2, 3] +j = [1, 2, 3] ``` If not, *Black* will look at the contents of the first outer matching @@ -292,11 +293,11 @@ you are probably already using. You'd do it like this: max-line-length = 80 ... select = C,E,F,W,B,B950 -ignore = E501 +ignore = E501,W503,E203 ``` You'll find *Black*'s own .flake8 config file is configured like this. -If you're curious about the reasoning behind B950, +If you're curious about the reasoning behind B950, [Bugbear's documentation](https://github.com/PyCQA/flake8-bugbear#opinionated-warnings) explains it. The tl;dr is "it's like highway speed limits, we won't bother you if you overdo it by a few km/h". @@ -372,7 +373,7 @@ The main reason to standardize on a single form of quotes is aesthetics. Having one kind of quotes everywhere reduces reader distraction. It will also enable a future version of *Black* to merge consecutive string literals that ended up on the same line (see -[#26](https://github.com/python/black/issues/26) for details). +[#26](https://github.com/psf/black/issues/26) for details). Why settle on double quotes? They anticipate apostrophes in English text. They match the docstring standard described in [PEP 257](https://www.python.org/dev/peps/pep-0257/#what-is-a-docstring). @@ -681,7 +682,7 @@ $ where black -### Wing IDE +### Wing IDE Wing supports black via the OS Commands tool, as explained in the Wing documentation on [pep8 formatting](https://wingware.com/doc/edit/pep8). The detailed procedure is: @@ -703,7 +704,7 @@ $ black --help - click on **+** in **OS Commands** -> New: Command line.. - Title: black - Command Line: black %s - - I/O Encoding: Use Default + - I/O Encoding: Use Default - Key Binding: F1 - [x] Raise OS Commands when executed - [x] Auto-save files before execution @@ -729,16 +730,22 @@ Configuration: To install with [vim-plug](https://github.com/junegunn/vim-plug): ``` -Plug 'python/black' +Plug 'psf/black' ``` or with [Vundle](https://github.com/VundleVim/Vundle.vim): ``` -Plugin 'python/black' +Plugin 'psf/black' +``` + +or you can copy the plugin from [plugin/black.vim](https://github.com/psf/black/tree/master/plugin/black.vim). + +``` +mkdir -p ~/.vim/pack/python/start/black/plugin +curl https://raw.githubusercontent.com/psf/black/master/plugin/black.vim -o ~/.vim/pack/python/start/black/plugin/black.vim ``` -or you can copy the plugin from [plugin/black.vim](https://github.com/python/black/tree/master/plugin/black.vim). Let me know if this requires any changes to work with Vim 8's builtin `packadd`, or Pathogen, and so on. @@ -761,6 +768,12 @@ To run *Black* on save, add the following line to `.vimrc` or `init.vim`: autocmd BufWritePre *.py execute ':Black' ``` +To run *Black* on a key press (e.g. F9 below), add this: + +``` +nnoremap :Black +``` + **How to get Vim with Python 3.6?** On Ubuntu 17.10 Vim comes with Python 3.6 by default. On macOS with Homebrew run: `brew install vim --with-python3`. @@ -843,6 +856,14 @@ Options: -h, --help Show this message and exit. ``` +There is no official blackd client tool (yet!). You can test that blackd is +working using `curl`: + +``` +blackd --bind-port 9090 & # or let blackd choose a port +curl -s -XPOST "localhost:9090" -d "print('valid')" +``` + ### Protocol `blackd` only accepts `POST` requests at the `/` path. The body of the request @@ -884,6 +905,9 @@ Apart from the above, `blackd` can produce the following response codes: - `HTTP 500`: If there was any kind of error while trying to format the input. The response body contains a textual representation of the error. +The response headers include a `X-Black-Version` header containing the version +of *Black*. + ## Version control integration Use [pre-commit](https://pre-commit.com/). Once you [have it @@ -891,7 +915,7 @@ installed](https://pre-commit.com/#install), add this to the `.pre-commit-config.yaml` in your repository: ```yaml repos: -- repo: https://github.com/python/black +- repo: https://github.com/psf/black rev: stable hooks: - id: black @@ -901,7 +925,7 @@ Then run `pre-commit install` and you're ready to go. Avoid using `args` in the hook. Instead, store necessary configuration in `pyproject.toml` so that editors and command-line usage of Black all -behave consistently for your project. See *Black*'s own `pyproject.toml` +behave consistently for your project. See *Black*'s own [pyproject.toml](/pyproject.toml) for an example. If you're already using Python 3.7, switch the `language_version` @@ -924,12 +948,17 @@ is: `file-mode` is an int flag that determines whether the file was formatted as 3.6+ only, as .pyi, and whether string normalization was omitted. +To override the location of these files on macOS or Linux, set the environment variable +`XDG_CACHE_HOME` to your preferred location. For example, if you want to put the cache in +the directory you're running *Black* from, set `XDG_CACHE_HOME=.cache`. *Black* will then +write the above files to `.cache/black//`. ## Used by The following notable open-source projects trust *Black* with enforcing a consistent code style: pytest, tox, Pyramid, Django Channels, Hypothesis, -attrs, SQLAlchemy, Poetry, PyPA applications (Warehouse, Pipenv, virtualenv). +attrs, SQLAlchemy, Poetry, PyPA applications (Warehouse, Pipenv, virtualenv), +pandas, Pillow, every Datadog Agent Integration. Are we missing anyone? Let us know. @@ -960,16 +989,16 @@ and [`pipenv`](https://docs.pipenv.org/): Use the badge in your project's README.md: ```markdown -[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/python/black) +[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) ``` Using the badge in README.rst: ``` .. image:: https://img.shields.io/badge/code%20style-black-000000.svg - :target: https://github.com/python/black + :target: https://github.com/psf/black ``` -Looks like this: [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/python/black) +Looks like this: [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) ## License @@ -995,26 +1024,50 @@ More details can be found in [CONTRIBUTING](CONTRIBUTING.md). ## Change Log -### 19.5b0 +### unreleased + +* added `black -c` as a way to format code passed from the command line + (#761) + +* --safe now works with Python 2 code (#840) -* don't crash when run on a Windows machine with more than 61 cores (#838) +* fixed grammar selection for Python 2-specific code (#765) -* remove unnecessary parentheses around `yield` expressions (#834) +* fixed feature detection for trailing commas in function definitions + and call sites (#763) -* add parentheses around long tuples in unpacking assignments (#832) +* *Black* can now format async generators (#593) -* don't produce invalid code for `from` ... `import` blocks with comments +* *Black* no longer crashes on Windows machines with more than 61 cores + (#838) + +* *Black* no longer crashes on standalone comments prepended with + a backslash (#767) + +* *Black* no longer crashes on `from` ... `import` blocks with comments (#829) -* fix grammar selection (#765) +* removed unnecessary parentheses around `yield` expressions (#834) + +* added parentheses around long tuples in unpacking assignments (#832) -* fix feature detection for trailing commas in function definitions and - call sites (#763) +* fixed bug that led *Black* format some code with a line length target + of 1 (#762) -* add `black -c` as a way to format code passed from the command line (#761) +* *Black* no longer introduces quotes in f-string subexpressions on string + boundaries (#863) + +* if *Black* puts parenthesis around a single expression, it moves comments + to the wrapped expression instead of after the brackets (#872) + +* *Black* is now able to format Python code that uses assignment expressions + (`:=` as described in PEP-572) (#935) + +* *Black* is now able to format Python code that uses positional-only + arguments (`/` as described in PEP-570) (#946) + +* `blackd` now returns the version of *Black* in the response headers (#1013) -* fix bug that led *Black* format some code with a line length target of 1 - (#762) ### 19.3b0 @@ -1042,6 +1095,7 @@ More details can be found in [CONTRIBUTING](CONTRIBUTING.md). * `blackd` now supports CORS (#622) + ### 18.9b0 * numeric literals are now formatted by *Black* (#452, #461, #464, #469): @@ -1445,12 +1499,14 @@ Maintained with [Carol Willing](mailto:carolcode@willingconsulting.com), Multiple contributions by: * [Anthony Sottile](mailto:asottile@umich.edu) * [Artem Malyshev](mailto:proofit404@gmail.com) +* [Benjamin Woodruff](mailto:github@benjam.info) * [Christian Heimes](mailto:christian@python.org) * [Daniel M. Capella](mailto:polycitizen@gmail.com) * [Eli Treuherz](mailto:eli@treuherz.com) * hauntsaninja * Hugo van Kemenade * [Ivan Katanić](mailto:ivan.katanic@gmail.com) +* [Jason Fried](mailto:me@jasonfried.info) * [Jonas Obrist](mailto:ojiidotch@gmail.com) * [Luka Sterbic](mailto:luka.sterbic@gmail.com) * [Miguel Gaiowski](mailto:miggaiowski@gmail.com)