Download - Análisis estático de código fuente en Python
![Page 1: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/1.jpg)
Análisis estático del código fuente en Python
Análisis estático del código fuente en PythonPylint
Milton Mazzarri<[email protected]>
Marzo, 2010
![Page 2: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/2.jpg)
Análisis estático del código fuente en Python
Contenido I
1 ConceptosAnálisis estático de códigoPylint
2 ConsideracionesLabores de revisión manualFalsos positivos
3 RevisionesBásicasVariablesClasesDiseñoImportacionesConflictos de estilosFormato
![Page 3: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/3.jpg)
Análisis estático del código fuente en Python
Contenido IIOtras revisiones
4 Reportes
5 Puntuación
6 Proceso de correcciónInstalaciónEjecuciónConociendo el detalle del errorPrimer avanceSegundo avance
![Page 4: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/4.jpg)
Análisis estático del código fuente en Python
Conceptos
Análisis estático de código
¿Análisis estático de código?
DefiniciónEl análisis estático del código se refiere al proceso deevaluación del código fuente sin ejecutarlo, en base a esteanálisis se obtendrá información que nos permita mejorar lalínea base de nuestro proyecto, sin alterar la semántica originalde la aplicación.
![Page 5: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/5.jpg)
Análisis estático del código fuente en Python
Conceptos
Pylint
¿Qué es Pylint?
DefiniciónSu misión es analizar código en Python en busca de errores osíntomas de mala calidad en el código fuente. Cabe destacarque por omisión, la guía de estilo a la que se trata de apegarPylint es la descrita en el PEP-8.
![Page 6: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/6.jpg)
Análisis estático del código fuente en Python
Consideraciones
Labores de revisión manual
Labores de revisión manual
Pylint no sustituye las labores de revisión continua de altonivel:
Estructura.Arquitectura.Comunicación con elementos externos como bibliotecas.Diseño.
![Page 7: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/7.jpg)
Análisis estático del código fuente en Python
Consideraciones
Labores de revisión manual
Labores de revisión manual
Pylint no sustituye las labores de revisión continua de altonivel:
Estructura.Arquitectura.Comunicación con elementos externos como bibliotecas.Diseño.
![Page 8: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/8.jpg)
Análisis estático del código fuente en Python
Consideraciones
Labores de revisión manual
Labores de revisión manual
Pylint no sustituye las labores de revisión continua de altonivel:
Estructura.Arquitectura.Comunicación con elementos externos como bibliotecas.Diseño.
![Page 9: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/9.jpg)
Análisis estático del código fuente en Python
Consideraciones
Labores de revisión manual
Labores de revisión manual
Pylint no sustituye las labores de revisión continua de altonivel:
Estructura.Arquitectura.Comunicación con elementos externos como bibliotecas.Diseño.
![Page 10: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/10.jpg)
Análisis estático del código fuente en Python
Consideraciones
Labores de revisión manual
Labores de revisión manual
Pylint no sustituye las labores de revisión continua de altonivel:
Estructura.Arquitectura.Comunicación con elementos externos como bibliotecas.Diseño.
![Page 11: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/11.jpg)
Análisis estático del código fuente en Python
Consideraciones
Falsos positivos
Falsos positivos
Pylint puede arrojar falsos positivosPuede entenderse al recibir una alerta de algún cambioque usted realizó conscientemente.Algunas de las advertencias encontradas pueden serpeligrosas en algunos contextos, pero en otros puede noaplicar.Se hacen revisiones de declaraciones que a ustedrealmente no le importan.
Informe al revisor para ajustar la configuración de Pylintpara no ser informado acerca de ciertos tipos deadvertencias o errores.
![Page 12: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/12.jpg)
Análisis estático del código fuente en Python
Consideraciones
Falsos positivos
Falsos positivos
Pylint puede arrojar falsos positivosPuede entenderse al recibir una alerta de algún cambioque usted realizó conscientemente.Algunas de las advertencias encontradas pueden serpeligrosas en algunos contextos, pero en otros puede noaplicar.Se hacen revisiones de declaraciones que a ustedrealmente no le importan.
Informe al revisor para ajustar la configuración de Pylintpara no ser informado acerca de ciertos tipos deadvertencias o errores.
![Page 13: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/13.jpg)
Análisis estático del código fuente en Python
Consideraciones
Falsos positivos
Falsos positivos
Pylint puede arrojar falsos positivosPuede entenderse al recibir una alerta de algún cambioque usted realizó conscientemente.Algunas de las advertencias encontradas pueden serpeligrosas en algunos contextos, pero en otros puede noaplicar.Se hacen revisiones de declaraciones que a ustedrealmente no le importan.
Informe al revisor para ajustar la configuración de Pylintpara no ser informado acerca de ciertos tipos deadvertencias o errores.
![Page 14: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/14.jpg)
Análisis estático del código fuente en Python
Consideraciones
Falsos positivos
Falsos positivos
Pylint puede arrojar falsos positivosPuede entenderse al recibir una alerta de algún cambioque usted realizó conscientemente.Algunas de las advertencias encontradas pueden serpeligrosas en algunos contextos, pero en otros puede noaplicar.Se hacen revisiones de declaraciones que a ustedrealmente no le importan.
Informe al revisor para ajustar la configuración de Pylintpara no ser informado acerca de ciertos tipos deadvertencias o errores.
![Page 15: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/15.jpg)
Análisis estático del código fuente en Python
Consideraciones
Falsos positivos
Falsos positivos
Pylint puede arrojar falsos positivosPuede entenderse al recibir una alerta de algún cambioque usted realizó conscientemente.Algunas de las advertencias encontradas pueden serpeligrosas en algunos contextos, pero en otros puede noaplicar.Se hacen revisiones de declaraciones que a ustedrealmente no le importan.
Informe al revisor para ajustar la configuración de Pylintpara no ser informado acerca de ciertos tipos deadvertencias o errores.
![Page 16: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/16.jpg)
Análisis estático del código fuente en Python
Revisiones
Básicas
Revisiones básicas
Presencia de cadenas de documentación (docstring).Nombres de módulos, clases, funciones, métodos,argumentos, variables.Número de argumentos, variables locales, retornos ysentencias en funciones y métodos.Atributos requeridos para módulos.Valores por omisión no recomendados como argumentos.Redefinición de funciones, métodos, clases.Uso de declaraciones globales.
![Page 17: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/17.jpg)
Análisis estático del código fuente en Python
Revisiones
Básicas
Revisiones básicas
Presencia de cadenas de documentación (docstring).Nombres de módulos, clases, funciones, métodos,argumentos, variables.Número de argumentos, variables locales, retornos ysentencias en funciones y métodos.Atributos requeridos para módulos.Valores por omisión no recomendados como argumentos.Redefinición de funciones, métodos, clases.Uso de declaraciones globales.
![Page 18: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/18.jpg)
Análisis estático del código fuente en Python
Revisiones
Básicas
Revisiones básicas
Presencia de cadenas de documentación (docstring).Nombres de módulos, clases, funciones, métodos,argumentos, variables.Número de argumentos, variables locales, retornos ysentencias en funciones y métodos.Atributos requeridos para módulos.Valores por omisión no recomendados como argumentos.Redefinición de funciones, métodos, clases.Uso de declaraciones globales.
![Page 19: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/19.jpg)
Análisis estático del código fuente en Python
Revisiones
Básicas
Revisiones básicas
Presencia de cadenas de documentación (docstring).Nombres de módulos, clases, funciones, métodos,argumentos, variables.Número de argumentos, variables locales, retornos ysentencias en funciones y métodos.Atributos requeridos para módulos.Valores por omisión no recomendados como argumentos.Redefinición de funciones, métodos, clases.Uso de declaraciones globales.
![Page 20: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/20.jpg)
Análisis estático del código fuente en Python
Revisiones
Básicas
Revisiones básicas
Presencia de cadenas de documentación (docstring).Nombres de módulos, clases, funciones, métodos,argumentos, variables.Número de argumentos, variables locales, retornos ysentencias en funciones y métodos.Atributos requeridos para módulos.Valores por omisión no recomendados como argumentos.Redefinición de funciones, métodos, clases.Uso de declaraciones globales.
![Page 21: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/21.jpg)
Análisis estático del código fuente en Python
Revisiones
Básicas
Revisiones básicas
Presencia de cadenas de documentación (docstring).Nombres de módulos, clases, funciones, métodos,argumentos, variables.Número de argumentos, variables locales, retornos ysentencias en funciones y métodos.Atributos requeridos para módulos.Valores por omisión no recomendados como argumentos.Redefinición de funciones, métodos, clases.Uso de declaraciones globales.
![Page 22: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/22.jpg)
Análisis estático del código fuente en Python
Revisiones
Básicas
Revisiones básicas
Presencia de cadenas de documentación (docstring).Nombres de módulos, clases, funciones, métodos,argumentos, variables.Número de argumentos, variables locales, retornos ysentencias en funciones y métodos.Atributos requeridos para módulos.Valores por omisión no recomendados como argumentos.Redefinición de funciones, métodos, clases.Uso de declaraciones globales.
![Page 23: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/23.jpg)
Análisis estático del código fuente en Python
Revisiones
Variables
Revisión de variables
Determina si una variable o import no está siendo usado.Variables indefinidas.Redefinición de variables proveniente de módulos builtinso de ámbito externo.Uso de una variable antes de asignación de valor.
![Page 24: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/24.jpg)
Análisis estático del código fuente en Python
Revisiones
Variables
Revisión de variables
Determina si una variable o import no está siendo usado.Variables indefinidas.Redefinición de variables proveniente de módulos builtinso de ámbito externo.Uso de una variable antes de asignación de valor.
![Page 25: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/25.jpg)
Análisis estático del código fuente en Python
Revisiones
Variables
Revisión de variables
Determina si una variable o import no está siendo usado.Variables indefinidas.Redefinición de variables proveniente de módulos builtinso de ámbito externo.Uso de una variable antes de asignación de valor.
![Page 26: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/26.jpg)
Análisis estático del código fuente en Python
Revisiones
Variables
Revisión de variables
Determina si una variable o import no está siendo usado.Variables indefinidas.Redefinición de variables proveniente de módulos builtinso de ámbito externo.Uso de una variable antes de asignación de valor.
![Page 27: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/27.jpg)
Análisis estático del código fuente en Python
Revisiones
Clases
Revisión de clases
Métodos sin self como primer argumento.Acceso único a miembros existentes vía self
Atributos no definidos en el método __init__
Código inalcanzable.
![Page 28: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/28.jpg)
Análisis estático del código fuente en Python
Revisiones
Clases
Revisión de clases
Métodos sin self como primer argumento.Acceso único a miembros existentes vía self
Atributos no definidos en el método __init__
Código inalcanzable.
![Page 29: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/29.jpg)
Análisis estático del código fuente en Python
Revisiones
Clases
Revisión de clases
Métodos sin self como primer argumento.Acceso único a miembros existentes vía self
Atributos no definidos en el método __init__
Código inalcanzable.
![Page 30: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/30.jpg)
Análisis estático del código fuente en Python
Revisiones
Clases
Revisión de clases
Métodos sin self como primer argumento.Acceso único a miembros existentes vía self
Atributos no definidos en el método __init__
Código inalcanzable.
![Page 31: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/31.jpg)
Análisis estático del código fuente en Python
Revisiones
Diseño
Revisión de diseño
Número de métodos, atributos, variables locales, . . .Tamaño, complejidad de funciones, métodos, . . .
![Page 32: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/32.jpg)
Análisis estático del código fuente en Python
Revisiones
Diseño
Revisión de diseño
Número de métodos, atributos, variables locales, . . .Tamaño, complejidad de funciones, métodos, . . .
![Page 33: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/33.jpg)
Análisis estático del código fuente en Python
Revisiones
Importaciones
Revisión de importaciones
Dependencias externas.imports relativos o importe de todos los métodos, variablesvía * (wildcard).Uso de imports cíclicos.Uso de módulos obsoletos.
![Page 34: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/34.jpg)
Análisis estático del código fuente en Python
Revisiones
Importaciones
Revisión de importaciones
Dependencias externas.imports relativos o importe de todos los métodos, variablesvía * (wildcard).Uso de imports cíclicos.Uso de módulos obsoletos.
![Page 35: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/35.jpg)
Análisis estático del código fuente en Python
Revisiones
Importaciones
Revisión de importaciones
Dependencias externas.imports relativos o importe de todos los métodos, variablesvía * (wildcard).Uso de imports cíclicos.Uso de módulos obsoletos.
![Page 36: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/36.jpg)
Análisis estático del código fuente en Python
Revisiones
Importaciones
Revisión de importaciones
Dependencias externas.imports relativos o importe de todos los métodos, variablesvía * (wildcard).Uso de imports cíclicos.Uso de módulos obsoletos.
![Page 37: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/37.jpg)
Análisis estático del código fuente en Python
Revisiones
Conflictos de estilos
Conflictos entre viejo/nuevo estilo
Uso de property, __slots__, super.Uso de super.
![Page 38: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/38.jpg)
Análisis estático del código fuente en Python
Revisiones
Conflictos de estilos
Conflictos entre viejo/nuevo estilo
Uso de property, __slots__, super.Uso de super.
![Page 39: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/39.jpg)
Análisis estático del código fuente en Python
Revisiones
Formato
Revisiones de formato
Construcciones no autorizadasSangrado estricto del códigoLongitud de la líneaUso de <> en vez de !=
![Page 40: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/40.jpg)
Análisis estático del código fuente en Python
Revisiones
Formato
Revisiones de formato
Construcciones no autorizadasSangrado estricto del códigoLongitud de la líneaUso de <> en vez de !=
![Page 41: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/41.jpg)
Análisis estático del código fuente en Python
Revisiones
Formato
Revisiones de formato
Construcciones no autorizadasSangrado estricto del códigoLongitud de la líneaUso de <> en vez de !=
![Page 42: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/42.jpg)
Análisis estático del código fuente en Python
Revisiones
Formato
Revisiones de formato
Construcciones no autorizadasSangrado estricto del códigoLongitud de la líneaUso de <> en vez de !=
![Page 43: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/43.jpg)
Análisis estático del código fuente en Python
Revisiones
Otras revisiones
Otras revisiones
Notas de alerta en el código como FIXME, XXX.Código fuente con caracteres non-ASCII sin tener unadeclaración de encoding. PEP-263Búsqueda por similitudes o duplicación en el códigofuente.Revisión de excepciones.Revisiones de tipo haciendo uso de inferencia de tipos.
![Page 44: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/44.jpg)
Análisis estático del código fuente en Python
Revisiones
Otras revisiones
Otras revisiones
Notas de alerta en el código como FIXME, XXX.Código fuente con caracteres non-ASCII sin tener unadeclaración de encoding. PEP-263Búsqueda por similitudes o duplicación en el códigofuente.Revisión de excepciones.Revisiones de tipo haciendo uso de inferencia de tipos.
![Page 45: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/45.jpg)
Análisis estático del código fuente en Python
Revisiones
Otras revisiones
Otras revisiones
Notas de alerta en el código como FIXME, XXX.Código fuente con caracteres non-ASCII sin tener unadeclaración de encoding. PEP-263Búsqueda por similitudes o duplicación en el códigofuente.Revisión de excepciones.Revisiones de tipo haciendo uso de inferencia de tipos.
![Page 46: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/46.jpg)
Análisis estático del código fuente en Python
Revisiones
Otras revisiones
Otras revisiones
Notas de alerta en el código como FIXME, XXX.Código fuente con caracteres non-ASCII sin tener unadeclaración de encoding. PEP-263Búsqueda por similitudes o duplicación en el códigofuente.Revisión de excepciones.Revisiones de tipo haciendo uso de inferencia de tipos.
![Page 47: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/47.jpg)
Análisis estático del código fuente en Python
Revisiones
Otras revisiones
Otras revisiones
Notas de alerta en el código como FIXME, XXX.Código fuente con caracteres non-ASCII sin tener unadeclaración de encoding. PEP-263Búsqueda por similitudes o duplicación en el códigofuente.Revisión de excepciones.Revisiones de tipo haciendo uso de inferencia de tipos.
![Page 48: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/48.jpg)
Análisis estático del código fuente en Python
Reportes
Reportes
Posterior a los mensajes de análisis mostrados, Pylintdespliega una serie de reportes, cada uno de ellosenfocándose en un aspecto particular del proyecto, como elnúmero de mensajes por categorias, dependencias demódulos, . . .
![Page 49: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/49.jpg)
Análisis estático del código fuente en Python
Reportes
Número de módulos procesados
EjemploReport======1895 statements analysed.
![Page 50: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/50.jpg)
Análisis estático del código fuente en Python
Reportes
Duplicación de código fuente
now previous differencenb duplicated lines 274 NC NCpercent duplicated lines 5.591 NC NC
![Page 51: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/51.jpg)
Análisis estático del código fuente en Python
Reportes
Estadísticas por tipo
type number %documented %badnamemodule 14 85.71 57.14class 12 100.00 66.67method 145 85.52 83.45function 1 100.00 0.00
![Page 52: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/52.jpg)
Análisis estático del código fuente en Python
Reportes
Errores y advertencias por módulo
module error warning refactor conventiontests.test_cheese 75.00 1.93 9.09 20.48tests.test_spam 25.00 1.86 4.55 27.01tests.test_main 0.00 78.97 33.33 4.17tests.test_eggs 0.00 2.35 4.55 28.94tests.test_ham 0.00 1.89 4.55 4.11tests.common 0.00 1.86 9.09 3.56
![Page 53: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/53.jpg)
Análisis estático del código fuente en Python
Reportes
Número de mensajes por categorías
type number previous differenceconvention 1655 NC NC
refactor 66 NC NCwarning 28339 NC NC
error 4 NC NC
![Page 54: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/54.jpg)
Análisis estático del código fuente en Python
Reportes
Tipos de categorías de los mensajes
Refactorización Violación en alguna buena práctica.Convención Violación al estándar de codificación.Advertencia Problemas de estilo o errores de programación
menores.Error Errores de programación importantes, es probable
que se trate de un bug.Fatal Errores que no permiten a Pylint avanzar en su
análisis.
![Page 55: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/55.jpg)
Análisis estático del código fuente en Python
Reportes
Tipos de categorías de los mensajes
Refactorización Violación en alguna buena práctica.Convención Violación al estándar de codificación.Advertencia Problemas de estilo o errores de programación
menores.Error Errores de programación importantes, es probable
que se trate de un bug.Fatal Errores que no permiten a Pylint avanzar en su
análisis.
![Page 56: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/56.jpg)
Análisis estático del código fuente en Python
Reportes
Tipos de categorías de los mensajes
Refactorización Violación en alguna buena práctica.Convención Violación al estándar de codificación.Advertencia Problemas de estilo o errores de programación
menores.Error Errores de programación importantes, es probable
que se trate de un bug.Fatal Errores que no permiten a Pylint avanzar en su
análisis.
![Page 57: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/57.jpg)
Análisis estático del código fuente en Python
Reportes
Tipos de categorías de los mensajes
Refactorización Violación en alguna buena práctica.Convención Violación al estándar de codificación.Advertencia Problemas de estilo o errores de programación
menores.Error Errores de programación importantes, es probable
que se trate de un bug.Fatal Errores que no permiten a Pylint avanzar en su
análisis.
![Page 58: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/58.jpg)
Análisis estático del código fuente en Python
Reportes
Tipos de categorías de los mensajes
Refactorización Violación en alguna buena práctica.Convención Violación al estándar de codificación.Advertencia Problemas de estilo o errores de programación
menores.Error Errores de programación importantes, es probable
que se trate de un bug.Fatal Errores que no permiten a Pylint avanzar en su
análisis.
![Page 59: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/59.jpg)
Análisis estático del código fuente en Python
Reportes
Formato de salida
El formato de salida del ejemplo utilizado está en modo texto,usted puede elegir entre:
ColoreadoTextoMSVS (Visual Studio)HTML.
![Page 60: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/60.jpg)
Análisis estático del código fuente en Python
Reportes
Formato de salida
El formato de salida del ejemplo utilizado está en modo texto,usted puede elegir entre:
ColoreadoTextoMSVS (Visual Studio)HTML.
![Page 61: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/61.jpg)
Análisis estático del código fuente en Python
Reportes
Formato de salida
El formato de salida del ejemplo utilizado está en modo texto,usted puede elegir entre:
ColoreadoTextoMSVS (Visual Studio)HTML.
![Page 62: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/62.jpg)
Análisis estático del código fuente en Python
Reportes
Formato de salida
El formato de salida del ejemplo utilizado está en modo texto,usted puede elegir entre:
ColoreadoTextoMSVS (Visual Studio)HTML.
![Page 63: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/63.jpg)
Análisis estático del código fuente en Python
Reportes
Total de ocurrencias de errores
El reporte ordena los resultados por el id del mensaje.message id occurences
W0612 11010W0621 10837W0614 6169C0301 1133C0103 346W0105 103C0324 100
![Page 64: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/64.jpg)
Análisis estático del código fuente en Python
Puntuación
Puntuación
Si usted ejecuta Pylint varias veces sobre el mismo código,podrá ver el puntaje de la corrida previa junto al resultado de lacorrida actual, de esta manera puede saber si ha mejorado lacalidad de su código o no.
EjemploGlobal evaluation-----------Your code has been rated at -148.73/10You have to do something quick !
![Page 65: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/65.jpg)
Análisis estático del código fuente en Python
Proceso de corrección
Instalación
Instalación en Debian GNU/Linux
Ejemplo# aptitude install pylint$ pylint -versionpylint 0.19.0,astng 0.19.3, common 0.48.1Python 2.5.5 (r255:77872, Mar 16 2010, 01:44:35)[GCC 4.4.3]
![Page 66: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/66.jpg)
Análisis estático del código fuente en Python
Proceso de corrección
Ejecución
Ejecución de Pylint
Ejemplo$ cd montecarlo$ export PYTHONPATH=$PWD$ pylint -rcfile=pylintrc -f html -files-output=y scia/tests/
El resumen del reporte lo podrá encontrar enpylint_global.html.
![Page 67: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/67.jpg)
Análisis estático del código fuente en Python
Proceso de corrección
Conociendo el detalle del error
Conozca que produjo el error
Ejemplo$ pylint -help-msg=W0612:W0612: *Unused variable%r*
Used when a variable is definedbut not used.This message belongs to thevariables checker.
![Page 68: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/68.jpg)
Análisis estático del código fuente en Python
Proceso de corrección
Conociendo el detalle del error
Se ha encontrado la falla
Ejemplo# scia.tests.test_main.pydef test_ham(self):
from scia.tests.common import *cheese = TestSpam(self.main, self.delayKey, ...cheese.test_spam_method()
![Page 69: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/69.jpg)
Análisis estático del código fuente en Python
Proceso de corrección
Conociendo el detalle del error
Se corrige la falla
Ejemplo# scia.tests.test_main.pydef test_ham(self):
from scia.tests.common import TestSpamcheese = TestSpam(self.main,
self.delayKey,self.delayMouse,self.delayThread,self.app)
cheese.test_spam_method()
![Page 70: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/70.jpg)
Análisis estático del código fuente en Python
Proceso de corrección
Primer avance
Resultado
Ejemplo
Global evaluation-----------Your code has been rated at -33.18/10You have to do something quick !
![Page 71: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/71.jpg)
Análisis estático del código fuente en Python
Proceso de corrección
Segundo avance
Segundo avance
Ejemplo$ pylint -help-msg=W0614:W0614: *Unused import%s from wildcard import*Used when an imported moduleor variable is not usedfrom a ’from X import *’style import.This message belongs to thevariables checker.
![Page 72: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/72.jpg)
Análisis estático del código fuente en Python
Proceso de corrección
Segundo avance
Ejemplo# Incorrectofrom PyQt4.QtCore import *# Correctofrom PyQt4.QtCore import QTimer, QPoint, SIGNAL
![Page 73: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/73.jpg)
Análisis estático del código fuente en Python
Proceso de corrección
Segundo avance
Enlaces de interés
Pylint: Análisis estático del código en PythonMensajes en PylintCaracterísticas de PylintTutorial de Pylint
![Page 74: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/74.jpg)
Análisis estático del código fuente en Python
Proceso de corrección
Segundo avance
Enlaces de interés
Pylint: Análisis estático del código en PythonMensajes en PylintCaracterísticas de PylintTutorial de Pylint
![Page 75: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/75.jpg)
Análisis estático del código fuente en Python
Proceso de corrección
Segundo avance
Enlaces de interés
Pylint: Análisis estático del código en PythonMensajes en PylintCaracterísticas de PylintTutorial de Pylint
![Page 76: Análisis estático de código fuente en Python](https://reader034.vdocumento.com/reader034/viewer/2022042506/5571f79249795991698b9d9d/html5/thumbnails/76.jpg)
Análisis estático del código fuente en Python
Proceso de corrección
Segundo avance
Enlaces de interés
Pylint: Análisis estático del código en PythonMensajes en PylintCaracterísticas de PylintTutorial de Pylint