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?
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?$'
python -m black --config
lines in a single toml file somehow? I understand these commands point to two different files, but it would be great if black could conditionally apply formatting rules based on the file extension (.py or .ipynb) without needing to change the command. Also, I should mention that I'm using the vscode Black extension, so I can apply formatting to a .py file or .ipynb cell with a keybinding.
> Also you could specify include field inside toml files. It's in docs too
. How do you actually run Black in that scenario? Leaving off options causes it to complain about requiring an argument, whereas I thought it should be looking for configuration files.
python -m black --config pyproject.ipynb.toml src
Commented
Feb 6 at 10:50
pyproject.toml
to configure black? Or just CLI flags?pyproject.toml
hipster