markitdown-pro 2.1.1__tar.gz → 2.1.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/PKG-INFO +1 -1
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/markitdown_pro/converters/gotenberg_converter.py +30 -21
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/markitdown_pro/services/azure_doc_intelligence.py +1 -1
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/.github/workflows/lint.yaml +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/.github/workflows/publish.yaml +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/.github/workflows/test.yml +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/.gitignore +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/.vscode/settings.json +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/README.md +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/__init__.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/markitdown_pro/__init__.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/markitdown_pro/common/__init__.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/markitdown_pro/common/config.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/markitdown_pro/common/isolated_worker.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/markitdown_pro/common/logger.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/markitdown_pro/common/schemas.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/markitdown_pro/common/utils.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/markitdown_pro/conversion_pipeline.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/markitdown_pro/converters/__init__.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/markitdown_pro/converters/base.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/markitdown_pro/converters/doc_intel_converter.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/markitdown_pro/converters/gpt_vision_converter.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/markitdown_pro/converters/markitdown_converter.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/markitdown_pro/converters/pymupdf_converter.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/markitdown_pro/converters/speech_converter.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/markitdown_pro/converters/tabular_converter.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/markitdown_pro/converters/unstructured_converter.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/markitdown_pro/converters/youtube_converter.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/markitdown_pro/handlers/__init__.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/markitdown_pro/handlers/audio_handler.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/markitdown_pro/handlers/base_handler.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/markitdown_pro/handlers/email_handler.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/markitdown_pro/handlers/epub_handler.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/markitdown_pro/handlers/image_handler.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/markitdown_pro/handlers/ipynb_handler.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/markitdown_pro/handlers/markup_handler.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/markitdown_pro/handlers/office_handler.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/markitdown_pro/handlers/page_pdf_converter.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/markitdown_pro/handlers/pdf_handler.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/markitdown_pro/handlers/pst_handler.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/markitdown_pro/handlers/tabular_handler.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/markitdown_pro/handlers/text_handler.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/markitdown_pro/services/__init__.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/markitdown_pro/services/azure_speech.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/markitdown_pro/services/openai_services.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/pyproject.toml +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/__init__.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/common/__init__.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/common/test_config.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/conftest.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/conversion_pipeline/__init__.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/conversion_pipeline/test_conversion_pipeline.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/converters/test_azure_doc_intel_wrapper.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/converters/test_azure_speech_wrapper.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/converters/test_doc_intel_lifecycle.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/converters/test_gpt_vision_config.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/converters/test_gpt_vision_wrapper.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/converters/test_pymupdf_wrapper.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/converters/test_pymupdf_wrapper_async.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/converters/test_unstructured_io_wrapper.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/audio/the-power-of-small-steps_cn.wav +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/audio/the-power-of-small-steps_en.mp3 +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/audio/the-power-of-small-steps_en.wav +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/audio/the-power-of-small-steps_es.mp3 +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/audio/the-power-of-small-steps_es.wav +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/audio/the-power-of-small-steps_it.wav +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/audio/the-power-of-small-steps_jp.mp3 +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/audio/the-power-of-small-steps_jp.wav +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/eml/email-with-image.eml +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/eml/mime-different-plain-html.eml +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/epub/sample1.epub +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/images/flower.jpg +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/images/geometry_colors.bmp +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/images/handwriting.jpg +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/images/scanned_text.heic +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/images/scanned_text.png +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/images/text_with_image.jpg +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/markup/blog.html +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/markup/factbook.xml +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/markup/simple.json +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/markup/simple.yaml +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/msg/fake-email-multiple-attachments.msg +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/msg/fake-email.msg +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/pdf/geometry-colors.pdf +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/pdf/lorem-ipsum-only-images.pdf +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/pdf/lorem-ipsum-only-text.pdf +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/pdf/lorem-ipsum-scanned-text.pdf +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/pdf/lorem-ipsum-text-with-image.pdf +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/powerpoint/geometry-colors.pptx +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/powerpoint/lorem-ipsum-only-text.pptx +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/powerpoint/lorem-ipsum-scanned-text.pptx +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/powerpoint/lorem-ipsum-text-with-image.pptx +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/powerpoint/lorem-ipsum-text-with-scanned-text.pptx +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/powerpoint-legacy/geometry-colors.ppt +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/powerpoint-legacy/lorem-ipsum-only-text.ppt +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/powerpoint-legacy/lorem-ipsum-scanned-text.ppt +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/powerpoint-legacy/lorem-ipsum-text-with-image.ppt +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/powerpoint-legacy/lorem-ipsum-text-with-scanned-text.ppt +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/tabular/2023-half-year-analyses-by-segment.xlsx +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/tabular/stanley-cups.csv +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/tabular/stanley-cups.tsv +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/tabular/stanley-cups.xlsx +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/test_expectations.yaml +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/text/book-war-and-peace-1p.txt +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/text/fake-email.txt +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/text/logger.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/word/geometry-colors.docx +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/word/lorem-ipsum-only-text.docx +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/word/lorem-ipsum-scanned-text.docx +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/word/lorem-ipsum-text-with-image.docx +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/word/lorem-ipsum-text-with-scanned-text.docx +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/word-legacy/geometry-colors.doc +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/word-legacy/geometry-colors.odt +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/word-legacy/geometry-colors.rtf +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/word-legacy/lorem-ipsum-only-text.doc +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/word-legacy/lorem-ipsum-only-text.odt +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/word-legacy/lorem-ipsum-only-text.rtf +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/word-legacy/lorem-ipsum-scanned-text.doc +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/word-legacy/lorem-ipsum-scanned-text.odt +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/word-legacy/lorem-ipsum-scanned-text.rtf +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/word-legacy/lorem-ipsum-text-with-image.doc +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/word-legacy/lorem-ipsum-text-with-image.odt +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/word-legacy/lorem-ipsum-text-with-image.rtf +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/word-legacy/lorem-ipsum-text-with-scanned-text.doc +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/word-legacy/lorem-ipsum-text-with-scanned-text.odt +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/word-legacy/lorem-ipsum-text-with-scanned-text.rtf +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/fixtures.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/handlers/__init__.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/handlers/test_email_handler.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/handlers/test_epub_handler.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/handlers/test_image_handler.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/handlers/test_ipynb_handler.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/handlers/test_markitdown_handler.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/handlers/test_markitdown_validation.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/handlers/test_markup_handler.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/handlers/test_page_pdf_converter.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/handlers/test_pdf_handler.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/handlers/test_pst_handler.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/handlers/test_tabular_handler.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/handlers/test_text_handler.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/integration/__init__.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/integration/cheat_sheet.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/integration/runner.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/integration/test_audio_handler.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/integration/test_doc_intelligence_converter.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/integration/test_email_handler.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/integration/test_gotenberg_converter.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/integration/test_gpt_vision_converter.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/integration/test_legacy_office_formats.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/integration/test_markitdown_converter.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/integration/test_markup_handler.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/integration/test_pdf_handler.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/integration/test_pymupdf_converter.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/integration/test_tabular_handler.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/integration/test_text_handler.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/page_count/__init__.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/page_count/test_pdf_page_count.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/unit/__init__.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/unit/test_audio_handler.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/unit/test_base_converter.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/unit/test_conversion_pipeline.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/unit/test_doc_intel_converter.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/unit/test_gotenberg_converter.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/unit/test_gpt_vision_converter.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/unit/test_image_handler.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/unit/test_markitdown_converter.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/unit/test_office_handler.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/unit/test_page_pdf_converter.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/unit/test_pdf_handler.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/unit/test_pymupdf_converter.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/unit/test_speech_converter.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/utils.py +0 -0
- {markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/uv.lock +0 -0
{markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/markitdown_pro/converters/gotenberg_converter.py
RENAMED
|
@@ -54,8 +54,11 @@ def _retry_transient(
|
|
|
54
54
|
def decorator(
|
|
55
55
|
fn: Callable[..., Awaitable[T | None]],
|
|
56
56
|
) -> Callable[..., Awaitable[T | None]]:
|
|
57
|
+
"""Wrap ``fn`` with the retry-on-transient-httpx-errors policy above."""
|
|
58
|
+
|
|
57
59
|
@functools.wraps(fn)
|
|
58
60
|
async def wrapper(self, *args, **kwargs) -> T | None:
|
|
61
|
+
"""Call ``fn`` up to ``attempts`` times, sleeping per ``delays``."""
|
|
59
62
|
tag = args[1] if len(args) >= 2 else kwargs.get("tag", _COMPONENT)
|
|
60
63
|
for i in range(attempts):
|
|
61
64
|
try:
|
|
@@ -141,7 +144,7 @@ class GotenbergConverter(Converter):
|
|
|
141
144
|
try:
|
|
142
145
|
fd, tmp_pdf = tempfile.mkstemp(suffix=".pdf", prefix="mkdpro_")
|
|
143
146
|
os.close(fd)
|
|
144
|
-
Path(tmp_pdf).write_bytes
|
|
147
|
+
await asyncio.to_thread(Path(tmp_pdf).write_bytes, pdf_bytes)
|
|
145
148
|
|
|
146
149
|
logger.info(f"{tag} | PDF received ({len(pdf_bytes)} bytes), delegating to PDFHandler")
|
|
147
150
|
|
|
@@ -167,27 +170,15 @@ class GotenbergConverter(Converter):
|
|
|
167
170
|
|
|
168
171
|
@_retry_transient(attempts=3, delays=(1.0, 3.0))
|
|
169
172
|
async def _convert_to_pdf(self, file_path: str, tag: str) -> bytes | None:
|
|
170
|
-
"""Send file to Gotenberg and return PDF bytes.
|
|
171
|
-
try:
|
|
172
|
-
async with httpx.AsyncClient(timeout=120) as client:
|
|
173
|
-
with open(file_path, "rb") as f:
|
|
174
|
-
response = await client.post(
|
|
175
|
-
self._convert_url,
|
|
176
|
-
files={"files": (Path(file_path).name, f)},
|
|
177
|
-
data={
|
|
178
|
-
"losslessImageCompression": "true",
|
|
179
|
-
"quality": "100",
|
|
180
|
-
},
|
|
181
|
-
)
|
|
182
|
-
|
|
183
|
-
if response.status_code == 200:
|
|
184
|
-
return response.content
|
|
185
|
-
|
|
186
|
-
logger.error(
|
|
187
|
-
f"{tag} | Gotenberg returned {response.status_code}: {response.text[:200]}"
|
|
188
|
-
)
|
|
189
|
-
return None
|
|
173
|
+
"""Send file to Gotenberg and return PDF bytes.
|
|
190
174
|
|
|
175
|
+
The HTTP call runs inside ``asyncio.to_thread`` with a sync
|
|
176
|
+
``httpx.Client`` + open file handle so httpx streams the multipart
|
|
177
|
+
body from disk instead of holding the entire upload in memory.
|
|
178
|
+
Keeps peak memory bounded under concurrent large-file conversions.
|
|
179
|
+
"""
|
|
180
|
+
try:
|
|
181
|
+
return await asyncio.to_thread(self._post_sync, file_path, tag)
|
|
191
182
|
except httpx.ConnectError:
|
|
192
183
|
logger.info(f"{tag} | Gotenberg not reachable at {self.gotenberg_url}, skipping")
|
|
193
184
|
return None
|
|
@@ -198,3 +189,21 @@ class GotenbergConverter(Converter):
|
|
|
198
189
|
except Exception as e:
|
|
199
190
|
logger.error(f"{tag} | Gotenberg error: {e}")
|
|
200
191
|
return None
|
|
192
|
+
|
|
193
|
+
def _post_sync(self, file_path: str, tag: str) -> bytes | None:
|
|
194
|
+
"""Blocking multipart upload to Gotenberg. Called via ``to_thread``."""
|
|
195
|
+
with httpx.Client(timeout=120) as client, open(file_path, "rb") as f:
|
|
196
|
+
response = client.post(
|
|
197
|
+
self._convert_url,
|
|
198
|
+
files={"files": (Path(file_path).name, f)},
|
|
199
|
+
data={
|
|
200
|
+
"losslessImageCompression": "true",
|
|
201
|
+
"quality": "100",
|
|
202
|
+
},
|
|
203
|
+
)
|
|
204
|
+
|
|
205
|
+
if response.status_code == 200:
|
|
206
|
+
return response.content
|
|
207
|
+
|
|
208
|
+
logger.error(f"{tag} | Gotenberg returned {response.status_code}: {response.text[:200]}")
|
|
209
|
+
return None
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/markitdown_pro/converters/doc_intel_converter.py
RENAMED
|
File without changes
|
{markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/markitdown_pro/converters/gpt_vision_converter.py
RENAMED
|
File without changes
|
{markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/markitdown_pro/converters/markitdown_converter.py
RENAMED
|
File without changes
|
{markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/markitdown_pro/converters/pymupdf_converter.py
RENAMED
|
File without changes
|
|
File without changes
|
{markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/markitdown_pro/converters/tabular_converter.py
RENAMED
|
File without changes
|
{markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/markitdown_pro/converters/unstructured_converter.py
RENAMED
|
File without changes
|
{markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/markitdown_pro/converters/youtube_converter.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/conversion_pipeline/test_conversion_pipeline.py
RENAMED
|
File without changes
|
{markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/converters/test_azure_doc_intel_wrapper.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/converters/test_pymupdf_wrapper_async.py
RENAMED
|
File without changes
|
{markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/converters/test_unstructured_io_wrapper.py
RENAMED
|
File without changes
|
{markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/audio/the-power-of-small-steps_cn.wav
RENAMED
|
File without changes
|
{markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/audio/the-power-of-small-steps_en.mp3
RENAMED
|
File without changes
|
{markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/audio/the-power-of-small-steps_en.wav
RENAMED
|
File without changes
|
{markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/audio/the-power-of-small-steps_es.mp3
RENAMED
|
File without changes
|
{markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/audio/the-power-of-small-steps_es.wav
RENAMED
|
File without changes
|
{markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/audio/the-power-of-small-steps_it.wav
RENAMED
|
File without changes
|
{markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/audio/the-power-of-small-steps_jp.mp3
RENAMED
|
File without changes
|
{markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/audio/the-power-of-small-steps_jp.wav
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/msg/fake-email-multiple-attachments.msg
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/pdf/lorem-ipsum-text-with-image.pdf
RENAMED
|
File without changes
|
|
File without changes
|
{markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/powerpoint/lorem-ipsum-only-text.pptx
RENAMED
|
File without changes
|
{markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/powerpoint/lorem-ipsum-scanned-text.pptx
RENAMED
|
File without changes
|
{markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/powerpoint/lorem-ipsum-text-with-image.pptx
RENAMED
|
File without changes
|
|
File without changes
|
{markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/powerpoint-legacy/geometry-colors.ppt
RENAMED
|
File without changes
|
{markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/powerpoint-legacy/lorem-ipsum-only-text.ppt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/word/lorem-ipsum-text-with-image.docx
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/word-legacy/lorem-ipsum-only-text.doc
RENAMED
|
File without changes
|
{markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/word-legacy/lorem-ipsum-only-text.odt
RENAMED
|
File without changes
|
{markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/word-legacy/lorem-ipsum-only-text.rtf
RENAMED
|
File without changes
|
{markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/word-legacy/lorem-ipsum-scanned-text.doc
RENAMED
|
File without changes
|
{markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/word-legacy/lorem-ipsum-scanned-text.odt
RENAMED
|
File without changes
|
{markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/word-legacy/lorem-ipsum-scanned-text.rtf
RENAMED
|
File without changes
|
{markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/word-legacy/lorem-ipsum-text-with-image.doc
RENAMED
|
File without changes
|
{markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/word-legacy/lorem-ipsum-text-with-image.odt
RENAMED
|
File without changes
|
{markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/data/word-legacy/lorem-ipsum-text-with-image.rtf
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/integration/test_doc_intelligence_converter.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/integration/test_gpt_vision_converter.py
RENAMED
|
File without changes
|
{markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/integration/test_legacy_office_formats.py
RENAMED
|
File without changes
|
{markitdown_pro-2.1.1 → markitdown_pro-2.1.2}/tests/integration/test_markitdown_converter.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|