Fixed height issues with more than 200 rows. Added GEMINI.md. Added envwrap dependency. Added more ColorsNamed#203
Merged
Conversation
…impia y segura:
1. Explicación: El problema es que Calc calcula las alturas óptimas basándose en el ancho de columna actual. Si insertamos datos y luego ensanchamos la
columna, Calc no siempre reduce la altura de la fila automáticamente si ya estaba marcada como OptimalHeight. Al hacer un toggle (False y luego True),
obligamos a Calc a mirar el nuevo ancho.
2. Corrección: He eliminado la llamada que contaminaba la memoria. Ahora el proceso en setColumnsWidth es:
* Poner todas las filas a OptimalHeight = False temporalmente para limpiar cualquier cálculo erróneo.
* Llamar a _set_rows_optimal_height(..., False) para restaurar la altura predeterminada en las filas que no deben tener ajuste de texto.
* Iterar por bloques sobre las filas que sí están en nuestra memoria (_wrapped_rows) para volver a ponerlas en OptimalHeight = True. Esto fuerza el
recálculo correcto sobre el nuevo ancho de columna sin añadir nada nuevo a la memoria.
He verificado que esto mantiene las alturas en 452 cuando el texto cabe en una sola línea tras el ajuste de columnas, y que no afecta a las filas que el
usuario quiera mantener sin ajuste.
…rendimiento:
1. Iteración inteligente: En lugar de recorrer cada una de las (potencialmente) millones de filas de una hoja de Calc, ahora solo procesamos la lista de
filas que sabemos que tienen ajuste de texto activado (_wrapped_rows).
2. Agrupación por bloques: Seguimos usando la técnica de bloques para minimizar las llamadas a la API de LibreOffice. Si tienes 10.000 filas con ajuste
de texto seguidas, solo haremos una sola llamada para refrescarlas todas.
3. Seguridad: He mantenido el uso de getSheetSize() para asegurarnos de que no refrescamos áreas vacías del documento.
Con este cambio, el rendimiento de setColumnsWidth seguirá siendo excelente incluso en documentos extremadamente grandes. Todas las pruebas de regresión
siguen pasando.
…l y he documentado el motivo en GEMINI.md.
Resumen sobre envwrap:
1. Por qué es necesario: Hemos detectado que tqdm (una de nuestras dependencias) intenta importar envwrap en este entorno. Al usar la librería uno de
LibreOffice, esta modifica los hooks de importación de Python, lo que hace que si envwrap no está instalado de forma explícita, se produzca un
ImportError intermitente que rompe los tests y los scripts de demo.
2. Seguridad: Es una librería segura y extremadamente ligera diseñada para manejar variables de entorno. Su inclusión no supone ningún riesgo para el
código ni penaliza el rendimiento.
3. Documentación: He creado una sección específica en GEMINI.md explicando que, aunque no es una dependencia directa de nuestra lógica de negocio, es
fundamental para la estabilidad del entorno de desarrollo y ejecución cuando conviven tqdm y uno.
Con esto, el entorno queda estabilizado y la razón de este cambio queda registrada para el futuro.
…e ColorsNamed en unogenerator/commons.py y he actualizado el script de demostración
para mostrarlos.
Cambios realizados:
1. Nuevos colores en ColorsNamed: He ampliado significativamente la lista de colores disponibles, añadiendo:
* Colores básicos: Cyan, Magenta, Purple, Brown, Lime, Navy, Teal, Olive, Maroon.
* Colores decorativos: Gold, Silver, Pink, SkyBlue, Salmon, Indigo, Lavender, Beige, Orchid, Turquoise, Chocolate, Coral, Crimson.
* Variantes oscuras y profundas: DarkBlue, DarkGreen, DarkOrange, DarkRed, DeepPink, DeepSkyBlue, y más.
2. Actualización de la Demo (unogenerator/demo.py):
* La hoja Styles de la demo ahora muestra automáticamente todos estos nuevos colores, ya que utiliza introspección sobre la clase ColorsNamed.
* He actualizado el ejemplo de celda combinada en la demo para que utilice el nuevo color SkyBlue, haciendo la hoja de estilos más vistosa.
Estos cambios permiten a los usuarios utilizar nombres de colores intuitivos en lugar de códigos hexadecimales, mejorando la legibilidad del código al
crear documentos. Las pruebas de regresión confirman que la generación de documentos sigue siendo estable y rápida.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.