La mayoría de nuestras pautas de python se aplican mediante varios linters.
Actualmente estamos usando isort
, pycodestyle
y pylint
- ¡Dios mío!
Le recomendamos que se familiarice con la configuración.
Todo nuestro código python tiene como objetivo Python 3 exclusivamente. No ofrecemos soporte para Python 2 en absoluto.
Intentamos apuntar a la versión de Python 3 compatible más antigua, que actualmente es 3.7. Se pueden otorgar excepciones por proyecto para usar una versión más nueva si se requieren ciertas características.
Al crear un proyecto de python, utilizamos módulos de python.
Si un proyecto produce un solo ejecutable, el código ejecutable debe estar en __main__.py
.
Si un archivo de python contiene una sola clase, el archivo debe tener el nombre de la clase y ser UpperCamelCase. Si un archivo de python contiene funciones de utilidad, el archivo debe recibir un nombre descriptivo y ser snake_case.
Esperamos jerarquías paralelas de directorios fuente y de prueba. Por ejemplo,
raíz
- analizador # nombre del paquete, directorio que contiene el código fuente
- __init__.py
- __main__.py # opcional para ejecutables
Parser.py # contiene la clase Parser
- rápido
- __init__.py
- ast.py # contiene varias exportaciones
- pruebas # directorio que contiene pruebas para el código fuente
- __init__.py
- test_Parser.py # pruebas unitarias para parser/Parser.py
- rápido
- __init__.py
- test_ast.py # pruebas unitarias para parser/ast/ast.py
La mayoría de las reglas de nomenclatura se aplican mediante pelusa, pero para evitar dudas:
Los nombres de las clases deben ser UpperCamelCase.
Las constantes deben ser TITLE_CASE.
Todo lo demás debe ser snake_case.
Los nombres de miembros y funciones privadas deben tener como prefijo un solo guión bajo (_). Tales funciones nunca deben ser importadas por otros módulos ni accedidas fuera de la clase contenedora.