Solución:
pycodestyle es un equivalente de pylint
para Jupyter Notebook, que puede verificar su código con el PEP8
guía de estilo.
Primero, necesita instalar el pycodestyle
en jupyter notebook
escribiendo este comando,
!pip install pycodestyle pycodestyle_magic
Ejecute este comando en una celda de jupyter notebook. Después de una instalación exitosa, debe cargar la magia en una celda de Jupyter Notebook como esta,
%load_ext pycodestyle_magic
Entonces, tienes que usar pycodestyle
en una celda en la que desea investigar su código contra PEP8
normas.
A continuación se muestran algunos ejemplos para una comprensión más clara y más clara,
%%pycodestyle
a=1
Producción: pycodestyle
te dará este mensaje,
2:2: E225 missing whitespace around operator
Otro ejemplo,
%%pycodestyle
def square_of_number(
num1, num2, num3,
num4):
return num1**2, num2**2, num3**2, num4**2
Producción:
2:1: E302 expected 2 blank lines, found 0
3:23: W291 trailing whitespace
Para responder a la pregunta más específicamente en lo que respecta a pylint
. Una forma relativamente sencilla de lograrlo en un entorno de desarrollo / ci (es decir, línea de comandos) es convertir el cuaderno a Python y luego ejecutar el linting.
Supongamos que tiene cuadernos en el ./notebooks
carpeta y tienes la jupyter
y pylint
comando en la ruta, puede ejecutar lo siguiente:
jupyter nbconvert
--to=script
--output-dir=/tmp/converted-notebooks/
./notebooks/*.ipynb
pylint /tmp/converted-notebooks/*.py
Es posible que desee configurar pylint, ya que el estilo del cuaderno es ligeramente diferente al de un módulo Python general.
Algunas reglas que quizás desee deshabilitar:
- declaración-inútil
- expresión-no-asignada
- trailing-newlines
- posición de importación incorrecta
- nombre-exterior-redefinido
- nombre inválido
También parece que el número máximo de caracteres en una celda (antes del desplazamiento horizontal) es 116
pero eso podría depender de otros factores.
(Estas opciones se pueden configurar, por ejemplo, mediante el --max-line-length
y --disable
argumentos de pylint, o mediante el .pylintrc
expediente)