Document.translate_row_col_to_index does not clamp negative rows to zero
@oodadoudou ya está trabajando en esto.
Desde el 12/9/2026.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 78/100
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
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de prompt-toolkit/python-prompt-toolkit
-
ANSI.format lets a C1 CSI set a colorPosiblemente ocupada @SashaMIT la tomó hace 6 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
-
Add CSharp Console to PROJECTS.rstPosiblemente ocupada @jw9829 la tomó hace 10 días. Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 95/100
-
Modified arrow keys resolve to the opposite direction: ESC[1;6A is Ctrl+Shift+Up but maps to ControlShiftDown (10 entries)Posiblemente ocupada @despotak la tomó hace 31 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 92/100
-
TelnetServer recv error: Forcing an RST request to the telnet server can cause a crashPosiblemente ocupada @liyimil la tomó hace 81 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
prompt-toolkit/python-prompt-toolkit#2073 · 2 comentarios ·
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 65/100
Todos los issues de prompt-toolkit/python-prompt-toolkit
Issues similares
-
Harmony OPeNDAP SubSetter (HOSS) Geographic LARC_CLOUD PREFIRE_SAT2_AUX-SAT R01 production
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
nasa/harmony-autotester#245 ·
-
feature
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
-
L: github:actions L: php:composer
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
dependabot/dependabot-core#16493 ·
Los mantenedores suelen responder en 1 día
-
2.3 EDA: `np.log` example adds +1 to every value, so it can't produce the `-inf` output shownAbierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 92/100
DataTalksClub/machine-learning-zoomcamp#730 ·
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 4 días