1# Frequently Asked Questions 2 3The most common questions and issues users face are aggregated to this FAQ. 4 5```{contents} 6:local: 7:backlinks: none 8``` 9 10## Does Black have an API? 11 12Not yet. _Black_ is fundamentally a command line tool. Many 13[integrations](integrations/index.rst) are provided, but a Python interface is not one 14of them. A simple API is being [planned](https://github.com/psf/black/issues/779) 15though. 16 17## Is Black safe to use? 18 19Yes, for the most part. _Black_ is strictly about formatting, nothing else. But because 20_Black_ is still in [beta](index.rst), some edges are still a bit rough. To combat 21issues, the equivalence of code after formatting is 22[checked](the_black_code_style/current_style.md#ast-before-and-after-formatting) with 23limited special cases where the code is allowed to differ. If issues are found, an error 24is raised and the file is left untouched. Magical comments that influence linters and 25other tools, such as `# noqa`, may be moved by _Black_. See below for more details. 26 27## How stable is Black's style? 28 29Quite stable. _Black_ aims to enforce one style and one style only, with some room for 30pragmatism. However, _Black_ is still in beta so style changes are both planned and 31still proposed on the issue tracker. See 32[The Black Code Style](the_black_code_style/index.rst) for more details. 33 34## Why is my file not formatted? 35 36Most likely because it is ignored in `.gitignore` or excluded with configuration. See 37[file collection and discovery](usage_and_configuration/file_collection_and_discovery.md) 38for details. 39 40## Why are Flake8's E203 and W503 violated? 41 42Because they go against PEP 8. E203 falsely triggers on list 43[slices](the_black_code_style/current_style.md#slices), and adhering to W503 hinders 44readability because operators are misaligned. Disable W503 and enable the 45disabled-by-default counterpart W504. E203 should be disabled while changes are still 46[discussed](https://github.com/PyCQA/pycodestyle/issues/373). 47 48## Does Black support Python 2? 49 50For formatting, yes! [Install](getting_started.md#installation) with the `python2` extra 51to format Python 2 files too! There are no current plans to drop support, but most 52likely it is bound to happen. Sometime. Eventually. In terms of running _Black_ though, 53Python 3.6 or newer is required. 54 55## Why does my linter or typechecker complain after I format my code? 56 57Some linters and other tools use magical comments (e.g., `# noqa`, `# type: ignore`) to 58influence their behavior. While Black does its best to recognize such comments and leave 59them in the right place, this detection is not and cannot be perfect. Therefore, you'll 60sometimes have to manually move these comments to the right place after you format your 61codebase with _Black_. 62