How do I configure black to use different formatting rules for different file extensions?

17.7k views Asked by At

I use black for format normal .py files as well as Jupyter Notebook files (.ipynb). For notebooks, I want a shorter line-length.

Is it possible to specify different formatting rules for different file extensions with black?

1

There are 1 answers

3
Alex Kosh On BEST ANSWER

You could create two separate files for .py and .ipynb files and run them separately

Some usefull flags from docs:

--config FILE Read configuration from FILE path.

--include TEXT A regular expression that matches files and directories that should be included on recursive searches.

So, to format multiple types of files, run something like:

python -m black --config pyproject.py.toml --include '*.py' src
python -m black --config pyproject.ipynb.toml --include '*.ipynb' src

Also you could specify include field inside toml files. It's in docs too:

[tool.black]
line-length = 88
target-version = ['py37']
include = '\.pyi?$'