Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

E131 applies inconsistently with nested calls

Abierto
#953 0 comentarios 0 reacciones 0 asignados Ver en GitHub

@andribas404 ya está trabajando en esto.

Desde el 9/12/2020.

  • #972 de @andribas404 — abierto

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
35/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
python
Área
tooling

Línea de trabajo

Empieza reproduciendo los dos ejemplos de asignación con pycodestyle 2.6.0 y compara los resultados de E131 a medida que cambia el nombre de la variable. Rastrea cómo la comprobación E131 gestiona las llamadas a métodos anidadas y la indentación colgante; se considera terminado cuando un formato válido equivalente ya no cambia su comportamiento en función de la longitud del destino de la asignación, con cobertura de regresión para los ejemplos.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

I often use an indentation format like this for long method chains with something like SQLAlchemy, which seems to be acceptable according to my reading of PEP8 and doesn't raise any errors when pycodestyle is run:

rows = db.engine.execute(
    table.select()
         .where(table.c.column1 == 'something')
         .where(table.c.column2.is_(None))
         .order_by(table.c.column3)
         .limit(5)
)

However, if the name of the variable being assigned to is a particular length, E131 - continuation line unaligned for hanging indent is raised:

aaaaaaaa = db.engine.execute(
    table.select()
         .where(table.c.column1 == 'something')  # E131
         .where(table.c.column2.is_(None))       # E131
         .order_by(table.c.column3)              # E131
         .limit(5)                               # E131
)

It seems to be related to having the = operator aligned with the indented lines? Adding just a single character to the left side of the assignment will remove the E131.

aaaaaaaab = db.engine.execute(
    table.select()
         .where(table.c.column1 == 'something')
         .where(table.c.column2.is_(None))
         .order_by(table.c.column3)
         .limit(5)
)

Is this an issue in pycodestyle, or do I just not understand what's going on here?

$ pycodestyle --version
2.6.0
Lenguaje dominante
Python
Estrellas
5.2k
Forks
756
Merge medio
5 h 56 min
PR fusionados (30 d)
3

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de PyCQA/pycodestyle

Todos los issues de PyCQA/pycodestyle

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.