Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

232
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda