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

Document.translate_row_col_to_index does not clamp negative rows to zero

Abierto Apto para principiantes
#2,097 0 comentarios 0 reacciones 0 asignados Ver en GitHub

@oodadoudou ya está trabajando en esto.

Desde el 12/9/2026.

  • #2098 de @oodadoudou — abierto
  • #2122 de @Kayvan-Zahiri — abierto

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
78/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
python
Área
cli

Línea de trabajo

Comienza localizando Document.translate_row_col_to_index() y ejecuta el reproducer del issue. Comprueba el tratamiento de filas negativas según el comportamiento de acotación documentado, incluidas las columnas positivas, y verifica que cada fila negativa devuelva el resultado esperado basado en cero.

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

Descripción

Document.translate_row_col_to_index() documents that negative row and column values are turned into zero. Negative rows within the list's indexing range currently select lines from the end of the document.

Reproducer:

from prompt_toolkit.document import Document

document = Document('one\ntwo\nthree')
for row in (-1, -2, -3, -4):
    print(row, document.translate_row_col_to_index(row, 0))

Actual output:

-1 8
-2 4
-3 0
-4 0

Expected output from the documented clamping behavior:

-1 0
-2 0
-3 0
-4 0

The behavior is inconsistent across negative row values because _line_start_indexes[row] accepts negative list indices, and the zero-clamping path is reached only after an IndexError. The same issue occurs with a positive column: translate_row_col_to_index(-1, 1) returns 9 where the documented result is 1.

Verified on the current main commit 583b3412c792a5cc9f01adde603679f3824a88f3 (3.0.53), Windows, Python 3.13.13.

AI assistance: Codex assisted with investigation and drafting; the examples above were executed against a clean checkout.

Lenguaje dominante
Python
Estrellas
10.6k
Forks
825
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

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 prompt-toolkit/python-prompt-toolkit

Todos los issues de prompt-toolkit/python-prompt-toolkit

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.