From 7fbbbc02c0a360352925e97ffedb84b347e98565 Mon Sep 17 00:00:00 2001 From: Nick Franck <46548427+CyMule@users.noreply.github.com> Date: Sun, 26 Apr 2026 12:17:07 -0400 Subject: [PATCH 1/2] Reject oversized PDF renders via inference guard --- CHANGELOG.md | 6 + pyproject.toml | 5 +- .../partition/pdf_image/test_pdf.py | 57 +++++- unstructured/__version__.py | 2 +- unstructured/partition/pdf.py | 45 +++-- unstructured/partition/utils/config.py | 5 + uv.lock | 167 +++++++----------- 7 files changed, 158 insertions(+), 129 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 519fa53dd4..9281fd842b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +## 0.22.24 + +### Fixes + +- **Reject oversized hi-res PDF renders before bitmap allocation**: Hi-res PDF partitioning now passes the configured per-page pixel limit to `unstructured-inference` so oversized pages are rejected immediately before rendering, then returned as unprocessable document errors. + ## 0.22.23 ### Fixes diff --git a/pyproject.toml b/pyproject.toml index 400f72aab4..20201bfd5d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -68,9 +68,8 @@ image = [ "pi-heif>=1.2.0, <2.0.0", "pikepdf>=10.3.0, <11.0.0", "pypdf>=6.6.2, <7.0.0", - "unstructured-inference>=1.6.6, <2.0.0; platform_system != 'Windows' and python_version >= '3.12'", - "unstructured-inference>=1.2.0, <2.0.0; platform_system != 'Windows' and python_version < '3.12'", - "unstructured-inference>=1.6.6, <2.0.0; platform_system == 'Windows' and python_version >= '3.12' and python_version < '3.13'", + "unstructured-inference>=1.6.8, <2.0.0; platform_system != 'Windows'", + "unstructured-inference>=1.6.8, <2.0.0; platform_system == 'Windows' and python_version >= '3.12' and python_version < '3.13'", "unstructured-pytesseract>=0.3.15, <1.0.0", ] md = [ diff --git a/test_unstructured/partition/pdf_image/test_pdf.py b/test_unstructured/partition/pdf_image/test_pdf.py index 7fdee0be21..83194128e4 100644 --- a/test_unstructured/partition/pdf_image/test_pdf.py +++ b/test_unstructured/partition/pdf_image/test_pdf.py @@ -16,7 +16,7 @@ from pdf2image.exceptions import PDFPageCountError from PIL import Image from pytest_mock import MockFixture -from unstructured_inference.inference import layout +from unstructured_inference.inference import layout, pdf_image from unstructured_inference.inference.elements import Rectangle from unstructured_inference.inference.layout import DocumentLayout, PageLayout from unstructured_inference.inference.layoutelement import LayoutElement @@ -36,7 +36,7 @@ Text, Title, ) -from unstructured.errors import PageCountExceededError +from unstructured.errors import PageCountExceededError, UnprocessableEntityError from unstructured.partition import pdf, strategies from unstructured.partition.pdf_image import ocr, pdfminer_processing from unstructured.partition.pdf_image.pdfminer_processing import get_uris_from_annots @@ -300,6 +300,59 @@ def test_partition_pdf_passes_configured_dpi_to_inference( assert mock_process.call_args[1]["pdf_image_dpi"] == 350 +def test_partition_pdf_passes_render_max_pixels_to_inference(monkeypatch): + filename = example_doc_path("pdf/layout-parser-paper-fast.pdf") + monkeypatch.setattr(pdf, "extractable_elements", lambda *args, **kwargs: []) + + with ( + mock.patch.object( + layout, + "process_file_with_model", + return_value=MockDocumentLayout(), + ) as mock_process, + mock.patch.object( + ocr, + "process_file_with_ocr", + return_value=MockDocumentLayout(), + ), + ): + pdf.partition_pdf(filename=filename, strategy=PartitionStrategy.HI_RES) + + assert mock_process.call_args[1]["pdf_render_max_pixels_per_page"] == 1_000_000_000 + + with ( + open(filename, "rb") as file, + mock.patch.object( + layout, + "process_data_with_model", + return_value=MockDocumentLayout(), + ) as mock_process, + mock.patch.object( + ocr, + "process_data_with_ocr", + return_value=MockDocumentLayout(), + ), + ): + pdf.partition_pdf(file=file, strategy=PartitionStrategy.HI_RES) + + assert mock_process.call_args[1]["pdf_render_max_pixels_per_page"] == 1_000_000_000 + + +def test_partition_pdf_render_too_large_error_is_unprocessable(monkeypatch): + filename = example_doc_path("pdf/layout-parser-paper-fast.pdf") + monkeypatch.setattr(pdf, "extractable_elements", lambda *args, **kwargs: []) + with mock.patch.object( + layout, + "process_file_with_model", + side_effect=pdf_image.PdfRenderTooLargeError( + "PDF page would render to too many pixels for safe processing: " + "page=1, pixels=1000000001, maximum=1000000000.", + ), + ): + with pytest.raises(UnprocessableEntityError, match="too many pixels"): + pdf.partition_pdf(filename=filename, strategy=PartitionStrategy.HI_RES) + + @pytest.mark.parametrize("model_name", ["checkbox", "yolox"]) def test_partition_pdf_with_model_name( monkeypatch, diff --git a/unstructured/__version__.py b/unstructured/__version__.py index e7aca043ec..84368a9bc3 100644 --- a/unstructured/__version__.py +++ b/unstructured/__version__.py @@ -1 +1 @@ -__version__ = "0.22.23" # pragma: no cover +__version__ = "0.22.24" # pragma: no cover diff --git a/unstructured/partition/pdf.py b/unstructured/partition/pdf.py index 03599ccdfc..43bb9f0926 100644 --- a/unstructured/partition/pdf.py +++ b/unstructured/partition/pdf.py @@ -38,7 +38,7 @@ Text, Title, ) -from unstructured.errors import PageCountExceededError +from unstructured.errors import PageCountExceededError, UnprocessableEntityError from unstructured.file_utils.model import FileType from unstructured.logger import logger, trace_logger from unstructured.nlp.patterns import PARAGRAPH_PATTERN @@ -781,6 +781,7 @@ def _partition_pdf_or_image_local( process_data_with_model, process_file_with_model, ) + from unstructured_inference.inference.pdf_image import PdfRenderTooLargeError from unstructured.partition.pdf_image.analysis.layout_dump import ( ExtractedLayoutDumper, @@ -802,15 +803,20 @@ def _partition_pdf_or_image_local( process_file_with_pdfminer, ) + hi_res_model_name = hi_res_model_name or model_name or default_hi_res_model() + if pdf_image_dpi is None: + pdf_image_dpi = env_config.PDF_RENDER_DPI + model_render_kwargs = ( + {"pdf_render_max_pixels_per_page": env_config.PDF_RENDER_MAX_PIXELS_PER_PAGE} + if not is_image + else {} + ) + if not is_image: check_pdf_hi_res_max_pages_exceeded( filename=filename, file=file, pdf_hi_res_max_pages=pdf_hi_res_max_pages ) - hi_res_model_name = hi_res_model_name or model_name or default_hi_res_model() - if pdf_image_dpi is None: - pdf_image_dpi = env_config.PDF_RENDER_DPI - od_model_layout_dumper: Optional[ObjectDetectionLayoutDumper] = None extracted_layout_dumper: Optional[ExtractedLayoutDumper] = None ocr_layout_dumper: Optional[OCRLayoutDumper] = None @@ -818,14 +824,21 @@ def _partition_pdf_or_image_local( skip_analysis_dump = env_config.ANALYSIS_DUMP_OD_SKIP + def _run_layout_inference(processor, source): + try: + return processor( + source, + is_image=is_image, + model_name=hi_res_model_name, + pdf_image_dpi=pdf_image_dpi, + password=password, + **model_render_kwargs, + ) + except PdfRenderTooLargeError as exc: + raise UnprocessableEntityError(str(exc)) from exc + if file is None: - inferred_document_layout = process_file_with_model( - filename, - is_image=is_image, - model_name=hi_res_model_name, - pdf_image_dpi=pdf_image_dpi, - password=password, - ) + inferred_document_layout = _run_layout_inference(process_file_with_model, filename) pdfminer_config = _enable_detect_vertical_if_rotated( inferred_document_layout, @@ -883,13 +896,7 @@ def _partition_pdf_or_image_local( table_ocr_agent=table_ocr_agent, ) else: - inferred_document_layout = process_data_with_model( - file, - is_image=is_image, - model_name=hi_res_model_name, - pdf_image_dpi=pdf_image_dpi, - password=password, - ) + inferred_document_layout = _run_layout_inference(process_data_with_model, file) if hasattr(file, "seek"): file.seek(0) diff --git a/unstructured/partition/utils/config.py b/unstructured/partition/utils/config.py index 062884ff88..be38e16e91 100644 --- a/unstructured/partition/utils/config.py +++ b/unstructured/partition/utils/config.py @@ -315,5 +315,10 @@ def PDF_RENDER_DPI(self) -> int: """The DPI to use for rendering PDF pages""" return self._get_int("PDF_RENDER_DPI", 350) + @property + def PDF_RENDER_MAX_PIXELS_PER_PAGE(self) -> int: + """Maximum rendered pixels allowed for a single PDF page""" + return self._get_int("PDF_RENDER_MAX_PIXELS_PER_PAGE", 1_000_000_000) + env_config = ENVConfig() diff --git a/uv.lock b/uv.lock index 8f7fbd2292..7a44e8d4d9 100644 --- a/uv.lock +++ b/uv.lock @@ -38,13 +38,13 @@ name = "accelerate" version = "1.13.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "huggingface-hub", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, - { name = "numpy", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, - { name = "packaging", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, - { name = "psutil", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, - { name = "pyyaml", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, - { name = "safetensors", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, - { name = "torch", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "huggingface-hub", marker = "(python_full_version < '3.13' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, + { name = "numpy", marker = "(python_full_version < '3.13' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, + { name = "packaging", marker = "(python_full_version < '3.13' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, + { name = "psutil", marker = "(python_full_version < '3.13' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, + { name = "pyyaml", marker = "(python_full_version < '3.13' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, + { name = "safetensors", marker = "(python_full_version < '3.13' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, + { name = "torch", marker = "(python_full_version < '3.13' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, ] sdist = { url = "https://files.pythonhosted.org/packages/ca/14/787e5498cd062640f0f3d92ef4ae4063174f76f9afd29d13fc52a319daae/accelerate-1.13.0.tar.gz", hash = "sha256:d631b4e0f5b3de4aff2d7e9e6857d164810dfc3237d54d017f075122d057b236", size = 402835, upload-time = "2026-03-04T19:34:12.359Z" } wheels = [ @@ -998,7 +998,7 @@ name = "contourpy" version = "1.3.3" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "numpy", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "numpy", marker = "(python_full_version < '3.13' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, ] sdist = { url = "https://files.pythonhosted.org/packages/58/01/1253e6698a07380cd31a736d248a3f2a50a7c88779a1813da27503cadc2a/contourpy-1.3.3.tar.gz", hash = "sha256:083e12155b210502d0bca491432bb04d56dc3432f95a979b429f2848c3dbe880", size = 13466174, upload-time = "2025-07-26T12:03:12.549Z" } wheels = [ @@ -3142,15 +3142,15 @@ name = "matplotlib" version = "3.10.8" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "contourpy", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, - { name = "cycler", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, - { name = "fonttools", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, - { name = "kiwisolver", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, - { name = "numpy", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, - { name = "packaging", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, - { name = "pillow", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, - { name = "pyparsing", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, - { name = "python-dateutil", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "contourpy", marker = "(python_full_version < '3.13' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, + { name = "cycler", marker = "(python_full_version < '3.13' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, + { name = "fonttools", marker = "(python_full_version < '3.13' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, + { name = "kiwisolver", marker = "(python_full_version < '3.13' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, + { name = "numpy", marker = "(python_full_version < '3.13' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, + { name = "packaging", marker = "(python_full_version < '3.13' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, + { name = "pillow", marker = "(python_full_version < '3.13' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, + { name = "pyparsing", marker = "(python_full_version < '3.13' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, + { name = "python-dateutil", marker = "(python_full_version < '3.13' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, ] sdist = { url = "https://files.pythonhosted.org/packages/8a/76/d3c6e3a13fe484ebe7718d14e269c9569c4eb0020a968a327acb3b9a8fe6/matplotlib-3.10.8.tar.gz", hash = "sha256:2299372c19d56bcd35cf05a2738308758d32b9eaed2371898d8f5bd33f084aa3", size = 34806269, upload-time = "2025-12-10T22:56:51.155Z" } wheels = [ @@ -3213,7 +3213,7 @@ name = "ml-dtypes" version = "0.5.4" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "numpy", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "numpy", marker = "(python_full_version < '3.13' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, ] sdist = { url = "https://files.pythonhosted.org/packages/0e/4a/c27b42ed9b1c7d13d9ba8b6905dece787d6259152f2309338aed29b2447b/ml_dtypes-0.5.4.tar.gz", hash = "sha256:8ab06a50fb9bf9666dd0fe5dfb4676fa2b0ac0f31ecff72a6c3af8e22c063453", size = 692314, upload-time = "2025-11-17T22:32:31.031Z" } wheels = [ @@ -3831,10 +3831,10 @@ name = "onnx" version = "1.21.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "ml-dtypes", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, - { name = "numpy", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, - { name = "protobuf", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, - { name = "typing-extensions", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "ml-dtypes", marker = "(python_full_version < '3.13' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, + { name = "numpy", marker = "(python_full_version < '3.13' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, + { name = "protobuf", marker = "(python_full_version < '3.13' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, + { name = "typing-extensions", marker = "(python_full_version < '3.13' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, ] sdist = { url = "https://files.pythonhosted.org/packages/c5/93/942d2a0f6a70538eea042ce0445c8aefd46559ad153469986f29a743c01c/onnx-1.21.0.tar.gz", hash = "sha256:4d8b67d0aaec5864c87633188b91cc520877477ec0254eda122bef8be43cd764", size = 12074608, upload-time = "2026-03-27T21:33:36.118Z" } wheels = [ @@ -6867,11 +6867,11 @@ name = "timm" version = "1.0.26" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "huggingface-hub", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, - { name = "pyyaml", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, - { name = "safetensors", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, - { name = "torch", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, - { name = "torchvision", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "huggingface-hub", marker = "(python_full_version < '3.13' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, + { name = "pyyaml", marker = "(python_full_version < '3.13' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, + { name = "safetensors", marker = "(python_full_version < '3.13' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, + { name = "torch", marker = "(python_full_version < '3.13' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, + { name = "torchvision", marker = "(python_full_version < '3.13' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, ] sdist = { url = "https://files.pythonhosted.org/packages/7b/1e/e924b3b2326a856aaf68586f9c52a5fc81ef45715eca408393b68c597e0e/timm-1.0.26.tar.gz", hash = "sha256:f66f082f2f381cf68431c22714c8b70f723837fa2a185b155961eab90f2d5b10", size = 2419859, upload-time = "2026-03-23T18:12:10.272Z" } wheels = [ @@ -7010,9 +7010,9 @@ name = "torchvision" version = "0.25.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "numpy", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, - { name = "pillow", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, - { name = "torch", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "numpy", marker = "(python_full_version < '3.13' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, + { name = "pillow", marker = "(python_full_version < '3.13' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, + { name = "torch", marker = "(python_full_version < '3.13' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, ] wheels = [ { url = "https://files.pythonhosted.org/packages/3e/be/c704bceaf11c4f6b19d64337a34a877fcdfe3bd68160a8c9ae9bea4a35a3/torchvision-0.25.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:db74a551946b75d19f9996c419a799ffdf6a223ecf17c656f90da011f1d75b20", size = 1874923, upload-time = "2026-01-21T16:27:46.574Z" }, @@ -7235,8 +7235,7 @@ all-docs = [ { name = "pypdf" }, { name = "python-docx" }, { name = "python-pptx" }, - { name = "unstructured-inference", version = "1.2.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.12' and sys_platform != 'win32'" }, - { name = "unstructured-inference", version = "1.6.6", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version >= '3.12' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, + { name = "unstructured-inference", version = "1.6.8", source = { registry = "https://pypi.org/simple" }, marker = "sys_platform != 'win32' or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, { name = "unstructured-pytesseract" }, { name = "xlrd" }, ] @@ -7270,8 +7269,7 @@ image = [ { name = "pi-heif" }, { name = "pikepdf" }, { name = "pypdf" }, - { name = "unstructured-inference", version = "1.2.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.12' and sys_platform != 'win32'" }, - { name = "unstructured-inference", version = "1.6.6", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version >= '3.12' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, + { name = "unstructured-inference", version = "1.6.8", source = { registry = "https://pypi.org/simple" }, marker = "sys_platform != 'win32' or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, { name = "unstructured-pytesseract" }, ] ingest = [ @@ -7293,8 +7291,7 @@ local-inference = [ { name = "pypdf" }, { name = "python-docx" }, { name = "python-pptx" }, - { name = "unstructured-inference", version = "1.2.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.12' and sys_platform != 'win32'" }, - { name = "unstructured-inference", version = "1.6.6", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version >= '3.12' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, + { name = "unstructured-inference", version = "1.6.8", source = { registry = "https://pypi.org/simple" }, marker = "sys_platform != 'win32' or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, { name = "unstructured-pytesseract" }, { name = "xlrd" }, ] @@ -7319,8 +7316,7 @@ pdf = [ { name = "pi-heif" }, { name = "pikepdf" }, { name = "pypdf" }, - { name = "unstructured-inference", version = "1.2.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.12' and sys_platform != 'win32'" }, - { name = "unstructured-inference", version = "1.6.6", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version >= '3.12' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, + { name = "unstructured-inference", version = "1.6.8", source = { registry = "https://pypi.org/simple" }, marker = "sys_platform != 'win32' or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, { name = "unstructured-pytesseract" }, ] ppt = [ @@ -7474,18 +7470,14 @@ requires-dist = [ { name = "transformers", marker = "extra == 'huggingface'", specifier = ">=5.2.0,<6.0.0" }, { name = "typing-extensions", specifier = ">=4.15.0,<5.0.0" }, { name = "unstructured-client", specifier = ">=0.25.9,<1.0.0" }, - { name = "unstructured-inference", marker = "python_full_version == '3.12.*' and sys_platform == 'win32' and extra == 'all-docs'", specifier = ">=1.6.6,<2.0.0" }, - { name = "unstructured-inference", marker = "python_full_version == '3.12.*' and sys_platform == 'win32' and extra == 'image'", specifier = ">=1.6.6,<2.0.0" }, - { name = "unstructured-inference", marker = "python_full_version == '3.12.*' and sys_platform == 'win32' and extra == 'local-inference'", specifier = ">=1.6.6,<2.0.0" }, - { name = "unstructured-inference", marker = "python_full_version == '3.12.*' and sys_platform == 'win32' and extra == 'pdf'", specifier = ">=1.6.6,<2.0.0" }, - { name = "unstructured-inference", marker = "python_full_version >= '3.12' and sys_platform != 'win32' and extra == 'all-docs'", specifier = ">=1.6.6,<2.0.0" }, - { name = "unstructured-inference", marker = "python_full_version >= '3.12' and sys_platform != 'win32' and extra == 'image'", specifier = ">=1.6.6,<2.0.0" }, - { name = "unstructured-inference", marker = "python_full_version >= '3.12' and sys_platform != 'win32' and extra == 'local-inference'", specifier = ">=1.6.6,<2.0.0" }, - { name = "unstructured-inference", marker = "python_full_version >= '3.12' and sys_platform != 'win32' and extra == 'pdf'", specifier = ">=1.6.6,<2.0.0" }, - { name = "unstructured-inference", marker = "python_full_version < '3.12' and sys_platform != 'win32' and extra == 'all-docs'", specifier = ">=1.2.0,<2.0.0" }, - { name = "unstructured-inference", marker = "python_full_version < '3.12' and sys_platform != 'win32' and extra == 'image'", specifier = ">=1.2.0,<2.0.0" }, - { name = "unstructured-inference", marker = "python_full_version < '3.12' and sys_platform != 'win32' and extra == 'local-inference'", specifier = ">=1.2.0,<2.0.0" }, - { name = "unstructured-inference", marker = "python_full_version < '3.12' and sys_platform != 'win32' and extra == 'pdf'", specifier = ">=1.2.0,<2.0.0" }, + { name = "unstructured-inference", marker = "python_full_version == '3.12.*' and sys_platform == 'win32' and extra == 'all-docs'", specifier = ">=1.6.8,<2.0.0" }, + { name = "unstructured-inference", marker = "python_full_version == '3.12.*' and sys_platform == 'win32' and extra == 'image'", specifier = ">=1.6.8,<2.0.0" }, + { name = "unstructured-inference", marker = "python_full_version == '3.12.*' and sys_platform == 'win32' and extra == 'local-inference'", specifier = ">=1.6.8,<2.0.0" }, + { name = "unstructured-inference", marker = "python_full_version == '3.12.*' and sys_platform == 'win32' and extra == 'pdf'", specifier = ">=1.6.8,<2.0.0" }, + { name = "unstructured-inference", marker = "sys_platform != 'win32' and extra == 'all-docs'", specifier = ">=1.6.8,<2.0.0" }, + { name = "unstructured-inference", marker = "sys_platform != 'win32' and extra == 'image'", specifier = ">=1.6.8,<2.0.0" }, + { name = "unstructured-inference", marker = "sys_platform != 'win32' and extra == 'local-inference'", specifier = ">=1.6.8,<2.0.0" }, + { name = "unstructured-inference", marker = "sys_platform != 'win32' and extra == 'pdf'", specifier = ">=1.6.8,<2.0.0" }, { name = "unstructured-ingest", extras = ["airtable", "astradb", "azure", "azure-ai-search", "bedrock", "biomed", "box", "chroma", "confluence", "couchbase", "databricks-volumes", "delta-table", "discord", "dropbox", "elasticsearch", "gcs", "github", "gitlab", "google-drive", "hubspot", "huggingface", "jira", "kafka", "kdbai", "milvus", "mongodb", "notion", "octoai", "onedrive", "openai", "opensearch", "outlook", "pinecone", "postgres", "qdrant", "reddit", "remote", "s3", "salesforce", "sftp", "sharepoint", "singlestore", "slack", "vectara", "vertexai", "voyageai", "weaviate", "wikipedia"], marker = "python_full_version < '3.13' and sys_platform == 'win32' and extra == 'ingest'", specifier = ">=1.4.0,<2.0.0" }, { name = "unstructured-ingest", extras = ["airtable", "astradb", "azure", "azure-ai-search", "bedrock", "biomed", "box", "chroma", "confluence", "couchbase", "databricks-volumes", "delta-table", "discord", "dropbox", "elasticsearch", "gcs", "github", "gitlab", "google-drive", "hubspot", "huggingface", "jira", "kafka", "kdbai", "milvus", "mongodb", "notion", "octoai", "onedrive", "openai", "opensearch", "outlook", "pinecone", "postgres", "qdrant", "reddit", "remote", "s3", "salesforce", "sftp", "sharepoint", "singlestore", "slack", "vectara", "vertexai", "voyageai", "weaviate", "wikipedia"], marker = "sys_platform != 'win32' and extra == 'ingest'", specifier = ">=1.4.0,<2.0.0" }, { name = "unstructured-paddleocr", marker = "extra == 'paddleocr'", specifier = "==2.10.0" }, @@ -7544,66 +7536,33 @@ wheels = [ [[package]] name = "unstructured-inference" -version = "1.2.0" +version = "1.6.8" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version < '3.12' and platform_machine != 's390x' and sys_platform != 'win32'", - "python_full_version < '3.12' and platform_machine == 's390x' and sys_platform != 'win32'", -] -dependencies = [ - { name = "accelerate", marker = "python_full_version < '3.12' and sys_platform != 'win32'" }, - { name = "huggingface-hub", marker = "python_full_version < '3.12' and sys_platform != 'win32'" }, - { name = "matplotlib", marker = "python_full_version < '3.12' and sys_platform != 'win32'" }, - { name = "numpy", marker = "python_full_version < '3.12' and sys_platform != 'win32'" }, - { name = "onnx", marker = "python_full_version < '3.12' and sys_platform != 'win32'" }, - { name = "onnxruntime", marker = "python_full_version < '3.12' and sys_platform != 'win32'" }, - { name = "opencv-python", marker = "python_full_version < '3.12' and sys_platform != 'win32'" }, - { name = "pandas", marker = "python_full_version < '3.12' and sys_platform != 'win32'" }, - { name = "pdfminer-six", marker = "python_full_version < '3.12' and sys_platform != 'win32'" }, - { name = "pypdfium2", marker = "python_full_version < '3.12' and sys_platform != 'win32'" }, - { name = "python-multipart", marker = "python_full_version < '3.12' and sys_platform != 'win32'" }, - { name = "rapidfuzz", marker = "python_full_version < '3.12' and sys_platform != 'win32'" }, - { name = "scipy", marker = "python_full_version < '3.12' and sys_platform != 'win32'" }, - { name = "timm", marker = "python_full_version < '3.12' and sys_platform != 'win32'" }, - { name = "torch", marker = "python_full_version < '3.12' and sys_platform != 'win32'" }, - { name = "transformers", marker = "python_full_version < '3.12' and sys_platform != 'win32'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/ce/10/8f3bccfa9f1e0101a402ae1f529e07876541c6b18004747f0e793ed41f9e/unstructured_inference-1.2.0.tar.gz", hash = "sha256:19ca28512f3649c70a759cf2a4e98663e942a1b83c1acdb9506b0445f4862f23", size = 45732, upload-time = "2026-01-30T20:57:58.019Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/2d/3b/349cd091b590a6f1dbfebcb5fee0ea7b0b6ef6520df58794c9582567a24f/unstructured_inference-1.2.0-py3-none-any.whl", hash = "sha256:60a1635aa8e97a9e7daed1a129836f51c26588e0d2062c9cc6a5a17e6d40cb6a", size = 49443, upload-time = "2026-01-30T20:57:56.617Z" }, -] - -[[package]] -name = "unstructured-inference" -version = "1.6.6" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.13' and platform_machine != 's390x' and sys_platform != 'win32'", - "python_full_version >= '3.13' and platform_machine == 's390x' and sys_platform != 'win32'", - "python_full_version == '3.12.*' and platform_machine != 's390x' and sys_platform != 'win32'", - "python_full_version == '3.12.*' and platform_machine == 's390x' and sys_platform != 'win32'", + "platform_machine != 's390x' and sys_platform != 'win32'", + "platform_machine == 's390x' and sys_platform != 'win32'", "python_full_version == '3.12.*' and platform_machine != 's390x' and sys_platform == 'win32'", "python_full_version == '3.12.*' and platform_machine == 's390x' and sys_platform == 'win32'", ] dependencies = [ - { name = "accelerate", marker = "(python_full_version >= '3.12' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, - { name = "huggingface-hub", marker = "(python_full_version >= '3.12' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, - { name = "matplotlib", marker = "(python_full_version >= '3.12' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, - { name = "numpy", marker = "(python_full_version >= '3.12' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, - { name = "onnx", marker = "(python_full_version >= '3.12' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, - { name = "onnxruntime", marker = "(python_full_version >= '3.12' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, - { name = "opencv-python", marker = "(python_full_version >= '3.12' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, - { name = "pandas", marker = "(python_full_version >= '3.12' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, - { name = "pypdfium2", marker = "(python_full_version >= '3.12' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, - { name = "rapidfuzz", marker = "(python_full_version >= '3.12' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, - { name = "scipy", marker = "(python_full_version >= '3.12' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, - { name = "timm", marker = "(python_full_version >= '3.12' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, - { name = "torch", marker = "(python_full_version >= '3.12' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, - { name = "transformers", marker = "(python_full_version >= '3.12' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/d3/e3/6c98caf4965e07eb0153dc2b4457ec6fb1cfef336411add4acd3b28c697c/unstructured_inference-1.6.6.tar.gz", hash = "sha256:f14745daef4c37f785d4edb6c3d3834c7414d9d5abd47ca0e377ca60c624d225", size = 47024, upload-time = "2026-04-09T19:58:52.292Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/7e/5b/bd4aa4d16446fbc79bea07b22c19c8f8b578c8f1dd73745d152511c17a5a/unstructured_inference-1.6.6-py3-none-any.whl", hash = "sha256:ac472f341407b2ea14d1b63074080af840b9badeefdcd90ea38feb22b4928e5a", size = 54286, upload-time = "2026-04-09T19:58:50.858Z" }, + { name = "accelerate", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "huggingface-hub", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "matplotlib", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "numpy", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "onnx", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "onnxruntime", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "opencv-python", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "pandas", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "pypdfium2", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "rapidfuzz", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "scipy", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "timm", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "torch", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "transformers", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/37/38/9872ff72346ae723fcc1cadb393566330ada607cbad1154388e8d5e6bc2b/unstructured_inference-1.6.8.tar.gz", hash = "sha256:8c802e8217cfcda8209addd7a4173e21574653a079c72895563bb3e011c15d25", size = 47854, upload-time = "2026-04-25T17:33:39.184Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/33/6b/e0f1c60e17fc557f64722c4b44d511337cdaff6c92581aa854f9356226b1/unstructured_inference-1.6.8-py3-none-any.whl", hash = "sha256:e2c988f8e230d5dd9622afb4120ee531d6c8cce064b7fe7bf0c7530d9f7004ee", size = 55110, upload-time = "2026-04-25T17:33:37.183Z" }, ] [[package]] From 8bae7e0f2f668d406e59c527c74f272ca5bf91da Mon Sep 17 00:00:00 2001 From: Nick Franck <46548427+CyMule@users.noreply.github.com> Date: Sun, 26 Apr 2026 16:23:56 -0400 Subject: [PATCH 2/2] Address PDF render guard review feedback --- pyproject.toml | 4 +- .../pdf_image/test_pdf_image_utils.py | 25 +++ .../partition/pdf_image/pdf_image_utils.py | 42 ++-- uv.lock | 186 ++++++++++-------- 4 files changed, 160 insertions(+), 97 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 20201bfd5d..4f8a490106 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -68,8 +68,8 @@ image = [ "pi-heif>=1.2.0, <2.0.0", "pikepdf>=10.3.0, <11.0.0", "pypdf>=6.6.2, <7.0.0", - "unstructured-inference>=1.6.8, <2.0.0; platform_system != 'Windows'", - "unstructured-inference>=1.6.8, <2.0.0; platform_system == 'Windows' and python_version >= '3.12' and python_version < '3.13'", + "unstructured-inference>=1.6.10, <2.0.0; platform_system != 'Windows'", + "unstructured-inference>=1.6.10, <2.0.0; platform_system == 'Windows' and python_version >= '3.12' and python_version < '3.13'", "unstructured-pytesseract>=0.3.15, <1.0.0", ] md = [ diff --git a/test_unstructured/partition/pdf_image/test_pdf_image_utils.py b/test_unstructured/partition/pdf_image/test_pdf_image_utils.py index 8f31ed7a1d..1656cbfdee 100644 --- a/test_unstructured/partition/pdf_image/test_pdf_image_utils.py +++ b/test_unstructured/partition/pdf_image/test_pdf_image_utils.py @@ -7,10 +7,12 @@ import numpy as np import pytest from PIL import Image as PILImg +from unstructured_inference.inference import pdf_image from test_unstructured.unit_utils import example_doc_path from unstructured.documents.coordinates import PixelSpace from unstructured.documents.elements import ElementMetadata, ElementType, Image, Table +from unstructured.errors import UnprocessableEntityError from unstructured.partition.pdf_image import pdf_image_utils @@ -62,6 +64,29 @@ def test_convert_pdf_to_image(file_mode, path_only): assert isinstance(images[0], PILImg.Image) +def test_convert_pdf_to_image_raises_unprocessable_when_render_too_large(): + with patch.object( + pdf_image_utils, + "render_pdf_to_image", + side_effect=pdf_image.PdfRenderTooLargeError("too many pixels"), + ): + with pytest.raises(UnprocessableEntityError, match="too many pixels"): + pdf_image_utils.convert_pdf_to_image(filename="example.pdf") + + +def test_convert_pdf_to_images_raises_unprocessable_when_render_too_large(): + with ( + patch.object(pdf_image_utils.pdf2image, "pdfinfo_from_path", return_value={"Pages": 1}), + patch.object( + pdf_image_utils, + "render_pdf_to_image", + side_effect=pdf_image.PdfRenderTooLargeError("too many pixels"), + ), + ): + with pytest.raises(UnprocessableEntityError, match="too many pixels"): + list(pdf_image_utils.convert_pdf_to_images(filename="example.pdf")) + + @pytest.mark.parametrize("file_mode", ["filename", "rb"]) @pytest.mark.parametrize("path_only", [True, False]) def test_convert_pdf_to_image_twice(file_mode, path_only): diff --git a/unstructured/partition/pdf_image/pdf_image_utils.py b/unstructured/partition/pdf_image/pdf_image_utils.py index 7e6e87b695..b81714a9f7 100644 --- a/unstructured/partition/pdf_image/pdf_image_utils.py +++ b/unstructured/partition/pdf_image/pdf_image_utils.py @@ -15,8 +15,10 @@ import pdf2image from PIL import Image from unstructured_inference.inference.layout import convert_pdf_to_image as render_pdf_to_image +from unstructured_inference.inference.pdf_image import PdfRenderTooLargeError from unstructured.documents.elements import ElementType +from unstructured.errors import UnprocessableEntityError from unstructured.logger import logger from unstructured.partition.common.common import convert_to_bytes, exactly_one from unstructured.partition.utils.config import env_config @@ -66,14 +68,18 @@ def convert_pdf_to_image( if dpi is None: dpi = env_config.PDF_RENDER_DPI - return render_pdf_to_image( - filename=filename, - file=file, - dpi=dpi, - output_folder=output_folder, - path_only=path_only, - password=password, - ) + try: + return render_pdf_to_image( + filename=filename, + file=file, + dpi=dpi, + output_folder=output_folder, + path_only=path_only, + password=password, + pdf_render_max_pixels_per_page=env_config.PDF_RENDER_MAX_PIXELS_PER_PAGE, + ) + except PdfRenderTooLargeError as exc: + raise UnprocessableEntityError(str(exc)) from exc def pad_element_bboxes( @@ -405,14 +411,18 @@ def convert_pdf_to_images( total_pages = info["Pages"] for start_page in range(1, total_pages + 1, chunk_size): end_page = min(start_page + chunk_size - 1, total_pages) - chunk_images = render_pdf_to_image( - filename=filename if f_bytes is None else None, - file=f_bytes, - dpi=env_config.PDF_RENDER_DPI, - first_page=start_page, - last_page=end_page, - password=password, - ) + try: + chunk_images = render_pdf_to_image( + filename=filename if f_bytes is None else None, + file=f_bytes, + dpi=env_config.PDF_RENDER_DPI, + first_page=start_page, + last_page=end_page, + password=password, + pdf_render_max_pixels_per_page=env_config.PDF_RENDER_MAX_PIXELS_PER_PAGE, + ) + except PdfRenderTooLargeError as exc: + raise UnprocessableEntityError(str(exc)) from exc chunk_images = cast(List[Image.Image], chunk_images) for image in chunk_images: diff --git a/uv.lock b/uv.lock index 7a44e8d4d9..df44b0635f 100644 --- a/uv.lock +++ b/uv.lock @@ -1,5 +1,5 @@ version = 1 -revision = 3 +revision = 2 requires-python = ">=3.11, <3.14" resolution-markers = [ "python_full_version >= '3.13' and sys_platform == 'win32'", @@ -38,13 +38,13 @@ name = "accelerate" version = "1.13.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "huggingface-hub", marker = "(python_full_version < '3.13' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, - { name = "numpy", marker = "(python_full_version < '3.13' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, - { name = "packaging", marker = "(python_full_version < '3.13' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, - { name = "psutil", marker = "(python_full_version < '3.13' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, - { name = "pyyaml", marker = "(python_full_version < '3.13' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, - { name = "safetensors", marker = "(python_full_version < '3.13' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, - { name = "torch", marker = "(python_full_version < '3.13' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, + { name = "huggingface-hub", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "numpy", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "packaging", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "psutil", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "pyyaml", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "safetensors", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "torch", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/ca/14/787e5498cd062640f0f3d92ef4ae4063174f76f9afd29d13fc52a319daae/accelerate-1.13.0.tar.gz", hash = "sha256:d631b4e0f5b3de4aff2d7e9e6857d164810dfc3237d54d017f075122d057b236", size = 402835, upload-time = "2026-03-04T19:34:12.359Z" } wheels = [ @@ -884,7 +884,8 @@ dependencies = [ { name = "kubernetes", marker = "python_full_version < '3.13' or sys_platform != 'win32'" }, { name = "mmh3", marker = "python_full_version < '3.13' or sys_platform != 'win32'" }, { name = "numpy", marker = "python_full_version < '3.13' or sys_platform != 'win32'" }, - { name = "onnxruntime", marker = "python_full_version < '3.13' or sys_platform != 'win32'" }, + { name = "onnxruntime", version = "1.24.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.12' and sys_platform == 'win32'" }, + { name = "onnxruntime", version = "1.25.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, { name = "opentelemetry-api", marker = "python_full_version < '3.13' or sys_platform != 'win32'" }, { name = "opentelemetry-exporter-otlp-proto-grpc", marker = "python_full_version < '3.13' or sys_platform != 'win32'" }, { name = "opentelemetry-sdk", marker = "python_full_version < '3.13' or sys_platform != 'win32'" }, @@ -998,7 +999,7 @@ name = "contourpy" version = "1.3.3" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "numpy", marker = "(python_full_version < '3.13' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, + { name = "numpy", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/58/01/1253e6698a07380cd31a736d248a3f2a50a7c88779a1813da27503cadc2a/contourpy-1.3.3.tar.gz", hash = "sha256:083e12155b210502d0bca491432bb04d56dc3432f95a979b429f2848c3dbe880", size = 13466174, upload-time = "2025-07-26T12:03:12.549Z" } wheels = [ @@ -2067,7 +2068,9 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/fb/c6/dba32cab7e3a625b011aa5647486e2d28423a48845a2998c126dd69c85e1/greenlet-3.4.0-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:805bebb4945094acbab757d34d6e1098be6de8966009ab9ca54f06ff492def58", size = 285504, upload-time = "2026-04-08T15:52:14.071Z" }, { url = "https://files.pythonhosted.org/packages/54/f4/7cb5c2b1feb9a1f50e038be79980dfa969aa91979e5e3a18fdbcfad2c517/greenlet-3.4.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:439fc2f12b9b512d9dfa681c5afe5f6b3232c708d13e6f02c845e0d9f4c2d8c6", size = 605476, upload-time = "2026-04-08T16:24:37.064Z" }, { url = "https://files.pythonhosted.org/packages/d6/af/b66ab0b2f9a4c5a867c136bf66d9599f34f21a1bcca26a2884a29c450bd9/greenlet-3.4.0-cp311-cp311-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a70ed1cb0295bee1df57b63bf7f46b4e56a5c93709eea769c1fec1bb23a95875", size = 618336, upload-time = "2026-04-08T16:30:56.59Z" }, + { url = "https://files.pythonhosted.org/packages/6d/31/56c43d2b5de476f77d36ceeec436328533bff960a4cba9a07616e93063ab/greenlet-3.4.0-cp311-cp311-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:8c5696c42e6bb5cfb7c6ff4453789081c66b9b91f061e5e9367fa15792644e76", size = 625045, upload-time = "2026-04-08T16:40:37.111Z" }, { url = "https://files.pythonhosted.org/packages/e5/5c/8c5633ece6ba611d64bf2770219a98dd439921d6424e4e8cf16b0ac74ea5/greenlet-3.4.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c660bce1940a1acae5f51f0a064f1bc785d07ea16efcb4bc708090afc4d69e83", size = 613515, upload-time = "2026-04-08T15:56:32.478Z" }, + { url = "https://files.pythonhosted.org/packages/80/ca/704d4e2c90acb8bdf7ae593f5cbc95f58e82de95cc540fb75631c1054533/greenlet-3.4.0-cp311-cp311-manylinux_2_39_riscv64.whl", hash = "sha256:89995ce5ddcd2896d89615116dd39b9703bfa0c07b583b85b89bf1b5d6eddf81", size = 419745, upload-time = "2026-04-08T16:43:04.022Z" }, { url = "https://files.pythonhosted.org/packages/a9/df/950d15bca0d90a0e7395eb777903060504cdb509b7b705631e8fb69ff415/greenlet-3.4.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:ee407d4d1ca9dc632265aee1c8732c4a2d60adff848057cdebfe5fe94eb2c8a2", size = 1574623, upload-time = "2026-04-08T16:26:18.596Z" }, { url = "https://files.pythonhosted.org/packages/1a/e7/0839afab829fcb7333c9ff6d80c040949510055d2d4d63251f0d1c7c804e/greenlet-3.4.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:956215d5e355fffa7c021d168728321fd4d31fd730ac609b1653b450f6a4bc71", size = 1639579, upload-time = "2026-04-08T15:57:29.231Z" }, { url = "https://files.pythonhosted.org/packages/d9/2b/b4482401e9bcaf9f5c97f67ead38db89c19520ff6d0d6699979c6efcc200/greenlet-3.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:5cb614ace7c27571270354e9c9f696554d073f8aa9319079dcba466bbdead711", size = 238233, upload-time = "2026-04-08T17:02:54.286Z" }, @@ -2075,7 +2078,9 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/65/8b/3669ad3b3f247a791b2b4aceb3aa5a31f5f6817bf547e4e1ff712338145a/greenlet-3.4.0-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:1a54a921561dd9518d31d2d3db4d7f80e589083063ab4d3e2e950756ef809e1a", size = 286902, upload-time = "2026-04-08T15:52:12.138Z" }, { url = "https://files.pythonhosted.org/packages/38/3e/3c0e19b82900873e2d8469b590a6c4b3dfd2b316d0591f1c26b38a4879a5/greenlet-3.4.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:16dec271460a9a2b154e3b1c2fa1050ce6280878430320e85e08c166772e3f97", size = 606099, upload-time = "2026-04-08T16:24:38.408Z" }, { url = "https://files.pythonhosted.org/packages/b5/33/99fef65e7754fc76a4ed14794074c38c9ed3394a5bd129d7f61b705f3168/greenlet-3.4.0-cp312-cp312-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:90036ce224ed6fe75508c1907a77e4540176dcf0744473627785dd519c6f9996", size = 618837, upload-time = "2026-04-08T16:30:58.298Z" }, + { url = "https://files.pythonhosted.org/packages/44/57/eae2cac10421feae6c0987e3dc106c6d86262b1cb379e171b017aba893a6/greenlet-3.4.0-cp312-cp312-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:6f0def07ec9a71d72315cf26c061aceee53b306c36ed38c35caba952ea1b319d", size = 624901, upload-time = "2026-04-08T16:40:38.981Z" }, { url = "https://files.pythonhosted.org/packages/36/f7/229f3aed6948faa20e0616a0b8568da22e365ede6a54d7d369058b128afd/greenlet-3.4.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a1c4f6b453006efb8310affb2d132832e9bbb4fc01ce6df6b70d810d38f1f6dc", size = 615062, upload-time = "2026-04-08T15:56:33.766Z" }, + { url = "https://files.pythonhosted.org/packages/6a/8a/0e73c9b94f31d1cc257fe79a0eff621674141cdae7d6d00f40de378a1e42/greenlet-3.4.0-cp312-cp312-manylinux_2_39_riscv64.whl", hash = "sha256:0e1254cf0cbaa17b04320c3a78575f29f3c161ef38f59c977108f19ffddaf077", size = 423927, upload-time = "2026-04-08T16:43:05.293Z" }, { url = "https://files.pythonhosted.org/packages/08/97/d988180011aa40135c46cd0d0cf01dd97f7162bae14139b4a3ef54889ba5/greenlet-3.4.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:9b2d9a138ffa0e306d0e2b72976d2fb10b97e690d40ab36a472acaab0838e2de", size = 1573511, upload-time = "2026-04-08T16:26:20.058Z" }, { url = "https://files.pythonhosted.org/packages/d4/0f/a5a26fe152fb3d12e6a474181f6e9848283504d0afd095f353d85726374b/greenlet-3.4.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:8424683caf46eb0eb6f626cb95e008e8cc30d0cb675bdfa48200925c79b38a08", size = 1640396, upload-time = "2026-04-08T15:57:30.88Z" }, { url = "https://files.pythonhosted.org/packages/42/cf/bb2c32d9a100e36ee9f6e38fad6b1e082b8184010cb06259b49e1266ca01/greenlet-3.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:a0a53fb071531d003b075c444014ff8f8b1a9898d36bb88abd9ac7b3524648a2", size = 238892, upload-time = "2026-04-08T17:03:10.094Z" }, @@ -2083,7 +2088,9 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/7a/75/7e9cd1126a1e1f0cd67b0eda02e5221b28488d352684704a78ed505bd719/greenlet-3.4.0-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:43748988b097f9c6f09364f260741aa73c80747f63389824435c7a50bfdfd5c1", size = 285856, upload-time = "2026-04-08T15:52:45.82Z" }, { url = "https://files.pythonhosted.org/packages/9d/c4/3e2df392e5cb199527c4d9dbcaa75c14edcc394b45040f0189f649631e3c/greenlet-3.4.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5566e4e2cd7a880e8c27618e3eab20f3494452d12fd5129edef7b2f7aa9a36d1", size = 610208, upload-time = "2026-04-08T16:24:39.674Z" }, { url = "https://files.pythonhosted.org/packages/da/af/750cdfda1d1bd30a6c28080245be8d0346e669a98fdbae7f4102aa95fff3/greenlet-3.4.0-cp313-cp313-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:1054c5a3c78e2ab599d452f23f7adafef55062a783a8e241d24f3b633ba6ff82", size = 621269, upload-time = "2026-04-08T16:30:59.767Z" }, + { url = "https://files.pythonhosted.org/packages/e0/93/c8c508d68ba93232784bbc1b5474d92371f2897dfc6bc281b419f2e0d492/greenlet-3.4.0-cp313-cp313-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:98eedd1803353daf1cd9ef23eef23eda5a4d22f99b1f998d273a8b78b70dd47f", size = 628455, upload-time = "2026-04-08T16:40:40.698Z" }, { url = "https://files.pythonhosted.org/packages/54/78/0cbc693622cd54ebe25207efbb3a0eb07c2639cb8594f6e3aaaa0bb077a8/greenlet-3.4.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f82cb6cddc27dd81c96b1506f4aa7def15070c3b2a67d4e46fd19016aacce6cf", size = 617549, upload-time = "2026-04-08T15:56:34.893Z" }, + { url = "https://files.pythonhosted.org/packages/7f/46/cfaaa0ade435a60550fd83d07dfd5c41f873a01da17ede5c4cade0b9bab8/greenlet-3.4.0-cp313-cp313-manylinux_2_39_riscv64.whl", hash = "sha256:b7857e2202aae67bc5725e0c1f6403c20a8ff46094ece015e7d474f5f7020b55", size = 426238, upload-time = "2026-04-08T16:43:06.865Z" }, { url = "https://files.pythonhosted.org/packages/ba/c0/8966767de01343c1ff47e8b855dc78e7d1a8ed2b7b9c83576a57e289f81d/greenlet-3.4.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:227a46251ecba4ff46ae742bc5ce95c91d5aceb4b02f885487aff269c127a729", size = 1575310, upload-time = "2026-04-08T16:26:21.671Z" }, { url = "https://files.pythonhosted.org/packages/b8/38/bcdc71ba05e9a5fda87f63ffc2abcd1f15693b659346df994a48c968003d/greenlet-3.4.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5b99e87be7eba788dd5b75ba1cde5639edffdec5f91fe0d734a249535ec3408c", size = 1640435, upload-time = "2026-04-08T15:57:32.572Z" }, { url = "https://files.pythonhosted.org/packages/a1/c2/19b664b7173b9e4ef5f77e8cef9f14c20ec7fce7920dc1ccd7afd955d093/greenlet-3.4.0-cp313-cp313-win_amd64.whl", hash = "sha256:849f8bc17acd6295fcb5de8e46d55cc0e52381c56eaf50a2afd258e97bc65940", size = 238760, upload-time = "2026-04-08T17:04:03.878Z" }, @@ -3142,15 +3149,15 @@ name = "matplotlib" version = "3.10.8" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "contourpy", marker = "(python_full_version < '3.13' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, - { name = "cycler", marker = "(python_full_version < '3.13' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, - { name = "fonttools", marker = "(python_full_version < '3.13' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, - { name = "kiwisolver", marker = "(python_full_version < '3.13' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, - { name = "numpy", marker = "(python_full_version < '3.13' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, - { name = "packaging", marker = "(python_full_version < '3.13' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, - { name = "pillow", marker = "(python_full_version < '3.13' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, - { name = "pyparsing", marker = "(python_full_version < '3.13' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, - { name = "python-dateutil", marker = "(python_full_version < '3.13' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, + { name = "contourpy", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "cycler", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "fonttools", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "kiwisolver", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "numpy", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "packaging", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "pillow", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "pyparsing", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "python-dateutil", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/8a/76/d3c6e3a13fe484ebe7718d14e269c9569c4eb0020a968a327acb3b9a8fe6/matplotlib-3.10.8.tar.gz", hash = "sha256:2299372c19d56bcd35cf05a2738308758d32b9eaed2371898d8f5bd33f084aa3", size = 34806269, upload-time = "2025-12-10T22:56:51.155Z" } wheels = [ @@ -3213,7 +3220,7 @@ name = "ml-dtypes" version = "0.5.4" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "numpy", marker = "(python_full_version < '3.13' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, + { name = "numpy", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/0e/4a/c27b42ed9b1c7d13d9ba8b6905dece787d6259152f2309338aed29b2447b/ml_dtypes-0.5.4.tar.gz", hash = "sha256:8ab06a50fb9bf9666dd0fe5dfb4676fa2b0ac0f31ecff72a6c3af8e22c063453", size = 692314, upload-time = "2025-11-17T22:32:31.031Z" } wheels = [ @@ -3831,10 +3838,10 @@ name = "onnx" version = "1.21.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "ml-dtypes", marker = "(python_full_version < '3.13' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, - { name = "numpy", marker = "(python_full_version < '3.13' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, - { name = "protobuf", marker = "(python_full_version < '3.13' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, - { name = "typing-extensions", marker = "(python_full_version < '3.13' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, + { name = "ml-dtypes", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "numpy", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "protobuf", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "typing-extensions", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/c5/93/942d2a0f6a70538eea042ce0445c8aefd46559ad153469986f29a743c01c/onnx-1.21.0.tar.gz", hash = "sha256:4d8b67d0aaec5864c87633188b91cc520877477ec0254eda122bef8be43cd764", size = 12074608, upload-time = "2026-03-27T21:33:36.118Z" } wheels = [ @@ -3861,31 +3868,63 @@ wheels = [ name = "onnxruntime" version = "1.24.4" source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.12' and sys_platform == 'win32'", +] dependencies = [ - { name = "flatbuffers", marker = "python_full_version < '3.13' or sys_platform != 'win32'" }, - { name = "numpy", marker = "python_full_version < '3.13' or sys_platform != 'win32'" }, - { name = "packaging", marker = "python_full_version < '3.13' or sys_platform != 'win32'" }, - { name = "protobuf", marker = "python_full_version < '3.13' or sys_platform != 'win32'" }, - { name = "sympy", marker = "python_full_version < '3.13' or sys_platform != 'win32'" }, + { name = "flatbuffers", marker = "python_full_version < '3.12' and sys_platform == 'win32'" }, + { name = "numpy", marker = "python_full_version < '3.12' and sys_platform == 'win32'" }, + { name = "packaging", marker = "python_full_version < '3.12' and sys_platform == 'win32'" }, + { name = "protobuf", marker = "python_full_version < '3.12' and sys_platform == 'win32'" }, + { name = "sympy", marker = "python_full_version < '3.12' and sys_platform == 'win32'" }, ] wheels = [ - { url = "https://files.pythonhosted.org/packages/60/69/6c40720201012c6af9aa7d4ecdd620e521bd806dc6269d636fdd5c5aeebe/onnxruntime-1.24.4-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:0bdfce8e9a6497cec584aab407b71bf697dac5e1b7b7974adc50bf7533bdb3a2", size = 17332131, upload-time = "2026-03-17T22:05:49.005Z" }, - { url = "https://files.pythonhosted.org/packages/38/e9/8c901c150ce0c368da38638f44152fb411059c0c7364b497c9e5c957321a/onnxruntime-1.24.4-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:046ff290045a387676941a02a8ae5c3ebec6b4f551ae228711968c4a69d8f6b7", size = 15152472, upload-time = "2026-03-17T22:03:26.176Z" }, - { url = "https://files.pythonhosted.org/packages/d5/b6/7a4df417cdd01e8f067a509e123ac8b31af450a719fa7ed81787dd6057ec/onnxruntime-1.24.4-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e54ad52e61d2d4618dcff8fa1480ac66b24ee2eab73331322db1049f11ccf330", size = 17222993, upload-time = "2026-03-17T22:04:34.485Z" }, { url = "https://files.pythonhosted.org/packages/dd/59/8febe015f391aa1757fa5ba82c759ea4b6c14ef970132efb5e316665ba61/onnxruntime-1.24.4-cp311-cp311-win_amd64.whl", hash = "sha256:b43b63eb24a2bc8fc77a09be67587a570967a412cccb837b6245ccb546691153", size = 12594863, upload-time = "2026-03-17T22:05:38.749Z" }, { url = "https://files.pythonhosted.org/packages/32/84/4155fcd362e8873eb6ce305acfeeadacd9e0e59415adac474bea3d9281bb/onnxruntime-1.24.4-cp311-cp311-win_arm64.whl", hash = "sha256:e26478356dba25631fb3f20112e345f8e8bf62c499bb497e8a559f7d69cf7e7b", size = 12259895, upload-time = "2026-03-17T22:05:28.812Z" }, - { url = "https://files.pythonhosted.org/packages/d7/38/31db1b232b4ba960065a90c1506ad7a56995cd8482033184e97fadca17cc/onnxruntime-1.24.4-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:cad1c2b3f455c55678ab2a8caa51fb420c25e6e3cf10f4c23653cdabedc8de78", size = 17341875, upload-time = "2026-03-17T22:05:51.669Z" }, - { url = "https://files.pythonhosted.org/packages/aa/60/c4d1c8043eb42f8a9aa9e931c8c293d289c48ff463267130eca97d13357f/onnxruntime-1.24.4-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1a5c5a544b22f90859c88617ecb30e161ee3349fcc73878854f43d77f00558b5", size = 15172485, upload-time = "2026-03-17T22:03:32.182Z" }, - { url = "https://files.pythonhosted.org/packages/6d/ab/5b68110e0460d73fad814d5bd11c7b1ddcce5c37b10177eb264d6a36e331/onnxruntime-1.24.4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0d640eb9f3782689b55cfa715094474cd5662f2f137be6a6f847a594b6e9705c", size = 17244912, upload-time = "2026-03-17T22:04:37.251Z" }, { url = "https://files.pythonhosted.org/packages/8b/f4/6b89e297b93704345f0f3f8c62229bee323ef25682a3f9b4f89a39324950/onnxruntime-1.24.4-cp312-cp312-win_amd64.whl", hash = "sha256:535b29475ca42b593c45fbb2152fbf1cdf3f287315bf650e6a724a0a1d065cdb", size = 12596856, upload-time = "2026-03-17T22:05:41.224Z" }, { url = "https://files.pythonhosted.org/packages/43/06/8b8ec6e9e6a474fcd5d772453f627ad4549dfe3ab8c0bf70af5afcde551b/onnxruntime-1.24.4-cp312-cp312-win_arm64.whl", hash = "sha256:e6214096e14b7b52e3bee1903dc12dc7ca09cb65e26664668a4620cc5e6f9a90", size = 12270275, upload-time = "2026-03-17T22:05:31.132Z" }, - { url = "https://files.pythonhosted.org/packages/e9/f0/8a21ec0a97e40abb7d8da1e8b20fb9e1af509cc6d191f6faa75f73622fb2/onnxruntime-1.24.4-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:e99a48078baaefa2b50fe5836c319499f71f13f76ed32d0211f39109147a49e0", size = 17341922, upload-time = "2026-03-17T22:03:56.364Z" }, - { url = "https://files.pythonhosted.org/packages/8b/25/d7908de8e08cee9abfa15b8aa82349b79733ae5865162a3609c11598805d/onnxruntime-1.24.4-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:dc4aaed1e5e1aaacf2343c838a30a7c3ade78f13eeb16817411f929d04040a13", size = 15172290, upload-time = "2026-03-17T22:03:37.124Z" }, - { url = "https://files.pythonhosted.org/packages/7f/72/105ec27a78c5aa0154a7c0cd8c41c19a97799c3b12fc30392928997e3be3/onnxruntime-1.24.4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e30c972bc02e072911aabb6891453ec73795386c0af2b761b65444b8a4c4745f", size = 17244738, upload-time = "2026-03-17T22:04:40.625Z" }, { url = "https://files.pythonhosted.org/packages/05/fb/a592736d968c2f58e12de4d52088dda8e0e724b26ad5c0487263adb45875/onnxruntime-1.24.4-cp313-cp313-win_amd64.whl", hash = "sha256:3b6ba8b0181a3aa88edab00eb01424ffc06f42e71095a91186c2249415fcff93", size = 12597435, upload-time = "2026-03-17T22:05:43.826Z" }, { url = "https://files.pythonhosted.org/packages/ad/04/ae2479e9841b64bd2eb44f8a64756c62593f896514369a11243b1b86ca5c/onnxruntime-1.24.4-cp313-cp313-win_arm64.whl", hash = "sha256:71d6a5c1821d6e8586a024000ece458db8f2fc0ecd050435d45794827ce81e19", size = 12269852, upload-time = "2026-03-17T22:05:33.353Z" }, - { url = "https://files.pythonhosted.org/packages/b4/af/a479a536c4398ffaf49fbbe755f45d5b8726bdb4335ab31b537f3d7149b8/onnxruntime-1.24.4-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1700f559c8086d06b2a4d5de51e62cb4ff5e2631822f71a36db8c72383db71ee", size = 15176861, upload-time = "2026-03-17T22:03:40.143Z" }, - { url = "https://files.pythonhosted.org/packages/be/13/19f5da70c346a76037da2c2851ecbf1266e61d7f0dcdb887c667210d4608/onnxruntime-1.24.4-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4c74e268dc808e61e63784d43f9ddcdaf50a776c2819e8bd1d1b11ef64bf7e36", size = 17247454, upload-time = "2026-03-17T22:04:46.643Z" }, +] + +[[package]] +name = "onnxruntime" +version = "1.25.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.13' and platform_machine != 's390x' and sys_platform != 'win32'", + "python_full_version >= '3.13' and platform_machine == 's390x' and sys_platform != 'win32'", + "python_full_version == '3.12.*' and platform_machine != 's390x' and sys_platform != 'win32'", + "python_full_version == '3.12.*' and platform_machine == 's390x' and sys_platform != 'win32'", + "python_full_version == '3.12.*' and platform_machine != 's390x' and sys_platform == 'win32'", + "python_full_version == '3.12.*' and platform_machine == 's390x' and sys_platform == 'win32'", + "python_full_version < '3.12' and platform_machine != 's390x' and sys_platform != 'win32'", + "python_full_version < '3.12' and platform_machine == 's390x' and sys_platform != 'win32'", +] +dependencies = [ + { name = "flatbuffers", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "numpy", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "packaging", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "protobuf", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/66/67/edb2cb6c4a38ebf539c3529c5449d68b8031f3006d8ee36574a6d45559b2/onnxruntime-1.25.0-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:a71baa8e0e2f3417106e3a8b2183fd5741875b998041f1a2422a1d0240f302cb", size = 17727193, upload-time = "2026-04-22T17:20:31.582Z" }, + { url = "https://files.pythonhosted.org/packages/ce/87/21324e795f504ee5abd9f2a6c0ab87c8b88a5efbe683373199cb26b7e9b6/onnxruntime-1.25.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:15f220ed2ac4a549c97a31e57f21311add9f13d381f13ed1a52be5b25275038c", size = 15830173, upload-time = "2026-04-22T17:19:27.796Z" }, + { url = "https://files.pythonhosted.org/packages/2c/04/dac532fe3c2babf052209788f10c3458af0016cd72847f3f2c2f645a48d6/onnxruntime-1.25.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a349feb15476092372eb045a340cd88e53f7965ce5b489ebf5fea20c0bd49add", size = 17978264, upload-time = "2026-04-22T17:19:50.952Z" }, + { url = "https://files.pythonhosted.org/packages/7b/6b/6309ae7c8b27ffb7b5c888517c64ff21e1dcc67a9cfcbf3b4d014f4522e8/onnxruntime-1.25.0-cp311-cp311-win_amd64.whl", hash = "sha256:d32eff37efac78c676f1a3b3102863de5e55fbabc18348ec2c1439c18f3e90fa", size = 12866299, upload-time = "2026-04-22T17:20:19.939Z" }, + { url = "https://files.pythonhosted.org/packages/54/44/35fe3af177b584e9ade0f1ef934c4c04016a9c967bfa646f82ae5913eaa1/onnxruntime-1.25.0-cp311-cp311-win_arm64.whl", hash = "sha256:fcb074b3c62ffa315e222ad246e46125b046b9b531c719852deda7c89b72ebb7", size = 12592117, upload-time = "2026-04-22T17:20:08.513Z" }, + { url = "https://files.pythonhosted.org/packages/7a/69/f98c6bda4c34ac382b70c36033a989ceffd1caf5afba47bd2ef26535850f/onnxruntime-1.25.0-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:8ecd3362de3fb496fb3e2d055a95d5acab611cf759a27609c6d99704c9d8f184", size = 17742518, upload-time = "2026-04-22T17:20:34.444Z" }, + { url = "https://files.pythonhosted.org/packages/5a/c6/19c5bfbc60396791e975652f982bcff9ff4b27947c8e2bf0064ac5d5727b/onnxruntime-1.25.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9c99238d20bfa80ac68c7b03c2c936d389189ae40997f78a30d151570d7e18bf", size = 15841110, upload-time = "2026-04-22T17:19:31.284Z" }, + { url = "https://files.pythonhosted.org/packages/a9/1b/d681878f227513917d8620e4ea504af5eb3313fc01f8aea7b19a976c65db/onnxruntime-1.25.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:be93baa694ef8e5831fcb7b542da21f502b122918b5b9612d9f02972e043ee01", size = 17996146, upload-time = "2026-04-22T17:19:53.792Z" }, + { url = "https://files.pythonhosted.org/packages/55/fe/ec98e416bd75063dea1e493661c7c939e18660ee41d6a63d7221e5657f48/onnxruntime-1.25.0-cp312-cp312-win_amd64.whl", hash = "sha256:9596040c1f7d247bbfab5d4db1e7651c790235e48e460c7d445ec81687d5a182", size = 12872370, upload-time = "2026-04-22T17:20:22.856Z" }, + { url = "https://files.pythonhosted.org/packages/f7/86/9a1ac7c8a8eba7967935d4c109fc956d8f9ba61cba61d9368315bb27d0bc/onnxruntime-1.25.0-cp312-cp312-win_arm64.whl", hash = "sha256:463aed7f5e4a3ca5a476db7e9bba9164fa26921ef34c37e59b28c4c61e55f266", size = 12600072, upload-time = "2026-04-22T17:20:11.523Z" }, + { url = "https://files.pythonhosted.org/packages/c1/5f/3b916a303f43e9c7eed3a705ea69f6867233c161dede30f4df21538c6693/onnxruntime-1.25.0-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:1b3d76cf770afba76859f270679c9ad0b017b9357eb5892e91926943e05ca82c", size = 17743247, upload-time = "2026-04-22T17:19:45.206Z" }, + { url = "https://files.pythonhosted.org/packages/d5/b3/9e45ba86ed39ab688578f21dd39ed4b575726205596891870a1a8b4d5ca9/onnxruntime-1.25.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:cddb565dfd630550a8817b3d5493ffcfa0fec273b545b2816f2fce53384e1151", size = 15841442, upload-time = "2026-04-22T17:19:34.209Z" }, + { url = "https://files.pythonhosted.org/packages/d2/c4/810809e3b411fd66958bdd7285a63acf948988ab4189e1fd860a2f999db3/onnxruntime-1.25.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ade74e651e28b39e6bfd6f576cb9b8a4edfa0916234145154dc891bd55331c22", size = 17993660, upload-time = "2026-04-22T17:19:56.719Z" }, + { url = "https://files.pythonhosted.org/packages/42/3d/b736cda9c71b3df022ca6bbcb991d14b7723c068dbebe826af9102e79777/onnxruntime-1.25.0-cp313-cp313-win_amd64.whl", hash = "sha256:9196c32c039c37ce8362cbee0aa3a704679be5f2b6fb3e849fea927c98fe1e5b", size = 12871906, upload-time = "2026-04-22T17:20:25.705Z" }, + { url = "https://files.pythonhosted.org/packages/0d/1f/d7bb87cdbb839b356133e9f9e3851fc0c3130dd1c360640c9ce948e3e083/onnxruntime-1.25.0-cp313-cp313-win_arm64.whl", hash = "sha256:b3e52dc2208dec6f61ef118dff04610927e9a18d99e019a828799b23cc9cdea4", size = 12599753, upload-time = "2026-04-22T17:20:14.661Z" }, + { url = "https://files.pythonhosted.org/packages/04/3c/edb0d825a65beed40a3de8a51521d49d433aa767f8d00e633cd2602024c0/onnxruntime-1.25.0-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:de8548d8fe8fd58ca841178051d535d6f378efae14a4b4eb336617d80540fb41", size = 15852628, upload-time = "2026-04-22T17:19:36.886Z" }, + { url = "https://files.pythonhosted.org/packages/55/51/7a660b4d087f27b273ff725f744880e7664f64a9331bfb1eae91ed2a9f0a/onnxruntime-1.25.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4edec672d09e34b9e83ad09c44454ce97627388f32858b1d59fe01d091ff54b5", size = 17997241, upload-time = "2026-04-22T17:19:59.653Z" }, ] [[package]] @@ -5567,15 +5606,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/6c/73/9f872cb81fc5c3bb48f7227872c28975f998f3e7c2b1c16e95e6432bbb90/python_magic-0.4.27-py2.py3-none-any.whl", hash = "sha256:c212960ad306f700aa0d01e5d7a325d20548ff97eb9920dcd29513174f0294d3", size = 13840, upload-time = "2022-06-07T20:16:57.763Z" }, ] -[[package]] -name = "python-multipart" -version = "0.0.24" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/8a/45/e23b5dc14ddb9918ae4a625379506b17b6f8fc56ca1d82db62462f59aea6/python_multipart-0.0.24.tar.gz", hash = "sha256:9574c97e1c026e00bc30340ef7c7d76739512ab4dfd428fec8c330fa6a5cc3c8", size = 37695, upload-time = "2026-04-05T20:49:13.829Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/a3/73/89930efabd4da63cea44a3f438aeb753d600123570e6d6264e763617a9ce/python_multipart-0.0.24-py3-none-any.whl", hash = "sha256:9b110a98db707df01a53c194f0af075e736a770dc5058089650d70b4a182f950", size = 24420, upload-time = "2026-04-05T20:49:12.555Z" }, -] - [[package]] name = "python-oxmsg" version = "0.0.2" @@ -6867,11 +6897,11 @@ name = "timm" version = "1.0.26" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "huggingface-hub", marker = "(python_full_version < '3.13' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, - { name = "pyyaml", marker = "(python_full_version < '3.13' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, - { name = "safetensors", marker = "(python_full_version < '3.13' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, - { name = "torch", marker = "(python_full_version < '3.13' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, - { name = "torchvision", marker = "(python_full_version < '3.13' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, + { name = "huggingface-hub", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "pyyaml", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "safetensors", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "torch", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "torchvision", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/7b/1e/e924b3b2326a856aaf68586f9c52a5fc81ef45715eca408393b68c597e0e/timm-1.0.26.tar.gz", hash = "sha256:f66f082f2f381cf68431c22714c8b70f723837fa2a185b155961eab90f2d5b10", size = 2419859, upload-time = "2026-03-23T18:12:10.272Z" } wheels = [ @@ -7010,9 +7040,9 @@ name = "torchvision" version = "0.25.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "numpy", marker = "(python_full_version < '3.13' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, - { name = "pillow", marker = "(python_full_version < '3.13' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, - { name = "torch", marker = "(python_full_version < '3.13' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, + { name = "numpy", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "pillow", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "torch", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, ] wheels = [ { url = "https://files.pythonhosted.org/packages/3e/be/c704bceaf11c4f6b19d64337a34a877fcdfe3bd68160a8c9ae9bea4a35a3/torchvision-0.25.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:db74a551946b75d19f9996c419a799ffdf6a223ecf17c656f90da011f1d75b20", size = 1874923, upload-time = "2026-01-21T16:27:46.574Z" }, @@ -7079,9 +7109,13 @@ name = "triton" version = "3.6.0" source = { registry = "https://pypi.org/simple" } wheels = [ + { url = "https://files.pythonhosted.org/packages/0f/2c/96f92f3c60387e14cc45aed49487f3486f89ea27106c1b1376913c62abe4/triton-3.6.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:49df5ef37379c0c2b5c0012286f80174fcf0e073e5ade1ca9a86c36814553651", size = 176081190, upload-time = "2026-01-20T16:16:00.523Z" }, { url = "https://files.pythonhosted.org/packages/e0/12/b05ba554d2c623bffa59922b94b0775673de251f468a9609bc9e45de95e9/triton-3.6.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e8e323d608e3a9bfcc2d9efcc90ceefb764a82b99dea12a86d643c72539ad5d3", size = 188214640, upload-time = "2026-01-20T16:00:35.869Z" }, + { url = "https://files.pythonhosted.org/packages/17/5d/08201db32823bdf77a0e2b9039540080b2e5c23a20706ddba942924ebcd6/triton-3.6.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:374f52c11a711fd062b4bfbb201fd9ac0a5febd28a96fb41b4a0f51dde3157f4", size = 176128243, upload-time = "2026-01-20T16:16:07.857Z" }, { url = "https://files.pythonhosted.org/packages/ab/a8/cdf8b3e4c98132f965f88c2313a4b493266832ad47fb52f23d14d4f86bb5/triton-3.6.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:74caf5e34b66d9f3a429af689c1c7128daba1d8208df60e81106b115c00d6fca", size = 188266850, upload-time = "2026-01-20T16:00:43.041Z" }, + { url = "https://files.pythonhosted.org/packages/3c/12/34d71b350e89a204c2c7777a9bba0dcf2f19a5bfdd70b57c4dbc5ffd7154/triton-3.6.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:448e02fe6dc898e9e5aa89cf0ee5c371e99df5aa5e8ad976a80b93334f3494fd", size = 176133521, upload-time = "2026-01-20T16:16:13.321Z" }, { url = "https://files.pythonhosted.org/packages/f9/0b/37d991d8c130ce81a8728ae3c25b6e60935838e9be1b58791f5997b24a54/triton-3.6.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:10c7f76c6e72d2ef08df639e3d0d30729112f47a56b0c81672edc05ee5116ac9", size = 188289450, upload-time = "2026-01-20T16:00:49.136Z" }, + { url = "https://files.pythonhosted.org/packages/ce/4e/41b0c8033b503fd3cfcd12392cdd256945026a91ff02452bef40ec34bee7/triton-3.6.0-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1722e172d34e32abc3eb7711d0025bb69d7959ebea84e3b7f7a341cd7ed694d6", size = 176276087, upload-time = "2026-01-20T16:16:18.989Z" }, { url = "https://files.pythonhosted.org/packages/35/f8/9c66bfc55361ec6d0e4040a0337fb5924ceb23de4648b8a81ae9d33b2b38/triton-3.6.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d002e07d7180fd65e622134fbd980c9a3d4211fb85224b56a0a0efbd422ab72f", size = 188400296, upload-time = "2026-01-20T16:00:56.042Z" }, ] @@ -7235,7 +7269,7 @@ all-docs = [ { name = "pypdf" }, { name = "python-docx" }, { name = "python-pptx" }, - { name = "unstructured-inference", version = "1.6.8", source = { registry = "https://pypi.org/simple" }, marker = "sys_platform != 'win32' or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, + { name = "unstructured-inference", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, { name = "unstructured-pytesseract" }, { name = "xlrd" }, ] @@ -7269,7 +7303,7 @@ image = [ { name = "pi-heif" }, { name = "pikepdf" }, { name = "pypdf" }, - { name = "unstructured-inference", version = "1.6.8", source = { registry = "https://pypi.org/simple" }, marker = "sys_platform != 'win32' or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, + { name = "unstructured-inference", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, { name = "unstructured-pytesseract" }, ] ingest = [ @@ -7291,7 +7325,7 @@ local-inference = [ { name = "pypdf" }, { name = "python-docx" }, { name = "python-pptx" }, - { name = "unstructured-inference", version = "1.6.8", source = { registry = "https://pypi.org/simple" }, marker = "sys_platform != 'win32' or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, + { name = "unstructured-inference", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, { name = "unstructured-pytesseract" }, { name = "xlrd" }, ] @@ -7316,7 +7350,7 @@ pdf = [ { name = "pi-heif" }, { name = "pikepdf" }, { name = "pypdf" }, - { name = "unstructured-inference", version = "1.6.8", source = { registry = "https://pypi.org/simple" }, marker = "sys_platform != 'win32' or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, + { name = "unstructured-inference", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, { name = "unstructured-pytesseract" }, ] ppt = [ @@ -7470,14 +7504,14 @@ requires-dist = [ { name = "transformers", marker = "extra == 'huggingface'", specifier = ">=5.2.0,<6.0.0" }, { name = "typing-extensions", specifier = ">=4.15.0,<5.0.0" }, { name = "unstructured-client", specifier = ">=0.25.9,<1.0.0" }, - { name = "unstructured-inference", marker = "python_full_version == '3.12.*' and sys_platform == 'win32' and extra == 'all-docs'", specifier = ">=1.6.8,<2.0.0" }, - { name = "unstructured-inference", marker = "python_full_version == '3.12.*' and sys_platform == 'win32' and extra == 'image'", specifier = ">=1.6.8,<2.0.0" }, - { name = "unstructured-inference", marker = "python_full_version == '3.12.*' and sys_platform == 'win32' and extra == 'local-inference'", specifier = ">=1.6.8,<2.0.0" }, - { name = "unstructured-inference", marker = "python_full_version == '3.12.*' and sys_platform == 'win32' and extra == 'pdf'", specifier = ">=1.6.8,<2.0.0" }, - { name = "unstructured-inference", marker = "sys_platform != 'win32' and extra == 'all-docs'", specifier = ">=1.6.8,<2.0.0" }, - { name = "unstructured-inference", marker = "sys_platform != 'win32' and extra == 'image'", specifier = ">=1.6.8,<2.0.0" }, - { name = "unstructured-inference", marker = "sys_platform != 'win32' and extra == 'local-inference'", specifier = ">=1.6.8,<2.0.0" }, - { name = "unstructured-inference", marker = "sys_platform != 'win32' and extra == 'pdf'", specifier = ">=1.6.8,<2.0.0" }, + { name = "unstructured-inference", marker = "python_full_version == '3.12.*' and sys_platform == 'win32' and extra == 'all-docs'", specifier = ">=1.6.10,<2.0.0" }, + { name = "unstructured-inference", marker = "python_full_version == '3.12.*' and sys_platform == 'win32' and extra == 'image'", specifier = ">=1.6.10,<2.0.0" }, + { name = "unstructured-inference", marker = "python_full_version == '3.12.*' and sys_platform == 'win32' and extra == 'local-inference'", specifier = ">=1.6.10,<2.0.0" }, + { name = "unstructured-inference", marker = "python_full_version == '3.12.*' and sys_platform == 'win32' and extra == 'pdf'", specifier = ">=1.6.10,<2.0.0" }, + { name = "unstructured-inference", marker = "sys_platform != 'win32' and extra == 'all-docs'", specifier = ">=1.6.10,<2.0.0" }, + { name = "unstructured-inference", marker = "sys_platform != 'win32' and extra == 'image'", specifier = ">=1.6.10,<2.0.0" }, + { name = "unstructured-inference", marker = "sys_platform != 'win32' and extra == 'local-inference'", specifier = ">=1.6.10,<2.0.0" }, + { name = "unstructured-inference", marker = "sys_platform != 'win32' and extra == 'pdf'", specifier = ">=1.6.10,<2.0.0" }, { name = "unstructured-ingest", extras = ["airtable", "astradb", "azure", "azure-ai-search", "bedrock", "biomed", "box", "chroma", "confluence", "couchbase", "databricks-volumes", "delta-table", "discord", "dropbox", "elasticsearch", "gcs", "github", "gitlab", "google-drive", "hubspot", "huggingface", "jira", "kafka", "kdbai", "milvus", "mongodb", "notion", "octoai", "onedrive", "openai", "opensearch", "outlook", "pinecone", "postgres", "qdrant", "reddit", "remote", "s3", "salesforce", "sftp", "sharepoint", "singlestore", "slack", "vectara", "vertexai", "voyageai", "weaviate", "wikipedia"], marker = "python_full_version < '3.13' and sys_platform == 'win32' and extra == 'ingest'", specifier = ">=1.4.0,<2.0.0" }, { name = "unstructured-ingest", extras = ["airtable", "astradb", "azure", "azure-ai-search", "bedrock", "biomed", "box", "chroma", "confluence", "couchbase", "databricks-volumes", "delta-table", "discord", "dropbox", "elasticsearch", "gcs", "github", "gitlab", "google-drive", "hubspot", "huggingface", "jira", "kafka", "kdbai", "milvus", "mongodb", "notion", "octoai", "onedrive", "openai", "opensearch", "outlook", "pinecone", "postgres", "qdrant", "reddit", "remote", "s3", "salesforce", "sftp", "sharepoint", "singlestore", "slack", "vectara", "vertexai", "voyageai", "weaviate", "wikipedia"], marker = "sys_platform != 'win32' and extra == 'ingest'", specifier = ">=1.4.0,<2.0.0" }, { name = "unstructured-paddleocr", marker = "extra == 'paddleocr'", specifier = "==2.10.0" }, @@ -7536,21 +7570,15 @@ wheels = [ [[package]] name = "unstructured-inference" -version = "1.6.8" +version = "1.6.10" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "platform_machine != 's390x' and sys_platform != 'win32'", - "platform_machine == 's390x' and sys_platform != 'win32'", - "python_full_version == '3.12.*' and platform_machine != 's390x' and sys_platform == 'win32'", - "python_full_version == '3.12.*' and platform_machine == 's390x' and sys_platform == 'win32'", -] dependencies = [ { name = "accelerate", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, { name = "huggingface-hub", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, { name = "matplotlib", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, { name = "numpy", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, { name = "onnx", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, - { name = "onnxruntime", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "onnxruntime", version = "1.25.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, { name = "opencv-python", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, { name = "pandas", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, { name = "pypdfium2", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, @@ -7560,9 +7588,9 @@ dependencies = [ { name = "torch", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, { name = "transformers", marker = "python_full_version == '3.12.*' or sys_platform != 'win32'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/37/38/9872ff72346ae723fcc1cadb393566330ada607cbad1154388e8d5e6bc2b/unstructured_inference-1.6.8.tar.gz", hash = "sha256:8c802e8217cfcda8209addd7a4173e21574653a079c72895563bb3e011c15d25", size = 47854, upload-time = "2026-04-25T17:33:39.184Z" } +sdist = { url = "https://files.pythonhosted.org/packages/9a/aa/5d0a01facf2f4d00ce1b3e8a2f23e179b584b0a2d89acd647143583eb5da/unstructured_inference-1.6.10.tar.gz", hash = "sha256:b3a2809561b7a2f8840217082dea1234708fb50c86e654f83c6731d68b6051ed", size = 47868, upload-time = "2026-04-26T20:09:57.927Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/33/6b/e0f1c60e17fc557f64722c4b44d511337cdaff6c92581aa854f9356226b1/unstructured_inference-1.6.8-py3-none-any.whl", hash = "sha256:e2c988f8e230d5dd9622afb4120ee531d6c8cce064b7fe7bf0c7530d9f7004ee", size = 55110, upload-time = "2026-04-25T17:33:37.183Z" }, + { url = "https://files.pythonhosted.org/packages/a1/3b/75d00d8a771cc34c50f8d97ec831de0d966287f675910c0134ef5e0b7e9c/unstructured_inference-1.6.10-py3-none-any.whl", hash = "sha256:28dc73fe9ce952d03b256520525f7e2c1656920be8eb6204193e890cbaf2c73a", size = 55132, upload-time = "2026-04-26T20:09:56.455Z" }, ] [[package]]