Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

221
Views
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?

over 4 years ago · Santiago Trujillo
3 answers
Answer question

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.

over 4 years ago · Santiago Trujillo Report

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"" .

over 4 years ago · Santiago Trujillo Report

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
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!