Is it possible to have a linter inside of a Jupyter Notebook?
Asked
Active
Viewed 1.7k times
4 Answers
12
- Yes it is possible
- You can install
pycodestyle
for Jupyter Notebook which is similar topylint
. You can use the below commands from inside a Jupyter Notebook shell:
# install
!pip install pycodestyle pycodestyle_magic
# load
%load_ext pycodestyle_magic
# use
%%pycodestyle
def square_of_number(
num1, num2, num3,
num4):
return num1**2, num2**2, num3*
# Output
2:1: E302 expected 2 blank lines, found 0
3:23: W291 trailing whitespace

Amit Yadav
- 4,422
- 5
- 34
- 79
-
1This code is not maintained anymore. It is now raising errors that haven't been solved. – RomaneG May 23 '22 at 17:36
5
Yes - you can run any standard Python code quality tool on a Jupyter Notebook using nbQA
e.g.:
pip install -U nbqa pylint
nbqa pylint notebook.ipynb
disclaimer: I"m the author of nbQA

ignoring_gravity
- 6,677
- 4
- 32
- 65
-
It is good to point out that nbqa has `typing-extensions` as a dependency. – nevzatseferoglu Jan 08 '23 at 03:18
-
no it doesn't, it only requires ipython, tomli, and tokenize-rt. anything else (like typing-extensions) must have been brought in by some other tool – ignoring_gravity Jan 08 '23 at 09:43
-
Maybe pylint requires? I just run that `pip install -U nbqa pylint` snipped, then pip warned me to install `typing-extensions` – nevzatseferoglu Jan 08 '23 at 16:04
-
0
You can use FlakeHell to run any number of linters supported by flake8 on entire notebooks

RoyalTS
- 9,545
- 12
- 60
- 101
0
If you want to use the black
linter in Jupyter:
pip install black "black[jupyter]"
black {source_file_or_directory}
If you want to auto-lint your notebooks with a pre-commit hook, you have to replace id: black
with id: black-jupyter
(more info here).

crypdick
- 16,152
- 7
- 51
- 74
-
I think you misunderstood the difference between a *linter* and a *formatter*. "Black" is not a linter, it's a formatter. – S.B Jul 16 '22 at 18:27
-
-
https://black.readthedocs.io/en/stable/faq.html#why-does-black-not-detect-syntax-errors-in-my-code – S.B Jul 18 '22 at 10:17
-