# Black

## Why do I need it?

Life is too short to tidy up code by hand. Black is an opinionated python formatter. By using it, you agree to cede control over minutiae of hand-formatting.

## install

pip install black


## Why would I use it?

Blackened code looks the same regardless of the project you’re reading. Formatting becomes transparent after a while and you can focus on the content instead.

## Show me more!

Given this code

#!/usr/bin/env python
dxdy = (
(-1, -2),(0, -2),    (1, -2),
(-2, -1),
(-1, -1),(0, -1),
(1, -1),    (2, -1),
(-2, 0 ),
(-1, 0 ),
(1, 0),(2, 0),
(-2, 1),
(-1, 1),(0, 1),
(1,1),
(2,1),
(-1,2),(0, 2),(1, 2),    (0, 0),)
ny=71
nx=71
coords = [17, 0]
for dx, dy in dxdy:
neighbour_coords = coords[0] + dx, coords[1] + dy
if not (0 <= neighbour_coords[0] < nx
and 0 <= neighbour_coords[1] < ny):
print(f'off {coords[0] + dx} {coords[1] + dy}')
else:
print(f"on {coords[0] + dx} {coords[1] + dy}")



running

python -m black test.py or black test.py

results in

#!/usr/bin/env python
dxdy = (
(-1, -2),
(0, -2),
(1, -2),
(-2, -1),
(-1, -1),
(0, -1),
(1, -1),
(2, -1),
(-2, 0),
(-1, 0),
(1, 0),
(2, 0),
(-2, 1),
(-1, 1),
(0, 1),
(1, 1),
(2, 1),
(-1, 2),
(0, 2),
(1, 2),
(0, 0),
)
ny = 71
nx = 71
coords = [17, 0]
for dx, dy in dxdy:
neighbour_coords = coords[0] + dx, coords[1] + dy
if not (0 <= neighbour_coords[0] < nx and 0 <= neighbour_coords[1] < ny):
print(f"off {coords[0] + dx} {coords[1] + dy}")
else:
print(f"on {coords[0] + dx} {coords[1] + dy}")



## Now what?

There are a few command line arguments (for example I like to use -l 120 to make the columns a little larger ) read the documents from here

Hacker news discussion

Perhaps you can add a git hook to run black by default on your project when you commit.

Next