← New search

Other meanings of black

Programming Tools

Black (code)

Black is an uncompromising Python code formatter that automatically formats code to conform to a consistent style. It is known for its opinionated approach, minimal configuration, and speed, making it a popular tool in modern Python development workflows.

2018
First release
Initial release year
~30k
GitHub stars
Approximate stars on GitHub
MIT
License
Open-source license
1

Overview

Black is a Python code formatter that reformats code to adhere to a consistent style, often described as "the uncompromising Python code formatter." It was created by Łukasz Langa, a Python core developer, and first released in 2018.1 Black's primary goal is to reduce debates about code style by providing a single, deterministic formatting style. It is widely adopted in the Python community and is integrated into many development workflows, including pre-commit hooks and continuous integration pipelines.

2

Design philosophy

Black's design philosophy is to be opinionated and deterministic. It aims to minimize configuration options, offering only a few flags such as line length and string normalization. This approach eliminates the need for teams to argue over style details, as Black produces consistent output regardless of who runs it. The name "Black" is a reference to the phrase "the black sheep" and also to the idea that "black is the new black" in fashion, implying that Black's style is the definitive one.2

3

Usage and integration

Black can be used as a command-line tool, a pre-commit hook, or integrated into editors and IDEs. It is often run as part of a CI pipeline to ensure code consistency. For example, a typical pre-commit configuration includes a hook for Black that runs on every commit. Black also supports a --check flag to verify if code is already formatted without modifying it, which is useful for CI checks.3

4

Lesser-known aspects

While Black is known for its simplicity, it has several lesser-known features and edge cases. For instance, Black has a --fast mode that skips some safety checks, which can be useful for large codebases but may occasionally produce incorrect formatting. Additionally, Black supports a --line-ranges option to format only specific lines, which is handy for partial formatting. Another niche aspect is that Black's formatting style is influenced by the PEP 8 style guide but deviates in some cases, such as preferring double quotes over single quotes for strings. Black also has a special handling for magic trailing commas, which can affect how collections are formatted.4

5

Impact and community

Black has had a significant impact on the Python ecosystem. It is used by major projects like Django, Pandas, and PyTorch. Its adoption has led to a more uniform code style across open-source projects, reducing friction in contributions. Black is also a topic of discussion in the community, with some developers praising its simplicity and others criticizing its lack of configurability. Despite this, it remains one of the most popular Python tools, with a large number of contributors and a vibrant community around it.5

Glossary

PEP 8
Python Enhancement Proposal 8, the official style guide for Python code.
Pre-commit hook
A script that runs automatically before a commit to check or modify code.
CI
Continuous Integration, a practice of automatically testing and validating code changes.

Black is a registered trademark of the Python Software Foundation.

Served from cache