PPTX conversion takes hours on charts bound to a whole Excel column
Los mantenedores suelen responder en 1 día
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 22/100
Línea de trabajo
Start from _convert_chart_to_markdown in the PPTX converter, where series.values from python-pptx is read once per declared point. Reproduce with a chart whose series cache declares many points but few hold data, then time the conversion. Pull request #2702 is already open against this issue, so check it and its review before starting any separate change. Done means large charts convert in seconds with the same Markdown output as before.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Converting a .pptx with a chart can take hours. #2227 removed the extra loop in _convert_chart_to_markdown, but series.values in python-pptx is itself quadratic: for each declared point it runs an XPath search over all of the series' points.
When a series is bound to a whole column, its cache can declare many points, however few cells hold data. A deck of ours had
two such scatter charts with about 20,600 real points each. With markitdown 0.1.8 and python-pptx 1.0.2 each lookup took about 7 ms, so about 2 hours per chart.
python-pptx has had no commits since 2024, so I'd fix it here by reading each series' points once. PR to follow.
- Lenguaje dominante
- Python
- Estrellas
- 194k
- Forks
- 14.5k
- Merge medio
- 1 h 43 min
- PR fusionados (30 d)
- 8
Preparar el entorno
Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.
- Incluye un Dockerfile o un archivo de Docker Compose
- Sin plantilla de pull request
- Sin guía de contribución
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 microsoft/markitdown
-
DOCX: math pre-processing re-parses every document.xml even without equations (32 s -> 17.5 s on a 12.5 MB document)Posiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 89/100
microsoft/markitdown#2834 ·
Los mantenedores suelen responder en 1 día
-
URL fetch sends default python-requests User-Agent, Wikipedia returns 403Posiblemente ocupada @sushan5140 la tomó hace 4 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
microsoft/markitdown#2820 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Valid Atom feeds with zero entries are rejected as an unknown feed typePosiblemente ocupada @pujitha24 la tomó hace 11 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
microsoft/markitdown#2781 ·
Los mantenedores suelen responder en 1 día
-
DOCX: footnote references and back-links point to anchors that don't exist in the MarkdownPosiblemente ocupada @sun04222 la tomó hace 15 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
microsoft/markitdown#2743 ·
Los mantenedores suelen responder en 1 día
-
DOCX math: a delimiter with several arguments keeps only the last onePosiblemente ocupada @drakeo338 la tomó hace 37 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
microsoft/markitdown#2573 ·
Los mantenedores suelen responder en 1 día
Todos los issues de microsoft/markitdown
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
huggingface/accelerate#4511 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
pylint-dev/pylint#11791 ·
Los mantenedores suelen responder en 1 día
-
Rasterio granule reads never retry, so one 503 (Service Unavailable) fails the whole requestPosiblemente ocupada @chuckwondo la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
developmentseed/titiler-cmr#305 ·
Los mantenedores suelen responder en 1 día
-
community enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día