Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

228
Vistas
Cómo formatear el archivo de configuración de Django para flake8

Estoy un poco obsesionado con formatear mi código python con flake8. Sin embargo, no puedo encontrar una buena manera de resolver E501 (línea demasiado larga x> 79 caracteres) en el archivo de configuración de Django.

Primero fue así (4xE501):

 AUTH_PASSWORD_VALIDATORS = [ { 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', }, { 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', }, { 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', }, { 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', }, ]

y luego se me ocurrió esto:

 AUTH_PASSWORD_VALIDATORS = [{ 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', }, { 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', }, { 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', }, { 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', }, ]

Pero aún 'NAME':django.contrib.auth.password_validation.UserAttributeSimilarityValidator', es demasiado largo. ¿Hay alguna manera de formatear esto o debería ignorarlo?

about 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Si está obsesionado con no recibir esta advertencia más que la apariencia real de su código, entonces puede romper una línea de código Python (sin romper su continuidad) agregando un carácter \ en el punto de ruptura:

Ejemplos:

 # 1 from some_module import some_method, some_other_method, \ a_third_method # 2 s = "A really very long string, which exist to mesh with your pep8" \ " warning free obsession. Well, not anymore!!!"

Atención: el carácter \ genera un error cuando la línea que va a dividir está dentro de {}, [] or () , por lo que simplemente puede hacer:

 AUTH_PASSWORD_VALIDATORS = [{ 'NAME': 'django.contrib.auth.password_validation.' 'UserAttributeSimilarityValidator' }, ...

lo cual no es tan feo considerando...


Si no desea la advertencia y le gusta su código tal como está, puede agregar:

 # nopep8

al final de cada línea que desee eximir del análisis pep8.

about 4 years ago · Santiago Trujillo Denunciar

0

Como alternativa (la siguiente reescritura pasa PEP8):

 [{"NAME": f"django.contrib.auth.password_validation.{name}"} for name in [ "UserAttributeSimilarityValidator", "MinimumLengthValidator", "CommonPasswordValidator", "NumericPasswordValidator"]]

En python 2 puede usar {}".format(name) en lugar de f"" .

about 4 years ago · Santiago Trujillo Denunciar

0

Estaba mirando el estilo de codificación | Django docs y encontré esto:

Una excepción a PEP 8 son nuestras reglas sobre la longitud de las líneas. No limite las líneas de código a 79 caracteres si eso significa que el código se ve significativamente más feo o es más difícil de leer. Permitimos hasta 119 caracteres, ya que este es el ancho de la revisión del código de GitHub.

Incluso la gente de Django lo evita (también prefieren flake8 para comprobar PEP8). Por lo tanto, será mejor si crea un archivo .flake8 o setup.cfg y escribe:

 [flake8] max-line-length = 119
about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda