diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml index f18fc88c..ddc06f28 100644 --- a/.github/workflows/checks.yml +++ b/.github/workflows/checks.yml @@ -22,8 +22,8 @@ jobs: python-version: ['3.9', '3.10', '3.11', '3.12', '3.13'] steps: - uses: actions/checkout@v4 - - name: Install tesseract - run: sudo apt-get update && sudo apt-get install -y tesseract-ocr tesseract-ocr-eng tesseract-ocr-fra tesseract-ocr-deu tesseract-ocr-spa tesseract-ocr-script-latn libleptonica-dev libtesseract-dev pkg-config + - name: Install tesseract and ffmpeg + run: sudo apt-get update && sudo apt-get install -y ffmpeg tesseract-ocr tesseract-ocr-eng tesseract-ocr-fra tesseract-ocr-deu tesseract-ocr-spa tesseract-ocr-script-latn libleptonica-dev libtesseract-dev pkg-config - name: Set TESSDATA_PREFIX run: | echo "TESSDATA_PREFIX=$(dpkg -L tesseract-ocr-eng | grep tessdata$)" >> "$GITHUB_ENV" @@ -60,7 +60,7 @@ jobs: run: | for file in docs/examples/*.py; do # Skip batch_convert.py - if [[ "$(basename "$file")" =~ ^(batch_convert|compare_vlm_models|minimal|minimal_vlm_pipeline|export_multimodal|custom_convert|develop_picture_enrichment|rapidocr_with_custom_models|offline_convert|pictures_description|pictures_description_api|vlm_pipeline_api_model).py ]]; then + if [[ "$(basename "$file")" =~ ^(batch_convert|compare_vlm_models|minimal|minimal_vlm_pipeline|minimal_asr_pipeline|export_multimodal|custom_convert|develop_picture_enrichment|rapidocr_with_custom_models|offline_convert|pictures_description|pictures_description_api|vlm_pipeline_api_model).py ]]; then echo "Skipping $file" continue fi diff --git a/CHANGELOG.md b/CHANGELOG.md index 4f7d4475..3e04a4dd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,42 @@ +## [v2.39.0](https://github.com/docling-project/docling/releases/tag/v2.39.0) - 2025-06-27 + +### Feature + +* Leverage new list modeling, capture default markers ([#1856](https://github.com/docling-project/docling/issues/1856)) ([`0533da1`](https://github.com/docling-project/docling/commit/0533da1923598e4a2d6392283f6de0f9c7002b01)) + +### Fix + +* **markdown:** Make parsing of rich table cells valid ([#1821](https://github.com/docling-project/docling/issues/1821)) ([`e79e4f0`](https://github.com/docling-project/docling/commit/e79e4f0ab6c5b8276316e423b14c9821165049f2)) + +## [v2.38.1](https://github.com/docling-project/docling/releases/tag/v2.38.1) - 2025-06-25 + +### Fix + +* Updated granite vision model version for picture description ([#1852](https://github.com/docling-project/docling/issues/1852)) ([`d337825`](https://github.com/docling-project/docling/commit/d337825b8ef9ab3ec00c1496c340041e406bd271)) +* **markdown:** Fix single-formatted headings & list items ([#1820](https://github.com/docling-project/docling/issues/1820)) ([`7c5614a`](https://github.com/docling-project/docling/commit/7c5614a37a316950c9a1d123e4fd94e0e831aca0)) +* Fix response type of ollama ([#1850](https://github.com/docling-project/docling/issues/1850)) ([`41e8cae`](https://github.com/docling-project/docling/commit/41e8cae26b625b95ffab021fb4dc337249e8caad)) +* Handle missing runs to avoid out of range exception ([#1844](https://github.com/docling-project/docling/issues/1844)) ([`4002de1`](https://github.com/docling-project/docling/commit/4002de1f9220a6568ed87ba726254cde3ab1168a)) + +## [v2.38.0](https://github.com/docling-project/docling/releases/tag/v2.38.0) - 2025-06-23 + +### Feature + +* Support audio input ([#1763](https://github.com/docling-project/docling/issues/1763)) ([`1557e7c`](https://github.com/docling-project/docling/commit/1557e7ce3e036fb51eb118296f5cbff3b6dfbfa7)) +* **markdown:** Add formatting & improve inline support ([#1804](https://github.com/docling-project/docling/issues/1804)) ([`861abcd`](https://github.com/docling-project/docling/commit/861abcdcb0d406342b9566f81203b87cf32b7ad0)) +* Maximum image size for Vlm models ([#1802](https://github.com/docling-project/docling/issues/1802)) ([`215b540`](https://github.com/docling-project/docling/commit/215b540f6c078a72464310ef22975ebb6cde4f0a)) + +### Fix + +* **docx:** Ensure list items have a list parent ([#1827](https://github.com/docling-project/docling/issues/1827)) ([`d26dac6`](https://github.com/docling-project/docling/commit/d26dac61a86b0af5b16686f78956ba047bcbddba)) +* **msword_backend:** Identify text in the same line after an image #1425 ([#1610](https://github.com/docling-project/docling/issues/1610)) ([`1350a8d`](https://github.com/docling-project/docling/commit/1350a8d3e5ea3c4b4d506757758880c8f78efd8c)) +* Ensure uninitialized pages are removed before assembling document ([#1812](https://github.com/docling-project/docling/issues/1812)) ([`dd7f64f`](https://github.com/docling-project/docling/commit/dd7f64ff28226cd9964fc4d8ba807b2c8a6358ef)) +* Formula conversion with page_range param set ([#1791](https://github.com/docling-project/docling/issues/1791)) ([`dbab30e`](https://github.com/docling-project/docling/commit/dbab30e92cc1d130ce7f9335ab9c46aa7a30930d)) + +### Documentation + +* Update readme and add ASR example ([#1836](https://github.com/docling-project/docling/issues/1836)) ([`f3ae302`](https://github.com/docling-project/docling/commit/f3ae3029b8a6d6f0109383fbc82ebf9da3942afd)) +* Support running examples from root or subfolder ([#1816](https://github.com/docling-project/docling/issues/1816)) ([`64ac043`](https://github.com/docling-project/docling/commit/64ac043786efdece0c61827051a5b41dddf6c5d7)) + ## [v2.37.0](https://github.com/docling-project/docling/releases/tag/v2.37.0) - 2025-06-16 ### Feature diff --git a/README.md b/README.md index 309e1030..c53e7b79 100644 --- a/README.md +++ b/README.md @@ -28,14 +28,15 @@ Docling simplifies document processing, parsing diverse formats — including ad ## Features -* 🗂️ Parsing of [multiple document formats][supported_formats] incl. PDF, DOCX, XLSX, HTML, images, and more +* 🗂️ Parsing of [multiple document formats][supported_formats] incl. PDF, DOCX, PPTX, XLSX, HTML, WAV, MP3, images (PNG, TIFF, JPEG, ...), and more * 📑 Advanced PDF understanding incl. page layout, reading order, table structure, code, formulas, image classification, and more * 🧬 Unified, expressive [DoclingDocument][docling_document] representation format -* ↪️ Various [export formats][supported_formats] and options, including Markdown, HTML, and lossless JSON +* ↪️ Various [export formats][supported_formats] and options, including Markdown, HTML, [DocTags](https://arxiv.org/abs/2503.11576) and lossless JSON * 🔒 Local execution capabilities for sensitive data and air-gapped environments * 🤖 Plug-and-play [integrations][integrations] incl. LangChain, LlamaIndex, Crew AI & Haystack for agentic AI * 🔍 Extensive OCR support for scanned PDFs and images -* 🥚 Support of several Visual Language Models ([SmolDocling](https://huggingface.co/ds4sd/SmolDocling-256M-preview)) +* 👓 Support of several Visual Language Models ([SmolDocling](https://huggingface.co/ds4sd/SmolDocling-256M-preview)) +* 🎙️ Support for Audio with Automatic Speech Recognition (ASR) models * 💻 Simple and convenient CLI ### Coming soon diff --git a/docling/backend/html_backend.py b/docling/backend/html_backend.py index 7c716908..3b9a55a5 100644 --- a/docling/backend/html_backend.py +++ b/docling/backend/html_backend.py @@ -17,6 +17,7 @@ from docling_core.types.doc import ( TableData, ) from docling_core.types.doc.document import ContentLayer +from pydantic import BaseModel from typing_extensions import override from docling.backend.abstract_backend import DeclarativeDocumentBackend @@ -48,6 +49,11 @@ TAGS_FOR_NODE_ITEMS: Final = [ ] +class _Context(BaseModel): + list_ordered_flag_by_ref: dict[str, bool] = {} + list_start_by_ref: dict[str, int] = {} + + class HTMLDocumentBackend(DeclarativeDocumentBackend): @override def __init__(self, in_doc: "InputDocument", path_or_stream: Union[BytesIO, Path]): @@ -59,6 +65,7 @@ class HTMLDocumentBackend(DeclarativeDocumentBackend): self.max_levels = 10 self.level = 0 self.parents: dict[int, Optional[Union[DocItem, GroupItem]]] = {} + self.ctx = _Context() for i in range(self.max_levels): self.parents[i] = None @@ -121,6 +128,7 @@ class HTMLDocumentBackend(DeclarativeDocumentBackend): self.content_layer = ( ContentLayer.BODY if headers is None else ContentLayer.FURNITURE ) + self.ctx = _Context() # reset context self.walk(content, doc) else: raise RuntimeError( @@ -294,28 +302,25 @@ class HTMLDocumentBackend(DeclarativeDocumentBackend): def handle_list(self, element: Tag, doc: DoclingDocument) -> None: """Handles list tags (ul, ol) and their list items.""" - if element.name == "ul": - # create a list group - self.parents[self.level + 1] = doc.add_group( - parent=self.parents[self.level], - name="list", - label=GroupLabel.LIST, - content_layer=self.content_layer, - ) - elif element.name == "ol": + start: Optional[int] = None + if is_ordered := element.name == "ol": start_attr = element.get("start") - start: int = ( - int(start_attr) - if isinstance(start_attr, str) and start_attr.isnumeric() - else 1 - ) - # create a list group - self.parents[self.level + 1] = doc.add_group( - parent=self.parents[self.level], - name="ordered list" + (f" start {start}" if start != 1 else ""), - label=GroupLabel.ORDERED_LIST, - content_layer=self.content_layer, - ) + if isinstance(start_attr, str) and start_attr.isnumeric(): + start = int(start_attr) + name = "ordered list" + (f" start {start}" if start is not None else "") + else: + name = "list" + # create a list group + list_group = doc.add_list_group( + name=name, + parent=self.parents[self.level], + content_layer=self.content_layer, + ) + self.parents[self.level + 1] = list_group + self.ctx.list_ordered_flag_by_ref[list_group.self_ref] = is_ordered + if is_ordered and start is not None: + self.ctx.list_start_by_ref[list_group.self_ref] = start + self.level += 1 self.walk(element, doc) @@ -331,16 +336,11 @@ class HTMLDocumentBackend(DeclarativeDocumentBackend): if parent is None: _log.debug(f"list-item has no parent in DoclingDocument: {element}") return - parent_label: str = parent.label - index_in_list = len(parent.children) + 1 - if ( - parent_label == GroupLabel.ORDERED_LIST - and isinstance(parent, GroupItem) - and parent.name - ): - start_in_list: str = parent.name.split(" ")[-1] - start: int = int(start_in_list) if start_in_list.isnumeric() else 1 - index_in_list += start - 1 + enumerated = self.ctx.list_ordered_flag_by_ref.get(parent.self_ref, False) + if enumerated and (start := self.ctx.list_start_by_ref.get(parent.self_ref)): + marker = f"{start + len(parent.children)}." + else: + marker = "" if nested_list: # Text in list item can be hidden within hierarchy, hence @@ -350,12 +350,6 @@ class HTMLDocumentBackend(DeclarativeDocumentBackend): text = text.replace("\n", "").replace("\r", "") text = " ".join(text.split()).strip() - marker = "" - enumerated = False - if parent_label == GroupLabel.ORDERED_LIST: - marker = str(index_in_list) - enumerated = True - if len(text) > 0: # create a list-item self.parents[self.level + 1] = doc.add_list_item( @@ -375,11 +369,6 @@ class HTMLDocumentBackend(DeclarativeDocumentBackend): elif element.text.strip(): text = element.text.strip() - marker = "" - enumerated = False - if parent_label == GroupLabel.ORDERED_LIST: - marker = f"{index_in_list!s}." - enumerated = True doc.add_list_item( text=text, enumerated=enumerated, diff --git a/docling/backend/md_backend.py b/docling/backend/md_backend.py index b8b0e6d0..fb42547e 100644 --- a/docling/backend/md_backend.py +++ b/docling/backend/md_backend.py @@ -2,9 +2,10 @@ import logging import re import warnings from copy import deepcopy +from enum import Enum from io import BytesIO from pathlib import Path -from typing import List, Optional, Set, Union +from typing import List, Literal, Optional, Set, Union import marko import marko.element @@ -13,15 +14,15 @@ from docling_core.types.doc import ( DocItemLabel, DoclingDocument, DocumentOrigin, - GroupLabel, NodeItem, TableCell, TableData, TextItem, ) -from docling_core.types.doc.document import Formatting, OrderedList, UnorderedList +from docling_core.types.doc.document import Formatting from marko import Markdown -from pydantic import AnyUrl, TypeAdapter +from pydantic import AnyUrl, BaseModel, Field, TypeAdapter +from typing_extensions import Annotated from docling.backend.abstract_backend import DeclarativeDocumentBackend from docling.backend.html_backend import HTMLDocumentBackend @@ -35,6 +36,32 @@ _START_MARKER = f"#_#_{_MARKER_BODY}_START_#_#" _STOP_MARKER = f"#_#_{_MARKER_BODY}_STOP_#_#" +class _PendingCreationType(str, Enum): + """CoordOrigin.""" + + HEADING = "heading" + LIST_ITEM = "list_item" + + +class _HeadingCreationPayload(BaseModel): + kind: Literal["heading"] = "heading" + level: int + + +class _ListItemCreationPayload(BaseModel): + kind: Literal["list_item"] = "list_item" + enumerated: bool + + +_CreationPayload = Annotated[ + Union[ + _HeadingCreationPayload, + _ListItemCreationPayload, + ], + Field(discriminator="kind"), +] + + class MarkdownDocumentBackend(DeclarativeDocumentBackend): def _shorten_underscore_sequences(self, markdown_text: str, max_length: int = 10): # This regex will match any sequence of underscores @@ -155,6 +182,50 @@ class MarkdownDocumentBackend(DeclarativeDocumentBackend): doc.add_table(data=table_data) return + def _create_list_item( + self, + doc: DoclingDocument, + parent_item: Optional[NodeItem], + text: str, + enumerated: bool, + formatting: Optional[Formatting] = None, + hyperlink: Optional[Union[AnyUrl, Path]] = None, + ): + item = doc.add_list_item( + text=text, + enumerated=enumerated, + parent=parent_item, + formatting=formatting, + hyperlink=hyperlink, + ) + return item + + def _create_heading_item( + self, + doc: DoclingDocument, + parent_item: Optional[NodeItem], + text: str, + level: int, + formatting: Optional[Formatting] = None, + hyperlink: Optional[Union[AnyUrl, Path]] = None, + ): + if level == 1: + item = doc.add_title( + text=text, + parent=parent_item, + formatting=formatting, + hyperlink=hyperlink, + ) + else: + item = doc.add_heading( + text=text, + level=level - 1, + parent=parent_item, + formatting=formatting, + hyperlink=hyperlink, + ) + return item + def _iterate_elements( # noqa: C901 self, *, @@ -162,6 +233,10 @@ class MarkdownDocumentBackend(DeclarativeDocumentBackend): depth: int, doc: DoclingDocument, visited: Set[marko.element.Element], + creation_stack: list[ + _CreationPayload + ], # stack for lazy item creation triggered deep in marko's AST (on RawText) + list_ordered_flag_by_ref: dict[str, bool], parent_item: Optional[NodeItem] = None, formatting: Optional[Formatting] = None, hyperlink: Optional[Union[AnyUrl, Path]] = None, @@ -177,28 +252,17 @@ class MarkdownDocumentBackend(DeclarativeDocumentBackend): f" - Heading level {element.level}, content: {element.children[0].children}" # type: ignore ) - if len(element.children) == 1: - child = element.children[0] - snippet_text = str(child.children) # type: ignore - visited.add(child) - else: - snippet_text = "" # inline group will be created - - if element.level == 1: - parent_item = doc.add_title( - text=snippet_text, - parent=parent_item, + if len(element.children) > 1: # inline group will be created further down + parent_item = self._create_heading_item( + doc=doc, + parent_item=parent_item, + text="", + level=element.level, formatting=formatting, hyperlink=hyperlink, ) else: - parent_item = doc.add_heading( - text=snippet_text, - level=element.level - 1, - parent=parent_item, - formatting=formatting, - hyperlink=hyperlink, - ) + creation_stack.append(_HeadingCreationPayload(level=element.level)) elif isinstance(element, marko.block.List): has_non_empty_list_items = False @@ -210,10 +274,8 @@ class MarkdownDocumentBackend(DeclarativeDocumentBackend): self._close_table(doc) _log.debug(f" - List {'ordered' if element.ordered else 'unordered'}") if has_non_empty_list_items: - label = GroupLabel.ORDERED_LIST if element.ordered else GroupLabel.LIST - parent_item = doc.add_group( - label=label, name="list", parent=parent_item - ) + parent_item = doc.add_list_group(name="list", parent=parent_item) + list_ordered_flag_by_ref[parent_item.self_ref] = element.ordered elif ( isinstance(element, marko.block.ListItem) @@ -224,22 +286,22 @@ class MarkdownDocumentBackend(DeclarativeDocumentBackend): self._close_table(doc) _log.debug(" - List item") - if len(child.children) == 1: - snippet_text = str(child.children[0].children) # type: ignore - visited.add(child) - else: - snippet_text = "" # inline group will be created - is_numbered = isinstance(parent_item, OrderedList) - if not isinstance(parent_item, (OrderedList, UnorderedList)): - _log.warning("ListItem would have not had a list parent, adding one.") - parent_item = doc.add_unordered_list(parent=parent_item) - parent_item = doc.add_list_item( - enumerated=is_numbered, - parent=parent_item, - text=snippet_text, - formatting=formatting, - hyperlink=hyperlink, + enumerated = ( + list_ordered_flag_by_ref.get(parent_item.self_ref, False) + if parent_item + else False ) + if len(child.children) > 1: # inline group will be created further down + parent_item = self._create_list_item( + doc=doc, + parent_item=parent_item, + text="", + enumerated=enumerated, + formatting=formatting, + hyperlink=hyperlink, + ) + else: + creation_stack.append(_ListItemCreationPayload(enumerated=enumerated)) elif isinstance(element, marko.inline.Image): self._close_table(doc) @@ -276,7 +338,7 @@ class MarkdownDocumentBackend(DeclarativeDocumentBackend): _log.debug(f" - Paragraph (raw text): {element.children}") snippet_text = element.children.strip() # Detect start of the table: - if "|" in snippet_text: + if "|" in snippet_text or self.in_table: # most likely part of the markdown table self.in_table = True if len(self.md_table_buffer) > 0: @@ -285,13 +347,46 @@ class MarkdownDocumentBackend(DeclarativeDocumentBackend): self.md_table_buffer.append(snippet_text) elif snippet_text: self._close_table(doc) - doc.add_text( - label=DocItemLabel.TEXT, - parent=parent_item, - text=snippet_text, - formatting=formatting, - hyperlink=hyperlink, - ) + + if creation_stack: + while len(creation_stack) > 0: + to_create = creation_stack.pop() + if isinstance(to_create, _ListItemCreationPayload): + enumerated = ( + list_ordered_flag_by_ref.get( + parent_item.self_ref, False + ) + if parent_item + else False + ) + parent_item = self._create_list_item( + doc=doc, + parent_item=parent_item, + text=snippet_text, + enumerated=enumerated, + formatting=formatting, + hyperlink=hyperlink, + ) + elif isinstance(to_create, _HeadingCreationPayload): + # not keeping as parent_item as logic for correctly tracking + # that not implemented yet (section components not captured + # as heading children in marko) + self._create_heading_item( + doc=doc, + parent_item=parent_item, + text=snippet_text, + level=to_create.level, + formatting=formatting, + hyperlink=hyperlink, + ) + else: + doc.add_text( + label=DocItemLabel.TEXT, + parent=parent_item, + text=snippet_text, + formatting=formatting, + hyperlink=hyperlink, + ) elif isinstance(element, marko.inline.CodeSpan): self._close_table(doc) @@ -353,7 +448,6 @@ class MarkdownDocumentBackend(DeclarativeDocumentBackend): parent_item = doc.add_inline_group(parent=parent_item) processed_block_types = ( - # marko.block.Heading, marko.block.CodeBlock, marko.block.FencedCode, marko.inline.RawText, @@ -369,6 +463,8 @@ class MarkdownDocumentBackend(DeclarativeDocumentBackend): depth=depth + 1, doc=doc, visited=visited, + creation_stack=creation_stack, + list_ordered_flag_by_ref=list_ordered_flag_by_ref, parent_item=parent_item, formatting=formatting, hyperlink=hyperlink, @@ -412,6 +508,8 @@ class MarkdownDocumentBackend(DeclarativeDocumentBackend): doc=doc, parent_item=None, visited=set(), + creation_stack=[], + list_ordered_flag_by_ref={}, ) self._close_table(doc=doc) # handle any last hanging table diff --git a/docling/backend/mspowerpoint_backend.py b/docling/backend/mspowerpoint_backend.py index 63aa9e93..f512fb7e 100644 --- a/docling/backend/mspowerpoint_backend.py +++ b/docling/backend/mspowerpoint_backend.py @@ -121,7 +121,9 @@ class MsPowerpointDocumentBackend(DeclarativeDocumentBackend, PaginatedDocumentB return prov - def handle_text_elements(self, shape, parent_slide, slide_ind, doc, slide_size): + def handle_text_elements( + self, shape, parent_slide, slide_ind, doc: DoclingDocument, slide_size + ): is_list_group_created = False enum_list_item_value = 0 new_list = None @@ -165,10 +167,7 @@ class MsPowerpointDocumentBackend(DeclarativeDocumentBackend, PaginatedDocumentB enumerated = bullet_type == "Numbered" if not is_list_group_created: - new_list = doc.add_group( - label=GroupLabel.ORDERED_LIST - if enumerated - else GroupLabel.LIST, + new_list = doc.add_list_group( name="list", parent=parent_slide, ) diff --git a/docling/backend/msword_backend.py b/docling/backend/msword_backend.py index 8386082a..abbcc6f6 100644 --- a/docling/backend/msword_backend.py +++ b/docling/backend/msword_backend.py @@ -10,11 +10,12 @@ from docling_core.types.doc import ( DocumentOrigin, GroupLabel, ImageRef, + ListGroup, NodeItem, TableCell, TableData, ) -from docling_core.types.doc.document import Formatting, OrderedList, UnorderedList +from docling_core.types.doc.document import Formatting from docx import Document from docx.document import Document as DocxDocument from docx.oxml.table import CT_Tc @@ -397,7 +398,11 @@ class MsWordDocumentBackend(DeclarativeDocumentBackend): if isinstance(c, Hyperlink): text = c.text hyperlink = Path(c.address) - format = self._get_format_from_run(c.runs[0]) + format = ( + self._get_format_from_run(c.runs[0]) + if c.runs and len(c.runs) > 0 + else None + ) elif isinstance(c, Run): text = c.text hyperlink = None @@ -684,7 +689,7 @@ class MsWordDocumentBackend(DeclarativeDocumentBackend): paragraph_elements: list, ) -> Optional[NodeItem]: return ( - doc.add_group(label=GroupLabel.INLINE, parent=prev_parent) + doc.add_inline_group(parent=prev_parent) if len(paragraph_elements) > 1 else prev_parent ) @@ -777,9 +782,7 @@ class MsWordDocumentBackend(DeclarativeDocumentBackend): else: # Inline equation level = self._get_level() - inline_equation = doc.add_group( - label=GroupLabel.INLINE, parent=self.parents[level - 1] - ) + inline_equation = doc.add_inline_group(parent=self.parents[level - 1]) text_tmp = text for eq in equations: if len(text_tmp) == 0: @@ -927,18 +930,22 @@ class MsWordDocumentBackend(DeclarativeDocumentBackend): level: int, ) -> None: # This should not happen by construction - if not isinstance(self.parents[level], (OrderedList, UnorderedList)): + if not isinstance(self.parents[level], ListGroup): return + if not elements: + return + if len(elements) == 1: text, format, hyperlink = elements[0] - doc.add_list_item( - marker=marker, - enumerated=enumerated, - parent=self.parents[level], - text=text, - formatting=format, - hyperlink=hyperlink, - ) + if text: + doc.add_list_item( + marker=marker, + enumerated=enumerated, + parent=self.parents[level], + text=text, + formatting=format, + hyperlink=hyperlink, + ) else: new_item = doc.add_list_item( marker=marker, @@ -946,15 +953,16 @@ class MsWordDocumentBackend(DeclarativeDocumentBackend): parent=self.parents[level], text="", ) - new_parent = doc.add_group(label=GroupLabel.INLINE, parent=new_item) + new_parent = doc.add_inline_group(parent=new_item) for text, format, hyperlink in elements: - doc.add_text( - label=DocItemLabel.TEXT, - parent=new_parent, - text=text, - formatting=format, - hyperlink=hyperlink, - ) + if text: + doc.add_text( + label=DocItemLabel.TEXT, + parent=new_parent, + text=text, + formatting=format, + hyperlink=hyperlink, + ) def _add_list_item( self, @@ -975,8 +983,8 @@ class MsWordDocumentBackend(DeclarativeDocumentBackend): if self._prev_numid() is None: # Open new list self.level_at_new_list = level - self.parents[level] = doc.add_group( - label=GroupLabel.LIST, name="list", parent=self.parents[level - 1] + self.parents[level] = doc.add_list_group( + name="list", parent=self.parents[level - 1] ) # Set marker and enumerated arguments if this is an enumeration element. @@ -997,19 +1005,10 @@ class MsWordDocumentBackend(DeclarativeDocumentBackend): self.level_at_new_list + prev_indent + 1, self.level_at_new_list + ilevel + 1, ): - # Determine if this is an unordered list or an ordered list. - # Set GroupLabel.ORDERED_LIST when it fits. self.listIter = 0 - if is_numbered: - self.parents[i] = doc.add_group( - label=GroupLabel.ORDERED_LIST, - name="list", - parent=self.parents[i - 1], - ) - else: - self.parents[i] = doc.add_group( - label=GroupLabel.LIST, name="list", parent=self.parents[i - 1] - ) + self.parents[i] = doc.add_list_group( + name="list", parent=self.parents[i - 1] + ) # TODO: Set marker and enumerated arguments if this is an enumeration element. self.listIter += 1 diff --git a/docling/backend/noop_backend.py b/docling/backend/noop_backend.py new file mode 100644 index 00000000..4974ba07 --- /dev/null +++ b/docling/backend/noop_backend.py @@ -0,0 +1,51 @@ +import logging +from io import BytesIO +from pathlib import Path +from typing import Set, Union + +from docling.backend.abstract_backend import AbstractDocumentBackend +from docling.datamodel.base_models import InputFormat +from docling.datamodel.document import InputDocument + +_log = logging.getLogger(__name__) + + +class NoOpBackend(AbstractDocumentBackend): + """ + A no-op backend that only validates input existence. + Used e.g. for audio files where actual processing is handled by the ASR pipeline. + """ + + def __init__(self, in_doc: "InputDocument", path_or_stream: Union[BytesIO, Path]): + super().__init__(in_doc, path_or_stream) + + _log.debug(f"NoOpBackend initialized for: {path_or_stream}") + + # Validate input + try: + if isinstance(self.path_or_stream, BytesIO): + # Check if stream has content + self.valid = len(self.path_or_stream.getvalue()) > 0 + _log.debug( + f"BytesIO stream length: {len(self.path_or_stream.getvalue())}" + ) + elif isinstance(self.path_or_stream, Path): + # Check if file exists + self.valid = self.path_or_stream.exists() + _log.debug(f"File exists: {self.valid}") + else: + self.valid = False + except Exception as e: + _log.error(f"NoOpBackend validation failed: {e}") + self.valid = False + + def is_valid(self) -> bool: + return self.valid + + @classmethod + def supports_pagination(cls) -> bool: + return False + + @classmethod + def supported_formats(cls) -> Set[InputFormat]: + return set(InputFormat) diff --git a/docling/cli/main.py b/docling/cli/main.py index 083f53b2..ae275ea9 100644 --- a/docling/cli/main.py +++ b/docling/cli/main.py @@ -29,6 +29,15 @@ from docling.backend.docling_parse_v4_backend import DoclingParseV4DocumentBacke from docling.backend.pdf_backend import PdfDocumentBackend from docling.backend.pypdfium2_backend import PyPdfiumDocumentBackend from docling.datamodel.accelerator_options import AcceleratorDevice, AcceleratorOptions +from docling.datamodel.asr_model_specs import ( + WHISPER_BASE, + WHISPER_LARGE, + WHISPER_MEDIUM, + WHISPER_SMALL, + WHISPER_TINY, + WHISPER_TURBO, + AsrModelType, +) from docling.datamodel.base_models import ( ConversionStatus, FormatToExtensions, @@ -37,12 +46,14 @@ from docling.datamodel.base_models import ( ) from docling.datamodel.document import ConversionResult from docling.datamodel.pipeline_options import ( + AsrPipelineOptions, EasyOcrOptions, OcrOptions, PaginatedPipelineOptions, PdfBackend, - PdfPipeline, PdfPipelineOptions, + PipelineOptions, + ProcessingPipeline, TableFormerMode, VlmPipelineOptions, ) @@ -54,8 +65,14 @@ from docling.datamodel.vlm_model_specs import ( SMOLDOCLING_TRANSFORMERS, VlmModelType, ) -from docling.document_converter import DocumentConverter, FormatOption, PdfFormatOption +from docling.document_converter import ( + AudioFormatOption, + DocumentConverter, + FormatOption, + PdfFormatOption, +) from docling.models.factories import get_ocr_factory +from docling.pipeline.asr_pipeline import AsrPipeline from docling.pipeline.vlm_pipeline import VlmPipeline warnings.filterwarnings(action="ignore", category=UserWarning, module="pydantic|torch") @@ -296,13 +313,17 @@ def convert( # noqa: C901 ), ] = ImageRefMode.EMBEDDED, pipeline: Annotated[ - PdfPipeline, + ProcessingPipeline, typer.Option(..., help="Choose the pipeline to process PDF or image files."), - ] = PdfPipeline.STANDARD, + ] = ProcessingPipeline.STANDARD, vlm_model: Annotated[ VlmModelType, typer.Option(..., help="Choose the VLM model to use with PDF or image files."), ] = VlmModelType.SMOLDOCLING, + asr_model: Annotated[ + AsrModelType, + typer.Option(..., help="Choose the ASR model to use with audio/video files."), + ] = AsrModelType.WHISPER_TINY, ocr: Annotated[ bool, typer.Option( @@ -450,12 +471,14 @@ def convert( # noqa: C901 ), ] = None, ): + log_format = "%(asctime)s\t%(levelname)s\t%(name)s: %(message)s" + if verbose == 0: - logging.basicConfig(level=logging.WARNING) + logging.basicConfig(level=logging.WARNING, format=log_format) elif verbose == 1: - logging.basicConfig(level=logging.INFO) + logging.basicConfig(level=logging.INFO, format=log_format) else: - logging.basicConfig(level=logging.DEBUG) + logging.basicConfig(level=logging.DEBUG, format=log_format) settings.debug.visualize_cells = debug_visualize_cells settings.debug.visualize_layout = debug_visualize_layout @@ -530,9 +553,12 @@ def convert( # noqa: C901 ocr_options.lang = ocr_lang_list accelerator_options = AcceleratorOptions(num_threads=num_threads, device=device) - pipeline_options: PaginatedPipelineOptions + # pipeline_options: PaginatedPipelineOptions + pipeline_options: PipelineOptions - if pipeline == PdfPipeline.STANDARD: + format_options: Dict[InputFormat, FormatOption] = {} + + if pipeline == ProcessingPipeline.STANDARD: pipeline_options = PdfPipelineOptions( allow_external_plugins=allow_external_plugins, enable_remote_services=enable_remote_services, @@ -574,7 +600,13 @@ def convert( # noqa: C901 pipeline_options=pipeline_options, backend=backend, # pdf_backend ) - elif pipeline == PdfPipeline.VLM: + + format_options = { + InputFormat.PDF: pdf_format_option, + InputFormat.IMAGE: pdf_format_option, + } + + elif pipeline == ProcessingPipeline.VLM: pipeline_options = VlmPipelineOptions( enable_remote_services=enable_remote_services, ) @@ -600,13 +632,48 @@ def convert( # noqa: C901 pipeline_cls=VlmPipeline, pipeline_options=pipeline_options ) + format_options = { + InputFormat.PDF: pdf_format_option, + InputFormat.IMAGE: pdf_format_option, + } + + elif pipeline == ProcessingPipeline.ASR: + pipeline_options = AsrPipelineOptions( + # enable_remote_services=enable_remote_services, + # artifacts_path = artifacts_path + ) + + if asr_model == AsrModelType.WHISPER_TINY: + pipeline_options.asr_options = WHISPER_TINY + elif asr_model == AsrModelType.WHISPER_SMALL: + pipeline_options.asr_options = WHISPER_SMALL + elif asr_model == AsrModelType.WHISPER_MEDIUM: + pipeline_options.asr_options = WHISPER_MEDIUM + elif asr_model == AsrModelType.WHISPER_BASE: + pipeline_options.asr_options = WHISPER_BASE + elif asr_model == AsrModelType.WHISPER_LARGE: + pipeline_options.asr_options = WHISPER_LARGE + elif asr_model == AsrModelType.WHISPER_TURBO: + pipeline_options.asr_options = WHISPER_TURBO + else: + _log.error(f"{asr_model} is not known") + raise ValueError(f"{asr_model} is not known") + + _log.info(f"pipeline_options: {pipeline_options}") + + audio_format_option = AudioFormatOption( + pipeline_cls=AsrPipeline, + pipeline_options=pipeline_options, + ) + + format_options = { + InputFormat.AUDIO: audio_format_option, + } + if artifacts_path is not None: pipeline_options.artifacts_path = artifacts_path + # audio_pipeline_options.artifacts_path = artifacts_path - format_options: Dict[InputFormat, FormatOption] = { - InputFormat.PDF: pdf_format_option, - InputFormat.IMAGE: pdf_format_option, - } doc_converter = DocumentConverter( allowed_formats=from_formats, format_options=format_options, @@ -614,6 +681,7 @@ def convert( # noqa: C901 start_time = time.time() + _log.info(f"paths: {input_doc_paths}") conv_results = doc_converter.convert_all( input_doc_paths, headers=parsed_headers, raises_on_error=abort_on_error ) diff --git a/docling/datamodel/asr_model_specs.py b/docling/datamodel/asr_model_specs.py new file mode 100644 index 00000000..95287ad2 --- /dev/null +++ b/docling/datamodel/asr_model_specs.py @@ -0,0 +1,92 @@ +import logging +from enum import Enum + +from pydantic import ( + AnyUrl, +) + +from docling.datamodel.accelerator_options import AcceleratorDevice +from docling.datamodel.pipeline_options_asr_model import ( + # AsrResponseFormat, + # ApiAsrOptions, + InferenceAsrFramework, + InlineAsrNativeWhisperOptions, + TransformersModelType, +) + +_log = logging.getLogger(__name__) + +WHISPER_TINY = InlineAsrNativeWhisperOptions( + repo_id="tiny", + inference_framework=InferenceAsrFramework.WHISPER, + verbose=True, + timestamps=True, + word_timestamps=True, + temperatue=0.0, + max_new_tokens=256, + max_time_chunk=30.0, +) + +WHISPER_SMALL = InlineAsrNativeWhisperOptions( + repo_id="small", + inference_framework=InferenceAsrFramework.WHISPER, + verbose=True, + timestamps=True, + word_timestamps=True, + temperatue=0.0, + max_new_tokens=256, + max_time_chunk=30.0, +) + +WHISPER_MEDIUM = InlineAsrNativeWhisperOptions( + repo_id="medium", + inference_framework=InferenceAsrFramework.WHISPER, + verbose=True, + timestamps=True, + word_timestamps=True, + temperatue=0.0, + max_new_tokens=256, + max_time_chunk=30.0, +) + +WHISPER_BASE = InlineAsrNativeWhisperOptions( + repo_id="base", + inference_framework=InferenceAsrFramework.WHISPER, + verbose=True, + timestamps=True, + word_timestamps=True, + temperatue=0.0, + max_new_tokens=256, + max_time_chunk=30.0, +) + +WHISPER_LARGE = InlineAsrNativeWhisperOptions( + repo_id="large", + inference_framework=InferenceAsrFramework.WHISPER, + verbose=True, + timestamps=True, + word_timestamps=True, + temperatue=0.0, + max_new_tokens=256, + max_time_chunk=30.0, +) + +WHISPER_TURBO = InlineAsrNativeWhisperOptions( + repo_id="turbo", + inference_framework=InferenceAsrFramework.WHISPER, + verbose=True, + timestamps=True, + word_timestamps=True, + temperatue=0.0, + max_new_tokens=256, + max_time_chunk=30.0, +) + + +class AsrModelType(str, Enum): + WHISPER_TINY = "whisper_tiny" + WHISPER_SMALL = "whisper_small" + WHISPER_MEDIUM = "whisper_medium" + WHISPER_BASE = "whisper_base" + WHISPER_LARGE = "whisper_large" + WHISPER_TURBO = "whisper_turbo" diff --git a/docling/datamodel/base_models.py b/docling/datamodel/base_models.py index c1fdb033..d9a829ed 100644 --- a/docling/datamodel/base_models.py +++ b/docling/datamodel/base_models.py @@ -49,6 +49,7 @@ class InputFormat(str, Enum): XML_USPTO = "xml_uspto" XML_JATS = "xml_jats" JSON_DOCLING = "json_docling" + AUDIO = "audio" class OutputFormat(str, Enum): @@ -73,6 +74,7 @@ FormatToExtensions: Dict[InputFormat, List[str]] = { InputFormat.XLSX: ["xlsx", "xlsm"], InputFormat.XML_USPTO: ["xml", "txt"], InputFormat.JSON_DOCLING: ["json"], + InputFormat.AUDIO: ["wav", "mp3"], } FormatToMimeType: Dict[InputFormat, List[str]] = { @@ -104,6 +106,7 @@ FormatToMimeType: Dict[InputFormat, List[str]] = { ], InputFormat.XML_USPTO: ["application/xml", "text/plain"], InputFormat.JSON_DOCLING: ["application/json"], + InputFormat.AUDIO: ["audio/x-wav", "audio/mpeg", "audio/wav", "audio/mp3"], } MimeTypeToFormat: dict[str, list[InputFormat]] = { @@ -298,7 +301,7 @@ class OpenAiChatMessage(BaseModel): class OpenAiResponseChoice(BaseModel): index: int message: OpenAiChatMessage - finish_reason: str + finish_reason: Optional[str] class OpenAiResponseUsage(BaseModel): diff --git a/docling/datamodel/document.py b/docling/datamodel/document.py index 4c71f5c8..9f5cf82c 100644 --- a/docling/datamodel/document.py +++ b/docling/datamodel/document.py @@ -249,7 +249,7 @@ class _DocumentConversionInput(BaseModel): backend: Type[AbstractDocumentBackend] if format not in format_options.keys(): _log.error( - f"Input document {obj.name} does not match any allowed format." + f"Input document {obj.name} with format {format} does not match any allowed format: ({format_options.keys()})" ) backend = _DummyBackend else: @@ -318,6 +318,8 @@ class _DocumentConversionInput(BaseModel): mime = mime or _DocumentConversionInput._detect_csv(content) mime = mime or "text/plain" formats = MimeTypeToFormat.get(mime, []) + _log.info(f"detected formats: {formats}") + if formats: if len(formats) == 1 and mime not in ("text/plain"): return formats[0] diff --git a/docling/datamodel/pipeline_options.py b/docling/datamodel/pipeline_options.py index 5995f453..11e085b7 100644 --- a/docling/datamodel/pipeline_options.py +++ b/docling/datamodel/pipeline_options.py @@ -11,8 +11,13 @@ from pydantic import ( ) from typing_extensions import deprecated +from docling.datamodel import asr_model_specs + # Import the following for backwards compatibility from docling.datamodel.accelerator_options import AcceleratorDevice, AcceleratorOptions +from docling.datamodel.pipeline_options_asr_model import ( + InlineAsrOptions, +) from docling.datamodel.pipeline_options_vlm_model import ( ApiVlmOptions, InferenceFramework, @@ -202,7 +207,7 @@ smolvlm_picture_description = PictureDescriptionVlmOptions( # GraniteVision granite_picture_description = PictureDescriptionVlmOptions( - repo_id="ibm-granite/granite-vision-3.1-2b-preview", + repo_id="ibm-granite/granite-vision-3.2-2b-preview", prompt="What is shown in this image?", ) @@ -260,6 +265,11 @@ class VlmPipelineOptions(PaginatedPipelineOptions): ) +class AsrPipelineOptions(PipelineOptions): + asr_options: Union[InlineAsrOptions] = asr_model_specs.WHISPER_TINY + artifacts_path: Optional[Union[Path, str]] = None + + class PdfPipelineOptions(PaginatedPipelineOptions): """Options for the PDF pipeline.""" @@ -297,6 +307,7 @@ class PdfPipelineOptions(PaginatedPipelineOptions): ) -class PdfPipeline(str, Enum): +class ProcessingPipeline(str, Enum): STANDARD = "standard" VLM = "vlm" + ASR = "asr" diff --git a/docling/datamodel/pipeline_options_asr_model.py b/docling/datamodel/pipeline_options_asr_model.py new file mode 100644 index 00000000..20e2e453 --- /dev/null +++ b/docling/datamodel/pipeline_options_asr_model.py @@ -0,0 +1,57 @@ +from enum import Enum +from typing import Any, Dict, List, Literal, Optional, Union + +from pydantic import AnyUrl, BaseModel +from typing_extensions import deprecated + +from docling.datamodel.accelerator_options import AcceleratorDevice +from docling.datamodel.pipeline_options_vlm_model import ( + # InferenceFramework, + TransformersModelType, +) + + +class BaseAsrOptions(BaseModel): + kind: str + # prompt: str + + +class InferenceAsrFramework(str, Enum): + # MLX = "mlx" # disabled for now + # TRANSFORMERS = "transformers" # disabled for now + WHISPER = "whisper" + + +class InlineAsrOptions(BaseAsrOptions): + kind: Literal["inline_model_options"] = "inline_model_options" + + repo_id: str + + verbose: bool = False + timestamps: bool = True + + temperature: float = 0.0 + max_new_tokens: int = 256 + max_time_chunk: float = 30.0 + + torch_dtype: Optional[str] = None + supported_devices: List[AcceleratorDevice] = [ + AcceleratorDevice.CPU, + AcceleratorDevice.CUDA, + AcceleratorDevice.MPS, + ] + + @property + def repo_cache_folder(self) -> str: + return self.repo_id.replace("/", "--") + + +class InlineAsrNativeWhisperOptions(InlineAsrOptions): + inference_framework: InferenceAsrFramework = InferenceAsrFramework.WHISPER + + language: str = "en" + supported_devices: List[AcceleratorDevice] = [ + AcceleratorDevice.CPU, + AcceleratorDevice.CUDA, + ] + word_timestamps: bool = True diff --git a/docling/document_converter.py b/docling/document_converter.py index e553c083..1a0a9d75 100644 --- a/docling/document_converter.py +++ b/docling/document_converter.py @@ -19,6 +19,7 @@ from docling.backend.md_backend import MarkdownDocumentBackend from docling.backend.msexcel_backend import MsExcelDocumentBackend from docling.backend.mspowerpoint_backend import MsPowerpointDocumentBackend from docling.backend.msword_backend import MsWordDocumentBackend +from docling.backend.noop_backend import NoOpBackend from docling.backend.xml.jats_backend import JatsDocumentBackend from docling.backend.xml.uspto_backend import PatentUsptoDocumentBackend from docling.datamodel.base_models import ( @@ -41,6 +42,7 @@ from docling.datamodel.settings import ( settings, ) from docling.exceptions import ConversionError +from docling.pipeline.asr_pipeline import AsrPipeline from docling.pipeline.base_pipeline import BasePipeline from docling.pipeline.simple_pipeline import SimplePipeline from docling.pipeline.standard_pdf_pipeline import StandardPdfPipeline @@ -118,6 +120,11 @@ class PdfFormatOption(FormatOption): backend: Type[AbstractDocumentBackend] = DoclingParseV4DocumentBackend +class AudioFormatOption(FormatOption): + pipeline_cls: Type = AsrPipeline + backend: Type[AbstractDocumentBackend] = NoOpBackend + + def _get_default_option(format: InputFormat) -> FormatOption: format_to_default_options = { InputFormat.CSV: FormatOption( @@ -156,6 +163,7 @@ def _get_default_option(format: InputFormat) -> FormatOption: InputFormat.JSON_DOCLING: FormatOption( pipeline_cls=SimplePipeline, backend=DoclingJSONBackend ), + InputFormat.AUDIO: FormatOption(pipeline_cls=AsrPipeline, backend=NoOpBackend), } if (options := format_to_default_options.get(format)) is not None: return options diff --git a/docling/pipeline/asr_pipeline.py b/docling/pipeline/asr_pipeline.py new file mode 100644 index 00000000..94fa6341 --- /dev/null +++ b/docling/pipeline/asr_pipeline.py @@ -0,0 +1,253 @@ +import logging +import os +import re +from io import BytesIO +from pathlib import Path +from typing import List, Optional, Union, cast + +from docling_core.types.doc import DoclingDocument, DocumentOrigin + +# import whisper # type: ignore +# import librosa +# import numpy as np +# import soundfile as sf # type: ignore +from docling_core.types.doc.labels import DocItemLabel +from pydantic import BaseModel, Field, validator + +from docling.backend.abstract_backend import AbstractDocumentBackend +from docling.backend.noop_backend import NoOpBackend + +# from pydub import AudioSegment # type: ignore +# from transformers import WhisperForConditionalGeneration, WhisperProcessor, pipeline +from docling.datamodel.accelerator_options import ( + AcceleratorOptions, +) +from docling.datamodel.base_models import ( + ConversionStatus, + FormatToMimeType, +) +from docling.datamodel.document import ConversionResult, InputDocument +from docling.datamodel.pipeline_options import ( + AsrPipelineOptions, +) +from docling.datamodel.pipeline_options_asr_model import ( + InlineAsrNativeWhisperOptions, + # AsrResponseFormat, + InlineAsrOptions, +) +from docling.datamodel.pipeline_options_vlm_model import ( + InferenceFramework, +) +from docling.datamodel.settings import settings +from docling.pipeline.base_pipeline import BasePipeline +from docling.utils.accelerator_utils import decide_device +from docling.utils.profiling import ProfilingScope, TimeRecorder + +_log = logging.getLogger(__name__) + + +class _ConversationWord(BaseModel): + text: str + start_time: Optional[float] = Field( + None, description="Start time in seconds from video start" + ) + end_time: Optional[float] = Field( + None, ge=0, description="End time in seconds from video start" + ) + + +class _ConversationItem(BaseModel): + text: str + start_time: Optional[float] = Field( + None, description="Start time in seconds from video start" + ) + end_time: Optional[float] = Field( + None, ge=0, description="End time in seconds from video start" + ) + speaker_id: Optional[int] = Field(None, description="Numeric speaker identifier") + speaker: Optional[str] = Field( + None, description="Speaker name, defaults to speaker-{speaker_id}" + ) + words: Optional[list[_ConversationWord]] = Field( + None, description="Individual words with time-stamps" + ) + + def __lt__(self, other): + if not isinstance(other, _ConversationItem): + return NotImplemented + return self.start_time < other.start_time + + def __eq__(self, other): + if not isinstance(other, _ConversationItem): + return NotImplemented + return self.start_time == other.start_time + + def to_string(self) -> str: + """Format the conversation entry as a string""" + result = "" + if (self.start_time is not None) and (self.end_time is not None): + result += f"[time: {self.start_time}-{self.end_time}] " + + if self.speaker is not None: + result += f"[speaker:{self.speaker}] " + + result += self.text + return result + + +class _NativeWhisperModel: + def __init__( + self, + enabled: bool, + artifacts_path: Optional[Path], + accelerator_options: AcceleratorOptions, + asr_options: InlineAsrNativeWhisperOptions, + ): + """ + Transcriber using native Whisper. + """ + self.enabled = enabled + + _log.info(f"artifacts-path: {artifacts_path}") + _log.info(f"accelerator_options: {accelerator_options}") + + if self.enabled: + try: + import whisper # type: ignore + except ImportError: + raise ImportError( + "whisper is not installed. Please install it via `pip install openai-whisper` or do `uv sync --extra asr`." + ) + self.asr_options = asr_options + self.max_tokens = asr_options.max_new_tokens + self.temperature = asr_options.temperature + + self.device = decide_device( + accelerator_options.device, + supported_devices=asr_options.supported_devices, + ) + _log.info(f"Available device for Whisper: {self.device}") + + self.model_name = asr_options.repo_id + _log.info(f"loading _NativeWhisperModel({self.model_name})") + if artifacts_path is not None: + _log.info(f"loading {self.model_name} from {artifacts_path}") + self.model = whisper.load_model( + name=self.model_name, + device=self.device, + download_root=str(artifacts_path), + ) + else: + self.model = whisper.load_model( + name=self.model_name, device=self.device + ) + + self.verbose = asr_options.verbose + self.timestamps = asr_options.timestamps + self.word_timestamps = asr_options.word_timestamps + + def run(self, conv_res: ConversionResult) -> ConversionResult: + audio_path: Path = Path(conv_res.input.file).resolve() + + try: + conversation = self.transcribe(audio_path) + + # Ensure we have a proper DoclingDocument + origin = DocumentOrigin( + filename=conv_res.input.file.name or "audio.wav", + mimetype="audio/x-wav", + binary_hash=conv_res.input.document_hash, + ) + conv_res.document = DoclingDocument( + name=conv_res.input.file.stem or "audio.wav", origin=origin + ) + + for citem in conversation: + conv_res.document.add_text( + label=DocItemLabel.TEXT, text=citem.to_string() + ) + + conv_res.status = ConversionStatus.SUCCESS + return conv_res + + except Exception as exc: + _log.error(f"Audio tranciption has an error: {exc}") + + conv_res.status = ConversionStatus.FAILURE + return conv_res + + def transcribe(self, fpath: Path) -> list[_ConversationItem]: + result = self.model.transcribe( + str(fpath), verbose=self.verbose, word_timestamps=self.word_timestamps + ) + + convo: list[_ConversationItem] = [] + for _ in result["segments"]: + item = _ConversationItem( + start_time=_["start"], end_time=_["end"], text=_["text"], words=[] + ) + if "words" in _ and self.word_timestamps: + item.words = [] + for __ in _["words"]: + item.words.append( + _ConversationWord( + start_time=__["start"], + end_time=__["end"], + text=__["word"], + ) + ) + convo.append(item) + + return convo + + +class AsrPipeline(BasePipeline): + def __init__(self, pipeline_options: AsrPipelineOptions): + super().__init__(pipeline_options) + self.keep_backend = True + + self.pipeline_options: AsrPipelineOptions = pipeline_options + + artifacts_path: Optional[Path] = None + if pipeline_options.artifacts_path is not None: + artifacts_path = Path(pipeline_options.artifacts_path).expanduser() + elif settings.artifacts_path is not None: + artifacts_path = Path(settings.artifacts_path).expanduser() + + if artifacts_path is not None and not artifacts_path.is_dir(): + raise RuntimeError( + f"The value of {artifacts_path=} is not valid. " + "When defined, it must point to a folder containing all models required by the pipeline." + ) + + if isinstance(self.pipeline_options.asr_options, InlineAsrNativeWhisperOptions): + asr_options: InlineAsrNativeWhisperOptions = ( + self.pipeline_options.asr_options + ) + self._model = _NativeWhisperModel( + enabled=True, # must be always enabled for this pipeline to make sense. + artifacts_path=artifacts_path, + accelerator_options=pipeline_options.accelerator_options, + asr_options=asr_options, + ) + else: + _log.error(f"No model support for {self.pipeline_options.asr_options}") + + def _determine_status(self, conv_res: ConversionResult) -> ConversionStatus: + status = ConversionStatus.SUCCESS + return status + + @classmethod + def get_default_options(cls) -> AsrPipelineOptions: + return AsrPipelineOptions() + + def _build_document(self, conv_res: ConversionResult) -> ConversionResult: + _log.info(f"start _build_document in AsrPipeline: {conv_res.input.file}") + with TimeRecorder(conv_res, "doc_build", scope=ProfilingScope.DOCUMENT): + self._model.run(conv_res=conv_res) + + return conv_res + + @classmethod + def is_backend_supported(cls, backend: AbstractDocumentBackend): + return isinstance(backend, NoOpBackend) diff --git a/docs/examples/minimal_asr_pipeline.py b/docs/examples/minimal_asr_pipeline.py new file mode 100644 index 00000000..72c12769 --- /dev/null +++ b/docs/examples/minimal_asr_pipeline.py @@ -0,0 +1,56 @@ +from pathlib import Path + +from docling_core.types.doc import DoclingDocument + +from docling.datamodel import asr_model_specs +from docling.datamodel.base_models import ConversionStatus, InputFormat +from docling.datamodel.document import ConversionResult +from docling.datamodel.pipeline_options import AsrPipelineOptions +from docling.document_converter import AudioFormatOption, DocumentConverter +from docling.pipeline.asr_pipeline import AsrPipeline + + +def get_asr_converter(): + """Create a DocumentConverter configured for ASR with whisper_turbo model.""" + pipeline_options = AsrPipelineOptions() + pipeline_options.asr_options = asr_model_specs.WHISPER_TURBO + + converter = DocumentConverter( + format_options={ + InputFormat.AUDIO: AudioFormatOption( + pipeline_cls=AsrPipeline, + pipeline_options=pipeline_options, + ) + } + ) + return converter + + +def asr_pipeline_conversion(audio_path: Path) -> DoclingDocument: + """ASR pipeline conversion using whisper_turbo""" + # Check if the test audio file exists + assert audio_path.exists(), f"Test audio file not found: {audio_path}" + + converter = get_asr_converter() + + # Convert the audio file + result: ConversionResult = converter.convert(audio_path) + + # Verify conversion was successful + assert result.status == ConversionStatus.SUCCESS, ( + f"Conversion failed with status: {result.status}" + ) + return result.document + + +if __name__ == "__main__": + audio_path = Path("tests/data/audio/sample_10s.mp3") + + doc = asr_pipeline_conversion(audio_path=audio_path) + print(doc.export_to_markdown()) + + # Expected output: + # + # [time: 0.0-4.0] Shakespeare on Scenery by Oscar Wilde + # + # [time: 5.28-9.96] This is a LibriVox recording. All LibriVox recordings are in the public domain. diff --git a/docs/index.md b/docs/index.md index ad9ac80e..7ec40bfa 100644 --- a/docs/index.md +++ b/docs/index.md @@ -20,14 +20,15 @@ Docling simplifies document processing, parsing diverse formats — including ad ## Features -* 🗂️ Parsing of [multiple document formats][supported_formats] incl. PDF, DOCX, XLSX, HTML, images, and more +* 🗂️ Parsing of [multiple document formats][supported_formats] incl. PDF, DOCX, PPTX, XLSX, HTML, WAV, MP3, images (PNG, TIFF, JPEG, ...), and more * 📑 Advanced PDF understanding incl. page layout, reading order, table structure, code, formulas, image classification, and more * 🧬 Unified, expressive [DoclingDocument][docling_document] representation format -* ↪️ Various [export formats][supported_formats] and options, including Markdown, HTML, and lossless JSON +* ↪️ Various [export formats][supported_formats] and options, including Markdown, HTML, [DocTags](https://arxiv.org/abs/2503.11576) and lossless JSON * 🔒 Local execution capabilities for sensitive data and air-gapped environments * 🤖 Plug-and-play [integrations][integrations] incl. LangChain, LlamaIndex, Crew AI & Haystack for agentic AI * 🔍 Extensive OCR support for scanned PDFs and images -* 🥚 Support of several Visual Language Models ([SmolDocling](https://huggingface.co/ds4sd/SmolDocling-256M-preview)) 🔥 +* 👓 Support of several Visual Language Models ([SmolDocling](https://huggingface.co/ds4sd/SmolDocling-256M-preview)) +* 🎙️ Support for Audio with Automatic Speech Recognition (ASR) models * 💻 Simple and convenient CLI ### Coming soon diff --git a/mkdocs.yml b/mkdocs.yml index 4f82c19e..d1c67532 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -80,6 +80,7 @@ nav: - "VLM pipeline with SmolDocling": examples/minimal_vlm_pipeline.py - "VLM pipeline with remote model": examples/vlm_pipeline_api_model.py - "VLM comparison": examples/compare_vlm_models.py + - "ASR pipeline with Whisper": examples/minimal_asr_pipeline.py - "Figure export": examples/export_figures.py - "Table export": examples/export_tables.py - "Multimodal export": examples/export_multimodal.py diff --git a/pyproject.toml b/pyproject.toml index aade0d86..74d9e568 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "docling" -version = "2.37.0" # DO NOT EDIT, updated automatically +version = "2.39.0" # DO NOT EDIT, updated automatically description = "SDK and CLI for parsing PDF, DOCX, HTML, and more, to a unified document representation for powering downstream workflows such as gen AI applications." license = "MIT" keywords = [ @@ -44,7 +44,8 @@ authors = [ requires-python = '>=3.9,<4.0' dependencies = [ 'pydantic (>=2.0.0,<3.0.0)', - 'docling-core[chunking] (>=2.29.0,<3.0.0)', + 'docling-core[chunking] (>=2.39.0,<3.0.0)', + 'docling-ibm-models (>=3.4.4,<4.0.0)', 'docling-parse (>=4.0.0,<5.0.0)', 'docling-ibm-models (>=3.6.0,<4)', 'filetype (>=1.2.0,<2.0.0)', @@ -99,6 +100,9 @@ rapidocr = [ # 'onnxruntime (>=1.7.0,<2.0.0) ; python_version >= "3.10"', # 'onnxruntime (>=1.7.0,<1.20.0) ; python_version < "3.10"', ] +asr = [ + "openai-whisper>=20240930", +] [dependency-groups] dev = [ @@ -145,6 +149,9 @@ constraints = [ package = true default-groups = "all" +[tool.uv.sources] +openai-whisper = { git = "https://github.com/openai/whisper.git", rev = "dd985ac4b90cafeef8712f2998d62c59c3e62d22" } + [tool.setuptools.packages.find] include = ["docling*"] diff --git a/tests/data/audio/sample_10s.mp3 b/tests/data/audio/sample_10s.mp3 new file mode 100644 index 00000000..93a7ec73 Binary files /dev/null and b/tests/data/audio/sample_10s.mp3 differ diff --git a/tests/data/groundtruth/docling_v1/2203.01017v2.doctags.txt b/tests/data/groundtruth/docling_v1/2203.01017v2.doctags.txt index 1214cdf6..d047d938 100644 --- a/tests/data/groundtruth/docling_v1/2203.01017v2.doctags.txt +++ b/tests/data/groundtruth/docling_v1/2203.01017v2.doctags.txt @@ -160,8 +160,8 @@ TableFormer95.490.193.6 Table 4: Results of structure with content retrieved using cell detection on PubTabNet. In all cases the input is PDF documents with cropped tables. -- a. -- Red - PDF cells, Green - predicted bounding boxes, Blue - post-processed predictions matched to PDF cells +a. +Red - PDF cells, Green - predicted bounding boxes, Blue - post-processed predictions matched to PDF cells Japanese language (previously unseen by TableFormer): Example table from FinTabNet:
@@ -216,7 +216,7 @@ In this paper, we presented TableFormer an end-to-end transformer based approach to predict table structures and bounding boxes of cells from an image. This approach enables us to recreate the table structure, and extract the cell content from PDF or OCR by using bounding boxes. Additionally, it provides the versatility required in real-world scenarios when dealing with various types of PDF documents, and languages. Furthermore, our method outperforms all state-of-the-arts with a wide margin. Finally, we introduce "SynthTabNet" a challenging synthetically generated dataset that reinforces missing characteristics from other datasets. References [1] Nicolas Carion, Francisco Massa, Gabriel Synnaeve, Nicolas Usunier, Alexander Kirillov, and Sergey Zagoruyko. End-to- -- end object detection with transformers. In Andrea Vedaldi, Horst Bischof, Thomas Brox, and Jan-Michael Frahm, editors, Computer Vision - ECCV 2020 , pages 213-229, Cham, 2020. Springer International Publishing. 5 +end object detection with transformers. In Andrea Vedaldi, Horst Bischof, Thomas Brox, and Jan-Michael Frahm, editors, Computer Vision - ECCV 2020 , pages 213-229, Cham, 2020. Springer International Publishing. 5 [2] Zewen Chi, Heyan Huang, Heng-Da Xu, Houjin Yu, Wanxuan Yin, and Xian-Ling Mao. Complicated table structure recognition. arXiv preprint arXiv:1908.04729 , 2019. 3 [3] Bertrand Couasnon and Aurelie Lemaitre. Recognition of Tables and Forms , pages 647-677. Springer London, London, 2014. 2 [4] Herv´e D´ejean, Jean-Luc Meunier, Liangcai Gao, Yilun Huang, Yu Fang, Florian Kleber, and Eva-Maria Lang. ICDAR 2019 Competition on Table Detection and Recognition (cTDaR), Apr. 2019. http://sac.founderit.com/. 2 @@ -254,7 +254,7 @@ [35] Quanzeng You, Hailin Jin, Zhaowen Wang, Chen Fang, and Jiebo Luo. Image captioning with semantic attention. In Proceedings of the IEEE conference on computer vision and pattern recognition , pages 4651-4659, 2016. 4 [36] Xinyi Zheng, Doug Burdick, Lucian Popa, Peter Zhong, and Nancy Xin Ru Wang. Global table extractor (gte): A framework for joint table identification and cell structure recognition using visual context. Winter Conference for Applications in Computer Vision (WACV) , 2021. 2, 3 [37] Xu Zhong, Elaheh ShafieiBavani, and Antonio Jimeno Yepes. Image-based table recognition: Data, model, -- and evaluation. In Andrea Vedaldi, Horst Bischof, Thomas Brox, and Jan-Michael Frahm, editors, Computer Vision ECCV 2020 , pages 564-580, Cham, 2020. Springer International Publishing. 2, 3, 7 +and evaluation. In Andrea Vedaldi, Horst Bischof, Thomas Brox, and Jan-Michael Frahm, editors, Computer Vision ECCV 2020 , pages 564-580, Cham, 2020. Springer International Publishing. 2, 3, 7 [38] Xu Zhong, Jianbin Tang, and Antonio Jimeno Yepes. Publaynet: Largest dataset ever for document layout analysis. In 2019 International Conference on Document Analysis and Recognition (ICDAR) , pages 1015-1022, 2019. 1 TableFormer: Table Structure Understanding with Transformers Supplementary Material 1. Details on the datasets @@ -285,7 +285,7 @@ 1. Get the minimal grid dimensions - number of rows and columns for the predicted table structure. This represents the most granular grid for the underlying table structure. 2. Generate pair-wise matches between the bounding boxes of the PDF cells and the predicted cells. The Intersection Over Union (IOU) metric is used to evaluate the quality of the matches. 3. Use a carefully selected IOU threshold to designate the matches as "good" ones and "bad" ones. -- 3.a. If all IOU scores in a column are below the threshold, discard all predictions (structure and bounding boxes) for that column. +3.a. If all IOU scores in a column are below the threshold, discard all predictions (structure and bounding boxes) for that column. 4. Find the best-fitting content alignment for the predicted cells with good IOU per each column. The alignment of the column can be identified by the following formula: where c is one of { left, centroid, right } and x$_{c}$ is the xcoordinate for the corresponding point. 5. Use the alignment computed in step 4, to compute the median x -coordinate for all table columns and the me- @@ -294,10 +294,10 @@ 8. In some rare occasions, we have noticed that TableFormer can confuse a single column as two. When the postprocessing steps are applied, this results with two predicted columns pointing to the same PDF column. In such case we must de-duplicate the columns according to highest total column intersection score. 9. Pick up the remaining orphan cells. There could be cases, when after applying all the previous post-processing steps, some PDF cells could still remain without any match to predicted cells. However, it is still possible to deduce the correct matching for an orphan PDF cell by mapping its bounding box on the geometry of the grid. This mapping decides if the content of the orphan cell will be appended to an already matched table cell, or a new table cell should be created to match with the orphan. 9a. Compute the top and bottom boundary of the horizontal band for each grid row (min/max y coordinates per row). -- 9b. Intersect the orphan's bounding box with the row bands, and map the cell to the closest grid row. -- 9c. Compute the left and right boundary of the vertical band for each grid column (min/max x coordinates per column). -- 9d. Intersect the orphan's bounding box with the column bands, and map the cell to the closest grid column. -- 9e. If the table cell under the identified row and column is not empty, extend its content with the content of the or- +9b. Intersect the orphan's bounding box with the row bands, and map the cell to the closest grid row. +9c. Compute the left and right boundary of the vertical band for each grid column (min/max x coordinates per column). +9d. Intersect the orphan's bounding box with the column bands, and map the cell to the closest grid column. +9e. If the table cell under the identified row and column is not empty, extend its content with the content of the or- phan cell. 9f. Otherwise create a new structural cell and match it wit the orphan cell. Aditional images with examples of TableFormer predictions and post-processing can be found below. diff --git a/tests/data/groundtruth/docling_v1/2203.01017v2.json b/tests/data/groundtruth/docling_v1/2203.01017v2.json index 6f58b040..e3b8b040 100644 --- a/tests/data/groundtruth/docling_v1/2203.01017v2.json +++ b/tests/data/groundtruth/docling_v1/2203.01017v2.json @@ -2221,7 +2221,7 @@ "__ref_s3_data": null } ], - "text": "- a.", + "text": "a.", "type": "paragraph", "payload": null, "name": "List-item", @@ -2244,7 +2244,7 @@ "__ref_s3_data": null } ], - "text": "- Red - PDF cells, Green - predicted bounding boxes, Blue - post-processed predictions matched to PDF cells", + "text": "Red - PDF cells, Green - predicted bounding boxes, Blue - post-processed predictions matched to PDF cells", "type": "paragraph", "payload": null, "name": "List-item", @@ -2578,7 +2578,7 @@ "__ref_s3_data": null } ], - "text": "- end object detection with transformers. In Andrea Vedaldi, Horst Bischof, Thomas Brox, and Jan-Michael Frahm, editors, Computer Vision - ECCV 2020 , pages 213-229, Cham, 2020. Springer International Publishing. 5", + "text": "end object detection with transformers. In Andrea Vedaldi, Horst Bischof, Thomas Brox, and Jan-Michael Frahm, editors, Computer Vision - ECCV 2020 , pages 213-229, Cham, 2020. Springer International Publishing. 5", "type": "paragraph", "payload": null, "name": "List-item", @@ -3452,7 +3452,7 @@ "__ref_s3_data": null } ], - "text": "- and evaluation. In Andrea Vedaldi, Horst Bischof, Thomas Brox, and Jan-Michael Frahm, editors, Computer Vision ECCV 2020 , pages 564-580, Cham, 2020. Springer International Publishing. 2, 3, 7", + "text": "and evaluation. In Andrea Vedaldi, Horst Bischof, Thomas Brox, and Jan-Michael Frahm, editors, Computer Vision ECCV 2020 , pages 564-580, Cham, 2020. Springer International Publishing. 2, 3, 7", "type": "paragraph", "payload": null, "name": "List-item", @@ -4092,7 +4092,7 @@ "__ref_s3_data": null } ], - "text": "- 3.a. If all IOU scores in a column are below the threshold, discard all predictions (structure and bounding boxes) for that column.", + "text": "3.a. If all IOU scores in a column are below the threshold, discard all predictions (structure and bounding boxes) for that column.", "type": "paragraph", "payload": null, "name": "List-item", @@ -4322,7 +4322,7 @@ "__ref_s3_data": null } ], - "text": "- 9b. Intersect the orphan's bounding box with the row bands, and map the cell to the closest grid row.", + "text": "9b. Intersect the orphan's bounding box with the row bands, and map the cell to the closest grid row.", "type": "paragraph", "payload": null, "name": "List-item", @@ -4345,7 +4345,7 @@ "__ref_s3_data": null } ], - "text": "- 9c. Compute the left and right boundary of the vertical band for each grid column (min/max x coordinates per column).", + "text": "9c. Compute the left and right boundary of the vertical band for each grid column (min/max x coordinates per column).", "type": "paragraph", "payload": null, "name": "List-item", @@ -4368,7 +4368,7 @@ "__ref_s3_data": null } ], - "text": "- 9d. Intersect the orphan's bounding box with the column bands, and map the cell to the closest grid column.", + "text": "9d. Intersect the orphan's bounding box with the column bands, and map the cell to the closest grid column.", "type": "paragraph", "payload": null, "name": "List-item", @@ -4391,7 +4391,7 @@ "__ref_s3_data": null } ], - "text": "- 9e. If the table cell under the identified row and column is not empty, extend its content with the content of the or-", + "text": "9e. If the table cell under the identified row and column is not empty, extend its content with the content of the or-", "type": "paragraph", "payload": null, "name": "List-item", diff --git a/tests/data/groundtruth/docling_v1/2203.01017v2.md b/tests/data/groundtruth/docling_v1/2203.01017v2.md index 3a9a4e3b..2eb1843f 100644 --- a/tests/data/groundtruth/docling_v1/2203.01017v2.md +++ b/tests/data/groundtruth/docling_v1/2203.01017v2.md @@ -216,9 +216,9 @@ Table 4: Results of structure with content retrieved using cell detection on Pub | EDD | 91.2 | 85.4 | 88.3 | | TableFormer | 95.4 | 90.1 | 93.6 | -- a. +a. -- Red - PDF cells, Green - predicted bounding boxes, Blue - post-processed predictions matched to PDF cells +Red - PDF cells, Green - predicted bounding boxes, Blue - post-processed predictions matched to PDF cells ## Japanese language (previously unseen by TableFormer): @@ -272,7 +272,7 @@ In this paper, we presented TableFormer an end-to-end transformer based approach [1] Nicolas Carion, Francisco Massa, Gabriel Synnaeve, Nicolas Usunier, Alexander Kirillov, and Sergey Zagoruyko. End-to- -- end object detection with transformers. In Andrea Vedaldi, Horst Bischof, Thomas Brox, and Jan-Michael Frahm, editors, Computer Vision - ECCV 2020 , pages 213-229, Cham, 2020. Springer International Publishing. 5 +end object detection with transformers. In Andrea Vedaldi, Horst Bischof, Thomas Brox, and Jan-Michael Frahm, editors, Computer Vision - ECCV 2020 , pages 213-229, Cham, 2020. Springer International Publishing. 5 [2] Zewen Chi, Heyan Huang, Heng-Da Xu, Houjin Yu, Wanxuan Yin, and Xian-Ling Mao. Complicated table structure recognition. arXiv preprint arXiv:1908.04729 , 2019. 3 @@ -348,7 +348,7 @@ Computer Vision and Pattern Recognition , pages 658-666, 2019. 6 [37] Xu Zhong, Elaheh ShafieiBavani, and Antonio Jimeno Yepes. Image-based table recognition: Data, model, -- and evaluation. In Andrea Vedaldi, Horst Bischof, Thomas Brox, and Jan-Michael Frahm, editors, Computer Vision ECCV 2020 , pages 564-580, Cham, 2020. Springer International Publishing. 2, 3, 7 +and evaluation. In Andrea Vedaldi, Horst Bischof, Thomas Brox, and Jan-Michael Frahm, editors, Computer Vision ECCV 2020 , pages 564-580, Cham, 2020. Springer International Publishing. 2, 3, 7 [38] Xu Zhong, Jianbin Tang, and Antonio Jimeno Yepes. Publaynet: Largest dataset ever for document layout analysis. In 2019 International Conference on Document Analysis and Recognition (ICDAR) , pages 1015-1022, 2019. 1 @@ -403,7 +403,7 @@ Here is a step-by-step description of the prediction postprocessing: 3. Use a carefully selected IOU threshold to designate the matches as "good" ones and "bad" ones. -- 3.a. If all IOU scores in a column are below the threshold, discard all predictions (structure and bounding boxes) for that column. +3.a. If all IOU scores in a column are below the threshold, discard all predictions (structure and bounding boxes) for that column. 4. Find the best-fitting content alignment for the predicted cells with good IOU per each column. The alignment of the column can be identified by the following formula: @@ -421,13 +421,13 @@ where c is one of { left, centroid, right } and x$_{c}$ is the xcoordinate for t 9a. Compute the top and bottom boundary of the horizontal band for each grid row (min/max y coordinates per row). -- 9b. Intersect the orphan's bounding box with the row bands, and map the cell to the closest grid row. +9b. Intersect the orphan's bounding box with the row bands, and map the cell to the closest grid row. -- 9c. Compute the left and right boundary of the vertical band for each grid column (min/max x coordinates per column). +9c. Compute the left and right boundary of the vertical band for each grid column (min/max x coordinates per column). -- 9d. Intersect the orphan's bounding box with the column bands, and map the cell to the closest grid column. +9d. Intersect the orphan's bounding box with the column bands, and map the cell to the closest grid column. -- 9e. If the table cell under the identified row and column is not empty, extend its content with the content of the or- +9e. If the table cell under the identified row and column is not empty, extend its content with the content of the or- phan cell. diff --git a/tests/data/groundtruth/docling_v1/2305.03393v1.doctags.txt b/tests/data/groundtruth/docling_v1/2305.03393v1.doctags.txt index 7b832301..8d9385d0 100644 --- a/tests/data/groundtruth/docling_v1/2305.03393v1.doctags.txt +++ b/tests/data/groundtruth/docling_v1/2305.03393v1.doctags.txt @@ -42,11 +42,11 @@ 4.1 Language Definition In Figure 3, we illustrate how the OTSL is defined. In essence, the OTSL defines only 5 tokens that directly describe a tabular structure based on an atomic 2D grid. The OTSL vocabulary is comprised of the following tokens: -- -"C" cell a new table cell that either has or does not have cell content -- -"L" cell left-looking cell , merging with the left neighbor cell to create a span -- -"U" cell up-looking cell , merging with the upper neighbor cell to create a span -- -"X" cell cross cell , to merge with both left and upper neighbor cells -- -"NL" new-line , switch to the next row. +-"C" cell a new table cell that either has or does not have cell content +-"L" cell left-looking cell , merging with the left neighbor cell to create a span +-"U" cell up-looking cell , merging with the upper neighbor cell to create a span +-"X" cell cross cell , to merge with both left and upper neighbor cells +-"NL" new-line , switch to the next row. A notable attribute of OTSL is that it has the capability of achieving lossless conversion to HTML.
@@ -58,7 +58,7 @@ 1. Left-looking cell rule : The left neighbour of an "L" cell must be either another "L" cell or a "C" cell. 2. Up-looking cell rule : The upper neighbour of a "U" cell must be either another "U" cell or a "C" cell. 3. Cross cell rule : -- The left neighbour of an "X" cell must be either another "X" cell or a "U" cell, and the upper neighbour of an "X" cell must be either another "X" cell or an "L" cell. +The left neighbour of an "X" cell must be either another "X" cell or a "U" cell, and the upper neighbour of an "X" cell must be either another "X" cell or an "L" cell. 4. First row rule : Only "L" cells and "C" cells are allowed in the first row. 5. First column rule : Only "U" cells and "C" cells are allowed in the first column. 6. Rectangular rule : The table representation is always rectangular - all rows must have an equal number of tokens, terminated with "NL" token. diff --git a/tests/data/groundtruth/docling_v1/2305.03393v1.json b/tests/data/groundtruth/docling_v1/2305.03393v1.json index a8c15f2b..e50132ab 100644 --- a/tests/data/groundtruth/docling_v1/2305.03393v1.json +++ b/tests/data/groundtruth/docling_v1/2305.03393v1.json @@ -937,7 +937,7 @@ "__ref_s3_data": null } ], - "text": "- -\"C\" cell a new table cell that either has or does not have cell content", + "text": "-\"C\" cell a new table cell that either has or does not have cell content", "type": "paragraph", "payload": null, "name": "List-item", @@ -960,7 +960,7 @@ "__ref_s3_data": null } ], - "text": "- -\"L\" cell left-looking cell , merging with the left neighbor cell to create a span", + "text": "-\"L\" cell left-looking cell , merging with the left neighbor cell to create a span", "type": "paragraph", "payload": null, "name": "List-item", @@ -983,7 +983,7 @@ "__ref_s3_data": null } ], - "text": "- -\"U\" cell up-looking cell , merging with the upper neighbor cell to create a span", + "text": "-\"U\" cell up-looking cell , merging with the upper neighbor cell to create a span", "type": "paragraph", "payload": null, "name": "List-item", @@ -1006,7 +1006,7 @@ "__ref_s3_data": null } ], - "text": "- -\"X\" cell cross cell , to merge with both left and upper neighbor cells", + "text": "-\"X\" cell cross cell , to merge with both left and upper neighbor cells", "type": "paragraph", "payload": null, "name": "List-item", @@ -1029,7 +1029,7 @@ "__ref_s3_data": null } ], - "text": "- -\"NL\" new-line , switch to the next row.", + "text": "-\"NL\" new-line , switch to the next row.", "type": "paragraph", "payload": null, "name": "List-item", @@ -1218,7 +1218,7 @@ "__ref_s3_data": null } ], - "text": "- The left neighbour of an \"X\" cell must be either another \"X\" cell or a \"U\" cell, and the upper neighbour of an \"X\" cell must be either another \"X\" cell or an \"L\" cell.", + "text": "The left neighbour of an \"X\" cell must be either another \"X\" cell or a \"U\" cell, and the upper neighbour of an \"X\" cell must be either another \"X\" cell or an \"L\" cell.", "type": "paragraph", "payload": null, "name": "List-item", diff --git a/tests/data/groundtruth/docling_v1/2305.03393v1.md b/tests/data/groundtruth/docling_v1/2305.03393v1.md index a3686914..91dd0e8a 100644 --- a/tests/data/groundtruth/docling_v1/2305.03393v1.md +++ b/tests/data/groundtruth/docling_v1/2305.03393v1.md @@ -70,15 +70,15 @@ In Figure 3, we illustrate how the OTSL is defined. In essence, the OTSL defines The OTSL vocabulary is comprised of the following tokens: -- -"C" cell a new table cell that either has or does not have cell content +-"C" cell a new table cell that either has or does not have cell content -- -"L" cell left-looking cell , merging with the left neighbor cell to create a span +-"L" cell left-looking cell , merging with the left neighbor cell to create a span -- -"U" cell up-looking cell , merging with the upper neighbor cell to create a span +-"U" cell up-looking cell , merging with the upper neighbor cell to create a span -- -"X" cell cross cell , to merge with both left and upper neighbor cells +-"X" cell cross cell , to merge with both left and upper neighbor cells -- -"NL" new-line , switch to the next row. +-"NL" new-line , switch to the next row. A notable attribute of OTSL is that it has the capability of achieving lossless conversion to HTML. @@ -95,7 +95,7 @@ The OTSL representation follows these syntax rules: ## 3. Cross cell rule : -- The left neighbour of an "X" cell must be either another "X" cell or a "U" cell, and the upper neighbour of an "X" cell must be either another "X" cell or an "L" cell. +The left neighbour of an "X" cell must be either another "X" cell or a "U" cell, and the upper neighbour of an "X" cell must be either another "X" cell or an "L" cell. 4. First row rule : Only "L" cells and "C" cells are allowed in the first row. diff --git a/tests/data/groundtruth/docling_v1/redp5110_sampled.doctags.txt b/tests/data/groundtruth/docling_v1/redp5110_sampled.doctags.txt index 0d8d20eb..a2a164cb 100644 --- a/tests/data/groundtruth/docling_v1/redp5110_sampled.doctags.txt +++ b/tests/data/groundtruth/docling_v1/redp5110_sampled.doctags.txt @@ -17,10 +17,10 @@
Highlights -- GLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH -- GLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH -- GLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH -- GLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH +GLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH +GLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH +GLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH +GLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH
@@ -33,15 +33,15 @@ With combined experiences and direct access to development groups, we're the experts in IBM DB2® for i. The DB2 for i Center of Excellence (CoE) can help you achieve-perhaps reexamine and exceed-your business requirements and gain more confidence and satisfaction in IBM product data management products and solutions. Who we are, some of what we do Global CoE engagements cover topics including: -- r Database performance and scalability -- r Advanced SQL knowledge and skills transfer -- r Business intelligence and analytics -- r DB2 Web Query -- r Query/400 modernization for better reporting and analysis capabilities -- r Database modernization and re-engineering -- r Data-centric architecture and design -- r Extremely large database and overcoming limits to growth -- r ISV education and enablement +r Database performance and scalability +r Advanced SQL knowledge and skills transfer +r Business intelligence and analytics +r DB2 Web Query +r Query/400 modernization for better reporting and analysis capabilities +r Database modernization and re-engineering +r Data-centric architecture and design +r Extremely large database and overcoming limits to growth +r ISV education and enablement Preface This IBMfi Redpaper™ publication provides information about the IBM i 7.2 feature of IBM DB2fi for i Row and Column Access Control (RCAC). It offers a broad description of the function and advantages of controlling access to data in a comprehensive and transparent way. This publication helps you understand the capabilities of RCAC and provides examples of defining, creating, and implementing the row permissions and column masks in a relational database environment. This paper is intended for database engineers, data-centric application developers, and security officers who want to design and implement RCAC as a part of their data control and governance policy. A solid background in IBM i object level security, DB2 for i relational database concepts, and SQL is assumed. @@ -64,15 +64,15 @@ Recent news headlines are filled with reports of data breaches and cyber-attacks impacting global businesses of all sizes. The Identity Theft Resource Center$^{1}$ reports that almost 5000 data breaches have occurred since 2005, exposing over 600 million records of data. The financial cost of these data breaches is skyrocketing. Studies from the Ponemon Institute$^{2}$ revealed that the average cost of a data breach increased in 2013 by 15% globally and resulted in a brand equity loss of $9.4 million per attack. The average cost that is incurred for each lost record containing sensitive information increased more than 9% to $145 per record. Businesses must make a serious effort to secure their data and recognize that securing information assets is a cost of doing business. In many parts of the world and in many industries, securing the data is required by law and subject to audits. Data security is no longer an option; it is a requirement. This chapter describes how you can secure and protect data in DB2 for i. The following topics are covered in this chapter: -- GLYPH Security fundamentals -- GLYPH Current state of IBM i security -- GLYPH DB2 for i security controls +GLYPH Security fundamentals +GLYPH Current state of IBM i security +GLYPH DB2 for i security controls 1.1 Security fundamentals Before reviewing database security techniques, there are two fundamental steps in securing information assets that must be described: -- GLYPH First, and most important, is the definition of a company's security policy . Without a security policy, there is no definition of what are acceptable practices for using, accessing, and storing information by who, what, when, where, and how. A security policy should minimally address three things: confidentiality, integrity, and availability. -- The monitoring and assessment of adherence to the security policy determines whether your security strategy is working. Often, IBM security consultants are asked to perform security assessments for companies without regard to the security policy. Although these assessments can be useful for observing how the system is defined and how data is being accessed, they cannot determine the level of security without a security policy. Without a security policy, it really is not an assessment as much as it is a baseline for monitoring the changes in the security settings that are captured. +GLYPH First, and most important, is the definition of a company's security policy . Without a security policy, there is no definition of what are acceptable practices for using, accessing, and storing information by who, what, when, where, and how. A security policy should minimally address three things: confidentiality, integrity, and availability. +The monitoring and assessment of adherence to the security policy determines whether your security strategy is working. Often, IBM security consultants are asked to perform security assessments for companies without regard to the security policy. Although these assessments can be useful for observing how the system is defined and how data is being accessed, they cannot determine the level of security without a security policy. Without a security policy, it really is not an assessment as much as it is a baseline for monitoring the changes in the security settings that are captured. A security policy is what defines whether the system and its settings are secure (or not). -- GLYPH The second fundamental in securing data assets is the use of resource security . If implemented properly, resource security prevents data breaches from both internal and external intrusions. Resource security controls are closely tied to the part of the security policy that defines who should have access to what information resources. A hacker might be good enough to get through your company firewalls and sift his way through to your system, but if they do not have explicit access to your database, the hacker cannot compromise your information assets. +GLYPH The second fundamental in securing data assets is the use of resource security . If implemented properly, resource security prevents data breaches from both internal and external intrusions. Resource security controls are closely tied to the part of the security policy that defines who should have access to what information resources. A hacker might be good enough to get through your company firewalls and sift his way through to your system, but if they do not have explicit access to your database, the hacker cannot compromise your information assets. With your eyes now open to the importance of securing information assets, the rest of this chapter reviews the methods that are available for securing database resources on IBM i. 1.2 Current state of IBM i security Because of the inherently secure nature of IBM i, many clients rely on the default system settings to protect their business data that is stored in DB2 for i. In most cases, this means no data protection because the default setting for the Create default public authority (QCRTAUT) system value is *CHANGE. @@ -90,9 +90,9 @@ Figure 1-2 Existing row and column controls 2.1.6 Change Function Usage CL command The following CL commands can be used to work with, display, or change function usage IDs: -- GLYPH Work Function Usage ( WRKFCNUSG ) -- GLYPH Change Function Usage ( CHGFCNUSG ) -- GLYPH Display Function Usage ( DSPFCNUSG ) +GLYPH Work Function Usage ( WRKFCNUSG ) +GLYPH Change Function Usage ( CHGFCNUSG ) +GLYPH Display Function Usage ( DSPFCNUSG ) For example, the following CHGFCNUSG command shows granting authorization to user HBEDOYA to administer and manage RCAC rules: CHGFCNUSG FCNID(QIBM_DB_SECADM) USER(HBEDOYA) USAGE(*ALLOWED) 2.1.7 Verifying function usage IDs for RCAC with the FUNCTION_USAGE view @@ -165,11 +165,11 @@ Table 3-1 Special registers and their corresponding values Figure 3-5 shows the difference in the special register values when an adopted authority is used: -- GLYPH A user connects to the server using the user profile ALICE. -- GLYPH USER and CURRENT USER initially have the same value of ALICE. -- GLYPH ALICE calls an SQL procedure that is named proc1, which is owned by user profile JOE and was created to adopt JOE's authority when it is called. -- GLYPH While the procedure is running, the special register USER still contains the value of ALICE because it excludes any adopted authority. The special register CURRENT USER contains the value of JOE because it includes any adopted authority. -- GLYPH When proc1 ends, the session reverts to its original state with both USER and CURRENT USER having the value of ALICE. +GLYPH A user connects to the server using the user profile ALICE. +GLYPH USER and CURRENT USER initially have the same value of ALICE. +GLYPH ALICE calls an SQL procedure that is named proc1, which is owned by user profile JOE and was created to adopt JOE's authority when it is called. +GLYPH While the procedure is running, the special register USER still contains the value of ALICE because it excludes any adopted authority. The special register CURRENT USER contains the value of JOE because it includes any adopted authority. +GLYPH When proc1 ends, the session reverts to its original state with both USER and CURRENT USER having the value of ALICE.
Figure 3-5 Special registers and adopted authority @@ -206,11 +206,11 @@ CASE WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'HR', 'EMP' ) = 1 THEN EMPLOYEES . DATE_OF_BIRTH WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1 AND SESSION_USER = EMPLOYEES . USER_ID THEN EMPLOYEES . DATE_OF_BIRTH WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1 AND SESSION_USER <> EMPLOYEES . USER_ID THEN ( 9999 || '-' || MONTH ( EMPLOYEES . DATE_OF_BIRTH ) || '-' || DAY (EMPLOYEES.DATE_OF_BIRTH )) ELSE NULL END ENABLE ; 2. The other column to mask in this example is the TAX_ID information. In this example, the rules to enforce include the following ones: -- -Human Resources can see the unmasked TAX_ID of the employees. -- -Employees can see only their own unmasked TAX_ID. -- -Managers see a masked version of TAX_ID with the first five characters replaced with the X character (for example, XXX-XX-1234). -- -Any other person sees the entire TAX_ID as masked, for example, XXX-XX-XXXX. -- To implement this column mask, run the SQL statement that is shown in Example 3-9. +-Human Resources can see the unmasked TAX_ID of the employees. +-Employees can see only their own unmasked TAX_ID. +-Managers see a masked version of TAX_ID with the first five characters replaced with the X character (for example, XXX-XX-1234). +-Any other person sees the entire TAX_ID as masked, for example, XXX-XX-XXXX. +To implement this column mask, run the SQL statement that is shown in Example 3-9. CREATE MASK HR_SCHEMA.MASK_TAX_ID_ON_EMPLOYEES ON HR_SCHEMA.EMPLOYEES AS EMPLOYEES FOR COLUMN TAX_ID RETURN CASE WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'HR' ) = 1 THEN EMPLOYEES . TAX_ID WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1 AND SESSION_USER = EMPLOYEES . USER_ID THEN EMPLOYEES . TAX_ID WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1 AND SESSION_USER <> EMPLOYEES . USER_ID THEN ( 'XXX-XX-' CONCAT QSYS2 . SUBSTR ( EMPLOYEES . TAX_ID , 8 , 4 ) ) WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'EMP' ) = 1 THEN EMPLOYEES . TAX_ID ELSE 'XXX-XX-XXXX' END ENABLE ; Example 3-9 Creating a mask on the TAX_ID column 3. Figure 3-10 shows the masks that are created in the HR_SCHEMA. @@ -223,8 +223,8 @@ Now that you have created the row permission and the two column masks, RCAC must be activated. The row permission and the two column masks are enabled (last clause in the scripts), but now you must activate RCAC on the table. To do so, complete the following steps: 1. Run the SQL statements that are shown in Example 3-10. Example 3-10 Activating RCAC on the EMPLOYEES table -- /* Active Row Access Control (permissions) */ -- /* Active Column Access Control (masks) +/* Active Row Access Control (permissions) */ +/* Active Column Access Control (masks) */ ALTER TABLE HR_SCHEMA.EMPLOYEES ACTIVATE ROW ACCESS CONTROL diff --git a/tests/data/groundtruth/docling_v1/redp5110_sampled.json b/tests/data/groundtruth/docling_v1/redp5110_sampled.json index 2527e2f3..42c88cb5 100644 --- a/tests/data/groundtruth/docling_v1/redp5110_sampled.json +++ b/tests/data/groundtruth/docling_v1/redp5110_sampled.json @@ -305,7 +305,7 @@ "__ref_s3_data": null } ], - "text": "- GLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", + "text": "GLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "type": "paragraph", "payload": null, "name": "List-item", @@ -328,7 +328,7 @@ "__ref_s3_data": null } ], - "text": "- GLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", + "text": "GLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "type": "paragraph", "payload": null, "name": "List-item", @@ -351,7 +351,7 @@ "__ref_s3_data": null } ], - "text": "- GLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", + "text": "GLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "type": "paragraph", "payload": null, "name": "List-item", @@ -374,7 +374,7 @@ "__ref_s3_data": null } ], - "text": "- GLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", + "text": "GLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "type": "paragraph", "payload": null, "name": "List-item", @@ -609,7 +609,7 @@ "__ref_s3_data": null } ], - "text": "- r Database performance and scalability", + "text": "r Database performance and scalability", "type": "paragraph", "payload": null, "name": "List-item", @@ -632,7 +632,7 @@ "__ref_s3_data": null } ], - "text": "- r Advanced SQL knowledge and skills transfer", + "text": "r Advanced SQL knowledge and skills transfer", "type": "paragraph", "payload": null, "name": "List-item", @@ -655,7 +655,7 @@ "__ref_s3_data": null } ], - "text": "- r Business intelligence and analytics", + "text": "r Business intelligence and analytics", "type": "paragraph", "payload": null, "name": "List-item", @@ -678,7 +678,7 @@ "__ref_s3_data": null } ], - "text": "- r DB2 Web Query", + "text": "r DB2 Web Query", "type": "paragraph", "payload": null, "name": "List-item", @@ -701,7 +701,7 @@ "__ref_s3_data": null } ], - "text": "- r Query/400 modernization for better reporting and analysis capabilities", + "text": "r Query/400 modernization for better reporting and analysis capabilities", "type": "paragraph", "payload": null, "name": "List-item", @@ -724,7 +724,7 @@ "__ref_s3_data": null } ], - "text": "- r Database modernization and re-engineering", + "text": "r Database modernization and re-engineering", "type": "paragraph", "payload": null, "name": "List-item", @@ -747,7 +747,7 @@ "__ref_s3_data": null } ], - "text": "- r Data-centric architecture and design", + "text": "r Data-centric architecture and design", "type": "paragraph", "payload": null, "name": "List-item", @@ -770,7 +770,7 @@ "__ref_s3_data": null } ], - "text": "- r Extremely large database and overcoming limits to growth", + "text": "r Extremely large database and overcoming limits to growth", "type": "paragraph", "payload": null, "name": "List-item", @@ -793,7 +793,7 @@ "__ref_s3_data": null } ], - "text": "- r ISV education and enablement", + "text": "r ISV education and enablement", "type": "paragraph", "payload": null, "name": "List-item", @@ -1130,7 +1130,7 @@ "__ref_s3_data": null } ], - "text": "- GLYPH Security fundamentals", + "text": "GLYPH Security fundamentals", "type": "paragraph", "payload": null, "name": "List-item", @@ -1153,7 +1153,7 @@ "__ref_s3_data": null } ], - "text": "- GLYPH Current state of IBM i security", + "text": "GLYPH Current state of IBM i security", "type": "paragraph", "payload": null, "name": "List-item", @@ -1176,7 +1176,7 @@ "__ref_s3_data": null } ], - "text": "- GLYPH DB2 for i security controls", + "text": "GLYPH DB2 for i security controls", "type": "paragraph", "payload": null, "name": "List-item", @@ -1291,7 +1291,7 @@ "__ref_s3_data": null } ], - "text": "- GLYPH First, and most important, is the definition of a company's security policy . Without a security policy, there is no definition of what are acceptable practices for using, accessing, and storing information by who, what, when, where, and how. A security policy should minimally address three things: confidentiality, integrity, and availability.", + "text": "GLYPH First, and most important, is the definition of a company's security policy . Without a security policy, there is no definition of what are acceptable practices for using, accessing, and storing information by who, what, when, where, and how. A security policy should minimally address three things: confidentiality, integrity, and availability.", "type": "paragraph", "payload": null, "name": "List-item", @@ -1314,7 +1314,7 @@ "__ref_s3_data": null } ], - "text": "- The monitoring and assessment of adherence to the security policy determines whether your security strategy is working. Often, IBM security consultants are asked to perform security assessments for companies without regard to the security policy. Although these assessments can be useful for observing how the system is defined and how data is being accessed, they cannot determine the level of security without a security policy. Without a security policy, it really is not an assessment as much as it is a baseline for monitoring the changes in the security settings that are captured.", + "text": "The monitoring and assessment of adherence to the security policy determines whether your security strategy is working. Often, IBM security consultants are asked to perform security assessments for companies without regard to the security policy. Although these assessments can be useful for observing how the system is defined and how data is being accessed, they cannot determine the level of security without a security policy. Without a security policy, it really is not an assessment as much as it is a baseline for monitoring the changes in the security settings that are captured.", "type": "paragraph", "payload": null, "name": "List-item", @@ -1360,7 +1360,7 @@ "__ref_s3_data": null } ], - "text": "- GLYPH The second fundamental in securing data assets is the use of resource security . If implemented properly, resource security prevents data breaches from both internal and external intrusions. Resource security controls are closely tied to the part of the security policy that defines who should have access to what information resources. A hacker might be good enough to get through your company firewalls and sift his way through to your system, but if they do not have explicit access to your database, the hacker cannot compromise your information assets.", + "text": "GLYPH The second fundamental in securing data assets is the use of resource security . If implemented properly, resource security prevents data breaches from both internal and external intrusions. Resource security controls are closely tied to the part of the security policy that defines who should have access to what information resources. A hacker might be good enough to get through your company firewalls and sift his way through to your system, but if they do not have explicit access to your database, the hacker cannot compromise your information assets.", "type": "paragraph", "payload": null, "name": "List-item", @@ -1687,7 +1687,7 @@ "__ref_s3_data": null } ], - "text": "- GLYPH Work Function Usage ( WRKFCNUSG )", + "text": "GLYPH Work Function Usage ( WRKFCNUSG )", "type": "paragraph", "payload": null, "name": "List-item", @@ -1710,7 +1710,7 @@ "__ref_s3_data": null } ], - "text": "- GLYPH Change Function Usage ( CHGFCNUSG )", + "text": "GLYPH Change Function Usage ( CHGFCNUSG )", "type": "paragraph", "payload": null, "name": "List-item", @@ -1733,7 +1733,7 @@ "__ref_s3_data": null } ], - "text": "- GLYPH Display Function Usage ( DSPFCNUSG )", + "text": "GLYPH Display Function Usage ( DSPFCNUSG )", "type": "paragraph", "payload": null, "name": "List-item", @@ -2558,7 +2558,7 @@ "__ref_s3_data": null } ], - "text": "- GLYPH A user connects to the server using the user profile ALICE.", + "text": "GLYPH A user connects to the server using the user profile ALICE.", "type": "paragraph", "payload": null, "name": "List-item", @@ -2581,7 +2581,7 @@ "__ref_s3_data": null } ], - "text": "- GLYPH USER and CURRENT USER initially have the same value of ALICE.", + "text": "GLYPH USER and CURRENT USER initially have the same value of ALICE.", "type": "paragraph", "payload": null, "name": "List-item", @@ -2604,7 +2604,7 @@ "__ref_s3_data": null } ], - "text": "- GLYPH ALICE calls an SQL procedure that is named proc1, which is owned by user profile JOE and was created to adopt JOE's authority when it is called.", + "text": "GLYPH ALICE calls an SQL procedure that is named proc1, which is owned by user profile JOE and was created to adopt JOE's authority when it is called.", "type": "paragraph", "payload": null, "name": "List-item", @@ -2627,7 +2627,7 @@ "__ref_s3_data": null } ], - "text": "- GLYPH While the procedure is running, the special register USER still contains the value of ALICE because it excludes any adopted authority. The special register CURRENT USER contains the value of JOE because it includes any adopted authority.", + "text": "GLYPH While the procedure is running, the special register USER still contains the value of ALICE because it excludes any adopted authority. The special register CURRENT USER contains the value of JOE because it includes any adopted authority.", "type": "paragraph", "payload": null, "name": "List-item", @@ -2650,7 +2650,7 @@ "__ref_s3_data": null } ], - "text": "- GLYPH When proc1 ends, the session reverts to its original state with both USER and CURRENT USER having the value of ALICE.", + "text": "GLYPH When proc1 ends, the session reverts to its original state with both USER and CURRENT USER having the value of ALICE.", "type": "paragraph", "payload": null, "name": "List-item", @@ -3097,7 +3097,7 @@ "__ref_s3_data": null } ], - "text": "- -Human Resources can see the unmasked TAX_ID of the employees.", + "text": "-Human Resources can see the unmasked TAX_ID of the employees.", "type": "paragraph", "payload": null, "name": "List-item", @@ -3120,7 +3120,7 @@ "__ref_s3_data": null } ], - "text": "- -Employees can see only their own unmasked TAX_ID.", + "text": "-Employees can see only their own unmasked TAX_ID.", "type": "paragraph", "payload": null, "name": "List-item", @@ -3143,7 +3143,7 @@ "__ref_s3_data": null } ], - "text": "- -Managers see a masked version of TAX_ID with the first five characters replaced with the X character (for example, XXX-XX-1234).", + "text": "-Managers see a masked version of TAX_ID with the first five characters replaced with the X character (for example, XXX-XX-1234).", "type": "paragraph", "payload": null, "name": "List-item", @@ -3166,7 +3166,7 @@ "__ref_s3_data": null } ], - "text": "- -Any other person sees the entire TAX_ID as masked, for example, XXX-XX-XXXX.", + "text": "-Any other person sees the entire TAX_ID as masked, for example, XXX-XX-XXXX.", "type": "paragraph", "payload": null, "name": "List-item", @@ -3189,7 +3189,7 @@ "__ref_s3_data": null } ], - "text": "- To implement this column mask, run the SQL statement that is shown in Example 3-9.", + "text": "To implement this column mask, run the SQL statement that is shown in Example 3-9.", "type": "paragraph", "payload": null, "name": "List-item", @@ -3401,7 +3401,7 @@ "__ref_s3_data": null } ], - "text": "- /* Active Row Access Control (permissions) */", + "text": "/* Active Row Access Control (permissions) */", "type": "paragraph", "payload": null, "name": "List-item", @@ -3424,7 +3424,7 @@ "__ref_s3_data": null } ], - "text": "- /* Active Column Access Control (masks)", + "text": "/* Active Column Access Control (masks)", "type": "paragraph", "payload": null, "name": "List-item", diff --git a/tests/data/groundtruth/docling_v1/redp5110_sampled.md b/tests/data/groundtruth/docling_v1/redp5110_sampled.md index b2ca3d46..186595e8 100644 --- a/tests/data/groundtruth/docling_v1/redp5110_sampled.md +++ b/tests/data/groundtruth/docling_v1/redp5110_sampled.md @@ -18,13 +18,13 @@ Solution Brief IBM Systems Lab Services and Training ## Highlights -- GLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH +GLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH -- GLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH +GLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH -- GLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH +GLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH -- GLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH +GLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH @@ -46,23 +46,23 @@ With combined experiences and direct access to development groups, we're the exp Global CoE engagements cover topics including: -- r Database performance and scalability +r Database performance and scalability -- r Advanced SQL knowledge and skills transfer +r Advanced SQL knowledge and skills transfer -- r Business intelligence and analytics +r Business intelligence and analytics -- r DB2 Web Query +r DB2 Web Query -- r Query/400 modernization for better reporting and analysis capabilities +r Query/400 modernization for better reporting and analysis capabilities -- r Database modernization and re-engineering +r Database modernization and re-engineering -- r Data-centric architecture and design +r Data-centric architecture and design -- r Extremely large database and overcoming limits to growth +r Extremely large database and overcoming limits to growth -- r ISV education and enablement +r ISV education and enablement ## Preface @@ -96,23 +96,23 @@ Businesses must make a serious effort to secure their data and recognize that se This chapter describes how you can secure and protect data in DB2 for i. The following topics are covered in this chapter: -- GLYPH Security fundamentals +GLYPH Security fundamentals -- GLYPH Current state of IBM i security +GLYPH Current state of IBM i security -- GLYPH DB2 for i security controls +GLYPH DB2 for i security controls ## 1.1 Security fundamentals Before reviewing database security techniques, there are two fundamental steps in securing information assets that must be described: -- GLYPH First, and most important, is the definition of a company's security policy . Without a security policy, there is no definition of what are acceptable practices for using, accessing, and storing information by who, what, when, where, and how. A security policy should minimally address three things: confidentiality, integrity, and availability. +GLYPH First, and most important, is the definition of a company's security policy . Without a security policy, there is no definition of what are acceptable practices for using, accessing, and storing information by who, what, when, where, and how. A security policy should minimally address three things: confidentiality, integrity, and availability. -- The monitoring and assessment of adherence to the security policy determines whether your security strategy is working. Often, IBM security consultants are asked to perform security assessments for companies without regard to the security policy. Although these assessments can be useful for observing how the system is defined and how data is being accessed, they cannot determine the level of security without a security policy. Without a security policy, it really is not an assessment as much as it is a baseline for monitoring the changes in the security settings that are captured. +The monitoring and assessment of adherence to the security policy determines whether your security strategy is working. Often, IBM security consultants are asked to perform security assessments for companies without regard to the security policy. Although these assessments can be useful for observing how the system is defined and how data is being accessed, they cannot determine the level of security without a security policy. Without a security policy, it really is not an assessment as much as it is a baseline for monitoring the changes in the security settings that are captured. A security policy is what defines whether the system and its settings are secure (or not). -- GLYPH The second fundamental in securing data assets is the use of resource security . If implemented properly, resource security prevents data breaches from both internal and external intrusions. Resource security controls are closely tied to the part of the security policy that defines who should have access to what information resources. A hacker might be good enough to get through your company firewalls and sift his way through to your system, but if they do not have explicit access to your database, the hacker cannot compromise your information assets. +GLYPH The second fundamental in securing data assets is the use of resource security . If implemented properly, resource security prevents data breaches from both internal and external intrusions. Resource security controls are closely tied to the part of the security policy that defines who should have access to what information resources. A hacker might be good enough to get through your company firewalls and sift his way through to your system, but if they do not have explicit access to your database, the hacker cannot compromise your information assets. With your eyes now open to the importance of securing information assets, the rest of this chapter reviews the methods that are available for securing database resources on IBM i. @@ -141,11 +141,11 @@ Figure 1-2 Existing row and column controls The following CL commands can be used to work with, display, or change function usage IDs: -- GLYPH Work Function Usage ( WRKFCNUSG ) +GLYPH Work Function Usage ( WRKFCNUSG ) -- GLYPH Change Function Usage ( CHGFCNUSG ) +GLYPH Change Function Usage ( CHGFCNUSG ) -- GLYPH Display Function Usage ( DSPFCNUSG ) +GLYPH Display Function Usage ( DSPFCNUSG ) For example, the following CHGFCNUSG command shows granting authorization to user HBEDOYA to administer and manage RCAC rules: @@ -244,15 +244,15 @@ Table 3-1 Special registers and their corresponding values Figure 3-5 shows the difference in the special register values when an adopted authority is used: -- GLYPH A user connects to the server using the user profile ALICE. +GLYPH A user connects to the server using the user profile ALICE. -- GLYPH USER and CURRENT USER initially have the same value of ALICE. +GLYPH USER and CURRENT USER initially have the same value of ALICE. -- GLYPH ALICE calls an SQL procedure that is named proc1, which is owned by user profile JOE and was created to adopt JOE's authority when it is called. +GLYPH ALICE calls an SQL procedure that is named proc1, which is owned by user profile JOE and was created to adopt JOE's authority when it is called. -- GLYPH While the procedure is running, the special register USER still contains the value of ALICE because it excludes any adopted authority. The special register CURRENT USER contains the value of JOE because it includes any adopted authority. +GLYPH While the procedure is running, the special register USER still contains the value of ALICE because it excludes any adopted authority. The special register CURRENT USER contains the value of JOE because it includes any adopted authority. -- GLYPH When proc1 ends, the session reverts to its original state with both USER and CURRENT USER having the value of ALICE. +GLYPH When proc1 ends, the session reverts to its original state with both USER and CURRENT USER having the value of ALICE. Figure 3-5 Special registers and adopted authority @@ -303,15 +303,15 @@ WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'HR', 'EMP' ) = 1 THEN EMPLOYEES . D 2. The other column to mask in this example is the TAX_ID information. In this example, the rules to enforce include the following ones: -- -Human Resources can see the unmasked TAX_ID of the employees. +-Human Resources can see the unmasked TAX_ID of the employees. -- -Employees can see only their own unmasked TAX_ID. +-Employees can see only their own unmasked TAX_ID. -- -Managers see a masked version of TAX_ID with the first five characters replaced with the X character (for example, XXX-XX-1234). +-Managers see a masked version of TAX_ID with the first five characters replaced with the X character (for example, XXX-XX-1234). -- -Any other person sees the entire TAX_ID as masked, for example, XXX-XX-XXXX. +-Any other person sees the entire TAX_ID as masked, for example, XXX-XX-XXXX. -- To implement this column mask, run the SQL statement that is shown in Example 3-9. +To implement this column mask, run the SQL statement that is shown in Example 3-9. CREATE MASK HR_SCHEMA.MASK_TAX_ID_ON_EMPLOYEES ON HR_SCHEMA.EMPLOYEES AS EMPLOYEES FOR COLUMN TAX_ID RETURN CASE WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'HR' ) = 1 THEN EMPLOYEES . TAX_ID WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1 AND SESSION_USER = EMPLOYEES . USER_ID THEN EMPLOYEES . TAX_ID WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1 AND SESSION_USER <> EMPLOYEES . USER_ID THEN ( 'XXX-XX-' CONCAT QSYS2 . SUBSTR ( EMPLOYEES . TAX_ID , 8 , 4 ) ) WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'EMP' ) = 1 THEN EMPLOYEES . TAX_ID ELSE 'XXX-XX-XXXX' END ENABLE ; @@ -330,9 +330,9 @@ Now that you have created the row permission and the two column masks, RCAC must ## Example 3-10 Activating RCAC on the EMPLOYEES table -- /* Active Row Access Control (permissions) */ +/* Active Row Access Control (permissions) */ -- /* Active Column Access Control (masks) +/* Active Column Access Control (masks) */ diff --git a/tests/data/groundtruth/docling_v2/2203.01017v2.json b/tests/data/groundtruth/docling_v2/2203.01017v2.json index 6dc7d162..a1919dd8 100644 --- a/tests/data/groundtruth/docling_v2/2203.01017v2.json +++ b/tests/data/groundtruth/docling_v2/2203.01017v2.json @@ -1,6 +1,6 @@ { "schema_name": "DoclingDocument", - "version": "1.4.0", + "version": "1.5.0", "name": "2203.01017v2", "origin": { "mimetype": "application/pdf", @@ -9249,7 +9249,7 @@ "formatting": null, "hyperlink": null, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/284", @@ -9280,7 +9280,7 @@ "formatting": null, "hyperlink": null, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/285", @@ -11348,7 +11348,7 @@ "formatting": null, "hyperlink": null, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/356", @@ -12553,7 +12553,7 @@ "formatting": null, "hyperlink": null, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/395", @@ -15148,7 +15148,7 @@ "formatting": null, "hyperlink": null, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/483", @@ -15452,7 +15452,7 @@ "formatting": null, "hyperlink": null, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/493", @@ -15483,7 +15483,7 @@ "formatting": null, "hyperlink": null, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/494", @@ -15514,7 +15514,7 @@ "formatting": null, "hyperlink": null, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/495", @@ -15545,7 +15545,7 @@ "formatting": null, "hyperlink": null, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/496", diff --git a/tests/data/groundtruth/docling_v2/2203.01017v2.md b/tests/data/groundtruth/docling_v2/2203.01017v2.md index 00e1a85d..5cf44d8e 100644 --- a/tests/data/groundtruth/docling_v2/2203.01017v2.md +++ b/tests/data/groundtruth/docling_v2/2203.01017v2.md @@ -16,8 +16,8 @@ The occurrence of tables in documents is ubiquitous. They often summarise quanti -- Red-annotation of bounding boxes, Blue-predictions by TableFormer -- Structure predicted by TableFormer: +- b. Red-annotation of bounding boxes, Blue-predictions by TableFormer +- c. Structure predicted by TableFormer: @@ -280,50 +280,50 @@ In this paper, we presented TableFormer an end-to-end transformer based approach ## References -- Nicolas Carion, Francisco Massa, Gabriel Synnaeve, Nicolas Usunier, Alexander Kirillov, and Sergey Zagoruyko. End-to- +- [1] Nicolas Carion, Francisco Massa, Gabriel Synnaeve, Nicolas Usunier, Alexander Kirillov, and Sergey Zagoruyko. End-to- - end object detection with transformers. In Andrea Vedaldi, Horst Bischof, Thomas Brox, and Jan-Michael Frahm, editors, Computer Vision - ECCV 2020 , pages 213-229, Cham, 2020. Springer International Publishing. 5 -- Zewen Chi, Heyan Huang, Heng-Da Xu, Houjin Yu, Wanxuan Yin, and Xian-Ling Mao. Complicated table structure recognition. arXiv preprint arXiv:1908.04729 , 2019. 3 -- Bertrand Couasnon and Aurelie Lemaitre. Recognition of Tables and Forms , pages 647-677. Springer London, London, 2014. 2 -- Herv´e D´ejean, Jean-Luc Meunier, Liangcai Gao, Yilun Huang, Yu Fang, Florian Kleber, and Eva-Maria Lang. ICDAR 2019 Competition on Table Detection and Recognition (cTDaR), Apr. 2019. http://sac.founderit.com/. 2 -- Basilios Gatos, Dimitrios Danatsas, Ioannis Pratikakis, and Stavros J Perantonis. Automatic table detection in document images. In International Conference on Pattern Recognition and Image Analysis , pages 609-618. Springer, 2005. 2 -- Max G¨obel, Tamir Hassan, Ermelinda Oro, and Giorgio Orsi. Icdar 2013 table competition. In 2013 12th International Conference on Document Analysis and Recognition , pages 1449-1453, 2013. 2 -- EA Green and M Krishnamoorthy. Recognition of tables using table grammars. procs. In Symposium on Document Analysis and Recognition (SDAIR'95) , pages 261-277. 2 -- Khurram Azeem Hashmi, Alain Pagani, Marcus Liwicki, Didier Stricker, and Muhammad Zeshan Afzal. Castabdetectors: Cascade network for table detection in document images with recursive feature pyramid and switchable atrous convolution. Journal of Imaging , 7(10), 2021. 1 -- Kaiming He, Georgia Gkioxari, Piotr Dollar, and Ross Girshick. Mask r-cnn. In Proceedings of the IEEE International Conference on Computer Vision (ICCV) , Oct 2017. 1 -- Yelin He, X. Qi, Jiaquan Ye, Peng Gao, Yihao Chen, Bingcong Li, Xin Tang, and Rong Xiao. Pingan-vcgroup's solution for icdar 2021 competition on scientific table image recognition to latex. ArXiv , abs/2105.01846, 2021. 2 -- Jianying Hu, Ramanujan S Kashi, Daniel P Lopresti, and Gordon Wilfong. Medium-independent table detection. In Document Recognition and Retrieval VII , volume 3967, pages 291-302. International Society for Optics and Photonics, 1999. 2 -- Matthew Hurst. A constraint-based approach to table structure derivation. In Proceedings of the Seventh International Conference on Document Analysis and Recognition - Volume 2 , ICDAR '03, page 911, USA, 2003. IEEE Computer Society. 2 -- Thotreingam Kasar, Philippine Barlas, Sebastien Adam, Cl´ement Chatelain, and Thierry Paquet. Learning to detect tables in scanned document images using line information. In 2013 12th International Conference on Document Analysis and Recognition , pages 1185-1189. IEEE, 2013. 2 -- Pratik Kayal, Mrinal Anand, Harsh Desai, and Mayank Singh. Icdar 2021 competition on scientific table image recognition to latex, 2021. 2 -- Harold W Kuhn. The hungarian method for the assignment problem. Naval research logistics quarterly , 2(1-2):83-97, 1955. 6 -- Girish Kulkarni, Visruth Premraj, Vicente Ordonez, Sagnik Dhar, Siming Li, Yejin Choi, Alexander C. Berg, and Tamara L. Berg. Babytalk: Understanding and generating simple image descriptions. IEEE Transactions on Pattern Analysis and Machine Intelligence , 35(12):2891-2903, 2013. 4 -- Minghao Li, Lei Cui, Shaohan Huang, Furu Wei, Ming Zhou, and Zhoujun Li. Tablebank: A benchmark dataset for table detection and recognition, 2019. 2, 3 -- Yiren Li, Zheng Huang, Junchi Yan, Yi Zhou, Fan Ye, and Xianhui Liu. Gfte: Graph-based financial table extraction. In Alberto Del Bimbo, Rita Cucchiara, Stan Sclaroff, Giovanni Maria Farinella, Tao Mei, Marco Bertini, Hugo Jair Escalante, and Roberto Vezzani, editors, Pattern Recognition. ICPR International Workshops and Challenges , pages 644-658, Cham, 2021. Springer International Publishing. 2, 3 -- Nikolaos Livathinos, Cesar Berrospi, Maksym Lysak, Viktor Kuropiatnyk, Ahmed Nassar, Andre Carvalho, Michele Dolfi, Christoph Auer, Kasper Dinkla, and Peter Staar. Robust pdf document conversion using recurrent neural networks. Proceedings of the AAAI Conference on Artificial Intelligence , 35(17):15137-15145, May 2021. 1 -- Rujiao Long, Wen Wang, Nan Xue, Feiyu Gao, Zhibo Yang, Yongpan Wang, and Gui-Song Xia. Parsing table structures in the wild. In Proceedings of the IEEE/CVF International Conference on Computer Vision , pages 944-952, 2021. 2 -- Shubham Singh Paliwal, D Vishwanath, Rohit Rahul, Monika Sharma, and Lovekesh Vig. Tablenet: Deep learning model for end-to-end table detection and tabular data extraction from scanned document images. In 2019 International Conference on Document Analysis and Recognition (ICDAR) , pages 128-133. IEEE, 2019. 1 -- Adam Paszke, Sam Gross, Francisco Massa, Adam Lerer, James Bradbury, Gregory Chanan, Trevor Killeen, Zeming Lin, Natalia Gimelshein, Luca Antiga, Alban Desmaison, Andreas Kopf, Edward Yang, Zachary DeVito, Martin Raison, Alykhan Tejani, Sasank Chilamkurthy, Benoit Steiner, Lu Fang, Junjie Bai, and Soumith Chintala. Pytorch: An imperative style, high-performance deep learning library. In H. Wallach, H. Larochelle, A. Beygelzimer, F. d'Alch´e-Buc, E. Fox, and R. Garnett, editors, Advances in Neural Information Processing Systems 32 , pages 8024-8035. Curran Associates, Inc., 2019. 6 -- Devashish Prasad, Ayan Gadpal, Kshitij Kapadni, Manish Visave, and Kavita Sultanpure. Cascadetabnet: An approach for end to end table detection and structure recognition from image-based documents. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition Workshops , pages 572-573, 2020. 1 -- Shah Rukh Qasim, Hassan Mahmood, and Faisal Shafait. Rethinking table recognition using graph neural networks. In 2019 International Conference on Document Analysis and Recognition (ICDAR) , pages 142-147. IEEE, 2019. 3 -- Hamid Rezatofighi, Nathan Tsoi, JunYoung Gwak, Amir Sadeghian, Ian Reid, and Silvio Savarese. Generalized intersection over union: A metric and a loss for bounding box regression. In Proceedings of the IEEE/CVF Conference on +- [2] Zewen Chi, Heyan Huang, Heng-Da Xu, Houjin Yu, Wanxuan Yin, and Xian-Ling Mao. Complicated table structure recognition. arXiv preprint arXiv:1908.04729 , 2019. 3 +- [3] Bertrand Couasnon and Aurelie Lemaitre. Recognition of Tables and Forms , pages 647-677. Springer London, London, 2014. 2 +- [4] Herv´e D´ejean, Jean-Luc Meunier, Liangcai Gao, Yilun Huang, Yu Fang, Florian Kleber, and Eva-Maria Lang. ICDAR 2019 Competition on Table Detection and Recognition (cTDaR), Apr. 2019. http://sac.founderit.com/. 2 +- [5] Basilios Gatos, Dimitrios Danatsas, Ioannis Pratikakis, and Stavros J Perantonis. Automatic table detection in document images. In International Conference on Pattern Recognition and Image Analysis , pages 609-618. Springer, 2005. 2 +- [6] Max G¨obel, Tamir Hassan, Ermelinda Oro, and Giorgio Orsi. Icdar 2013 table competition. In 2013 12th International Conference on Document Analysis and Recognition , pages 1449-1453, 2013. 2 +- [7] EA Green and M Krishnamoorthy. Recognition of tables using table grammars. procs. In Symposium on Document Analysis and Recognition (SDAIR'95) , pages 261-277. 2 +- [8] Khurram Azeem Hashmi, Alain Pagani, Marcus Liwicki, Didier Stricker, and Muhammad Zeshan Afzal. Castabdetectors: Cascade network for table detection in document images with recursive feature pyramid and switchable atrous convolution. Journal of Imaging , 7(10), 2021. 1 +- [9] Kaiming He, Georgia Gkioxari, Piotr Dollar, and Ross Girshick. Mask r-cnn. In Proceedings of the IEEE International Conference on Computer Vision (ICCV) , Oct 2017. 1 +- [10] Yelin He, X. Qi, Jiaquan Ye, Peng Gao, Yihao Chen, Bingcong Li, Xin Tang, and Rong Xiao. Pingan-vcgroup's solution for icdar 2021 competition on scientific table image recognition to latex. ArXiv , abs/2105.01846, 2021. 2 +- [11] Jianying Hu, Ramanujan S Kashi, Daniel P Lopresti, and Gordon Wilfong. Medium-independent table detection. In Document Recognition and Retrieval VII , volume 3967, pages 291-302. International Society for Optics and Photonics, 1999. 2 +- [12] Matthew Hurst. A constraint-based approach to table structure derivation. In Proceedings of the Seventh International Conference on Document Analysis and Recognition - Volume 2 , ICDAR '03, page 911, USA, 2003. IEEE Computer Society. 2 +- [13] Thotreingam Kasar, Philippine Barlas, Sebastien Adam, Cl´ement Chatelain, and Thierry Paquet. Learning to detect tables in scanned document images using line information. In 2013 12th International Conference on Document Analysis and Recognition , pages 1185-1189. IEEE, 2013. 2 +- [14] Pratik Kayal, Mrinal Anand, Harsh Desai, and Mayank Singh. Icdar 2021 competition on scientific table image recognition to latex, 2021. 2 +- [15] Harold W Kuhn. The hungarian method for the assignment problem. Naval research logistics quarterly , 2(1-2):83-97, 1955. 6 +- [16] Girish Kulkarni, Visruth Premraj, Vicente Ordonez, Sagnik Dhar, Siming Li, Yejin Choi, Alexander C. Berg, and Tamara L. Berg. Babytalk: Understanding and generating simple image descriptions. IEEE Transactions on Pattern Analysis and Machine Intelligence , 35(12):2891-2903, 2013. 4 +- [17] Minghao Li, Lei Cui, Shaohan Huang, Furu Wei, Ming Zhou, and Zhoujun Li. Tablebank: A benchmark dataset for table detection and recognition, 2019. 2, 3 +- [18] Yiren Li, Zheng Huang, Junchi Yan, Yi Zhou, Fan Ye, and Xianhui Liu. Gfte: Graph-based financial table extraction. In Alberto Del Bimbo, Rita Cucchiara, Stan Sclaroff, Giovanni Maria Farinella, Tao Mei, Marco Bertini, Hugo Jair Escalante, and Roberto Vezzani, editors, Pattern Recognition. ICPR International Workshops and Challenges , pages 644-658, Cham, 2021. Springer International Publishing. 2, 3 +- [19] Nikolaos Livathinos, Cesar Berrospi, Maksym Lysak, Viktor Kuropiatnyk, Ahmed Nassar, Andre Carvalho, Michele Dolfi, Christoph Auer, Kasper Dinkla, and Peter Staar. Robust pdf document conversion using recurrent neural networks. Proceedings of the AAAI Conference on Artificial Intelligence , 35(17):15137-15145, May 2021. 1 +- [20] Rujiao Long, Wen Wang, Nan Xue, Feiyu Gao, Zhibo Yang, Yongpan Wang, and Gui-Song Xia. Parsing table structures in the wild. In Proceedings of the IEEE/CVF International Conference on Computer Vision , pages 944-952, 2021. 2 +- [21] Shubham Singh Paliwal, D Vishwanath, Rohit Rahul, Monika Sharma, and Lovekesh Vig. Tablenet: Deep learning model for end-to-end table detection and tabular data extraction from scanned document images. In 2019 International Conference on Document Analysis and Recognition (ICDAR) , pages 128-133. IEEE, 2019. 1 +- [22] Adam Paszke, Sam Gross, Francisco Massa, Adam Lerer, James Bradbury, Gregory Chanan, Trevor Killeen, Zeming Lin, Natalia Gimelshein, Luca Antiga, Alban Desmaison, Andreas Kopf, Edward Yang, Zachary DeVito, Martin Raison, Alykhan Tejani, Sasank Chilamkurthy, Benoit Steiner, Lu Fang, Junjie Bai, and Soumith Chintala. Pytorch: An imperative style, high-performance deep learning library. In H. Wallach, H. Larochelle, A. Beygelzimer, F. d'Alch´e-Buc, E. Fox, and R. Garnett, editors, Advances in Neural Information Processing Systems 32 , pages 8024-8035. Curran Associates, Inc., 2019. 6 +- [23] Devashish Prasad, Ayan Gadpal, Kshitij Kapadni, Manish Visave, and Kavita Sultanpure. Cascadetabnet: An approach for end to end table detection and structure recognition from image-based documents. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition Workshops , pages 572-573, 2020. 1 +- [24] Shah Rukh Qasim, Hassan Mahmood, and Faisal Shafait. Rethinking table recognition using graph neural networks. In 2019 International Conference on Document Analysis and Recognition (ICDAR) , pages 142-147. IEEE, 2019. 3 +- [25] Hamid Rezatofighi, Nathan Tsoi, JunYoung Gwak, Amir Sadeghian, Ian Reid, and Silvio Savarese. Generalized intersection over union: A metric and a loss for bounding box regression. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition , pages 658-666, 2019. 6 -- Sebastian Schreiber, Stefan Agne, Ivo Wolf, Andreas Dengel, and Sheraz Ahmed. Deepdesrt: Deep learning for detection and structure recognition of tables in document images. In 2017 14th IAPR International Conference on Document Analysis and Recognition (ICDAR) , volume 01, pages 11621167, 2017. 1 -- Sebastian Schreiber, Stefan Agne, Ivo Wolf, Andreas Dengel, and Sheraz Ahmed. Deepdesrt: Deep learning for detection and structure recognition of tables in document images. In 2017 14th IAPR international conference on document analysis and recognition (ICDAR) , volume 1, pages 1162-1167. IEEE, 2017. 3 -- Faisal Shafait and Ray Smith. Table detection in heterogeneous documents. In Proceedings of the 9th IAPR International Workshop on Document Analysis Systems , pages 6572, 2010. 2 -- Shoaib Ahmed Siddiqui, Imran Ali Fateh, Syed Tahseen Raza Rizvi, Andreas Dengel, and Sheraz Ahmed. Deeptabstr: Deep learning based table structure recognition. In 2019 International Conference on Document Analysis and Recognition (ICDAR) , pages 1403-1409. IEEE, 2019. 3 -- Peter W J Staar, Michele Dolfi, Christoph Auer, and Costas Bekas. Corpus conversion service: A machine learning platform to ingest documents at scale. In Proceedings of the 24th ACM SIGKDD , KDD '18, pages 774-782, New York, NY, USA, 2018. ACM. 1 -- Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N Gomez, Ł ukasz Kaiser, and Illia Polosukhin. Attention is all you need. In I. Guyon, U. V. Luxburg, S. Bengio, H. Wallach, R. Fergus, S. Vishwanathan, and R. Garnett, editors, Advances in Neural Information Processing Systems 30 , pages 5998-6008. Curran Associates, Inc., 2017. 5 -- Oriol Vinyals, Alexander Toshev, Samy Bengio, and Dumitru Erhan. Show and tell: A neural image caption generator. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR) , June 2015. 2 -- Wenyuan Xue, Qingyong Li, and Dacheng Tao. Res2tim: reconstruct syntactic structures from table images. In 2019 International Conference on Document Analysis and Recognition (ICDAR) , pages 749-755. IEEE, 2019. 3 -- Wenyuan Xue, Baosheng Yu, Wen Wang, Dacheng Tao, and Qingyong Li. Tgrnet: A table graph reconstruction network for table structure recognition. arXiv preprint arXiv:2106.10598 , 2021. 3 -- Quanzeng You, Hailin Jin, Zhaowen Wang, Chen Fang, and Jiebo Luo. Image captioning with semantic attention. In Proceedings of the IEEE conference on computer vision and pattern recognition , pages 4651-4659, 2016. 4 -- Xinyi Zheng, Doug Burdick, Lucian Popa, Peter Zhong, and Nancy Xin Ru Wang. Global table extractor (gte): A framework for joint table identification and cell structure recognition using visual context. Winter Conference for Applications in Computer Vision (WACV) , 2021. 2, 3 -- Xu Zhong, Elaheh ShafieiBavani, and Antonio Jimeno Yepes. Image-based table recognition: Data, model, +- [26] Sebastian Schreiber, Stefan Agne, Ivo Wolf, Andreas Dengel, and Sheraz Ahmed. Deepdesrt: Deep learning for detection and structure recognition of tables in document images. In 2017 14th IAPR International Conference on Document Analysis and Recognition (ICDAR) , volume 01, pages 11621167, 2017. 1 +- [27] Sebastian Schreiber, Stefan Agne, Ivo Wolf, Andreas Dengel, and Sheraz Ahmed. Deepdesrt: Deep learning for detection and structure recognition of tables in document images. In 2017 14th IAPR international conference on document analysis and recognition (ICDAR) , volume 1, pages 1162-1167. IEEE, 2017. 3 +- [28] Faisal Shafait and Ray Smith. Table detection in heterogeneous documents. In Proceedings of the 9th IAPR International Workshop on Document Analysis Systems , pages 6572, 2010. 2 +- [29] Shoaib Ahmed Siddiqui, Imran Ali Fateh, Syed Tahseen Raza Rizvi, Andreas Dengel, and Sheraz Ahmed. Deeptabstr: Deep learning based table structure recognition. In 2019 International Conference on Document Analysis and Recognition (ICDAR) , pages 1403-1409. IEEE, 2019. 3 +- [30] Peter W J Staar, Michele Dolfi, Christoph Auer, and Costas Bekas. Corpus conversion service: A machine learning platform to ingest documents at scale. In Proceedings of the 24th ACM SIGKDD , KDD '18, pages 774-782, New York, NY, USA, 2018. ACM. 1 +- [31] Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N Gomez, Ł ukasz Kaiser, and Illia Polosukhin. Attention is all you need. In I. Guyon, U. V. Luxburg, S. Bengio, H. Wallach, R. Fergus, S. Vishwanathan, and R. Garnett, editors, Advances in Neural Information Processing Systems 30 , pages 5998-6008. Curran Associates, Inc., 2017. 5 +- [32] Oriol Vinyals, Alexander Toshev, Samy Bengio, and Dumitru Erhan. Show and tell: A neural image caption generator. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR) , June 2015. 2 +- [33] Wenyuan Xue, Qingyong Li, and Dacheng Tao. Res2tim: reconstruct syntactic structures from table images. In 2019 International Conference on Document Analysis and Recognition (ICDAR) , pages 749-755. IEEE, 2019. 3 +- [34] Wenyuan Xue, Baosheng Yu, Wen Wang, Dacheng Tao, and Qingyong Li. Tgrnet: A table graph reconstruction network for table structure recognition. arXiv preprint arXiv:2106.10598 , 2021. 3 +- [35] Quanzeng You, Hailin Jin, Zhaowen Wang, Chen Fang, and Jiebo Luo. Image captioning with semantic attention. In Proceedings of the IEEE conference on computer vision and pattern recognition , pages 4651-4659, 2016. 4 +- [36] Xinyi Zheng, Doug Burdick, Lucian Popa, Peter Zhong, and Nancy Xin Ru Wang. Global table extractor (gte): A framework for joint table identification and cell structure recognition using visual context. Winter Conference for Applications in Computer Vision (WACV) , 2021. 2, 3 +- [37] Xu Zhong, Elaheh ShafieiBavani, and Antonio Jimeno Yepes. Image-based table recognition: Data, model, - and evaluation. In Andrea Vedaldi, Horst Bischof, Thomas Brox, and Jan-Michael Frahm, editors, Computer Vision ECCV 2020 , pages 564-580, Cham, 2020. Springer International Publishing. 2, 3, 7 -- Xu Zhong, Jianbin Tang, and Antonio Jimeno Yepes. Publaynet: Largest dataset ever for document layout analysis. In 2019 International Conference on Document Analysis and Recognition (ICDAR) , pages 1015-1022, 2019. 1 +- [38] Xu Zhong, Jianbin Tang, and Antonio Jimeno Yepes. Publaynet: Largest dataset ever for document layout analysis. In 2019 International Conference on Document Analysis and Recognition (ICDAR) , pages 1015-1022, 2019. 1 ## TableFormer: Table Structure Understanding with Transformers Supplementary Material @@ -343,11 +343,11 @@ Aiming to train and evaluate our models in a broader spectrum of table data we h The process of generating a synthetic dataset can be decomposed into the following steps: -- Prepare styling and content templates: The styling templates have been manually designed and organized into groups of scope specific appearances (e.g. financial data, marketing data, etc.) Additionally, we have prepared curated collections of content templates by extracting the most frequently used terms out of non-synthetic datasets (e.g. PubTabNet, FinTabNet, etc.). -- Generate table structures: The structure of each synthetic dataset assumes a horizontal table header which potentially spans over multiple rows and a table body that may contain a combination of row spans and column spans. However, spans are not allowed to cross the header - body boundary. The table structure is described by the parameters: Total number of table rows and columns, number of header rows, type of spans (header only spans, row only spans, column only spans, both row and column spans), maximum span size and the ratio of the table area covered by spans. -- Generate content: Based on the dataset theme , a set of suitable content templates is chosen first. Then, this content can be combined with purely random text to produce the synthetic content. -- Apply styling templates: Depending on the domain of the synthetic dataset, a set of styling templates is first manually selected. Then, a style is randomly selected to format the appearance of the synthesized table. -- Render the complete tables: The synthetic table is finally rendered by a web browser engine to generate the bounding boxes for each table cell. A batching technique is utilized to optimize the runtime overhead of the rendering process. +1. Prepare styling and content templates: The styling templates have been manually designed and organized into groups of scope specific appearances (e.g. financial data, marketing data, etc.) Additionally, we have prepared curated collections of content templates by extracting the most frequently used terms out of non-synthetic datasets (e.g. PubTabNet, FinTabNet, etc.). +2. Generate table structures: The structure of each synthetic dataset assumes a horizontal table header which potentially spans over multiple rows and a table body that may contain a combination of row spans and column spans. However, spans are not allowed to cross the header - body boundary. The table structure is described by the parameters: Total number of table rows and columns, number of header rows, type of spans (header only spans, row only spans, column only spans, both row and column spans), maximum span size and the ratio of the table area covered by spans. +3. Generate content: Based on the dataset theme , a set of suitable content templates is chosen first. Then, this content can be combined with purely random text to produce the synthetic content. +4. Apply styling templates: Depending on the domain of the synthetic dataset, a set of styling templates is first manually selected. Then, a style is randomly selected to format the appearance of the synthesized table. +5. Render the complete tables: The synthetic table is finally rendered by a web browser engine to generate the bounding boxes for each table cell. A batching technique is utilized to optimize the runtime overhead of the rendering process. ## 2. Prediction post-processing for PDF documents @@ -366,21 +366,21 @@ However, it is possible to mitigate those limitations by combining the TableForm Here is a step-by-step description of the prediction postprocessing: -- Get the minimal grid dimensions - number of rows and columns for the predicted table structure. This represents the most granular grid for the underlying table structure. -- Generate pair-wise matches between the bounding boxes of the PDF cells and the predicted cells. The Intersection Over Union (IOU) metric is used to evaluate the quality of the matches. -- Use a carefully selected IOU threshold to designate the matches as "good" ones and "bad" ones. +1. Get the minimal grid dimensions - number of rows and columns for the predicted table structure. This represents the most granular grid for the underlying table structure. +2. Generate pair-wise matches between the bounding boxes of the PDF cells and the predicted cells. The Intersection Over Union (IOU) metric is used to evaluate the quality of the matches. +3. Use a carefully selected IOU threshold to designate the matches as "good" ones and "bad" ones. - 3.a. If all IOU scores in a column are below the threshold, discard all predictions (structure and bounding boxes) for that column. -- Find the best-fitting content alignment for the predicted cells with good IOU per each column. The alignment of the column can be identified by the following formula: +4. Find the best-fitting content alignment for the predicted cells with good IOU per each column. The alignment of the column can be identified by the following formula: where c is one of { left, centroid, right } and x$\_{c}$ is the xcoordinate for the corresponding point. -- Use the alignment computed in step 4, to compute the median x -coordinate for all table columns and the me- -- Snap all cells with bad IOU to their corresponding median x -coordinates and cell sizes. -- Generate a new set of pair-wise matches between the corrected bounding boxes and PDF cells. This time use a modified version of the IOU metric, where the area of the intersection between the predicted and PDF cells is divided by the PDF cell area. In case there are multiple matches for the same PDF cell, the prediction with the higher score is preferred. This covers the cases where the PDF cells are smaller than the area of predicted or corrected prediction cells. -- In some rare occasions, we have noticed that TableFormer can confuse a single column as two. When the postprocessing steps are applied, this results with two predicted columns pointing to the same PDF column. In such case we must de-duplicate the columns according to highest total column intersection score. -- Pick up the remaining orphan cells. There could be cases, when after applying all the previous post-processing steps, some PDF cells could still remain without any match to predicted cells. However, it is still possible to deduce the correct matching for an orphan PDF cell by mapping its bounding box on the geometry of the grid. This mapping decides if the content of the orphan cell will be appended to an already matched table cell, or a new table cell should be created to match with the orphan. +5. Use the alignment computed in step 4, to compute the median x -coordinate for all table columns and the me- +6. Snap all cells with bad IOU to their corresponding median x -coordinates and cell sizes. +7. Generate a new set of pair-wise matches between the corrected bounding boxes and PDF cells. This time use a modified version of the IOU metric, where the area of the intersection between the predicted and PDF cells is divided by the PDF cell area. In case there are multiple matches for the same PDF cell, the prediction with the higher score is preferred. This covers the cases where the PDF cells are smaller than the area of predicted or corrected prediction cells. +8. In some rare occasions, we have noticed that TableFormer can confuse a single column as two. When the postprocessing steps are applied, this results with two predicted columns pointing to the same PDF column. In such case we must de-duplicate the columns according to highest total column intersection score. +9. Pick up the remaining orphan cells. There could be cases, when after applying all the previous post-processing steps, some PDF cells could still remain without any match to predicted cells. However, it is still possible to deduce the correct matching for an orphan PDF cell by mapping its bounding box on the geometry of the grid. This mapping decides if the content of the orphan cell will be appended to an already matched table cell, or a new table cell should be created to match with the orphan. 9a. Compute the top and bottom boundary of the horizontal band for each grid row (min/max y coordinates per row). diff --git a/tests/data/groundtruth/docling_v2/2206.01062.json b/tests/data/groundtruth/docling_v2/2206.01062.json index 31f4b30f..9a116a39 100644 --- a/tests/data/groundtruth/docling_v2/2206.01062.json +++ b/tests/data/groundtruth/docling_v2/2206.01062.json @@ -1,6 +1,6 @@ { "schema_name": "DoclingDocument", - "version": "1.4.0", + "version": "1.5.0", "name": "2206.01062", "origin": { "mimetype": "application/pdf", diff --git a/tests/data/groundtruth/docling_v2/2206.01062.md b/tests/data/groundtruth/docling_v2/2206.01062.md index 91802a6c..1a323e9a 100644 --- a/tests/data/groundtruth/docling_v2/2206.01062.md +++ b/tests/data/groundtruth/docling_v2/2206.01062.md @@ -48,16 +48,16 @@ A key problem in the process of document conversion is to understand the structu In this paper, we present the DocLayNet dataset. It provides pageby-page layout annotation ground-truth using bounding-boxes for 11 distinct class labels on 80863 unique document pages, of which a fraction carry double- or triple-annotations. DocLayNet is similar in spirit to PubLayNet and DocBank and will likewise be made available to the public 1 in order to stimulate the document-layout analysis community. It distinguishes itself in the following aspects: -- Human Annotation : In contrast to PubLayNet and DocBank, we relied on human annotation instead of automation approaches to generate the data set. -- Large Layout Variability : We include diverse and complex layouts from a large variety of public sources. -- Detailed Label Set : We define 11 class labels to distinguish layout features in high detail. PubLayNet provides 5 labels; DocBank provides 13, although not a superset of ours. -- Redundant Annotations : A fraction of the pages in the DocLayNet data set carry more than one human annotation. +- (1) Human Annotation : In contrast to PubLayNet and DocBank, we relied on human annotation instead of automation approaches to generate the data set. +- (2) Large Layout Variability : We include diverse and complex layouts from a large variety of public sources. +- (3) Detailed Label Set : We define 11 class labels to distinguish layout features in high detail. PubLayNet provides 5 labels; DocBank provides 13, although not a superset of ours. +- (4) Redundant Annotations : A fraction of the pages in the DocLayNet data set carry more than one human annotation. $^{1}$https://developer.ibm.com/exchanges/data/all/doclaynet This enables experimentation with annotation uncertainty and quality control analysis. -- Pre-defined Train-, Test- & Validation-set : Like DocBank, we provide fixed train-, test- & validation-sets to ensure proportional representation of the class-labels. Further, we prevent leakage of unique layouts across sets, which has a large effect on model accuracy scores. +- (5) Pre-defined Train-, Test- & Validation-set : Like DocBank, we provide fixed train-, test- & validation-sets to ensure proportional representation of the class-labels. Further, we prevent leakage of unique layouts across sets, which has a large effect on model accuracy scores. All aspects outlined above are detailed in Section 3. In Section 4, we will elaborate on how we designed and executed this large-scale human annotation campaign. We will also share key insights and lessons learned that might prove helpful for other parties planning to set up annotation campaigns. @@ -137,12 +137,12 @@ At first sight, the task of visual document-layout interpretation appears intuit Obviously, this inconsistency in annotations is not desirable for datasets which are intended to be used for model training. To minimise these inconsistencies, we created a detailed annotation guideline. While perfect consistency across 40 annotation staff members is clearly not possible to achieve, we saw a huge improvement in annotation consistency after the introduction of our annotation guideline. A few selected, non-trivial highlights of the guideline are: -- Every list-item is an individual object instance with class label List-item . This definition is different from PubLayNet and DocBank, where all list-items are grouped together into one List object. -- A List-item is a paragraph with hanging indentation. Singleline elements can qualify as List-item if the neighbour elements expose hanging indentation. Bullet or enumeration symbols are not a requirement. -- For every Caption , there must be exactly one corresponding Picture or Table . -- Connected sub-pictures are grouped together in one Picture object. -- Formula numbers are included in a Formula object. -- Emphasised text (e.g. in italic or bold) at the beginning of a paragraph is not considered a Section-header , unless it appears exclusively on its own line. +- (1) Every list-item is an individual object instance with class label List-item . This definition is different from PubLayNet and DocBank, where all list-items are grouped together into one List object. +- (2) A List-item is a paragraph with hanging indentation. Singleline elements can qualify as List-item if the neighbour elements expose hanging indentation. Bullet or enumeration symbols are not a requirement. +- (3) For every Caption , there must be exactly one corresponding Picture or Table . +- (4) Connected sub-pictures are grouped together in one Picture object. +- (5) Formula numbers are included in a Formula object. +- (6) Emphasised text (e.g. in italic or bold) at the beginning of a paragraph is not considered a Section-header , unless it appears exclusively on its own line. The complete annotation guideline is over 100 pages long and a detailed description is obviously out of scope for this paper. Nevertheless, it will be made publicly available alongside with DocLayNet for future reference. @@ -284,19 +284,19 @@ To date, there is still a significant gap between human and ML accuracy on the l ## REFERENCES -- Max Göbel, Tamir Hassan, Ermelinda Oro, and Giorgio Orsi. Icdar 2013 table competition. In 2013 12th International Conference on Document Analysis and Recognition , pages 1449-1453, 2013. -- Christian Clausner, Apostolos Antonacopoulos, and Stefan Pletschacher. Icdar2017 competition on recognition of documents with complex layouts rdcl2017. In 2017 14th IAPR International Conference on Document Analysis and Recognition (ICDAR) , volume 01, pages 1404-1410, 2017. -- Hervé Déjean, Jean-Luc Meunier, Liangcai Gao, Yilun Huang, Yu Fang, Florian Kleber, and Eva-Maria Lang. ICDAR 2019 Competition on Table Detection and Recognition (cTDaR), April 2019. http://sac.founderit.com/. -- Antonio Jimeno Yepes, Peter Zhong, and Douglas Burdick. Competition on scientific literature parsing. In Proceedings of the International Conference on Document Analysis and Recognition , ICDAR, pages 605-617. LNCS 12824, SpringerVerlag, sep 2021. -- Logan Markewich, Hao Zhang, Yubin Xing, Navid Lambert-Shirzad, Jiang Zhexin, Roy Lee, Zhi Li, and Seok-Bum Ko. Segmentation for document layout analysis: not dead yet. International Journal on Document Analysis and Recognition (IJDAR) , pages 1-11, 01 2022. -- Xu Zhong, Jianbin Tang, and Antonio Jimeno-Yepes. Publaynet: Largest dataset ever for document layout analysis. In Proceedings of the International Conference on Document Analysis and Recognition , ICDAR, pages 1015-1022, sep 2019. -- Minghao Li, Yiheng Xu, Lei Cui, Shaohan Huang, Furu Wei, Zhoujun Li, and Ming Zhou. Docbank: A benchmark dataset for document layout analysis. In Proceedings of the 28th International Conference on Computational Linguistics , COLING, pages 949-960. International Committee on Computational Linguistics, dec 2020. -- Riaz Ahmad, Muhammad Tanvir Afzal, and M. Qadir. Information extraction from pdf sources based on rule-based system using integrated formats. In SemWebEval@ESWC , 2016. -- Ross B. Girshick, Jeff Donahue, Trevor Darrell, and Jitendra Malik. Rich feature hierarchies for accurate object detection and semantic segmentation. In IEEE Conference on Computer Vision and Pattern Recognition , CVPR, pages 580-587. IEEE Computer Society, jun 2014. -- Ross B. Girshick. Fast R-CNN. In 2015 IEEE International Conference on Computer Vision , ICCV, pages 1440-1448. IEEE Computer Society, dec 2015. -- Shaoqing Ren, Kaiming He, Ross Girshick, and Jian Sun. Faster r-cnn: Towards real-time object detection with region proposal networks. IEEE Transactions on Pattern Analysis and Machine Intelligence , 39(6):1137-1149, 2017. -- Kaiming He, Georgia Gkioxari, Piotr Dollár, and Ross B. Girshick. Mask R-CNN. In IEEE International Conference on Computer Vision , ICCV, pages 2980-2988. IEEE Computer Society, Oct 2017. -- Glenn Jocher, Alex Stoken, Ayush Chaurasia, Jirka Borovec, NanoCode012, TaoXie, Yonghye Kwon, Kalen Michael, Liu Changyu, Jiacong Fang, Abhiram V, Laughing, tkianai, yxNONG, Piotr Skalski, Adam Hogan, Jebastin Nadar, imyhxy, Lorenzo Mammana, Alex Wang, Cristi Fati, Diego Montes, Jan Hajek, Laurentiu +- [1] Max Göbel, Tamir Hassan, Ermelinda Oro, and Giorgio Orsi. Icdar 2013 table competition. In 2013 12th International Conference on Document Analysis and Recognition , pages 1449-1453, 2013. +- [2] Christian Clausner, Apostolos Antonacopoulos, and Stefan Pletschacher. Icdar2017 competition on recognition of documents with complex layouts rdcl2017. In 2017 14th IAPR International Conference on Document Analysis and Recognition (ICDAR) , volume 01, pages 1404-1410, 2017. +- [3] Hervé Déjean, Jean-Luc Meunier, Liangcai Gao, Yilun Huang, Yu Fang, Florian Kleber, and Eva-Maria Lang. ICDAR 2019 Competition on Table Detection and Recognition (cTDaR), April 2019. http://sac.founderit.com/. +- [4] Antonio Jimeno Yepes, Peter Zhong, and Douglas Burdick. Competition on scientific literature parsing. In Proceedings of the International Conference on Document Analysis and Recognition , ICDAR, pages 605-617. LNCS 12824, SpringerVerlag, sep 2021. +- [5] Logan Markewich, Hao Zhang, Yubin Xing, Navid Lambert-Shirzad, Jiang Zhexin, Roy Lee, Zhi Li, and Seok-Bum Ko. Segmentation for document layout analysis: not dead yet. International Journal on Document Analysis and Recognition (IJDAR) , pages 1-11, 01 2022. +- [6] Xu Zhong, Jianbin Tang, and Antonio Jimeno-Yepes. Publaynet: Largest dataset ever for document layout analysis. In Proceedings of the International Conference on Document Analysis and Recognition , ICDAR, pages 1015-1022, sep 2019. +- [7] Minghao Li, Yiheng Xu, Lei Cui, Shaohan Huang, Furu Wei, Zhoujun Li, and Ming Zhou. Docbank: A benchmark dataset for document layout analysis. In Proceedings of the 28th International Conference on Computational Linguistics , COLING, pages 949-960. International Committee on Computational Linguistics, dec 2020. +- [8] Riaz Ahmad, Muhammad Tanvir Afzal, and M. Qadir. Information extraction from pdf sources based on rule-based system using integrated formats. In SemWebEval@ESWC , 2016. +- [9] Ross B. Girshick, Jeff Donahue, Trevor Darrell, and Jitendra Malik. Rich feature hierarchies for accurate object detection and semantic segmentation. In IEEE Conference on Computer Vision and Pattern Recognition , CVPR, pages 580-587. IEEE Computer Society, jun 2014. +- [10] Ross B. Girshick. Fast R-CNN. In 2015 IEEE International Conference on Computer Vision , ICCV, pages 1440-1448. IEEE Computer Society, dec 2015. +- [11] Shaoqing Ren, Kaiming He, Ross Girshick, and Jian Sun. Faster r-cnn: Towards real-time object detection with region proposal networks. IEEE Transactions on Pattern Analysis and Machine Intelligence , 39(6):1137-1149, 2017. +- [12] Kaiming He, Georgia Gkioxari, Piotr Dollár, and Ross B. Girshick. Mask R-CNN. In IEEE International Conference on Computer Vision , ICCV, pages 2980-2988. IEEE Computer Society, Oct 2017. +- [13] Glenn Jocher, Alex Stoken, Ayush Chaurasia, Jirka Borovec, NanoCode012, TaoXie, Yonghye Kwon, Kalen Michael, Liu Changyu, Jiacong Fang, Abhiram V, Laughing, tkianai, yxNONG, Piotr Skalski, Adam Hogan, Jebastin Nadar, imyhxy, Lorenzo Mammana, Alex Wang, Cristi Fati, Diego Montes, Jan Hajek, Laurentiu Text Caption List-Item Formula Table Section-Header Picture Page-Header Page-Footer Title @@ -306,13 +306,13 @@ Figure 6: Example layout predictions on selected pages from the DocLayNet test-s Diaconu, Mai Thanh Minh, Marc, albinxavi, fatih, oleg, and wanghao yang. ultralytics/yolov5: v6.0 - yolov5n nano models, roboflow integration, tensorflow export, opencv dnn support, October 2021. -- Shoubin Li, Xuyan Ma, Shuaiqun Pan, Jun Hu, Lin Shi, and Qing Wang. Vtlayout: Fusion of visual and text features for document layout analysis, 2021. -- Nicolas Carion, Francisco Massa, Gabriel Synnaeve, Nicolas Usunier, Alexander Kirillov, and Sergey Zagoruyko. End-to-end object detection with transformers. CoRR , abs/2005.12872, 2020. -- Mingxing Tan, Ruoming Pang, and Quoc V. Le. Efficientdet: Scalable and efficient object detection. CoRR , abs/1911.09070, 2019. -- Tsung-Yi Lin, Michael Maire, Serge J. Belongie, Lubomir D. Bourdev, Ross B. Girshick, James Hays, Pietro Perona, Deva Ramanan, Piotr Dollár, and C. Lawrence Zitnick. Microsoft COCO: common objects in context, 2014. -- Yuxin Wu, Alexander Kirillov, Francisco Massa, Wan-Yen Lo, and Ross Girshick. Detectron2, 2019. -- Nikolaos Livathinos, Cesar Berrospi, Maksym Lysak, Viktor Kuropiatnyk, Ahmed Nassar, Andre Carvalho, Michele Dolfi, Christoph Auer, Kasper Dinkla, and Peter W. J. Staar. Robust pdf document conversion using recurrent neural networks. In Proceedings of the 35th Conference on Artificial Intelligence , AAAI, pages 1513715145, feb 2021. -- Yiheng Xu, Minghao Li, Lei Cui, Shaohan Huang, Furu Wei, and Ming Zhou. Layoutlm: Pre-training of text and layout for document image understanding. In Proceedings of the 26th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining , KDD, pages 1192-1200, New York, USA, 2020. Association for Computing Machinery. -- Peng Zhang, Can Li, Liang Qiao, Zhanzhan Cheng, Shiliang Pu, Yi Niu, and Fei Wu. Vsr: A unified framework for document layout analysis combining vision, semantics and relations, 2021. -- Peter W J Staar, Michele Dolfi, Christoph Auer, and Costas Bekas. Corpus conversion service: A machine learning platform to ingest documents at scale. In Proceedings of the 24th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining , KDD, pages 774-782. ACM, 2018. -- Connor Shorten and Taghi M. Khoshgoftaar. A survey on image data augmentation for deep learning. Journal of Big Data , 6(1):60, 2019. \ No newline at end of file +- [20] Shoubin Li, Xuyan Ma, Shuaiqun Pan, Jun Hu, Lin Shi, and Qing Wang. Vtlayout: Fusion of visual and text features for document layout analysis, 2021. +- [14] Nicolas Carion, Francisco Massa, Gabriel Synnaeve, Nicolas Usunier, Alexander Kirillov, and Sergey Zagoruyko. End-to-end object detection with transformers. CoRR , abs/2005.12872, 2020. +- [15] Mingxing Tan, Ruoming Pang, and Quoc V. Le. Efficientdet: Scalable and efficient object detection. CoRR , abs/1911.09070, 2019. +- [16] Tsung-Yi Lin, Michael Maire, Serge J. Belongie, Lubomir D. Bourdev, Ross B. Girshick, James Hays, Pietro Perona, Deva Ramanan, Piotr Dollár, and C. Lawrence Zitnick. Microsoft COCO: common objects in context, 2014. +- [17] Yuxin Wu, Alexander Kirillov, Francisco Massa, Wan-Yen Lo, and Ross Girshick. Detectron2, 2019. +- [18] Nikolaos Livathinos, Cesar Berrospi, Maksym Lysak, Viktor Kuropiatnyk, Ahmed Nassar, Andre Carvalho, Michele Dolfi, Christoph Auer, Kasper Dinkla, and Peter W. J. Staar. Robust pdf document conversion using recurrent neural networks. In Proceedings of the 35th Conference on Artificial Intelligence , AAAI, pages 1513715145, feb 2021. +- [19] Yiheng Xu, Minghao Li, Lei Cui, Shaohan Huang, Furu Wei, and Ming Zhou. Layoutlm: Pre-training of text and layout for document image understanding. In Proceedings of the 26th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining , KDD, pages 1192-1200, New York, USA, 2020. Association for Computing Machinery. +- [21] Peng Zhang, Can Li, Liang Qiao, Zhanzhan Cheng, Shiliang Pu, Yi Niu, and Fei Wu. Vsr: A unified framework for document layout analysis combining vision, semantics and relations, 2021. +- [22] Peter W J Staar, Michele Dolfi, Christoph Auer, and Costas Bekas. Corpus conversion service: A machine learning platform to ingest documents at scale. In Proceedings of the 24th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining , KDD, pages 774-782. ACM, 2018. +- [23] Connor Shorten and Taghi M. Khoshgoftaar. A survey on image data augmentation for deep learning. Journal of Big Data , 6(1):60, 2019. \ No newline at end of file diff --git a/tests/data/groundtruth/docling_v2/2305.03393v1-pg9.json b/tests/data/groundtruth/docling_v2/2305.03393v1-pg9.json index 8ce7f748..bdf39cc8 100644 --- a/tests/data/groundtruth/docling_v2/2305.03393v1-pg9.json +++ b/tests/data/groundtruth/docling_v2/2305.03393v1-pg9.json @@ -1,6 +1,6 @@ { "schema_name": "DoclingDocument", - "version": "1.4.0", + "version": "1.5.0", "name": "2305.03393v1-pg9", "origin": { "mimetype": "application/pdf", diff --git a/tests/data/groundtruth/docling_v2/2305.03393v1.doctags.txt b/tests/data/groundtruth/docling_v2/2305.03393v1.doctags.txt index 26265482..2d0bedb6 100644 --- a/tests/data/groundtruth/docling_v2/2305.03393v1.doctags.txt +++ b/tests/data/groundtruth/docling_v2/2305.03393v1.doctags.txt @@ -60,8 +60,6 @@ Optimized Table Tokenization for Table Structure Recognition 7 Fig. 3. OTSL description of table structure: A - table example; B - graphical representation of table structure; C - mapping structure on a grid; D - OTSL structure encoding; E - explanation on cell encoding -4 - 2d merges: "C", "L", "U", "X" - 4.2 Language Syntax The OTSL representation follows these syntax rules: Left-looking cell rule : The left neighbour of an "L" cell must be either another "L" cell or a "C" cell. diff --git a/tests/data/groundtruth/docling_v2/2305.03393v1.json b/tests/data/groundtruth/docling_v2/2305.03393v1.json index f4c04cd6..a9ff7da8 100644 --- a/tests/data/groundtruth/docling_v2/2305.03393v1.json +++ b/tests/data/groundtruth/docling_v2/2305.03393v1.json @@ -1,6 +1,6 @@ { "schema_name": "DoclingDocument", - "version": "1.4.0", + "version": "1.5.0", "name": "2305.03393v1", "origin": { "mimetype": "application/pdf", @@ -164,23 +164,20 @@ { "cref": "#/pictures/2" }, - { - "cref": "#/texts/228" - }, { "cref": "#/texts/229" }, { - "cref": "#/groups/2" - }, - { - "cref": "#/texts/232" + "cref": "#/texts/230" }, { "cref": "#/groups/3" }, { - "cref": "#/texts/237" + "cref": "#/texts/233" + }, + { + "cref": "#/groups/4" }, { "cref": "#/texts/238" @@ -207,10 +204,10 @@ "cref": "#/texts/245" }, { - "cref": "#/pictures/3" + "cref": "#/texts/246" }, { - "cref": "#/texts/319" + "cref": "#/pictures/3" }, { "cref": "#/texts/320" @@ -228,10 +225,10 @@ "cref": "#/texts/324" }, { - "cref": "#/tables/0" + "cref": "#/texts/325" }, { - "cref": "#/texts/326" + "cref": "#/tables/0" }, { "cref": "#/texts/327" @@ -246,19 +243,19 @@ "cref": "#/texts/330" }, { - "cref": "#/tables/1" + "cref": "#/texts/331" }, { - "cref": "#/texts/332" + "cref": "#/tables/1" }, { "cref": "#/texts/333" }, { - "cref": "#/pictures/4" + "cref": "#/texts/334" }, { - "cref": "#/texts/432" + "cref": "#/pictures/4" }, { "cref": "#/texts/433" @@ -270,10 +267,10 @@ "cref": "#/texts/435" }, { - "cref": "#/pictures/5" + "cref": "#/texts/436" }, { - "cref": "#/texts/448" + "cref": "#/pictures/5" }, { "cref": "#/texts/449" @@ -294,25 +291,28 @@ "cref": "#/texts/454" }, { - "cref": "#/groups/4" - }, - { - "cref": "#/texts/459" - }, - { - "cref": "#/texts/460" + "cref": "#/texts/455" }, { "cref": "#/groups/5" }, { - "cref": "#/texts/474" + "cref": "#/texts/460" + }, + { + "cref": "#/texts/461" + }, + { + "cref": "#/groups/6" }, { "cref": "#/texts/475" }, { - "cref": "#/groups/6" + "cref": "#/texts/476" + }, + { + "cref": "#/groups/7" } ], "content_layer": "body", @@ -372,18 +372,15 @@ { "self_ref": "#/groups/2", "parent": { - "cref": "#/body" + "cref": "#/pictures/2" }, "children": [ { - "cref": "#/texts/230" - }, - { - "cref": "#/texts/231" + "cref": "#/texts/215" } ], "content_layer": "body", - "name": "list", + "name": "group", "label": "list" }, { @@ -393,16 +390,10 @@ }, "children": [ { - "cref": "#/texts/233" + "cref": "#/texts/231" }, { - "cref": "#/texts/234" - }, - { - "cref": "#/texts/235" - }, - { - "cref": "#/texts/236" + "cref": "#/texts/232" } ], "content_layer": "body", @@ -416,16 +407,16 @@ }, "children": [ { - "cref": "#/texts/455" + "cref": "#/texts/234" }, { - "cref": "#/texts/456" + "cref": "#/texts/235" }, { - "cref": "#/texts/457" + "cref": "#/texts/236" }, { - "cref": "#/texts/458" + "cref": "#/texts/237" } ], "content_layer": "body", @@ -439,8 +430,28 @@ }, "children": [ { - "cref": "#/texts/461" + "cref": "#/texts/456" }, + { + "cref": "#/texts/457" + }, + { + "cref": "#/texts/458" + }, + { + "cref": "#/texts/459" + } + ], + "content_layer": "body", + "name": "list", + "label": "list" + }, + { + "self_ref": "#/groups/6", + "parent": { + "cref": "#/body" + }, + "children": [ { "cref": "#/texts/462" }, @@ -476,6 +487,9 @@ }, { "cref": "#/texts/473" + }, + { + "cref": "#/texts/474" } ], "content_layer": "body", @@ -483,14 +497,11 @@ "label": "list" }, { - "self_ref": "#/groups/6", + "self_ref": "#/groups/7", "parent": { "cref": "#/body" }, "children": [ - { - "cref": "#/texts/476" - }, { "cref": "#/texts/477" }, @@ -505,24 +516,13 @@ }, { "cref": "#/texts/481" - } - ], - "content_layer": "body", - "name": "list", - "label": "list" - }, - { - "self_ref": "#/groups/7", - "parent": { - "cref": "#/pictures/2" - }, - "children": [ + }, { "cref": "#/texts/482" } ], "content_layer": "body", - "name": "group", + "name": "list", "label": "list" } ], @@ -4970,7 +4970,7 @@ "formatting": null, "hyperlink": null, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/153", @@ -5001,7 +5001,7 @@ "formatting": null, "hyperlink": null, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/154", @@ -5032,7 +5032,7 @@ "formatting": null, "hyperlink": null, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/155", @@ -5063,7 +5063,7 @@ "formatting": null, "hyperlink": null, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/156", @@ -5094,7 +5094,7 @@ "formatting": null, "hyperlink": null, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/157", @@ -6780,6 +6780,37 @@ }, { "self_ref": "#/texts/215", + "parent": { + "cref": "#/groups/2" + }, + "children": [], + "content_layer": "body", + "label": "list_item", + "prov": [ + { + "page_no": 7, + "bbox": { + "l": 334.51135, + "t": 519.19159, + "r": 426.59875, + "b": 512.97711, + "coord_origin": "BOTTOMLEFT" + }, + "charspan": [ + 0, + 33 + ] + } + ], + "orig": "4 - 2d merges: \"C\", \"L\", \"U\", \"X\"", + "text": "4 - 2d merges: \"C\", \"L\", \"U\", \"X\"", + "formatting": null, + "hyperlink": null, + "enumerated": false, + "marker": "" + }, + { + "self_ref": "#/texts/216", "parent": { "cref": "#/pictures/2" }, @@ -6808,7 +6839,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/216", + "self_ref": "#/texts/217", "parent": { "cref": "#/pictures/2" }, @@ -6837,7 +6868,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/217", + "self_ref": "#/texts/218", "parent": { "cref": "#/pictures/2" }, @@ -6866,7 +6897,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/218", + "self_ref": "#/texts/219", "parent": { "cref": "#/pictures/2" }, @@ -6895,7 +6926,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/219", + "self_ref": "#/texts/220", "parent": { "cref": "#/pictures/2" }, @@ -6924,7 +6955,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/220", + "self_ref": "#/texts/221", "parent": { "cref": "#/pictures/2" }, @@ -6953,7 +6984,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/221", + "self_ref": "#/texts/222", "parent": { "cref": "#/pictures/2" }, @@ -6982,7 +7013,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/222", + "self_ref": "#/texts/223", "parent": { "cref": "#/pictures/2" }, @@ -7011,7 +7042,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/223", + "self_ref": "#/texts/224", "parent": { "cref": "#/pictures/2" }, @@ -7040,7 +7071,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/224", + "self_ref": "#/texts/225", "parent": { "cref": "#/pictures/2" }, @@ -7069,7 +7100,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/225", + "self_ref": "#/texts/226", "parent": { "cref": "#/pictures/2" }, @@ -7098,7 +7129,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/226", + "self_ref": "#/texts/227", "parent": { "cref": "#/pictures/2" }, @@ -7127,7 +7158,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/227", + "self_ref": "#/texts/228", "parent": { "cref": "#/pictures/2" }, @@ -7156,7 +7187,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/228", + "self_ref": "#/texts/229", "parent": { "cref": "#/body" }, @@ -7186,7 +7217,7 @@ "level": 1 }, { - "self_ref": "#/texts/229", + "self_ref": "#/texts/230", "parent": { "cref": "#/body" }, @@ -7215,9 +7246,9 @@ "hyperlink": null }, { - "self_ref": "#/texts/230", + "self_ref": "#/texts/231", "parent": { - "cref": "#/groups/2" + "cref": "#/groups/3" }, "children": [], "content_layer": "body", @@ -7246,9 +7277,9 @@ "marker": "1." }, { - "self_ref": "#/texts/231", + "self_ref": "#/texts/232", "parent": { - "cref": "#/groups/2" + "cref": "#/groups/3" }, "children": [], "content_layer": "body", @@ -7277,7 +7308,7 @@ "marker": "2." }, { - "self_ref": "#/texts/232", + "self_ref": "#/texts/233", "parent": { "cref": "#/body" }, @@ -7307,9 +7338,9 @@ "level": 1 }, { - "self_ref": "#/texts/233", + "self_ref": "#/texts/234", "parent": { - "cref": "#/groups/3" + "cref": "#/groups/4" }, "children": [], "content_layer": "body", @@ -7335,12 +7366,12 @@ "formatting": null, "hyperlink": null, "enumerated": false, - "marker": "-" + "marker": "" }, { - "self_ref": "#/texts/234", + "self_ref": "#/texts/235", "parent": { - "cref": "#/groups/3" + "cref": "#/groups/4" }, "children": [], "content_layer": "body", @@ -7369,9 +7400,9 @@ "marker": "4." }, { - "self_ref": "#/texts/235", + "self_ref": "#/texts/236", "parent": { - "cref": "#/groups/3" + "cref": "#/groups/4" }, "children": [], "content_layer": "body", @@ -7400,9 +7431,9 @@ "marker": "5." }, { - "self_ref": "#/texts/236", + "self_ref": "#/texts/237", "parent": { - "cref": "#/groups/3" + "cref": "#/groups/4" }, "children": [], "content_layer": "body", @@ -7431,7 +7462,7 @@ "marker": "6." }, { - "self_ref": "#/texts/237", + "self_ref": "#/texts/238", "parent": { "cref": "#/body" }, @@ -7460,7 +7491,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/238", + "self_ref": "#/texts/239", "parent": { "cref": "#/body" }, @@ -7489,7 +7520,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/239", + "self_ref": "#/texts/240", "parent": { "cref": "#/body" }, @@ -7518,7 +7549,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/240", + "self_ref": "#/texts/241", "parent": { "cref": "#/body" }, @@ -7547,7 +7578,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/241", + "self_ref": "#/texts/242", "parent": { "cref": "#/body" }, @@ -7576,7 +7607,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/242", + "self_ref": "#/texts/243", "parent": { "cref": "#/body" }, @@ -7606,7 +7637,7 @@ "level": 1 }, { - "self_ref": "#/texts/243", + "self_ref": "#/texts/244", "parent": { "cref": "#/body" }, @@ -7635,7 +7666,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/244", + "self_ref": "#/texts/245", "parent": { "cref": "#/body" }, @@ -7665,7 +7696,7 @@ "level": 1 }, { - "self_ref": "#/texts/245", + "self_ref": "#/texts/246", "parent": { "cref": "#/body" }, @@ -7694,7 +7725,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/246", + "self_ref": "#/texts/247", "parent": { "cref": "#/pictures/3" }, @@ -7723,7 +7754,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/247", + "self_ref": "#/texts/248", "parent": { "cref": "#/pictures/3" }, @@ -7752,7 +7783,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/248", + "self_ref": "#/texts/249", "parent": { "cref": "#/pictures/3" }, @@ -7781,7 +7812,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/249", + "self_ref": "#/texts/250", "parent": { "cref": "#/pictures/3" }, @@ -7810,7 +7841,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/250", + "self_ref": "#/texts/251", "parent": { "cref": "#/pictures/3" }, @@ -7839,7 +7870,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/251", + "self_ref": "#/texts/252", "parent": { "cref": "#/pictures/3" }, @@ -7868,7 +7899,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/252", + "self_ref": "#/texts/253", "parent": { "cref": "#/pictures/3" }, @@ -7897,7 +7928,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/253", + "self_ref": "#/texts/254", "parent": { "cref": "#/pictures/3" }, @@ -7926,7 +7957,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/254", + "self_ref": "#/texts/255", "parent": { "cref": "#/pictures/3" }, @@ -7955,7 +7986,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/255", + "self_ref": "#/texts/256", "parent": { "cref": "#/pictures/3" }, @@ -7984,7 +8015,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/256", + "self_ref": "#/texts/257", "parent": { "cref": "#/pictures/3" }, @@ -8013,7 +8044,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/257", + "self_ref": "#/texts/258", "parent": { "cref": "#/pictures/3" }, @@ -8042,7 +8073,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/258", + "self_ref": "#/texts/259", "parent": { "cref": "#/pictures/3" }, @@ -8071,7 +8102,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/259", + "self_ref": "#/texts/260", "parent": { "cref": "#/pictures/3" }, @@ -8100,7 +8131,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/260", + "self_ref": "#/texts/261", "parent": { "cref": "#/pictures/3" }, @@ -8129,7 +8160,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/261", + "self_ref": "#/texts/262", "parent": { "cref": "#/pictures/3" }, @@ -8158,7 +8189,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/262", + "self_ref": "#/texts/263", "parent": { "cref": "#/pictures/3" }, @@ -8187,7 +8218,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/263", + "self_ref": "#/texts/264", "parent": { "cref": "#/pictures/3" }, @@ -8216,7 +8247,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/264", + "self_ref": "#/texts/265", "parent": { "cref": "#/pictures/3" }, @@ -8245,7 +8276,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/265", + "self_ref": "#/texts/266", "parent": { "cref": "#/pictures/3" }, @@ -8274,7 +8305,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/266", + "self_ref": "#/texts/267", "parent": { "cref": "#/pictures/3" }, @@ -8303,7 +8334,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/267", + "self_ref": "#/texts/268", "parent": { "cref": "#/pictures/3" }, @@ -8332,7 +8363,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/268", + "self_ref": "#/texts/269", "parent": { "cref": "#/pictures/3" }, @@ -8361,7 +8392,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/269", + "self_ref": "#/texts/270", "parent": { "cref": "#/pictures/3" }, @@ -8390,7 +8421,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/270", + "self_ref": "#/texts/271", "parent": { "cref": "#/pictures/3" }, @@ -8419,7 +8450,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/271", + "self_ref": "#/texts/272", "parent": { "cref": "#/pictures/3" }, @@ -8448,7 +8479,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/272", + "self_ref": "#/texts/273", "parent": { "cref": "#/pictures/3" }, @@ -8477,7 +8508,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/273", + "self_ref": "#/texts/274", "parent": { "cref": "#/pictures/3" }, @@ -8506,7 +8537,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/274", + "self_ref": "#/texts/275", "parent": { "cref": "#/pictures/3" }, @@ -8535,7 +8566,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/275", + "self_ref": "#/texts/276", "parent": { "cref": "#/pictures/3" }, @@ -8564,7 +8595,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/276", + "self_ref": "#/texts/277", "parent": { "cref": "#/pictures/3" }, @@ -8593,7 +8624,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/277", + "self_ref": "#/texts/278", "parent": { "cref": "#/pictures/3" }, @@ -8622,7 +8653,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/278", + "self_ref": "#/texts/279", "parent": { "cref": "#/pictures/3" }, @@ -8651,7 +8682,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/279", + "self_ref": "#/texts/280", "parent": { "cref": "#/pictures/3" }, @@ -8680,7 +8711,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/280", + "self_ref": "#/texts/281", "parent": { "cref": "#/pictures/3" }, @@ -8709,7 +8740,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/281", + "self_ref": "#/texts/282", "parent": { "cref": "#/pictures/3" }, @@ -8738,7 +8769,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/282", + "self_ref": "#/texts/283", "parent": { "cref": "#/pictures/3" }, @@ -8767,7 +8798,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/283", + "self_ref": "#/texts/284", "parent": { "cref": "#/pictures/3" }, @@ -8796,7 +8827,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/284", + "self_ref": "#/texts/285", "parent": { "cref": "#/pictures/3" }, @@ -8825,7 +8856,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/285", + "self_ref": "#/texts/286", "parent": { "cref": "#/pictures/3" }, @@ -8854,7 +8885,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/286", + "self_ref": "#/texts/287", "parent": { "cref": "#/pictures/3" }, @@ -8883,7 +8914,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/287", + "self_ref": "#/texts/288", "parent": { "cref": "#/pictures/3" }, @@ -8912,7 +8943,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/288", + "self_ref": "#/texts/289", "parent": { "cref": "#/pictures/3" }, @@ -8941,7 +8972,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/289", + "self_ref": "#/texts/290", "parent": { "cref": "#/pictures/3" }, @@ -8970,7 +9001,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/290", + "self_ref": "#/texts/291", "parent": { "cref": "#/pictures/3" }, @@ -8999,7 +9030,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/291", + "self_ref": "#/texts/292", "parent": { "cref": "#/pictures/3" }, @@ -9028,7 +9059,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/292", + "self_ref": "#/texts/293", "parent": { "cref": "#/pictures/3" }, @@ -9057,7 +9088,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/293", + "self_ref": "#/texts/294", "parent": { "cref": "#/pictures/3" }, @@ -9086,7 +9117,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/294", + "self_ref": "#/texts/295", "parent": { "cref": "#/pictures/3" }, @@ -9115,7 +9146,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/295", + "self_ref": "#/texts/296", "parent": { "cref": "#/pictures/3" }, @@ -9144,7 +9175,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/296", + "self_ref": "#/texts/297", "parent": { "cref": "#/pictures/3" }, @@ -9173,7 +9204,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/297", + "self_ref": "#/texts/298", "parent": { "cref": "#/pictures/3" }, @@ -9202,7 +9233,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/298", + "self_ref": "#/texts/299", "parent": { "cref": "#/pictures/3" }, @@ -9231,7 +9262,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/299", + "self_ref": "#/texts/300", "parent": { "cref": "#/pictures/3" }, @@ -9260,7 +9291,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/300", + "self_ref": "#/texts/301", "parent": { "cref": "#/pictures/3" }, @@ -9289,7 +9320,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/301", + "self_ref": "#/texts/302", "parent": { "cref": "#/pictures/3" }, @@ -9318,7 +9349,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/302", + "self_ref": "#/texts/303", "parent": { "cref": "#/pictures/3" }, @@ -9347,7 +9378,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/303", + "self_ref": "#/texts/304", "parent": { "cref": "#/pictures/3" }, @@ -9376,7 +9407,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/304", + "self_ref": "#/texts/305", "parent": { "cref": "#/pictures/3" }, @@ -9405,7 +9436,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/305", + "self_ref": "#/texts/306", "parent": { "cref": "#/pictures/3" }, @@ -9434,7 +9465,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/306", + "self_ref": "#/texts/307", "parent": { "cref": "#/pictures/3" }, @@ -9463,7 +9494,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/307", + "self_ref": "#/texts/308", "parent": { "cref": "#/pictures/3" }, @@ -9492,7 +9523,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/308", + "self_ref": "#/texts/309", "parent": { "cref": "#/pictures/3" }, @@ -9521,7 +9552,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/309", + "self_ref": "#/texts/310", "parent": { "cref": "#/pictures/3" }, @@ -9550,7 +9581,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/310", + "self_ref": "#/texts/311", "parent": { "cref": "#/pictures/3" }, @@ -9579,7 +9610,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/311", + "self_ref": "#/texts/312", "parent": { "cref": "#/pictures/3" }, @@ -9608,7 +9639,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/312", + "self_ref": "#/texts/313", "parent": { "cref": "#/pictures/3" }, @@ -9637,7 +9668,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/313", + "self_ref": "#/texts/314", "parent": { "cref": "#/pictures/3" }, @@ -9666,7 +9697,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/314", + "self_ref": "#/texts/315", "parent": { "cref": "#/pictures/3" }, @@ -9695,7 +9726,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/315", + "self_ref": "#/texts/316", "parent": { "cref": "#/pictures/3" }, @@ -9724,7 +9755,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/316", + "self_ref": "#/texts/317", "parent": { "cref": "#/pictures/3" }, @@ -9753,7 +9784,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/317", + "self_ref": "#/texts/318", "parent": { "cref": "#/pictures/3" }, @@ -9782,7 +9813,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/318", + "self_ref": "#/texts/319", "parent": { "cref": "#/pictures/3" }, @@ -9811,7 +9842,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/319", + "self_ref": "#/texts/320", "parent": { "cref": "#/body" }, @@ -9840,7 +9871,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/320", + "self_ref": "#/texts/321", "parent": { "cref": "#/body" }, @@ -9869,7 +9900,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/321", + "self_ref": "#/texts/322", "parent": { "cref": "#/body" }, @@ -9898,7 +9929,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/322", + "self_ref": "#/texts/323", "parent": { "cref": "#/body" }, @@ -9927,7 +9958,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/323", + "self_ref": "#/texts/324", "parent": { "cref": "#/body" }, @@ -9957,7 +9988,7 @@ "level": 1 }, { - "self_ref": "#/texts/324", + "self_ref": "#/texts/325", "parent": { "cref": "#/body" }, @@ -9986,7 +10017,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/325", + "self_ref": "#/texts/326", "parent": { "cref": "#/tables/0" }, @@ -10015,7 +10046,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/326", + "self_ref": "#/texts/327", "parent": { "cref": "#/body" }, @@ -10045,7 +10076,7 @@ "level": 1 }, { - "self_ref": "#/texts/327", + "self_ref": "#/texts/328", "parent": { "cref": "#/body" }, @@ -10074,7 +10105,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/328", + "self_ref": "#/texts/329", "parent": { "cref": "#/body" }, @@ -10103,7 +10134,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/329", + "self_ref": "#/texts/330", "parent": { "cref": "#/body" }, @@ -10132,7 +10163,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/330", + "self_ref": "#/texts/331", "parent": { "cref": "#/body" }, @@ -10161,7 +10192,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/331", + "self_ref": "#/texts/332", "parent": { "cref": "#/tables/1" }, @@ -10190,7 +10221,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/332", + "self_ref": "#/texts/333", "parent": { "cref": "#/body" }, @@ -10220,7 +10251,7 @@ "level": 1 }, { - "self_ref": "#/texts/333", + "self_ref": "#/texts/334", "parent": { "cref": "#/body" }, @@ -10249,7 +10280,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/334", + "self_ref": "#/texts/335", "parent": { "cref": "#/pictures/4" }, @@ -10278,7 +10309,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/335", + "self_ref": "#/texts/336", "parent": { "cref": "#/pictures/4" }, @@ -10307,7 +10338,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/336", + "self_ref": "#/texts/337", "parent": { "cref": "#/pictures/4" }, @@ -10336,7 +10367,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/337", + "self_ref": "#/texts/338", "parent": { "cref": "#/pictures/4" }, @@ -10365,7 +10396,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/338", + "self_ref": "#/texts/339", "parent": { "cref": "#/pictures/4" }, @@ -10394,7 +10425,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/339", + "self_ref": "#/texts/340", "parent": { "cref": "#/pictures/4" }, @@ -10423,7 +10454,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/340", + "self_ref": "#/texts/341", "parent": { "cref": "#/pictures/4" }, @@ -10452,7 +10483,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/341", + "self_ref": "#/texts/342", "parent": { "cref": "#/pictures/4" }, @@ -10481,7 +10512,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/342", + "self_ref": "#/texts/343", "parent": { "cref": "#/pictures/4" }, @@ -10510,7 +10541,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/343", + "self_ref": "#/texts/344", "parent": { "cref": "#/pictures/4" }, @@ -10539,7 +10570,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/344", + "self_ref": "#/texts/345", "parent": { "cref": "#/pictures/4" }, @@ -10568,7 +10599,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/345", + "self_ref": "#/texts/346", "parent": { "cref": "#/pictures/4" }, @@ -10597,7 +10628,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/346", + "self_ref": "#/texts/347", "parent": { "cref": "#/pictures/4" }, @@ -10626,7 +10657,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/347", + "self_ref": "#/texts/348", "parent": { "cref": "#/pictures/4" }, @@ -10655,7 +10686,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/348", + "self_ref": "#/texts/349", "parent": { "cref": "#/pictures/4" }, @@ -10683,35 +10714,6 @@ "formatting": null, "hyperlink": null }, - { - "self_ref": "#/texts/349", - "parent": { - "cref": "#/pictures/4" - }, - "children": [], - "content_layer": "body", - "label": "text", - "prov": [ - { - "page_no": 10, - "bbox": { - "l": 410.25699, - "t": 269.80075, - "r": 450.48605, - "b": 267.08404999999993, - "coord_origin": "BOTTOMLEFT" - }, - "charspan": [ - 0, - 28 - ] - } - ], - "orig": "C C C C C C C C C C C C C NL", - "text": "C C C C C C C C C C C C C NL", - "formatting": null, - "hyperlink": null - }, { "self_ref": "#/texts/350", "parent": { @@ -10724,20 +10726,20 @@ { "page_no": 10, "bbox": { - "l": 407.38348, - "t": 265.90192, - "r": 408.82025, - "b": 263.18521, + "l": 410.25699, + "t": 269.80075, + "r": 450.48605, + "b": 267.08404999999993, "coord_origin": "BOTTOMLEFT" }, "charspan": [ 0, - 1 + 28 ] } ], - "orig": "C", - "text": "C", + "orig": "C C C C C C C C C C C C C NL", + "text": "C C C C C C C C C C C C C NL", "formatting": null, "hyperlink": null }, @@ -10749,6 +10751,35 @@ "children": [], "content_layer": "body", "label": "text", + "prov": [ + { + "page_no": 10, + "bbox": { + "l": 407.38348, + "t": 265.90192, + "r": 408.82025, + "b": 263.18521, + "coord_origin": "BOTTOMLEFT" + }, + "charspan": [ + 0, + 1 + ] + } + ], + "orig": "C", + "text": "C", + "formatting": null, + "hyperlink": null + }, + { + "self_ref": "#/texts/352", + "parent": { + "cref": "#/pictures/4" + }, + "children": [], + "content_layer": "body", + "label": "text", "prov": [ { "page_no": 10, @@ -10771,7 +10802,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/352", + "self_ref": "#/texts/353", "parent": { "cref": "#/pictures/4" }, @@ -10799,35 +10830,6 @@ "formatting": null, "hyperlink": null }, - { - "self_ref": "#/texts/353", - "parent": { - "cref": "#/pictures/4" - }, - "children": [], - "content_layer": "body", - "label": "text", - "prov": [ - { - "page_no": 10, - "bbox": { - "l": 410.25699, - "t": 262.00305000000003, - "r": 450.48605, - "b": 259.2863500000001, - "coord_origin": "BOTTOMLEFT" - }, - "charspan": [ - 0, - 28 - ] - } - ], - "orig": "C C C C C C C C C C C C C NL", - "text": "C C C C C C C C C C C C C NL", - "formatting": null, - "hyperlink": null - }, { "self_ref": "#/texts/354", "parent": { @@ -10840,20 +10842,20 @@ { "page_no": 10, "bbox": { - "l": 407.38348, - "t": 258.10421999999994, - "r": 408.82025, - "b": 255.38750000000005, + "l": 410.25699, + "t": 262.00305000000003, + "r": 450.48605, + "b": 259.2863500000001, "coord_origin": "BOTTOMLEFT" }, "charspan": [ 0, - 1 + 28 ] } ], - "orig": "C", - "text": "C", + "orig": "C C C C C C C C C C C C C NL", + "text": "C C C C C C C C C C C C C NL", "formatting": null, "hyperlink": null }, @@ -10865,6 +10867,35 @@ "children": [], "content_layer": "body", "label": "text", + "prov": [ + { + "page_no": 10, + "bbox": { + "l": 407.38348, + "t": 258.10421999999994, + "r": 408.82025, + "b": 255.38750000000005, + "coord_origin": "BOTTOMLEFT" + }, + "charspan": [ + 0, + 1 + ] + } + ], + "orig": "C", + "text": "C", + "formatting": null, + "hyperlink": null + }, + { + "self_ref": "#/texts/356", + "parent": { + "cref": "#/pictures/4" + }, + "children": [], + "content_layer": "body", + "label": "text", "prov": [ { "page_no": 10, @@ -10887,7 +10918,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/356", + "self_ref": "#/texts/357", "parent": { "cref": "#/pictures/4" }, @@ -10915,35 +10946,6 @@ "formatting": null, "hyperlink": null }, - { - "self_ref": "#/texts/357", - "parent": { - "cref": "#/pictures/4" - }, - "children": [], - "content_layer": "body", - "label": "text", - "prov": [ - { - "page_no": 10, - "bbox": { - "l": 410.25699, - "t": 254.20537000000002, - "r": 450.48605, - "b": 251.48865, - "coord_origin": "BOTTOMLEFT" - }, - "charspan": [ - 0, - 28 - ] - } - ], - "orig": "C C C C C C C C C C C C C NL", - "text": "C C C C C C C C C C C C C NL", - "formatting": null, - "hyperlink": null - }, { "self_ref": "#/texts/358", "parent": { @@ -10956,20 +10958,20 @@ { "page_no": 10, "bbox": { - "l": 407.38348, - "t": 250.30651999999998, - "r": 408.82025, - "b": 247.58979999999997, + "l": 410.25699, + "t": 254.20537000000002, + "r": 450.48605, + "b": 251.48865, "coord_origin": "BOTTOMLEFT" }, "charspan": [ 0, - 1 + 28 ] } ], - "orig": "C", - "text": "C", + "orig": "C C C C C C C C C C C C C NL", + "text": "C C C C C C C C C C C C C NL", "formatting": null, "hyperlink": null }, @@ -10981,6 +10983,35 @@ "children": [], "content_layer": "body", "label": "text", + "prov": [ + { + "page_no": 10, + "bbox": { + "l": 407.38348, + "t": 250.30651999999998, + "r": 408.82025, + "b": 247.58979999999997, + "coord_origin": "BOTTOMLEFT" + }, + "charspan": [ + 0, + 1 + ] + } + ], + "orig": "C", + "text": "C", + "formatting": null, + "hyperlink": null + }, + { + "self_ref": "#/texts/360", + "parent": { + "cref": "#/pictures/4" + }, + "children": [], + "content_layer": "body", + "label": "text", "prov": [ { "page_no": 10, @@ -11003,7 +11034,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/360", + "self_ref": "#/texts/361", "parent": { "cref": "#/pictures/4" }, @@ -11031,35 +11062,6 @@ "formatting": null, "hyperlink": null }, - { - "self_ref": "#/texts/361", - "parent": { - "cref": "#/pictures/4" - }, - "children": [], - "content_layer": "body", - "label": "text", - "prov": [ - { - "page_no": 10, - "bbox": { - "l": 410.25699, - "t": 246.40767000000005, - "r": 450.48605, - "b": 243.69094999999993, - "coord_origin": "BOTTOMLEFT" - }, - "charspan": [ - 0, - 28 - ] - } - ], - "orig": "C C C C C C C C C C C C C NL", - "text": "C C C C C C C C C C C C C NL", - "formatting": null, - "hyperlink": null - }, { "self_ref": "#/texts/362", "parent": { @@ -11068,6 +11070,35 @@ "children": [], "content_layer": "body", "label": "text", + "prov": [ + { + "page_no": 10, + "bbox": { + "l": 410.25699, + "t": 246.40767000000005, + "r": 450.48605, + "b": 243.69094999999993, + "coord_origin": "BOTTOMLEFT" + }, + "charspan": [ + 0, + 28 + ] + } + ], + "orig": "C C C C C C C C C C C C C NL", + "text": "C C C C C C C C C C C C C NL", + "formatting": null, + "hyperlink": null + }, + { + "self_ref": "#/texts/363", + "parent": { + "cref": "#/pictures/4" + }, + "children": [], + "content_layer": "body", + "label": "text", "prov": [ { "page_no": 10, @@ -11090,7 +11121,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/363", + "self_ref": "#/texts/364", "parent": { "cref": "#/pictures/4" }, @@ -11119,7 +11150,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/364", + "self_ref": "#/texts/365", "parent": { "cref": "#/pictures/4" }, @@ -11148,7 +11179,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/365", + "self_ref": "#/texts/366", "parent": { "cref": "#/pictures/4" }, @@ -11177,7 +11208,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/366", + "self_ref": "#/texts/367", "parent": { "cref": "#/pictures/4" }, @@ -11206,7 +11237,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/367", + "self_ref": "#/texts/368", "parent": { "cref": "#/pictures/4" }, @@ -11235,7 +11266,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/368", + "self_ref": "#/texts/369", "parent": { "cref": "#/pictures/4" }, @@ -11264,7 +11295,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/369", + "self_ref": "#/texts/370", "parent": { "cref": "#/pictures/4" }, @@ -11293,7 +11324,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/370", + "self_ref": "#/texts/371", "parent": { "cref": "#/pictures/4" }, @@ -11322,7 +11353,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/371", + "self_ref": "#/texts/372", "parent": { "cref": "#/pictures/4" }, @@ -11351,7 +11382,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/372", + "self_ref": "#/texts/373", "parent": { "cref": "#/pictures/4" }, @@ -11380,7 +11411,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/373", + "self_ref": "#/texts/374", "parent": { "cref": "#/pictures/4" }, @@ -11409,7 +11440,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/374", + "self_ref": "#/texts/375", "parent": { "cref": "#/pictures/4" }, @@ -11438,7 +11469,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/375", + "self_ref": "#/texts/376", "parent": { "cref": "#/pictures/4" }, @@ -11467,7 +11498,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/376", + "self_ref": "#/texts/377", "parent": { "cref": "#/pictures/4" }, @@ -11496,7 +11527,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/377", + "self_ref": "#/texts/378", "parent": { "cref": "#/pictures/4" }, @@ -11525,7 +11556,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/378", + "self_ref": "#/texts/379", "parent": { "cref": "#/pictures/4" }, @@ -11554,7 +11585,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/379", + "self_ref": "#/texts/380", "parent": { "cref": "#/pictures/4" }, @@ -11583,7 +11614,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/380", + "self_ref": "#/texts/381", "parent": { "cref": "#/pictures/4" }, @@ -11612,7 +11643,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/381", + "self_ref": "#/texts/382", "parent": { "cref": "#/pictures/4" }, @@ -11641,7 +11672,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/382", + "self_ref": "#/texts/383", "parent": { "cref": "#/pictures/4" }, @@ -11670,7 +11701,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/383", + "self_ref": "#/texts/384", "parent": { "cref": "#/pictures/4" }, @@ -11699,7 +11730,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/384", + "self_ref": "#/texts/385", "parent": { "cref": "#/pictures/4" }, @@ -11728,7 +11759,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/385", + "self_ref": "#/texts/386", "parent": { "cref": "#/pictures/4" }, @@ -11757,7 +11788,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/386", + "self_ref": "#/texts/387", "parent": { "cref": "#/pictures/4" }, @@ -11786,7 +11817,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/387", + "self_ref": "#/texts/388", "parent": { "cref": "#/pictures/4" }, @@ -11815,7 +11846,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/388", + "self_ref": "#/texts/389", "parent": { "cref": "#/pictures/4" }, @@ -11844,7 +11875,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/389", + "self_ref": "#/texts/390", "parent": { "cref": "#/pictures/4" }, @@ -11873,7 +11904,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/390", + "self_ref": "#/texts/391", "parent": { "cref": "#/pictures/4" }, @@ -11902,7 +11933,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/391", + "self_ref": "#/texts/392", "parent": { "cref": "#/pictures/4" }, @@ -11931,7 +11962,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/392", + "self_ref": "#/texts/393", "parent": { "cref": "#/pictures/4" }, @@ -11960,7 +11991,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/393", + "self_ref": "#/texts/394", "parent": { "cref": "#/pictures/4" }, @@ -11989,7 +12020,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/394", + "self_ref": "#/texts/395", "parent": { "cref": "#/pictures/4" }, @@ -12018,7 +12049,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/395", + "self_ref": "#/texts/396", "parent": { "cref": "#/pictures/4" }, @@ -12047,7 +12078,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/396", + "self_ref": "#/texts/397", "parent": { "cref": "#/pictures/4" }, @@ -12076,7 +12107,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/397", + "self_ref": "#/texts/398", "parent": { "cref": "#/pictures/4" }, @@ -12105,7 +12136,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/398", + "self_ref": "#/texts/399", "parent": { "cref": "#/pictures/4" }, @@ -12134,7 +12165,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/399", + "self_ref": "#/texts/400", "parent": { "cref": "#/pictures/4" }, @@ -12163,7 +12194,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/400", + "self_ref": "#/texts/401", "parent": { "cref": "#/pictures/4" }, @@ -12192,7 +12223,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/401", + "self_ref": "#/texts/402", "parent": { "cref": "#/pictures/4" }, @@ -12221,7 +12252,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/402", + "self_ref": "#/texts/403", "parent": { "cref": "#/pictures/4" }, @@ -12250,7 +12281,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/403", + "self_ref": "#/texts/404", "parent": { "cref": "#/pictures/4" }, @@ -12279,7 +12310,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/404", + "self_ref": "#/texts/405", "parent": { "cref": "#/pictures/4" }, @@ -12308,7 +12339,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/405", + "self_ref": "#/texts/406", "parent": { "cref": "#/pictures/4" }, @@ -12337,7 +12368,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/406", + "self_ref": "#/texts/407", "parent": { "cref": "#/pictures/4" }, @@ -12366,7 +12397,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/407", + "self_ref": "#/texts/408", "parent": { "cref": "#/pictures/4" }, @@ -12395,7 +12426,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/408", + "self_ref": "#/texts/409", "parent": { "cref": "#/pictures/4" }, @@ -12424,7 +12455,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/409", + "self_ref": "#/texts/410", "parent": { "cref": "#/pictures/4" }, @@ -12453,7 +12484,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/410", + "self_ref": "#/texts/411", "parent": { "cref": "#/pictures/4" }, @@ -12482,7 +12513,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/411", + "self_ref": "#/texts/412", "parent": { "cref": "#/pictures/4" }, @@ -12511,7 +12542,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/412", + "self_ref": "#/texts/413", "parent": { "cref": "#/pictures/4" }, @@ -12540,7 +12571,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/413", + "self_ref": "#/texts/414", "parent": { "cref": "#/pictures/4" }, @@ -12569,7 +12600,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/414", + "self_ref": "#/texts/415", "parent": { "cref": "#/pictures/4" }, @@ -12598,7 +12629,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/415", + "self_ref": "#/texts/416", "parent": { "cref": "#/pictures/4" }, @@ -12627,7 +12658,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/416", + "self_ref": "#/texts/417", "parent": { "cref": "#/pictures/4" }, @@ -12656,7 +12687,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/417", + "self_ref": "#/texts/418", "parent": { "cref": "#/pictures/4" }, @@ -12685,7 +12716,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/418", + "self_ref": "#/texts/419", "parent": { "cref": "#/pictures/4" }, @@ -12714,7 +12745,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/419", + "self_ref": "#/texts/420", "parent": { "cref": "#/pictures/4" }, @@ -12743,7 +12774,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/420", + "self_ref": "#/texts/421", "parent": { "cref": "#/pictures/4" }, @@ -12772,7 +12803,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/421", + "self_ref": "#/texts/422", "parent": { "cref": "#/pictures/4" }, @@ -12801,7 +12832,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/422", + "self_ref": "#/texts/423", "parent": { "cref": "#/pictures/4" }, @@ -12830,7 +12861,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/423", + "self_ref": "#/texts/424", "parent": { "cref": "#/pictures/4" }, @@ -12859,7 +12890,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/424", + "self_ref": "#/texts/425", "parent": { "cref": "#/pictures/4" }, @@ -12888,7 +12919,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/425", + "self_ref": "#/texts/426", "parent": { "cref": "#/pictures/4" }, @@ -12917,7 +12948,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/426", + "self_ref": "#/texts/427", "parent": { "cref": "#/pictures/4" }, @@ -12946,7 +12977,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/427", + "self_ref": "#/texts/428", "parent": { "cref": "#/pictures/4" }, @@ -12975,7 +13006,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/428", + "self_ref": "#/texts/429", "parent": { "cref": "#/pictures/4" }, @@ -13004,7 +13035,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/429", + "self_ref": "#/texts/430", "parent": { "cref": "#/pictures/4" }, @@ -13033,7 +13064,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/430", + "self_ref": "#/texts/431", "parent": { "cref": "#/pictures/4" }, @@ -13062,7 +13093,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/431", + "self_ref": "#/texts/432", "parent": { "cref": "#/pictures/4" }, @@ -13091,7 +13122,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/432", + "self_ref": "#/texts/433", "parent": { "cref": "#/body" }, @@ -13120,7 +13151,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/433", + "self_ref": "#/texts/434", "parent": { "cref": "#/body" }, @@ -13149,7 +13180,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/434", + "self_ref": "#/texts/435", "parent": { "cref": "#/body" }, @@ -13178,7 +13209,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/435", + "self_ref": "#/texts/436", "parent": { "cref": "#/body" }, @@ -13207,7 +13238,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/436", + "self_ref": "#/texts/437", "parent": { "cref": "#/pictures/5" }, @@ -13236,7 +13267,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/437", + "self_ref": "#/texts/438", "parent": { "cref": "#/pictures/5" }, @@ -13265,7 +13296,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/438", + "self_ref": "#/texts/439", "parent": { "cref": "#/pictures/5" }, @@ -13294,7 +13325,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/439", + "self_ref": "#/texts/440", "parent": { "cref": "#/pictures/5" }, @@ -13323,7 +13354,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/440", + "self_ref": "#/texts/441", "parent": { "cref": "#/pictures/5" }, @@ -13352,7 +13383,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/441", + "self_ref": "#/texts/442", "parent": { "cref": "#/pictures/5" }, @@ -13381,7 +13412,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/442", + "self_ref": "#/texts/443", "parent": { "cref": "#/pictures/5" }, @@ -13410,7 +13441,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/443", + "self_ref": "#/texts/444", "parent": { "cref": "#/pictures/5" }, @@ -13439,7 +13470,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/444", + "self_ref": "#/texts/445", "parent": { "cref": "#/pictures/5" }, @@ -13468,7 +13499,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/445", + "self_ref": "#/texts/446", "parent": { "cref": "#/pictures/5" }, @@ -13497,7 +13528,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/446", + "self_ref": "#/texts/447", "parent": { "cref": "#/pictures/5" }, @@ -13526,7 +13557,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/447", + "self_ref": "#/texts/448", "parent": { "cref": "#/pictures/5" }, @@ -13555,7 +13586,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/448", + "self_ref": "#/texts/449", "parent": { "cref": "#/body" }, @@ -13584,7 +13615,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/449", + "self_ref": "#/texts/450", "parent": { "cref": "#/body" }, @@ -13613,7 +13644,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/450", + "self_ref": "#/texts/451", "parent": { "cref": "#/body" }, @@ -13643,7 +13674,7 @@ "level": 1 }, { - "self_ref": "#/texts/451", + "self_ref": "#/texts/452", "parent": { "cref": "#/body" }, @@ -13672,7 +13703,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/452", + "self_ref": "#/texts/453", "parent": { "cref": "#/body" }, @@ -13701,7 +13732,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/453", + "self_ref": "#/texts/454", "parent": { "cref": "#/body" }, @@ -13730,7 +13761,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/454", + "self_ref": "#/texts/455", "parent": { "cref": "#/body" }, @@ -13760,9 +13791,9 @@ "level": 1 }, { - "self_ref": "#/texts/455", + "self_ref": "#/texts/456", "parent": { - "cref": "#/groups/4" + "cref": "#/groups/5" }, "children": [], "content_layer": "body", @@ -13791,9 +13822,9 @@ "marker": "1." }, { - "self_ref": "#/texts/456", + "self_ref": "#/texts/457", "parent": { - "cref": "#/groups/4" + "cref": "#/groups/5" }, "children": [], "content_layer": "body", @@ -13822,9 +13853,9 @@ "marker": "2." }, { - "self_ref": "#/texts/457", + "self_ref": "#/texts/458", "parent": { - "cref": "#/groups/4" + "cref": "#/groups/5" }, "children": [], "content_layer": "body", @@ -13853,9 +13884,9 @@ "marker": "3." }, { - "self_ref": "#/texts/458", + "self_ref": "#/texts/459", "parent": { - "cref": "#/groups/4" + "cref": "#/groups/5" }, "children": [], "content_layer": "body", @@ -13884,7 +13915,7 @@ "marker": "4." }, { - "self_ref": "#/texts/459", + "self_ref": "#/texts/460", "parent": { "cref": "#/body" }, @@ -13913,7 +13944,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/460", + "self_ref": "#/texts/461", "parent": { "cref": "#/body" }, @@ -13942,9 +13973,9 @@ "hyperlink": null }, { - "self_ref": "#/texts/461", + "self_ref": "#/texts/462", "parent": { - "cref": "#/groups/5" + "cref": "#/groups/6" }, "children": [], "content_layer": "body", @@ -13973,9 +14004,9 @@ "marker": "5." }, { - "self_ref": "#/texts/462", + "self_ref": "#/texts/463", "parent": { - "cref": "#/groups/5" + "cref": "#/groups/6" }, "children": [], "content_layer": "body", @@ -14004,9 +14035,9 @@ "marker": "6." }, { - "self_ref": "#/texts/463", + "self_ref": "#/texts/464", "parent": { - "cref": "#/groups/5" + "cref": "#/groups/6" }, "children": [], "content_layer": "body", @@ -14035,9 +14066,9 @@ "marker": "7." }, { - "self_ref": "#/texts/464", + "self_ref": "#/texts/465", "parent": { - "cref": "#/groups/5" + "cref": "#/groups/6" }, "children": [], "content_layer": "body", @@ -14066,9 +14097,9 @@ "marker": "8." }, { - "self_ref": "#/texts/465", + "self_ref": "#/texts/466", "parent": { - "cref": "#/groups/5" + "cref": "#/groups/6" }, "children": [], "content_layer": "body", @@ -14097,9 +14128,9 @@ "marker": "9." }, { - "self_ref": "#/texts/466", + "self_ref": "#/texts/467", "parent": { - "cref": "#/groups/5" + "cref": "#/groups/6" }, "children": [], "content_layer": "body", @@ -14128,9 +14159,9 @@ "marker": "10." }, { - "self_ref": "#/texts/467", + "self_ref": "#/texts/468", "parent": { - "cref": "#/groups/5" + "cref": "#/groups/6" }, "children": [], "content_layer": "body", @@ -14159,9 +14190,9 @@ "marker": "11." }, { - "self_ref": "#/texts/468", + "self_ref": "#/texts/469", "parent": { - "cref": "#/groups/5" + "cref": "#/groups/6" }, "children": [], "content_layer": "body", @@ -14190,9 +14221,9 @@ "marker": "12." }, { - "self_ref": "#/texts/469", + "self_ref": "#/texts/470", "parent": { - "cref": "#/groups/5" + "cref": "#/groups/6" }, "children": [], "content_layer": "body", @@ -14221,9 +14252,9 @@ "marker": "13." }, { - "self_ref": "#/texts/470", + "self_ref": "#/texts/471", "parent": { - "cref": "#/groups/5" + "cref": "#/groups/6" }, "children": [], "content_layer": "body", @@ -14252,9 +14283,9 @@ "marker": "14." }, { - "self_ref": "#/texts/471", + "self_ref": "#/texts/472", "parent": { - "cref": "#/groups/5" + "cref": "#/groups/6" }, "children": [], "content_layer": "body", @@ -14283,9 +14314,9 @@ "marker": "15." }, { - "self_ref": "#/texts/472", + "self_ref": "#/texts/473", "parent": { - "cref": "#/groups/5" + "cref": "#/groups/6" }, "children": [], "content_layer": "body", @@ -14314,9 +14345,9 @@ "marker": "16." }, { - "self_ref": "#/texts/473", + "self_ref": "#/texts/474", "parent": { - "cref": "#/groups/5" + "cref": "#/groups/6" }, "children": [], "content_layer": "body", @@ -14345,7 +14376,7 @@ "marker": "17." }, { - "self_ref": "#/texts/474", + "self_ref": "#/texts/475", "parent": { "cref": "#/body" }, @@ -14374,7 +14405,7 @@ "hyperlink": null }, { - "self_ref": "#/texts/475", + "self_ref": "#/texts/476", "parent": { "cref": "#/body" }, @@ -14403,9 +14434,9 @@ "hyperlink": null }, { - "self_ref": "#/texts/476", + "self_ref": "#/texts/477", "parent": { - "cref": "#/groups/6" + "cref": "#/groups/7" }, "children": [], "content_layer": "body", @@ -14434,9 +14465,9 @@ "marker": "18." }, { - "self_ref": "#/texts/477", + "self_ref": "#/texts/478", "parent": { - "cref": "#/groups/6" + "cref": "#/groups/7" }, "children": [], "content_layer": "body", @@ -14465,9 +14496,9 @@ "marker": "19." }, { - "self_ref": "#/texts/478", + "self_ref": "#/texts/479", "parent": { - "cref": "#/groups/6" + "cref": "#/groups/7" }, "children": [], "content_layer": "body", @@ -14496,9 +14527,9 @@ "marker": "20." }, { - "self_ref": "#/texts/479", + "self_ref": "#/texts/480", "parent": { - "cref": "#/groups/6" + "cref": "#/groups/7" }, "children": [], "content_layer": "body", @@ -14527,9 +14558,9 @@ "marker": "21." }, { - "self_ref": "#/texts/480", + "self_ref": "#/texts/481", "parent": { - "cref": "#/groups/6" + "cref": "#/groups/7" }, "children": [], "content_layer": "body", @@ -14558,9 +14589,9 @@ "marker": "22." }, { - "self_ref": "#/texts/481", + "self_ref": "#/texts/482", "parent": { - "cref": "#/groups/6" + "cref": "#/groups/7" }, "children": [], "content_layer": "body", @@ -14587,37 +14618,6 @@ "hyperlink": null, "enumerated": false, "marker": "23." - }, - { - "self_ref": "#/texts/482", - "parent": { - "cref": "#/groups/7" - }, - "children": [], - "content_layer": "body", - "label": "list_item", - "prov": [ - { - "page_no": 7, - "bbox": { - "l": 334.51135, - "t": 519.19159, - "r": 426.59875, - "b": 512.97711, - "coord_origin": "BOTTOMLEFT" - }, - "charspan": [ - 0, - 33 - ] - } - ], - "orig": "4 - 2d merges: \"C\", \"L\", \"U\", \"X\"", - "text": "4 - 2d merges: \"C\", \"L\", \"U\", \"X\"", - "formatting": null, - "hyperlink": null, - "enumerated": false, - "marker": "-" } ], "pictures": [ @@ -15187,10 +15187,7 @@ "cref": "#/texts/214" }, { - "cref": "#/groups/7" - }, - { - "cref": "#/texts/215" + "cref": "#/groups/2" }, { "cref": "#/texts/216" @@ -15227,6 +15224,9 @@ }, { "cref": "#/texts/227" + }, + { + "cref": "#/texts/228" } ], "content_layer": "body", @@ -15263,9 +15263,6 @@ "cref": "#/body" }, "children": [ - { - "cref": "#/texts/246" - }, { "cref": "#/texts/247" }, @@ -15481,6 +15478,9 @@ }, { "cref": "#/texts/318" + }, + { + "cref": "#/texts/319" } ], "content_layer": "body", @@ -15503,7 +15503,7 @@ ], "captions": [ { - "cref": "#/texts/246" + "cref": "#/texts/247" } ], "references": [], @@ -15517,9 +15517,6 @@ "cref": "#/body" }, "children": [ - { - "cref": "#/texts/334" - }, { "cref": "#/texts/335" }, @@ -15810,6 +15807,9 @@ }, { "cref": "#/texts/431" + }, + { + "cref": "#/texts/432" } ], "content_layer": "body", @@ -15832,7 +15832,7 @@ ], "captions": [ { - "cref": "#/texts/334" + "cref": "#/texts/335" } ], "references": [], @@ -15846,9 +15846,6 @@ "cref": "#/body" }, "children": [ - { - "cref": "#/texts/436" - }, { "cref": "#/texts/437" }, @@ -15881,6 +15878,9 @@ }, { "cref": "#/texts/447" + }, + { + "cref": "#/texts/448" } ], "content_layer": "body", @@ -15903,7 +15903,7 @@ ], "captions": [ { - "cref": "#/texts/436" + "cref": "#/texts/437" } ], "references": [], @@ -15920,7 +15920,7 @@ }, "children": [ { - "cref": "#/texts/325" + "cref": "#/texts/326" } ], "content_layer": "body", @@ -15943,7 +15943,7 @@ ], "captions": [ { - "cref": "#/texts/325" + "cref": "#/texts/326" } ], "references": [], @@ -17707,7 +17707,7 @@ }, "children": [ { - "cref": "#/texts/331" + "cref": "#/texts/332" } ], "content_layer": "body", @@ -17730,7 +17730,7 @@ ], "captions": [ { - "cref": "#/texts/331" + "cref": "#/texts/332" } ], "references": [], diff --git a/tests/data/groundtruth/docling_v2/2305.03393v1.md b/tests/data/groundtruth/docling_v2/2305.03393v1.md index ffde9eb7..3bc00812 100644 --- a/tests/data/groundtruth/docling_v2/2305.03393v1.md +++ b/tests/data/groundtruth/docling_v2/2305.03393v1.md @@ -84,21 +84,19 @@ Fig. 3. OTSL description of table structure: A - table example; B - graphical re -- 4 - 2d merges: "C", "L", "U", "X" - ## 4.2 Language Syntax The OTSL representation follows these syntax rules: -- Left-looking cell rule : The left neighbour of an "L" cell must be either another "L" cell or a "C" cell. -- Up-looking cell rule : The upper neighbour of a "U" cell must be either another "U" cell or a "C" cell. +1. Left-looking cell rule : The left neighbour of an "L" cell must be either another "L" cell or a "C" cell. +2. Up-looking cell rule : The upper neighbour of a "U" cell must be either another "U" cell or a "C" cell. ## 3. Cross cell rule : - The left neighbour of an "X" cell must be either another "X" cell or a "U" cell, and the upper neighbour of an "X" cell must be either another "X" cell or an "L" cell. -- First row rule : Only "L" cells and "C" cells are allowed in the first row. -- First column rule : Only "U" cells and "C" cells are allowed in the first column. -- Rectangular rule : The table representation is always rectangular - all rows must have an equal number of tokens, terminated with "NL" token. +4. First row rule : Only "L" cells and "C" cells are allowed in the first row. +5. First column rule : Only "U" cells and "C" cells are allowed in the first column. +6. Rectangular rule : The table representation is always rectangular - all rows must have an equal number of tokens, terminated with "NL" token. The application of these rules gives OTSL a set of unique properties. First of all, the OTSL enforces a strictly rectangular structure representation, where every new-line token starts a new row. As a consequence, all rows and all columns have exactly the same number of tokens, irrespective of cell spans. Secondly, the OTSL representation is unambiguous: Every table structure is represented in one way. In this representation every table cell corresponds to a "C"-cell token, which in case of spans is always located in the top-left corner of the table cell definition. Third, OTSL syntax rules are only backward-looking. As a consequence, every predicted token can be validated straight during sequence generation by looking at the previously predicted sequence. As such, OTSL can guarantee that every predicted sequence is syntactically valid. @@ -177,28 +175,28 @@ Secondly, OTSL has more inherent structure and a significantly restricted vocabu ## References -- Auer, C., Dolfi, M., Carvalho, A., Ramis, C.B., Staar, P.W.J.: Delivering document conversion as a cloud service with high throughput and responsiveness. CoRR abs/2206.00785 (2022). https://doi.org/10.48550/arXiv.2206.00785 , https://doi.org/10.48550/arXiv.2206.00785 -- Chen, B., Peng, D., Zhang, J., Ren, Y., Jin, L.: Complex table structure recognition in the wild using transformer and identity matrix-based augmentation. In: Porwal, U., Fornés, A., Shafait, F. (eds.) Frontiers in Handwriting Recognition. pp. 545561. Springer International Publishing, Cham (2022) -- Chi, Z., Huang, H., Xu, H.D., Yu, H., Yin, W., Mao, X.L.: Complicated table structure recognition. arXiv preprint arXiv:1908.04729 (2019) -- Deng, Y., Rosenberg, D., Mann, G.: Challenges in end-to-end neural scientific table recognition. In: 2019 International Conference on Document Analysis and Recognition (ICDAR). pp. 894-901. IEEE (2019) +1. Auer, C., Dolfi, M., Carvalho, A., Ramis, C.B., Staar, P.W.J.: Delivering document conversion as a cloud service with high throughput and responsiveness. CoRR abs/2206.00785 (2022). https://doi.org/10.48550/arXiv.2206.00785 , https://doi.org/10.48550/arXiv.2206.00785 +2. Chen, B., Peng, D., Zhang, J., Ren, Y., Jin, L.: Complex table structure recognition in the wild using transformer and identity matrix-based augmentation. In: Porwal, U., Fornés, A., Shafait, F. (eds.) Frontiers in Handwriting Recognition. pp. 545561. Springer International Publishing, Cham (2022) +3. Chi, Z., Huang, H., Xu, H.D., Yu, H., Yin, W., Mao, X.L.: Complicated table structure recognition. arXiv preprint arXiv:1908.04729 (2019) +4. Deng, Y., Rosenberg, D., Mann, G.: Challenges in end-to-end neural scientific table recognition. In: 2019 International Conference on Document Analysis and Recognition (ICDAR). pp. 894-901. IEEE (2019) -- Kayal, P., Anand, M., Desai, H., Singh, M.: Tables to latex: structure and content extraction from scientific tables. International Journal on Document Analysis and Recognition (IJDAR) pp. 1-10 (2022) -- Lee, E., Kwon, J., Yang, H., Park, J., Lee, S., Koo, H.I., Cho, N.I.: Table structure recognition based on grid shape graph. In: 2022 Asia-Pacific Signal and Information Processing Association Annual Summit and Conference (APSIPA ASC). pp. 18681873. IEEE (2022) -- Li, M., Cui, L., Huang, S., Wei, F., Zhou, M., Li, Z.: Tablebank: A benchmark dataset for table detection and recognition (2019) -- Livathinos, N., Berrospi, C., Lysak, M., Kuropiatnyk, V., Nassar, A., Carvalho, A., Dolfi, M., Auer, C., Dinkla, K., Staar, P.: Robust pdf document conversion using recurrent neural networks. Proceedings of the AAAI Conference on Artificial Intelligence 35 (17), 15137-15145 (May 2021), https://ojs.aaai.org/index.php/ AAAI/article/view/17777 -- Nassar, A., Livathinos, N., Lysak, M., Staar, P.: Tableformer: Table structure understanding with transformers. In: Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR). pp. 4614-4623 (June 2022) -- Pfitzmann, B., Auer, C., Dolfi, M., Nassar, A.S., Staar, P.W.J.: Doclaynet: A large human-annotated dataset for document-layout segmentation. In: Zhang, A., Rangwala, H. (eds.) KDD '22: The 28th ACM SIGKDD Conference on Knowledge Discovery and Data Mining, Washington, DC, USA, August 14 - 18, 2022. pp. 3743-3751. ACM (2022). https://doi.org/10.1145/3534678.3539043 , https:// doi.org/10.1145/3534678.3539043 -- Prasad, D., Gadpal, A., Kapadni, K., Visave, M., Sultanpure, K.: Cascadetabnet: An approach for end to end table detection and structure recognition from imagebased documents. In: Proceedings of the IEEE/CVF conference on computer vision and pattern recognition workshops. pp. 572-573 (2020) -- Schreiber, S., Agne, S., Wolf, I., Dengel, A., Ahmed, S.: Deepdesrt: Deep learning for detection and structure recognition of tables in document images. In: 2017 14th IAPR international conference on document analysis and recognition (ICDAR). vol. 1, pp. 1162-1167. IEEE (2017) -- Siddiqui, S.A., Fateh, I.A., Rizvi, S.T.R., Dengel, A., Ahmed, S.: Deeptabstr: Deep learning based table structure recognition. In: 2019 International Conference on Document Analysis and Recognition (ICDAR). pp. 1403-1409 (2019). https:// doi.org/10.1109/ICDAR.2019.00226 -- Smock, B., Pesala, R., Abraham, R.: PubTables-1M: Towards comprehensive table extraction from unstructured documents. In: Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR). pp. 4634-4642 (June 2022) -- Staar, P.W.J., Dolfi, M., Auer, C., Bekas, C.: Corpus conversion service: A machine learning platform to ingest documents at scale. In: Proceedings of the 24th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining. pp. 774-782. KDD '18, Association for Computing Machinery, New York, NY, USA (2018). https://doi.org/10.1145/3219819.3219834 , https://doi.org/10. 1145/3219819.3219834 -- Wang, X.: Tabular Abstraction, Editing, and Formatting. Ph.D. thesis, CAN (1996), aAINN09397 -- Xue, W., Li, Q., Tao, D.: Res2tim: Reconstruct syntactic structures from table images. In: 2019 International Conference on Document Analysis and Recognition (ICDAR). pp. 749-755. IEEE (2019) +5. Kayal, P., Anand, M., Desai, H., Singh, M.: Tables to latex: structure and content extraction from scientific tables. International Journal on Document Analysis and Recognition (IJDAR) pp. 1-10 (2022) +6. Lee, E., Kwon, J., Yang, H., Park, J., Lee, S., Koo, H.I., Cho, N.I.: Table structure recognition based on grid shape graph. In: 2022 Asia-Pacific Signal and Information Processing Association Annual Summit and Conference (APSIPA ASC). pp. 18681873. IEEE (2022) +7. Li, M., Cui, L., Huang, S., Wei, F., Zhou, M., Li, Z.: Tablebank: A benchmark dataset for table detection and recognition (2019) +8. Livathinos, N., Berrospi, C., Lysak, M., Kuropiatnyk, V., Nassar, A., Carvalho, A., Dolfi, M., Auer, C., Dinkla, K., Staar, P.: Robust pdf document conversion using recurrent neural networks. Proceedings of the AAAI Conference on Artificial Intelligence 35 (17), 15137-15145 (May 2021), https://ojs.aaai.org/index.php/ AAAI/article/view/17777 +9. Nassar, A., Livathinos, N., Lysak, M., Staar, P.: Tableformer: Table structure understanding with transformers. In: Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR). pp. 4614-4623 (June 2022) +10. Pfitzmann, B., Auer, C., Dolfi, M., Nassar, A.S., Staar, P.W.J.: Doclaynet: A large human-annotated dataset for document-layout segmentation. In: Zhang, A., Rangwala, H. (eds.) KDD '22: The 28th ACM SIGKDD Conference on Knowledge Discovery and Data Mining, Washington, DC, USA, August 14 - 18, 2022. pp. 3743-3751. ACM (2022). https://doi.org/10.1145/3534678.3539043 , https:// doi.org/10.1145/3534678.3539043 +11. Prasad, D., Gadpal, A., Kapadni, K., Visave, M., Sultanpure, K.: Cascadetabnet: An approach for end to end table detection and structure recognition from imagebased documents. In: Proceedings of the IEEE/CVF conference on computer vision and pattern recognition workshops. pp. 572-573 (2020) +12. Schreiber, S., Agne, S., Wolf, I., Dengel, A., Ahmed, S.: Deepdesrt: Deep learning for detection and structure recognition of tables in document images. In: 2017 14th IAPR international conference on document analysis and recognition (ICDAR). vol. 1, pp. 1162-1167. IEEE (2017) +13. Siddiqui, S.A., Fateh, I.A., Rizvi, S.T.R., Dengel, A., Ahmed, S.: Deeptabstr: Deep learning based table structure recognition. In: 2019 International Conference on Document Analysis and Recognition (ICDAR). pp. 1403-1409 (2019). https:// doi.org/10.1109/ICDAR.2019.00226 +14. Smock, B., Pesala, R., Abraham, R.: PubTables-1M: Towards comprehensive table extraction from unstructured documents. In: Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR). pp. 4634-4642 (June 2022) +15. Staar, P.W.J., Dolfi, M., Auer, C., Bekas, C.: Corpus conversion service: A machine learning platform to ingest documents at scale. In: Proceedings of the 24th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining. pp. 774-782. KDD '18, Association for Computing Machinery, New York, NY, USA (2018). https://doi.org/10.1145/3219819.3219834 , https://doi.org/10. 1145/3219819.3219834 +16. Wang, X.: Tabular Abstraction, Editing, and Formatting. Ph.D. thesis, CAN (1996), aAINN09397 +17. Xue, W., Li, Q., Tao, D.: Res2tim: Reconstruct syntactic structures from table images. In: 2019 International Conference on Document Analysis and Recognition (ICDAR). pp. 749-755. IEEE (2019) -- Xue, W., Yu, B., Wang, W., Tao, D., Li, Q.: Tgrnet: A table graph reconstruction network for table structure recognition. In: Proceedings of the IEEE/CVF International Conference on Computer Vision. pp. 1295-1304 (2021) -- Ye, J., Qi, X., He, Y., Chen, Y., Gu, D., Gao, P., Xiao, R.: Pingan-vcgroup's solution for icdar 2021 competition on scientific literature parsing task b: Table recognition to html (2021). https://doi.org/10.48550/ARXIV.2105.01848 , https://arxiv.org/abs/2105.01848 -- Zhang, Z., Zhang, J., Du, J., Wang, F.: Split, embed and merge: An accurate table structure recognizer. Pattern Recognition 126 , 108565 (2022) -- Zheng, X., Burdick, D., Popa, L., Zhong, X., Wang, N.X.R.: Global table extractor (gte): A framework for joint table identification and cell structure recognition using visual context. In: 2021 IEEE Winter Conference on Applications of Computer Vision (WACV). pp. 697-706 (2021). https://doi.org/10.1109/WACV48630.2021. 00074 -- Zhong, X., ShafieiBavani, E., Jimeno Yepes, A.: Image-based table recognition: Data, model, and evaluation. In: Vedaldi, A., Bischof, H., Brox, T., Frahm, J.M. (eds.) Computer Vision - ECCV 2020. pp. 564-580. Springer International Publishing, Cham (2020) -- Zhong, X., Tang, J., Yepes, A.J.: Publaynet: largest dataset ever for document layout analysis. In: 2019 International Conference on Document Analysis and Recognition (ICDAR). pp. 1015-1022. IEEE (2019) \ No newline at end of file +18. Xue, W., Yu, B., Wang, W., Tao, D., Li, Q.: Tgrnet: A table graph reconstruction network for table structure recognition. In: Proceedings of the IEEE/CVF International Conference on Computer Vision. pp. 1295-1304 (2021) +19. Ye, J., Qi, X., He, Y., Chen, Y., Gu, D., Gao, P., Xiao, R.: Pingan-vcgroup's solution for icdar 2021 competition on scientific literature parsing task b: Table recognition to html (2021). https://doi.org/10.48550/ARXIV.2105.01848 , https://arxiv.org/abs/2105.01848 +20. Zhang, Z., Zhang, J., Du, J., Wang, F.: Split, embed and merge: An accurate table structure recognizer. Pattern Recognition 126 , 108565 (2022) +21. Zheng, X., Burdick, D., Popa, L., Zhong, X., Wang, N.X.R.: Global table extractor (gte): A framework for joint table identification and cell structure recognition using visual context. In: 2021 IEEE Winter Conference on Applications of Computer Vision (WACV). pp. 697-706 (2021). https://doi.org/10.1109/WACV48630.2021. 00074 +22. Zhong, X., ShafieiBavani, E., Jimeno Yepes, A.: Image-based table recognition: Data, model, and evaluation. In: Vedaldi, A., Bischof, H., Brox, T., Frahm, J.M. (eds.) Computer Vision - ECCV 2020. pp. 564-580. Springer International Publishing, Cham (2020) +23. Zhong, X., Tang, J., Yepes, A.J.: Publaynet: largest dataset ever for document layout analysis. In: 2019 International Conference on Document Analysis and Recognition (ICDAR). pp. 1015-1022. IEEE (2019) \ No newline at end of file diff --git a/tests/data/groundtruth/docling_v2/amt_handbook_sample.json b/tests/data/groundtruth/docling_v2/amt_handbook_sample.json index 0cbe2405..ccc6598e 100644 --- a/tests/data/groundtruth/docling_v2/amt_handbook_sample.json +++ b/tests/data/groundtruth/docling_v2/amt_handbook_sample.json @@ -1,6 +1,6 @@ { "schema_name": "DoclingDocument", - "version": "1.4.0", + "version": "1.5.0", "name": "amt_handbook_sample", "origin": { "mimetype": "application/pdf", diff --git a/tests/data/groundtruth/docling_v2/code_and_formula.json b/tests/data/groundtruth/docling_v2/code_and_formula.json index b296106a..6398de41 100644 --- a/tests/data/groundtruth/docling_v2/code_and_formula.json +++ b/tests/data/groundtruth/docling_v2/code_and_formula.json @@ -1,6 +1,6 @@ { "schema_name": "DoclingDocument", - "version": "1.4.0", + "version": "1.5.0", "name": "code_and_formula", "origin": { "mimetype": "application/pdf", diff --git a/tests/data/groundtruth/docling_v2/csv-comma-in-cell.csv.json b/tests/data/groundtruth/docling_v2/csv-comma-in-cell.csv.json index 82747ca2..90dffc74 100644 --- a/tests/data/groundtruth/docling_v2/csv-comma-in-cell.csv.json +++ b/tests/data/groundtruth/docling_v2/csv-comma-in-cell.csv.json @@ -1,6 +1,6 @@ { "schema_name": "DoclingDocument", - "version": "1.4.0", + "version": "1.5.0", "name": "csv-comma-in-cell", "origin": { "mimetype": "text/csv", diff --git a/tests/data/groundtruth/docling_v2/csv-comma.csv.json b/tests/data/groundtruth/docling_v2/csv-comma.csv.json index db7f3e34..79cec5eb 100644 --- a/tests/data/groundtruth/docling_v2/csv-comma.csv.json +++ b/tests/data/groundtruth/docling_v2/csv-comma.csv.json @@ -1,6 +1,6 @@ { "schema_name": "DoclingDocument", - "version": "1.4.0", + "version": "1.5.0", "name": "csv-comma", "origin": { "mimetype": "text/csv", diff --git a/tests/data/groundtruth/docling_v2/csv-inconsistent-header.csv.json b/tests/data/groundtruth/docling_v2/csv-inconsistent-header.csv.json index d4a3305d..17b13d20 100644 --- a/tests/data/groundtruth/docling_v2/csv-inconsistent-header.csv.json +++ b/tests/data/groundtruth/docling_v2/csv-inconsistent-header.csv.json @@ -1,6 +1,6 @@ { "schema_name": "DoclingDocument", - "version": "1.4.0", + "version": "1.5.0", "name": "csv-inconsistent-header", "origin": { "mimetype": "text/csv", diff --git a/tests/data/groundtruth/docling_v2/csv-pipe.csv.json b/tests/data/groundtruth/docling_v2/csv-pipe.csv.json index 73566a8a..8df1fbe7 100644 --- a/tests/data/groundtruth/docling_v2/csv-pipe.csv.json +++ b/tests/data/groundtruth/docling_v2/csv-pipe.csv.json @@ -1,6 +1,6 @@ { "schema_name": "DoclingDocument", - "version": "1.4.0", + "version": "1.5.0", "name": "csv-pipe", "origin": { "mimetype": "text/csv", diff --git a/tests/data/groundtruth/docling_v2/csv-semicolon.csv.json b/tests/data/groundtruth/docling_v2/csv-semicolon.csv.json index 54c28a67..5bc9b41b 100644 --- a/tests/data/groundtruth/docling_v2/csv-semicolon.csv.json +++ b/tests/data/groundtruth/docling_v2/csv-semicolon.csv.json @@ -1,6 +1,6 @@ { "schema_name": "DoclingDocument", - "version": "1.4.0", + "version": "1.5.0", "name": "csv-semicolon", "origin": { "mimetype": "text/csv", diff --git a/tests/data/groundtruth/docling_v2/csv-tab.csv.json b/tests/data/groundtruth/docling_v2/csv-tab.csv.json index 0f179e4c..d77210b7 100644 --- a/tests/data/groundtruth/docling_v2/csv-tab.csv.json +++ b/tests/data/groundtruth/docling_v2/csv-tab.csv.json @@ -1,6 +1,6 @@ { "schema_name": "DoclingDocument", - "version": "1.4.0", + "version": "1.5.0", "name": "csv-tab", "origin": { "mimetype": "text/csv", diff --git a/tests/data/groundtruth/docling_v2/csv-too-few-columns.csv.json b/tests/data/groundtruth/docling_v2/csv-too-few-columns.csv.json index 46eec31e..1b5e896e 100644 --- a/tests/data/groundtruth/docling_v2/csv-too-few-columns.csv.json +++ b/tests/data/groundtruth/docling_v2/csv-too-few-columns.csv.json @@ -1,6 +1,6 @@ { "schema_name": "DoclingDocument", - "version": "1.4.0", + "version": "1.5.0", "name": "csv-too-few-columns", "origin": { "mimetype": "text/csv", diff --git a/tests/data/groundtruth/docling_v2/csv-too-many-columns.csv.json b/tests/data/groundtruth/docling_v2/csv-too-many-columns.csv.json index be17c389..1f8f0b07 100644 --- a/tests/data/groundtruth/docling_v2/csv-too-many-columns.csv.json +++ b/tests/data/groundtruth/docling_v2/csv-too-many-columns.csv.json @@ -1,6 +1,6 @@ { "schema_name": "DoclingDocument", - "version": "1.4.0", + "version": "1.5.0", "name": "csv-too-many-columns", "origin": { "mimetype": "text/csv", diff --git a/tests/data/groundtruth/docling_v2/equations.docx.json b/tests/data/groundtruth/docling_v2/equations.docx.json index 73779bfe..a244b684 100644 --- a/tests/data/groundtruth/docling_v2/equations.docx.json +++ b/tests/data/groundtruth/docling_v2/equations.docx.json @@ -1,6 +1,6 @@ { "schema_name": "DoclingDocument", - "version": "1.4.0", + "version": "1.5.0", "name": "equations", "origin": { "mimetype": "application/vnd.openxmlformats-officedocument.wordprocessingml.document", diff --git a/tests/data/groundtruth/docling_v2/example_01.html.itxt b/tests/data/groundtruth/docling_v2/example_01.html.itxt index fbd75125..5db91c54 100644 --- a/tests/data/groundtruth/docling_v2/example_01.html.itxt +++ b/tests/data/groundtruth/docling_v2/example_01.html.itxt @@ -7,6 +7,9 @@ item-0 at level 0: unspecified: group _root_ item-6 at level 3: list: group list item-7 at level 4: list_item: First item in unordered list item-8 at level 4: list_item: Second item in unordered list - item-9 at level 3: ordered_list: group ordered list + item-9 at level 3: list: group ordered list item-10 at level 4: list_item: First item in ordered list - item-11 at level 4: list_item: Second item in ordered list \ No newline at end of file + item-11 at level 4: list_item: Second item in ordered list + item-12 at level 3: list: group ordered list start 42 + item-13 at level 4: list_item: First item in ordered list with start + item-14 at level 4: list_item: Second item in ordered list with start \ No newline at end of file diff --git a/tests/data/groundtruth/docling_v2/example_01.html.json b/tests/data/groundtruth/docling_v2/example_01.html.json index c9e9384e..2e8e5104 100644 --- a/tests/data/groundtruth/docling_v2/example_01.html.json +++ b/tests/data/groundtruth/docling_v2/example_01.html.json @@ -1,10 +1,10 @@ { "schema_name": "DoclingDocument", - "version": "1.4.0", + "version": "1.5.0", "name": "example_01", "origin": { "mimetype": "text/html", - "binary_hash": 13782069548509991617, + "binary_hash": 13726679883013609282, "filename": "example_01.html" }, "furniture": { @@ -58,7 +58,24 @@ ], "content_layer": "body", "name": "ordered list", - "label": "ordered_list" + "label": "list" + }, + { + "self_ref": "#/groups/2", + "parent": { + "$ref": "#/texts/2" + }, + "children": [ + { + "$ref": "#/texts/8" + }, + { + "$ref": "#/texts/9" + } + ], + "content_layer": "body", + "name": "ordered list start 42", + "label": "list" } ], "texts": [ @@ -110,6 +127,9 @@ }, { "$ref": "#/groups/1" + }, + { + "$ref": "#/groups/2" } ], "content_layer": "body", @@ -143,7 +163,7 @@ "orig": "First item in unordered list", "text": "First item in unordered list", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/5", @@ -157,7 +177,7 @@ "orig": "Second item in unordered list", "text": "Second item in unordered list", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/6", @@ -171,7 +191,7 @@ "orig": "First item in ordered list", "text": "First item in ordered list", "enumerated": true, - "marker": "1." + "marker": "" }, { "self_ref": "#/texts/7", @@ -185,7 +205,35 @@ "orig": "Second item in ordered list", "text": "Second item in ordered list", "enumerated": true, - "marker": "2." + "marker": "" + }, + { + "self_ref": "#/texts/8", + "parent": { + "$ref": "#/groups/2" + }, + "children": [], + "content_layer": "body", + "label": "list_item", + "prov": [], + "orig": "First item in ordered list with start", + "text": "First item in ordered list with start", + "enumerated": true, + "marker": "42." + }, + { + "self_ref": "#/texts/9", + "parent": { + "$ref": "#/groups/2" + }, + "children": [], + "content_layer": "body", + "label": "list_item", + "prov": [], + "orig": "Second item in ordered list with start", + "text": "Second item in ordered list with start", + "enumerated": true, + "marker": "43." } ], "pictures": [ diff --git a/tests/data/groundtruth/docling_v2/example_01.html.md b/tests/data/groundtruth/docling_v2/example_01.html.md index 73031c09..f36f7852 100644 --- a/tests/data/groundtruth/docling_v2/example_01.html.md +++ b/tests/data/groundtruth/docling_v2/example_01.html.md @@ -12,4 +12,7 @@ Some background information here. - Second item in unordered list 1. First item in ordered list -2. Second item in ordered list \ No newline at end of file +2. Second item in ordered list + +42. First item in ordered list with start +43. Second item in ordered list with start \ No newline at end of file diff --git a/tests/data/groundtruth/docling_v2/example_02.html.itxt b/tests/data/groundtruth/docling_v2/example_02.html.itxt index 49ea71e8..15586e86 100644 --- a/tests/data/groundtruth/docling_v2/example_02.html.itxt +++ b/tests/data/groundtruth/docling_v2/example_02.html.itxt @@ -6,6 +6,6 @@ item-0 at level 0: unspecified: group _root_ item-5 at level 3: list: group list item-6 at level 4: list_item: First item in unordered list item-7 at level 4: list_item: Second item in unordered list - item-8 at level 3: ordered_list: group ordered list + item-8 at level 3: list: group ordered list item-9 at level 4: list_item: First item in ordered list item-10 at level 4: list_item: Second item in ordered list \ No newline at end of file diff --git a/tests/data/groundtruth/docling_v2/example_02.html.json b/tests/data/groundtruth/docling_v2/example_02.html.json index bfbf9ec9..786a26c4 100644 --- a/tests/data/groundtruth/docling_v2/example_02.html.json +++ b/tests/data/groundtruth/docling_v2/example_02.html.json @@ -1,6 +1,6 @@ { "schema_name": "DoclingDocument", - "version": "1.4.0", + "version": "1.5.0", "name": "example_02", "origin": { "mimetype": "text/html", @@ -58,7 +58,7 @@ ], "content_layer": "body", "name": "ordered list", - "label": "ordered_list" + "label": "list" } ], "texts": [ @@ -140,7 +140,7 @@ "orig": "First item in unordered list", "text": "First item in unordered list", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/5", @@ -154,7 +154,7 @@ "orig": "Second item in unordered list", "text": "Second item in unordered list", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/6", @@ -168,7 +168,7 @@ "orig": "First item in ordered list", "text": "First item in ordered list", "enumerated": true, - "marker": "1." + "marker": "" }, { "self_ref": "#/texts/7", @@ -182,7 +182,7 @@ "orig": "Second item in ordered list", "text": "Second item in ordered list", "enumerated": true, - "marker": "2." + "marker": "" } ], "pictures": [], diff --git a/tests/data/groundtruth/docling_v2/example_03.html.itxt b/tests/data/groundtruth/docling_v2/example_03.html.itxt index 5b31bf82..97285a1d 100644 --- a/tests/data/groundtruth/docling_v2/example_03.html.itxt +++ b/tests/data/groundtruth/docling_v2/example_03.html.itxt @@ -10,9 +10,9 @@ item-0 at level 0: unspecified: group _root_ item-9 at level 6: list_item: Nested item 1 item-10 at level 6: list_item: Nested item 2 item-11 at level 4: list_item: Second item in unordered list - item-12 at level 3: ordered_list: group ordered list + item-12 at level 3: list: group ordered list item-13 at level 4: list_item: First item in ordered list - item-14 at level 5: ordered_list: group ordered list + item-14 at level 5: list: group ordered list item-15 at level 6: list_item: Nested ordered item 1 item-16 at level 6: list_item: Nested ordered item 2 item-17 at level 4: list_item: Second item in ordered list diff --git a/tests/data/groundtruth/docling_v2/example_03.html.json b/tests/data/groundtruth/docling_v2/example_03.html.json index 6a9fea2b..8c8f91ba 100644 --- a/tests/data/groundtruth/docling_v2/example_03.html.json +++ b/tests/data/groundtruth/docling_v2/example_03.html.json @@ -1,6 +1,6 @@ { "schema_name": "DoclingDocument", - "version": "1.4.0", + "version": "1.5.0", "name": "example_03", "origin": { "mimetype": "text/html", @@ -75,7 +75,7 @@ ], "content_layer": "body", "name": "ordered list", - "label": "ordered_list" + "label": "list" }, { "self_ref": "#/groups/3", @@ -92,7 +92,7 @@ ], "content_layer": "body", "name": "ordered list", - "label": "ordered_list" + "label": "list" } ], "texts": [ @@ -198,7 +198,7 @@ "orig": "First item in unordered list", "text": "First item in unordered list", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/6", @@ -212,7 +212,7 @@ "orig": "Nested item 1", "text": "Nested item 1", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/7", @@ -226,7 +226,7 @@ "orig": "Nested item 2", "text": "Nested item 2", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/8", @@ -240,7 +240,7 @@ "orig": "Second item in unordered list", "text": "Second item in unordered list", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/9", @@ -258,7 +258,7 @@ "orig": "First item in ordered list", "text": "First item in ordered list", "enumerated": true, - "marker": "1" + "marker": "" }, { "self_ref": "#/texts/10", @@ -272,7 +272,7 @@ "orig": "Nested ordered item 1", "text": "Nested ordered item 1", "enumerated": true, - "marker": "1." + "marker": "" }, { "self_ref": "#/texts/11", @@ -286,7 +286,7 @@ "orig": "Nested ordered item 2", "text": "Nested ordered item 2", "enumerated": true, - "marker": "2." + "marker": "" }, { "self_ref": "#/texts/12", @@ -300,7 +300,7 @@ "orig": "Second item in ordered list", "text": "Second item in ordered list", "enumerated": true, - "marker": "2." + "marker": "" }, { "self_ref": "#/texts/13", diff --git a/tests/data/groundtruth/docling_v2/example_04.html.json b/tests/data/groundtruth/docling_v2/example_04.html.json index 40273c41..e65fe015 100644 --- a/tests/data/groundtruth/docling_v2/example_04.html.json +++ b/tests/data/groundtruth/docling_v2/example_04.html.json @@ -1,6 +1,6 @@ { "schema_name": "DoclingDocument", - "version": "1.4.0", + "version": "1.5.0", "name": "example_04", "origin": { "mimetype": "text/html", diff --git a/tests/data/groundtruth/docling_v2/example_05.html.json b/tests/data/groundtruth/docling_v2/example_05.html.json index e37e43fe..7502cf00 100644 --- a/tests/data/groundtruth/docling_v2/example_05.html.json +++ b/tests/data/groundtruth/docling_v2/example_05.html.json @@ -1,6 +1,6 @@ { "schema_name": "DoclingDocument", - "version": "1.4.0", + "version": "1.5.0", "name": "example_05", "origin": { "mimetype": "text/html", diff --git a/tests/data/groundtruth/docling_v2/example_06.html.json b/tests/data/groundtruth/docling_v2/example_06.html.json index aed598d5..5b0e69b2 100644 --- a/tests/data/groundtruth/docling_v2/example_06.html.json +++ b/tests/data/groundtruth/docling_v2/example_06.html.json @@ -1,6 +1,6 @@ { "schema_name": "DoclingDocument", - "version": "1.4.0", + "version": "1.5.0", "name": "example_06", "origin": { "mimetype": "text/html", diff --git a/tests/data/groundtruth/docling_v2/example_07.html.json b/tests/data/groundtruth/docling_v2/example_07.html.json index ac26ba13..ad6b710f 100644 --- a/tests/data/groundtruth/docling_v2/example_07.html.json +++ b/tests/data/groundtruth/docling_v2/example_07.html.json @@ -1,6 +1,6 @@ { "schema_name": "DoclingDocument", - "version": "1.4.0", + "version": "1.5.0", "name": "example_07", "origin": { "mimetype": "text/html", @@ -169,7 +169,7 @@ "orig": "Asia", "text": "Asia", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/1", @@ -183,7 +183,7 @@ "orig": "China", "text": "China", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/2", @@ -197,7 +197,7 @@ "orig": "Japan", "text": "Japan", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/3", @@ -211,7 +211,7 @@ "orig": "Thailand", "text": "Thailand", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/4", @@ -229,7 +229,7 @@ "orig": "Europe", "text": "Europe", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/5", @@ -243,7 +243,7 @@ "orig": "UK", "text": "UK", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/6", @@ -257,7 +257,7 @@ "orig": "Germany", "text": "Germany", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/7", @@ -275,7 +275,7 @@ "orig": "Switzerland", "text": "Switzerland", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/8", @@ -289,7 +289,7 @@ "orig": "Bern", "text": "Bern", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/9", @@ -303,7 +303,7 @@ "orig": "Aargau", "text": "Aargau", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/10", @@ -321,7 +321,7 @@ "orig": "Italy", "text": "Italy", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/11", @@ -335,7 +335,7 @@ "orig": "Piedmont", "text": "Piedmont", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/12", @@ -349,7 +349,7 @@ "orig": "Liguria", "text": "Liguria", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/13", @@ -363,7 +363,7 @@ "orig": "Africa", "text": "Africa", "enumerated": false, - "marker": "-" + "marker": "" } ], "pictures": [], diff --git a/tests/data/groundtruth/docling_v2/example_08.html.json b/tests/data/groundtruth/docling_v2/example_08.html.json index 15ac4282..02fde3be 100644 --- a/tests/data/groundtruth/docling_v2/example_08.html.json +++ b/tests/data/groundtruth/docling_v2/example_08.html.json @@ -1,6 +1,6 @@ { "schema_name": "DoclingDocument", - "version": "1.4.0", + "version": "1.5.0", "name": "example_08", "origin": { "mimetype": "text/html", diff --git a/tests/data/groundtruth/docling_v2/inline_and_formatting.md.md b/tests/data/groundtruth/docling_v2/inline_and_formatting.md.md index 28fa0d45..282be7f5 100644 --- a/tests/data/groundtruth/docling_v2/inline_and_formatting.md.md +++ b/tests/data/groundtruth/docling_v2/inline_and_formatting.md.md @@ -11,8 +11,22 @@ Create your feature branch: `git checkout -b feature/AmazingFeature` . 3. Commit your changes ( `git commit -m 'Add some AmazingFeature'` ) 4. Push to the branch ( `git push origin feature/AmazingFeature` ) 5. Open a Pull Request +6. **Whole list item has same formatting** +7. List item has *mixed or partial* formatting -## *Second* section +# *Whole heading is italic* - **First** : Lorem ipsum. - **Second** : Dolor `sit` amet. + +Some *`formatted_code`* + +## *Partially formatted* heading to\_escape `not_to_escape` + +[$$E=mc^2$$](https://en.wikipedia.org/wiki/Albert_Einstein) + +## Table Heading + +| Bold Heading | Italic Heading | +|----------------|------------------| +| data a | data b | diff --git a/tests/data/groundtruth/docling_v2/inline_and_formatting.md.yaml b/tests/data/groundtruth/docling_v2/inline_and_formatting.md.yaml index 1bdd9118..801d2b76 100644 --- a/tests/data/groundtruth/docling_v2/inline_and_formatting.md.yaml +++ b/tests/data/groundtruth/docling_v2/inline_and_formatting.md.yaml @@ -5,8 +5,14 @@ body: - $ref: '#/groups/0' - $ref: '#/groups/1' - $ref: '#/groups/2' - - $ref: '#/texts/27' + - $ref: '#/texts/32' - $ref: '#/groups/8' + - $ref: '#/groups/11' + - $ref: '#/texts/43' + - $ref: '#/texts/47' + - $ref: '#/texts/48' + - $ref: '#/groups/13' + - $ref: '#/tables/0' content_layer: body label: unspecified name: _root_ @@ -47,8 +53,10 @@ groups: - $ref: '#/texts/18' - $ref: '#/texts/22' - $ref: '#/texts/26' + - $ref: '#/texts/27' + - $ref: '#/texts/28' content_layer: body - label: ordered_list + label: list name: list parent: $ref: '#/body' @@ -94,53 +102,216 @@ groups: $ref: '#/texts/22' self_ref: '#/groups/6' - children: - - $ref: '#/texts/28' - $ref: '#/texts/29' + - $ref: '#/texts/30' + - $ref: '#/texts/31' content_layer: body label: inline name: group parent: - $ref: '#/texts/27' + $ref: '#/texts/28' self_ref: '#/groups/7' - children: - - $ref: '#/texts/30' - $ref: '#/texts/33' + - $ref: '#/texts/36' content_layer: body label: list name: list parent: $ref: '#/body' self_ref: '#/groups/8' -- children: - - $ref: '#/texts/31' - - $ref: '#/texts/32' - content_layer: body - label: inline - name: group - parent: - $ref: '#/texts/30' - self_ref: '#/groups/9' - children: - $ref: '#/texts/34' - $ref: '#/texts/35' - - $ref: '#/texts/36' - - $ref: '#/texts/37' content_layer: body label: inline name: group parent: $ref: '#/texts/33' + self_ref: '#/groups/9' +- children: + - $ref: '#/texts/37' + - $ref: '#/texts/38' + - $ref: '#/texts/39' + - $ref: '#/texts/40' + content_layer: body + label: inline + name: group + parent: + $ref: '#/texts/36' self_ref: '#/groups/10' +- children: + - $ref: '#/texts/41' + - $ref: '#/texts/42' + content_layer: body + label: inline + name: group + parent: + $ref: '#/body' + self_ref: '#/groups/11' +- children: + - $ref: '#/texts/44' + - $ref: '#/texts/45' + - $ref: '#/texts/46' + content_layer: body + label: inline + name: group + parent: + $ref: '#/texts/43' + self_ref: '#/groups/12' +- children: [] + content_layer: body + label: inline + name: group + parent: + $ref: '#/body' + self_ref: '#/groups/13' key_value_items: [] name: inline_and_formatting origin: - binary_hash: 9342273634728023910 + binary_hash: 14550011543526094526 filename: inline_and_formatting.md mimetype: text/markdown pages: {} pictures: [] schema_name: DoclingDocument -tables: [] +tables: +- annotations: [] + captions: [] + children: [] + content_layer: body + data: + grid: + - - col_span: 1 + column_header: true + end_col_offset_idx: 1 + end_row_offset_idx: 1 + row_header: false + row_section: false + row_span: 1 + start_col_offset_idx: 0 + start_row_offset_idx: 0 + text: Bold Heading + - col_span: 1 + column_header: true + end_col_offset_idx: 2 + end_row_offset_idx: 1 + row_header: false + row_section: false + row_span: 1 + start_col_offset_idx: 1 + start_row_offset_idx: 0 + text: Italic Heading + - - col_span: 1 + column_header: false + end_col_offset_idx: 1 + end_row_offset_idx: 2 + row_header: false + row_section: false + row_span: 1 + start_col_offset_idx: 0 + start_row_offset_idx: 1 + text: data a + - col_span: 1 + column_header: false + end_col_offset_idx: 2 + end_row_offset_idx: 2 + row_header: false + row_section: false + row_span: 1 + start_col_offset_idx: 1 + start_row_offset_idx: 1 + text: data b + num_cols: 2 + num_rows: 2 + table_cells: + - col_span: 1 + column_header: true + end_col_offset_idx: 1 + end_row_offset_idx: 1 + row_header: false + row_section: false + row_span: 1 + start_col_offset_idx: 0 + start_row_offset_idx: 0 + text: Bold Heading + - col_span: 1 + column_header: true + end_col_offset_idx: 2 + end_row_offset_idx: 1 + row_header: false + row_section: false + row_span: 1 + start_col_offset_idx: 1 + start_row_offset_idx: 0 + text: Italic Heading + - col_span: 1 + column_header: false + end_col_offset_idx: 1 + end_row_offset_idx: 2 + row_header: false + row_section: false + row_span: 1 + start_col_offset_idx: 0 + start_row_offset_idx: 1 + text: data a + - col_span: 1 + column_header: false + end_col_offset_idx: 2 + end_row_offset_idx: 2 + row_header: false + row_section: false + row_span: 1 + start_col_offset_idx: 1 + start_row_offset_idx: 1 + text: data b + - col_span: 1 + column_header: true + end_col_offset_idx: 1 + end_row_offset_idx: 1 + row_header: false + row_section: false + row_span: 1 + start_col_offset_idx: 0 + start_row_offset_idx: 0 + text: Bold Heading + - col_span: 1 + column_header: true + end_col_offset_idx: 2 + end_row_offset_idx: 1 + row_header: false + row_section: false + row_span: 1 + start_col_offset_idx: 1 + start_row_offset_idx: 0 + text: Italic Heading + - col_span: 1 + column_header: false + end_col_offset_idx: 1 + end_row_offset_idx: 2 + row_header: false + row_section: false + row_span: 1 + start_col_offset_idx: 0 + start_row_offset_idx: 1 + text: data a + - col_span: 1 + column_header: false + end_col_offset_idx: 2 + end_row_offset_idx: 2 + row_header: false + row_section: false + row_span: 1 + start_col_offset_idx: 1 + start_row_offset_idx: 1 + text: data b + footnotes: [] + label: table + parent: + $ref: '#/body' + prov: [] + references: [] + self_ref: '#/tables/0' texts: - children: [] content_layer: body @@ -259,7 +430,7 @@ texts: content_layer: body enumerated: true label: list_item - marker: '-' + marker: '' orig: '' parent: $ref: '#/groups/2' @@ -305,7 +476,7 @@ texts: content_layer: body enumerated: true label: list_item - marker: '-' + marker: '' orig: '' parent: $ref: '#/groups/2' @@ -348,7 +519,7 @@ texts: content_layer: body enumerated: true label: list_item - marker: '-' + marker: '' orig: '' parent: $ref: '#/groups/2' @@ -391,7 +562,7 @@ texts: content_layer: body enumerated: true label: list_item - marker: '-' + marker: '' orig: '' parent: $ref: '#/groups/2' @@ -433,24 +604,51 @@ texts: content_layer: body enumerated: true label: list_item - marker: '-' + marker: '' orig: Open a Pull Request parent: $ref: '#/groups/2' prov: [] self_ref: '#/texts/26' text: Open a Pull Request +- children: [] + content_layer: body + enumerated: true + formatting: + bold: true + italic: false + script: baseline + strikethrough: false + underline: false + label: list_item + marker: '' + orig: Whole list item has same formatting + parent: + $ref: '#/groups/2' + prov: [] + self_ref: '#/texts/27' + text: Whole list item has same formatting - children: - $ref: '#/groups/7' content_layer: body - label: section_header - level: 1 + enumerated: true + label: list_item + marker: '' orig: '' parent: - $ref: '#/body' + $ref: '#/groups/2' prov: [] - self_ref: '#/texts/27' + self_ref: '#/texts/28' text: '' +- children: [] + content_layer: body + label: text + orig: List item has + parent: + $ref: '#/groups/7' + prov: [] + self_ref: '#/texts/29' + text: List item has - children: [] content_layer: body formatting: @@ -460,69 +658,84 @@ texts: strikethrough: false underline: false label: text - orig: Second + orig: mixed or partial parent: $ref: '#/groups/7' prov: [] - self_ref: '#/texts/28' - text: Second + self_ref: '#/texts/30' + text: mixed or partial - children: [] content_layer: body label: text - orig: section + orig: formatting parent: $ref: '#/groups/7' prov: [] - self_ref: '#/texts/29' - text: section + self_ref: '#/texts/31' + text: formatting +- children: [] + content_layer: body + formatting: + bold: false + italic: true + script: baseline + strikethrough: false + underline: false + label: title + orig: Whole heading is italic + parent: + $ref: '#/body' + prov: [] + self_ref: '#/texts/32' + text: Whole heading is italic - children: - $ref: '#/groups/9' content_layer: body enumerated: false label: list_item - marker: '-' - orig: '' - parent: - $ref: '#/groups/8' - prov: [] - self_ref: '#/texts/30' - text: '' -- children: [] - content_layer: body - formatting: - bold: true - italic: false - script: baseline - strikethrough: false - underline: false - label: text - orig: First - parent: - $ref: '#/groups/9' - prov: [] - self_ref: '#/texts/31' - text: First -- children: [] - content_layer: body - label: text - orig: ': Lorem ipsum.' - parent: - $ref: '#/groups/9' - prov: [] - self_ref: '#/texts/32' - text: ': Lorem ipsum.' -- children: - - $ref: '#/groups/10' - content_layer: body - enumerated: false - label: list_item - marker: '-' + marker: '' orig: '' parent: $ref: '#/groups/8' prov: [] self_ref: '#/texts/33' text: '' +- children: [] + content_layer: body + formatting: + bold: true + italic: false + script: baseline + strikethrough: false + underline: false + label: text + orig: First + parent: + $ref: '#/groups/9' + prov: [] + self_ref: '#/texts/34' + text: First +- children: [] + content_layer: body + label: text + orig: ': Lorem ipsum.' + parent: + $ref: '#/groups/9' + prov: [] + self_ref: '#/texts/35' + text: ': Lorem ipsum.' +- children: + - $ref: '#/groups/10' + content_layer: body + enumerated: false + label: list_item + marker: '' + orig: '' + parent: + $ref: '#/groups/8' + prov: [] + self_ref: '#/texts/36' + text: '' - children: [] content_layer: body formatting: @@ -536,7 +749,7 @@ texts: parent: $ref: '#/groups/10' prov: [] - self_ref: '#/texts/34' + self_ref: '#/texts/37' text: Second - children: [] content_layer: body @@ -545,7 +758,7 @@ texts: parent: $ref: '#/groups/10' prov: [] - self_ref: '#/texts/35' + self_ref: '#/texts/38' text: ': Dolor' - captions: [] children: [] @@ -558,7 +771,7 @@ texts: $ref: '#/groups/10' prov: [] references: [] - self_ref: '#/texts/36' + self_ref: '#/texts/39' text: sit - children: [] content_layer: body @@ -567,6 +780,102 @@ texts: parent: $ref: '#/groups/10' prov: [] - self_ref: '#/texts/37' + self_ref: '#/texts/40' text: amet. -version: 1.4.0 +- children: [] + content_layer: body + label: text + orig: Some + parent: + $ref: '#/groups/11' + prov: [] + self_ref: '#/texts/41' + text: Some +- captions: [] + children: [] + code_language: unknown + content_layer: body + footnotes: [] + formatting: + bold: false + italic: true + script: baseline + strikethrough: false + underline: false + label: code + orig: formatted_code + parent: + $ref: '#/groups/11' + prov: [] + references: [] + self_ref: '#/texts/42' + text: formatted_code +- children: + - $ref: '#/groups/12' + content_layer: body + label: section_header + level: 1 + orig: '' + parent: + $ref: '#/body' + prov: [] + self_ref: '#/texts/43' + text: '' +- children: [] + content_layer: body + formatting: + bold: false + italic: true + script: baseline + strikethrough: false + underline: false + label: text + orig: Partially formatted + parent: + $ref: '#/groups/12' + prov: [] + self_ref: '#/texts/44' + text: Partially formatted +- children: [] + content_layer: body + label: text + orig: heading to_escape + parent: + $ref: '#/groups/12' + prov: [] + self_ref: '#/texts/45' + text: heading to_escape +- captions: [] + children: [] + code_language: unknown + content_layer: body + footnotes: [] + label: code + orig: not_to_escape + parent: + $ref: '#/groups/12' + prov: [] + references: [] + self_ref: '#/texts/46' + text: not_to_escape +- children: [] + content_layer: body + hyperlink: https://en.wikipedia.org/wiki/Albert_Einstein + label: text + orig: $$E=mc^2$$ + parent: + $ref: '#/body' + prov: [] + self_ref: '#/texts/47' + text: $$E=mc^2$$ +- children: [] + content_layer: body + label: section_header + level: 1 + orig: Table Heading + parent: + $ref: '#/body' + prov: [] + self_ref: '#/texts/48' + text: Table Heading +version: 1.5.0 diff --git a/tests/data/groundtruth/docling_v2/ipa20180000016.json b/tests/data/groundtruth/docling_v2/ipa20180000016.json index 835f3ef1..a2c75eaa 100644 --- a/tests/data/groundtruth/docling_v2/ipa20180000016.json +++ b/tests/data/groundtruth/docling_v2/ipa20180000016.json @@ -1,6 +1,6 @@ { "schema_name": "DoclingDocument", - "version": "1.4.0", + "version": "1.5.0", "name": "ipa20180000016.xml", "origin": { "mimetype": "application/xml", diff --git a/tests/data/groundtruth/docling_v2/ipa20200022300.json b/tests/data/groundtruth/docling_v2/ipa20200022300.json index 1b86290b..815d79dc 100644 --- a/tests/data/groundtruth/docling_v2/ipa20200022300.json +++ b/tests/data/groundtruth/docling_v2/ipa20200022300.json @@ -1,6 +1,6 @@ { "schema_name": "DoclingDocument", - "version": "1.4.0", + "version": "1.5.0", "name": "ipa20200022300.xml", "origin": { "mimetype": "application/xml", diff --git a/tests/data/groundtruth/docling_v2/lorem_ipsum.docx.json b/tests/data/groundtruth/docling_v2/lorem_ipsum.docx.json index 866513a1..995e0d70 100644 --- a/tests/data/groundtruth/docling_v2/lorem_ipsum.docx.json +++ b/tests/data/groundtruth/docling_v2/lorem_ipsum.docx.json @@ -1,6 +1,6 @@ { "schema_name": "DoclingDocument", - "version": "1.4.0", + "version": "1.5.0", "name": "lorem_ipsum", "origin": { "mimetype": "application/vnd.openxmlformats-officedocument.wordprocessingml.document", diff --git a/tests/data/groundtruth/docling_v2/multi_page.json b/tests/data/groundtruth/docling_v2/multi_page.json index 66a38098..5644fc25 100644 --- a/tests/data/groundtruth/docling_v2/multi_page.json +++ b/tests/data/groundtruth/docling_v2/multi_page.json @@ -1,6 +1,6 @@ { "schema_name": "DoclingDocument", - "version": "1.4.0", + "version": "1.5.0", "name": "multi_page", "origin": { "mimetype": "application/pdf", diff --git a/tests/data/groundtruth/docling_v2/multi_page.md b/tests/data/groundtruth/docling_v2/multi_page.md index e2ae236c..0f9d4220 100644 --- a/tests/data/groundtruth/docling_v2/multi_page.md +++ b/tests/data/groundtruth/docling_v2/multi_page.md @@ -52,11 +52,11 @@ In addition to general-purpose word processors, specialized tools have emerged t The evolution of word processors wasn't just about hardware or software improvements-it was about the features that revolutionized how people wrote and edited. Some of these transformative features include: -- Undo/Redo : Introduced in the 1980s, the ability to undo mistakes and redo actions made experimentation and error correction much easier. -- Spell Check and Grammar Check : By the 1990s, these became standard, allowing users to spot errors automatically. -- Templates : Pre-designed formats for documents, such as resumes, letters, and invoices, helped users save time. -- Track Changes : A game-changer for collaboration, this feature allowed multiple users to suggest edits while maintaining the original text. -- Real-Time Collaboration : Tools like Google Docs and Microsoft 365 enabled multiple users to edit the same document simultaneously, forever changing teamwork dynamics. +1. Undo/Redo : Introduced in the 1980s, the ability to undo mistakes and redo actions made experimentation and error correction much easier. +2. Spell Check and Grammar Check : By the 1990s, these became standard, allowing users to spot errors automatically. +3. Templates : Pre-designed formats for documents, such as resumes, letters, and invoices, helped users save time. +4. Track Changes : A game-changer for collaboration, this feature allowed multiple users to suggest edits while maintaining the original text. +5. Real-Time Collaboration : Tools like Google Docs and Microsoft 365 enabled multiple users to edit the same document simultaneously, forever changing teamwork dynamics. ## The Cultural Impact of Word Processors @@ -70,11 +70,11 @@ The word processor didn't just change workplaces-it changed culture. It democrat As we move further into the 21st century, the role of the word processor continues to evolve: -- Artificial Intelligence : Modern word processors are leveraging AI to suggest content improvements. Tools like Grammarly, ProWritingAid, and even native features in Word now analyze tone, conciseness, and clarity. Some AI systems can even generate entire paragraphs or rewrite sentences. -- Integration with Other Tools : Word processors are no longer standalone. They integrate with task managers, cloud storage, and project management platforms. For instance, Google Docs syncs with Google Drive, while Microsoft Word integrates seamlessly with OneDrive and Teams. -- Voice Typing : Speech-to-text capabilities have made word processing more accessible, particularly for those with disabilities. Tools like Dragon NaturallySpeaking and built-in options in Google Docs and Microsoft Word have made dictation mainstream. -- Multimedia Documents : Word processing has expanded beyond text. Modern tools allow users to embed images, videos, charts, and interactive elements, transforming simple documents into rich multimedia experiences. -- Cross-Platform Accessibility : Thanks to cloud computing, documents can now be accessed and edited across devices. Whether you're on a desktop, tablet, or smartphone, you can continue working seamlessly. +1. Artificial Intelligence : Modern word processors are leveraging AI to suggest content improvements. Tools like Grammarly, ProWritingAid, and even native features in Word now analyze tone, conciseness, and clarity. Some AI systems can even generate entire paragraphs or rewrite sentences. +2. Integration with Other Tools : Word processors are no longer standalone. They integrate with task managers, cloud storage, and project management platforms. For instance, Google Docs syncs with Google Drive, while Microsoft Word integrates seamlessly with OneDrive and Teams. +3. Voice Typing : Speech-to-text capabilities have made word processing more accessible, particularly for those with disabilities. Tools like Dragon NaturallySpeaking and built-in options in Google Docs and Microsoft Word have made dictation mainstream. +4. Multimedia Documents : Word processing has expanded beyond text. Modern tools allow users to embed images, videos, charts, and interactive elements, transforming simple documents into rich multimedia experiences. +5. Cross-Platform Accessibility : Thanks to cloud computing, documents can now be accessed and edited across devices. Whether you're on a desktop, tablet, or smartphone, you can continue working seamlessly. ## A Glimpse Into the Future diff --git a/tests/data/groundtruth/docling_v2/pa20010031492.json b/tests/data/groundtruth/docling_v2/pa20010031492.json index 6186e475..b361265f 100644 --- a/tests/data/groundtruth/docling_v2/pa20010031492.json +++ b/tests/data/groundtruth/docling_v2/pa20010031492.json @@ -1,6 +1,6 @@ { "schema_name": "DoclingDocument", - "version": "1.4.0", + "version": "1.5.0", "name": "pa20010031492.xml", "origin": { "mimetype": "application/xml", diff --git a/tests/data/groundtruth/docling_v2/pftaps057006474.json b/tests/data/groundtruth/docling_v2/pftaps057006474.json index 94f5bd96..58cf6099 100644 --- a/tests/data/groundtruth/docling_v2/pftaps057006474.json +++ b/tests/data/groundtruth/docling_v2/pftaps057006474.json @@ -1,6 +1,6 @@ { "schema_name": "DoclingDocument", - "version": "1.4.0", + "version": "1.5.0", "name": "pftaps057006474.txt", "origin": { "mimetype": "text/plain", diff --git a/tests/data/groundtruth/docling_v2/pg06442728.json b/tests/data/groundtruth/docling_v2/pg06442728.json index c4fa3759..9ae8a830 100644 --- a/tests/data/groundtruth/docling_v2/pg06442728.json +++ b/tests/data/groundtruth/docling_v2/pg06442728.json @@ -1,6 +1,6 @@ { "schema_name": "DoclingDocument", - "version": "1.4.0", + "version": "1.5.0", "name": "pg06442728.xml", "origin": { "mimetype": "application/xml", diff --git a/tests/data/groundtruth/docling_v2/picture_classification.json b/tests/data/groundtruth/docling_v2/picture_classification.json index 908274eb..cf6ff790 100644 --- a/tests/data/groundtruth/docling_v2/picture_classification.json +++ b/tests/data/groundtruth/docling_v2/picture_classification.json @@ -1,6 +1,6 @@ { "schema_name": "DoclingDocument", - "version": "1.4.0", + "version": "1.5.0", "name": "picture_classification", "origin": { "mimetype": "application/pdf", diff --git a/tests/data/groundtruth/docling_v2/powerpoint_bad_text.pptx.json b/tests/data/groundtruth/docling_v2/powerpoint_bad_text.pptx.json index c4d08e40..4806fe44 100644 --- a/tests/data/groundtruth/docling_v2/powerpoint_bad_text.pptx.json +++ b/tests/data/groundtruth/docling_v2/powerpoint_bad_text.pptx.json @@ -1,6 +1,6 @@ { "schema_name": "DoclingDocument", - "version": "1.4.0", + "version": "1.5.0", "name": "powerpoint_bad_text", "origin": { "mimetype": "application/vnd.ms-powerpoint", diff --git a/tests/data/groundtruth/docling_v2/powerpoint_sample.pptx.itxt b/tests/data/groundtruth/docling_v2/powerpoint_sample.pptx.itxt index ba86c3ba..dcc5f01a 100644 --- a/tests/data/groundtruth/docling_v2/powerpoint_sample.pptx.itxt +++ b/tests/data/groundtruth/docling_v2/powerpoint_sample.pptx.itxt @@ -11,7 +11,7 @@ item-0 at level 0: unspecified: group _root_ item-10 at level 2: paragraph: And baz things item-11 at level 2: paragraph: A rectangle shape with this text inside. item-12 at level 1: chapter: group slide-2 - item-13 at level 2: ordered_list: group list + item-13 at level 2: list: group list item-14 at level 3: list_item: List item4 item-15 at level 3: list_item: List item5 item-16 at level 3: list_item: List item6 @@ -25,7 +25,7 @@ item-0 at level 0: unspecified: group _root_ item-24 at level 3: list_item: Item A item-25 at level 3: list_item: Item B item-26 at level 2: paragraph: Maybe a list? - item-27 at level 2: ordered_list: group list + item-27 at level 2: list: group list item-28 at level 3: list_item: List1 item-29 at level 3: list_item: List2 item-30 at level 3: list_item: List3 diff --git a/tests/data/groundtruth/docling_v2/powerpoint_sample.pptx.json b/tests/data/groundtruth/docling_v2/powerpoint_sample.pptx.json index 88a82ae3..6cb9a6a9 100644 --- a/tests/data/groundtruth/docling_v2/powerpoint_sample.pptx.json +++ b/tests/data/groundtruth/docling_v2/powerpoint_sample.pptx.json @@ -1,6 +1,6 @@ { "schema_name": "DoclingDocument", - "version": "1.4.0", + "version": "1.5.0", "name": "powerpoint_sample", "origin": { "mimetype": "application/vnd.ms-powerpoint", @@ -137,7 +137,7 @@ ], "content_layer": "body", "name": "list", - "label": "ordered_list" + "label": "list" }, { "self_ref": "#/groups/4", @@ -197,7 +197,7 @@ ], "content_layer": "body", "name": "list", - "label": "ordered_list" + "label": "list" }, { "self_ref": "#/groups/7", @@ -578,7 +578,7 @@ "orig": "I1", "text": "I1", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/13", @@ -607,7 +607,7 @@ "orig": "I2", "text": "I2", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/14", @@ -636,7 +636,7 @@ "orig": "I3", "text": "I3", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/15", @@ -665,7 +665,7 @@ "orig": "I4", "text": "I4", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/16", @@ -721,7 +721,7 @@ "orig": "Item A", "text": "Item A", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/18", @@ -750,7 +750,7 @@ "orig": "Item B", "text": "Item B", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/19", @@ -893,7 +893,7 @@ "orig": "l1 ", "text": "l1 ", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/24", @@ -922,7 +922,7 @@ "orig": "l2", "text": "l2", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/25", @@ -951,7 +951,7 @@ "orig": "l3", "text": "l3", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/26", diff --git a/tests/data/groundtruth/docling_v2/powerpoint_with_image.pptx.json b/tests/data/groundtruth/docling_v2/powerpoint_with_image.pptx.json index ffc77b61..126fca9d 100644 --- a/tests/data/groundtruth/docling_v2/powerpoint_with_image.pptx.json +++ b/tests/data/groundtruth/docling_v2/powerpoint_with_image.pptx.json @@ -1,6 +1,6 @@ { "schema_name": "DoclingDocument", - "version": "1.4.0", + "version": "1.5.0", "name": "powerpoint_with_image", "origin": { "mimetype": "application/vnd.ms-powerpoint", diff --git a/tests/data/groundtruth/docling_v2/redp5110_sampled.json b/tests/data/groundtruth/docling_v2/redp5110_sampled.json index 84b2d2a0..32bf5ada 100644 --- a/tests/data/groundtruth/docling_v2/redp5110_sampled.json +++ b/tests/data/groundtruth/docling_v2/redp5110_sampled.json @@ -1,6 +1,6 @@ { "schema_name": "DoclingDocument", - "version": "1.4.0", + "version": "1.5.0", "name": "redp5110_sampled", "origin": { "mimetype": "application/pdf", @@ -1295,7 +1295,7 @@ "formatting": null, "hyperlink": null, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/15", @@ -1326,7 +1326,7 @@ "formatting": null, "hyperlink": null, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/16", @@ -1357,7 +1357,7 @@ "formatting": null, "hyperlink": null, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/17", @@ -1388,7 +1388,7 @@ "formatting": null, "hyperlink": null, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/18", @@ -1683,7 +1683,7 @@ "formatting": null, "hyperlink": null, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/28", @@ -1714,7 +1714,7 @@ "formatting": null, "hyperlink": null, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/29", @@ -1745,7 +1745,7 @@ "formatting": null, "hyperlink": null, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/30", @@ -1776,7 +1776,7 @@ "formatting": null, "hyperlink": null, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/31", @@ -1807,7 +1807,7 @@ "formatting": null, "hyperlink": null, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/32", @@ -1838,7 +1838,7 @@ "formatting": null, "hyperlink": null, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/33", @@ -1869,7 +1869,7 @@ "formatting": null, "hyperlink": null, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/34", @@ -1900,7 +1900,7 @@ "formatting": null, "hyperlink": null, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/35", @@ -1931,7 +1931,7 @@ "formatting": null, "hyperlink": null, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/36", @@ -2400,7 +2400,7 @@ "formatting": null, "hyperlink": null, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/52", @@ -2431,7 +2431,7 @@ "formatting": null, "hyperlink": null, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/53", @@ -2462,7 +2462,7 @@ "formatting": null, "hyperlink": null, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/54", @@ -2668,7 +2668,7 @@ "formatting": null, "hyperlink": null, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/61", @@ -2699,7 +2699,7 @@ "formatting": null, "hyperlink": null, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/62", @@ -2759,7 +2759,7 @@ "formatting": null, "hyperlink": null, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/64", @@ -3344,7 +3344,7 @@ "formatting": null, "hyperlink": null, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/84", @@ -3375,7 +3375,7 @@ "formatting": null, "hyperlink": null, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/85", @@ -3406,7 +3406,7 @@ "formatting": null, "hyperlink": null, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/86", @@ -5992,7 +5992,7 @@ "formatting": null, "hyperlink": null, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/175", @@ -6023,7 +6023,7 @@ "formatting": null, "hyperlink": null, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/176", @@ -6054,7 +6054,7 @@ "formatting": null, "hyperlink": null, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/177", @@ -6085,7 +6085,7 @@ "formatting": null, "hyperlink": null, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/178", @@ -6116,7 +6116,7 @@ "formatting": null, "hyperlink": null, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/179", @@ -7095,7 +7095,7 @@ "formatting": null, "hyperlink": null, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/212", @@ -7126,7 +7126,7 @@ "formatting": null, "hyperlink": null, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/213", @@ -7157,7 +7157,7 @@ "formatting": null, "hyperlink": null, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/214", @@ -7188,7 +7188,7 @@ "formatting": null, "hyperlink": null, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/215", @@ -7219,7 +7219,7 @@ "formatting": null, "hyperlink": null, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/216", @@ -7559,7 +7559,7 @@ "formatting": null, "hyperlink": null, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/227", @@ -7590,7 +7590,7 @@ "formatting": null, "hyperlink": null, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/228", diff --git a/tests/data/groundtruth/docling_v2/redp5110_sampled.md b/tests/data/groundtruth/docling_v2/redp5110_sampled.md index 78865173..31303c36 100644 --- a/tests/data/groundtruth/docling_v2/redp5110_sampled.md +++ b/tests/data/groundtruth/docling_v2/redp5110_sampled.md @@ -318,9 +318,9 @@ If a special register value is in the list of user profiles or it is a member of Here is an example of using the VERIFY\_GROUP\_FOR\_USER function: -- There are user profiles for MGR, JANE, JUDY, and TONY. -- The user profile JANE specifies a group profile of MGR. -- If a user is connected to the server using user profile JANE, all of the following function invocations return a value of 1: +1. There are user profiles for MGR, JANE, JUDY, and TONY. +2. The user profile JANE specifies a group profile of MGR. +3. If a user is connected to the server using user profile JANE, all of the following function invocations return a value of 1: ``` VERIFY_GROUP_FOR_USER (CURRENT_USER, 'MGR') VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JANE', 'MGR') VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JANE', 'MGR', 'STEVE') The following function invocation returns a value of 0: VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JUDY', 'TONY') @@ -334,7 +334,7 @@ CASE WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'HR', 'EMP' ) = 1 THEN EMPLOYEES . DATE_OF_BIRTH WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1 AND SESSION_USER = EMPLOYEES . USER_ID THEN EMPLOYEES . DATE_OF_BIRTH WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1 AND SESSION_USER <> EMPLOYEES . USER_ID THEN ( 9999 || '-' || MONTH ( EMPLOYEES . DATE_OF_BIRTH ) || '-' || DAY (EMPLOYEES.DATE_OF_BIRTH )) ELSE NULL END ENABLE ; ``` -- The other column to mask in this example is the TAX\_ID information. In this example, the rules to enforce include the following ones: +2. The other column to mask in this example is the TAX\_ID information. In this example, the rules to enforce include the following ones: - -Human Resources can see the unmasked TAX\_ID of the employees. - -Employees can see only their own unmasked TAX\_ID. - -Managers see a masked version of TAX\_ID with the first five characters replaced with the X character (for example, XXX-XX-1234). @@ -347,7 +347,7 @@ CREATE MASK HR_SCHEMA.MASK_TAX_ID_ON_EMPLOYEES ON HR_SCHEMA.EMPLOYEES AS EMPLOYE Example 3-9 Creating a mask on the TAX\_ID column -- Figure 3-10 shows the masks that are created in the HR\_SCHEMA. +3. Figure 3-10 shows the masks that are created in the HR\_SCHEMA. Figure 3-10 Column masks shown in System i Navigator @@ -357,7 +357,7 @@ Figure 3-10 Column masks shown in System i Navigator Now that you have created the row permission and the two column masks, RCAC must be activated. The row permission and the two column masks are enabled (last clause in the scripts), but now you must activate RCAC on the table. To do so, complete the following steps: -- Run the SQL statements that are shown in Example 3-10. +1. Run the SQL statements that are shown in Example 3-10. ## Example 3-10 Activating RCAC on the EMPLOYEES table @@ -372,14 +372,14 @@ ACTIVATE ROW ACCESS CONTROL ACTIVATE COLUMN ACCESS CONTROL; -- Look at the definition of the EMPLOYEE table, as shown in Figure 3-11. To do this, from the main navigation pane of System i Navigator, click Schemas  HR\_SCHEMA  Tables , right-click the EMPLOYEES table, and click Definition . +2. Look at the definition of the EMPLOYEE table, as shown in Figure 3-11. To do this, from the main navigation pane of System i Navigator, click Schemas  HR\_SCHEMA  Tables , right-click the EMPLOYEES table, and click Definition . Figure 3-11 Selecting the EMPLOYEES table from System i Navigator -- Figure 4-68 shows the Visual Explain of the same SQL statement, but with RCAC enabled. It is clear that the implementation of the SQL statement is more complex because the row permission rule becomes part of the WHERE clause. -- Compare the advised indexes that are provided by the Optimizer without RCAC and with RCAC enabled. Figure 4-69 shows the index advice for the SQL statement without RCAC enabled. The index being advised is for the ORDER BY clause. +2. Figure 4-68 shows the Visual Explain of the same SQL statement, but with RCAC enabled. It is clear that the implementation of the SQL statement is more complex because the row permission rule becomes part of the WHERE clause. +3. Compare the advised indexes that are provided by the Optimizer without RCAC and with RCAC enabled. Figure 4-69 shows the index advice for the SQL statement without RCAC enabled. The index being advised is for the ORDER BY clause. Figure 4-68 Visual Explain with RCAC enabled diff --git a/tests/data/groundtruth/docling_v2/right_to_left_01.json b/tests/data/groundtruth/docling_v2/right_to_left_01.json index d1098340..568cc624 100644 --- a/tests/data/groundtruth/docling_v2/right_to_left_01.json +++ b/tests/data/groundtruth/docling_v2/right_to_left_01.json @@ -1,6 +1,6 @@ { "schema_name": "DoclingDocument", - "version": "1.4.0", + "version": "1.5.0", "name": "right_to_left_01", "origin": { "mimetype": "application/pdf", diff --git a/tests/data/groundtruth/docling_v2/right_to_left_02.json b/tests/data/groundtruth/docling_v2/right_to_left_02.json index 3960d248..181691df 100644 --- a/tests/data/groundtruth/docling_v2/right_to_left_02.json +++ b/tests/data/groundtruth/docling_v2/right_to_left_02.json @@ -1,6 +1,6 @@ { "schema_name": "DoclingDocument", - "version": "1.4.0", + "version": "1.5.0", "name": "right_to_left_02", "origin": { "mimetype": "application/pdf", diff --git a/tests/data/groundtruth/docling_v2/right_to_left_03.json b/tests/data/groundtruth/docling_v2/right_to_left_03.json index 2cfdcc7f..a3a36fdd 100644 --- a/tests/data/groundtruth/docling_v2/right_to_left_03.json +++ b/tests/data/groundtruth/docling_v2/right_to_left_03.json @@ -1,6 +1,6 @@ { "schema_name": "DoclingDocument", - "version": "1.4.0", + "version": "1.5.0", "name": "right_to_left_03", "origin": { "mimetype": "application/pdf", diff --git a/tests/data/groundtruth/docling_v2/sample_sales_data.xlsm.json b/tests/data/groundtruth/docling_v2/sample_sales_data.xlsm.json index b7982983..18c3d46b 100644 --- a/tests/data/groundtruth/docling_v2/sample_sales_data.xlsm.json +++ b/tests/data/groundtruth/docling_v2/sample_sales_data.xlsm.json @@ -1,6 +1,6 @@ { "schema_name": "DoclingDocument", - "version": "1.4.0", + "version": "1.5.0", "name": "sample_sales_data", "origin": { "mimetype": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", diff --git a/tests/data/groundtruth/docling_v2/tablecell.docx.json b/tests/data/groundtruth/docling_v2/tablecell.docx.json index ac1473d4..be5af057 100644 --- a/tests/data/groundtruth/docling_v2/tablecell.docx.json +++ b/tests/data/groundtruth/docling_v2/tablecell.docx.json @@ -1,6 +1,6 @@ { "schema_name": "DoclingDocument", - "version": "1.4.0", + "version": "1.5.0", "name": "tablecell", "origin": { "mimetype": "application/vnd.openxmlformats-officedocument.wordprocessingml.document", @@ -82,7 +82,7 @@ "script": "baseline" }, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/1", @@ -103,7 +103,7 @@ "script": "baseline" }, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/2", diff --git a/tests/data/groundtruth/docling_v2/test-01.xlsx.json b/tests/data/groundtruth/docling_v2/test-01.xlsx.json index 2a23dc4b..ea2ab553 100644 --- a/tests/data/groundtruth/docling_v2/test-01.xlsx.json +++ b/tests/data/groundtruth/docling_v2/test-01.xlsx.json @@ -1,6 +1,6 @@ { "schema_name": "DoclingDocument", - "version": "1.4.0", + "version": "1.5.0", "name": "test-01", "origin": { "mimetype": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", diff --git a/tests/data/groundtruth/docling_v2/test_emf_docx.docx.json b/tests/data/groundtruth/docling_v2/test_emf_docx.docx.json index 88a10027..b24ff859 100644 --- a/tests/data/groundtruth/docling_v2/test_emf_docx.docx.json +++ b/tests/data/groundtruth/docling_v2/test_emf_docx.docx.json @@ -1,6 +1,6 @@ { "schema_name": "DoclingDocument", - "version": "1.4.0", + "version": "1.5.0", "name": "test_emf_docx", "origin": { "mimetype": "application/vnd.openxmlformats-officedocument.wordprocessingml.document", diff --git a/tests/data/groundtruth/docling_v2/textbox.docx.itxt b/tests/data/groundtruth/docling_v2/textbox.docx.itxt index fa4ae97a..4558be5e 100644 --- a/tests/data/groundtruth/docling_v2/textbox.docx.itxt +++ b/tests/data/groundtruth/docling_v2/textbox.docx.itxt @@ -29,64 +29,62 @@ item-0 at level 0: unspecified: group _root_ item-24 at level 3: list_item: A report must also be submitted ... d Infectious Disease Reporting System. item-25 at level 2: paragraph: item-26 at level 1: list: group list - item-27 at level 2: list_item: + item-27 at level 1: paragraph: item-28 at level 1: paragraph: item-29 at level 1: paragraph: item-30 at level 1: paragraph: item-31 at level 1: paragraph: - item-32 at level 1: paragraph: - item-33 at level 1: section: group textbox - item-34 at level 2: paragraph: Health Bureau: - item-35 at level 2: paragraph: Upon receiving a report from the ... rt to the Centers for Disease Control. - item-36 at level 2: list: group list - item-37 at level 3: list_item: If necessary, provide health edu ... vidual to undergo specimen collection. - item-38 at level 3: list_item: Implement appropriate epidemic p ... the Communicable Disease Control Act. - item-39 at level 2: paragraph: - item-40 at level 1: list: group list - item-41 at level 2: list_item: - item-42 at level 1: paragraph: - item-43 at level 1: section: group textbox - item-44 at level 2: paragraph: Department of Education: + item-32 at level 1: section: group textbox + item-33 at level 2: paragraph: Health Bureau: + item-34 at level 2: paragraph: Upon receiving a report from the ... rt to the Centers for Disease Control. + item-35 at level 2: list: group list + item-36 at level 3: list_item: If necessary, provide health edu ... vidual to undergo specimen collection. + item-37 at level 3: list_item: Implement appropriate epidemic p ... the Communicable Disease Control Act. + item-38 at level 2: paragraph: + item-39 at level 1: list: group list + item-40 at level 1: paragraph: + item-41 at level 1: section: group textbox + item-42 at level 2: paragraph: Department of Education: Collabo ... vention measures at all school levels. + item-43 at level 1: paragraph: + item-44 at level 1: paragraph: item-45 at level 1: paragraph: item-46 at level 1: paragraph: item-47 at level 1: paragraph: item-48 at level 1: paragraph: item-49 at level 1: paragraph: - item-50 at level 1: paragraph: - item-51 at level 1: paragraph: - item-52 at level 1: section: group textbox - item-53 at level 2: inline: group group - item-54 at level 3: paragraph: The Health Bureau will handle - item-55 at level 3: paragraph: reporting and specimen collection - item-56 at level 3: paragraph: . - item-57 at level 2: paragraph: + item-50 at level 1: section: group textbox + item-51 at level 2: inline: group group + item-52 at level 3: paragraph: The Health Bureau will handle + item-53 at level 3: paragraph: reporting and specimen collection + item-54 at level 3: paragraph: . + item-55 at level 2: paragraph: + item-56 at level 1: paragraph: + item-57 at level 1: paragraph: item-58 at level 1: paragraph: - item-59 at level 1: paragraph: - item-60 at level 1: paragraph: - item-61 at level 1: section: group textbox - item-62 at level 2: paragraph: Whether the epidemic has eased. - item-63 at level 2: paragraph: - item-64 at level 1: paragraph: - item-65 at level 1: section: group textbox - item-66 at level 2: paragraph: Whether the test results are pos ... legally designated infectious disease. - item-67 at level 2: paragraph: No - item-68 at level 1: paragraph: - item-69 at level 1: paragraph: - item-70 at level 1: section: group textbox - item-71 at level 2: paragraph: Yes - item-72 at level 1: paragraph: - item-73 at level 1: section: group textbox - item-74 at level 2: paragraph: Yes - item-75 at level 1: paragraph: - item-76 at level 1: paragraph: - item-77 at level 1: section: group textbox - item-78 at level 2: paragraph: Case closed. - item-79 at level 2: paragraph: - item-80 at level 2: paragraph: The Health Bureau will carry out ... ters for Disease Control if necessary. - item-81 at level 1: paragraph: - item-82 at level 1: section: group textbox - item-83 at level 2: paragraph: No - item-84 at level 1: paragraph: - item-85 at level 1: paragraph: - item-86 at level 1: paragraph: \ No newline at end of file + item-59 at level 1: section: group textbox + item-60 at level 2: paragraph: Whether the epidemic has eased. + item-61 at level 2: paragraph: + item-62 at level 1: paragraph: + item-63 at level 1: section: group textbox + item-64 at level 2: paragraph: Whether the test results are pos ... legally designated infectious disease. + item-65 at level 2: paragraph: No + item-66 at level 1: paragraph: + item-67 at level 1: paragraph: + item-68 at level 1: section: group textbox + item-69 at level 2: paragraph: Yes + item-70 at level 1: paragraph: + item-71 at level 1: section: group textbox + item-72 at level 2: paragraph: Yes + item-73 at level 1: paragraph: + item-74 at level 1: paragraph: + item-75 at level 1: section: group textbox + item-76 at level 2: paragraph: Case closed. + item-77 at level 2: paragraph: + item-78 at level 2: paragraph: The Health Bureau will carry out ... ters for Disease Control if necessary. + item-79 at level 1: paragraph: + item-80 at level 1: section: group textbox + item-81 at level 2: paragraph: No + item-82 at level 1: paragraph: + item-83 at level 1: paragraph: + item-84 at level 1: paragraph: \ No newline at end of file diff --git a/tests/data/groundtruth/docling_v2/textbox.docx.json b/tests/data/groundtruth/docling_v2/textbox.docx.json index 1e91f060..9300c933 100644 --- a/tests/data/groundtruth/docling_v2/textbox.docx.json +++ b/tests/data/groundtruth/docling_v2/textbox.docx.json @@ -1,6 +1,6 @@ { "schema_name": "DoclingDocument", - "version": "1.4.0", + "version": "1.5.0", "name": "textbox", "origin": { "mimetype": "application/vnd.openxmlformats-officedocument.wordprocessingml.document", @@ -65,6 +65,9 @@ { "$ref": "#/groups/6" }, + { + "$ref": "#/texts/19" + }, { "$ref": "#/texts/20" }, @@ -77,9 +80,6 @@ { "$ref": "#/texts/23" }, - { - "$ref": "#/texts/24" - }, { "$ref": "#/groups/7" }, @@ -87,11 +87,17 @@ "$ref": "#/groups/9" }, { - "$ref": "#/texts/31" + "$ref": "#/texts/29" }, { "$ref": "#/groups/10" }, + { + "$ref": "#/texts/31" + }, + { + "$ref": "#/texts/32" + }, { "$ref": "#/texts/33" }, @@ -107,71 +113,65 @@ { "$ref": "#/texts/37" }, - { - "$ref": "#/texts/38" - }, - { - "$ref": "#/texts/39" - }, { "$ref": "#/groups/11" }, + { + "$ref": "#/texts/42" + }, + { + "$ref": "#/texts/43" + }, { "$ref": "#/texts/44" }, - { - "$ref": "#/texts/45" - }, - { - "$ref": "#/texts/46" - }, { "$ref": "#/groups/13" }, { - "$ref": "#/texts/49" + "$ref": "#/texts/47" }, { "$ref": "#/groups/14" }, { - "$ref": "#/texts/52" + "$ref": "#/texts/50" }, { - "$ref": "#/texts/53" + "$ref": "#/texts/51" }, { "$ref": "#/groups/15" }, { - "$ref": "#/texts/55" + "$ref": "#/texts/53" }, { "$ref": "#/groups/16" }, { - "$ref": "#/texts/57" + "$ref": "#/texts/55" }, { - "$ref": "#/texts/58" + "$ref": "#/texts/56" }, { "$ref": "#/groups/17" }, { - "$ref": "#/texts/62" + "$ref": "#/texts/60" }, { "$ref": "#/groups/18" }, + { + "$ref": "#/texts/62" + }, + { + "$ref": "#/texts/63" + }, { "$ref": "#/texts/64" - }, - { - "$ref": "#/texts/65" - }, - { - "$ref": "#/texts/66" } ], "content_layer": "body", @@ -280,11 +280,7 @@ "parent": { "$ref": "#/body" }, - "children": [ - { - "$ref": "#/texts/19" - } - ], + "children": [], "content_layer": "body", "name": "list", "label": "list" @@ -296,16 +292,16 @@ }, "children": [ { - "$ref": "#/texts/25" + "$ref": "#/texts/24" }, { - "$ref": "#/texts/26" + "$ref": "#/texts/25" }, { "$ref": "#/groups/8" }, { - "$ref": "#/texts/29" + "$ref": "#/texts/28" } ], "content_layer": "body", @@ -319,10 +315,10 @@ }, "children": [ { - "$ref": "#/texts/27" + "$ref": "#/texts/26" }, { - "$ref": "#/texts/28" + "$ref": "#/texts/27" } ], "content_layer": "body", @@ -334,11 +330,7 @@ "parent": { "$ref": "#/body" }, - "children": [ - { - "$ref": "#/texts/30" - } - ], + "children": [], "content_layer": "body", "name": "list", "label": "list" @@ -350,7 +342,7 @@ }, "children": [ { - "$ref": "#/texts/32" + "$ref": "#/texts/30" } ], "content_layer": "body", @@ -367,7 +359,7 @@ "$ref": "#/groups/12" }, { - "$ref": "#/texts/43" + "$ref": "#/texts/41" } ], "content_layer": "body", @@ -380,14 +372,14 @@ "$ref": "#/groups/11" }, "children": [ + { + "$ref": "#/texts/38" + }, + { + "$ref": "#/texts/39" + }, { "$ref": "#/texts/40" - }, - { - "$ref": "#/texts/41" - }, - { - "$ref": "#/texts/42" } ], "content_layer": "body", @@ -401,10 +393,10 @@ }, "children": [ { - "$ref": "#/texts/47" + "$ref": "#/texts/45" }, { - "$ref": "#/texts/48" + "$ref": "#/texts/46" } ], "content_layer": "body", @@ -418,10 +410,10 @@ }, "children": [ { - "$ref": "#/texts/50" + "$ref": "#/texts/48" }, { - "$ref": "#/texts/51" + "$ref": "#/texts/49" } ], "content_layer": "body", @@ -435,7 +427,7 @@ }, "children": [ { - "$ref": "#/texts/54" + "$ref": "#/texts/52" } ], "content_layer": "body", @@ -449,7 +441,7 @@ }, "children": [ { - "$ref": "#/texts/56" + "$ref": "#/texts/54" } ], "content_layer": "body", @@ -462,14 +454,14 @@ "$ref": "#/body" }, "children": [ + { + "$ref": "#/texts/57" + }, + { + "$ref": "#/texts/58" + }, { "$ref": "#/texts/59" - }, - { - "$ref": "#/texts/60" - }, - { - "$ref": "#/texts/61" } ], "content_layer": "body", @@ -483,7 +475,7 @@ }, "children": [ { - "$ref": "#/texts/63" + "$ref": "#/texts/61" } ], "content_layer": "body", @@ -592,7 +584,7 @@ "script": "baseline" }, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/6", @@ -747,7 +739,7 @@ "script": "baseline" }, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/17", @@ -768,7 +760,7 @@ "script": "baseline" }, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/18", @@ -785,16 +777,14 @@ { "self_ref": "#/texts/19", "parent": { - "$ref": "#/groups/6" + "$ref": "#/body" }, "children": [], "content_layer": "body", - "label": "list_item", + "label": "paragraph", "prov": [], "orig": "", - "text": "", - "enumerated": false, - "marker": "-" + "text": "" }, { "self_ref": "#/texts/20", @@ -846,18 +836,6 @@ }, { "self_ref": "#/texts/24", - "parent": { - "$ref": "#/body" - }, - "children": [], - "content_layer": "body", - "label": "paragraph", - "prov": [], - "orig": "", - "text": "" - }, - { - "self_ref": "#/texts/25", "parent": { "$ref": "#/groups/7" }, @@ -876,7 +854,7 @@ } }, { - "self_ref": "#/texts/26", + "self_ref": "#/texts/25", "parent": { "$ref": "#/groups/7" }, @@ -895,7 +873,7 @@ } }, { - "self_ref": "#/texts/27", + "self_ref": "#/texts/26", "parent": { "$ref": "#/groups/8" }, @@ -913,10 +891,10 @@ "script": "baseline" }, "enumerated": false, - "marker": "-" + "marker": "" }, { - "self_ref": "#/texts/28", + "self_ref": "#/texts/27", "parent": { "$ref": "#/groups/8" }, @@ -934,10 +912,10 @@ "script": "baseline" }, "enumerated": false, - "marker": "-" + "marker": "" }, { - "self_ref": "#/texts/29", + "self_ref": "#/texts/28", "parent": { "$ref": "#/groups/7" }, @@ -949,21 +927,7 @@ "text": "" }, { - "self_ref": "#/texts/30", - "parent": { - "$ref": "#/groups/9" - }, - "children": [], - "content_layer": "body", - "label": "list_item", - "prov": [], - "orig": "", - "text": "", - "enumerated": false, - "marker": "-" - }, - { - "self_ref": "#/texts/31", + "self_ref": "#/texts/29", "parent": { "$ref": "#/body" }, @@ -975,7 +939,7 @@ "text": "" }, { - "self_ref": "#/texts/32", + "self_ref": "#/texts/30", "parent": { "$ref": "#/groups/10" }, @@ -993,6 +957,30 @@ "script": "baseline" } }, + { + "self_ref": "#/texts/31", + "parent": { + "$ref": "#/body" + }, + "children": [], + "content_layer": "body", + "label": "paragraph", + "prov": [], + "orig": "", + "text": "" + }, + { + "self_ref": "#/texts/32", + "parent": { + "$ref": "#/body" + }, + "children": [], + "content_layer": "body", + "label": "paragraph", + "prov": [], + "orig": "", + "text": "" + }, { "self_ref": "#/texts/33", "parent": { @@ -1055,30 +1043,6 @@ }, { "self_ref": "#/texts/38", - "parent": { - "$ref": "#/body" - }, - "children": [], - "content_layer": "body", - "label": "paragraph", - "prov": [], - "orig": "", - "text": "" - }, - { - "self_ref": "#/texts/39", - "parent": { - "$ref": "#/body" - }, - "children": [], - "content_layer": "body", - "label": "paragraph", - "prov": [], - "orig": "", - "text": "" - }, - { - "self_ref": "#/texts/40", "parent": { "$ref": "#/groups/12" }, @@ -1097,7 +1061,7 @@ } }, { - "self_ref": "#/texts/41", + "self_ref": "#/texts/39", "parent": { "$ref": "#/groups/12" }, @@ -1116,7 +1080,7 @@ } }, { - "self_ref": "#/texts/42", + "self_ref": "#/texts/40", "parent": { "$ref": "#/groups/12" }, @@ -1135,7 +1099,7 @@ } }, { - "self_ref": "#/texts/43", + "self_ref": "#/texts/41", "parent": { "$ref": "#/groups/11" }, @@ -1146,6 +1110,30 @@ "orig": "", "text": "" }, + { + "self_ref": "#/texts/42", + "parent": { + "$ref": "#/body" + }, + "children": [], + "content_layer": "body", + "label": "paragraph", + "prov": [], + "orig": "", + "text": "" + }, + { + "self_ref": "#/texts/43", + "parent": { + "$ref": "#/body" + }, + "children": [], + "content_layer": "body", + "label": "paragraph", + "prov": [], + "orig": "", + "text": "" + }, { "self_ref": "#/texts/44", "parent": { @@ -1160,30 +1148,6 @@ }, { "self_ref": "#/texts/45", - "parent": { - "$ref": "#/body" - }, - "children": [], - "content_layer": "body", - "label": "paragraph", - "prov": [], - "orig": "", - "text": "" - }, - { - "self_ref": "#/texts/46", - "parent": { - "$ref": "#/body" - }, - "children": [], - "content_layer": "body", - "label": "paragraph", - "prov": [], - "orig": "", - "text": "" - }, - { - "self_ref": "#/texts/47", "parent": { "$ref": "#/groups/13" }, @@ -1202,7 +1166,7 @@ } }, { - "self_ref": "#/texts/48", + "self_ref": "#/texts/46", "parent": { "$ref": "#/groups/13" }, @@ -1214,7 +1178,7 @@ "text": "" }, { - "self_ref": "#/texts/49", + "self_ref": "#/texts/47", "parent": { "$ref": "#/body" }, @@ -1226,7 +1190,7 @@ "text": "" }, { - "self_ref": "#/texts/50", + "self_ref": "#/texts/48", "parent": { "$ref": "#/groups/14" }, @@ -1245,7 +1209,7 @@ } }, { - "self_ref": "#/texts/51", + "self_ref": "#/texts/49", "parent": { "$ref": "#/groups/14" }, @@ -1264,7 +1228,7 @@ } }, { - "self_ref": "#/texts/52", + "self_ref": "#/texts/50", "parent": { "$ref": "#/body" }, @@ -1275,6 +1239,37 @@ "orig": "", "text": "" }, + { + "self_ref": "#/texts/51", + "parent": { + "$ref": "#/body" + }, + "children": [], + "content_layer": "body", + "label": "paragraph", + "prov": [], + "orig": "", + "text": "" + }, + { + "self_ref": "#/texts/52", + "parent": { + "$ref": "#/groups/15" + }, + "children": [], + "content_layer": "body", + "label": "paragraph", + "prov": [], + "orig": "Yes", + "text": "Yes", + "formatting": { + "bold": false, + "italic": false, + "underline": false, + "strikethrough": false, + "script": "baseline" + } + }, { "self_ref": "#/texts/53", "parent": { @@ -1290,7 +1285,7 @@ { "self_ref": "#/texts/54", "parent": { - "$ref": "#/groups/15" + "$ref": "#/groups/16" }, "children": [], "content_layer": "body", @@ -1321,48 +1316,17 @@ { "self_ref": "#/texts/56", "parent": { - "$ref": "#/groups/16" + "$ref": "#/body" }, "children": [], "content_layer": "body", "label": "paragraph", "prov": [], - "orig": "Yes", - "text": "Yes", - "formatting": { - "bold": false, - "italic": false, - "underline": false, - "strikethrough": false, - "script": "baseline" - } + "orig": "", + "text": "" }, { "self_ref": "#/texts/57", - "parent": { - "$ref": "#/body" - }, - "children": [], - "content_layer": "body", - "label": "paragraph", - "prov": [], - "orig": "", - "text": "" - }, - { - "self_ref": "#/texts/58", - "parent": { - "$ref": "#/body" - }, - "children": [], - "content_layer": "body", - "label": "paragraph", - "prov": [], - "orig": "", - "text": "" - }, - { - "self_ref": "#/texts/59", "parent": { "$ref": "#/groups/17" }, @@ -1381,7 +1345,7 @@ } }, { - "self_ref": "#/texts/60", + "self_ref": "#/texts/58", "parent": { "$ref": "#/groups/17" }, @@ -1393,7 +1357,7 @@ "text": "" }, { - "self_ref": "#/texts/61", + "self_ref": "#/texts/59", "parent": { "$ref": "#/groups/17" }, @@ -1411,6 +1375,37 @@ "script": "baseline" } }, + { + "self_ref": "#/texts/60", + "parent": { + "$ref": "#/body" + }, + "children": [], + "content_layer": "body", + "label": "paragraph", + "prov": [], + "orig": "", + "text": "" + }, + { + "self_ref": "#/texts/61", + "parent": { + "$ref": "#/groups/18" + }, + "children": [], + "content_layer": "body", + "label": "paragraph", + "prov": [], + "orig": "No", + "text": "No", + "formatting": { + "bold": false, + "italic": false, + "underline": false, + "strikethrough": false, + "script": "baseline" + } + }, { "self_ref": "#/texts/62", "parent": { @@ -1426,21 +1421,14 @@ { "self_ref": "#/texts/63", "parent": { - "$ref": "#/groups/18" + "$ref": "#/body" }, "children": [], "content_layer": "body", "label": "paragraph", "prov": [], - "orig": "No", - "text": "No", - "formatting": { - "bold": false, - "italic": false, - "underline": false, - "strikethrough": false, - "script": "baseline" - } + "orig": "", + "text": "" }, { "self_ref": "#/texts/64", @@ -1453,30 +1441,6 @@ "prov": [], "orig": "", "text": "" - }, - { - "self_ref": "#/texts/65", - "parent": { - "$ref": "#/body" - }, - "children": [], - "content_layer": "body", - "label": "paragraph", - "prov": [], - "orig": "", - "text": "" - }, - { - "self_ref": "#/texts/66", - "parent": { - "$ref": "#/body" - }, - "children": [], - "content_layer": "body", - "label": "paragraph", - "prov": [], - "orig": "", - "text": "" } ], "pictures": [], diff --git a/tests/data/groundtruth/docling_v2/unit_test_01.html.json b/tests/data/groundtruth/docling_v2/unit_test_01.html.json index 08669c21..3a118c82 100644 --- a/tests/data/groundtruth/docling_v2/unit_test_01.html.json +++ b/tests/data/groundtruth/docling_v2/unit_test_01.html.json @@ -1,6 +1,6 @@ { "schema_name": "DoclingDocument", - "version": "1.4.0", + "version": "1.5.0", "name": "unit_test_01", "origin": { "mimetype": "text/html", diff --git a/tests/data/groundtruth/docling_v2/unit_test_formatting.docx.json b/tests/data/groundtruth/docling_v2/unit_test_formatting.docx.json index 4173fc62..2e564e6d 100644 --- a/tests/data/groundtruth/docling_v2/unit_test_formatting.docx.json +++ b/tests/data/groundtruth/docling_v2/unit_test_formatting.docx.json @@ -1,6 +1,6 @@ { "schema_name": "DoclingDocument", - "version": "1.4.0", + "version": "1.5.0", "name": "unit_test_formatting", "origin": { "mimetype": "application/vnd.openxmlformats-officedocument.wordprocessingml.document", @@ -429,7 +429,7 @@ "script": "baseline" }, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/14", @@ -450,7 +450,7 @@ "script": "baseline" }, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/15", @@ -471,7 +471,7 @@ "script": "baseline" }, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/16", @@ -489,7 +489,7 @@ "orig": "", "text": "", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/17", @@ -583,7 +583,7 @@ "orig": "", "text": "", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/22", diff --git a/tests/data/groundtruth/docling_v2/unit_test_headers.docx.json b/tests/data/groundtruth/docling_v2/unit_test_headers.docx.json index 32288fe5..b70bf7b5 100644 --- a/tests/data/groundtruth/docling_v2/unit_test_headers.docx.json +++ b/tests/data/groundtruth/docling_v2/unit_test_headers.docx.json @@ -1,6 +1,6 @@ { "schema_name": "DoclingDocument", - "version": "1.4.0", + "version": "1.5.0", "name": "unit_test_headers", "origin": { "mimetype": "application/vnd.openxmlformats-officedocument.wordprocessingml.document", diff --git a/tests/data/groundtruth/docling_v2/unit_test_headers_numbered.docx.json b/tests/data/groundtruth/docling_v2/unit_test_headers_numbered.docx.json index a0883e7e..340c13d1 100644 --- a/tests/data/groundtruth/docling_v2/unit_test_headers_numbered.docx.json +++ b/tests/data/groundtruth/docling_v2/unit_test_headers_numbered.docx.json @@ -1,6 +1,6 @@ { "schema_name": "DoclingDocument", - "version": "1.4.0", + "version": "1.5.0", "name": "unit_test_headers_numbered", "origin": { "mimetype": "application/vnd.openxmlformats-officedocument.wordprocessingml.document", diff --git a/tests/data/groundtruth/docling_v2/unit_test_lists.docx.json b/tests/data/groundtruth/docling_v2/unit_test_lists.docx.json index 2f0b928d..e93085d5 100644 --- a/tests/data/groundtruth/docling_v2/unit_test_lists.docx.json +++ b/tests/data/groundtruth/docling_v2/unit_test_lists.docx.json @@ -1,6 +1,6 @@ { "schema_name": "DoclingDocument", - "version": "1.4.0", + "version": "1.5.0", "name": "unit_test_lists", "origin": { "mimetype": "application/vnd.openxmlformats-officedocument.wordprocessingml.document", @@ -456,7 +456,7 @@ "script": "baseline" }, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/9", @@ -477,7 +477,7 @@ "script": "baseline" }, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/10", @@ -498,7 +498,7 @@ "script": "baseline" }, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/11", @@ -551,7 +551,7 @@ "script": "baseline" }, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/14", @@ -572,7 +572,7 @@ "script": "baseline" }, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/15", @@ -593,7 +593,7 @@ "script": "baseline" }, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/16", @@ -646,7 +646,7 @@ "script": "baseline" }, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/19", @@ -667,7 +667,7 @@ "script": "baseline" }, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/20", @@ -688,7 +688,7 @@ "script": "baseline" }, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/21", @@ -709,7 +709,7 @@ "script": "baseline" }, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/22", @@ -730,7 +730,7 @@ "script": "baseline" }, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/23", @@ -751,7 +751,7 @@ "script": "baseline" }, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/24", @@ -804,7 +804,7 @@ "script": "baseline" }, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/27", @@ -825,7 +825,7 @@ "script": "baseline" }, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/28", @@ -846,7 +846,7 @@ "script": "baseline" }, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/29", @@ -899,7 +899,7 @@ "script": "baseline" }, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/32", @@ -920,7 +920,7 @@ "script": "baseline" }, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/33", @@ -941,7 +941,7 @@ "script": "baseline" }, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/34", @@ -962,7 +962,7 @@ "script": "baseline" }, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/35", @@ -1021,7 +1021,7 @@ "script": "baseline" }, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/38", @@ -1042,7 +1042,7 @@ "script": "baseline" }, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/39", @@ -1063,7 +1063,7 @@ "script": "baseline" }, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/40", @@ -1084,7 +1084,7 @@ "script": "baseline" }, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/41", @@ -1105,7 +1105,7 @@ "script": "baseline" }, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/42", @@ -1126,7 +1126,7 @@ "script": "baseline" }, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/43", diff --git a/tests/data/groundtruth/docling_v2/wiki_duck.html.itxt b/tests/data/groundtruth/docling_v2/wiki_duck.html.itxt index c0f5fdc9..ca342ea0 100644 --- a/tests/data/groundtruth/docling_v2/wiki_duck.html.itxt +++ b/tests/data/groundtruth/docling_v2/wiki_duck.html.itxt @@ -302,7 +302,7 @@ item-0 at level 0: unspecified: group _root_ item-288 at level 4: list_item: Rubber duck item-289 at level 2: section_header: Notes item-290 at level 3: section_header: Citations - item-291 at level 4: ordered_list: group ordered list + item-291 at level 4: list: group ordered list item-292 at level 5: list_item: ^ "Duckling". The American Herit ... n Company. 2006. Retrieved 2015-05-22. item-293 at level 5: list_item: ^ "Duckling". Kernerman English ... Ltd. 2000–2006. Retrieved 2015-05-22. item-294 at level 5: list_item: ^ Dohner, Janet Vorwald (2001). ... University Press. ISBN 978-0300138139. diff --git a/tests/data/groundtruth/docling_v2/wiki_duck.html.json b/tests/data/groundtruth/docling_v2/wiki_duck.html.json index 952c96bf..4a46406c 100644 --- a/tests/data/groundtruth/docling_v2/wiki_duck.html.json +++ b/tests/data/groundtruth/docling_v2/wiki_duck.html.json @@ -1,6 +1,6 @@ { "schema_name": "DoclingDocument", - "version": "1.4.0", + "version": "1.5.0", "name": "wiki_duck", "origin": { "mimetype": "text/html", @@ -1309,7 +1309,7 @@ ], "content_layer": "body", "name": "ordered list", - "label": "ordered_list" + "label": "list" }, { "self_ref": "#/groups/40", @@ -1653,7 +1653,7 @@ "orig": "Main page", "text": "Main page", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/3", @@ -1667,7 +1667,7 @@ "orig": "Contents", "text": "Contents", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/4", @@ -1681,7 +1681,7 @@ "orig": "Current events", "text": "Current events", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/5", @@ -1695,7 +1695,7 @@ "orig": "Random article", "text": "Random article", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/6", @@ -1709,7 +1709,7 @@ "orig": "About Wikipedia", "text": "About Wikipedia", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/7", @@ -1723,7 +1723,7 @@ "orig": "Contact us", "text": "Contact us", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/8", @@ -1749,7 +1749,7 @@ "orig": "Help", "text": "Help", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/10", @@ -1763,7 +1763,7 @@ "orig": "Learn to edit", "text": "Learn to edit", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/11", @@ -1777,7 +1777,7 @@ "orig": "Community portal", "text": "Community portal", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/12", @@ -1791,7 +1791,7 @@ "orig": "Recent changes", "text": "Recent changes", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/13", @@ -1805,7 +1805,7 @@ "orig": "Upload file", "text": "Upload file", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/14", @@ -1819,7 +1819,7 @@ "orig": "Donate", "text": "Donate", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/15", @@ -1833,7 +1833,7 @@ "orig": "Create account", "text": "Create account", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/16", @@ -1847,7 +1847,7 @@ "orig": "Log in", "text": "Log in", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/17", @@ -1861,7 +1861,7 @@ "orig": "Create account", "text": "Create account", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/18", @@ -1875,7 +1875,7 @@ "orig": "Log in", "text": "Log in", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/19", @@ -1901,7 +1901,7 @@ "orig": "Contributions", "text": "Contributions", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/21", @@ -1915,7 +1915,7 @@ "orig": "Talk", "text": "Talk", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/22", @@ -1946,7 +1946,7 @@ "orig": "(Top)", "text": "(Top)", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/24", @@ -1964,7 +1964,7 @@ "orig": "1 Etymology", "text": "1 Etymology", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/25", @@ -1982,7 +1982,7 @@ "orig": "2 Taxonomy", "text": "2 Taxonomy", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/26", @@ -2000,7 +2000,7 @@ "orig": "3 Morphology", "text": "3 Morphology", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/27", @@ -2018,7 +2018,7 @@ "orig": "4 Distribution and habitat", "text": "4 Distribution and habitat", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/28", @@ -2036,7 +2036,7 @@ "orig": "5 Behaviour Toggle Behaviour subsection", "text": "5 Behaviour Toggle Behaviour subsection", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/29", @@ -2054,7 +2054,7 @@ "orig": "5.1 Feeding", "text": "5.1 Feeding", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/30", @@ -2072,7 +2072,7 @@ "orig": "5.2 Breeding", "text": "5.2 Breeding", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/31", @@ -2090,7 +2090,7 @@ "orig": "5.3 Communication", "text": "5.3 Communication", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/32", @@ -2108,7 +2108,7 @@ "orig": "5.4 Predators", "text": "5.4 Predators", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/33", @@ -2126,7 +2126,7 @@ "orig": "6 Relationship with humans Toggle Relationship with humans subsection", "text": "6 Relationship with humans Toggle Relationship with humans subsection", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/34", @@ -2144,7 +2144,7 @@ "orig": "6.1 Hunting", "text": "6.1 Hunting", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/35", @@ -2162,7 +2162,7 @@ "orig": "6.2 Domestication", "text": "6.2 Domestication", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/36", @@ -2180,7 +2180,7 @@ "orig": "6.3 Heraldry", "text": "6.3 Heraldry", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/37", @@ -2198,7 +2198,7 @@ "orig": "6.4 Cultural references", "text": "6.4 Cultural references", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/38", @@ -2216,7 +2216,7 @@ "orig": "7 See also", "text": "7 See also", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/39", @@ -2234,7 +2234,7 @@ "orig": "8 Notes Toggle Notes subsection", "text": "8 Notes Toggle Notes subsection", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/40", @@ -2252,7 +2252,7 @@ "orig": "8.1 Citations", "text": "8.1 Citations", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/41", @@ -2270,7 +2270,7 @@ "orig": "8.2 Sources", "text": "8.2 Sources", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/42", @@ -2288,7 +2288,7 @@ "orig": "9 External links", "text": "9 External links", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/43", @@ -2408,7 +2408,7 @@ "orig": "Acèh", "text": "Acèh", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/45", @@ -2422,7 +2422,7 @@ "orig": "Afrikaans", "text": "Afrikaans", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/46", @@ -2436,7 +2436,7 @@ "orig": "Alemannisch", "text": "Alemannisch", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/47", @@ -2450,7 +2450,7 @@ "orig": "አማርኛ", "text": "አማርኛ", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/48", @@ -2464,7 +2464,7 @@ "orig": "Ænglisc", "text": "Ænglisc", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/49", @@ -2478,7 +2478,7 @@ "orig": "العربية", "text": "العربية", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/50", @@ -2492,7 +2492,7 @@ "orig": "Aragonés", "text": "Aragonés", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/51", @@ -2506,7 +2506,7 @@ "orig": "ܐܪܡܝܐ", "text": "ܐܪܡܝܐ", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/52", @@ -2520,7 +2520,7 @@ "orig": "Armãneashti", "text": "Armãneashti", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/53", @@ -2534,7 +2534,7 @@ "orig": "Asturianu", "text": "Asturianu", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/54", @@ -2548,7 +2548,7 @@ "orig": "Atikamekw", "text": "Atikamekw", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/55", @@ -2562,7 +2562,7 @@ "orig": "Авар", "text": "Авар", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/56", @@ -2576,7 +2576,7 @@ "orig": "Aymar aru", "text": "Aymar aru", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/57", @@ -2590,7 +2590,7 @@ "orig": "تۆرکجه", "text": "تۆرکجه", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/58", @@ -2604,7 +2604,7 @@ "orig": "Basa Bali", "text": "Basa Bali", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/59", @@ -2618,7 +2618,7 @@ "orig": "বাংলা", "text": "বাংলা", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/60", @@ -2632,7 +2632,7 @@ "orig": "閩南語 / Bân-lâm-gú", "text": "閩南語 / Bân-lâm-gú", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/61", @@ -2646,7 +2646,7 @@ "orig": "Беларуская", "text": "Беларуская", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/62", @@ -2660,7 +2660,7 @@ "orig": "Беларуская (тарашкевіца)", "text": "Беларуская (тарашкевіца)", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/63", @@ -2674,7 +2674,7 @@ "orig": "Bikol Central", "text": "Bikol Central", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/64", @@ -2688,7 +2688,7 @@ "orig": "Български", "text": "Български", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/65", @@ -2702,7 +2702,7 @@ "orig": "Brezhoneg", "text": "Brezhoneg", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/66", @@ -2716,7 +2716,7 @@ "orig": "Буряад", "text": "Буряад", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/67", @@ -2730,7 +2730,7 @@ "orig": "Català", "text": "Català", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/68", @@ -2744,7 +2744,7 @@ "orig": "Чӑвашла", "text": "Чӑвашла", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/69", @@ -2758,7 +2758,7 @@ "orig": "Čeština", "text": "Čeština", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/70", @@ -2772,7 +2772,7 @@ "orig": "ChiShona", "text": "ChiShona", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/71", @@ -2786,7 +2786,7 @@ "orig": "Cymraeg", "text": "Cymraeg", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/72", @@ -2800,7 +2800,7 @@ "orig": "Dagbanli", "text": "Dagbanli", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/73", @@ -2814,7 +2814,7 @@ "orig": "Dansk", "text": "Dansk", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/74", @@ -2828,7 +2828,7 @@ "orig": "Deitsch", "text": "Deitsch", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/75", @@ -2842,7 +2842,7 @@ "orig": "Deutsch", "text": "Deutsch", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/76", @@ -2856,7 +2856,7 @@ "orig": "डोटेली", "text": "डोटेली", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/77", @@ -2870,7 +2870,7 @@ "orig": "Ελληνικά", "text": "Ελληνικά", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/78", @@ -2884,7 +2884,7 @@ "orig": "Emiliàn e rumagnòl", "text": "Emiliàn e rumagnòl", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/79", @@ -2898,7 +2898,7 @@ "orig": "Español", "text": "Español", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/80", @@ -2912,7 +2912,7 @@ "orig": "Esperanto", "text": "Esperanto", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/81", @@ -2926,7 +2926,7 @@ "orig": "Euskara", "text": "Euskara", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/82", @@ -2940,7 +2940,7 @@ "orig": "فارسی", "text": "فارسی", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/83", @@ -2954,7 +2954,7 @@ "orig": "Français", "text": "Français", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/84", @@ -2968,7 +2968,7 @@ "orig": "Gaeilge", "text": "Gaeilge", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/85", @@ -2982,7 +2982,7 @@ "orig": "Galego", "text": "Galego", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/86", @@ -2996,7 +2996,7 @@ "orig": "ГӀалгӀай", "text": "ГӀалгӀай", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/87", @@ -3010,7 +3010,7 @@ "orig": "贛語", "text": "贛語", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/88", @@ -3024,7 +3024,7 @@ "orig": "گیلکی", "text": "گیلکی", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/89", @@ -3038,7 +3038,7 @@ "orig": "𐌲𐌿𐍄𐌹𐍃𐌺", "text": "𐌲𐌿𐍄𐌹𐍃𐌺", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/90", @@ -3052,7 +3052,7 @@ "orig": "गोंयची कोंकणी / Gõychi Konknni", "text": "गोंयची कोंकणी / Gõychi Konknni", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/91", @@ -3066,7 +3066,7 @@ "orig": "客家語 / Hak-kâ-ngî", "text": "客家語 / Hak-kâ-ngî", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/92", @@ -3080,7 +3080,7 @@ "orig": "한국어", "text": "한국어", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/93", @@ -3094,7 +3094,7 @@ "orig": "Hausa", "text": "Hausa", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/94", @@ -3108,7 +3108,7 @@ "orig": "Հայերեն", "text": "Հայերեն", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/95", @@ -3122,7 +3122,7 @@ "orig": "हिन्दी", "text": "हिन्दी", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/96", @@ -3136,7 +3136,7 @@ "orig": "Hrvatski", "text": "Hrvatski", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/97", @@ -3150,7 +3150,7 @@ "orig": "Ido", "text": "Ido", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/98", @@ -3164,7 +3164,7 @@ "orig": "Bahasa Indonesia", "text": "Bahasa Indonesia", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/99", @@ -3178,7 +3178,7 @@ "orig": "Iñupiatun", "text": "Iñupiatun", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/100", @@ -3192,7 +3192,7 @@ "orig": "Íslenska", "text": "Íslenska", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/101", @@ -3206,7 +3206,7 @@ "orig": "Italiano", "text": "Italiano", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/102", @@ -3220,7 +3220,7 @@ "orig": "עברית", "text": "עברית", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/103", @@ -3234,7 +3234,7 @@ "orig": "Jawa", "text": "Jawa", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/104", @@ -3248,7 +3248,7 @@ "orig": "ಕನ್ನಡ", "text": "ಕನ್ನಡ", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/105", @@ -3262,7 +3262,7 @@ "orig": "Kapampangan", "text": "Kapampangan", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/106", @@ -3276,7 +3276,7 @@ "orig": "ქართული", "text": "ქართული", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/107", @@ -3290,7 +3290,7 @@ "orig": "कॉशुर / کٲشُر", "text": "कॉशुर / کٲشُر", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/108", @@ -3304,7 +3304,7 @@ "orig": "Қазақша", "text": "Қазақша", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/109", @@ -3318,7 +3318,7 @@ "orig": "Ikirundi", "text": "Ikirundi", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/110", @@ -3332,7 +3332,7 @@ "orig": "Kongo", "text": "Kongo", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/111", @@ -3346,7 +3346,7 @@ "orig": "Kreyòl ayisyen", "text": "Kreyòl ayisyen", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/112", @@ -3360,7 +3360,7 @@ "orig": "Кырык мары", "text": "Кырык мары", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/113", @@ -3374,7 +3374,7 @@ "orig": "ລາວ", "text": "ລາວ", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/114", @@ -3388,7 +3388,7 @@ "orig": "Latina", "text": "Latina", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/115", @@ -3402,7 +3402,7 @@ "orig": "Latviešu", "text": "Latviešu", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/116", @@ -3416,7 +3416,7 @@ "orig": "Lietuvių", "text": "Lietuvių", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/117", @@ -3430,7 +3430,7 @@ "orig": "Li Niha", "text": "Li Niha", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/118", @@ -3444,7 +3444,7 @@ "orig": "Ligure", "text": "Ligure", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/119", @@ -3458,7 +3458,7 @@ "orig": "Limburgs", "text": "Limburgs", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/120", @@ -3472,7 +3472,7 @@ "orig": "Lingála", "text": "Lingála", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/121", @@ -3486,7 +3486,7 @@ "orig": "Malagasy", "text": "Malagasy", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/122", @@ -3500,7 +3500,7 @@ "orig": "മലയാളം", "text": "മലയാളം", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/123", @@ -3514,7 +3514,7 @@ "orig": "मराठी", "text": "मराठी", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/124", @@ -3528,7 +3528,7 @@ "orig": "مازِرونی", "text": "مازِرونی", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/125", @@ -3542,7 +3542,7 @@ "orig": "Bahasa Melayu", "text": "Bahasa Melayu", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/126", @@ -3556,7 +3556,7 @@ "orig": "ꯃꯤꯇꯩ ꯂꯣꯟ", "text": "ꯃꯤꯇꯩ ꯂꯣꯟ", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/127", @@ -3570,7 +3570,7 @@ "orig": "閩東語 / Mìng-dĕ̤ng-ngṳ̄", "text": "閩東語 / Mìng-dĕ̤ng-ngṳ̄", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/128", @@ -3584,7 +3584,7 @@ "orig": "Мокшень", "text": "Мокшень", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/129", @@ -3598,7 +3598,7 @@ "orig": "Монгол", "text": "Монгол", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/130", @@ -3612,7 +3612,7 @@ "orig": "မြန်မာဘာသာ", "text": "မြန်မာဘာသာ", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/131", @@ -3626,7 +3626,7 @@ "orig": "Nederlands", "text": "Nederlands", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/132", @@ -3640,7 +3640,7 @@ "orig": "Nedersaksies", "text": "Nedersaksies", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/133", @@ -3654,7 +3654,7 @@ "orig": "नेपाली", "text": "नेपाली", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/134", @@ -3668,7 +3668,7 @@ "orig": "नेपाल भाषा", "text": "नेपाल भाषा", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/135", @@ -3682,7 +3682,7 @@ "orig": "日本語", "text": "日本語", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/136", @@ -3696,7 +3696,7 @@ "orig": "Нохчийн", "text": "Нохчийн", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/137", @@ -3710,7 +3710,7 @@ "orig": "Norsk nynorsk", "text": "Norsk nynorsk", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/138", @@ -3724,7 +3724,7 @@ "orig": "Occitan", "text": "Occitan", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/139", @@ -3738,7 +3738,7 @@ "orig": "Oromoo", "text": "Oromoo", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/140", @@ -3752,7 +3752,7 @@ "orig": "ਪੰਜਾਬੀ", "text": "ਪੰਜਾਬੀ", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/141", @@ -3766,7 +3766,7 @@ "orig": "Picard", "text": "Picard", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/142", @@ -3780,7 +3780,7 @@ "orig": "Plattdüütsch", "text": "Plattdüütsch", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/143", @@ -3794,7 +3794,7 @@ "orig": "Polski", "text": "Polski", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/144", @@ -3808,7 +3808,7 @@ "orig": "Português", "text": "Português", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/145", @@ -3822,7 +3822,7 @@ "orig": "Qırımtatarca", "text": "Qırımtatarca", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/146", @@ -3836,7 +3836,7 @@ "orig": "Română", "text": "Română", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/147", @@ -3850,7 +3850,7 @@ "orig": "Русский", "text": "Русский", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/148", @@ -3864,7 +3864,7 @@ "orig": "Саха тыла", "text": "Саха тыла", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/149", @@ -3878,7 +3878,7 @@ "orig": "ᱥᱟᱱᱛᱟᱲᱤ", "text": "ᱥᱟᱱᱛᱟᱲᱤ", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/150", @@ -3892,7 +3892,7 @@ "orig": "Sardu", "text": "Sardu", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/151", @@ -3906,7 +3906,7 @@ "orig": "Scots", "text": "Scots", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/152", @@ -3920,7 +3920,7 @@ "orig": "Seeltersk", "text": "Seeltersk", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/153", @@ -3934,7 +3934,7 @@ "orig": "Shqip", "text": "Shqip", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/154", @@ -3948,7 +3948,7 @@ "orig": "Sicilianu", "text": "Sicilianu", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/155", @@ -3962,7 +3962,7 @@ "orig": "සිංහල", "text": "සිංහල", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/156", @@ -3976,7 +3976,7 @@ "orig": "Simple English", "text": "Simple English", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/157", @@ -3990,7 +3990,7 @@ "orig": "سنڌي", "text": "سنڌي", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/158", @@ -4004,7 +4004,7 @@ "orig": "کوردی", "text": "کوردی", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/159", @@ -4018,7 +4018,7 @@ "orig": "Српски / srpski", "text": "Српски / srpski", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/160", @@ -4032,7 +4032,7 @@ "orig": "Srpskohrvatski / српскохрватски", "text": "Srpskohrvatski / српскохрватски", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/161", @@ -4046,7 +4046,7 @@ "orig": "Sunda", "text": "Sunda", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/162", @@ -4060,7 +4060,7 @@ "orig": "Svenska", "text": "Svenska", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/163", @@ -4074,7 +4074,7 @@ "orig": "Tagalog", "text": "Tagalog", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/164", @@ -4088,7 +4088,7 @@ "orig": "தமிழ்", "text": "தமிழ்", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/165", @@ -4102,7 +4102,7 @@ "orig": "Taqbaylit", "text": "Taqbaylit", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/166", @@ -4116,7 +4116,7 @@ "orig": "Татарча / tatarça", "text": "Татарча / tatarça", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/167", @@ -4130,7 +4130,7 @@ "orig": "ไทย", "text": "ไทย", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/168", @@ -4144,7 +4144,7 @@ "orig": "Türkçe", "text": "Türkçe", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/169", @@ -4158,7 +4158,7 @@ "orig": "Українська", "text": "Українська", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/170", @@ -4172,7 +4172,7 @@ "orig": "ئۇيغۇرچە / Uyghurche", "text": "ئۇيغۇرچە / Uyghurche", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/171", @@ -4186,7 +4186,7 @@ "orig": "Vahcuengh", "text": "Vahcuengh", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/172", @@ -4200,7 +4200,7 @@ "orig": "Tiếng Việt", "text": "Tiếng Việt", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/173", @@ -4214,7 +4214,7 @@ "orig": "Walon", "text": "Walon", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/174", @@ -4228,7 +4228,7 @@ "orig": "文言", "text": "文言", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/175", @@ -4242,7 +4242,7 @@ "orig": "Winaray", "text": "Winaray", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/176", @@ -4256,7 +4256,7 @@ "orig": "吴语", "text": "吴语", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/177", @@ -4270,7 +4270,7 @@ "orig": "粵語", "text": "粵語", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/178", @@ -4284,7 +4284,7 @@ "orig": "Žemaitėška", "text": "Žemaitėška", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/179", @@ -4298,7 +4298,7 @@ "orig": "中文", "text": "中文", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/180", @@ -4312,7 +4312,7 @@ "orig": "Article", "text": "Article", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/181", @@ -4326,7 +4326,7 @@ "orig": "Talk", "text": "Talk", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/182", @@ -4340,7 +4340,7 @@ "orig": "Read", "text": "Read", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/183", @@ -4354,7 +4354,7 @@ "orig": "View source", "text": "View source", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/184", @@ -4368,7 +4368,7 @@ "orig": "View history", "text": "View history", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/185", @@ -4406,7 +4406,7 @@ "orig": "Read", "text": "Read", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/188", @@ -4420,7 +4420,7 @@ "orig": "View source", "text": "View source", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/189", @@ -4434,7 +4434,7 @@ "orig": "View history", "text": "View history", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/190", @@ -4460,7 +4460,7 @@ "orig": "What links here", "text": "What links here", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/192", @@ -4474,7 +4474,7 @@ "orig": "Related changes", "text": "Related changes", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/193", @@ -4488,7 +4488,7 @@ "orig": "Upload file", "text": "Upload file", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/194", @@ -4502,7 +4502,7 @@ "orig": "Special pages", "text": "Special pages", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/195", @@ -4516,7 +4516,7 @@ "orig": "Permanent link", "text": "Permanent link", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/196", @@ -4530,7 +4530,7 @@ "orig": "Page information", "text": "Page information", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/197", @@ -4544,7 +4544,7 @@ "orig": "Cite this page", "text": "Cite this page", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/198", @@ -4558,7 +4558,7 @@ "orig": "Get shortened URL", "text": "Get shortened URL", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/199", @@ -4572,7 +4572,7 @@ "orig": "Download QR code", "text": "Download QR code", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/200", @@ -4586,7 +4586,7 @@ "orig": "Wikidata item", "text": "Wikidata item", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/201", @@ -4612,7 +4612,7 @@ "orig": "Download as PDF", "text": "Download as PDF", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/203", @@ -4626,7 +4626,7 @@ "orig": "Printable version", "text": "Printable version", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/204", @@ -4652,7 +4652,7 @@ "orig": "Wikimedia Commons", "text": "Wikimedia Commons", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/206", @@ -4666,7 +4666,7 @@ "orig": "Wikiquote", "text": "Wikiquote", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/207", @@ -5619,7 +5619,7 @@ "orig": "Birds portal", "text": "Birds portal", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/271", @@ -5633,7 +5633,7 @@ "orig": "Domestic duck", "text": "Domestic duck", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/272", @@ -5647,7 +5647,7 @@ "orig": "Duck as food", "text": "Duck as food", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/273", @@ -5661,7 +5661,7 @@ "orig": "Duck test", "text": "Duck test", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/274", @@ -5675,7 +5675,7 @@ "orig": "Duck breeds", "text": "Duck breeds", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/275", @@ -5689,7 +5689,7 @@ "orig": "Fictional ducks", "text": "Fictional ducks", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/276", @@ -5703,7 +5703,7 @@ "orig": "Rubber duck", "text": "Rubber duck", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/277", @@ -5754,7 +5754,7 @@ "orig": "^ \"Duckling\". The American Heritage Dictionary of the English Language, Fourth Edition. Houghton Mifflin Company. 2006. Retrieved 2015-05-22.", "text": "^ \"Duckling\". The American Heritage Dictionary of the English Language, Fourth Edition. Houghton Mifflin Company. 2006. Retrieved 2015-05-22.", "enumerated": true, - "marker": "1." + "marker": "" }, { "self_ref": "#/texts/280", @@ -5768,7 +5768,7 @@ "orig": "^ \"Duckling\". Kernerman English Multilingual Dictionary (Beta Version). K. Dictionaries Ltd. 2000–2006. Retrieved 2015-05-22.", "text": "^ \"Duckling\". Kernerman English Multilingual Dictionary (Beta Version). K. Dictionaries Ltd. 2000–2006. Retrieved 2015-05-22.", "enumerated": true, - "marker": "2." + "marker": "" }, { "self_ref": "#/texts/281", @@ -5782,7 +5782,7 @@ "orig": "^ Dohner, Janet Vorwald (2001). The Encyclopedia of Historic and Endangered Livestock and Poultry Breeds. Yale University Press. ISBN 978-0300138139.", "text": "^ Dohner, Janet Vorwald (2001). The Encyclopedia of Historic and Endangered Livestock and Poultry Breeds. Yale University Press. ISBN 978-0300138139.", "enumerated": true, - "marker": "3." + "marker": "" }, { "self_ref": "#/texts/282", @@ -5796,7 +5796,7 @@ "orig": "^ Visca, Curt; Visca, Kelley (2003). How to Draw Cartoon Birds. The Rosen Publishing Group. ISBN 9780823961566.", "text": "^ Visca, Curt; Visca, Kelley (2003). How to Draw Cartoon Birds. The Rosen Publishing Group. ISBN 9780823961566.", "enumerated": true, - "marker": "4." + "marker": "" }, { "self_ref": "#/texts/283", @@ -5810,7 +5810,7 @@ "orig": "^ a b c d Carboneras 1992, p. 536.", "text": "^ a b c d Carboneras 1992, p. 536.", "enumerated": true, - "marker": "5." + "marker": "" }, { "self_ref": "#/texts/284", @@ -5824,7 +5824,7 @@ "orig": "^ Livezey 1986, pp. 737–738.", "text": "^ Livezey 1986, pp. 737–738.", "enumerated": true, - "marker": "6." + "marker": "" }, { "self_ref": "#/texts/285", @@ -5838,7 +5838,7 @@ "orig": "^ Madsen, McHugh & de Kloet 1988, p. 452.", "text": "^ Madsen, McHugh & de Kloet 1988, p. 452.", "enumerated": true, - "marker": "7." + "marker": "" }, { "self_ref": "#/texts/286", @@ -5852,7 +5852,7 @@ "orig": "^ Donne-Goussé, Laudet & Hänni 2002, pp. 353–354.", "text": "^ Donne-Goussé, Laudet & Hänni 2002, pp. 353–354.", "enumerated": true, - "marker": "8." + "marker": "" }, { "self_ref": "#/texts/287", @@ -5866,7 +5866,7 @@ "orig": "^ a b c d e f Carboneras 1992, p. 540.", "text": "^ a b c d e f Carboneras 1992, p. 540.", "enumerated": true, - "marker": "9." + "marker": "" }, { "self_ref": "#/texts/288", @@ -5880,7 +5880,7 @@ "orig": "^ Elphick, Dunning & Sibley 2001, p. 191.", "text": "^ Elphick, Dunning & Sibley 2001, p. 191.", "enumerated": true, - "marker": "10." + "marker": "" }, { "self_ref": "#/texts/289", @@ -5894,7 +5894,7 @@ "orig": "^ Kear 2005, p. 448.", "text": "^ Kear 2005, p. 448.", "enumerated": true, - "marker": "11." + "marker": "" }, { "self_ref": "#/texts/290", @@ -5908,7 +5908,7 @@ "orig": "^ Kear 2005, p. 622–623.", "text": "^ Kear 2005, p. 622–623.", "enumerated": true, - "marker": "12." + "marker": "" }, { "self_ref": "#/texts/291", @@ -5922,7 +5922,7 @@ "orig": "^ Kear 2005, p. 686.", "text": "^ Kear 2005, p. 686.", "enumerated": true, - "marker": "13." + "marker": "" }, { "self_ref": "#/texts/292", @@ -5936,7 +5936,7 @@ "orig": "^ Elphick, Dunning & Sibley 2001, p. 193.", "text": "^ Elphick, Dunning & Sibley 2001, p. 193.", "enumerated": true, - "marker": "14." + "marker": "" }, { "self_ref": "#/texts/293", @@ -5950,7 +5950,7 @@ "orig": "^ a b c d e f g Carboneras 1992, p. 537.", "text": "^ a b c d e f g Carboneras 1992, p. 537.", "enumerated": true, - "marker": "15." + "marker": "" }, { "self_ref": "#/texts/294", @@ -5964,7 +5964,7 @@ "orig": "^ American Ornithologists' Union 1998, p. xix.", "text": "^ American Ornithologists' Union 1998, p. xix.", "enumerated": true, - "marker": "16." + "marker": "" }, { "self_ref": "#/texts/295", @@ -5978,7 +5978,7 @@ "orig": "^ American Ornithologists' Union 1998.", "text": "^ American Ornithologists' Union 1998.", "enumerated": true, - "marker": "17." + "marker": "" }, { "self_ref": "#/texts/296", @@ -5992,7 +5992,7 @@ "orig": "^ Carboneras 1992, p. 538.", "text": "^ Carboneras 1992, p. 538.", "enumerated": true, - "marker": "18." + "marker": "" }, { "self_ref": "#/texts/297", @@ -6006,7 +6006,7 @@ "orig": "^ Christidis & Boles 2008, p. 62.", "text": "^ Christidis & Boles 2008, p. 62.", "enumerated": true, - "marker": "19." + "marker": "" }, { "self_ref": "#/texts/298", @@ -6020,7 +6020,7 @@ "orig": "^ Shirihai 2008, pp. 239, 245.", "text": "^ Shirihai 2008, pp. 239, 245.", "enumerated": true, - "marker": "20." + "marker": "" }, { "self_ref": "#/texts/299", @@ -6034,7 +6034,7 @@ "orig": "^ a b Pratt, Bruner & Berrett 1987, pp. 98–107.", "text": "^ a b Pratt, Bruner & Berrett 1987, pp. 98–107.", "enumerated": true, - "marker": "21." + "marker": "" }, { "self_ref": "#/texts/300", @@ -6048,7 +6048,7 @@ "orig": "^ Fitter, Fitter & Hosking 2000, pp. 52–3.", "text": "^ Fitter, Fitter & Hosking 2000, pp. 52–3.", "enumerated": true, - "marker": "22." + "marker": "" }, { "self_ref": "#/texts/301", @@ -6062,7 +6062,7 @@ "orig": "^ \"Pacific Black Duck\". www.wiresnr.org. Retrieved 2018-04-27.", "text": "^ \"Pacific Black Duck\". www.wiresnr.org. Retrieved 2018-04-27.", "enumerated": true, - "marker": "23." + "marker": "" }, { "self_ref": "#/texts/302", @@ -6076,7 +6076,7 @@ "orig": "^ Ogden, Evans. \"Dabbling Ducks\". CWE. Retrieved 2006-11-02.", "text": "^ Ogden, Evans. \"Dabbling Ducks\". CWE. Retrieved 2006-11-02.", "enumerated": true, - "marker": "24." + "marker": "" }, { "self_ref": "#/texts/303", @@ -6090,7 +6090,7 @@ "orig": "^ Karl Mathiesen (16 March 2015). \"Don't feed the ducks bread, say conservationists\". The Guardian. Retrieved 13 November 2016.", "text": "^ Karl Mathiesen (16 March 2015). \"Don't feed the ducks bread, say conservationists\". The Guardian. Retrieved 13 November 2016.", "enumerated": true, - "marker": "25." + "marker": "" }, { "self_ref": "#/texts/304", @@ -6104,7 +6104,7 @@ "orig": "^ Rohwer, Frank C.; Anderson, Michael G. (1988). \"Female-Biased Philopatry, Monogamy, and the Timing of Pair Formation in Migratory Waterfowl\". Current Ornithology. pp. 187–221. doi:10.1007/978-1-4615-6787-5_4. ISBN 978-1-4615-6789-9.", "text": "^ Rohwer, Frank C.; Anderson, Michael G. (1988). \"Female-Biased Philopatry, Monogamy, and the Timing of Pair Formation in Migratory Waterfowl\". Current Ornithology. pp. 187–221. doi:10.1007/978-1-4615-6787-5_4. ISBN 978-1-4615-6789-9.", "enumerated": true, - "marker": "26." + "marker": "" }, { "self_ref": "#/texts/305", @@ -6118,7 +6118,7 @@ "orig": "^ Smith, Cyndi M.; Cooke, Fred; Robertson, Gregory J.; Goudie, R. Ian; Boyd, W. Sean (2000). \"Long-Term Pair Bonds in Harlequin Ducks\". The Condor. 102 (1): 201–205. doi:10.1093/condor/102.1.201. hdl:10315/13797.", "text": "^ Smith, Cyndi M.; Cooke, Fred; Robertson, Gregory J.; Goudie, R. Ian; Boyd, W. Sean (2000). \"Long-Term Pair Bonds in Harlequin Ducks\". The Condor. 102 (1): 201–205. doi:10.1093/condor/102.1.201. hdl:10315/13797.", "enumerated": true, - "marker": "27." + "marker": "" }, { "self_ref": "#/texts/306", @@ -6132,7 +6132,7 @@ "orig": "^ \"If You Find An Orphaned Duckling - Wildlife Rehabber\". wildliferehabber.com. Archived from the original on 2018-09-23. Retrieved 2018-12-22.", "text": "^ \"If You Find An Orphaned Duckling - Wildlife Rehabber\". wildliferehabber.com. Archived from the original on 2018-09-23. Retrieved 2018-12-22.", "enumerated": true, - "marker": "28." + "marker": "" }, { "self_ref": "#/texts/307", @@ -6146,7 +6146,7 @@ "orig": "^ Carver, Heather (2011). The Duck Bible. Lulu.com. ISBN 9780557901562.[self-published source]", "text": "^ Carver, Heather (2011). The Duck Bible. Lulu.com. ISBN 9780557901562.[self-published source]", "enumerated": true, - "marker": "29." + "marker": "" }, { "self_ref": "#/texts/308", @@ -6160,7 +6160,7 @@ "orig": "^ Titlow, Budd (2013-09-03). Bird Brains: Inside the Strange Minds of Our Fine Feathered Friends. Rowman & Littlefield. ISBN 9780762797707.", "text": "^ Titlow, Budd (2013-09-03). Bird Brains: Inside the Strange Minds of Our Fine Feathered Friends. Rowman & Littlefield. ISBN 9780762797707.", "enumerated": true, - "marker": "30." + "marker": "" }, { "self_ref": "#/texts/309", @@ -6174,7 +6174,7 @@ "orig": "^ Amos, Jonathan (2003-09-08). \"Sound science is quackers\". BBC News. Retrieved 2006-11-02.", "text": "^ Amos, Jonathan (2003-09-08). \"Sound science is quackers\". BBC News. Retrieved 2006-11-02.", "enumerated": true, - "marker": "31." + "marker": "" }, { "self_ref": "#/texts/310", @@ -6188,7 +6188,7 @@ "orig": "^ \"Mythbusters Episode 8\". 12 December 2003.", "text": "^ \"Mythbusters Episode 8\". 12 December 2003.", "enumerated": true, - "marker": "32." + "marker": "" }, { "self_ref": "#/texts/311", @@ -6202,7 +6202,7 @@ "orig": "^ Erlandson 1994, p. 171.", "text": "^ Erlandson 1994, p. 171.", "enumerated": true, - "marker": "33." + "marker": "" }, { "self_ref": "#/texts/312", @@ -6216,7 +6216,7 @@ "orig": "^ Jeffries 2008, pp. 168, 243.", "text": "^ Jeffries 2008, pp. 168, 243.", "enumerated": true, - "marker": "34." + "marker": "" }, { "self_ref": "#/texts/313", @@ -6230,7 +6230,7 @@ "orig": "^ a b Sued-Badillo 2003, p. 65.", "text": "^ a b Sued-Badillo 2003, p. 65.", "enumerated": true, - "marker": "35." + "marker": "" }, { "self_ref": "#/texts/314", @@ -6244,7 +6244,7 @@ "orig": "^ Thorpe 1996, p. 68.", "text": "^ Thorpe 1996, p. 68.", "enumerated": true, - "marker": "36." + "marker": "" }, { "self_ref": "#/texts/315", @@ -6258,7 +6258,7 @@ "orig": "^ Maisels 1999, p. 42.", "text": "^ Maisels 1999, p. 42.", "enumerated": true, - "marker": "37." + "marker": "" }, { "self_ref": "#/texts/316", @@ -6272,7 +6272,7 @@ "orig": "^ Rau 1876, p. 133.", "text": "^ Rau 1876, p. 133.", "enumerated": true, - "marker": "38." + "marker": "" }, { "self_ref": "#/texts/317", @@ -6286,7 +6286,7 @@ "orig": "^ Higman 2012, p. 23.", "text": "^ Higman 2012, p. 23.", "enumerated": true, - "marker": "39." + "marker": "" }, { "self_ref": "#/texts/318", @@ -6300,7 +6300,7 @@ "orig": "^ Hume 2012, p. 53.", "text": "^ Hume 2012, p. 53.", "enumerated": true, - "marker": "40." + "marker": "" }, { "self_ref": "#/texts/319", @@ -6314,7 +6314,7 @@ "orig": "^ Hume 2012, p. 52.", "text": "^ Hume 2012, p. 52.", "enumerated": true, - "marker": "41." + "marker": "" }, { "self_ref": "#/texts/320", @@ -6328,7 +6328,7 @@ "orig": "^ Fieldhouse 2002, p. 167.", "text": "^ Fieldhouse 2002, p. 167.", "enumerated": true, - "marker": "42." + "marker": "" }, { "self_ref": "#/texts/321", @@ -6342,7 +6342,7 @@ "orig": "^ Livingston, A. D. (1998-01-01). Guide to Edible Plants and Animals. Wordsworth Editions, Limited. ISBN 9781853263774.", "text": "^ Livingston, A. D. (1998-01-01). Guide to Edible Plants and Animals. Wordsworth Editions, Limited. ISBN 9781853263774.", "enumerated": true, - "marker": "43." + "marker": "" }, { "self_ref": "#/texts/322", @@ -6356,7 +6356,7 @@ "orig": "^ \"Study plan for waterfowl injury assessment: Determining PCB concentrations in Hudson river resident waterfowl\" (PDF). New York State Department of Environmental Conservation. US Department of Commerce. December 2008. p. 3. Archived (PDF) from the original on 2022-10-09. Retrieved 2 July 2019.", "text": "^ \"Study plan for waterfowl injury assessment: Determining PCB concentrations in Hudson river resident waterfowl\" (PDF). New York State Department of Environmental Conservation. US Department of Commerce. December 2008. p. 3. Archived (PDF) from the original on 2022-10-09. Retrieved 2 July 2019.", "enumerated": true, - "marker": "44." + "marker": "" }, { "self_ref": "#/texts/323", @@ -6370,7 +6370,7 @@ "orig": "^ \"FAOSTAT\". www.fao.org. Retrieved 2019-10-25.", "text": "^ \"FAOSTAT\". www.fao.org. Retrieved 2019-10-25.", "enumerated": true, - "marker": "45." + "marker": "" }, { "self_ref": "#/texts/324", @@ -6384,7 +6384,7 @@ "orig": "^ \"Anas platyrhynchos, Domestic Duck; DigiMorph Staff - The University of Texas at Austin\". Digimorph.org. Retrieved 2012-12-23.", "text": "^ \"Anas platyrhynchos, Domestic Duck; DigiMorph Staff - The University of Texas at Austin\". Digimorph.org. Retrieved 2012-12-23.", "enumerated": true, - "marker": "46." + "marker": "" }, { "self_ref": "#/texts/325", @@ -6398,7 +6398,7 @@ "orig": "^ Sy Montgomery. \"Mallard; Encyclopædia Britannica\". Britannica.com. Retrieved 2012-12-23.", "text": "^ Sy Montgomery. \"Mallard; Encyclopædia Britannica\". Britannica.com. Retrieved 2012-12-23.", "enumerated": true, - "marker": "47." + "marker": "" }, { "self_ref": "#/texts/326", @@ -6412,7 +6412,7 @@ "orig": "^ Glenday, Craig (2014). Guinness World Records. Guinness World Records Limited. pp. 135. ISBN 978-1-908843-15-9.", "text": "^ Glenday, Craig (2014). Guinness World Records. Guinness World Records Limited. pp. 135. ISBN 978-1-908843-15-9.", "enumerated": true, - "marker": "48." + "marker": "" }, { "self_ref": "#/texts/327", @@ -6426,7 +6426,7 @@ "orig": "^ Suomen kunnallisvaakunat (in Finnish). Suomen Kunnallisliitto. 1982. p. 147. ISBN 951-773-085-3.", "text": "^ Suomen kunnallisvaakunat (in Finnish). Suomen Kunnallisliitto. 1982. p. 147. ISBN 951-773-085-3.", "enumerated": true, - "marker": "49." + "marker": "" }, { "self_ref": "#/texts/328", @@ -6440,7 +6440,7 @@ "orig": "^ \"Lubānas simbolika\" (in Latvian). Retrieved September 9, 2021.", "text": "^ \"Lubānas simbolika\" (in Latvian). Retrieved September 9, 2021.", "enumerated": true, - "marker": "50." + "marker": "" }, { "self_ref": "#/texts/329", @@ -6454,7 +6454,7 @@ "orig": "^ \"Föglö\" (in Swedish). Retrieved September 9, 2021.", "text": "^ \"Föglö\" (in Swedish). Retrieved September 9, 2021.", "enumerated": true, - "marker": "51." + "marker": "" }, { "self_ref": "#/texts/330", @@ -6468,7 +6468,7 @@ "orig": "^ Young, Emma. \"World's funniest joke revealed\". New Scientist. Retrieved 7 January 2019.", "text": "^ Young, Emma. \"World's funniest joke revealed\". New Scientist. Retrieved 7 January 2019.", "enumerated": true, - "marker": "52." + "marker": "" }, { "self_ref": "#/texts/331", @@ -6482,7 +6482,7 @@ "orig": "^ \"Howard the Duck (character)\". Grand Comics Database.", "text": "^ \"Howard the Duck (character)\". Grand Comics Database.", "enumerated": true, - "marker": "53." + "marker": "" }, { "self_ref": "#/texts/332", @@ -6496,7 +6496,7 @@ "orig": "^ Sanderson, Peter; Gilbert, Laura (2008). \"1970s\". Marvel Chronicle A Year by Year History. London, United Kingdom: Dorling Kindersley. p. 161. ISBN 978-0756641238. December saw the debut of the cigar-smoking Howard the Duck. In this story by writer Steve Gerber and artist Val Mayerik, various beings from different realities had begun turning up in the Man-Thing's Florida swamp, including this bad-tempered talking duck.", "text": "^ Sanderson, Peter; Gilbert, Laura (2008). \"1970s\". Marvel Chronicle A Year by Year History. London, United Kingdom: Dorling Kindersley. p. 161. ISBN 978-0756641238. December saw the debut of the cigar-smoking Howard the Duck. In this story by writer Steve Gerber and artist Val Mayerik, various beings from different realities had begun turning up in the Man-Thing's Florida swamp, including this bad-tempered talking duck.", "enumerated": true, - "marker": "54." + "marker": "" }, { "self_ref": "#/texts/333", @@ -6510,7 +6510,7 @@ "orig": "^ \"The Duck\". University of Oregon Athletics. Retrieved 2022-01-20.", "text": "^ \"The Duck\". University of Oregon Athletics. Retrieved 2022-01-20.", "enumerated": true, - "marker": "55." + "marker": "" }, { "self_ref": "#/texts/334", @@ -6541,7 +6541,7 @@ "orig": "American Ornithologists' Union (1998). Checklist of North American Birds (PDF). Washington, DC: American Ornithologists' Union. ISBN 978-1-891276-00-2. Archived (PDF) from the original on 2022-10-09.", "text": "American Ornithologists' Union (1998). Checklist of North American Birds (PDF). Washington, DC: American Ornithologists' Union. ISBN 978-1-891276-00-2. Archived (PDF) from the original on 2022-10-09.", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/336", @@ -6555,7 +6555,7 @@ "orig": "Carboneras, Carlos (1992). del Hoyo, Josep; Elliott, Andrew; Sargatal, Jordi (eds.). Handbook of the Birds of the World. Vol. 1: Ostrich to Ducks. Barcelona: Lynx Edicions. ISBN 978-84-87334-10-8.", "text": "Carboneras, Carlos (1992). del Hoyo, Josep; Elliott, Andrew; Sargatal, Jordi (eds.). Handbook of the Birds of the World. Vol. 1: Ostrich to Ducks. Barcelona: Lynx Edicions. ISBN 978-84-87334-10-8.", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/337", @@ -6569,7 +6569,7 @@ "orig": "Christidis, Les; Boles, Walter E., eds. (2008). Systematics and Taxonomy of Australian Birds. Collingwood, VIC: Csiro Publishing. ISBN 978-0-643-06511-6.", "text": "Christidis, Les; Boles, Walter E., eds. (2008). Systematics and Taxonomy of Australian Birds. Collingwood, VIC: Csiro Publishing. ISBN 978-0-643-06511-6.", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/338", @@ -6583,7 +6583,7 @@ "orig": "Donne-Goussé, Carole; Laudet, Vincent; Hänni, Catherine (July 2002). \"A molecular phylogeny of Anseriformes based on mitochondrial DNA analysis\". Molecular Phylogenetics and Evolution. 23 (3): 339–356. Bibcode:2002MolPE..23..339D. doi:10.1016/S1055-7903(02)00019-2. PMID 12099792.", "text": "Donne-Goussé, Carole; Laudet, Vincent; Hänni, Catherine (July 2002). \"A molecular phylogeny of Anseriformes based on mitochondrial DNA analysis\". Molecular Phylogenetics and Evolution. 23 (3): 339–356. Bibcode:2002MolPE..23..339D. doi:10.1016/S1055-7903(02)00019-2. PMID 12099792.", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/339", @@ -6597,7 +6597,7 @@ "orig": "Elphick, Chris; Dunning, John B. Jr.; Sibley, David, eds. (2001). The Sibley Guide to Bird Life and Behaviour. London: Christopher Helm. ISBN 978-0-7136-6250-4.", "text": "Elphick, Chris; Dunning, John B. Jr.; Sibley, David, eds. (2001). The Sibley Guide to Bird Life and Behaviour. London: Christopher Helm. ISBN 978-0-7136-6250-4.", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/340", @@ -6611,7 +6611,7 @@ "orig": "Erlandson, Jon M. (1994). Early Hunter-Gatherers of the California Coast. New York, NY: Springer Science & Business Media. ISBN 978-1-4419-3231-0.", "text": "Erlandson, Jon M. (1994). Early Hunter-Gatherers of the California Coast. New York, NY: Springer Science & Business Media. ISBN 978-1-4419-3231-0.", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/341", @@ -6625,7 +6625,7 @@ "orig": "Fieldhouse, Paul (2002). Food, Feasts, and Faith: An Encyclopedia of Food Culture in World Religions. Vol. I: A–K. Santa Barbara: ABC-CLIO. ISBN 978-1-61069-412-4.", "text": "Fieldhouse, Paul (2002). Food, Feasts, and Faith: An Encyclopedia of Food Culture in World Religions. Vol. I: A–K. Santa Barbara: ABC-CLIO. ISBN 978-1-61069-412-4.", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/342", @@ -6639,7 +6639,7 @@ "orig": "Fitter, Julian; Fitter, Daniel; Hosking, David (2000). Wildlife of the Galápagos. Princeton, NJ: Princeton University Press. ISBN 978-0-691-10295-5.", "text": "Fitter, Julian; Fitter, Daniel; Hosking, David (2000). Wildlife of the Galápagos. Princeton, NJ: Princeton University Press. ISBN 978-0-691-10295-5.", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/343", @@ -6653,7 +6653,7 @@ "orig": "Higman, B. W. (2012). How Food Made History. Chichester, UK: John Wiley & Sons. ISBN 978-1-4051-8947-7.", "text": "Higman, B. W. (2012). How Food Made History. Chichester, UK: John Wiley & Sons. ISBN 978-1-4051-8947-7.", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/344", @@ -6667,7 +6667,7 @@ "orig": "Hume, Julian H. (2012). Extinct Birds. London: Christopher Helm. ISBN 978-1-4729-3744-5.", "text": "Hume, Julian H. (2012). Extinct Birds. London: Christopher Helm. ISBN 978-1-4729-3744-5.", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/345", @@ -6681,7 +6681,7 @@ "orig": "Jeffries, Richard (2008). Holocene Hunter-Gatherers of the Lower Ohio River Valley. Tuscaloosa: University of Alabama Press. ISBN 978-0-8173-1658-7.", "text": "Jeffries, Richard (2008). Holocene Hunter-Gatherers of the Lower Ohio River Valley. Tuscaloosa: University of Alabama Press. ISBN 978-0-8173-1658-7.", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/346", @@ -6695,7 +6695,7 @@ "orig": "Kear, Janet, ed. (2005). Ducks, Geese and Swans: Species Accounts (Cairina to Mergus). Bird Families of the World. Oxford: Oxford University Press. ISBN 978-0-19-861009-0.", "text": "Kear, Janet, ed. (2005). Ducks, Geese and Swans: Species Accounts (Cairina to Mergus). Bird Families of the World. Oxford: Oxford University Press. ISBN 978-0-19-861009-0.", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/347", @@ -6709,7 +6709,7 @@ "orig": "Livezey, Bradley C. (October 1986). \"A phylogenetic analysis of recent Anseriform genera using morphological characters\" (PDF). The Auk. 103 (4): 737–754. doi:10.1093/auk/103.4.737. Archived (PDF) from the original on 2022-10-09.", "text": "Livezey, Bradley C. (October 1986). \"A phylogenetic analysis of recent Anseriform genera using morphological characters\" (PDF). The Auk. 103 (4): 737–754. doi:10.1093/auk/103.4.737. Archived (PDF) from the original on 2022-10-09.", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/348", @@ -6723,7 +6723,7 @@ "orig": "Madsen, Cort S.; McHugh, Kevin P.; de Kloet, Siwo R. (July 1988). \"A partial classification of waterfowl (Anatidae) based on single-copy DNA\" (PDF). The Auk. 105 (3): 452–459. doi:10.1093/auk/105.3.452. Archived (PDF) from the original on 2022-10-09.", "text": "Madsen, Cort S.; McHugh, Kevin P.; de Kloet, Siwo R. (July 1988). \"A partial classification of waterfowl (Anatidae) based on single-copy DNA\" (PDF). The Auk. 105 (3): 452–459. doi:10.1093/auk/105.3.452. Archived (PDF) from the original on 2022-10-09.", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/349", @@ -6737,7 +6737,7 @@ "orig": "Maisels, Charles Keith (1999). Early Civilizations of the Old World. London: Routledge. ISBN 978-0-415-10975-8.", "text": "Maisels, Charles Keith (1999). Early Civilizations of the Old World. London: Routledge. ISBN 978-0-415-10975-8.", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/350", @@ -6751,7 +6751,7 @@ "orig": "Pratt, H. Douglas; Bruner, Phillip L.; Berrett, Delwyn G. (1987). A Field Guide to the Birds of Hawaii and the Tropical Pacific. Princeton, NJ: Princeton University Press. ISBN 0-691-02399-9.", "text": "Pratt, H. Douglas; Bruner, Phillip L.; Berrett, Delwyn G. (1987). A Field Guide to the Birds of Hawaii and the Tropical Pacific. Princeton, NJ: Princeton University Press. ISBN 0-691-02399-9.", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/351", @@ -6765,7 +6765,7 @@ "orig": "Rau, Charles (1876). Early Man in Europe. New York: Harper & Brothers. LCCN 05040168.", "text": "Rau, Charles (1876). Early Man in Europe. New York: Harper & Brothers. LCCN 05040168.", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/352", @@ -6779,7 +6779,7 @@ "orig": "Shirihai, Hadoram (2008). A Complete Guide to Antarctic Wildlife. Princeton, NJ, US: Princeton University Press. ISBN 978-0-691-13666-0.", "text": "Shirihai, Hadoram (2008). A Complete Guide to Antarctic Wildlife. Princeton, NJ, US: Princeton University Press. ISBN 978-0-691-13666-0.", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/353", @@ -6793,7 +6793,7 @@ "orig": "Sued-Badillo, Jalil (2003). Autochthonous Societies. General History of the Caribbean. Paris: UNESCO. ISBN 978-92-3-103832-7.", "text": "Sued-Badillo, Jalil (2003). Autochthonous Societies. General History of the Caribbean. Paris: UNESCO. ISBN 978-92-3-103832-7.", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/354", @@ -6807,7 +6807,7 @@ "orig": "Thorpe, I. J. (1996). The Origins of Agriculture in Europe. New York: Routledge. ISBN 978-0-415-08009-5.", "text": "Thorpe, I. J. (1996). The Origins of Agriculture in Europe. New York: Routledge. ISBN 978-0-415-08009-5.", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/355", @@ -6874,7 +6874,7 @@ "orig": "Definitions from Wiktionary", "text": "Definitions from Wiktionary", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/357", @@ -6888,7 +6888,7 @@ "orig": "Media from Commons", "text": "Media from Commons", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/358", @@ -6902,7 +6902,7 @@ "orig": "Quotations from Wikiquote", "text": "Quotations from Wikiquote", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/359", @@ -6916,7 +6916,7 @@ "orig": "Recipes from Wikibooks", "text": "Recipes from Wikibooks", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/360", @@ -6930,7 +6930,7 @@ "orig": "Taxa from Wikispecies", "text": "Taxa from Wikispecies", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/361", @@ -6944,7 +6944,7 @@ "orig": "Data from Wikidata", "text": "Data from Wikidata", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/362", @@ -6958,7 +6958,7 @@ "orig": "list of books (useful looking abstracts)", "text": "list of books (useful looking abstracts)", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/363", @@ -6972,7 +6972,7 @@ "orig": "Ducks on postage stamps Archived 2013-05-13 at the Wayback Machine", "text": "Ducks on postage stamps Archived 2013-05-13 at the Wayback Machine", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/364", @@ -6986,7 +6986,7 @@ "orig": "Ducks at a Distance, by Rob Hines at Project Gutenberg - A modern illustrated guide to identification of US waterfowl", "text": "Ducks at a Distance, by Rob Hines at Project Gutenberg - A modern illustrated guide to identification of US waterfowl", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/365", @@ -7024,7 +7024,7 @@ "orig": "Ducks", "text": "Ducks", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/368", @@ -7038,7 +7038,7 @@ "orig": "Game birds", "text": "Game birds", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/369", @@ -7052,7 +7052,7 @@ "orig": "Bird common names", "text": "Bird common names", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/370", @@ -7078,7 +7078,7 @@ "orig": "All accuracy disputes", "text": "All accuracy disputes", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/372", @@ -7092,7 +7092,7 @@ "orig": "Accuracy disputes from February 2020", "text": "Accuracy disputes from February 2020", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/373", @@ -7106,7 +7106,7 @@ "orig": "CS1 Finnish-language sources (fi)", "text": "CS1 Finnish-language sources (fi)", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/374", @@ -7120,7 +7120,7 @@ "orig": "CS1 Latvian-language sources (lv)", "text": "CS1 Latvian-language sources (lv)", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/375", @@ -7134,7 +7134,7 @@ "orig": "CS1 Swedish-language sources (sv)", "text": "CS1 Swedish-language sources (sv)", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/376", @@ -7148,7 +7148,7 @@ "orig": "Articles with short description", "text": "Articles with short description", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/377", @@ -7162,7 +7162,7 @@ "orig": "Short description is different from Wikidata", "text": "Short description is different from Wikidata", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/378", @@ -7176,7 +7176,7 @@ "orig": "Wikipedia indefinitely move-protected pages", "text": "Wikipedia indefinitely move-protected pages", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/379", @@ -7190,7 +7190,7 @@ "orig": "Wikipedia indefinitely semi-protected pages", "text": "Wikipedia indefinitely semi-protected pages", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/380", @@ -7204,7 +7204,7 @@ "orig": "Articles with 'species' microformats", "text": "Articles with 'species' microformats", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/381", @@ -7218,7 +7218,7 @@ "orig": "Articles containing Old English (ca. 450-1100)-language text", "text": "Articles containing Old English (ca. 450-1100)-language text", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/382", @@ -7232,7 +7232,7 @@ "orig": "Articles containing Dutch-language text", "text": "Articles containing Dutch-language text", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/383", @@ -7246,7 +7246,7 @@ "orig": "Articles containing German-language text", "text": "Articles containing German-language text", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/384", @@ -7260,7 +7260,7 @@ "orig": "Articles containing Norwegian-language text", "text": "Articles containing Norwegian-language text", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/385", @@ -7274,7 +7274,7 @@ "orig": "Articles containing Lithuanian-language text", "text": "Articles containing Lithuanian-language text", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/386", @@ -7288,7 +7288,7 @@ "orig": "Articles containing Ancient Greek (to 1453)-language text", "text": "Articles containing Ancient Greek (to 1453)-language text", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/387", @@ -7302,7 +7302,7 @@ "orig": "All articles with self-published sources", "text": "All articles with self-published sources", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/388", @@ -7316,7 +7316,7 @@ "orig": "Articles with self-published sources from February 2020", "text": "Articles with self-published sources from February 2020", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/389", @@ -7330,7 +7330,7 @@ "orig": "All articles with unsourced statements", "text": "All articles with unsourced statements", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/390", @@ -7344,7 +7344,7 @@ "orig": "Articles with unsourced statements from January 2022", "text": "Articles with unsourced statements from January 2022", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/391", @@ -7358,7 +7358,7 @@ "orig": "CS1: long volume value", "text": "CS1: long volume value", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/392", @@ -7372,7 +7372,7 @@ "orig": "Pages using Sister project links with wikidata mismatch", "text": "Pages using Sister project links with wikidata mismatch", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/393", @@ -7386,7 +7386,7 @@ "orig": "Pages using Sister project links with hidden wikidata", "text": "Pages using Sister project links with hidden wikidata", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/394", @@ -7400,7 +7400,7 @@ "orig": "Webarchive template wayback links", "text": "Webarchive template wayback links", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/395", @@ -7414,7 +7414,7 @@ "orig": "Articles with Project Gutenberg links", "text": "Articles with Project Gutenberg links", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/396", @@ -7428,7 +7428,7 @@ "orig": "Articles containing video clips", "text": "Articles containing video clips", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/397", @@ -7442,7 +7442,7 @@ "orig": "This page was last edited on 21 September 2024, at 12:11 (UTC).", "text": "This page was last edited on 21 September 2024, at 12:11 (UTC).", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/398", @@ -7456,7 +7456,7 @@ "orig": "Text is available under the Creative Commons Attribution-ShareAlike License 4.0;\nadditional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.", "text": "Text is available under the Creative Commons Attribution-ShareAlike License 4.0;\nadditional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/399", @@ -7470,7 +7470,7 @@ "orig": "Privacy policy", "text": "Privacy policy", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/400", @@ -7484,7 +7484,7 @@ "orig": "About Wikipedia", "text": "About Wikipedia", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/401", @@ -7498,7 +7498,7 @@ "orig": "Disclaimers", "text": "Disclaimers", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/402", @@ -7512,7 +7512,7 @@ "orig": "Contact Wikipedia", "text": "Contact Wikipedia", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/403", @@ -7526,7 +7526,7 @@ "orig": "Code of Conduct", "text": "Code of Conduct", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/404", @@ -7540,7 +7540,7 @@ "orig": "Developers", "text": "Developers", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/405", @@ -7554,7 +7554,7 @@ "orig": "Statistics", "text": "Statistics", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/406", @@ -7568,7 +7568,7 @@ "orig": "Cookie statement", "text": "Cookie statement", "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/407", @@ -7582,7 +7582,7 @@ "orig": "Mobile view", "text": "Mobile view", "enumerated": false, - "marker": "-" + "marker": "" } ], "pictures": [ diff --git a/tests/data/groundtruth/docling_v2/word_image_anchors.docx.json b/tests/data/groundtruth/docling_v2/word_image_anchors.docx.json index 4b75d8d3..5de7bc39 100644 --- a/tests/data/groundtruth/docling_v2/word_image_anchors.docx.json +++ b/tests/data/groundtruth/docling_v2/word_image_anchors.docx.json @@ -1,6 +1,6 @@ { "schema_name": "DoclingDocument", - "version": "1.4.0", + "version": "1.5.0", "name": "word_image_anchors", "origin": { "mimetype": "application/vnd.openxmlformats-officedocument.wordprocessingml.document", diff --git a/tests/data/groundtruth/docling_v2/word_sample.docx.json b/tests/data/groundtruth/docling_v2/word_sample.docx.json index 1f94d916..a424d113 100644 --- a/tests/data/groundtruth/docling_v2/word_sample.docx.json +++ b/tests/data/groundtruth/docling_v2/word_sample.docx.json @@ -1,6 +1,6 @@ { "schema_name": "DoclingDocument", - "version": "1.4.0", + "version": "1.5.0", "name": "word_sample", "origin": { "mimetype": "application/vnd.openxmlformats-officedocument.wordprocessingml.document", @@ -243,7 +243,7 @@ "script": "baseline" }, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/7", @@ -264,7 +264,7 @@ "script": "baseline" }, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/8", @@ -285,7 +285,7 @@ "script": "baseline" }, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/9", @@ -325,7 +325,7 @@ "script": "baseline" }, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/11", @@ -346,7 +346,7 @@ "script": "baseline" }, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/12", @@ -367,7 +367,7 @@ "script": "baseline" }, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/13", @@ -530,7 +530,7 @@ "script": "baseline" }, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/21", @@ -551,7 +551,7 @@ "script": "baseline" }, "enumerated": false, - "marker": "-" + "marker": "" }, { "self_ref": "#/texts/22", @@ -572,7 +572,7 @@ "script": "baseline" }, "enumerated": false, - "marker": "-" + "marker": "" } ], "pictures": [ diff --git a/tests/data/groundtruth/docling_v2/word_tables.docx.json b/tests/data/groundtruth/docling_v2/word_tables.docx.json index e215c27a..66af38b4 100644 --- a/tests/data/groundtruth/docling_v2/word_tables.docx.json +++ b/tests/data/groundtruth/docling_v2/word_tables.docx.json @@ -1,6 +1,6 @@ { "schema_name": "DoclingDocument", - "version": "1.4.0", + "version": "1.5.0", "name": "word_tables", "origin": { "mimetype": "application/vnd.openxmlformats-officedocument.wordprocessingml.document", diff --git a/tests/data/html/example_01.html b/tests/data/html/example_01.html index 792dc6c2..2f86b5b0 100644 --- a/tests/data/html/example_01.html +++ b/tests/data/html/example_01.html @@ -13,5 +13,9 @@
  • First item in ordered list
  • Second item in ordered list
  • +
      +
    1. First item in ordered list with start
    2. +
    3. Second item in ordered list with start
    4. +
    diff --git a/tests/data/md/inline_and_formatting.md b/tests/data/md/inline_and_formatting.md index e18a46c5..65a8ff03 100644 --- a/tests/data/md/inline_and_formatting.md +++ b/tests/data/md/inline_and_formatting.md @@ -11,8 +11,22 @@ Create your feature branch: `git checkout -b feature/AmazingFeature`. 3. Commit your changes (`git commit -m 'Add some AmazingFeature'`) 4. Push to the branch (`git push origin feature/AmazingFeature`) 5. Open a Pull Request +6. **Whole list item has same formatting** +7. List item has *mixed or partial* formatting -## *Second* section +# *Whole heading is italic* - **First**: Lorem ipsum. - **Second**: Dolor `sit` amet. + +Some *`formatted_code`* + +## *Partially formatted* heading to_escape `not_to_escape` + +[$$E=mc^2$$](https://en.wikipedia.org/wiki/Albert_Einstein) + +## Table Heading + +| **Bold Heading** | *Italic Heading* | +|------------------|------------------| +| data a | data b | diff --git a/tests/data/webp/groundtruth/docling_v2/webp-test.json b/tests/data/webp/groundtruth/docling_v2/webp-test.json index a53da5c9..80e2d78e 100644 --- a/tests/data/webp/groundtruth/docling_v2/webp-test.json +++ b/tests/data/webp/groundtruth/docling_v2/webp-test.json @@ -1,6 +1,6 @@ { "schema_name": "DoclingDocument", - "version": "1.4.0", + "version": "1.5.0", "name": "webp-test", "origin": { "mimetype": "application/pdf", diff --git a/tests/data_scanned/groundtruth/docling_v2/ocr_test.json b/tests/data_scanned/groundtruth/docling_v2/ocr_test.json index 4c796c0b..aea68d84 100644 --- a/tests/data_scanned/groundtruth/docling_v2/ocr_test.json +++ b/tests/data_scanned/groundtruth/docling_v2/ocr_test.json @@ -1,6 +1,6 @@ { "schema_name": "DoclingDocument", - "version": "1.4.0", + "version": "1.5.0", "name": "ocr_test", "origin": { "mimetype": "application/pdf", diff --git a/tests/data_scanned/groundtruth/docling_v2/ocr_test_rotated_180.json b/tests/data_scanned/groundtruth/docling_v2/ocr_test_rotated_180.json index 5ecd3ec1..070e16bc 100644 --- a/tests/data_scanned/groundtruth/docling_v2/ocr_test_rotated_180.json +++ b/tests/data_scanned/groundtruth/docling_v2/ocr_test_rotated_180.json @@ -1,6 +1,6 @@ { "schema_name": "DoclingDocument", - "version": "1.4.0", + "version": "1.5.0", "name": "ocr_test_rotated_180", "origin": { "mimetype": "application/pdf", diff --git a/tests/data_scanned/groundtruth/docling_v2/ocr_test_rotated_270.json b/tests/data_scanned/groundtruth/docling_v2/ocr_test_rotated_270.json index 17633a7b..53d5f858 100644 --- a/tests/data_scanned/groundtruth/docling_v2/ocr_test_rotated_270.json +++ b/tests/data_scanned/groundtruth/docling_v2/ocr_test_rotated_270.json @@ -1,6 +1,6 @@ { "schema_name": "DoclingDocument", - "version": "1.4.0", + "version": "1.5.0", "name": "ocr_test_rotated_270", "origin": { "mimetype": "application/pdf", diff --git a/tests/data_scanned/groundtruth/docling_v2/ocr_test_rotated_90.json b/tests/data_scanned/groundtruth/docling_v2/ocr_test_rotated_90.json index 32e62f7a..828c9e57 100644 --- a/tests/data_scanned/groundtruth/docling_v2/ocr_test_rotated_90.json +++ b/tests/data_scanned/groundtruth/docling_v2/ocr_test_rotated_90.json @@ -1,6 +1,6 @@ { "schema_name": "DoclingDocument", - "version": "1.4.0", + "version": "1.5.0", "name": "ocr_test_rotated_90", "origin": { "mimetype": "application/pdf", diff --git a/tests/test_asr_pipeline.py b/tests/test_asr_pipeline.py new file mode 100644 index 00000000..595cd608 --- /dev/null +++ b/tests/test_asr_pipeline.py @@ -0,0 +1,59 @@ +from pathlib import Path + +import pytest + +from docling.datamodel import asr_model_specs +from docling.datamodel.base_models import ConversionStatus, InputFormat +from docling.datamodel.document import ConversionResult +from docling.datamodel.pipeline_options import AsrPipelineOptions +from docling.document_converter import AudioFormatOption, DocumentConverter +from docling.pipeline.asr_pipeline import AsrPipeline + + +@pytest.fixture +def test_audio_path(): + return Path("./tests/data/audio/sample_10s.mp3") + + +def get_asr_converter(): + """Create a DocumentConverter configured for ASR with whisper_turbo model.""" + pipeline_options = AsrPipelineOptions() + pipeline_options.asr_options = asr_model_specs.WHISPER_TINY + + converter = DocumentConverter( + format_options={ + InputFormat.AUDIO: AudioFormatOption( + pipeline_cls=AsrPipeline, + pipeline_options=pipeline_options, + ) + } + ) + return converter + + +def test_asr_pipeline_conversion(test_audio_path): + """Test ASR pipeline conversion using whisper_turbo model on sample_10s.mp3.""" + # Check if the test audio file exists + assert test_audio_path.exists(), f"Test audio file not found: {test_audio_path}" + + converter = get_asr_converter() + + # Convert the audio file + doc_result: ConversionResult = converter.convert(test_audio_path) + + # Verify conversion was successful + assert doc_result.status == ConversionStatus.SUCCESS, ( + f"Conversion failed with status: {doc_result.status}" + ) + + # Verify we have a document + assert doc_result.document is not None, "No document was created" + + # Verify we have text content (transcribed audio) + texts = doc_result.document.texts + assert len(texts) > 0, "No text content found in transcribed audio" + + # Print transcribed text for verification (optional, for debugging) + print(f"Transcribed text from {test_audio_path.name}:") + for i, text_item in enumerate(texts): + print(f" {i + 1}: {text_item.text}") diff --git a/tests/test_backend_pptx.py b/tests/test_backend_pptx.py index 4f73c870..ffffea37 100644 --- a/tests/test_backend_pptx.py +++ b/tests/test_backend_pptx.py @@ -41,12 +41,12 @@ def test_e2e_pptx_conversions(): doc: DoclingDocument = conv_result.document pred_md: str = doc.export_to_markdown() - assert verify_export(pred_md, str(gt_path) + ".md"), "export to md" + assert verify_export(pred_md, str(gt_path) + ".md", GENERATE), "export to md" pred_itxt: str = doc._export_to_indented_text( max_text_len=70, explicit_tables=False ) - assert verify_export(pred_itxt, str(gt_path) + ".itxt"), ( + assert verify_export(pred_itxt, str(gt_path) + ".itxt", GENERATE), ( "export to indented-text" ) diff --git a/uv.lock b/uv.lock index eb5a3629..769dd8fd 100644 --- a/uv.lock +++ b/uv.lock @@ -3,16 +3,12 @@ revision = 2 requires-python = ">=3.9, <4.0" resolution-markers = [ "python_full_version >= '3.13' and platform_machine == 'arm64' and sys_platform == 'darwin'", - "python_full_version >= '3.12.4' and python_full_version < '3.13' and platform_machine == 'arm64' and sys_platform == 'darwin'", - "python_full_version >= '3.12' and python_full_version < '3.12.4' and platform_machine == 'arm64' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and platform_machine == 'arm64' and sys_platform == 'darwin'", "python_full_version == '3.11.*' and platform_machine == 'arm64' and sys_platform == 'darwin'", "python_full_version == '3.10.*' and platform_machine == 'arm64' and sys_platform == 'darwin'", - "python_full_version >= '3.12.4' and platform_machine != 'arm64' and sys_platform == 'darwin'", - "python_full_version >= '3.12' and python_full_version < '3.12.4' and platform_machine != 'arm64' and sys_platform == 'darwin'", - "python_full_version >= '3.12.4' and platform_machine == 'aarch64' and sys_platform == 'linux'", - "python_full_version >= '3.12' and python_full_version < '3.12.4' and platform_machine == 'aarch64' and sys_platform == 'linux'", - "(python_full_version >= '3.12.4' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version >= '3.12.4' and sys_platform != 'darwin' and sys_platform != 'linux')", - "(python_full_version >= '3.12' and python_full_version < '3.12.4' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version >= '3.12' and python_full_version < '3.12.4' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version >= '3.12' and platform_machine != 'arm64' and sys_platform == 'darwin'", + "python_full_version >= '3.12' and platform_machine == 'aarch64' and sys_platform == 'linux'", + "(python_full_version >= '3.12' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version >= '3.12' and sys_platform != 'darwin' and sys_platform != 'linux')", "python_full_version == '3.11.*' and platform_machine != 'arm64' and sys_platform == 'darwin'", "python_full_version == '3.11.*' and platform_machine == 'aarch64' and sys_platform == 'linux'", "(python_full_version == '3.11.*' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version == '3.11.*' and sys_platform != 'darwin' and sys_platform != 'linux')", @@ -26,22 +22,30 @@ resolution-markers = [ [[package]] name = "accelerate" -version = "1.8.0" +version = "1.8.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "huggingface-hub" }, { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, - { name = "numpy", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, { name = "packaging" }, { name = "psutil" }, { name = "pyyaml" }, { name = "safetensors" }, { name = "torch" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/84/bd/dedb0d8c5855120367e2d9f3c00504be4ee88df50e902e1039d85dbf714f/accelerate-1.8.0.tar.gz", hash = "sha256:8b56553d570f4787fd34a33dc4613f5444fe1ba3d0e81fedb9ce27bd81e91423", size = 381205, upload-time = "2025-06-19T13:12:10.305Z" } +sdist = { url = "https://files.pythonhosted.org/packages/bd/c2/b9e33ad13232606dded4c546e654fb06a15f1dbcbd95d81c9f9dd3ccc771/accelerate-1.8.1.tar.gz", hash = "sha256:f60df931671bc4e75077b852990469d4991ce8bd3a58e72375c3c95132034db9", size = 380872, upload-time = "2025-06-20T15:36:14.618Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/0f/26/6cfb83dc6eb6fbc18a167a86a239608827b4a133515713e5ef1ad64abfbd/accelerate-1.8.0-py3-none-any.whl", hash = "sha256:4c3460a8052e122fb124d92ec15618229951febbef1d7336a4c35371f78b72a1", size = 365314, upload-time = "2025-06-19T13:12:08.609Z" }, + { url = "https://files.pythonhosted.org/packages/91/d9/e044c9d42d8ad9afa96533b46ecc9b7aea893d362b3c52bd78fb9fe4d7b3/accelerate-1.8.1-py3-none-any.whl", hash = "sha256:c47b8994498875a2b1286e945bd4d20e476956056c7941d512334f4eb44ff991", size = 365338, upload-time = "2025-06-20T15:36:12.71Z" }, +] + +[[package]] +name = "addict" +version = "2.4.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/85/ef/fd7649da8af11d93979831e8f1f8097e85e82d5bfeabc8c68b39175d8e75/addict-2.4.0.tar.gz", hash = "sha256:b3b2210e0e067a281f5646c8c5db92e99b7231ea8b0eb5f74dbdf9e259d4e494", size = 9186, upload-time = "2020-11-21T16:21:31.416Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6a/00/b08f23b7d7e1e14ce01419a467b583edbb93c6cdb8654e54a9cc579cd61f/addict-2.4.0-py3-none-any.whl", hash = "sha256:249bb56bbfd3cdc2a004ea0ff4c2b6ddc84d53bc2194761636eb314d5cfa5dfc", size = 3832, upload-time = "2020-11-21T16:21:29.588Z" }, ] [[package]] @@ -165,6 +169,38 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/e5/cb/aaa022eb993e7d51928dc22d743ed17addb40142250e829701c5e6679615/aiohttp-3.12.13-cp39-cp39-win_amd64.whl", hash = "sha256:29e08111ccf81b2734ae03f1ad1cb03b9615e7d8f616764f22f71209c094f122", size = 451652, upload-time = "2025-06-14T15:15:39.079Z" }, ] +[[package]] +name = "aioice" +version = "0.10.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "dnspython", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "ifaddr", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/95/a2/45dfab1d5a7f96c48595a5770379acf406cdf02a2cd1ac1729b599322b08/aioice-0.10.1.tar.gz", hash = "sha256:5c8e1422103448d171925c678fb39795e5fe13d79108bebb00aa75a899c2094a", size = 44304, upload-time = "2025-04-13T08:15:25.629Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3b/58/af07dda649c22a1ae954ffb7aaaf4d4a57f1bf00ebdf62307affc0b8552f/aioice-0.10.1-py3-none-any.whl", hash = "sha256:f31ae2abc8608b1283ed5f21aebd7b6bd472b152ff9551e9b559b2d8efed79e9", size = 24872, upload-time = "2025-04-13T08:15:24.044Z" }, +] + +[[package]] +name = "aiortc" +version = "1.13.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aioice", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "av", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "cffi", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "cryptography", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "google-crc32c", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "pyee", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "pylibsrtp", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "pyopenssl", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/62/03/bc947d74c548e0c17cf94e5d5bdacaed0ee9e5b2bb7b8b8cf1ac7a7c01ec/aiortc-1.13.0.tar.gz", hash = "sha256:5d209975c22d0910fb5a0f0e2caa828f2da966c53580f7c7170ac3a16a871620", size = 1179894, upload-time = "2025-05-27T03:23:59.017Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/87/29/765633cab5f1888890f5f172d1d53009b9b14e079cdfa01a62d9896a9ea9/aiortc-1.13.0-py3-none-any.whl", hash = "sha256:9ccccec98796f6a96bd1c3dd437a06da7e0f57521c96bd56e4b965a91b03a0a0", size = 92910, upload-time = "2025-05-27T03:23:57.344Z" }, +] + [[package]] name = "aiosignal" version = "1.3.2" @@ -186,6 +222,12 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53", size = 13643, upload-time = "2024-05-20T21:33:24.1Z" }, ] +[[package]] +name = "antlr4-python3-runtime" +version = "4.9.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/3e/38/7859ff46355f76f8d19459005ca000b6e7012f2f1ca597746cbcd1fbfe5e/antlr4-python3-runtime-4.9.3.tar.gz", hash = "sha256:f224469b4168294902bb1efa80a8bf7855f24c99aef99cbefc1bcd3cce77881b", size = 117034, upload-time = "2021-11-06T17:52:23.524Z" } + [[package]] name = "anyio" version = "4.9.0" @@ -249,6 +291,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/a6/0d/2a79231ff54eb20e83b47e7610462ad6a2bea4e113fae5aa91c6547e7764/audioop_lts-0.2.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:5b7b4ff9de7a44e0ad2618afdc2ac920b91f4a6d3509520ee65339d4acde5abf", size = 27056, upload-time = "2024-08-04T21:14:28.061Z" }, ] +[[package]] +name = "audioread" +version = "3.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/db/d2/87016ca9f083acadffb2d8da59bfa3253e4da7eeb9f71fb8e7708dc97ecd/audioread-3.0.1.tar.gz", hash = "sha256:ac5460a5498c48bdf2e8e767402583a4dcd13f4414d286f42ce4379e8b35066d", size = 116513, upload-time = "2023-09-27T19:27:53.084Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/57/8d/30aa32745af16af0a9a650115fbe81bde7c610ed5c21b381fca0196f3a7f/audioread-3.0.1-py3-none-any.whl", hash = "sha256:4cdce70b8adc0da0a3c9e0d85fb10b3ace30fbdf8d1670fd443929b61d117c33", size = 23492, upload-time = "2023-09-27T19:27:51.334Z" }, +] + [[package]] name = "autopep8" version = "2.3.2" @@ -262,6 +313,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/9e/43/53afb8ba17218f19b77c7834128566c5bbb100a0ad9ba2e8e89d089d7079/autopep8-2.3.2-py2.py3-none-any.whl", hash = "sha256:ce8ad498672c845a0c3de2629c15b635ec2b05ef8177a6e7c91c74f3e9b51128", size = 45807, upload-time = "2025-01-14T14:46:15.466Z" }, ] +[[package]] +name = "av" +version = "14.4.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/86/f6/0b473dab52dfdea05f28f3578b1c56b6c796ce85e76951bab7c4e38d5a74/av-14.4.0.tar.gz", hash = "sha256:3ecbf803a7fdf67229c0edada0830d6bfaea4d10bfb24f0c3f4e607cd1064b42", size = 3892203, upload-time = "2025-05-16T19:13:35.737Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/34/0f/cf6b888747cd1e10eafc4a28942e5b666417c03c39853818900bdaa86116/av-14.4.0-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:10219620699a65b9829cfa08784da2ed38371f1a223ab8f3523f440a24c8381c", size = 19979523, upload-time = "2025-05-16T19:08:59.751Z" }, + { url = "https://files.pythonhosted.org/packages/18/8a/d57418b686ffd05fabd5a0a9cfa97e63b38c35d7101af00e87c51c8cc43c/av-14.4.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:5b21d5586a88b9fce0ab78e26bd1c38f8642f8e2aad5b35e619f4d202217c701", size = 19965048, upload-time = "2025-05-16T19:09:27.419Z" }, + { url = "https://files.pythonhosted.org/packages/a6/75/b8641653780336c90ba89e5352cac0afa6256a86a150c7703c0b38851c6d/av-14.4.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:a53e682b239dd23b4e3bc9568cfb1168fc629ab01925fdb2e7556eb426339e94", size = 19954125, upload-time = "2025-05-16T19:09:54.909Z" }, + { url = "https://files.pythonhosted.org/packages/12/4c/b0205f77352312ff457ecdf31723dbf4403b7a03fc1659075d6d32f23ef7/av-14.4.0-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:3d2aea7c602b105363903e4017103bc4b60336e7aff80e1c22e8b4ec09fd125f", size = 19917341, upload-time = "2025-05-16T19:10:18.826Z" }, + { url = "https://files.pythonhosted.org/packages/a2/7e/7db6385ec38e1d5889c64d0c1c3a760439063e9b1663a8ec45a5b908a68e/av-14.4.0-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:8ff683777e0bb3601f7cfb4545dca25db92817585330b773e897e1f6f9d612f7", size = 20012414, upload-time = "2025-05-16T19:13:05.348Z" }, +] + [[package]] name = "babel" version = "2.17.0" @@ -282,15 +346,16 @@ wheels = [ [[package]] name = "backrefs" -version = "5.8" +version = "5.9" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/6c/46/caba1eb32fa5784428ab401a5487f73db4104590ecd939ed9daaf18b47e0/backrefs-5.8.tar.gz", hash = "sha256:2cab642a205ce966af3dd4b38ee36009b31fa9502a35fd61d59ccc116e40a6bd", size = 6773994, upload-time = "2025-02-25T18:15:32.003Z" } +sdist = { url = "https://files.pythonhosted.org/packages/eb/a7/312f673df6a79003279e1f55619abbe7daebbb87c17c976ddc0345c04c7b/backrefs-5.9.tar.gz", hash = "sha256:808548cb708d66b82ee231f962cb36faaf4f2baab032f2fbb783e9c2fdddaa59", size = 5765857, upload-time = "2025-06-22T19:34:13.97Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/bf/cb/d019ab87fe70e0fe3946196d50d6a4428623dc0c38a6669c8cae0320fbf3/backrefs-5.8-py310-none-any.whl", hash = "sha256:c67f6638a34a5b8730812f5101376f9d41dc38c43f1fdc35cb54700f6ed4465d", size = 380337, upload-time = "2025-02-25T16:53:14.607Z" }, - { url = "https://files.pythonhosted.org/packages/a9/86/abd17f50ee21b2248075cb6924c6e7f9d23b4925ca64ec660e869c2633f1/backrefs-5.8-py311-none-any.whl", hash = "sha256:2e1c15e4af0e12e45c8701bd5da0902d326b2e200cafcd25e49d9f06d44bb61b", size = 392142, upload-time = "2025-02-25T16:53:17.266Z" }, - { url = "https://files.pythonhosted.org/packages/b3/04/7b415bd75c8ab3268cc138c76fa648c19495fcc7d155508a0e62f3f82308/backrefs-5.8-py312-none-any.whl", hash = "sha256:bbef7169a33811080d67cdf1538c8289f76f0942ff971222a16034da88a73486", size = 398021, upload-time = "2025-02-25T16:53:26.378Z" }, - { url = "https://files.pythonhosted.org/packages/04/b8/60dcfb90eb03a06e883a92abbc2ab95c71f0d8c9dd0af76ab1d5ce0b1402/backrefs-5.8-py313-none-any.whl", hash = "sha256:e3a63b073867dbefd0536425f43db618578528e3896fb77be7141328642a1585", size = 399915, upload-time = "2025-02-25T16:53:28.167Z" }, - { url = "https://files.pythonhosted.org/packages/0c/37/fb6973edeb700f6e3d6ff222400602ab1830446c25c7b4676d8de93e65b8/backrefs-5.8-py39-none-any.whl", hash = "sha256:a66851e4533fb5b371aa0628e1fee1af05135616b86140c9d787a2ffdf4b8fdc", size = 380336, upload-time = "2025-02-25T16:53:29.858Z" }, + { url = "https://files.pythonhosted.org/packages/19/4d/798dc1f30468134906575156c089c492cf79b5a5fd373f07fe26c4d046bf/backrefs-5.9-py310-none-any.whl", hash = "sha256:db8e8ba0e9de81fcd635f440deab5ae5f2591b54ac1ebe0550a2ca063488cd9f", size = 380267, upload-time = "2025-06-22T19:34:05.252Z" }, + { url = "https://files.pythonhosted.org/packages/55/07/f0b3375bf0d06014e9787797e6b7cc02b38ac9ff9726ccfe834d94e9991e/backrefs-5.9-py311-none-any.whl", hash = "sha256:6907635edebbe9b2dc3de3a2befff44d74f30a4562adbb8b36f21252ea19c5cf", size = 392072, upload-time = "2025-06-22T19:34:06.743Z" }, + { url = "https://files.pythonhosted.org/packages/9d/12/4f345407259dd60a0997107758ba3f221cf89a9b5a0f8ed5b961aef97253/backrefs-5.9-py312-none-any.whl", hash = "sha256:7fdf9771f63e6028d7fee7e0c497c81abda597ea45d6b8f89e8ad76994f5befa", size = 397947, upload-time = "2025-06-22T19:34:08.172Z" }, + { url = "https://files.pythonhosted.org/packages/10/bf/fa31834dc27a7f05e5290eae47c82690edc3a7b37d58f7fb35a1bdbf355b/backrefs-5.9-py313-none-any.whl", hash = "sha256:cc37b19fa219e93ff825ed1fed8879e47b4d89aa7a1884860e2db64ccd7c676b", size = 399843, upload-time = "2025-06-22T19:34:09.68Z" }, + { url = "https://files.pythonhosted.org/packages/fc/24/b29af34b2c9c41645a9f4ff117bae860291780d73880f449e0b5d948c070/backrefs-5.9-py314-none-any.whl", hash = "sha256:df5e169836cc8acb5e440ebae9aad4bf9d15e226d3bad049cf3f6a5c20cc8dc9", size = 411762, upload-time = "2025-06-22T19:34:11.037Z" }, + { url = "https://files.pythonhosted.org/packages/41/ff/392bff89415399a979be4a65357a41d92729ae8580a66073d8ec8d810f98/backrefs-5.9-py39-none-any.whl", hash = "sha256:f48ee18f6252b8f5777a22a00a09a85de0ca931658f1dd96d4406a34f3748c60", size = 380265, upload-time = "2025-06-22T19:34:12.405Z" }, ] [[package]] @@ -323,30 +388,54 @@ css = [ { name = "tinycss2" }, ] +[[package]] +name = "blis" +version = "1.3.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/96/f3/7c5a47a0d5ec0362bab29fd4f497b4b1975473bf30b7a02bc9c0b0e84f7a/blis-1.3.0.tar.gz", hash = "sha256:1695a87e3fc4c20d9b9140f5238cac0514c411b750e8cdcec5d8320c71f62e99", size = 2510328, upload-time = "2025-04-03T15:09:47.767Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/17/96/51608bc2ef3bf7ebcb81905626ab2d08c620fd02b70cecb14174b6e64c98/blis-1.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d1b5c7e7b337e4b0b4887d4837c25e787a940c38d691c6b2936baebf1d008f1b", size = 1280540, upload-time = "2025-04-03T15:08:38.749Z" }, + { url = "https://files.pythonhosted.org/packages/c1/13/a3b66fd57c75343a5b2e6323cd8f73bdd2e9b328deba7cf676ec334ec754/blis-1.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8072fbb03505444c818810536ad77616a18d97bbde06e8ec69755d917abb7f31", size = 1281504, upload-time = "2025-04-03T15:08:54.934Z" }, + { url = "https://files.pythonhosted.org/packages/d1/05/30587d1b168fa27d1bf6869a1be4bcb3f10493f836381a033aa9c7a10ab8/blis-1.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:626f84522faa51d5a52f9820551a84a5e02490bf6d1abdfc8d27934a0ff939de", size = 1282465, upload-time = "2025-04-03T15:09:15.081Z" }, + { url = "https://files.pythonhosted.org/packages/f1/8b/a3374a970e1ae6138b2ec6bffeb1018068c5f0dbf2b12dd8ab16a47ae4a0/blis-1.3.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e3c20bc3d7143383195cc472373fb301d3bafbacd8ab8f3bffc27c68bef45d81", size = 1280751, upload-time = "2025-04-03T15:09:32.007Z" }, +] + [[package]] name = "boto3-stubs" -version = "1.38.40" +version = "1.38.46" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "botocore-stubs" }, { name = "types-s3transfer" }, { name = "typing-extensions", marker = "python_full_version < '3.12'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/b6/39/ebe84f9355bdb1723fa4e47225daf5d1dca07e67710b9d72e37db9212432/boto3_stubs-1.38.40.tar.gz", hash = "sha256:cf8cf0f67aa6aac0caa6cdcd78609c182cdc12727a67bd811dd8a95d03fa6c8f", size = 99503, upload-time = "2025-06-19T19:26:02.41Z" } +sdist = { url = "https://files.pythonhosted.org/packages/0e/c6/b042b91c40e6e70760d6b63fe391e198bd939b7630e1c5b809b635a601ae/boto3_stubs-1.38.46.tar.gz", hash = "sha256:526789fc1f4a6f89f372424dc9a4109296f6bd18afab1abf5d281a94f5cfb770", size = 99865, upload-time = "2025-06-27T20:34:10.576Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/54/b4/3492febaa3a2ebcefd18e211d70c642d3bd65adc2e7c3f619675092b6a21/boto3_stubs-1.38.40-py3-none-any.whl", hash = "sha256:401c51aa07c96df4b5452f37a2af3936c21b97cea0e68cddda9977a9f864d110", size = 68969, upload-time = "2025-06-19T19:25:53.767Z" }, + { url = "https://files.pythonhosted.org/packages/46/1d/2bc653af4a19170024bb54802fc68c781af64a3aef6d10ac072717593f7e/boto3_stubs-1.38.46-py3-none-any.whl", hash = "sha256:e60f1bee8fed90213725de68bdcfc1bf8765030596962656e06c131bb779972d", size = 69141, upload-time = "2025-06-27T20:34:05.211Z" }, ] [[package]] name = "botocore-stubs" -version = "1.38.30" +version = "1.38.46" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "types-awscrt" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/b2/df/9bf9f6346daf1cbcb736a12417efe025ed63d72a015799f4e8f26a823b93/botocore_stubs-1.38.30.tar.gz", hash = "sha256:291d7bf39a316c00a8a55b7255489b02c0cea1a343482e7784e8d1e235bae995", size = 42299, upload-time = "2025-06-04T20:14:50.799Z" } +sdist = { url = "https://files.pythonhosted.org/packages/05/45/27cabc7c3022dcb12de5098cc646b374065f5e72fae13600ff1756f365ee/botocore_stubs-1.38.46.tar.gz", hash = "sha256:a04e69766ab8bae338911c1897492f88d05cd489cd75f06e6eb4f135f9da8c7b", size = 42299, upload-time = "2025-06-29T22:58:24.765Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/98/71/cc9bc544489160cbacc8472b70ba0f9b93385628ed8bd0f673855b7ceeb7/botocore_stubs-1.38.30-py3-none-any.whl", hash = "sha256:2efb8bdf36504aff596c670d875d8f7dd15205277c15c4cea54afdba8200c266", size = 65628, upload-time = "2025-06-04T20:14:48.089Z" }, + { url = "https://files.pythonhosted.org/packages/cc/84/06490071e26bab22ac79a684e98445df118adcf80c58c33ba5af184030f2/botocore_stubs-1.38.46-py3-none-any.whl", hash = "sha256:cc21d9a7dd994bdd90872db4664d817c4719b51cda8004fd507a4bf65b085a75", size = 66083, upload-time = "2025-06-29T22:58:22.234Z" }, +] + +[[package]] +name = "catalogue" +version = "2.0.10" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/38/b4/244d58127e1cdf04cf2dc7d9566f0d24ef01d5ce21811bab088ecc62b5ea/catalogue-2.0.10.tar.gz", hash = "sha256:4f56daa940913d3f09d589c191c74e5a6d51762b3a9e37dd53b7437afd6cda15", size = 19561, upload-time = "2023-09-25T06:29:24.962Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9e/96/d32b941a501ab566a16358d68b6eb4e4acc373fab3c3c4d7d9e649f7b4bb/catalogue-2.0.10-py3-none-any.whl", hash = "sha256:58c2de0020aa90f4a2da7dfad161bf7b3b054c86a5f09fcedc0b2b740c109a9f", size = 17325, upload-time = "2023-09-25T06:29:23.337Z" }, ] [[package]] @@ -533,16 +622,12 @@ version = "8.2.1" source = { registry = "https://pypi.org/simple" } resolution-markers = [ "python_full_version >= '3.13' and platform_machine == 'arm64' and sys_platform == 'darwin'", - "python_full_version >= '3.12.4' and python_full_version < '3.13' and platform_machine == 'arm64' and sys_platform == 'darwin'", - "python_full_version >= '3.12' and python_full_version < '3.12.4' and platform_machine == 'arm64' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and platform_machine == 'arm64' and sys_platform == 'darwin'", "python_full_version == '3.11.*' and platform_machine == 'arm64' and sys_platform == 'darwin'", "python_full_version == '3.10.*' and platform_machine == 'arm64' and sys_platform == 'darwin'", - "python_full_version >= '3.12.4' and platform_machine != 'arm64' and sys_platform == 'darwin'", - "python_full_version >= '3.12' and python_full_version < '3.12.4' and platform_machine != 'arm64' and sys_platform == 'darwin'", - "python_full_version >= '3.12.4' and platform_machine == 'aarch64' and sys_platform == 'linux'", - "python_full_version >= '3.12' and python_full_version < '3.12.4' and platform_machine == 'aarch64' and sys_platform == 'linux'", - "(python_full_version >= '3.12.4' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version >= '3.12.4' and sys_platform != 'darwin' and sys_platform != 'linux')", - "(python_full_version >= '3.12' and python_full_version < '3.12.4' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version >= '3.12' and python_full_version < '3.12.4' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version >= '3.12' and platform_machine != 'arm64' and sys_platform == 'darwin'", + "python_full_version >= '3.12' and platform_machine == 'aarch64' and sys_platform == 'linux'", + "(python_full_version >= '3.12' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version >= '3.12' and sys_platform != 'darwin' and sys_platform != 'linux')", "python_full_version == '3.11.*' and platform_machine != 'arm64' and sys_platform == 'darwin'", "python_full_version == '3.11.*' and platform_machine == 'aarch64' and sys_platform == 'linux'", "(python_full_version == '3.11.*' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version == '3.11.*' and sys_platform != 'darwin' and sys_platform != 'linux')", @@ -571,6 +656,18 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/ae/5a/4f025bc751087833686892e17e7564828e409c43b632878afeae554870cd/click_log-0.4.0-py2.py3-none-any.whl", hash = "sha256:a43e394b528d52112af599f2fc9e4b7cf3c15f94e53581f74fa6867e68c91756", size = 4273, upload-time = "2022-03-13T11:10:17.594Z" }, ] +[[package]] +name = "cloudpathlib" +version = "0.21.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions", marker = "python_full_version == '3.10.*' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a9/15/ae3256348834b92b9594d73eb7230538bae2bf726c2d721b920a668017c5/cloudpathlib-0.21.1.tar.gz", hash = "sha256:f26a855abf34d98f267aafd15efdb2db3c9665913dbabe5fad079df92837a431", size = 45295, upload-time = "2025-05-15T02:32:05.42Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/40/e7/6fea57b887f8e367c1e4a496ba03bfaf57824b766f777723ce1faf28834b/cloudpathlib-0.21.1-py3-none-any.whl", hash = "sha256:bfe580ad72ec030472ec233cd7380701b2d3227da7b2898387bd170aa70c803c", size = 52776, upload-time = "2025-05-15T02:32:03.99Z" }, +] + [[package]] name = "colorama" version = "0.4.6" @@ -604,6 +701,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/e6/75/49e5bfe642f71f272236b5b2d2691cf915a7283cc0ceda56357b61daa538/comm-0.2.2-py3-none-any.whl", hash = "sha256:e6fb86cb70ff661ee8c9c14e7d36d6de3b4066f1441be4063df9c5009f0a64d3", size = 7180, upload-time = "2024-03-12T16:53:39.226Z" }, ] +[[package]] +name = "confection" +version = "0.1.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pydantic", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "srsly", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/51/d3/57c6631159a1b48d273b40865c315cf51f89df7a9d1101094ef12e3a37c2/confection-0.1.5.tar.gz", hash = "sha256:8e72dd3ca6bd4f48913cd220f10b8275978e740411654b6e8ca6d7008c590f0e", size = 38924, upload-time = "2024-05-31T16:17:01.559Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0c/00/3106b1854b45bd0474ced037dfe6b73b90fe68a68968cef47c23de3d43d2/confection-0.1.5-py3-none-any.whl", hash = "sha256:e29d3c3f8eac06b3f77eb9dfb4bf2fc6bcc9622a98ca00a698e3d019c6430b14", size = 35451, upload-time = "2024-05-31T16:16:59.075Z" }, +] + [[package]] name = "coverage" version = "7.9.1" @@ -688,10 +798,11 @@ name = "cryptography" version = "45.0.4" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "cffi", marker = "(python_full_version < '3.10' and platform_machine != 'arm64' and platform_python_implementation != 'PyPy') or (platform_python_implementation != 'PyPy' and sys_platform != 'darwin')" }, + { name = "cffi", marker = "(python_full_version < '3.10' and platform_machine != 'arm64' and platform_python_implementation != 'PyPy') or (python_full_version >= '3.10' and platform_machine == 'arm64' and platform_python_implementation != 'PyPy') or (platform_python_implementation != 'PyPy' and sys_platform != 'darwin')" }, ] sdist = { url = "https://files.pythonhosted.org/packages/fe/c8/a2a376a8711c1e11708b9c9972e0c3223f5fc682552c82d8db844393d6ce/cryptography-45.0.4.tar.gz", hash = "sha256:7405ade85c83c37682c8fe65554759800a4a8c54b2d96e0f8ad114d31b808d57", size = 744890, upload-time = "2025-06-10T00:03:51.297Z" } wheels = [ + { url = "https://files.pythonhosted.org/packages/cc/1c/92637793de053832523b410dbe016d3f5c11b41d0cf6eef8787aabb51d41/cryptography-45.0.4-cp311-abi3-macosx_10_9_universal2.whl", hash = "sha256:425a9a6ac2823ee6e46a76a21a4e8342d8fa5c01e08b823c1f19a8b74f096069", size = 7055712, upload-time = "2025-06-10T00:02:38.826Z" }, { url = "https://files.pythonhosted.org/packages/ba/14/93b69f2af9ba832ad6618a03f8a034a5851dc9a3314336a3d71c252467e1/cryptography-45.0.4-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:680806cf63baa0039b920f4976f5f31b10e772de42f16310a6839d9f21a26b0d", size = 4205335, upload-time = "2025-06-10T00:02:41.64Z" }, { url = "https://files.pythonhosted.org/packages/67/30/fae1000228634bf0b647fca80403db5ca9e3933b91dd060570689f0bd0f7/cryptography-45.0.4-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4ca0f52170e821bc8da6fc0cc565b7bb8ff8d90d36b5e9fdd68e8a86bdf72036", size = 4431487, upload-time = "2025-06-10T00:02:43.696Z" }, { url = "https://files.pythonhosted.org/packages/6d/5a/7dffcf8cdf0cb3c2430de7404b327e3db64735747d641fc492539978caeb/cryptography-45.0.4-cp311-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:f3fe7a5ae34d5a414957cc7f457e2b92076e72938423ac64d215722f6cf49a9e", size = 4208922, upload-time = "2025-06-10T00:02:45.334Z" }, @@ -701,6 +812,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/db/b7/a84bdcd19d9c02ec5807f2ec2d1456fd8451592c5ee353816c09250e3561/cryptography-45.0.4-cp311-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:2882338b2a6e0bd337052e8b9007ced85c637da19ef9ecaf437744495c8c2999", size = 4463623, upload-time = "2025-06-10T00:02:52.542Z" }, { url = "https://files.pythonhosted.org/packages/d8/84/69707d502d4d905021cac3fb59a316344e9f078b1da7fb43ecde5e10840a/cryptography-45.0.4-cp311-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:23b9c3ea30c3ed4db59e7b9619272e94891f8a3a5591d0b656a7582631ccf750", size = 4332447, upload-time = "2025-06-10T00:02:54.63Z" }, { url = "https://files.pythonhosted.org/packages/f3/ee/d4f2ab688e057e90ded24384e34838086a9b09963389a5ba6854b5876598/cryptography-45.0.4-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:b0a97c927497e3bc36b33987abb99bf17a9a175a19af38a892dc4bbb844d7ee2", size = 4572830, upload-time = "2025-06-10T00:02:56.689Z" }, + { url = "https://files.pythonhosted.org/packages/ce/0b/2488c89f3a30bc821c9d96eeacfcab6ff3accc08a9601ba03339c0fd05e5/cryptography-45.0.4-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:964bcc28d867e0f5491a564b7debb3ffdd8717928d315d12e0d7defa9e43b723", size = 7031836, upload-time = "2025-06-10T00:03:01.726Z" }, { url = "https://files.pythonhosted.org/packages/fe/51/8c584ed426093aac257462ae62d26ad61ef1cbf5b58d8b67e6e13c39960e/cryptography-45.0.4-cp37-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:6a5bf57554e80f75a7db3d4b1dacaa2764611ae166ab42ea9a72bcdb5d577637", size = 4195746, upload-time = "2025-06-10T00:03:03.94Z" }, { url = "https://files.pythonhosted.org/packages/5c/7d/4b0ca4d7af95a704eef2f8f80a8199ed236aaf185d55385ae1d1610c03c2/cryptography-45.0.4-cp37-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:46cf7088bf91bdc9b26f9c55636492c1cce3e7aaf8041bbf0243f5e5325cfb2d", size = 4424456, upload-time = "2025-06-10T00:03:05.589Z" }, { url = "https://files.pythonhosted.org/packages/1d/45/5fabacbc6e76ff056f84d9f60eeac18819badf0cefc1b6612ee03d4ab678/cryptography-45.0.4-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:7bedbe4cc930fa4b100fc845ea1ea5788fcd7ae9562e669989c11618ae8d76ee", size = 4198495, upload-time = "2025-06-10T00:03:09.172Z" }, @@ -710,16 +822,83 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/3a/c0/85fa358ddb063ec588aed4a6ea1df57dc3e3bc1712d87c8fa162d02a65fc/cryptography-45.0.4-cp37-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:06509dc70dd71fa56eaa138336244e2fbaf2ac164fc9b5e66828fccfd2b680d6", size = 4451442, upload-time = "2025-06-10T00:03:16.248Z" }, { url = "https://files.pythonhosted.org/packages/33/67/362d6ec1492596e73da24e669a7fbbaeb1c428d6bf49a29f7a12acffd5dc/cryptography-45.0.4-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:5f31e6b0a5a253f6aa49be67279be4a7e5a4ef259a9f33c69f7d1b1191939872", size = 4325038, upload-time = "2025-06-10T00:03:18.4Z" }, { url = "https://files.pythonhosted.org/packages/53/75/82a14bf047a96a1b13ebb47fb9811c4f73096cfa2e2b17c86879687f9027/cryptography-45.0.4-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:944e9ccf67a9594137f942d5b52c8d238b1b4e46c7a0c2891b7ae6e01e7c80a4", size = 4560964, upload-time = "2025-06-10T00:03:20.06Z" }, + { url = "https://files.pythonhosted.org/packages/16/33/b38e9d372afde56906a23839302c19abdac1c505bfb4776c1e4b07c3e145/cryptography-45.0.4-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:a77c6fb8d76e9c9f99f2f3437c1a4ac287b34eaf40997cfab1e9bd2be175ac39", size = 3580103, upload-time = "2025-06-10T00:03:26.207Z" }, { url = "https://files.pythonhosted.org/packages/c4/b9/357f18064ec09d4807800d05a48f92f3b369056a12f995ff79549fbb31f1/cryptography-45.0.4-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:7aad98a25ed8ac917fdd8a9c1e706e5a0956e06c498be1f713b61734333a4507", size = 4143732, upload-time = "2025-06-10T00:03:27.896Z" }, { url = "https://files.pythonhosted.org/packages/c4/9c/7f7263b03d5db329093617648b9bd55c953de0b245e64e866e560f9aac07/cryptography-45.0.4-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:3530382a43a0e524bc931f187fc69ef4c42828cf7d7f592f7f249f602b5a4ab0", size = 4385424, upload-time = "2025-06-10T00:03:29.992Z" }, { url = "https://files.pythonhosted.org/packages/a6/5a/6aa9d8d5073d5acc0e04e95b2860ef2684b2bd2899d8795fc443013e263b/cryptography-45.0.4-pp310-pypy310_pp73-manylinux_2_34_aarch64.whl", hash = "sha256:6b613164cb8425e2f8db5849ffb84892e523bf6d26deb8f9bb76ae86181fa12b", size = 4142438, upload-time = "2025-06-10T00:03:31.782Z" }, { url = "https://files.pythonhosted.org/packages/42/1c/71c638420f2cdd96d9c2b287fec515faf48679b33a2b583d0f1eda3a3375/cryptography-45.0.4-pp310-pypy310_pp73-manylinux_2_34_x86_64.whl", hash = "sha256:96d4819e25bf3b685199b304a0029ce4a3caf98947ce8a066c9137cc78ad2c58", size = 4384622, upload-time = "2025-06-10T00:03:33.491Z" }, + { url = "https://files.pythonhosted.org/packages/ea/ba/cf442ae99ef363855ed84b39e0fb3c106ac66b7a7703f3c9c9cfe05412cb/cryptography-45.0.4-pp311-pypy311_pp73-macosx_10_9_x86_64.whl", hash = "sha256:4828190fb6c4bcb6ebc6331f01fe66ae838bb3bd58e753b59d4b22eb444b996c", size = 3590512, upload-time = "2025-06-10T00:03:36.982Z" }, { url = "https://files.pythonhosted.org/packages/28/9a/a7d5bb87d149eb99a5abdc69a41e4e47b8001d767e5f403f78bfaafc7aa7/cryptography-45.0.4-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:03dbff8411206713185b8cebe31bc5c0eb544799a50c09035733716b386e61a4", size = 4146899, upload-time = "2025-06-10T00:03:38.659Z" }, { url = "https://files.pythonhosted.org/packages/17/11/9361c2c71c42cc5c465cf294c8030e72fb0c87752bacbd7a3675245e3db3/cryptography-45.0.4-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:51dfbd4d26172d31150d84c19bbe06c68ea4b7f11bbc7b3a5e146b367c311349", size = 4388900, upload-time = "2025-06-10T00:03:40.233Z" }, { url = "https://files.pythonhosted.org/packages/c0/76/f95b83359012ee0e670da3e41c164a0c256aeedd81886f878911581d852f/cryptography-45.0.4-pp311-pypy311_pp73-manylinux_2_34_aarch64.whl", hash = "sha256:0339a692de47084969500ee455e42c58e449461e0ec845a34a6a9b9bf7df7fb8", size = 4146422, upload-time = "2025-06-10T00:03:41.827Z" }, { url = "https://files.pythonhosted.org/packages/09/ad/5429fcc4def93e577a5407988f89cf15305e64920203d4ac14601a9dc876/cryptography-45.0.4-pp311-pypy311_pp73-manylinux_2_34_x86_64.whl", hash = "sha256:0cf13c77d710131d33e63626bd55ae7c0efb701ebdc2b3a7952b9b23a0412862", size = 4388475, upload-time = "2025-06-10T00:03:43.493Z" }, ] +[[package]] +name = "csvw" +version = "1.11.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "isodate", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "python-dateutil", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "rfc3986", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "uritemplate", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/53/a6/a8436f8f7b5578461a4e5c0dbc8341fe2596b703704cf0f5acd35953cc85/csvw-1.11.0.tar.gz", hash = "sha256:c156466fab3331861e0cf3cbe0c4538705800bfac98819149cd70ecbe6f152eb", size = 34812, upload-time = "2021-05-06T08:15:15.351Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/55/ae/afb43a6b88c4202d29e4ec7aca76633d8c530140f4f5a32ee762d07c4607/csvw-1.11.0-py2.py3-none-any.whl", hash = "sha256:243825391308f2568593415364868dda5e50f608fc2bb307fbd79d534af52fd5", size = 35198, upload-time = "2021-05-06T08:15:19.729Z" }, +] + +[[package]] +name = "curated-tokenizers" +version = "0.0.9" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "regex", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/fc/fa/b2d55f0d53c7c7f5dc0b6dbb48cc4344ee84fb572f23de28040bf2cde89d/curated-tokenizers-0.0.9.tar.gz", hash = "sha256:c93d47e54ab3528a6db2796eeb4bdce5d44e8226c671e42c2f23522ab1d0ce25", size = 2237055, upload-time = "2024-01-18T13:45:52.36Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ae/9b/3862be9b9bc97bedfd159fc30ff81f531132de59e324b9b41c264702cbf7/curated_tokenizers-0.0.9-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:799b8a9a1603b7d12683017409bf338bff925aa9806fbad0925ac550501afdf8", size = 702897, upload-time = "2024-01-18T13:45:02.063Z" }, + { url = "https://files.pythonhosted.org/packages/38/e3/88c6681df8319fef9670c99e8dafbc3e89403f199cf6d009a407856e9ebc/curated_tokenizers-0.0.9-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2d1fef3e861df50bd6337364a87f447fbd0a6f01c095cec121b7404d15512138", size = 703331, upload-time = "2024-01-18T13:45:11.948Z" }, + { url = "https://files.pythonhosted.org/packages/34/fb/d6e57b1155bee398f43de58ecdcdda44957e9635183312ac0820a19fc94d/curated_tokenizers-0.0.9-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2abbb571666a9c9b3a15f9df022e25ed1137e9fa8346788aaa747c00f940a3c6", size = 703466, upload-time = "2024-01-18T13:45:20.051Z" }, + { url = "https://files.pythonhosted.org/packages/c8/6a/9c090065f43f492420bc04684c7ca6700aaacc156d25f882fa09f42de51a/curated_tokenizers-0.0.9-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ce0b2369783a4645a3806d94ec42c523de4e2e23932200f452e05d3b2ea81481", size = 704817, upload-time = "2024-01-18T13:45:46.794Z" }, +] + +[[package]] +name = "curated-transformers" +version = "0.1.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "torch", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/70/06/6c12c149a7f737dacc76b4c3949dbc7ff87d622567b86996896ae4d104aa/curated-transformers-0.1.1.tar.gz", hash = "sha256:4671f03314df30efda2ec2b59bc7692ea34fcea44cb65382342c16684e8a2119", size = 16313, upload-time = "2023-05-24T07:29:22.801Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d6/67/3b72b3fdfcadab61bc8f59c17e63770e526ffabd583ed32f174a7c01af85/curated_transformers-0.1.1-py2.py3-none-any.whl", hash = "sha256:d716063d73d803c6925d2dab56fde9b9ab8e89e663c2c0587804944ba488ff01", size = 25972, upload-time = "2023-05-24T07:29:21.119Z" }, +] + +[[package]] +name = "cymem" +version = "2.0.11" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f2/4a/1acd761fb6ac4c560e823ce40536a62f886f2d59b2763b5c3fc7e9d92101/cymem-2.0.11.tar.gz", hash = "sha256:efe49a349d4a518be6b6c6b255d4a80f740a341544bde1a807707c058b88d0bd", size = 10346, upload-time = "2025-01-16T21:50:41.045Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a6/9d/03299eff35bd4fd80db33e4fd516661b82bb7b898cb677829acf22391ede/cymem-2.0.11-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d46ba0d2e0f749195297d16f2286b55af7d7c084db2b853fdfccece2c000c5dc", size = 41696, upload-time = "2025-01-16T21:49:18.788Z" }, + { url = "https://files.pythonhosted.org/packages/41/b4/7546faf2ab63e59befc95972316d62276cec153f7d4d60e7b0d5e08f0602/cymem-2.0.11-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4c05ef75b5db217be820604e43a47ccbbafea98ab6659d07cea92fa3c864ea58", size = 41747, upload-time = "2025-01-16T21:49:36.108Z" }, + { url = "https://files.pythonhosted.org/packages/4a/d6/f7a19c63b48efc3f00a3ee8d69070ac90202e1e378f6cf81b8671f0cf762/cymem-2.0.11-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:de72101dc0e6326f6a2f73e05a438d1f3c6110d41044236d0fbe62925091267d", size = 42249, upload-time = "2025-01-16T21:49:48.973Z" }, + { url = "https://files.pythonhosted.org/packages/fd/60/7aa0561a6c1f0d42643b02c4fdeb2a16181b0ff4e85d73d2d80c6689e92a/cymem-2.0.11-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:02ed92bead896cca36abad00502b14fa651bdf5d8319461126a2d5ac8c9674c5", size = 41948, upload-time = "2025-01-16T21:50:08.375Z" }, + { url = "https://files.pythonhosted.org/packages/12/35/d176ca37dfc746cf5125d3fe682fd0949b23dde78b23e13e010b1bcffdf1/cymem-2.0.11-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0a407fd8766e1f666c48cb232f760267cecf0acb04cc717d8ec4de6adc6ab8e0", size = 42230, upload-time = "2025-01-16T21:50:28.429Z" }, +] + +[[package]] +name = "dacite" +version = "1.9.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/55/a0/7ca79796e799a3e782045d29bf052b5cde7439a2bbb17f15ff44f7aacc63/dacite-1.9.2.tar.gz", hash = "sha256:6ccc3b299727c7aa17582f0021f6ae14d5de47c7227932c47fec4cdfefd26f09", size = 22420, upload-time = "2025-02-05T09:27:29.757Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/94/35/386550fd60316d1e37eccdda609b074113298f23cef5bddb2049823fe666/dacite-1.9.2-py3-none-any.whl", hash = "sha256:053f7c3f5128ca2e9aceb66892b1a3c8936d02c686e707bee96e19deef4bc4a0", size = 16600, upload-time = "2025-02-05T09:27:24.345Z" }, +] + [[package]] name = "datasets" version = "2.21.0" @@ -732,8 +911,7 @@ dependencies = [ { name = "huggingface-hub" }, { name = "multiprocess" }, { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, - { name = "numpy", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, { name = "packaging" }, { name = "pandas" }, { name = "pyarrow" }, @@ -812,9 +990,27 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/91/a1/cf2472db20f7ce4a6be1253a81cfdf85ad9c7885ffbed7047fb72c24cf87/distlib-0.3.9-py2.py3-none-any.whl", hash = "sha256:47f8c22fd27c27e25a65601af709b38e4f0a45ea4fc2e710f65755fa8caaaf87", size = 468973, upload-time = "2024-10-09T18:35:44.272Z" }, ] +[[package]] +name = "dlinfo" +version = "2.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/85/8e/8f2f94cd40af1b51e8e371a83b385d622170d42f98776441a6118f4dd682/dlinfo-2.0.0.tar.gz", hash = "sha256:88a2bc04f51d01bc604cdc9eb1c3cc0bde89057532ca6a3e71a41f6235433e17", size = 12727, upload-time = "2025-01-16T15:43:10.756Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/da/90/022c79d6e5e6f843268c10b84d4a021ee3afba0621d3c176d3ff2024bfc8/dlinfo-2.0.0-py3-none-any.whl", hash = "sha256:b32cc18e3ea67c0ca9ca409e5b41eed863bd1363dbc9dd3de90fedf11b61e7bc", size = 3654, upload-time = "2025-01-16T15:43:09.474Z" }, +] + +[[package]] +name = "dnspython" +version = "2.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b5/4a/263763cb2ba3816dd94b08ad3a33d5fdae34ecb856678773cc40a3605829/dnspython-2.7.0.tar.gz", hash = "sha256:ce9c432eda0dc91cf618a5cedf1a4e142651196bbcd2c80e89ed5a907e5cfaf1", size = 345197, upload-time = "2024-10-05T20:14:59.362Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/68/1b/e0a87d256e40e8c888847551b20a017a6b98139178505dc7ffb96f04e954/dnspython-2.7.0-py3-none-any.whl", hash = "sha256:b4c34b7d10b51bcc3a5071e7b8dee77939f1e878477eeecc965e9835f63c6c86", size = 313632, upload-time = "2024-10-05T20:14:57.687Z" }, +] + [[package]] name = "docling" -version = "2.37.0" +version = "2.39.0" source = { editable = "." } dependencies = [ { name = "beautifulsoup4" }, @@ -840,12 +1036,16 @@ dependencies = [ { name = "requests" }, { name = "rtree" }, { name = "scipy", version = "1.13.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "scipy", version = "1.15.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "scipy", version = "1.15.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, + { name = "scipy", version = "1.16.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "tqdm" }, { name = "typer" }, ] [package.optional-dependencies] +asr = [ + { name = "openai-whisper" }, +] ocrmac = [ { name = "ocrmac", marker = "sys_platform == 'darwin'" }, ] @@ -909,7 +1109,8 @@ requires-dist = [ { name = "accelerate", marker = "extra == 'vlm'", specifier = ">=1.2.1,<2.0.0" }, { name = "beautifulsoup4", specifier = ">=4.12.3,<5.0.0" }, { name = "certifi", specifier = ">=2024.7.4" }, - { name = "docling-core", extras = ["chunking"], specifier = ">=2.29.0,<3.0.0" }, + { name = "docling-core", extras = ["chunking"], specifier = ">=2.39.0,<3.0.0" }, + { name = "docling-ibm-models", specifier = ">=3.4.4,<4.0.0" }, { name = "docling-ibm-models", specifier = ">=3.6.0,<4" }, { name = "docling-parse", specifier = ">=4.0.0,<5.0.0" }, { name = "easyocr", specifier = ">=1.7,<2.0" }, @@ -920,6 +1121,7 @@ requires-dist = [ { name = "mlx-vlm", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin' and extra == 'vlm'", specifier = ">=0.1.22" }, { name = "ocrmac", marker = "sys_platform == 'darwin' and extra == 'ocrmac'", specifier = ">=1.0.0,<2.0.0" }, { name = "onnxruntime", marker = "extra == 'rapidocr'", specifier = ">=1.7.0,<2.0.0" }, + { name = "openai-whisper", marker = "extra == 'asr'", git = "https://github.com/openai/whisper.git?rev=dd985ac4b90cafeef8712f2998d62c59c3e62d22" }, { name = "openpyxl", specifier = ">=3.1.5,<4.0.0" }, { name = "pandas", specifier = ">=2.1.4,<3.0.0" }, { name = "pillow", specifier = ">=10.0.0,<12.0.0" }, @@ -939,7 +1141,7 @@ requires-dist = [ { name = "transformers", marker = "extra == 'vlm'", specifier = ">=4.46.0,<5.0.0" }, { name = "typer", specifier = ">=0.12.5,<0.17.0" }, ] -provides-extras = ["tesserocr", "ocrmac", "vlm", "rapidocr"] +provides-extras = ["tesserocr", "ocrmac", "vlm", "rapidocr", "asr"] [package.metadata.requires-dev] constraints = [ @@ -983,7 +1185,7 @@ examples = [ [[package]] name = "docling-core" -version = "2.38.1" +version = "2.39.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "jsonref" }, @@ -997,9 +1199,9 @@ dependencies = [ { name = "typer" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/38/f7/33bb17aa13e73722bf18ecfb7f13d6fbfb384c22003209bd72708123b33f/docling_core-2.38.1.tar.gz", hash = "sha256:a0566df2316eec4d22953ca7dac839b926dd57549b4c07ac810e87dbbaf91a10", size = 146276, upload-time = "2025-06-20T12:28:48.422Z" } +sdist = { url = "https://files.pythonhosted.org/packages/6a/8b/5613467523bed58d9f2b94220947783914b6d9910a8d20908cf148805427/docling_core-2.39.0.tar.gz", hash = "sha256:77530156c79c9000fe3104894935437d3e2d46dc0f567b5a500974d7c1a8b38b", size = 148005, upload-time = "2025-06-27T12:59:56.694Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/f0/c5/fb2e24602db94ec02cc3ac8eb7b9665f2a5f61ff81866beb67aff95a353a/docling_core-2.38.1-py3-none-any.whl", hash = "sha256:6859313561030503e8b53aec535aa5edb765a679af76ce2e2c60722d78c6c613", size = 151570, upload-time = "2025-06-20T12:28:46.764Z" }, + { url = "https://files.pythonhosted.org/packages/70/85/3d59ac46a47f62a0ed79e187c4163cecd2693d05006f771038db4781f9ff/docling_core-2.39.0-py3-none-any.whl", hash = "sha256:b7ce5142ab95bd8d5cfe5d7df167a96a6eb41d884f00ea42bb3dd8f40ade92ea", size = 152890, upload-time = "2025-06-27T12:59:55.327Z" }, ] [package.optional-dependencies] @@ -1017,8 +1219,7 @@ dependencies = [ { name = "huggingface-hub" }, { name = "jsonlines" }, { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, - { name = "numpy", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, { name = "opencv-python-headless" }, { name = "pillow" }, { name = "pydantic" }, @@ -1036,7 +1237,7 @@ wheels = [ [[package]] name = "docling-parse" -version = "4.0.5" +version = "4.1.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "docling-core" }, @@ -1045,37 +1246,43 @@ dependencies = [ { name = "pywin32", marker = "sys_platform == 'win32'" }, { name = "tabulate" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/1a/3c/2702e1eecdf5c9645a851f93066e2789ee8e7ceb3662356d98ed6b9d0a91/docling_parse-4.0.5.tar.gz", hash = "sha256:4547308aeb97db4d3a1439fa0aca2521adbc9ad09ba2e46f85a89877f6981399", size = 36639400, upload-time = "2025-06-13T17:22:17.908Z" } +sdist = { url = "https://files.pythonhosted.org/packages/c0/24/fff30a36af50a720813b1bdbeaee140136ff0fcdfad041ec8127c3115b4f/docling_parse-4.1.0.tar.gz", hash = "sha256:6c2f52c5438ff6158ad2e6d2064b35786f01ce7f1b235c7c882b71ab221549c6", size = 39407179, upload-time = "2025-06-24T11:21:49.233Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/34/30/9522e1a3684a14b6570291d3ffdb52ff0fcd86c8b0dc79ddaa9ed53e4888/docling_parse-4.0.5-cp310-cp310-macosx_13_0_x86_64.whl", hash = "sha256:856c04a18a1274514adfed39943c6a280d817a07a5850b8eee2c23431c89b922", size = 14707458, upload-time = "2025-06-13T17:21:21.961Z" }, - { url = "https://files.pythonhosted.org/packages/16/0e/247f15612dcf753bf3e67c3fa0795b12076903ec14778e1be5d94715087c/docling_parse-4.0.5-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:5a9094ec1078ea4e3467e9d5fa79f8b5856938d99e4d21ecc581485d21a397e0", size = 14585583, upload-time = "2025-06-13T17:21:24.476Z" }, - { url = "https://files.pythonhosted.org/packages/e0/6d/e52432c075ebf56ad0e7a3837fa0f1d43502c63baf86489dd8d76d5dcf98/docling_parse-4.0.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ed443d5d5e9db4a8019c9cc6f3bf409a5c16567c958fafd85236f4c5dfba20e5", size = 15031871, upload-time = "2025-06-13T17:21:26.356Z" }, - { url = "https://files.pythonhosted.org/packages/96/91/033df6d206ebedbcc592ca92e9a15cc18e84c382e2b88318ca82f1e73460/docling_parse-4.0.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:07d431367797aa7f4e7e5f68a4e443b6a8a7a86e3875eb7fa5b8d2a343442788", size = 15094554, upload-time = "2025-06-13T17:21:28.146Z" }, - { url = "https://files.pythonhosted.org/packages/b1/c3/9da2b72c60d2d0c71ecb276e89efbb189af2943404c65da4b75558424b1b/docling_parse-4.0.5-cp310-cp310-win_amd64.whl", hash = "sha256:3b8937a9a935df132613cbc82ed4cece59af1d6bd9c9dd4d6ce39c31b6bc30e1", size = 15889336, upload-time = "2025-06-13T17:21:29.937Z" }, - { url = "https://files.pythonhosted.org/packages/98/22/0906ae0372747535d03beca47fb4945b0eac40948c1edbb0e7a02243c6d0/docling_parse-4.0.5-cp311-cp311-macosx_13_0_x86_64.whl", hash = "sha256:e9d5263080239ff7b4c4bf810aed33906b61a4c489364bdd66c885df5b59e1c1", size = 14708768, upload-time = "2025-06-13T17:21:31.831Z" }, - { url = "https://files.pythonhosted.org/packages/00/5e/e21abbc28f4593297ab29a6e1e3a801241cb2b6c371c2e5df821dd7a059c/docling_parse-4.0.5-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:828bd5e4cb4e1136fdc9ece5b135657b491b984ffafe9dc9119de46a8fa92906", size = 14586971, upload-time = "2025-06-13T17:21:33.719Z" }, - { url = "https://files.pythonhosted.org/packages/1b/38/d3703b2194bb075ef31c3a5eca95d947862d71ac891a00d397c51a57e044/docling_parse-4.0.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0ad5880a72b8b9af0b3e64f70a588ff241e808832d9ef8f8980630510a02a9f", size = 15033297, upload-time = "2025-06-13T17:21:35.626Z" }, - { url = "https://files.pythonhosted.org/packages/04/79/f82707ec74f25b64919fb225463a3187c7edc0fb65d11b844c8f4c887485/docling_parse-4.0.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a65be212a47a80667a3edbec977e9d46ca69ce483e8ca47d6b0321a3b669f038", size = 15096314, upload-time = "2025-06-13T17:21:37.652Z" }, - { url = "https://files.pythonhosted.org/packages/fb/66/a01ffb80bfc703f3fa3a4253a996d0309ed3c64c78a00284e6453d7b19e3/docling_parse-4.0.5-cp311-cp311-win_amd64.whl", hash = "sha256:326168d8bcebb54d1be362b02bb432e1dfd897830f5a70df9ed99980b6432dee", size = 15890440, upload-time = "2025-06-13T17:21:39.553Z" }, - { url = "https://files.pythonhosted.org/packages/f7/1e/4e58f10b218a2445d85d0f3f56b158ef2d477b167cd7e3b696a79269a2f8/docling_parse-4.0.5-cp312-cp312-macosx_13_0_x86_64.whl", hash = "sha256:478630da49c8e81ead6419f430579e938075ddd563ee6b01659f3ea70b2f0a68", size = 14709361, upload-time = "2025-06-13T17:21:41.735Z" }, - { url = "https://files.pythonhosted.org/packages/06/99/ff53cdf6f09edd752f8e824c1065b86a1744b10a03a7013ef281c1ad6bb6/docling_parse-4.0.5-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:9475d1fb881ceade1c82f63c78f04262b316c71bab477bb676af96fd4d786328", size = 14586483, upload-time = "2025-06-13T17:21:44.274Z" }, - { url = "https://files.pythonhosted.org/packages/41/e8/0cc02dbdb25157989012a48e5ae9a295e8514d7f9852a1a67e3185b01ce7/docling_parse-4.0.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1d835f91c2bd3c79dc7a54f9eec8c5eb9a0edf9435427eeb71b7e804edb33419", size = 15031273, upload-time = "2025-06-13T17:21:46.048Z" }, - { url = "https://files.pythonhosted.org/packages/3e/8d/d5ed8e56c0558234859710b6cfbce397d09b35fae7223dfb6569d16f8bac/docling_parse-4.0.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2de91c8540b71d5824253a8e6ac0cb2079057d4a8c0bc1d4b138e51a413e6999", size = 15095233, upload-time = "2025-06-13T17:21:47.767Z" }, - { url = "https://files.pythonhosted.org/packages/45/ef/220d8870f95b237634768854a68a564b6d8cc8d6006e8842bcf0dbbdd4fb/docling_parse-4.0.5-cp312-cp312-win_amd64.whl", hash = "sha256:cb7763a1772023bf7490ba6fbe553e8173cac400310930278a55c151a7020d90", size = 15890553, upload-time = "2025-06-13T17:21:50.237Z" }, - { url = "https://files.pythonhosted.org/packages/9b/79/4e76d0be3505fa8b96ea7dc8283a0ba6dd13dc985d03fa182fbee82fa854/docling_parse-4.0.5-cp313-cp313-macosx_13_0_x86_64.whl", hash = "sha256:7cbea4f931e20fa3fd9a8796c819392135a51045e1f9e3a28a1bd93c43e5696a", size = 14709352, upload-time = "2025-06-13T17:21:52.1Z" }, - { url = "https://files.pythonhosted.org/packages/c1/75/ab9e974e46fb9ef40763babe470182fcfd1a1a1dbceec829a08c14d1137e/docling_parse-4.0.5-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:5d2956397d0ac1834aa28631d3149bbcf7a42b48d14e3aa61dc1f8dbeeae9af9", size = 14586596, upload-time = "2025-06-13T17:21:53.934Z" }, - { url = "https://files.pythonhosted.org/packages/29/fc/5e658238d24642d837ec524df15d8966633c205463f717f7fe1de2cabb2c/docling_parse-4.0.5-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a65d0a449bfc8a686abe13e3b4f8be1fe3fac6fa5311a688f1df869b7298b22f", size = 15032001, upload-time = "2025-06-13T17:21:56.192Z" }, - { url = "https://files.pythonhosted.org/packages/21/04/18a5f2baa95c1ce4ea248809cbf832bf605afe68a6a5a268b53ed3f223ba/docling_parse-4.0.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b7ec873f5d5b357f33513cba23eb7f6a34586914617d3d9d22b223006b684b7c", size = 15095903, upload-time = "2025-06-13T17:21:58.594Z" }, - { url = "https://files.pythonhosted.org/packages/cf/71/1074eee565da79904c85ab9ec82321f4e0134c236c1bc07b396a3bd85ee9/docling_parse-4.0.5-cp313-cp313-win_amd64.whl", hash = "sha256:09f0f353b8401d726772a611c59f5fff15a297af9ed6c1a01103cdc4dd1267ca", size = 15890116, upload-time = "2025-06-13T17:22:00.497Z" }, - { url = "https://files.pythonhosted.org/packages/95/14/3a792f722bfff629a3ac648f717df9fc1b6a665ba0faf48173a3b1d125e0/docling_parse-4.0.5-cp39-cp39-macosx_13_0_x86_64.whl", hash = "sha256:4282cf05c83203e7228a6470dac99417c86a53635fd54f6ffce142a2e5ad57f3", size = 14707550, upload-time = "2025-06-13T17:22:02.4Z" }, - { url = "https://files.pythonhosted.org/packages/f3/53/8cf3999859b77de34c64a0f5843db0133809dc3ae5b265cdf957e2a297cc/docling_parse-4.0.5-cp39-cp39-macosx_14_0_arm64.whl", hash = "sha256:7e5fef821efdc38f763d3963a4093d85b0708af75b9bcafa953ae7b16db39e1c", size = 14585591, upload-time = "2025-06-13T17:22:04.392Z" }, - { url = "https://files.pythonhosted.org/packages/d2/3c/6aa806805b718b589cf471711208cc72aab69be2bcae1f7d4417e24ae78c/docling_parse-4.0.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:731ebd95b8d44486701c732dba76f327738a3c9af87965aa3e4a514e7a9218ff", size = 15032176, upload-time = "2025-06-13T17:22:06.485Z" }, - { url = "https://files.pythonhosted.org/packages/ca/80/95242706b5cc0b164d17807071a2ddd57c154c7857111db7c641b196f183/docling_parse-4.0.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:000666a162db65f40f25e4c80e0f62a1003a49e17777f2e965bd49a5b3a96bad", size = 15094849, upload-time = "2025-06-13T17:22:08.714Z" }, - { url = "https://files.pythonhosted.org/packages/c2/aa/4eb329a1e6cbcbd6d8bf42a8b64f7034997ae2ead1ccf52c682e085d112a/docling_parse-4.0.5-cp39-cp39-win_amd64.whl", hash = "sha256:21912a8d50a6953e44b1fa6a9d1a8b3138cc4b6fd61714b191199ed643d5d196", size = 15889534, upload-time = "2025-06-13T17:22:10.555Z" }, - { url = "https://files.pythonhosted.org/packages/a9/9a/602f61963a9acf70fe019ec114ea6e280ee3bbeb748c6ba0bb3fa3f92632/docling_parse-4.0.5-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:cf6e5d70a0fe4e490b4a686739e87dfcbc7b1bea551602c1055a53e61d89edca", size = 17693256, upload-time = "2025-06-13T17:22:12.753Z" }, - { url = "https://files.pythonhosted.org/packages/19/6b/ca0750f83ae5d2a23b648688b7231352db30c012a1373634a1e95057e046/docling_parse-4.0.5-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:dc77e344eea8d28c68858c9533a937a72c3107f78bac2a1b94855c0aead20579", size = 17693806, upload-time = "2025-06-13T17:22:15.65Z" }, + { url = "https://files.pythonhosted.org/packages/53/e5/926fce2ceff34b1f1f9ce458652e098aa133b1f76fc2db2bd04630fe0deb/docling_parse-4.1.0-cp310-cp310-macosx_13_0_x86_64.whl", hash = "sha256:93e5b5f7916d25a4d628940ea93ffb9f11ca8143946d897afb4c025cc826742f", size = 14709404, upload-time = "2025-06-24T11:20:46.335Z" }, + { url = "https://files.pythonhosted.org/packages/1c/a0/a4e91bdaf1bf859afff63a814dac3016be280afc2cb3c97a213a2aa0273f/docling_parse-4.1.0-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:1c33cfac7ff70c8890cac33b80e0a3dab4d6c527635806fa60be558d69bbe02a", size = 14587856, upload-time = "2025-06-24T11:20:49.655Z" }, + { url = "https://files.pythonhosted.org/packages/3b/09/5705e61951a6e7475893387539c3a0f4b1aac74372961fc9c1a6bd7260bc/docling_parse-4.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:afd5c8d025986110cbfaad9d8cb924b636e08069bde7dcd7e724d57a0a62b24e", size = 15026321, upload-time = "2025-06-24T11:20:51.577Z" }, + { url = "https://files.pythonhosted.org/packages/cb/ea/833cf6b09c5fd8131898dd9df21aea5ec2b6db3c6a04d2782cc0f338357f/docling_parse-4.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:62825b46c58bafca6a03a949dd80d0e50253d6e6e979c8c73e00edfb6b58da54", size = 15105276, upload-time = "2025-06-24T11:20:53.821Z" }, + { url = "https://files.pythonhosted.org/packages/bd/0d/c5cfc9dc95a9ded97402d6b821f78556dbfbf65dd3a209abd219a47a8fb7/docling_parse-4.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:28f91e8a09b502bf76324e8d68100830c3fe37b420268b7585aa1bde257acfd2", size = 15894432, upload-time = "2025-06-24T11:20:56.232Z" }, + { url = "https://files.pythonhosted.org/packages/f4/32/8755b295c9850b75f3ee64274ddcbce67c4afbd8263b5136c073483c997c/docling_parse-4.1.0-cp311-cp311-macosx_13_0_x86_64.whl", hash = "sha256:66a6773981702ba052a0f766f868ee98526899ad802bd03dbf50b1209fda8082", size = 14710838, upload-time = "2025-06-24T11:20:58.155Z" }, + { url = "https://files.pythonhosted.org/packages/d9/ac/051d61783b58dda5e33884dc25f4bda38025fcae7f0f94a159373895947e/docling_parse-4.1.0-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:78515424b90fcd305f8ea9ab243719c3030c9ce764cef44be1b8cf0d8fc4a5a5", size = 14589300, upload-time = "2025-06-24T11:21:00.479Z" }, + { url = "https://files.pythonhosted.org/packages/57/7a/a665f853ff801879598738beb9a5fc3142aa50b1f81fa46d8e1f92d1a4b2/docling_parse-4.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2e568bb9d8188bffc72fe10a78712c73a5a6002980b3602d58969dc14e0d7ff1", size = 15027042, upload-time = "2025-06-24T11:21:02.614Z" }, + { url = "https://files.pythonhosted.org/packages/26/d3/04f9816b8eea9e7fa2665bcca511c27ee1e2a223a24ce39bb0cd9eefc7f2/docling_parse-4.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c9cfc436cfbc635b65fe4bb5a3157872944c98b95851b71269456614c35d5bf5", size = 15106766, upload-time = "2025-06-24T11:21:04.992Z" }, + { url = "https://files.pythonhosted.org/packages/b3/51/67365adea9afcd1a923e86e5ebecf10e192e12532486e3677adb72c41be1/docling_parse-4.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:2495b5ebf7669770715c290d5f2ef47a849bc2801e8bb78e71f92ea49322b3b3", size = 15896344, upload-time = "2025-06-24T11:21:06.888Z" }, + { url = "https://files.pythonhosted.org/packages/c2/c3/3e72edf879df697eb9349e42980028c4d3d210c0aeab31f7132ec5c6301e/docling_parse-4.1.0-cp312-cp312-macosx_13_0_x86_64.whl", hash = "sha256:febf2b0f08d24a273ee11d876c563ce1d20648a8ddd4c6129e5665138e79c87d", size = 14711298, upload-time = "2025-06-24T11:21:09.385Z" }, + { url = "https://files.pythonhosted.org/packages/2c/a5/bb47eec4abd635bb931332a1408d87829ef649e10469783b37c322b8321d/docling_parse-4.1.0-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:566573e534de6b353af6362d742b52e06e0a37d4b540fe763dd6aec78817c4b5", size = 14588777, upload-time = "2025-06-24T11:21:11.718Z" }, + { url = "https://files.pythonhosted.org/packages/83/a9/8b6c47ed8b2ce51ae97a3caaeab56e593cd91ec7204a6d2f3eea11aeb46d/docling_parse-4.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5eb29b9bb2eddd91d857ef457b99b67918d1e63569eadaafc2603a8f742d0ad5", size = 15026655, upload-time = "2025-06-24T11:21:14.318Z" }, + { url = "https://files.pythonhosted.org/packages/e5/51/080bba290becb3e0e43345db92a13341beb40bb7aa5a2cddf6674855f79a/docling_parse-4.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80dfcc89569b96b653d3db270ed83418045c5d4a647be97273b7a302e3d4c51c", size = 15106006, upload-time = "2025-06-24T11:21:16.961Z" }, + { url = "https://files.pythonhosted.org/packages/66/5d/fde692143f6106d6c2153f19c2e2db9f30700527449b5f0aac8b1e55d571/docling_parse-4.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:cc657a5fd6fe6f82f6aedde40b295697edb582bd30aee08517565fd5cfba207b", size = 15895073, upload-time = "2025-06-24T11:21:18.942Z" }, + { url = "https://files.pythonhosted.org/packages/23/3b/78fd2fe779dfb9588e4fa27ee6ba36e9e3d4195916536e300d6c38a9c08c/docling_parse-4.1.0-cp313-cp313-macosx_13_0_x86_64.whl", hash = "sha256:0046a2f2334338fbc3c679179a594999c8040e4a71f36c0e1a90c188eb697298", size = 14711292, upload-time = "2025-06-24T11:21:20.967Z" }, + { url = "https://files.pythonhosted.org/packages/ed/a3/06987ca409c9b64d8309f962e402649f02486d79ae10ebb9c940d5e0313c/docling_parse-4.1.0-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:058402d6915abf87a9f360a5117a87d864e2e0eaf3fe725c9295765c004460ab", size = 14588907, upload-time = "2025-06-24T11:21:23.326Z" }, + { url = "https://files.pythonhosted.org/packages/4f/f5/14d5a939b815011c4b2d58e9afa3c80faf58ee70cafc03e10ec4d7de3e5a/docling_parse-4.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:008d4ee03a076102be80292008e791b994905780a68ae41d805cf9ff2d610b80", size = 15026519, upload-time = "2025-06-24T11:21:25.383Z" }, + { url = "https://files.pythonhosted.org/packages/2c/ea/153dd31b4e46d818b5917f0daac883ae467e32ddab5ca97c67f8e2971b85/docling_parse-4.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:371067eb2d04c3793ab57f254c32db354edbbd85f14e54cd5c67fccd2705acff", size = 15106663, upload-time = "2025-06-24T11:21:27.885Z" }, + { url = "https://files.pythonhosted.org/packages/29/df/39a85b8342401b1ac066e97f3c698e62f34505d3c219a4ffebbbd7c82eca/docling_parse-4.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:adf42e7d1dbcfd67cf466f3e2b2569ddd79af3666c582ef6eac26263584471c5", size = 15895783, upload-time = "2025-06-24T11:21:29.923Z" }, + { url = "https://files.pythonhosted.org/packages/f1/06/2fb95e9abf33856cd80285f3c179e4d5a85b375e8d539c4688fe1b00e6fc/docling_parse-4.1.0-cp39-cp39-macosx_13_0_x86_64.whl", hash = "sha256:44c268231c4a0a2418e25caeab92784e7514cb8e9dc4f32af743d9a47a2c72ad", size = 14709539, upload-time = "2025-06-24T11:21:33.759Z" }, + { url = "https://files.pythonhosted.org/packages/cb/24/aca3dc0a73ee49a1240eadb5df53899b6e59d7a890f71f56bcebc4c0af0d/docling_parse-4.1.0-cp39-cp39-macosx_14_0_arm64.whl", hash = "sha256:02fed16e96b4c8e7fdfc08719cd27df68ad9d31ec2f4c62c5ac4a7415a7b4bee", size = 14588011, upload-time = "2025-06-24T11:21:35.595Z" }, + { url = "https://files.pythonhosted.org/packages/ca/11/decb9f2598f1cb486560ca642d88482c92754b95706c15429bbd2b8a9e4c/docling_parse-4.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d67b65827a3babeb5e738f9bd47313353f06826eb59f6b128891abac273bddde", size = 15026461, upload-time = "2025-06-24T11:21:37.529Z" }, + { url = "https://files.pythonhosted.org/packages/55/ab/996b39935fc0dce229ec8eb77ec7f611476e2654b3390b68e789e0c69595/docling_parse-4.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88885c4661ec42ae00b83a87f4beb7d5df0b9b8c037c34ec2ef8ed8ad9ad485b", size = 15105547, upload-time = "2025-06-24T11:21:39.762Z" }, + { url = "https://files.pythonhosted.org/packages/fd/d2/edd9f63835a4157db004037644e034407e4a1aa1ad3a3338cd8dba13fa08/docling_parse-4.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:04ff8a0158131edf203774a252b161ad4b053d430ed123f00b63af17f9d80280", size = 15894784, upload-time = "2025-06-24T11:21:41.803Z" }, + { url = "https://files.pythonhosted.org/packages/e6/e3/6cef53b0084b8bc0ca0fa2944ffa9a80ff32d462a1733be555363ad00552/docling_parse-4.1.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:2124de8f5b1dc04f97781d5b0c138d7c35f0a6ce5bd93820ab4d276802b5e345", size = 17704301, upload-time = "2025-06-24T11:21:43.869Z" }, + { url = "https://files.pythonhosted.org/packages/35/b9/c340c536f856a139598b41f213414972a739207347d91b73d2a64a38580d/docling_parse-4.1.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:e0ec4f15294fad4219979084cbe581bb8d18bb30d5d45dbeea5ad1ddb038a40b", size = 17704773, upload-time = "2025-06-24T11:21:46.226Z" }, ] +[[package]] +name = "docopt" +version = "0.6.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a2/55/8f8cab2afd404cf578136ef2cc5dfb50baa1761b68c9da1fb1e4eed343c9/docopt-0.6.2.tar.gz", hash = "sha256:49b3a825280bd66b3aa83585ef59c4a8c82f2c8a522dbe754a8bc8d08c85c491", size = 25901, upload-time = "2014-06-16T11:18:57.406Z" } + [[package]] name = "docutils" version = "0.21.2" @@ -1101,8 +1308,7 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "ninja" }, { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, - { name = "numpy", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, { name = "opencv-python-headless" }, { name = "pillow" }, { name = "pyclipper" }, @@ -1111,7 +1317,8 @@ dependencies = [ { name = "scikit-image", version = "0.24.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, { name = "scikit-image", version = "0.25.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, { name = "scipy", version = "1.13.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "scipy", version = "1.15.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "scipy", version = "1.15.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, + { name = "scipy", version = "1.16.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "shapely", version = "2.0.7", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, { name = "shapely", version = "2.1.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, { name = "torch" }, @@ -1121,6 +1328,37 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/bb/84/4a2cab0e6adde6a85e7ba543862e5fc0250c51f3ac721a078a55cdcff250/easyocr-1.7.2-py3-none-any.whl", hash = "sha256:5be12f9b0e595d443c9c3d10b0542074b50f0ec2d98b141a109cd961fd1c177c", size = 2870178, upload-time = "2024-09-24T11:34:43.554Z" }, ] +[[package]] +name = "einops" +version = "0.8.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e5/81/df4fbe24dff8ba3934af99044188e20a98ed441ad17a274539b74e82e126/einops-0.8.1.tar.gz", hash = "sha256:de5d960a7a761225532e0f1959e5315ebeafc0cd43394732f103ca44b9837e84", size = 54805, upload-time = "2025-02-09T03:17:00.434Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/87/62/9773de14fe6c45c23649e98b83231fffd7b9892b6cf863251dc2afa73643/einops-0.8.1-py3-none-any.whl", hash = "sha256:919387eb55330f5757c6bea9165c5ff5cfe63a642682ea788a6d472576d81737", size = 64359, upload-time = "2025-02-09T03:17:01.998Z" }, +] + +[[package]] +name = "einx" +version = "0.3.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "frozendict", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "sympy", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/95/af/2a2f83f981e969ae3ec5dc30f9b0cd1a258acabc2ff7b33eb9726e334e55/einx-0.3.0.tar.gz", hash = "sha256:17ff87c6a0f68ab358c1da489f00e95f1de106fd12ff17d0fb3e210aaa1e5f8c", size = 84758, upload-time = "2024-06-11T13:49:37.532Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/90/04/4a730d74fd908daad86d6b313f235cdf8e0cf1c255b392b7174ff63ea81a/einx-0.3.0-py3-none-any.whl", hash = "sha256:367d62bab8dbb8c4937308512abb6f746cc0920990589892ba0d281356d39345", size = 102958, upload-time = "2024-06-11T13:49:36.441Z" }, +] + +[[package]] +name = "espeakng-loader" +version = "0.2.4" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a8/26/258c0cd43b9bc1043301c5f61767d6a6c3b679df82790c9cb43a3277b865/espeakng_loader-0.2.4-py3-none-macosx_11_0_arm64.whl", hash = "sha256:d27cdca31112226e7299d8562e889d3e38a1e48055c9ee381b45d669072ee59f", size = 9892565, upload-time = "2025-01-17T01:22:40.365Z" }, +] + [[package]] name = "et-xmlfile" version = "2.0.0" @@ -1162,16 +1400,16 @@ wheels = [ [[package]] name = "fastapi" -version = "0.115.13" +version = "0.115.14" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pydantic", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, { name = "starlette", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, { name = "typing-extensions", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/20/64/ec0788201b5554e2a87c49af26b77a4d132f807a0fa9675257ac92c6aa0e/fastapi-0.115.13.tar.gz", hash = "sha256:55d1d25c2e1e0a0a50aceb1c8705cd932def273c102bff0b1c1da88b3c6eb307", size = 295680, upload-time = "2025-06-17T11:49:45.575Z" } +sdist = { url = "https://files.pythonhosted.org/packages/ca/53/8c38a874844a8b0fa10dd8adf3836ac154082cf88d3f22b544e9ceea0a15/fastapi-0.115.14.tar.gz", hash = "sha256:b1de15cdc1c499a4da47914db35d0e4ef8f1ce62b624e94e0e5824421df99739", size = 296263, upload-time = "2025-06-26T15:29:08.21Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/59/4a/e17764385382062b0edbb35a26b7cf76d71e27e456546277a42ba6545c6e/fastapi-0.115.13-py3-none-any.whl", hash = "sha256:0a0cab59afa7bab22f5eb347f8c9864b681558c278395e94035a741fc10cd865", size = 95315, upload-time = "2025-06-17T11:49:44.106Z" }, + { url = "https://files.pythonhosted.org/packages/53/50/b1222562c6d270fea83e9c9075b8e8600b8479150a18e4516a6138b980d1/fastapi-0.115.14-py3-none-any.whl", hash = "sha256:6c0c8bf9420bd58f565e585036d971872472b4f7d3f6c73b698e10cffdefb3ca", size = 95514, upload-time = "2025-06-26T15:29:06.49Z" }, ] [[package]] @@ -1183,6 +1421,48 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/90/2b/0817a2b257fe88725c25589d89aec060581aabf668707a8d03b2e9e0cb2a/fastjsonschema-2.21.1-py3-none-any.whl", hash = "sha256:c9e5b7e908310918cf494a434eeb31384dd84a98b57a30bcb1f535015b554667", size = 23924, upload-time = "2024-12-02T10:55:07.599Z" }, ] +[[package]] +name = "fastrtc" +version = "0.0.28" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aioice", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "aiortc", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "audioop-lts", marker = "python_full_version >= '3.13' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "gradio", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "librosa", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "numba", version = "0.61.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "standard-aifc", marker = "python_full_version >= '3.13' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "standard-sunau", marker = "python_full_version >= '3.13' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/4e/31/bde848491d8b11af4142363b95bcdc6f3714906fa4d506c412b92649fb3b/fastrtc-0.0.28-py3-none-any.whl", hash = "sha256:6aa3379731292cffee378ea406806a403db4daa11bd844784563ec56d12e1e04", size = 2802747, upload-time = "2025-06-13T16:26:14.603Z" }, +] + +[package.optional-dependencies] +stt = [ + { name = "fastrtc-moonshine-onnx", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "onnxruntime", version = "1.22.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, +] +vad = [ + { name = "onnxruntime", version = "1.22.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, +] + +[[package]] +name = "fastrtc-moonshine-onnx" +version = "20241016" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "huggingface-hub", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "librosa", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "onnxruntime", version = "1.22.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "tokenizers", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/eb/4c/6228bdd63113148577cbec7b68018954c670aa1a280ee435ae0af641b431/fastrtc_moonshine_onnx-20241016-py3-none-any.whl", hash = "sha256:6379e45287671d8f5a224d28b17bcd3f2823197ade684a8b0300d8ea8fbd4db6", size = 729268, upload-time = "2025-02-20T23:16:54.67Z" }, +] + [[package]] name = "ffmpy" version = "0.6.0" @@ -1219,6 +1499,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/b8/25/155f9f080d5e4bc0082edfda032ea2bc2b8fab3f4d25d46c1e9dd22a1a89/flatbuffers-25.2.10-py2.py3-none-any.whl", hash = "sha256:ebba5f4d5ea615af3f7fd70fc310636fbb2bbd1f566ac0a23d98dd412de50051", size = 30953, upload-time = "2025-02-11T04:26:44.484Z" }, ] +[[package]] +name = "frozendict" +version = "2.4.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/bb/59/19eb300ba28e7547538bdf603f1c6c34793240a90e1a7b61b65d8517e35e/frozendict-2.4.6.tar.gz", hash = "sha256:df7cd16470fbd26fc4969a208efadc46319334eb97def1ddf48919b351192b8e", size = 316416, upload-time = "2024-10-13T12:15:32.449Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/29/98/27e145ff7e8e63caa95fb8ee4fc56c68acb208bef01a89c3678a66f9a34d/frozendict-2.4.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f5b94d5b07c00986f9e37a38dd83c13f5fe3bf3f1ccc8e88edea8fe15d6cd88c", size = 37945, upload-time = "2024-10-13T12:14:19.976Z" }, + { url = "https://files.pythonhosted.org/packages/93/d0/3d66be6d154e2bbb4d49445c557f722b248c019b70982654e2440f303671/frozendict-2.4.6-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ba5ef7328706db857a2bdb2c2a17b4cd37c32a19c017cff1bb7eeebc86b0f411", size = 37954, upload-time = "2024-10-13T12:15:13.734Z" }, + { url = "https://files.pythonhosted.org/packages/04/13/d9839089b900fa7b479cce495d62110cddc4bd5630a04d8469916c0e79c5/frozendict-2.4.6-py311-none-any.whl", hash = "sha256:d065db6a44db2e2375c23eac816f1a022feb2fa98cbb50df44a9e83700accbea", size = 16148, upload-time = "2024-10-13T12:15:26.839Z" }, + { url = "https://files.pythonhosted.org/packages/ba/d0/d482c39cee2ab2978a892558cf130681d4574ea208e162da8958b31e9250/frozendict-2.4.6-py312-none-any.whl", hash = "sha256:49344abe90fb75f0f9fdefe6d4ef6d4894e640fadab71f11009d52ad97f370b9", size = 16146, upload-time = "2024-10-13T12:15:28.16Z" }, + { url = "https://files.pythonhosted.org/packages/a5/8e/b6bf6a0de482d7d7d7a2aaac8fdc4a4d0bb24a809f5ddd422aa7060eb3d2/frozendict-2.4.6-py313-none-any.whl", hash = "sha256:7134a2bb95d4a16556bb5f2b9736dceb6ea848fa5b6f3f6c2d6dba93b44b4757", size = 16146, upload-time = "2024-10-13T12:15:29.495Z" }, +] + [[package]] name = "frozenlist" version = "1.7.0" @@ -1344,6 +1637,15 @@ http = [ { name = "aiohttp" }, ] +[[package]] +name = "future" +version = "1.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a7/b2/4140c69c6a66432916b26158687e821ba631a4c9273c474343badf84d3ba/future-1.0.0.tar.gz", hash = "sha256:bd2968309307861edae1458a4f8a4f3598c03be43b97521076aebf5d94c07b05", size = 1228490, upload-time = "2024-02-21T11:52:38.461Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/da/71/ae30dadffc90b9006d77af76b393cb9dfbfc9629f339fc1574a1c52e6806/future-1.0.0-py3-none-any.whl", hash = "sha256:929292d34f5872e70396626ef385ec22355a1fae8ad29e1a734c3e43f9fbc216", size = 491326, upload-time = "2024-02-21T11:52:35.956Z" }, +] + [[package]] name = "ghp-import" version = "2.1.0" @@ -1380,9 +1682,22 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/1d/9a/4114a9057db2f1462d5c8f8390ab7383925fe1ac012eaa42402ad65c2963/GitPython-3.1.44-py3-none-any.whl", hash = "sha256:9e0e10cda9bed1ee64bc9a6de50e7e38a9c9943241cd7f585f6df3ed28011110", size = 207599, upload-time = "2025-01-02T07:32:40.731Z" }, ] +[[package]] +name = "google-crc32c" +version = "1.7.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/19/ae/87802e6d9f9d69adfaedfcfd599266bf386a54d0be058b532d04c794f76d/google_crc32c-1.7.1.tar.gz", hash = "sha256:2bff2305f98846f3e825dbeec9ee406f89da7962accdb29356e4eadc251bd472", size = 14495, upload-time = "2025-03-26T14:29:13.32Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/eb/69/b1b05cf415df0d86691d6a8b4b7e60ab3a6fb6efb783ee5cd3ed1382bfd3/google_crc32c-1.7.1-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:b07d48faf8292b4db7c3d64ab86f950c2e94e93a11fd47271c28ba458e4a0d76", size = 30467, upload-time = "2025-03-26T14:31:11.92Z" }, + { url = "https://files.pythonhosted.org/packages/f7/94/220139ea87822b6fdfdab4fb9ba81b3fff7ea2c82e2af34adc726085bffc/google_crc32c-1.7.1-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:6fbab4b935989e2c3610371963ba1b86afb09537fd0c633049be82afe153ac06", size = 30468, upload-time = "2025-03-26T14:32:52.215Z" }, + { url = "https://files.pythonhosted.org/packages/dd/b7/787e2453cf8639c94b3d06c9d61f512234a82e1d12d13d18584bd3049904/google_crc32c-1.7.1-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:2d73a68a653c57281401871dd4aeebbb6af3191dcac751a76ce430df4d403194", size = 30470, upload-time = "2025-03-26T14:34:31.655Z" }, + { url = "https://files.pythonhosted.org/packages/8b/72/b8d785e9184ba6297a8620c8a37cf6e39b81a8ca01bb0796d7cbb28b3386/google_crc32c-1.7.1-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:df8b38bdaf1629d62d51be8bdd04888f37c451564c2042d36e5812da9eff3c35", size = 30467, upload-time = "2025-03-26T14:36:06.909Z" }, + { url = "https://files.pythonhosted.org/packages/e3/89/940d170a9f24e6e711666a7c5596561358243023b4060869d9adae97a762/google_crc32c-1.7.1-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:9fc196f0b8d8bd2789352c6a522db03f89e83a0ed6b64315923c396d7a932315", size = 30462, upload-time = "2025-03-26T14:29:25.969Z" }, +] + [[package]] name = "gradio" -version = "5.34.2" +version = "5.35.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "aiofiles", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, @@ -1396,8 +1711,7 @@ dependencies = [ { name = "huggingface-hub", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, { name = "jinja2", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, { name = "markupsafe", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, - { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, - { name = "numpy", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, { name = "orjson", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, { name = "packaging", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, { name = "pandas", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, @@ -1415,14 +1729,14 @@ dependencies = [ { name = "typing-extensions", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, { name = "uvicorn", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/2f/39/da989c62cbe787e19e452dcbd4cd0d19de22a47e390810ba75cef4b94eac/gradio-5.34.2.tar.gz", hash = "sha256:1bd729d268268ceec2826bb4ec900d7303de6e783e2a42e3f0f16daa4cab1027", size = 65345636, upload-time = "2025-06-19T18:20:05.17Z" } +sdist = { url = "https://files.pythonhosted.org/packages/af/72/a1337d5625e71bb43f520119e318d3297e3090fbc473825aac423faa3465/gradio-5.35.0.tar.gz", hash = "sha256:f3e68ab02cfe0d9f364068883c8caf30b5b6fb62c10a19ccea3583a0c2e50acd", size = 66543376, upload-time = "2025-06-27T22:49:45.071Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/7c/66/71e55221a5c41d4ebf885ee0cd6186673542fe8c76b5f2efdc8dbc037ace/gradio-5.34.2-py3-none-any.whl", hash = "sha256:3123a6e8fea8e1dfecac0742c3c0ba5683ebf0ae02ba684a37a372bd4ff26d97", size = 54274804, upload-time = "2025-06-19T18:20:00.105Z" }, + { url = "https://files.pythonhosted.org/packages/69/9b/7c0e41bbcaae194b28f599191b5329e21ee91fd789607d6e6fb05ac58c1a/gradio-5.35.0-py3-none-any.whl", hash = "sha256:781a80df25355861e44fd2819fac4ed43cf08ea77911570fb0682f6ae16b9c7c", size = 54328513, upload-time = "2025-06-27T22:49:40.449Z" }, ] [[package]] name = "gradio-client" -version = "1.10.3" +version = "1.10.4" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "fsspec", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, @@ -1432,9 +1746,9 @@ dependencies = [ { name = "typing-extensions", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, { name = "websockets", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/0b/91/a31536da8fd18ed1c1d5b05929b7291a7bfe5963dfcd37a20a42fc2194f0/gradio_client-1.10.3.tar.gz", hash = "sha256:9e99b88e47f05dc3b68e40a3f3f83819f8d0ddcd43466ad385fe42e137825774", size = 321637, upload-time = "2025-06-10T00:51:46.408Z" } +sdist = { url = "https://files.pythonhosted.org/packages/18/c4/2ab8efba7137ef85c66e5833258ba50089515d78324aec42e65aff446c24/gradio_client-1.10.4.tar.gz", hash = "sha256:5dd0ff615f859b8d9fd3ce88555278e3d48bb6ffef79eb956a01e132edbcc1b0", size = 321871, upload-time = "2025-06-27T22:49:54.114Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ea/72/1e76abc821f8efaaeb2e3bd727a6c97bf87c6a9a0ffacfed0647e587824a/gradio_client-1.10.3-py3-none-any.whl", hash = "sha256:941e7f8d9a160f88487e9780a3db2736a40ea2b8b69d53ffdb306e47ef658b76", size = 323599, upload-time = "2025-06-10T00:51:45.204Z" }, + { url = "https://files.pythonhosted.org/packages/3d/b5/bbf3a8649f3b496e4054c970e517b508c581de24c1ccc06fe5960bf7554e/gradio_client-1.10.4-py3-none-any.whl", hash = "sha256:271018368f4f0a2d2dfb943bbd495277518172be50e44f54d99c62fa5533ae09", size = 323872, upload-time = "2025-06-27T22:49:52.775Z" }, ] [[package]] @@ -1534,17 +1848,17 @@ wheels = [ [[package]] name = "hf-xet" -version = "1.1.4" +version = "1.1.5" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/8d/11/b480bb7515db97d5b2b703927a59bbdd3f87e68d47dff5591aada467b4a9/hf_xet-1.1.4.tar.gz", hash = "sha256:875158df90cb13547752532ed73cad9dfaad3b29e203143838f67178418d08a4", size = 492082, upload-time = "2025-06-16T21:20:51.375Z" } +sdist = { url = "https://files.pythonhosted.org/packages/ed/d4/7685999e85945ed0d7f0762b686ae7015035390de1161dcea9d5276c134c/hf_xet-1.1.5.tar.gz", hash = "sha256:69ebbcfd9ec44fdc2af73441619eeb06b94ee34511bbcf57cd423820090f5694", size = 495969, upload-time = "2025-06-20T21:48:38.007Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/c4/62/3b41a7439930996530c64955874445012fd9044c82c60b34c5891c34fec6/hf_xet-1.1.4-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:6591ab9f61ea82d261107ed90237e2ece972f6a7577d96f5f071208bbf255d1c", size = 2643151, upload-time = "2025-06-16T21:20:45.656Z" }, - { url = "https://files.pythonhosted.org/packages/9b/9f/1744fb1d79e0ac147578b193ce29208ebb9f4636e8cdf505638f6f0a6874/hf_xet-1.1.4-cp37-abi3-macosx_11_0_arm64.whl", hash = "sha256:071b0b4d4698990f746edd666c7cc42555833d22035d88db0df936677fb57d29", size = 2510687, upload-time = "2025-06-16T21:20:43.754Z" }, - { url = "https://files.pythonhosted.org/packages/d1/a8/49a81d4f81b0d21cc758b6fca3880a85ca0d209e8425c8b3a6ef694881ca/hf_xet-1.1.4-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b5b610831e92e41182d4c028653978b844d332d492cdcba1b920d3aca4a0207e", size = 3057631, upload-time = "2025-06-16T21:20:42.006Z" }, - { url = "https://files.pythonhosted.org/packages/bf/8b/65fa08273789dafbc38d0f0bdd20df56b63ebc6566981bbaa255d9d84a33/hf_xet-1.1.4-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:f6578bcd71393abfd60395279cc160ca808b61f5f9d535b922fcdcd3f77a708d", size = 2949250, upload-time = "2025-06-16T21:20:39.914Z" }, - { url = "https://files.pythonhosted.org/packages/8b/4b/224340bb1d5c63b6e03e04095b4e42230848454bf4293c45cd7bdaa0c208/hf_xet-1.1.4-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:fb2bbfa2aae0e4f0baca988e7ba8d8c1a39a25adf5317461eb7069ad00505b3e", size = 3124670, upload-time = "2025-06-16T21:20:47.688Z" }, - { url = "https://files.pythonhosted.org/packages/4a/b7/4be010014de6585401c32a04c46b09a4a842d66bd16ed549a401e973b74b/hf_xet-1.1.4-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:73346ba3e2e15ea8909a26b0862b458f15b003e6277935e3fba5bf273508d698", size = 3234131, upload-time = "2025-06-16T21:20:49.535Z" }, - { url = "https://files.pythonhosted.org/packages/c2/2d/cf148d532f741fbf93f380ff038a33c1309d1e24ea629dc39d11dca08c92/hf_xet-1.1.4-cp37-abi3-win_amd64.whl", hash = "sha256:52e8f8bc2029d8b911493f43cea131ac3fa1f0dc6a13c50b593c4516f02c6fc3", size = 2695589, upload-time = "2025-06-16T21:20:53.151Z" }, + { url = "https://files.pythonhosted.org/packages/00/89/a1119eebe2836cb25758e7661d6410d3eae982e2b5e974bcc4d250be9012/hf_xet-1.1.5-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:f52c2fa3635b8c37c7764d8796dfa72706cc4eded19d638331161e82b0792e23", size = 2687929, upload-time = "2025-06-20T21:48:32.284Z" }, + { url = "https://files.pythonhosted.org/packages/de/5f/2c78e28f309396e71ec8e4e9304a6483dcbc36172b5cea8f291994163425/hf_xet-1.1.5-cp37-abi3-macosx_11_0_arm64.whl", hash = "sha256:9fa6e3ee5d61912c4a113e0708eaaef987047616465ac7aa30f7121a48fc1af8", size = 2556338, upload-time = "2025-06-20T21:48:30.079Z" }, + { url = "https://files.pythonhosted.org/packages/6d/2f/6cad7b5fe86b7652579346cb7f85156c11761df26435651cbba89376cd2c/hf_xet-1.1.5-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc874b5c843e642f45fd85cda1ce599e123308ad2901ead23d3510a47ff506d1", size = 3102894, upload-time = "2025-06-20T21:48:28.114Z" }, + { url = "https://files.pythonhosted.org/packages/d0/54/0fcf2b619720a26fbb6cc941e89f2472a522cd963a776c089b189559447f/hf_xet-1.1.5-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:dbba1660e5d810bd0ea77c511a99e9242d920790d0e63c0e4673ed36c4022d18", size = 3002134, upload-time = "2025-06-20T21:48:25.906Z" }, + { url = "https://files.pythonhosted.org/packages/f3/92/1d351ac6cef7c4ba8c85744d37ffbfac2d53d0a6c04d2cabeba614640a78/hf_xet-1.1.5-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:ab34c4c3104133c495785d5d8bba3b1efc99de52c02e759cf711a91fd39d3a14", size = 3171009, upload-time = "2025-06-20T21:48:33.987Z" }, + { url = "https://files.pythonhosted.org/packages/c9/65/4b2ddb0e3e983f2508528eb4501288ae2f84963586fbdfae596836d5e57a/hf_xet-1.1.5-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:83088ecea236d5113de478acb2339f92c95b4fb0462acaa30621fac02f5a534a", size = 3279245, upload-time = "2025-06-20T21:48:36.051Z" }, + { url = "https://files.pythonhosted.org/packages/f0/55/ef77a85ee443ae05a9e9cba1c9f0dd9241eb42da2aeba1dc50f51154c81a/hf_xet-1.1.5-cp37-abi3-win_amd64.whl", hash = "sha256:73e167d9807d166596b4b2f0b585c6d5bd84a26dea32843665a8b58f6edba245", size = 2738931, upload-time = "2025-06-20T21:48:39.482Z" }, ] [[package]] @@ -1577,7 +1891,7 @@ wheels = [ [[package]] name = "huggingface-hub" -version = "0.33.0" +version = "0.33.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "filelock" }, @@ -1589,9 +1903,9 @@ dependencies = [ { name = "tqdm" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/91/8a/1362d565fefabaa4185cf3ae842a98dbc5b35146f5694f7080f043a6952f/huggingface_hub-0.33.0.tar.gz", hash = "sha256:aa31f70d29439d00ff7a33837c03f1f9dd83971ce4e29ad664d63ffb17d3bb97", size = 426179, upload-time = "2025-06-11T17:08:07.913Z" } +sdist = { url = "https://files.pythonhosted.org/packages/a4/01/bfe0534a63ce7a2285e90dbb33e8a5b815ff096d8f7743b135c256916589/huggingface_hub-0.33.1.tar.gz", hash = "sha256:589b634f979da3ea4b8bdb3d79f97f547840dc83715918daf0b64209c0844c7b", size = 426728, upload-time = "2025-06-25T12:02:57.605Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/33/fb/53587a89fbc00799e4179796f51b3ad713c5de6bb680b2becb6d37c94649/huggingface_hub-0.33.0-py3-none-any.whl", hash = "sha256:e8668875b40c68f9929150d99727d39e5ebb8a05a98e4191b908dc7ded9074b3", size = 514799, upload-time = "2025-06-11T17:08:05.757Z" }, + { url = "https://files.pythonhosted.org/packages/d0/fb/5307bd3612eb0f0e62c3a916ae531d3a31e58fb5c82b58e3ebf7fd6f47a1/huggingface_hub-0.33.1-py3-none-any.whl", hash = "sha256:ec8d7444628210c0ba27e968e3c4c973032d44dcea59ca0d78ef3f612196f095", size = 515377, upload-time = "2025-06-25T12:02:55.611Z" }, ] [[package]] @@ -1624,14 +1938,22 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3", size = 70442, upload-time = "2024-09-15T18:07:37.964Z" }, ] +[[package]] +name = "ifaddr" +version = "0.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e8/ac/fb4c578f4a3256561548cd825646680edcadb9440f3f68add95ade1eb791/ifaddr-0.2.0.tar.gz", hash = "sha256:cc0cbfcaabf765d44595825fb96a99bb12c79716b73b44330ea38ee2b0c4aed4", size = 10485, upload-time = "2022-06-15T21:40:27.561Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9c/1f/19ebc343cc71a7ffa78f17018535adc5cbdd87afb31d7c34874680148b32/ifaddr-0.2.0-py3-none-any.whl", hash = "sha256:085e0305cfe6f16ab12d72e2024030f5d52674afad6911bb1eee207177b8a748", size = 12314, upload-time = "2022-06-15T21:40:25.756Z" }, +] + [[package]] name = "imageio" version = "2.37.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, - { name = "numpy", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, { name = "pillow" }, ] sdist = { url = "https://files.pythonhosted.org/packages/0c/47/57e897fb7094afb2d26e8b2e4af9a45c7cf1a405acdeeca001fdf2c98501/imageio-2.37.0.tar.gz", hash = "sha256:71b57b3669666272c818497aebba2b4c5f20d5b37c81720e5e1a56d59c492996", size = 389963, upload-time = "2025-01-20T02:42:37.089Z" } @@ -1756,15 +2078,11 @@ version = "9.3.0" source = { registry = "https://pypi.org/simple" } resolution-markers = [ "python_full_version >= '3.13' and platform_machine == 'arm64' and sys_platform == 'darwin'", - "python_full_version >= '3.12.4' and python_full_version < '3.13' and platform_machine == 'arm64' and sys_platform == 'darwin'", - "python_full_version >= '3.12' and python_full_version < '3.12.4' and platform_machine == 'arm64' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and platform_machine == 'arm64' and sys_platform == 'darwin'", "python_full_version == '3.11.*' and platform_machine == 'arm64' and sys_platform == 'darwin'", - "python_full_version >= '3.12.4' and platform_machine != 'arm64' and sys_platform == 'darwin'", - "python_full_version >= '3.12' and python_full_version < '3.12.4' and platform_machine != 'arm64' and sys_platform == 'darwin'", - "python_full_version >= '3.12.4' and platform_machine == 'aarch64' and sys_platform == 'linux'", - "python_full_version >= '3.12' and python_full_version < '3.12.4' and platform_machine == 'aarch64' and sys_platform == 'linux'", - "(python_full_version >= '3.12.4' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version >= '3.12.4' and sys_platform != 'darwin' and sys_platform != 'linux')", - "(python_full_version >= '3.12' and python_full_version < '3.12.4' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version >= '3.12' and python_full_version < '3.12.4' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version >= '3.12' and platform_machine != 'arm64' and sys_platform == 'darwin'", + "python_full_version >= '3.12' and platform_machine == 'aarch64' and sys_platform == 'linux'", + "(python_full_version >= '3.12' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version >= '3.12' and sys_platform != 'darwin' and sys_platform != 'linux')", "python_full_version == '3.11.*' and platform_machine != 'arm64' and sys_platform == 'darwin'", "python_full_version == '3.11.*' and platform_machine == 'aarch64' and sys_platform == 'linux'", "(python_full_version == '3.11.*' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version == '3.11.*' and sys_platform != 'darwin' and sys_platform != 'linux')", @@ -1817,6 +2135,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/58/6a/9166369a2f092bd286d24e6307de555d63616e8ddb373ebad2b5635ca4cd/ipywidgets-8.1.7-py3-none-any.whl", hash = "sha256:764f2602d25471c213919b8a1997df04bef869251db4ca8efba1b76b1bd9f7bb", size = 139806, upload-time = "2025-05-05T12:41:56.833Z" }, ] +[[package]] +name = "isodate" +version = "0.7.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/54/4d/e940025e2ce31a8ce1202635910747e5a87cc3a6a6bb2d00973375014749/isodate-0.7.2.tar.gz", hash = "sha256:4cd1aa0f43ca76f4a6c6c0292a85f40b35ec2e43e315b59f06e6d32171a953e6", size = 29705, upload-time = "2024-10-08T23:04:11.5Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/15/aa/0aca39a37d3c7eb941ba736ede56d689e7be91cab5d9ca846bde3999eba6/isodate-0.7.2-py3-none-any.whl", hash = "sha256:28009937d8031054830160fce6d409ed342816b543597cece116d966c6d99e15", size = 22320, upload-time = "2024-10-08T23:04:09.501Z" }, +] + [[package]] name = "jaraco-classes" version = "3.4.0" @@ -1843,14 +2170,14 @@ wheels = [ [[package]] name = "jaraco-functools" -version = "4.1.0" +version = "4.2.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "more-itertools" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/ab/23/9894b3df5d0a6eb44611c36aec777823fc2e07740dabbd0b810e19594013/jaraco_functools-4.1.0.tar.gz", hash = "sha256:70f7e0e2ae076498e212562325e805204fc092d7b4c17e0e86c959e249701a9d", size = 19159, upload-time = "2024-09-27T19:47:09.122Z" } +sdist = { url = "https://files.pythonhosted.org/packages/49/1c/831faaaa0f090b711c355c6d8b2abf277c72133aab472b6932b03322294c/jaraco_functools-4.2.1.tar.gz", hash = "sha256:be634abfccabce56fa3053f8c7ebe37b682683a4ee7793670ced17bab0087353", size = 19661, upload-time = "2025-06-21T19:22:03.201Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/9f/4f/24b319316142c44283d7540e76c7b5a6dbd5db623abd86bb7b3491c21018/jaraco.functools-4.1.0-py3-none-any.whl", hash = "sha256:ad159f13428bc4acbf5541ad6dec511f91573b90fba04df61dafa2a1231cf649", size = 10187, upload-time = "2024-09-27T19:47:07.14Z" }, + { url = "https://files.pythonhosted.org/packages/f3/fd/179a20f832824514df39a90bb0e5372b314fea99f217f5ab942b10a8a4e8/jaraco_functools-4.2.1-py3-none-any.whl", hash = "sha256:590486285803805f4b1f99c60ca9e94ed348d4added84b74c7a12885561e524e", size = 10349, upload-time = "2025-06-21T19:22:02.039Z" }, ] [[package]] @@ -1886,6 +2213,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67", size = 134899, upload-time = "2025-03-05T20:05:00.369Z" }, ] +[[package]] +name = "joblib" +version = "1.5.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/dc/fe/0f5a938c54105553436dbff7a61dc4fed4b1b2c98852f8833beaf4d5968f/joblib-1.5.1.tar.gz", hash = "sha256:f4f86e351f39fe3d0d32a9f2c3d8af1ee4cec285aafcb27003dda5205576b444", size = 330475, upload-time = "2025-05-23T12:04:37.097Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7d/4f/1195bbac8e0c2acc5f740661631d8d750dc38d4a32b23ee5df3cde6f4e0d/joblib-1.5.1-py3-none-any.whl", hash = "sha256:4719a31f054c7d766948dcd83e9613686b27114f190f717cec7eaa2084f8a74a", size = 307746, upload-time = "2025-05-23T12:04:35.124Z" }, +] + [[package]] name = "jsonlines" version = "3.1.0" @@ -2041,7 +2377,7 @@ wheels = [ [[package]] name = "langchain-core" -version = "0.3.65" +version = "0.3.66" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "jsonpatch" }, @@ -2052,9 +2388,9 @@ dependencies = [ { name = "tenacity" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/04/8a/d08c83195d1ef26c42728412ab92ab08211893906b283abce65775e21327/langchain_core-0.3.65.tar.gz", hash = "sha256:54b5e0c8d9bb405415c3211da508ef9cfe0acbe5b490d1b4a15664408ee82d9b", size = 558557, upload-time = "2025-06-10T20:08:28.94Z" } +sdist = { url = "https://files.pythonhosted.org/packages/f0/63/470aa84393bad5d51749417af58522a691174f8b2d05843f5633d473faa0/langchain_core-0.3.66.tar.gz", hash = "sha256:350c92e792ec1401f4b740d759b95f297710a50de29e1be9fbfff8676ef62117", size = 560102, upload-time = "2025-06-20T22:08:19.532Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/54/f0/31db18b7b8213266aed926ce89b5bdd84ccde7ee2edf4cab14e3dd2bfcf1/langchain_core-0.3.65-py3-none-any.whl", hash = "sha256:80e8faf6e9f331f8ef728f3fe793549f1d3fb244fcf9e1bdcecab6a6f4669394", size = 438052, upload-time = "2025-06-10T20:08:27.393Z" }, + { url = "https://files.pythonhosted.org/packages/c0/c3/8080431fd7567a340d3a42e36c0bb3970a8d00d5e27bf3ca2103b3b55996/langchain_core-0.3.66-py3-none-any.whl", hash = "sha256:65cd6c3659afa4f91de7aa681397a0c53ff9282425c281e53646dd7faf16099e", size = 438874, upload-time = "2025-06-20T22:08:17.52Z" }, ] [[package]] @@ -2073,15 +2409,15 @@ wheels = [ [[package]] name = "langchain-milvus" -version = "0.2.0" +version = "0.2.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "langchain-core" }, { name = "pymilvus" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/0a/6d/b016ed8dab435d6f6fa4cae1d5de42eb204105f7afabf3168bc7ed3af37c/langchain_milvus-0.2.0.tar.gz", hash = "sha256:b34846b7faade058a4c37ed454b7776c9e5136d0058bd828dfef29de0345aeaa", size = 31796, upload-time = "2025-05-30T13:54:11.229Z" } +sdist = { url = "https://files.pythonhosted.org/packages/3e/dd/5e8b7f6f17da0e54205956feab3f7856cb7dc821dbe817f2990aa028e4cc/langchain_milvus-0.2.1.tar.gz", hash = "sha256:6e60e43959464ae2be9dadceb4fab6b3ddcec5bb1f2d29e898924f1c2651baf1", size = 32639, upload-time = "2025-06-28T09:59:53.826Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/3c/34/8daa975a92daff9cda1125b1ce9b280d3954e886fa76f07eb87cafde6b9a/langchain_milvus-0.2.0-py3-none-any.whl", hash = "sha256:bc7b336dac5120bc4feed040ece598aaf38ae041f6b0f1df2913eb6de29c1fe2", size = 35294, upload-time = "2025-05-30T13:54:09.945Z" }, + { url = "https://files.pythonhosted.org/packages/60/b1/54e176cc8ac80df9a2c4ee9f726d6383fcf9818317c68532cfc90fa91b6c/langchain_milvus-0.2.1-py3-none-any.whl", hash = "sha256:faabf4685c15ef9651605172427073d6ffc52c0f36f3b88842977db883062c99", size = 36110, upload-time = "2025-06-28T09:59:52.965Z" }, ] [[package]] @@ -2096,9 +2432,21 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/8b/a3/3696ff2444658053c01b6b7443e761f28bb71217d82bb89137a978c5f66f/langchain_text_splitters-0.3.8-py3-none-any.whl", hash = "sha256:e75cc0f4ae58dcf07d9f18776400cf8ade27fadd4ff6d264df6278bb302f6f02", size = 32440, upload-time = "2025-04-04T14:03:50.6Z" }, ] +[[package]] +name = "langcodes" +version = "3.5.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "language-data", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/3a/7a/5a97e327063409a5caa21541e6d08ae4a0f2da328447e9f2c7b39e179226/langcodes-3.5.0.tar.gz", hash = "sha256:1eef8168d07e51e131a2497ffecad4b663f6208e7c3ae3b8dc15c51734a6f801", size = 191030, upload-time = "2024-11-19T10:23:45.546Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c3/6b/068c2ea7a712bf805c62445bd9e9c06d7340358ef2824150eceac027444b/langcodes-3.5.0-py3-none-any.whl", hash = "sha256:853c69d1a35e0e13da2f427bb68fb2fa4a8f4fb899e0c62ad8df8d073dcfed33", size = 182974, upload-time = "2024-11-19T10:23:42.824Z" }, +] + [[package]] name = "langsmith" -version = "0.3.45" +version = "0.4.4" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "httpx" }, @@ -2109,9 +2457,21 @@ dependencies = [ { name = "requests-toolbelt" }, { name = "zstandard" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/be/86/b941012013260f95af2e90a3d9415af4a76a003a28412033fc4b09f35731/langsmith-0.3.45.tar.gz", hash = "sha256:1df3c6820c73ed210b2c7bc5cdb7bfa19ddc9126cd03fdf0da54e2e171e6094d", size = 348201, upload-time = "2025-06-05T05:10:28.948Z" } +sdist = { url = "https://files.pythonhosted.org/packages/20/c8/8d2e0fc438d2d3d8d4300f7684ea30a754344ed00d7ba9cc2705241d2a5f/langsmith-0.4.4.tar.gz", hash = "sha256:70c53bbff24a7872e88e6fa0af98270f4986a6e364f9e85db1cc5636defa4d66", size = 352105, upload-time = "2025-06-27T19:20:36.207Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/6a/f4/c206c0888f8a506404cb4f16ad89593bdc2f70cf00de26a1a0a7a76ad7a3/langsmith-0.3.45-py3-none-any.whl", hash = "sha256:5b55f0518601fa65f3bb6b1a3100379a96aa7b3ed5e9380581615ba9c65ed8ed", size = 363002, upload-time = "2025-06-05T05:10:27.228Z" }, + { url = "https://files.pythonhosted.org/packages/1d/33/a3337eb70d795495a299a1640d7a75f17fb917155a64309b96106e7b9452/langsmith-0.4.4-py3-none-any.whl", hash = "sha256:014c68329bd085bd6c770a6405c61bb6881f82eb554ce8c4d1984b0035fd1716", size = 367687, upload-time = "2025-06-27T19:20:33.839Z" }, +] + +[[package]] +name = "language-data" +version = "1.3.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "marisa-trie", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/dd/ce/3f144716a9f2cbf42aa86ebc8b085a184be25c80aa453eea17c294d239c1/language_data-1.3.0.tar.gz", hash = "sha256:7600ef8aa39555145d06c89f0c324bf7dab834ea0b0a439d8243762e3ebad7ec", size = 5129310, upload-time = "2024-11-19T10:21:37.912Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5d/e9/5a5ffd9b286db82be70d677d0a91e4d58f7912bb8dd026ddeeb4abe70679/language_data-1.3.0-py3-none-any.whl", hash = "sha256:e2ee943551b5ae5f89cd0e801d1fc3835bb0ef5b7e9c3a4e8e17b2b214548fbf", size = 5385760, upload-time = "2024-11-19T10:21:36.005Z" }, ] [[package]] @@ -2135,6 +2495,118 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/83/60/d497a310bde3f01cb805196ac61b7ad6dc5dcf8dce66634dc34364b20b4f/lazy_loader-0.4-py3-none-any.whl", hash = "sha256:342aa8e14d543a154047afb4ba8ef17f5563baad3fc610d7b15b213b0f119efc", size = 12097, upload-time = "2024-04-05T13:03:10.514Z" }, ] +[[package]] +name = "librosa" +version = "0.11.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "audioread", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "decorator", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "joblib", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "lazy-loader", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "msgpack", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "numba", version = "0.61.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "pooch", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "scikit-learn", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "scipy", version = "1.15.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "scipy", version = "1.16.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "soundfile", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "soxr", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "standard-aifc", marker = "python_full_version >= '3.13' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "standard-sunau", marker = "python_full_version >= '3.13' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "typing-extensions", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/64/36/360b5aafa0238e29758729e9486c6ed92a6f37fa403b7875e06c115cdf4a/librosa-0.11.0.tar.gz", hash = "sha256:f5ed951ca189b375bbe2e33b2abd7e040ceeee302b9bbaeeffdfddb8d0ace908", size = 327001, upload-time = "2025-03-11T15:09:54.884Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b5/ba/c63c5786dfee4c3417094c4b00966e61e4a63efecee22cb7b4c0387dda83/librosa-0.11.0-py3-none-any.whl", hash = "sha256:0b6415c4fd68bff4c29288abe67c6d80b587e0e1e2cfb0aad23e4559504a7fa1", size = 260749, upload-time = "2025-03-11T15:09:52.982Z" }, +] + +[[package]] +name = "llvmlite" +version = "0.43.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'", + "python_full_version < '3.10' and platform_machine == 'aarch64' and sys_platform == 'linux'", + "(python_full_version < '3.10' and platform_machine != 'arm64' and sys_platform == 'darwin') or (python_full_version < '3.10' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version < '3.10' and sys_platform != 'darwin' and sys_platform != 'linux')", +] +sdist = { url = "https://files.pythonhosted.org/packages/9f/3d/f513755f285db51ab363a53e898b85562e950f79a2e6767a364530c2f645/llvmlite-0.43.0.tar.gz", hash = "sha256:ae2b5b5c3ef67354824fb75517c8db5fbe93bc02cd9671f3c62271626bc041d5", size = 157069, upload-time = "2024-06-13T18:09:32.641Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/23/ff/6ca7e98998b573b4bd6566f15c35e5c8bea829663a6df0c7aa55ab559da9/llvmlite-0.43.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a289af9a1687c6cf463478f0fa8e8aa3b6fb813317b0d70bf1ed0759eab6f761", size = 31064408, upload-time = "2024-06-13T18:08:13.462Z" }, + { url = "https://files.pythonhosted.org/packages/ca/5c/a27f9257f86f0cda3f764ff21d9f4217b9f6a0d45e7a39ecfa7905f524ce/llvmlite-0.43.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6d4fd101f571a31acb1559ae1af30f30b1dc4b3186669f92ad780e17c81e91bc", size = 28793153, upload-time = "2024-06-13T18:08:17.336Z" }, + { url = "https://files.pythonhosted.org/packages/7e/3c/4410f670ad0a911227ea2ecfcba9f672a77cf1924df5280c4562032ec32d/llvmlite-0.43.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7d434ec7e2ce3cc8f452d1cd9a28591745de022f931d67be688a737320dfcead", size = 42857276, upload-time = "2024-06-13T18:08:21.071Z" }, + { url = "https://files.pythonhosted.org/packages/c6/21/2ffbab5714e72f2483207b4a1de79b2eecd9debbf666ff4e7067bcc5c134/llvmlite-0.43.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6912a87782acdff6eb8bf01675ed01d60ca1f2551f8176a300a886f09e836a6a", size = 43871781, upload-time = "2024-06-13T18:08:26.32Z" }, + { url = "https://files.pythonhosted.org/packages/f2/26/b5478037c453554a61625ef1125f7e12bb1429ae11c6376f47beba9b0179/llvmlite-0.43.0-cp310-cp310-win_amd64.whl", hash = "sha256:14f0e4bf2fd2d9a75a3534111e8ebeb08eda2f33e9bdd6dfa13282afacdde0ed", size = 28123487, upload-time = "2024-06-13T18:08:30.348Z" }, + { url = "https://files.pythonhosted.org/packages/95/8c/de3276d773ab6ce3ad676df5fab5aac19696b2956319d65d7dd88fb10f19/llvmlite-0.43.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3e8d0618cb9bfe40ac38a9633f2493d4d4e9fcc2f438d39a4e854f39cc0f5f98", size = 31064409, upload-time = "2024-06-13T18:08:34.006Z" }, + { url = "https://files.pythonhosted.org/packages/ee/e1/38deed89ced4cf378c61e232265cfe933ccde56ae83c901aa68b477d14b1/llvmlite-0.43.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e0a9a1a39d4bf3517f2af9d23d479b4175ead205c592ceeb8b89af48a327ea57", size = 28793149, upload-time = "2024-06-13T18:08:37.42Z" }, + { url = "https://files.pythonhosted.org/packages/2f/b2/4429433eb2dc8379e2cb582502dca074c23837f8fd009907f78a24de4c25/llvmlite-0.43.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c1da416ab53e4f7f3bc8d4eeba36d801cc1894b9fbfbf2022b29b6bad34a7df2", size = 42857277, upload-time = "2024-06-13T18:08:40.822Z" }, + { url = "https://files.pythonhosted.org/packages/6b/99/5d00a7d671b1ba1751fc9f19d3b36f3300774c6eebe2bcdb5f6191763eb4/llvmlite-0.43.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:977525a1e5f4059316b183fb4fd34fa858c9eade31f165427a3977c95e3ee749", size = 43871781, upload-time = "2024-06-13T18:08:46.41Z" }, + { url = "https://files.pythonhosted.org/packages/20/ab/ed5ed3688c6ba4f0b8d789da19fd8e30a9cf7fc5852effe311bc5aefe73e/llvmlite-0.43.0-cp311-cp311-win_amd64.whl", hash = "sha256:d5bd550001d26450bd90777736c69d68c487d17bf371438f975229b2b8241a91", size = 28107433, upload-time = "2024-06-13T18:08:50.834Z" }, + { url = "https://files.pythonhosted.org/packages/0b/67/9443509e5d2b6d8587bae3ede5598fa8bd586b1c7701696663ea8af15b5b/llvmlite-0.43.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f99b600aa7f65235a5a05d0b9a9f31150c390f31261f2a0ba678e26823ec38f7", size = 31064409, upload-time = "2024-06-13T18:08:54.375Z" }, + { url = "https://files.pythonhosted.org/packages/a2/9c/24139d3712d2d352e300c39c0e00d167472c08b3bd350c3c33d72c88ff8d/llvmlite-0.43.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:35d80d61d0cda2d767f72de99450766250560399edc309da16937b93d3b676e7", size = 28793145, upload-time = "2024-06-13T18:08:57.953Z" }, + { url = "https://files.pythonhosted.org/packages/bf/f1/4c205a48488e574ee9f6505d50e84370a978c90f08dab41a42d8f2c576b6/llvmlite-0.43.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eccce86bba940bae0d8d48ed925f21dbb813519169246e2ab292b5092aba121f", size = 42857276, upload-time = "2024-06-13T18:09:02.067Z" }, + { url = "https://files.pythonhosted.org/packages/00/5f/323c4d56e8401c50185fd0e875fcf06b71bf825a863699be1eb10aa2a9cb/llvmlite-0.43.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:df6509e1507ca0760787a199d19439cc887bfd82226f5af746d6977bd9f66844", size = 43871781, upload-time = "2024-06-13T18:09:06.667Z" }, + { url = "https://files.pythonhosted.org/packages/c6/94/dea10e263655ce78d777e78d904903faae39d1fc440762be4a9dc46bed49/llvmlite-0.43.0-cp312-cp312-win_amd64.whl", hash = "sha256:7a2872ee80dcf6b5dbdc838763d26554c2a18aa833d31a2635bff16aafefb9c9", size = 28107442, upload-time = "2024-06-13T18:09:10.709Z" }, + { url = "https://files.pythonhosted.org/packages/2a/73/12925b1bbb3c2beb6d96f892ef5b4d742c34f00ddb9f4a125e9e87b22f52/llvmlite-0.43.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9cd2a7376f7b3367019b664c21f0c61766219faa3b03731113ead75107f3b66c", size = 31064410, upload-time = "2024-06-13T18:09:14.091Z" }, + { url = "https://files.pythonhosted.org/packages/cc/61/58c70aa0808a8cba825a7d98cc65bef4801b99328fba80837bfcb5fc767f/llvmlite-0.43.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:18e9953c748b105668487b7c81a3e97b046d8abf95c4ddc0cd3c94f4e4651ae8", size = 28793145, upload-time = "2024-06-13T18:09:17.531Z" }, + { url = "https://files.pythonhosted.org/packages/c8/c6/9324eb5de2ba9d99cbed853d85ba7a318652a48e077797bec27cf40f911d/llvmlite-0.43.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:74937acd22dc11b33946b67dca7680e6d103d6e90eeaaaf932603bec6fe7b03a", size = 42857276, upload-time = "2024-06-13T18:09:21.377Z" }, + { url = "https://files.pythonhosted.org/packages/e0/d0/889e9705107db7b1ec0767b03f15d7b95b4c4f9fdf91928ab1c7e9ffacf6/llvmlite-0.43.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc9efc739cc6ed760f795806f67889923f7274276f0eb45092a1473e40d9b867", size = 43871777, upload-time = "2024-06-13T18:09:25.76Z" }, + { url = "https://files.pythonhosted.org/packages/df/41/73cc26a2634b538cfe813f618c91e7e9960b8c163f8f0c94a2b0f008b9da/llvmlite-0.43.0-cp39-cp39-win_amd64.whl", hash = "sha256:47e147cdda9037f94b399bf03bfd8a6b6b1f2f90be94a454e3386f006455a9b4", size = 28123489, upload-time = "2024-06-13T18:09:29.78Z" }, +] + +[[package]] +name = "llvmlite" +version = "0.44.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.13' and platform_machine == 'arm64' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and platform_machine == 'arm64' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and platform_machine == 'arm64' and sys_platform == 'darwin'", + "python_full_version == '3.10.*' and platform_machine == 'arm64' and sys_platform == 'darwin'", + "python_full_version >= '3.12' and platform_machine != 'arm64' and sys_platform == 'darwin'", + "python_full_version >= '3.12' and platform_machine == 'aarch64' and sys_platform == 'linux'", + "(python_full_version >= '3.12' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version >= '3.12' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version == '3.11.*' and platform_machine != 'arm64' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and platform_machine == 'aarch64' and sys_platform == 'linux'", + "(python_full_version == '3.11.*' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version == '3.11.*' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version == '3.10.*' and platform_machine != 'arm64' and sys_platform == 'darwin'", + "python_full_version == '3.10.*' and platform_machine == 'aarch64' and sys_platform == 'linux'", + "(python_full_version == '3.10.*' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version == '3.10.*' and sys_platform != 'darwin' and sys_platform != 'linux')", +] +sdist = { url = "https://files.pythonhosted.org/packages/89/6a/95a3d3610d5c75293d5dbbb2a76480d5d4eeba641557b69fe90af6c5b84e/llvmlite-0.44.0.tar.gz", hash = "sha256:07667d66a5d150abed9157ab6c0b9393c9356f229784a4385c02f99e94fc94d4", size = 171880, upload-time = "2025-01-20T11:14:41.342Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/41/75/d4863ddfd8ab5f6e70f4504cf8cc37f4e986ec6910f4ef8502bb7d3c1c71/llvmlite-0.44.0-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:9fbadbfba8422123bab5535b293da1cf72f9f478a65645ecd73e781f962ca614", size = 28132306, upload-time = "2025-01-20T11:12:18.634Z" }, + { url = "https://files.pythonhosted.org/packages/37/d9/6e8943e1515d2f1003e8278819ec03e4e653e2eeb71e4d00de6cfe59424e/llvmlite-0.44.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:cccf8eb28f24840f2689fb1a45f9c0f7e582dd24e088dcf96e424834af11f791", size = 26201096, upload-time = "2025-01-20T11:12:24.544Z" }, + { url = "https://files.pythonhosted.org/packages/aa/46/8ffbc114def88cc698906bf5acab54ca9fdf9214fe04aed0e71731fb3688/llvmlite-0.44.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7202b678cdf904823c764ee0fe2dfe38a76981f4c1e51715b4cb5abb6cf1d9e8", size = 42361859, upload-time = "2025-01-20T11:12:31.839Z" }, + { url = "https://files.pythonhosted.org/packages/30/1c/9366b29ab050a726af13ebaae8d0dff00c3c58562261c79c635ad4f5eb71/llvmlite-0.44.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:40526fb5e313d7b96bda4cbb2c85cd5374e04d80732dd36a282d72a560bb6408", size = 41184199, upload-time = "2025-01-20T11:12:40.049Z" }, + { url = "https://files.pythonhosted.org/packages/69/07/35e7c594b021ecb1938540f5bce543ddd8713cff97f71d81f021221edc1b/llvmlite-0.44.0-cp310-cp310-win_amd64.whl", hash = "sha256:41e3839150db4330e1b2716c0be3b5c4672525b4c9005e17c7597f835f351ce2", size = 30332381, upload-time = "2025-01-20T11:12:47.054Z" }, + { url = "https://files.pythonhosted.org/packages/b5/e2/86b245397052386595ad726f9742e5223d7aea999b18c518a50e96c3aca4/llvmlite-0.44.0-cp311-cp311-macosx_10_14_x86_64.whl", hash = "sha256:eed7d5f29136bda63b6d7804c279e2b72e08c952b7c5df61f45db408e0ee52f3", size = 28132305, upload-time = "2025-01-20T11:12:53.936Z" }, + { url = "https://files.pythonhosted.org/packages/ff/ec/506902dc6870249fbe2466d9cf66d531265d0f3a1157213c8f986250c033/llvmlite-0.44.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ace564d9fa44bb91eb6e6d8e7754977783c68e90a471ea7ce913bff30bd62427", size = 26201090, upload-time = "2025-01-20T11:12:59.847Z" }, + { url = "https://files.pythonhosted.org/packages/99/fe/d030f1849ebb1f394bb3f7adad5e729b634fb100515594aca25c354ffc62/llvmlite-0.44.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c5d22c3bfc842668168a786af4205ec8e3ad29fb1bc03fd11fd48460d0df64c1", size = 42361858, upload-time = "2025-01-20T11:13:07.623Z" }, + { url = "https://files.pythonhosted.org/packages/d7/7a/ce6174664b9077fc673d172e4c888cb0b128e707e306bc33fff8c2035f0d/llvmlite-0.44.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f01a394e9c9b7b1d4e63c327b096d10f6f0ed149ef53d38a09b3749dcf8c9610", size = 41184200, upload-time = "2025-01-20T11:13:20.058Z" }, + { url = "https://files.pythonhosted.org/packages/5f/c6/258801143975a6d09a373f2641237992496e15567b907a4d401839d671b8/llvmlite-0.44.0-cp311-cp311-win_amd64.whl", hash = "sha256:d8489634d43c20cd0ad71330dde1d5bc7b9966937a263ff1ec1cebb90dc50955", size = 30331193, upload-time = "2025-01-20T11:13:26.976Z" }, + { url = "https://files.pythonhosted.org/packages/15/86/e3c3195b92e6e492458f16d233e58a1a812aa2bfbef9bdd0fbafcec85c60/llvmlite-0.44.0-cp312-cp312-macosx_10_14_x86_64.whl", hash = "sha256:1d671a56acf725bf1b531d5ef76b86660a5ab8ef19bb6a46064a705c6ca80aad", size = 28132297, upload-time = "2025-01-20T11:13:32.57Z" }, + { url = "https://files.pythonhosted.org/packages/d6/53/373b6b8be67b9221d12b24125fd0ec56b1078b660eeae266ec388a6ac9a0/llvmlite-0.44.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5f79a728e0435493611c9f405168682bb75ffd1fbe6fc360733b850c80a026db", size = 26201105, upload-time = "2025-01-20T11:13:38.744Z" }, + { url = "https://files.pythonhosted.org/packages/cb/da/8341fd3056419441286c8e26bf436923021005ece0bff5f41906476ae514/llvmlite-0.44.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0143a5ef336da14deaa8ec26c5449ad5b6a2b564df82fcef4be040b9cacfea9", size = 42361901, upload-time = "2025-01-20T11:13:46.711Z" }, + { url = "https://files.pythonhosted.org/packages/53/ad/d79349dc07b8a395a99153d7ce8b01d6fcdc9f8231355a5df55ded649b61/llvmlite-0.44.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d752f89e31b66db6f8da06df8b39f9b91e78c5feea1bf9e8c1fba1d1c24c065d", size = 41184247, upload-time = "2025-01-20T11:13:56.159Z" }, + { url = "https://files.pythonhosted.org/packages/e2/3b/a9a17366af80127bd09decbe2a54d8974b6d8b274b39bf47fbaedeec6307/llvmlite-0.44.0-cp312-cp312-win_amd64.whl", hash = "sha256:eae7e2d4ca8f88f89d315b48c6b741dcb925d6a1042da694aa16ab3dd4cbd3a1", size = 30332380, upload-time = "2025-01-20T11:14:02.442Z" }, + { url = "https://files.pythonhosted.org/packages/89/24/4c0ca705a717514c2092b18476e7a12c74d34d875e05e4d742618ebbf449/llvmlite-0.44.0-cp313-cp313-macosx_10_14_x86_64.whl", hash = "sha256:319bddd44e5f71ae2689859b7203080716448a3cd1128fb144fe5c055219d516", size = 28132306, upload-time = "2025-01-20T11:14:09.035Z" }, + { url = "https://files.pythonhosted.org/packages/01/cf/1dd5a60ba6aee7122ab9243fd614abcf22f36b0437cbbe1ccf1e3391461c/llvmlite-0.44.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:9c58867118bad04a0bb22a2e0068c693719658105e40009ffe95c7000fcde88e", size = 26201090, upload-time = "2025-01-20T11:14:15.401Z" }, + { url = "https://files.pythonhosted.org/packages/d2/1b/656f5a357de7135a3777bd735cc7c9b8f23b4d37465505bd0eaf4be9befe/llvmlite-0.44.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:46224058b13c96af1365290bdfebe9a6264ae62fb79b2b55693deed11657a8bf", size = 42361904, upload-time = "2025-01-20T11:14:22.949Z" }, + { url = "https://files.pythonhosted.org/packages/d8/e1/12c5f20cb9168fb3464a34310411d5ad86e4163c8ff2d14a2b57e5cc6bac/llvmlite-0.44.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:aa0097052c32bf721a4efc03bd109d335dfa57d9bffb3d4c24cc680711b8b4fc", size = 41184245, upload-time = "2025-01-20T11:14:31.731Z" }, + { url = "https://files.pythonhosted.org/packages/d0/81/e66fc86539293282fd9cb7c9417438e897f369e79ffb62e1ae5e5154d4dd/llvmlite-0.44.0-cp313-cp313-win_amd64.whl", hash = "sha256:2fb7c4f2fb86cbae6dca3db9ab203eeea0e22d73b99bc2341cdf9de93612e930", size = 30331193, upload-time = "2025-01-20T11:14:38.578Z" }, +] + +[[package]] +name = "loguru" +version = "0.7.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/3a/05/a1dae3dffd1116099471c643b8924f5aa6524411dc6c63fdae648c4f1aca/loguru-0.7.3.tar.gz", hash = "sha256:19480589e77d47b8d85b2c827ad95d49bf31b0dcde16593892eb51dd18706eb6", size = 63559, upload-time = "2024-12-06T11:20:56.608Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0c/29/0348de65b8cc732daa3e33e67806420b2ae89bdce2b04af740289c5c6c8c/loguru-0.7.3-py3-none-any.whl", hash = "sha256:31a33c10c8e1e10422bfd431aeb5d351c7cf7fa671e3c4df004162264b28220c", size = 61595, upload-time = "2024-12-06T11:20:54.538Z" }, +] + [[package]] name = "lxml" version = "5.4.0" @@ -2234,6 +2706,27 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/a1/25/d381abcfd00102d3304aa191caab62f6e3bcbac93ee248771db6be153dfd/lxml-5.4.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:63e7968ff83da2eb6fdda967483a7a023aa497d85ad8f05c3ad9b1f2e8c84987", size = 3486416, upload-time = "2025-04-23T01:50:26.388Z" }, ] +[[package]] +name = "marisa-trie" +version = "1.2.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "setuptools", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/31/15/9d9743897e4450b2de199ee673b50cb018980c4ced477d41cf91304a85e3/marisa_trie-1.2.1.tar.gz", hash = "sha256:3a27c408e2aefc03e0f1d25b2ff2afb85aac3568f6fa2ae2a53b57a2e87ce29d", size = 416124, upload-time = "2024-10-12T11:30:15.989Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e4/83/ccf5b33f2123f3110705c608f8e0caa82002626511aafafc58f82e50d322/marisa_trie-1.2.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a2eb41d2f9114d8b7bd66772c237111e00d2bae2260824560eaa0a1e291ce9e8", size = 362200, upload-time = "2024-10-12T11:28:25.418Z" }, + { url = "https://files.pythonhosted.org/packages/e4/52/5dbbc13e57ce54c2ef0d04962d7d8f66edc69ed34310c734a2913199a581/marisa_trie-1.2.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:bd45142501300e7538b2e544905580918b67b1c82abed1275fe4c682c95635fa", size = 174713, upload-time = "2024-10-12T11:28:28.912Z" }, + { url = "https://files.pythonhosted.org/packages/4a/93/ffb01dfa22b6eee918e798e0bc3487427036c608aa4c065725f31aaf4104/marisa_trie-1.2.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ed3fb4ed7f2084597e862bcd56c56c5529e773729a426c083238682dba540e98", size = 362823, upload-time = "2024-10-12T11:28:43.983Z" }, + { url = "https://files.pythonhosted.org/packages/e8/04/87dd0840f3f720e511eba56193c02bf64d7d96df1ca9f6d19994f55154be/marisa_trie-1.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4728ed3ae372d1ea2cdbd5eaa27b8f20a10e415d1f9d153314831e67d963f281", size = 174995, upload-time = "2024-10-12T11:28:46.544Z" }, + { url = "https://files.pythonhosted.org/packages/4e/bf/8bd4ac8436b33fd46c9e1ffe3c2a131cd9744cc1649dbbe13308f744ef2b/marisa_trie-1.2.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:638506eacf20ca503fff72221a7e66a6eadbf28d6a4a6f949fcf5b1701bb05ec", size = 360041, upload-time = "2024-10-12T11:28:59.436Z" }, + { url = "https://files.pythonhosted.org/packages/00/28/ae5991c74fb90b173167a366a634c83445f948ad044d37287b478d6b457e/marisa_trie-1.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f713af9b8aa66a34cd3a78c7d150a560a75734713abe818a69021fd269e927fa", size = 174175, upload-time = "2024-10-12T11:29:02.516Z" }, + { url = "https://files.pythonhosted.org/packages/2a/a4/a110cd9952f0e72da7bafea1f0084b18b9e03952110d9083bfda52279f5c/marisa_trie-1.2.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:b5ea16e69bfda0ac028c921b58de1a4aaf83d43934892977368579cd3c0a2554", size = 354439, upload-time = "2024-10-12T11:29:16.831Z" }, + { url = "https://files.pythonhosted.org/packages/7c/cc/f637127e2beffa920d21f7fc45b4029575bcd1b28a90c0d90cb2b08c2205/marisa_trie-1.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5e649f3dc8ab5476732094f2828cc90cac3be7c79bc0c8318b6fda0c1d248db4", size = 171484, upload-time = "2024-10-12T11:29:19.596Z" }, + { url = "https://files.pythonhosted.org/packages/13/f5/00a62364e970c6ebdfbc24b3ded362b27b57ba8bc67109b828f64156f8e9/marisa_trie-1.2.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c0fe2ace0cb1806badbd1c551a8ec2f8d4cf97bf044313c082ef1acfe631ddca", size = 363043, upload-time = "2024-10-12T11:30:00.369Z" }, + { url = "https://files.pythonhosted.org/packages/0d/3d/1981088acb417aa22d08ccff6bc8a2040f5dcd72b316004cf03857158996/marisa_trie-1.2.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a3c98613180cf1730e221933ff74b454008161b1a82597e41054127719964188", size = 175138, upload-time = "2024-10-12T11:30:02.781Z" }, +] + [[package]] name = "markdown" version = "3.8.2" @@ -2379,16 +2872,38 @@ wheels = [ [[package]] name = "milvus-lite" -version = "2.4.12" +version = "2.5.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "tqdm" }, ] wheels = [ - { url = "https://files.pythonhosted.org/packages/64/3a/110e46db650ced604f97307e48e353726cfa6d26b1bf72acb81bbf07ecbd/milvus_lite-2.4.12-py3-none-macosx_10_9_x86_64.whl", hash = "sha256:e8d4f7cdd5f731efd6faeee3715d280fd91a5f9b4d89312664d56401f65b1473", size = 19843871, upload-time = "2025-03-21T06:20:26.141Z" }, - { url = "https://files.pythonhosted.org/packages/a5/a7/11c21f2d6f3299ad07af8142b007e4297ff12d4bdc53e1e1ba48f661954b/milvus_lite-2.4.12-py3-none-macosx_11_0_arm64.whl", hash = "sha256:20087663e7b4385050b7ad08f1f03404426d4c87b1ff91d5a8723eee7fd49e88", size = 17411635, upload-time = "2025-03-21T06:20:43.548Z" }, - { url = "https://files.pythonhosted.org/packages/a8/cc/b6f465e984439adf24da0a8ff3035d5c9ece30b6ff19f9a53f73f9ef901a/milvus_lite-2.4.12-py3-none-manylinux2014_aarch64.whl", hash = "sha256:a0f3a5ddbfd19f4a6b842b2fd3445693c796cde272b701a1646a94c1ac45d3d7", size = 35693118, upload-time = "2025-03-21T06:21:14.921Z" }, - { url = "https://files.pythonhosted.org/packages/44/43/b3f6e9defd1f3927b972beac7abe3d5b4a3bdb287e3bad69618e2e76cf0a/milvus_lite-2.4.12-py3-none-manylinux2014_x86_64.whl", hash = "sha256:334037ebbab60243b5d8b43d54ca2f835d81d48c3cda0c6a462605e588deb05d", size = 45182549, upload-time = "2025-03-21T06:21:45.425Z" }, + { url = "https://files.pythonhosted.org/packages/a9/b2/acc5024c8e8b6a0b034670b8e8af306ebd633ede777dcbf557eac4785937/milvus_lite-2.5.1-py3-none-macosx_10_9_x86_64.whl", hash = "sha256:6b014453200ba977be37ba660cb2d021030375fa6a35bc53c2e1d92980a0c512", size = 27934713, upload-time = "2025-06-30T04:23:37.028Z" }, + { url = "https://files.pythonhosted.org/packages/9b/2e/746f5bb1d6facd1e73eb4af6dd5efda11125b0f29d7908a097485ca6cad9/milvus_lite-2.5.1-py3-none-macosx_11_0_arm64.whl", hash = "sha256:a2e031088bf308afe5f8567850412d618cfb05a65238ed1a6117f60decccc95a", size = 24421451, upload-time = "2025-06-30T04:23:51.747Z" }, + { url = "https://files.pythonhosted.org/packages/2e/cf/3d1fee5c16c7661cf53977067a34820f7269ed8ba99fe9cf35efc1700866/milvus_lite-2.5.1-py3-none-manylinux2014_aarch64.whl", hash = "sha256:a13277e9bacc6933dea172e42231f7e6135bd3bdb073dd2688ee180418abd8d9", size = 45337093, upload-time = "2025-06-30T04:24:06.706Z" }, + { url = "https://files.pythonhosted.org/packages/d3/82/41d9b80f09b82e066894d9b508af07b7b0fa325ce0322980674de49106a0/milvus_lite-2.5.1-py3-none-manylinux2014_x86_64.whl", hash = "sha256:25ce13f4b8d46876dd2b7ac8563d7d8306da7ff3999bb0d14b116b30f71d706c", size = 55263911, upload-time = "2025-06-30T04:24:19.434Z" }, +] + +[[package]] +name = "misaki" +version = "0.9.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "addict", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "regex", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/1a/c7/fb01370a76585b46595a01b52f18e65c8ba6d7a313a05e5d9fff0a8e1c69/misaki-0.9.4.tar.gz", hash = "sha256:3960fa3e6de179a90ee8e628446a4a4f6b8c730b6e3410999cf396189f4d9c40", size = 3756765, upload-time = "2025-04-05T21:57:14.186Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/82/ec/0ee4110ddb54278b8f21c40a140370ae8f687036c4edf578316602697c56/misaki-0.9.4-py3-none-any.whl", hash = "sha256:90e2eeb169786c014c429e5058d2ea6bcd02d651f2a24450ba6c9ffc0f8da15a", size = 3617774, upload-time = "2025-04-05T21:57:10.678Z" }, +] + +[package.optional-dependencies] +en = [ + { name = "espeakng-loader", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "num2words", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "phonemizer-fork", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "spacy", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "spacy-curated-transformers", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, ] [[package]] @@ -2580,6 +3095,42 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/a0/1f/0904c8a9a64dcafd7be768907a91ef6a3ee3f336e489999fec7611ff95c5/mlx-0.26.1-cp39-cp39-macosx_15_0_arm64.whl", hash = "sha256:51c2edffc69b6479aa29222dc623e15f7f56f6b67688902bf34cbdce520c06b1", size = 31871197, upload-time = "2025-06-04T01:03:15.628Z" }, ] +[[package]] +name = "mlx-audio" +version = "0.2.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "dacite", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "einops", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "einx", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "espeakng-loader", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "fastapi", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "fastrtc", extra = ["stt", "vad"], marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "huggingface-hub", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "loguru", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "misaki", extra = ["en"], marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "mlx", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "mlx-vlm", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "num2words", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "omegaconf", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "phonemizer-fork", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "pyloudnorm", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "sentencepiece", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "sounddevice", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "soundfile", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "spacy", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "tiktoken", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "tqdm", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "transformers", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "uvicorn", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "webrtcvad", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/98/89/65a0cf792228b7f0c69abc9950db6bb490cd394076ab4e6c87fcb00eaff2/mlx_audio-0.2.3.tar.gz", hash = "sha256:48419a3d4a848cb44e91694ad5218af98b08f749d5d33abed834aec6c3c15dc7", size = 961262, upload-time = "2025-05-24T15:24:19.439Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/30/f3/96928ddfb8602d3f0a9d653d5065a3751e55806ddfff2c6fdfbd650687e2/mlx_audio-0.2.3-py3-none-any.whl", hash = "sha256:c7d70e6da649356d8cd835566dfbefc5dcee852c2ff7ac88aa04b9fc4d31f15d", size = 1008154, upload-time = "2025-05-24T15:24:17.707Z" }, +] + [[package]] name = "mlx-lm" version = "0.25.2" @@ -2587,8 +3138,7 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "jinja2", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, { name = "mlx", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, - { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, - { name = "numpy", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, { name = "protobuf", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, { name = "pyyaml", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, { name = "transformers", extra = ["sentencepiece"], marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, @@ -2600,25 +3150,28 @@ wheels = [ [[package]] name = "mlx-vlm" -version = "0.1.27" +version = "0.2.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "datasets", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, { name = "fastapi", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, { name = "gradio", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, { name = "mlx", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "mlx-audio", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, { name = "mlx-lm", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, - { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, - { name = "numpy", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, { name = "opencv-python", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, { name = "pillow", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, { name = "requests", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "scipy", version = "1.15.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "scipy", version = "1.16.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "soundfile", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, { name = "tqdm", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, { name = "transformers", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/b8/c3/01b4a091fc124b63168aabe7ac102ab9a7a6f96bf016aa0ca128c035949c/mlx_vlm-0.1.27.tar.gz", hash = "sha256:895b62f8022db12b43acd1d7935eae498caa8d7493f99f27c15d78f260d8879a", size = 198691, upload-time = "2025-06-08T17:33:11.872Z" } +sdist = { url = "https://files.pythonhosted.org/packages/c2/83/9ec8ad8d75ba360be76e134e4e10b3a6c64dabe59a28947356ec6f9b215f/mlx_vlm-0.2.0.tar.gz", hash = "sha256:63c16bb56ec10325958f0e37971ce52f377bf389c30799a6d9b868ea6f228e84", size = 229448, upload-time = "2025-06-26T18:38:38.362Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/82/43/8cd7236fb21c1897a5794ba63a3c1cdf916961ec718c22d15a1e23bb3a22/mlx_vlm-0.1.27-py3-none-any.whl", hash = "sha256:4261d8602388f60a0d3450f7c95eb73e75841635918b399367c99b4f62df5ff7", size = 254760, upload-time = "2025-06-08T17:33:10.333Z" }, + { url = "https://files.pythonhosted.org/packages/78/dd/169c0ae1a8aed23e0eb2e09e256cbe16dacff461e88bb5a719d7d09ec09f/mlx_vlm-0.2.0-py3-none-any.whl", hash = "sha256:ac6e2ebf9dfeec5dbc6906355ff728876cbb8396c250ea6ae5af81cb3109eece", size = 288050, upload-time = "2025-06-26T18:38:37.031Z" }, ] [[package]] @@ -2658,124 +3211,137 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/43/e3/7d92a15f894aa0c9c4b49b8ee9ac9850d6e63b03c9c32c0367a13ae62209/mpmath-1.3.0-py3-none-any.whl", hash = "sha256:a0b2b9fe80bbcd81a6647ff13108738cfb482d481d826cc0e02f5b35e5c88d2c", size = 536198, upload-time = "2023-03-07T16:47:09.197Z" }, ] +[[package]] +name = "msgpack" +version = "1.1.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/45/b1/ea4f68038a18c77c9467400d166d74c4ffa536f34761f7983a104357e614/msgpack-1.1.1.tar.gz", hash = "sha256:77b79ce34a2bdab2594f490c8e80dd62a02d650b91a75159a63ec413b8d104cd", size = 173555, upload-time = "2025-06-13T06:52:51.324Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e4/35/7bfc0def2f04ab4145f7f108e3563f9b4abae4ab0ed78a61f350518cc4d2/msgpack-1.1.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:79c408fcf76a958491b4e3b103d1c417044544b68e96d06432a189b43d1215c8", size = 78278, upload-time = "2025-06-13T06:51:38.534Z" }, + { url = "https://files.pythonhosted.org/packages/aa/7f/2eaa388267a78401f6e182662b08a588ef4f3de6f0eab1ec09736a7aaa2b/msgpack-1.1.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:36043272c6aede309d29d56851f8841ba907a1a3d04435e43e8a19928e243c1d", size = 79279, upload-time = "2025-06-13T06:51:51.72Z" }, + { url = "https://files.pythonhosted.org/packages/ab/65/7d1de38c8a22cf8b1551469159d4b6cf49be2126adc2482de50976084d78/msgpack-1.1.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:33be9ab121df9b6b461ff91baac6f2731f83d9b27ed948c5b9d1978ae28bf157", size = 79172, upload-time = "2025-06-13T06:52:05.246Z" }, + { url = "https://files.pythonhosted.org/packages/09/48/54a89579ea36b6ae0ee001cba8c61f776451fad3c9306cd80f5b5c55be87/msgpack-1.1.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:8ddb2bcfd1a8b9e431c8d6f4f7db0773084e107730ecf3472f1dfe9ad583f3d9", size = 78603, upload-time = "2025-06-13T06:52:17.843Z" }, + { url = "https://files.pythonhosted.org/packages/75/77/ce06c8e26a816ae8730a8e030d263c5289adcaff9f0476f9b270bdd7c5c2/msgpack-1.1.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3a89cd8c087ea67e64844287ea52888239cbd2940884eafd2dcd25754fb72232", size = 78414, upload-time = "2025-06-13T06:52:40.341Z" }, +] + [[package]] name = "multidict" -version = "6.5.0" +version = "6.6.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "typing-extensions", marker = "python_full_version < '3.11'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/46/b5/59f27b4ce9951a4bce56b88ba5ff5159486797ab18863f2b4c1c5e8465bd/multidict-6.5.0.tar.gz", hash = "sha256:942bd8002492ba819426a8d7aefde3189c1b87099cdf18aaaefefcf7f3f7b6d2", size = 98512, upload-time = "2025-06-17T14:15:56.556Z" } +sdist = { url = "https://files.pythonhosted.org/packages/03/5d/d72502cd6dd64b0c5a5117b1701f05c38e94ffb4a1b4ab65ff0cd9b974e8/multidict-6.6.2.tar.gz", hash = "sha256:c1e8b8b0523c0361a78ce9b99d9850c51cf25e1fa3c5686030ce75df6fdf2918", size = 100939, upload-time = "2025-06-28T14:38:20.828Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/8b/88/f8354ef1cb1121234c3461ff3d11eac5f4fe115f00552d3376306275c9ab/multidict-6.5.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:2e118a202904623b1d2606d1c8614e14c9444b59d64454b0c355044058066469", size = 73858, upload-time = "2025-06-17T14:13:21.451Z" }, - { url = "https://files.pythonhosted.org/packages/49/04/634b49c7abe71bd1c61affaeaa0c2a46b6be8d599a07b495259615dbdfe0/multidict-6.5.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a42995bdcaff4e22cb1280ae7752c3ed3fbb398090c6991a2797a4a0e5ed16a9", size = 43186, upload-time = "2025-06-17T14:13:23.615Z" }, - { url = "https://files.pythonhosted.org/packages/3b/ff/091ff4830ec8f96378578bfffa7f324a9dd16f60274cec861ae65ba10be3/multidict-6.5.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2261b538145723ca776e55208640fffd7ee78184d223f37c2b40b9edfe0e818a", size = 43031, upload-time = "2025-06-17T14:13:24.725Z" }, - { url = "https://files.pythonhosted.org/packages/10/c1/1b4137845f8b8dbc2332af54e2d7761c6a29c2c33c8d47a0c8c70676bac1/multidict-6.5.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0e5b19f8cd67235fab3e195ca389490415d9fef5a315b1fa6f332925dc924262", size = 233588, upload-time = "2025-06-17T14:13:26.181Z" }, - { url = "https://files.pythonhosted.org/packages/c3/77/cbe9a1f58c6d4f822663788e414637f256a872bc352cedbaf7717b62db58/multidict-6.5.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:177b081e4dec67c3320b16b3aa0babc178bbf758553085669382c7ec711e1ec8", size = 222714, upload-time = "2025-06-17T14:13:27.482Z" }, - { url = "https://files.pythonhosted.org/packages/6c/37/39e1142c2916973818515adc13bbdb68d3d8126935e3855200e059a79bab/multidict-6.5.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4d30a2cc106a7d116b52ee046207614db42380b62e6b1dd2a50eba47c5ca5eb1", size = 242741, upload-time = "2025-06-17T14:13:28.92Z" }, - { url = "https://files.pythonhosted.org/packages/a3/aa/60c3ef0c87ccad3445bf01926a1b8235ee24c3dde483faef1079cc91706d/multidict-6.5.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a72933bc308d7a64de37f0d51795dbeaceebdfb75454f89035cdfc6a74cfd129", size = 235008, upload-time = "2025-06-17T14:13:30.587Z" }, - { url = "https://files.pythonhosted.org/packages/bf/5e/f7e0fd5f5b8a7b9a75b0f5642ca6b6dde90116266920d8cf63b513f3908b/multidict-6.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:96d109e663d032280ef8ef62b50924b2e887d5ddf19e301844a6cb7e91a172a6", size = 226627, upload-time = "2025-06-17T14:13:31.831Z" }, - { url = "https://files.pythonhosted.org/packages/b7/74/1bc0a3c6a9105051f68a6991fe235d7358836e81058728c24d5bbdd017cb/multidict-6.5.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b555329c9894332401f03b9a87016f0b707b6fccd4706793ec43b4a639e75869", size = 228232, upload-time = "2025-06-17T14:13:33.402Z" }, - { url = "https://files.pythonhosted.org/packages/99/e7/37118291cdc31f4cc680d54047cdea9b520e9a724a643919f71f8c2a2aeb/multidict-6.5.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:6994bad9d471ef2156f2b6850b51e20ee409c6b9deebc0e57be096be9faffdce", size = 246616, upload-time = "2025-06-17T14:13:34.964Z" }, - { url = "https://files.pythonhosted.org/packages/ff/89/e2c08d6bdb21a1a55be4285510d058ace5f5acabe6b57900432e863d4c70/multidict-6.5.0-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:b15f817276c96cde9060569023808eec966bd8da56a97e6aa8116f34ddab6534", size = 235007, upload-time = "2025-06-17T14:13:36.428Z" }, - { url = "https://files.pythonhosted.org/packages/89/1e/e39a98e8e1477ec7a871b3c17265658fbe6d617048059ae7fa5011b224f3/multidict-6.5.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:b4bf507c991db535a935b2127cf057a58dbc688c9f309c72080795c63e796f58", size = 244824, upload-time = "2025-06-17T14:13:37.982Z" }, - { url = "https://files.pythonhosted.org/packages/a3/ba/63e11edd45c31e708c5a1904aa7ac4de01e13135a04cfe96bc71eb359b85/multidict-6.5.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:60c3f8f13d443426c55f88cf3172547bbc600a86d57fd565458b9259239a6737", size = 257229, upload-time = "2025-06-17T14:13:39.554Z" }, - { url = "https://files.pythonhosted.org/packages/0f/00/bdcceb6af424936adfc8b92a79d3a95863585f380071393934f10a63f9e3/multidict-6.5.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:a10227168a24420c158747fc201d4279aa9af1671f287371597e2b4f2ff21879", size = 247118, upload-time = "2025-06-17T14:13:40.795Z" }, - { url = "https://files.pythonhosted.org/packages/b6/a0/4aa79e991909cca36ca821a9ba5e8e81e4cd5b887c81f89ded994e0f49df/multidict-6.5.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:e3b1425fe54ccfde66b8cfb25d02be34d5dfd2261a71561ffd887ef4088b4b69", size = 243948, upload-time = "2025-06-17T14:13:42.477Z" }, - { url = "https://files.pythonhosted.org/packages/21/8b/e45e19ce43afb31ff6b0fd5d5816b4fcc1fcc2f37e8a82aefae06c40c7a6/multidict-6.5.0-cp310-cp310-win32.whl", hash = "sha256:b4e47ef51237841d1087e1e1548071a6ef22e27ed0400c272174fa585277c4b4", size = 40433, upload-time = "2025-06-17T14:13:43.972Z" }, - { url = "https://files.pythonhosted.org/packages/d2/6e/96e0ba4601343d9344e69503fca072ace19c35f7d4ca3d68401e59acdc8f/multidict-6.5.0-cp310-cp310-win_amd64.whl", hash = "sha256:63b3b24fadc7067282c88fae5b2f366d5b3a7c15c021c2838de8c65a50eeefb4", size = 44423, upload-time = "2025-06-17T14:13:44.991Z" }, - { url = "https://files.pythonhosted.org/packages/eb/4a/9befa919d7a390f13a5511a69282b7437782071160c566de6e0ebf712c9f/multidict-6.5.0-cp310-cp310-win_arm64.whl", hash = "sha256:8b2d61afbafc679b7eaf08e9de4fa5d38bd5dc7a9c0a577c9f9588fb49f02dbb", size = 41481, upload-time = "2025-06-17T14:13:49.389Z" }, - { url = "https://files.pythonhosted.org/packages/75/ba/484f8e96ee58ec4fef42650eb9dbbedb24f9bc155780888398a4725d2270/multidict-6.5.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8b4bf6bb15a05796a07a248084e3e46e032860c899c7a9b981030e61368dba95", size = 73283, upload-time = "2025-06-17T14:13:50.406Z" }, - { url = "https://files.pythonhosted.org/packages/71/48/01d62ea6199d76934c87746695b3ed16aeedfdd564e8d89184577037baac/multidict-6.5.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:46bb05d50219655c42a4b8fcda9c7ee658a09adbb719c48e65a20284e36328ea", size = 42937, upload-time = "2025-06-17T14:13:51.45Z" }, - { url = "https://files.pythonhosted.org/packages/da/cf/bb462d920f26d9e2e0aff8a78aeb06af1225b826e9a5468870c57591910a/multidict-6.5.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:54f524d73f4d54e87e03c98f6af601af4777e4668a52b1bd2ae0a4d6fc7b392b", size = 42748, upload-time = "2025-06-17T14:13:52.505Z" }, - { url = "https://files.pythonhosted.org/packages/cd/b1/d5c11ea0fdad68d3ed45f0e2527de6496d2fac8afe6b8ca6d407c20ad00f/multidict-6.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:529b03600466480ecc502000d62e54f185a884ed4570dee90d9a273ee80e37b5", size = 236448, upload-time = "2025-06-17T14:13:53.562Z" }, - { url = "https://files.pythonhosted.org/packages/fc/69/c3ceb264994f5b338c812911a8d660084f37779daef298fc30bd817f75c7/multidict-6.5.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:69ad681ad7c93a41ee7005cc83a144b5b34a3838bcf7261e2b5356057b0f78de", size = 228695, upload-time = "2025-06-17T14:13:54.775Z" }, - { url = "https://files.pythonhosted.org/packages/81/3d/c23dcc0d34a35ad29974184db2878021d28fe170ecb9192be6bfee73f1f2/multidict-6.5.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3fe9fada8bc0839466b09fa3f6894f003137942984843ec0c3848846329a36ae", size = 247434, upload-time = "2025-06-17T14:13:56.039Z" }, - { url = "https://files.pythonhosted.org/packages/06/b3/06cf7a049129ff52525a859277abb5648e61d7afae7fb7ed02e3806be34e/multidict-6.5.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f94c6ea6405fcf81baef1e459b209a78cda5442e61b5b7a57ede39d99b5204a0", size = 239431, upload-time = "2025-06-17T14:13:57.33Z" }, - { url = "https://files.pythonhosted.org/packages/8a/72/b2fe2fafa23af0c6123aebe23b4cd23fdad01dfe7009bb85624e4636d0dd/multidict-6.5.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:84ca75ad8a39ed75f079a8931435a5b51ee4c45d9b32e1740f99969a5d1cc2ee", size = 231542, upload-time = "2025-06-17T14:13:58.597Z" }, - { url = "https://files.pythonhosted.org/packages/a1/c9/a52ca0a342a02411a31b6af197a6428a5137d805293f10946eeab614ec06/multidict-6.5.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:be4c08f3a2a6cc42b414496017928d95898964fed84b1b2dace0c9ee763061f9", size = 233069, upload-time = "2025-06-17T14:13:59.834Z" }, - { url = "https://files.pythonhosted.org/packages/9b/55/a3328a3929b8e131e2678d5e65f552b0a6874fab62123e31f5a5625650b0/multidict-6.5.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:046a7540cfbb4d5dc846a1fd9843f3ba980c6523f2e0c5b8622b4a5c94138ae6", size = 250596, upload-time = "2025-06-17T14:14:01.178Z" }, - { url = "https://files.pythonhosted.org/packages/6c/b8/aa3905a38a8287013aeb0a54c73f79ccd8b32d2f1d53e5934643a36502c2/multidict-6.5.0-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:64306121171d988af77d74be0d8c73ee1a69cf6f96aea7fa6030c88f32a152dd", size = 237858, upload-time = "2025-06-17T14:14:03.232Z" }, - { url = "https://files.pythonhosted.org/packages/d3/eb/f11d5af028014f402e5dd01ece74533964fa4e7bfae4af4824506fa8c398/multidict-6.5.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:b4ac1dd5eb0ecf6f7351d5a9137f30a83f7182209c5d37f61614dfdce5714853", size = 249175, upload-time = "2025-06-17T14:14:04.561Z" }, - { url = "https://files.pythonhosted.org/packages/ac/57/d451905a62e5ef489cb4f92e8190d34ac5329427512afd7f893121da4e96/multidict-6.5.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:bab4a8337235365f4111a7011a1f028826ca683834ebd12de4b85e2844359c36", size = 259532, upload-time = "2025-06-17T14:14:05.798Z" }, - { url = "https://files.pythonhosted.org/packages/d3/90/ff82b5ac5cabe3c79c50cf62a62f3837905aa717e67b6b4b7872804f23c8/multidict-6.5.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:a05b5604c5a75df14a63eeeca598d11b2c3745b9008539b70826ea044063a572", size = 250554, upload-time = "2025-06-17T14:14:07.382Z" }, - { url = "https://files.pythonhosted.org/packages/d5/5a/0cabc50d4bc16e61d8b0a8a74499a1409fa7b4ef32970b7662a423781fc7/multidict-6.5.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:67c4a640952371c9ca65b6a710598be246ef3be5ca83ed38c16a7660d3980877", size = 248159, upload-time = "2025-06-17T14:14:08.65Z" }, - { url = "https://files.pythonhosted.org/packages/c0/1d/adeabae0771544f140d9f42ab2c46eaf54e793325999c36106078b7f6600/multidict-6.5.0-cp311-cp311-win32.whl", hash = "sha256:fdeae096ca36c12d8aca2640b8407a9d94e961372c68435bef14e31cce726138", size = 40357, upload-time = "2025-06-17T14:14:09.91Z" }, - { url = "https://files.pythonhosted.org/packages/e1/fe/bbd85ae65c96de5c9910c332ee1f4b7be0bf0fb21563895167bcb6502a1f/multidict-6.5.0-cp311-cp311-win_amd64.whl", hash = "sha256:e2977ef8b7ce27723ee8c610d1bd1765da4f3fbe5a64f9bf1fd3b4770e31fbc0", size = 44432, upload-time = "2025-06-17T14:14:11.013Z" }, - { url = "https://files.pythonhosted.org/packages/96/af/f9052d9c4e65195b210da9f7afdea06d3b7592b3221cc0ef1b407f762faa/multidict-6.5.0-cp311-cp311-win_arm64.whl", hash = "sha256:82d0cf0ea49bae43d9e8c3851e21954eff716259ff42da401b668744d1760bcb", size = 41408, upload-time = "2025-06-17T14:14:12.112Z" }, - { url = "https://files.pythonhosted.org/packages/0a/fa/18f4950e00924f7e84c8195f4fc303295e14df23f713d64e778b8fa8b903/multidict-6.5.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:1bb986c8ea9d49947bc325c51eced1ada6d8d9b4c5b15fd3fcdc3c93edef5a74", size = 73474, upload-time = "2025-06-17T14:14:13.528Z" }, - { url = "https://files.pythonhosted.org/packages/6c/66/0392a2a8948bccff57e4793c9dde3e5c088f01e8b7f8867ee58a2f187fc5/multidict-6.5.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:03c0923da300120830fc467e23805d63bbb4e98b94032bd863bc7797ea5fa653", size = 43741, upload-time = "2025-06-17T14:14:15.188Z" }, - { url = "https://files.pythonhosted.org/packages/98/3e/f48487c91b2a070566cfbab876d7e1ebe7deb0a8002e4e896a97998ae066/multidict-6.5.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4c78d5ec00fdd35c91680ab5cf58368faad4bd1a8721f87127326270248de9bc", size = 42143, upload-time = "2025-06-17T14:14:16.612Z" }, - { url = "https://files.pythonhosted.org/packages/3f/49/439c6cc1cd00365cf561bdd3579cc3fa1a0d38effb3a59b8d9562839197f/multidict-6.5.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aadc3cb78be90a887f8f6b73945b840da44b4a483d1c9750459ae69687940c97", size = 239303, upload-time = "2025-06-17T14:14:17.707Z" }, - { url = "https://files.pythonhosted.org/packages/c4/24/491786269e90081cb536e4d7429508725bc92ece176d1204a4449de7c41c/multidict-6.5.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:5b02e1ca495d71e07e652e4cef91adae3bf7ae4493507a263f56e617de65dafc", size = 236913, upload-time = "2025-06-17T14:14:18.981Z" }, - { url = "https://files.pythonhosted.org/packages/e8/76/bbe2558b820ebeca8a317ab034541790e8160ca4b1e450415383ac69b339/multidict-6.5.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7fe92a62326eef351668eec4e2dfc494927764a0840a1895cff16707fceffcd3", size = 250752, upload-time = "2025-06-17T14:14:20.297Z" }, - { url = "https://files.pythonhosted.org/packages/3e/e3/3977f2c1123f553ceff9f53cd4de04be2c1912333c6fabbcd51531655476/multidict-6.5.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7673ee4f63879ecd526488deb1989041abcb101b2d30a9165e1e90c489f3f7fb", size = 243937, upload-time = "2025-06-17T14:14:21.935Z" }, - { url = "https://files.pythonhosted.org/packages/b6/b8/7a6e9c13c79709cdd2f22ee849f058e6da76892d141a67acc0e6c30d845c/multidict-6.5.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa097ae2a29f573de7e2d86620cbdda5676d27772d4ed2669cfa9961a0d73955", size = 237419, upload-time = "2025-06-17T14:14:23.215Z" }, - { url = "https://files.pythonhosted.org/packages/84/9d/8557f5e88da71bc7e7a8ace1ada4c28197f3bfdc2dd6e51d3b88f2e16e8e/multidict-6.5.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:300da0fa4f8457d9c4bd579695496116563409e676ac79b5e4dca18e49d1c308", size = 237222, upload-time = "2025-06-17T14:14:24.516Z" }, - { url = "https://files.pythonhosted.org/packages/a3/3b/8f023ad60e7969cb6bc0683738d0e1618f5ff5723d6d2d7818dc6df6ad3d/multidict-6.5.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:9a19bd108c35877b57393243d392d024cfbfdefe759fd137abb98f6fc910b64c", size = 247861, upload-time = "2025-06-17T14:14:25.839Z" }, - { url = "https://files.pythonhosted.org/packages/af/1c/9cf5a099ce7e3189906cf5daa72c44ee962dcb4c1983659f3a6f8a7446ab/multidict-6.5.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:0f32a1777465a35c35ddbbd7fc1293077938a69402fcc59e40b2846d04a120dd", size = 243917, upload-time = "2025-06-17T14:14:27.164Z" }, - { url = "https://files.pythonhosted.org/packages/6c/bb/88ee66ebeef56868044bac58feb1cc25658bff27b20e3cfc464edc181287/multidict-6.5.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:9cc1e10c14ce8112d1e6d8971fe3cdbe13e314f68bea0e727429249d4a6ce164", size = 249214, upload-time = "2025-06-17T14:14:28.795Z" }, - { url = "https://files.pythonhosted.org/packages/3e/ec/a90e88cc4a1309f33088ab1cdd5c0487718f49dfb82c5ffc845bb17c1973/multidict-6.5.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:e95c5e07a06594bdc288117ca90e89156aee8cb2d7c330b920d9c3dd19c05414", size = 258682, upload-time = "2025-06-17T14:14:30.066Z" }, - { url = "https://files.pythonhosted.org/packages/d2/d8/16dd69a6811920a31f4e06114ebe67b1cd922c8b05c9c82b050706d0b6fe/multidict-6.5.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:40ff26f58323795f5cd2855e2718a1720a1123fb90df4553426f0efd76135462", size = 254254, upload-time = "2025-06-17T14:14:31.323Z" }, - { url = "https://files.pythonhosted.org/packages/ac/a8/90193a5f5ca1bdbf92633d69a25a2ef9bcac7b412b8d48c84d01a2732518/multidict-6.5.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:76803a29fd71869a8b59c2118c9dcfb3b8f9c8723e2cce6baeb20705459505cf", size = 247741, upload-time = "2025-06-17T14:14:32.717Z" }, - { url = "https://files.pythonhosted.org/packages/cd/43/29c7a747153c05b41d1f67455426af39ed88d6de3f21c232b8f2724bde13/multidict-6.5.0-cp312-cp312-win32.whl", hash = "sha256:df7ecbc65a53a2ce1b3a0c82e6ad1a43dcfe7c6137733f9176a92516b9f5b851", size = 41049, upload-time = "2025-06-17T14:14:33.941Z" }, - { url = "https://files.pythonhosted.org/packages/1e/e8/8f3fc32b7e901f3a2719764d64aeaf6ae77b4ba961f1c3a3cf3867766636/multidict-6.5.0-cp312-cp312-win_amd64.whl", hash = "sha256:0ec1c3fbbb0b655a6540bce408f48b9a7474fd94ed657dcd2e890671fefa7743", size = 44700, upload-time = "2025-06-17T14:14:35.016Z" }, - { url = "https://files.pythonhosted.org/packages/24/e4/e250806adc98d524d41e69c8d4a42bc3513464adb88cb96224df12928617/multidict-6.5.0-cp312-cp312-win_arm64.whl", hash = "sha256:2d24a00d34808b22c1f15902899b9d82d0faeca9f56281641c791d8605eacd35", size = 41703, upload-time = "2025-06-17T14:14:36.168Z" }, - { url = "https://files.pythonhosted.org/packages/1a/c9/092c4e9402b6d16de761cff88cb842a5c8cc50ccecaf9c4481ba53264b9e/multidict-6.5.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:53d92df1752df67a928fa7f884aa51edae6f1cf00eeb38cbcf318cf841c17456", size = 73486, upload-time = "2025-06-17T14:14:37.238Z" }, - { url = "https://files.pythonhosted.org/packages/08/f9/6f7ddb8213f5fdf4db48d1d640b78e8aef89b63a5de8a2313286db709250/multidict-6.5.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:680210de2c38eef17ce46b8df8bf2c1ece489261a14a6e43c997d49843a27c99", size = 43745, upload-time = "2025-06-17T14:14:38.32Z" }, - { url = "https://files.pythonhosted.org/packages/f3/a7/b9be0163bfeee3bb08a77a1705e24eb7e651d594ea554107fac8a1ca6a4d/multidict-6.5.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e279259bcb936732bfa1a8eec82b5d2352b3df69d2fa90d25808cfc403cee90a", size = 42135, upload-time = "2025-06-17T14:14:39.897Z" }, - { url = "https://files.pythonhosted.org/packages/8e/30/93c8203f943a417bda3c573a34d5db0cf733afdfffb0ca78545c7716dbd8/multidict-6.5.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d1c185fc1069781e3fc8b622c4331fb3b433979850392daa5efbb97f7f9959bb", size = 238585, upload-time = "2025-06-17T14:14:41.332Z" }, - { url = "https://files.pythonhosted.org/packages/9d/fe/2582b56a1807604774f566eeef183b0d6b148f4b89d1612cd077567b2e1e/multidict-6.5.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:6bb5f65ff91daf19ce97f48f63585e51595539a8a523258b34f7cef2ec7e0617", size = 236174, upload-time = "2025-06-17T14:14:42.602Z" }, - { url = "https://files.pythonhosted.org/packages/9b/c4/d8b66d42d385bd4f974cbd1eaa8b265e6b8d297249009f312081d5ded5c7/multidict-6.5.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d8646b4259450c59b9286db280dd57745897897284f6308edbdf437166d93855", size = 250145, upload-time = "2025-06-17T14:14:43.944Z" }, - { url = "https://files.pythonhosted.org/packages/bc/64/62feda5093ee852426aae3df86fab079f8bf1cdbe403e1078c94672ad3ec/multidict-6.5.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d245973d4ecc04eea0a8e5ebec7882cf515480036e1b48e65dffcfbdf86d00be", size = 243470, upload-time = "2025-06-17T14:14:45.343Z" }, - { url = "https://files.pythonhosted.org/packages/67/dc/9f6fa6e854625cf289c0e9f4464b40212a01f76b2f3edfe89b6779b4fb93/multidict-6.5.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a133e7ddc9bc7fb053733d0ff697ce78c7bf39b5aec4ac12857b6116324c8d75", size = 236968, upload-time = "2025-06-17T14:14:46.609Z" }, - { url = "https://files.pythonhosted.org/packages/46/ae/4b81c6e3745faee81a156f3f87402315bdccf04236f75c03e37be19c94ff/multidict-6.5.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:80d696fa38d738fcebfd53eec4d2e3aeb86a67679fd5e53c325756682f152826", size = 236575, upload-time = "2025-06-17T14:14:47.929Z" }, - { url = "https://files.pythonhosted.org/packages/8a/fa/4089d7642ea344226e1bfab60dd588761d4791754f8072e911836a39bedf/multidict-6.5.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:20d30c9410ac3908abbaa52ee5967a754c62142043cf2ba091e39681bd51d21a", size = 247632, upload-time = "2025-06-17T14:14:49.525Z" }, - { url = "https://files.pythonhosted.org/packages/16/ee/a353dac797de0f28fb7f078cc181c5f2eefe8dd16aa11a7100cbdc234037/multidict-6.5.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:6c65068cc026f217e815fa519d8e959a7188e94ec163ffa029c94ca3ef9d4a73", size = 243520, upload-time = "2025-06-17T14:14:50.83Z" }, - { url = "https://files.pythonhosted.org/packages/50/ec/560deb3d2d95822d6eb1bcb1f1cb728f8f0197ec25be7c936d5d6a5d133c/multidict-6.5.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:e355ac668a8c3e49c2ca8daa4c92f0ad5b705d26da3d5af6f7d971e46c096da7", size = 248551, upload-time = "2025-06-17T14:14:52.229Z" }, - { url = "https://files.pythonhosted.org/packages/10/85/ddf277e67c78205f6695f2a7639be459bca9cc353b962fd8085a492a262f/multidict-6.5.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:08db204213d0375a91a381cae0677ab95dd8c67a465eb370549daf6dbbf8ba10", size = 258362, upload-time = "2025-06-17T14:14:53.934Z" }, - { url = "https://files.pythonhosted.org/packages/02/fc/d64ee1df9b87c5210f2d4c419cab07f28589c81b4e5711eda05a122d0614/multidict-6.5.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:ffa58e3e215af8f6536dc837a990e456129857bb6fd546b3991be470abd9597a", size = 253862, upload-time = "2025-06-17T14:14:55.323Z" }, - { url = "https://files.pythonhosted.org/packages/c9/7c/a2743c00d9e25f4826d3a77cc13d4746398872cf21c843eef96bb9945665/multidict-6.5.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:3e86eb90015c6f21658dbd257bb8e6aa18bdb365b92dd1fba27ec04e58cdc31b", size = 247391, upload-time = "2025-06-17T14:14:57.293Z" }, - { url = "https://files.pythonhosted.org/packages/9b/03/7773518db74c442904dbd349074f1e7f2a854cee4d9529fc59e623d3949e/multidict-6.5.0-cp313-cp313-win32.whl", hash = "sha256:f34a90fbd9959d0f857323bd3c52b3e6011ed48f78d7d7b9e04980b8a41da3af", size = 41115, upload-time = "2025-06-17T14:14:59.33Z" }, - { url = "https://files.pythonhosted.org/packages/eb/9a/6fc51b1dc11a7baa944bc101a92167d8b0f5929d376a8c65168fc0d35917/multidict-6.5.0-cp313-cp313-win_amd64.whl", hash = "sha256:fcb2aa79ac6aef8d5b709bbfc2fdb1d75210ba43038d70fbb595b35af470ce06", size = 44768, upload-time = "2025-06-17T14:15:00.427Z" }, - { url = "https://files.pythonhosted.org/packages/82/2d/0d010be24b663b3c16e3d3307bbba2de5ae8eec496f6027d5c0515b371a8/multidict-6.5.0-cp313-cp313-win_arm64.whl", hash = "sha256:6dcee5e7e92060b4bb9bb6f01efcbb78c13d0e17d9bc6eec71660dd71dc7b0c2", size = 41770, upload-time = "2025-06-17T14:15:01.854Z" }, - { url = "https://files.pythonhosted.org/packages/aa/d1/a71711a5f32f84b7b036e82182e3250b949a0ce70d51a2c6a4079e665449/multidict-6.5.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:cbbc88abea2388fde41dd574159dec2cda005cb61aa84950828610cb5010f21a", size = 80450, upload-time = "2025-06-17T14:15:02.968Z" }, - { url = "https://files.pythonhosted.org/packages/0f/a2/953a9eede63a98fcec2c1a2c1a0d88de120056219931013b871884f51b43/multidict-6.5.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:70b599f70ae6536e5976364d3c3cf36f40334708bd6cebdd1e2438395d5e7676", size = 46971, upload-time = "2025-06-17T14:15:04.149Z" }, - { url = "https://files.pythonhosted.org/packages/44/61/60250212953459edda2c729e1d85130912f23c67bd4f585546fe4bdb1578/multidict-6.5.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:828bab777aa8d29d59700018178061854e3a47727e0611cb9bec579d3882de3b", size = 45548, upload-time = "2025-06-17T14:15:05.666Z" }, - { url = "https://files.pythonhosted.org/packages/11/b6/e78ee82e96c495bc2582b303f68bed176b481c8d81a441fec07404fce2ca/multidict-6.5.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a9695fc1462f17b131c111cf0856a22ff154b0480f86f539d24b2778571ff94d", size = 238545, upload-time = "2025-06-17T14:15:06.88Z" }, - { url = "https://files.pythonhosted.org/packages/5a/0f/6132ca06670c8d7b374c3a4fd1ba896fc37fbb66b0de903f61db7d1020ec/multidict-6.5.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:0b5ac6ebaf5d9814b15f399337ebc6d3a7f4ce9331edd404e76c49a01620b68d", size = 229931, upload-time = "2025-06-17T14:15:08.24Z" }, - { url = "https://files.pythonhosted.org/packages/c0/63/d9957c506e6df6b3e7a194f0eea62955c12875e454b978f18262a65d017b/multidict-6.5.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:84a51e3baa77ded07be4766a9e41d977987b97e49884d4c94f6d30ab6acaee14", size = 248181, upload-time = "2025-06-17T14:15:09.907Z" }, - { url = "https://files.pythonhosted.org/packages/43/3f/7d5490579640db5999a948e2c41d4a0efd91a75989bda3e0a03a79c92be2/multidict-6.5.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8de67f79314d24179e9b1869ed15e88d6ba5452a73fc9891ac142e0ee018b5d6", size = 241846, upload-time = "2025-06-17T14:15:11.596Z" }, - { url = "https://files.pythonhosted.org/packages/e1/f7/252b1ce949ece52bba4c0de7aa2e3a3d5964e800bce71fb778c2e6c66f7c/multidict-6.5.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17f78a52c214481d30550ec18208e287dfc4736f0c0148208334b105fd9e0887", size = 232893, upload-time = "2025-06-17T14:15:12.946Z" }, - { url = "https://files.pythonhosted.org/packages/45/7e/0070bfd48c16afc26e056f2acce49e853c0d604a69c7124bc0bbdb1bcc0a/multidict-6.5.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2966d0099cb2e2039f9b0e73e7fd5eb9c85805681aa2a7f867f9d95b35356921", size = 228567, upload-time = "2025-06-17T14:15:14.267Z" }, - { url = "https://files.pythonhosted.org/packages/2a/31/90551c75322113ebf5fd9c5422e8641d6952f6edaf6b6c07fdc49b1bebdd/multidict-6.5.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:86fb42ed5ed1971c642cc52acc82491af97567534a8e381a8d50c02169c4e684", size = 246188, upload-time = "2025-06-17T14:15:15.985Z" }, - { url = "https://files.pythonhosted.org/packages/cc/e2/aa4b02a55e7767ff292871023817fe4db83668d514dab7ccbce25eaf7659/multidict-6.5.0-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:4e990cbcb6382f9eae4ec720bcac6a1351509e6fc4a5bb70e4984b27973934e6", size = 235178, upload-time = "2025-06-17T14:15:17.395Z" }, - { url = "https://files.pythonhosted.org/packages/7d/5c/f67e726717c4b138b166be1700e2b56e06fbbcb84643d15f9a9d7335ff41/multidict-6.5.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:d99a59d64bb1f7f2117bec837d9e534c5aeb5dcedf4c2b16b9753ed28fdc20a3", size = 243422, upload-time = "2025-06-17T14:15:18.939Z" }, - { url = "https://files.pythonhosted.org/packages/e5/1c/15fa318285e26a50aa3fa979bbcffb90f9b4d5ec58882d0590eda067d0da/multidict-6.5.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:e8ef15cc97c9890212e1caf90f0d63f6560e1e101cf83aeaf63a57556689fb34", size = 254898, upload-time = "2025-06-17T14:15:20.31Z" }, - { url = "https://files.pythonhosted.org/packages/ad/3d/d6c6d1c2e9b61ca80313912d30bb90d4179335405e421ef0a164eac2c0f9/multidict-6.5.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:b8a09aec921b34bd8b9f842f0bcfd76c6a8c033dc5773511e15f2d517e7e1068", size = 247129, upload-time = "2025-06-17T14:15:21.665Z" }, - { url = "https://files.pythonhosted.org/packages/29/15/1568258cf0090bfa78d44be66247cfdb16e27dfd935c8136a1e8632d3057/multidict-6.5.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:ff07b504c23b67f2044533244c230808a1258b3493aaf3ea2a0785f70b7be461", size = 243841, upload-time = "2025-06-17T14:15:23.38Z" }, - { url = "https://files.pythonhosted.org/packages/65/57/64af5dbcfd61427056e840c8e520b502879d480f9632fbe210929fd87393/multidict-6.5.0-cp313-cp313t-win32.whl", hash = "sha256:9232a117341e7e979d210e41c04e18f1dc3a1d251268df6c818f5334301274e1", size = 46761, upload-time = "2025-06-17T14:15:24.733Z" }, - { url = "https://files.pythonhosted.org/packages/26/a8/cac7f7d61e188ff44f28e46cb98f9cc21762e671c96e031f06c84a60556e/multidict-6.5.0-cp313-cp313t-win_amd64.whl", hash = "sha256:44cb5c53fb2d4cbcee70a768d796052b75d89b827643788a75ea68189f0980a1", size = 52112, upload-time = "2025-06-17T14:15:25.906Z" }, - { url = "https://files.pythonhosted.org/packages/51/9f/076533feb1b5488d22936da98b9c217205cfbf9f56f7174e8c5c86d86fe6/multidict-6.5.0-cp313-cp313t-win_arm64.whl", hash = "sha256:51d33fafa82640c0217391d4ce895d32b7e84a832b8aee0dcc1b04d8981ec7f4", size = 44358, upload-time = "2025-06-17T14:15:27.117Z" }, - { url = "https://files.pythonhosted.org/packages/68/0b/b024da30f18241e03a400aebdc3ca1bcbdc0561f9d48019cbe66549aea3e/multidict-6.5.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c0078358470da8dc90c37456f4a9cde9f86200949a048d53682b9cd21e5bbf2b", size = 73804, upload-time = "2025-06-17T14:15:28.305Z" }, - { url = "https://files.pythonhosted.org/packages/a3/8f/5e69092bb8a75b95dd27ed4d21220641ede7e127d8a0228cd5e1d5f2150e/multidict-6.5.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5cc7968b7d1bf8b973c307d38aa3a2f2c783f149bcac855944804252f1df5105", size = 43161, upload-time = "2025-06-17T14:15:29.47Z" }, - { url = "https://files.pythonhosted.org/packages/e1/d9/51968d296800285343055d482b65001bda4fa4950aad5575afe17906f16f/multidict-6.5.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0ad73a60e11aa92f1f2c9330efdeaac4531b719fc568eb8d312fd4112f34cc18", size = 42996, upload-time = "2025-06-17T14:15:30.622Z" }, - { url = "https://files.pythonhosted.org/packages/38/1c/19ce336cf8af2b7c530ea890496603eb9bbf0da4e3a8e0fcc3669ad30c21/multidict-6.5.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3233f21abdcd180b2624eb6988a1e1287210e99bca986d8320afca5005d85844", size = 231051, upload-time = "2025-06-17T14:15:32.296Z" }, - { url = "https://files.pythonhosted.org/packages/73/9b/2cf6eff5b30ff8a67ca231a741053c8cc8269fd860cac2c0e16b376de89d/multidict-6.5.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:bee5c0b79fca78fd2ab644ca4dc831ecf793eb6830b9f542ee5ed2c91bc35a0e", size = 219511, upload-time = "2025-06-17T14:15:33.602Z" }, - { url = "https://files.pythonhosted.org/packages/bf/ac/43c89a11d710ce6e5c824ece7b570fd79839e3d25a6a7d3b2526a77b290c/multidict-6.5.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e053a4d690f4352ce46583080fefade9a903ce0fa9d820db1be80bdb9304fa2f", size = 240287, upload-time = "2025-06-17T14:15:34.915Z" }, - { url = "https://files.pythonhosted.org/packages/16/94/1896d424324618f2e2adbf9acb049aeef8da3f31c109e37ffda63b58d1b5/multidict-6.5.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:42bdee30424c1f4dcda96e07ac60e2a4ede8a89f8ae2f48b5e4ccc060f294c52", size = 232748, upload-time = "2025-06-17T14:15:36.576Z" }, - { url = "https://files.pythonhosted.org/packages/e1/43/2f852c12622bda304a2e0c4419250de3cd0345776ae2e699416cbdc15c9f/multidict-6.5.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58b2ded1a7982cf7b8322b0645713a0086b2b3cf5bb9f7c01edfc1a9f98d20dc", size = 224910, upload-time = "2025-06-17T14:15:37.941Z" }, - { url = "https://files.pythonhosted.org/packages/31/68/9c32a0305a11aec71a85f354d739011221507bce977a3be8d9fa248763e7/multidict-6.5.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3f805b8b951d1fadc5bc18c3c93e509608ac5a883045ee33bc22e28806847c20", size = 225773, upload-time = "2025-06-17T14:15:39.645Z" }, - { url = "https://files.pythonhosted.org/packages/bc/81/488054827b644e615f59211fc26fd64b28a1366143e4985326802f18773b/multidict-6.5.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:2540395b63723da748f850568357a39cd8d8d4403ca9439f9fcdad6dd423c780", size = 244097, upload-time = "2025-06-17T14:15:41.164Z" }, - { url = "https://files.pythonhosted.org/packages/9f/71/b9d96548da768dd7284c1f21187129a48906f526d5ed4f71bb050476d91f/multidict-6.5.0-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:c96aedff25f4e47b6697ba048b2c278f7caa6df82c7c3f02e077bcc8d47b4b76", size = 232831, upload-time = "2025-06-17T14:15:42.897Z" }, - { url = "https://files.pythonhosted.org/packages/fc/45/0c57c9bf9be7808252269f0d3964c1495413bcee36a7a7e836fdb778a578/multidict-6.5.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:e80de5ad995de210fd02a65c2350649b8321d09bd2e44717eaefb0f5814503e8", size = 242201, upload-time = "2025-06-17T14:15:44.286Z" }, - { url = "https://files.pythonhosted.org/packages/8b/d4/2441e56b32f7d25c917557641b35a89e0142a7412bc57182c80330975b8d/multidict-6.5.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:6cb9bcedd9391b313e5ec2fb3aa07c03e050550e7b9e4646c076d5c24ba01532", size = 254479, upload-time = "2025-06-17T14:15:45.718Z" }, - { url = "https://files.pythonhosted.org/packages/0d/93/acbc2fed235c7a7b2b21fe8c6ac1b612f7fee79dbddd9c73d42b1a65599c/multidict-6.5.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:a7d130ed7a112e25ab47309962ecafae07d073316f9d158bc7b3936b52b80121", size = 244179, upload-time = "2025-06-17T14:15:47.174Z" }, - { url = "https://files.pythonhosted.org/packages/aa/b2/07ce91400ee2b296de2d6d55f1d948d88d148182b35a3edcc480ddb0f99a/multidict-6.5.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:95750a9a9741cd1855d1b6cb4c6031ae01c01ad38d280217b64bfae986d39d56", size = 241173, upload-time = "2025-06-17T14:15:48.566Z" }, - { url = "https://files.pythonhosted.org/packages/a0/09/61c0b044065a1d2e1329b0e4f0f2afa992d3bb319129b63dd63c54c2cc15/multidict-6.5.0-cp39-cp39-win32.whl", hash = "sha256:7f78caf409914f108f4212b53a9033abfdc2cbab0647e9ac3a25bb0f21ab43d2", size = 40467, upload-time = "2025-06-17T14:15:50.285Z" }, - { url = "https://files.pythonhosted.org/packages/7f/43/48c2837046222ea6800824d576f110d7622c4048b3dd252ef62c51a0969b/multidict-6.5.0-cp39-cp39-win_amd64.whl", hash = "sha256:220c74009507e847a3a6fc5375875f2a2e05bd9ce28cf607be0e8c94600f4472", size = 44449, upload-time = "2025-06-17T14:15:51.84Z" }, - { url = "https://files.pythonhosted.org/packages/d2/4e/b61b006e75c6e071fac1bd0f32696ad1b052772493c4e9d0121ba604b215/multidict-6.5.0-cp39-cp39-win_arm64.whl", hash = "sha256:d98f4ac9c1ede7e9d04076e2e6d967e15df0079a6381b297270f6bcab661195e", size = 41477, upload-time = "2025-06-17T14:15:53.964Z" }, - { url = "https://files.pythonhosted.org/packages/44/d8/45e8fc9892a7386d074941429e033adb4640e59ff0780d96a8cf46fe788e/multidict-6.5.0-py3-none-any.whl", hash = "sha256:5634b35f225977605385f56153bd95a7133faffc0ffe12ad26e10517537e8dfc", size = 12181, upload-time = "2025-06-17T14:15:55.156Z" }, + { url = "https://files.pythonhosted.org/packages/1d/9d/9bcb4da29ff4e5a5dd7dccefaf49de8acae5b027e1a8b53296ac61ba14ab/multidict-6.6.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:cfd9c74d337e710d7ee26e72a7dbedbd60e0c58d3df7c5ccbb748857e977783c", size = 76829, upload-time = "2025-06-28T14:35:47.461Z" }, + { url = "https://files.pythonhosted.org/packages/8d/40/4ca4b3eb34d4b57bb0a7385ca206fc28bc62aeb99daee47e72463efcdfc6/multidict-6.6.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9d2c5867a1bd182041a950e9ec3dd3622926260434655bd5d94a62d889100787", size = 44799, upload-time = "2025-06-28T14:35:49.593Z" }, + { url = "https://files.pythonhosted.org/packages/f5/d7/30ef84053dcb9f4a3ae9b0057b89da3236683ece29ded9b489793addf660/multidict-6.6.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:bc8551dd0000ce3f1d909906415ec18970fedb78e685dcac3a0b331a3422d810", size = 44476, upload-time = "2025-06-28T14:35:51.728Z" }, + { url = "https://files.pythonhosted.org/packages/dd/3a/4cc34184902534abd2f82d9cfd159a333fd56602aa4de4644aaa441f3e6b/multidict-6.6.2-cp310-cp310-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:9a23d9360f656c316518c8534685ca7c9f18877f782c11bcfce97ff1012ba256", size = 225204, upload-time = "2025-06-28T14:35:52.822Z" }, + { url = "https://files.pythonhosted.org/packages/f0/20/fb362a4b56a050c10480a81d4d04ce461e01b2f8d02f1e41d2367849670d/multidict-6.6.2-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:37fe64cfc6f73fce34f2ef9e099efb8333650b85b50929ba37789311283f476f", size = 244463, upload-time = "2025-06-28T14:35:53.981Z" }, + { url = "https://files.pythonhosted.org/packages/4e/a0/84aec746dc7e5db95da3c5777aafd8b78ff91a66b3e7d55bcea783d5b3e3/multidict-6.6.2-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:2429b25566ff8c12cdf472ee82084ea96ea085675822d6d85aee85efd1d36cc0", size = 221250, upload-time = "2025-06-28T14:35:55.168Z" }, + { url = "https://files.pythonhosted.org/packages/d9/9b/549656e890c5134b666928fd56d99b7d7eb1579ab62e821a0a3a07d20738/multidict-6.6.2-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:66c596bd9bc833bad98445539ad53165b214c2c87bf386dbb819fabd1acdb462", size = 255154, upload-time = "2025-06-28T14:35:56.422Z" }, + { url = "https://files.pythonhosted.org/packages/c6/de/8ca2242eda642d264a6e6f43a8c1ad9fee5e5aff15b39db8b00afaba5971/multidict-6.6.2-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:eb8c006b565a0e53b298e9d48ef5aafe343f77de65c4fa7adb3d3b752a22d10b", size = 251359, upload-time = "2025-06-28T14:35:57.857Z" }, + { url = "https://files.pythonhosted.org/packages/e5/d7/34c3743e2dce6777c45dff9f451297b0e9a64e145ba3b59c6d5a8834a245/multidict-6.6.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7d09a7ade505d4556aa00c18f5635c9e7fe5973b98fee4e034162b02e48da7bc", size = 242695, upload-time = "2025-06-28T14:35:59.07Z" }, + { url = "https://files.pythonhosted.org/packages/33/ab/20d63595785766d1d0aac9850b972b9ff20d533371a9140d499904dc7ace/multidict-6.6.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:6c95573274630213748ecee465410d4e5e44532d97ba9b09481968efd3c1fd2c", size = 240935, upload-time = "2025-06-28T14:36:00.524Z" }, + { url = "https://files.pythonhosted.org/packages/6c/1e/a7c9b9a756ad45f2c9750471750345eb8ed8b7a921f742cec30fa70a4070/multidict-6.6.2-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:e45ebeeee1ce0f9a68151cee1afe02eef56f3b6977a580873c179175e5108275", size = 233923, upload-time = "2025-06-28T14:36:02.061Z" }, + { url = "https://files.pythonhosted.org/packages/44/c6/bb6e4cca146748e2b787d9338009e8c845af48808600b0769215b6a1fea7/multidict-6.6.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:329ecbdd77402648ebcb077b342ad6e67396dcf377c67418a733e88476ff3a11", size = 241715, upload-time = "2025-06-28T14:36:03.253Z" }, + { url = "https://files.pythonhosted.org/packages/bf/24/d3c01293132168f6a29b2a5490ce4a07d34f0bdb5d73a4b2a177623b88bb/multidict-6.6.2-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:f449699e273579a7eda79e36a8b7a6aae06a601d115c54e1aeebf08e07ea3ea1", size = 251433, upload-time = "2025-06-28T14:36:04.973Z" }, + { url = "https://files.pythonhosted.org/packages/0f/c1/dd47ff9571905e722ce9d71161d21bb970d9632224fa7bfdfe4ae59073c3/multidict-6.6.2-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:ed4bb96a59976e4da7e1fbe3a7c37bcb4a16f3b20c5bba8af9a0ce459e14039a", size = 243316, upload-time = "2025-06-28T14:36:06.38Z" }, + { url = "https://files.pythonhosted.org/packages/1b/51/73906c1101792b8c6232ecbbbb2fe943a01d820b502a3e882b3ed986bad6/multidict-6.6.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:4d05496c2779af4698ba8a841b226247a9a515210eff3a029f48d5345255b1d3", size = 238648, upload-time = "2025-06-28T14:36:07.609Z" }, + { url = "https://files.pythonhosted.org/packages/a8/8d/0174c5602a531da3c1c0e6e8497bd98702ad1793ff3a9988628de8d75a41/multidict-6.6.2-cp310-cp310-win32.whl", hash = "sha256:f96af5fbf6bab448d6dab34e8126f32f86de65034539d4a7077193f7b64a08f6", size = 41362, upload-time = "2025-06-28T14:36:08.859Z" }, + { url = "https://files.pythonhosted.org/packages/b1/58/40b720fd0a9ba2f492497c27c7d047606b20540be64a4315693054bd1d09/multidict-6.6.2-cp310-cp310-win_amd64.whl", hash = "sha256:44468089034383be86735f64f5d7daa6a1297e338b739403871a63750b95866d", size = 45892, upload-time = "2025-06-28T14:36:09.975Z" }, + { url = "https://files.pythonhosted.org/packages/72/53/1ab0ca0093516836b3e89aa9a9e7247f06109300a24b7d9fa3c983122394/multidict-6.6.2-cp310-cp310-win_arm64.whl", hash = "sha256:4e36b00dfb630a81f8efd4eb8a67b5b45f0918da3f2c8c4c14d16fc12b682d33", size = 42983, upload-time = "2025-06-28T14:36:11.06Z" }, + { url = "https://files.pythonhosted.org/packages/20/33/e9f6a8e960087721722e1bb7948f87647c12b2ed0526d8f5b062d4673cbb/multidict-6.6.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:f89ce85a8f949e4dde3a4fb374500630cf425a32d8c53a2892b8fbfc556720dc", size = 76259, upload-time = "2025-06-28T14:36:12.137Z" }, + { url = "https://files.pythonhosted.org/packages/e5/41/9924607eee3b1a133e1890be63759378c086ecd34f8c6573552d1043d503/multidict-6.6.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:73d6c5bed784d70e790b6f014c1a9456e76401ab32bdacbf8bf4a6c2f1654b12", size = 44529, upload-time = "2025-06-28T14:36:13.205Z" }, + { url = "https://files.pythonhosted.org/packages/10/43/29c7765474941cfc2739706bd0ebac056edc3ae091654a605440beabc03f/multidict-6.6.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a94cff417557f5a665e81c642e88d0062d19203a6b470b84fd62007d9c4c23c6", size = 44188, upload-time = "2025-06-28T14:36:14.616Z" }, + { url = "https://files.pythonhosted.org/packages/01/24/8a016db31ca3664ddcf312c2671309068b040022366bf81f3dfa8a55e161/multidict-6.6.2-cp311-cp311-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:ebe5fc33f384c0277d3e9ecfc2f1fb3a5d2e6ac03deda39b84cf97611857241a", size = 228403, upload-time = "2025-06-28T14:36:15.697Z" }, + { url = "https://files.pythonhosted.org/packages/c8/15/d88e1f74daaa18be5544a718885bcbffc8b351a72fb019a12d44effb4f7c/multidict-6.6.2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9723d0ba4d4eb50e7abcc235d4db5ce562c6cc20caa902967d8d915ccd73cd75", size = 248429, upload-time = "2025-06-28T14:36:16.949Z" }, + { url = "https://files.pythonhosted.org/packages/66/83/5e23f9c457d5b0995ce161cc26afdb62b73471e56cea104c0759022e9d6c/multidict-6.6.2-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:fcb85c7bedeaace74fbb631186789a23706bf22a44224b36340576370b3d9fd5", size = 225137, upload-time = "2025-06-28T14:36:18.609Z" }, + { url = "https://files.pythonhosted.org/packages/9a/3d/8c5ef319927e179193f4fead913617f9c8e83722dcd3da5fcf34c8c41948/multidict-6.6.2-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:7d037a8777504c29cb65b90b6bff6c5bf4e5129487a3f7e4517ae97c3dcf675e", size = 257370, upload-time = "2025-06-28T14:36:19.938Z" }, + { url = "https://files.pythonhosted.org/packages/6d/6b/68773e727bba1d3a3aa42c18e9f8000c2d928da39de979c9816d801e8952/multidict-6.6.2-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d082bf71da51352247b94622c9c8fd905b22bd4a7e94e252d4336492f595abe5", size = 256199, upload-time = "2025-06-28T14:36:21.262Z" }, + { url = "https://files.pythonhosted.org/packages/32/d7/8bcf5147c3c9a6581d80778757ec2f21c1e52f13cd1e268548d6f79e43c5/multidict-6.6.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ce75c8986b17bc35f22240b7a4d9561530551e1f715b6cc23e136e7c06e6922a", size = 246823, upload-time = "2025-06-28T14:36:22.688Z" }, + { url = "https://files.pythonhosted.org/packages/49/83/2c7cfc6057ad234d5708d738718c086c17265eadcd17a42f6e6c22b494d1/multidict-6.6.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:f38e7b738de36f7caa707add650555d9bc01af9276000ba0427fda08153861f7", size = 244391, upload-time = "2025-06-28T14:36:24.335Z" }, + { url = "https://files.pythonhosted.org/packages/23/36/4a4ea1064705c4f5f1a8edecd825bd09529d8b6877283ab97f123c4eb324/multidict-6.6.2-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:3e88f5cf86bbe5303d056cec9ccc854408571a3f6d41ce90ca9fdc2df47e3810", size = 238816, upload-time = "2025-06-28T14:36:25.541Z" }, + { url = "https://files.pythonhosted.org/packages/a3/e5/b25ebe8dbfe577eb03b877b167446426e69ae33da10fa74fe68518f974e2/multidict-6.6.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:2b62ab7680362cfaf03059f7cb680d3bacd7d8adf176b0a86045e882486bbffc", size = 246514, upload-time = "2025-06-28T14:36:27.154Z" }, + { url = "https://files.pythonhosted.org/packages/4f/3a/642cb671e1563013327d56821cedacb132489c89a29e72c10c74acb5575d/multidict-6.6.2-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:5b39f3c6c22f4f227fe8994eb916ea12e4d46f65fdbc2d977d20750a85be581b", size = 254082, upload-time = "2025-06-28T14:36:28.65Z" }, + { url = "https://files.pythonhosted.org/packages/2f/cc/10b69b681cd2ef752506eb83295cbb151ebaf5716ae53a50626db0b6ffea/multidict-6.6.2-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:b256569fc1f8b52d0c3280503f2b5031e90cdb4469f67bfef32f53ef2b07922d", size = 248122, upload-time = "2025-06-28T14:36:30.533Z" }, + { url = "https://files.pythonhosted.org/packages/94/c2/e34dc495dc7501ffa936758d69f9268868f0fa1a99d059bd3bce7c97fc90/multidict-6.6.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:32791619e6b41cce97b6510fb68ee215c75012aa3c53778057a538ae473d3abd", size = 242454, upload-time = "2025-06-28T14:36:31.886Z" }, + { url = "https://files.pythonhosted.org/packages/71/38/2140871da7664088d6ddbf4597d07024e29e8f88a96348fff90f0c8aaf42/multidict-6.6.2-cp311-cp311-win32.whl", hash = "sha256:7eb520abcf9f0e983fa4c666586161a2137d78096546ea19744b50ceae1bc401", size = 41247, upload-time = "2025-06-28T14:36:33.471Z" }, + { url = "https://files.pythonhosted.org/packages/09/b5/b913cd1eaf8ef9eb19580a9699ed86a8f7f945248bfe09ca06ce5878caea/multidict-6.6.2-cp311-cp311-win_amd64.whl", hash = "sha256:d2f765d6793815a82e517a1095c02ccbeab47f0a98fc244fe551625c519ade4d", size = 45877, upload-time = "2025-06-28T14:36:34.912Z" }, + { url = "https://files.pythonhosted.org/packages/90/34/8c041a172b032ec05da5476998876863b9d1eb9029925883e2e27fb48d69/multidict-6.6.2-cp311-cp311-win_arm64.whl", hash = "sha256:1d465e6cbbcadcbb8b3b08827fe9af889cc035500764b313aafb82c7e8e4b0a9", size = 42858, upload-time = "2025-06-28T14:36:36.003Z" }, + { url = "https://files.pythonhosted.org/packages/76/67/244bc9038eb05bae87a07d494ff48e43a4be7417c3fd538e0ea65c1beebf/multidict-6.6.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:6e5e426aff6b5b32167b1185909ea390e51e59c7a6adfe65de16746e5739d8c1", size = 76357, upload-time = "2025-06-28T14:36:37.071Z" }, + { url = "https://files.pythonhosted.org/packages/61/3c/03a4d33683ffa9851a14e14cafa76130be99101b2a1b446d47967f47f68e/multidict-6.6.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:0c4617af352d3e03b5febd040100d1bba67ac844e0f7780c8a124358883119dd", size = 45313, upload-time = "2025-06-28T14:36:38.121Z" }, + { url = "https://files.pythonhosted.org/packages/50/3c/5eca9c3be9ccb31c26ad144b5fb5160c29d853cd8bc52c1ce53ffd838a0a/multidict-6.6.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:65854da6c2f065f7e52c4385727494d72b25eaf4e901b15fb3f61e21bb0b52eb", size = 43528, upload-time = "2025-06-28T14:36:39.169Z" }, + { url = "https://files.pythonhosted.org/packages/3a/d8/6707b7ac3fd336b034b89e9ac5fdcca045e8f6b84ee4163c1857795366b4/multidict-6.6.2-cp312-cp312-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:c477d3bc9a1aa0214f5639a8c1b4a6b3cd9faea5a861b4001a6df62294dcc952", size = 238181, upload-time = "2025-06-28T14:36:40.703Z" }, + { url = "https://files.pythonhosted.org/packages/a8/24/b822b9f9bceed4f22008172717d601d6209bbe7daca2d35828be60208ba9/multidict-6.6.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d19a4bc7c5c1a25424812a26e8dccb18fff65a5f24515d2f3b85302ca3f3914f", size = 257172, upload-time = "2025-06-28T14:36:42.402Z" }, + { url = "https://files.pythonhosted.org/packages/76/e6/7995824cc95a15daebb15da87fc9509cc3c35027885d534d80718c55d10e/multidict-6.6.2-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:54ffaf44483b082602c1e1831472e3369c005f092271dbbcad2f7b12d1e84019", size = 242147, upload-time = "2025-06-28T14:36:43.702Z" }, + { url = "https://files.pythonhosted.org/packages/f8/44/23c9b50461423766d9f32b013a49ce07b358a1188d43cfa977385a872d03/multidict-6.6.2-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a526df4fe21d2dc68265c046685042fc89187dc40754489f32f7efc05e264b0f", size = 267431, upload-time = "2025-06-28T14:36:44.964Z" }, + { url = "https://files.pythonhosted.org/packages/28/e4/72cc549230e7d93f9eca0206fac402af239058d8a9f0fb95f348762e8fdd/multidict-6.6.2-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:73e8763061f0a38cec6d084b696964ee7b7e50c10c89a64b20be7044dca36a74", size = 269480, upload-time = "2025-06-28T14:36:46.569Z" }, + { url = "https://files.pythonhosted.org/packages/7d/e3/a809cf2e624cb37f29f4569e756bd708cd96a93d3d940143464d9079a2f5/multidict-6.6.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:81a13031b6831e4de5a89fe391d7f8b60a929f2d22dad403c69d60853e5ba1ca", size = 256759, upload-time = "2025-06-28T14:36:47.859Z" }, + { url = "https://files.pythonhosted.org/packages/03/85/ad1127e662ed20d8ba2751bf67d874380a817577cd486a7309dd50d116a1/multidict-6.6.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6421f4d5acd632af56ae90906755b242e518d59f5313a7b41cd55fb59adfcd74", size = 252393, upload-time = "2025-06-28T14:36:49.169Z" }, + { url = "https://files.pythonhosted.org/packages/36/b3/67c331269372e38c435dff4c4b3b5ca8aba958dd58936153c5e64d07a515/multidict-6.6.2-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:3fed2cfff9d8e3316fc4c5aca40f33d7cd29b5a9a4cbf4aa17dfcae592ccb17c", size = 249848, upload-time = "2025-06-28T14:36:50.88Z" }, + { url = "https://files.pythonhosted.org/packages/06/56/54d51eb89cdcb5518828081cb396219699468f70266ef0fcacf57a339319/multidict-6.6.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:eb97a4eed516fb3d63028fc0a8a8661e1acdf7925eace9c85153ff967926331c", size = 249993, upload-time = "2025-06-28T14:36:52.562Z" }, + { url = "https://files.pythonhosted.org/packages/78/8e/afc23d4d59ac2969743fdabb7fbd722c0b8bf333c31b02e8594e21661755/multidict-6.6.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:9bbef50bfefe84213b791c9a326d3221fa31181ba39576049a55c1eef9768109", size = 262437, upload-time = "2025-06-28T14:36:54.251Z" }, + { url = "https://files.pythonhosted.org/packages/3c/ec/74586ce0ebb48a7394719d5d2fda019ec7cc41e3fc01cb50ecd82cf80f6e/multidict-6.6.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:1d7d15b9285d439c3ca80b97b0ed6cc98a2df22c481de1848b77117563ddba14", size = 259363, upload-time = "2025-06-28T14:36:55.514Z" }, + { url = "https://files.pythonhosted.org/packages/ae/82/1fa2fbdc85d98b6c764b4a49e22e118b8d987f1fb5936cadfbdf091f06ef/multidict-6.6.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:5244c5c12889d84b9b7bf22f875e52c5ba4daa89c8ab92719863a14cd76dd04d", size = 252014, upload-time = "2025-06-28T14:36:56.734Z" }, + { url = "https://files.pythonhosted.org/packages/59/bc/21e7c4bb6e7911cac9fb41d4b295abb2d98c2123196d7c692e9e6e9f1ac4/multidict-6.6.2-cp312-cp312-win32.whl", hash = "sha256:a2ec0e52d7b298d53983cc4987fe76a25e033305f58d597fbcc1ff139b5e417e", size = 41826, upload-time = "2025-06-28T14:36:57.924Z" }, + { url = "https://files.pythonhosted.org/packages/61/57/5bd2019d7b2a5846c75372b1a5d994358739649d8863c73c37f2f7a418a6/multidict-6.6.2-cp312-cp312-win_amd64.whl", hash = "sha256:96d2d55c01ce4ec000a1b6eadbaa22971c91ec512819abee8b5b13f4af3fd566", size = 45920, upload-time = "2025-06-28T14:36:59.352Z" }, + { url = "https://files.pythonhosted.org/packages/91/c1/b1038c82ccc2e2ae3c40c912b8ee6a45ed0c9349dffdd1c3fc073f733ee9/multidict-6.6.2-cp312-cp312-win_arm64.whl", hash = "sha256:a0af3b15eab84e0d4f62a365927070d7f200db7efb8bb1e17de7c14fab5183bb", size = 43207, upload-time = "2025-06-28T14:37:00.872Z" }, + { url = "https://files.pythonhosted.org/packages/10/8d/3334cceab0ca6eaa6da56ae1031c86c908ea3569a963c87d6c1142c966db/multidict-6.6.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:c7f285ab85059a75b053027231626aeeabb4432191420d5c83cd91e2e462d25e", size = 75703, upload-time = "2025-06-28T14:37:02.224Z" }, + { url = "https://files.pythonhosted.org/packages/6f/47/950c13434ecb30551c4a0afefa654deb2b08953dc47fc00e529ca8e58abd/multidict-6.6.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:6f6fae153d1c78c37c2203b46c3062e942297eede21ebabea15fbfcaa7fa51be", size = 44980, upload-time = "2025-06-28T14:37:03.717Z" }, + { url = "https://files.pythonhosted.org/packages/07/83/39a809575daf4dae47493eb0c15cc365b045bc52b955efea1f7d3182045c/multidict-6.6.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:2c051b7191d185fc7add9cdc52326acf93791884e51062605da0ff4371f679a1", size = 43215, upload-time = "2025-06-28T14:37:05.236Z" }, + { url = "https://files.pythonhosted.org/packages/13/99/447c1c69dc603a16b7bf7d1c2ed0c5068a89248b91983f325bc643fca8bb/multidict-6.6.2-cp313-cp313-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:dc609fb7fadeb0e2d3a752dcfbb62fc23a2d5cc88316fe199366f73aa74a3215", size = 236699, upload-time = "2025-06-28T14:37:06.405Z" }, + { url = "https://files.pythonhosted.org/packages/68/99/be2925fd170c3216dbd5321766b477cb411e57ed5d68ee302a114535730e/multidict-6.6.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5245f0cba904051470c1b9c281533301457bc952992ac0d71a8668c2d10a4134", size = 254988, upload-time = "2025-06-28T14:37:07.768Z" }, + { url = "https://files.pythonhosted.org/packages/49/09/4881007f3b82b6e2c110bc381ec52b2a5a97603505b54068549b59fa2cf4/multidict-6.6.2-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:4409bbc4595a182908b539b156f882a5d72688a91343e0d3b0782c5cf1e85322", size = 240550, upload-time = "2025-06-28T14:37:09.118Z" }, + { url = "https://files.pythonhosted.org/packages/9e/1b/0e44d04eb2b87848545b04b88feba8d256e0e39eef61031b5634c30c4ab1/multidict-6.6.2-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:8ebd518dcc942616a539310e5deb0c29fbf4d0efa80de60186b53a2905192997", size = 266128, upload-time = "2025-06-28T14:37:10.432Z" }, + { url = "https://files.pythonhosted.org/packages/b6/f4/d999b4b52cab130a0a30485511e3612cfca79f440bd5f80736f6cdf6416e/multidict-6.6.2-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a50596d0b2f950015f80d277b42922cf30e0e1fb2348af3da5f4a07808f2c385", size = 266930, upload-time = "2025-06-28T14:37:11.886Z" }, + { url = "https://files.pythonhosted.org/packages/69/cb/b84afdb961dcf09b8e8c0238f068122d85480bfaac2c5c0b03120e497318/multidict-6.6.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c6c2d7686d2f9ecb18192455aa04345a05646f45a286d67b31b438eaf749a91e", size = 255081, upload-time = "2025-06-28T14:37:13.302Z" }, + { url = "https://files.pythonhosted.org/packages/23/a0/9c2f05cf91a8f645565e06529149542badebdc19b1fda24f220f1de4022f/multidict-6.6.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:140fe62aaac9c401918a6cc5919afb99c1c676c6b449f58a6702db8ed333f394", size = 250410, upload-time = "2025-06-28T14:37:15.79Z" }, + { url = "https://files.pythonhosted.org/packages/84/6e/0754123af79ef30760cbb09b65fd389b014b5d608eba308e23af93a4af09/multidict-6.6.2-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:2a7ea17e5d3cab04047b8880da1224a124c1ee7a8703dddce2cb66e6931c70f3", size = 249469, upload-time = "2025-06-28T14:37:17.151Z" }, + { url = "https://files.pythonhosted.org/packages/dd/73/06876ff14d142f9a88e782998b85efb9062b0dbd5006fa38f3ffb563e13f/multidict-6.6.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:a88f0fab41095ff860987a4f4f2c12bf96193c0bce8b59f574c20c46542a4e5a", size = 249482, upload-time = "2025-06-28T14:37:18.418Z" }, + { url = "https://files.pythonhosted.org/packages/41/d2/499276d2afb6d854897f4dd1e1e92b4db034bbfcbcee532bbd42628fb386/multidict-6.6.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:35c3c207c03c3d81d25afaa99df9f04158011d069a0716bbfc1c37e1006bab7c", size = 261314, upload-time = "2025-06-28T14:37:19.697Z" }, + { url = "https://files.pythonhosted.org/packages/60/85/3a1d095e153cfbb6fe0bcde75b245d2b53c4686bb7574a100f311abbcd5a/multidict-6.6.2-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:845b5d2f1a8f4a9c4115ef84ab4f6cd4f35dbc2cebd5ab0a3d84d79510b3a27c", size = 257589, upload-time = "2025-06-28T14:37:21.068Z" }, + { url = "https://files.pythonhosted.org/packages/ec/28/131c945fb113310325d56df838e32547fd40b65906bb82196d6605e09397/multidict-6.6.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ac9cf00f77d7bb3c796a08812a9a4fcad052a313373a5e294b3fb1c9efe042fd", size = 250255, upload-time = "2025-06-28T14:37:22.347Z" }, + { url = "https://files.pythonhosted.org/packages/b6/2a/78462ad3539d8dd1ecbed5a4ea4f4a341b3625dd5d479b5c93841217bcba/multidict-6.6.2-cp313-cp313-win32.whl", hash = "sha256:21a6477462132909c072671b51e74786eb6b9ce267257e305a7c924df79838a6", size = 41643, upload-time = "2025-06-28T14:37:23.684Z" }, + { url = "https://files.pythonhosted.org/packages/08/5e/9c90011f219572369cb76140a8438516f401a965cf83f3ab226a6b567f1d/multidict-6.6.2-cp313-cp313-win_amd64.whl", hash = "sha256:09dc7f1bfb1571bfed0c32f8f66e2065a48488ed0da5b58de7a9be58079c95e6", size = 45733, upload-time = "2025-06-28T14:37:25.14Z" }, + { url = "https://files.pythonhosted.org/packages/0d/86/e6f96122fe6c7d1d221ac96384db403ee2af0edd2693b235d986caed69d4/multidict-6.6.2-cp313-cp313-win_arm64.whl", hash = "sha256:7a7748bffbfd398bd3e82cbb1c78dcf91f1dd67d1a23388f508adfb606cd4d77", size = 43053, upload-time = "2025-06-28T14:37:26.409Z" }, + { url = "https://files.pythonhosted.org/packages/35/a0/31723594e1a7a4432611a1bc2fc31a1b15042e077f3cd03ad03b9b3fc7c8/multidict-6.6.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:0d2471a261c977b71b9bf1f3bb2aab1dc8a807a43f018a9d5fb420723fa9c77e", size = 82669, upload-time = "2025-06-28T14:37:27.582Z" }, + { url = "https://files.pythonhosted.org/packages/f5/d7/b6d56e5790b91ad91693159bc10379fe96972c1f72c63bb94aa5c6c25837/multidict-6.6.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:03f20dfe1e118ce85467b88a2cab5e93fd750489731b3dd7a550d1da27238d80", size = 48214, upload-time = "2025-06-28T14:37:28.747Z" }, + { url = "https://files.pythonhosted.org/packages/5f/83/ff37ebd9b8c213eab3685bf5e68eceb133315835033b0a676102175a7c8b/multidict-6.6.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:7f40cff60aa06eec355988f35670057fa843893652648b658e6fa3402a725d72", size = 46708, upload-time = "2025-06-28T14:37:29.912Z" }, + { url = "https://files.pythonhosted.org/packages/7a/bd/3861ca6d5bafb14191c2b1fd24dd454a7b3ab54ea835ca63c286c6baf832/multidict-6.6.2-cp313-cp313t-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:aaecf4537cce47944b7eb142ba047e031650cb2150d5692d49133f58d7d8fcbf", size = 229570, upload-time = "2025-06-28T14:37:31.088Z" }, + { url = "https://files.pythonhosted.org/packages/e2/4a/f077d2d28ff3a9c466c8eecc6ce2e69c5fb74d20dc660880df4719b693cf/multidict-6.6.2-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5fbadc2c5c7bc633212e65df2908485679fa791b309c6636eafbd111c353af3d", size = 249766, upload-time = "2025-06-28T14:37:32.446Z" }, + { url = "https://files.pythonhosted.org/packages/af/fd/0ce8c59b099396c2f765fcc71a0a4eaac50c11befcdd15d880025cac091b/multidict-6.6.2-cp313-cp313t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:a914d3b7d4f4f22d34588b5af75ddb496a9947f67b2a8a4ea515d23118d338b0", size = 228452, upload-time = "2025-06-28T14:37:33.809Z" }, + { url = "https://files.pythonhosted.org/packages/fd/cb/252c1185fcff431fd727f11c39f64adc63b1f7d8c3ce826dd178b2f7c7e6/multidict-6.6.2-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:57dc09924085acf2bba3923d6f043a90fd527dac5f05874e3f740f45f1ca1c3c", size = 256795, upload-time = "2025-06-28T14:37:35.187Z" }, + { url = "https://files.pythonhosted.org/packages/a6/d4/b78ade0ab9bd90a70490ac9f421f2d6a1f655c307d2815c82bb0bca364d7/multidict-6.6.2-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:2a00b5f20e601edc82759734c6b64cd68795c1a9691735b599cba51c5d406914", size = 257372, upload-time = "2025-06-28T14:37:36.572Z" }, + { url = "https://files.pythonhosted.org/packages/52/10/b20998c7063e8db0bfb250a359cbbb8b38ba5f211b2e9db4d0939e0657b3/multidict-6.6.2-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:dcfa8cafb01c892d3dae719083127af0cf2e3eb0ce4c73b33c9f88af60f2a313", size = 246618, upload-time = "2025-06-28T14:37:37.909Z" }, + { url = "https://files.pythonhosted.org/packages/df/5a/5d7caecad5376dea7f7d4e3ac0d996ee1587345e13178438df9b561ff60e/multidict-6.6.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:bd7a2bf9148f0dcab31207bb6c92522043b1781b43f5053c08f29a755cb5c91b", size = 244442, upload-time = "2025-06-28T14:37:39.285Z" }, + { url = "https://files.pythonhosted.org/packages/2f/29/4699a19c43abd2dc09375a2927511af61266b5d96692e761e8b05b9cb04a/multidict-6.6.2-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:db34ee9ebe45126fc7f90206531704ac0d2da268101180886380fe601bffe124", size = 235214, upload-time = "2025-06-28T14:37:41.079Z" }, + { url = "https://files.pythonhosted.org/packages/13/9e/94a776796154e8481fc5d175c788a20efa6552c2fd7c879bc85be537c5bd/multidict-6.6.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:b7c25f8e195d4fe34270208a568c843cfc85b2906ae20600ea8bbb2248ea9774", size = 243583, upload-time = "2025-06-28T14:37:42.803Z" }, + { url = "https://files.pythonhosted.org/packages/0a/d8/d9d683c8517bae2fb076dd0c728df432af08a41d9aaf6b0c901b56b18630/multidict-6.6.2-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:b8fb447ff4ebe073c2f4e250d9f253712f1b6eb8f2830d4f09942f50359d85ff", size = 251522, upload-time = "2025-06-28T14:37:44.156Z" }, + { url = "https://files.pythonhosted.org/packages/da/fb/d546f5d59cc897b715ca619cd2fbba9379e99a64b044a6aadd41a5abda7f/multidict-6.6.2-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:f4d5732f6bb3bf875fffbc9b155ab2c3b65924405d76fde6ea6c21253eab58c7", size = 247023, upload-time = "2025-06-28T14:37:45.847Z" }, + { url = "https://files.pythonhosted.org/packages/41/1e/e660f11b028b35cdc5e87cf948b73128385d275b2fced205f165a0cc6d95/multidict-6.6.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:b33458d93a8c06e028ffe0ca155852b0cf2078b90081e791a7aafe9380a3ee2b", size = 241903, upload-time = "2025-06-28T14:37:47.35Z" }, + { url = "https://files.pythonhosted.org/packages/ea/1f/95c5d8f164e7366fa5c2c3dc6b1955cd2cb8372cfe08c614018ba0940cf3/multidict-6.6.2-cp313-cp313t-win32.whl", hash = "sha256:43a7ddcf8f1e7ccae2197745152d4f97bb22b1b21afec05e271751dae56a576e", size = 47769, upload-time = "2025-06-28T14:37:48.709Z" }, + { url = "https://files.pythonhosted.org/packages/ed/a1/a56a786d04f21625d14b68b8cbf9fc7cee58f837a789ae97da5d1c39a29f/multidict-6.6.2-cp313-cp313t-win_amd64.whl", hash = "sha256:6d0d1dbbe970870e23a198d2b62f81cc0b145cca3eea1ba60670125a3184561c", size = 52947, upload-time = "2025-06-28T14:37:49.95Z" }, + { url = "https://files.pythonhosted.org/packages/5b/7e/f5a42680277af3f0bde14038c8caf8830279a8e788f1f95f7ed6f0e98414/multidict-6.6.2-cp313-cp313t-win_arm64.whl", hash = "sha256:3ead8284906e416fd990d44e964286393096fe0c0eedd4102fbc3a935250172a", size = 45248, upload-time = "2025-06-28T14:37:51.147Z" }, + { url = "https://files.pythonhosted.org/packages/cb/38/f844d90689a1d9d4643bb37ad49b915cdb5e8c9b9a3cfc705968ec533db5/multidict-6.6.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:6f6abb40cdee1a74b4f60c6c73c5206cd6b0c7b201ee88bea5386d793c55ffa5", size = 76779, upload-time = "2025-06-28T14:37:52.747Z" }, + { url = "https://files.pythonhosted.org/packages/83/d4/14aee73db4c20446cb53b8ac3af485064ec9171944d381791ebad2c12313/multidict-6.6.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:e3a33a028a5653d73b28a4cd01a089f0be3138bd8fad906eb74225f2ed965bed", size = 44765, upload-time = "2025-06-28T14:37:53.949Z" }, + { url = "https://files.pythonhosted.org/packages/00/7e/94dd81fbfa5bcc8ff7074863a59fb5084fe5178e4e91c971a8c97b80551f/multidict-6.6.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:48c320085d29f2dc8cbc99f76a7bdb86a3d7fefc1c8c1069de4bd95334246308", size = 44446, upload-time = "2025-06-28T14:37:55.241Z" }, + { url = "https://files.pythonhosted.org/packages/34/cd/29e2baca10d57ffa4830cd45ba4e6c8bfbda86121599fa5af8896b8b3fed/multidict-6.6.2-cp39-cp39-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:ef0451c94925832b781b420d23305a69e1d422ee4c31f212f5c7763dce9ae138", size = 223152, upload-time = "2025-06-28T14:37:56.838Z" }, + { url = "https://files.pythonhosted.org/packages/b2/c0/575ca5a588d21de5928f05d7edf2f17e3bfb257128c05981f63e8e567819/multidict-6.6.2-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f01091a5e0c5a362532edaa838f2215810764be5cc16520f3ca72f33aa080993", size = 242482, upload-time = "2025-06-28T14:37:58.377Z" }, + { url = "https://files.pythonhosted.org/packages/82/a5/fdad98822cd558c316fc27619f15a7eee904715da324e2b289ee023c0c32/multidict-6.6.2-cp39-cp39-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:de9ea1af48ed753f7098ccab23ffcd8ca19cdd9731ce14affb901ef746f13ae3", size = 218856, upload-time = "2025-06-28T14:38:00.028Z" }, + { url = "https://files.pythonhosted.org/packages/ee/54/b2aa6766aa0e002e0f6a47309df9800d9e58131b914b615d99d707d261e4/multidict-6.6.2-cp39-cp39-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:e791e0650f48791acdd30a5210a97653c65d13e45b69664f80a831f4ee57aaaa", size = 253100, upload-time = "2025-06-28T14:38:01.433Z" }, + { url = "https://files.pythonhosted.org/packages/93/f5/76e7dd53c6a202efaccb9d9e446537fa1571604b219e1c485a934b6890dd/multidict-6.6.2-cp39-cp39-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:3eb3c2a4afce00fb2b4338f3d22a9babb8b7117aa6ed7e7297d300ba4584ea38", size = 249431, upload-time = "2025-06-28T14:38:03.206Z" }, + { url = "https://files.pythonhosted.org/packages/88/13/124188dd72c6ba99cad65f60847d626c830bff424f8acf9e2e8fb131c8bf/multidict-6.6.2-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5ffa6be22fbf76b1d805c614c323b7da095faed7996e189fd77028bb3fb12e16", size = 240340, upload-time = "2025-06-28T14:38:04.596Z" }, + { url = "https://files.pythonhosted.org/packages/8f/42/527dfa8ad24c7e82fcd64f0f15ff6fd94090ce9bb02b093201ecda459d1b/multidict-6.6.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:135925116dfb07f3b6e1625d3af26a00eb5db3e08fe9fe1c116a89dbdb3c74ff", size = 239138, upload-time = "2025-06-28T14:38:05.996Z" }, + { url = "https://files.pythonhosted.org/packages/ef/e6/9393abb71d1f5da09de0c97a60f9aac3c9ac46c2718fbcade1c393659122/multidict-6.6.2-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:e4625a9c9aa1427ee98d43042cefdb83102c336b1295aa683e83b045885a3f91", size = 232440, upload-time = "2025-06-28T14:38:07.42Z" }, + { url = "https://files.pythonhosted.org/packages/ea/ad/ac6e5ca4c8fa93c26a1e6652a8cf96d9d6dfd152ce25c0b34c8614a0b037/multidict-6.6.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:a928b34b9cc291c6825b217b5b4846d6bc71fddadfcbdd93b4153c6c510d084d", size = 240106, upload-time = "2025-06-28T14:38:09.067Z" }, + { url = "https://files.pythonhosted.org/packages/7f/54/a5c14ca660a8a72bfc25c70dbd9d9133790b9c806818b7fdba76a1939c79/multidict-6.6.2-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:41c799c55b790c41fc331fbbc4763fc47090bfa773d45a0b5748a71453d0b11b", size = 249289, upload-time = "2025-06-28T14:38:10.859Z" }, + { url = "https://files.pythonhosted.org/packages/ab/8e/1049af282045606680de8efa811e291689858b68effa6e19b22ae319f6f2/multidict-6.6.2-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:fe71c7b1763b26f6b368f9e45bf9a1116388d073931bd37a1ed5951af56e43a0", size = 241145, upload-time = "2025-06-28T14:38:12.604Z" }, + { url = "https://files.pythonhosted.org/packages/c8/79/6452de4ea47d22c80f4d95cb61a30f00b6acfc04c406ac6e20a14129923f/multidict-6.6.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:96b745578a33f017b0cee33350c06c986614b04e50d3d899844225077fe831f9", size = 236524, upload-time = "2025-06-28T14:38:14.296Z" }, + { url = "https://files.pythonhosted.org/packages/1d/37/c29ce4caa8cb02085de70f4ee821aeb2b115a8cfd971d399a85309403f5a/multidict-6.6.2-cp39-cp39-win32.whl", hash = "sha256:324cfe383f150123aa70c637781f1d9fd89cb1a583d38468766cb06ff2ea04d7", size = 41372, upload-time = "2025-06-28T14:38:16.014Z" }, + { url = "https://files.pythonhosted.org/packages/06/3e/1c9861136856bd87539559b315d311575be61e66716276fd6b8575795f72/multidict-6.6.2-cp39-cp39-win_amd64.whl", hash = "sha256:f729d139b74441b44d4b8559566d1e9b39e8e282105e390efd5cfcf57b72ea7f", size = 46052, upload-time = "2025-06-28T14:38:17.203Z" }, + { url = "https://files.pythonhosted.org/packages/c1/22/eae2a6d9a7f8910267e01058e5c68671f299a356431e3b767a12576572fa/multidict-6.6.2-cp39-cp39-win_arm64.whl", hash = "sha256:ddc9ff0c3254b6fbc0411ecdbb952995f1479a6647ba58ff5ca5816ab7ed31ef", size = 42947, upload-time = "2025-06-28T14:38:18.452Z" }, + { url = "https://files.pythonhosted.org/packages/0c/30/7b7d121f76ea3ea7561814531e5cc19e75e9b6646818491179c2c875b591/multidict-6.6.2-py3-none-any.whl", hash = "sha256:a7d14275ff2f85a8ff3c2a32e30f94b9fc8a2125b59a4ecc32271a347fad6e78", size = 12312, upload-time = "2025-06-28T14:38:19.677Z" }, ] [[package]] @@ -2798,6 +3364,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/da/d9/f7f9379981e39b8c2511c9e0326d212accacb82f12fbfdc1aa2ce2a7b2b6/multiprocess-0.70.16-py39-none-any.whl", hash = "sha256:a0bafd3ae1b732eac64be2e72038231c1ba97724b60b09400d68f229fcc2fbf3", size = 133351, upload-time = "2024-01-28T18:52:31.981Z" }, ] +[[package]] +name = "murmurhash" +version = "1.0.13" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/54/e9/02efbc6dfc2dd2085da3daacf9a8c17e8356019eceaedbfa21555e32d2af/murmurhash-1.0.13.tar.gz", hash = "sha256:737246d41ee00ff74b07b0bd1f0888be304d203ce668e642c86aa64ede30f8b7", size = 13258, upload-time = "2025-05-22T12:35:57.019Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/62/38/87e5f72aa96a0a816b90cd66209cda713e168d4d23b52af62fdba3c8b33c/murmurhash-1.0.13-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d0292f6fcd99361157fafad5c86d508f367931b7699cce1e14747364596950cb", size = 26528, upload-time = "2025-05-22T12:35:12.181Z" }, + { url = "https://files.pythonhosted.org/packages/14/b0/3ee762e98cf9a8c2df9c8b377c326f3dd4495066d4eace9066fca46eba7a/murmurhash-1.0.13-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:cef667d2e83bdceea3bc20c586c491fa442662ace1aea66ff5e3a18bb38268d8", size = 26679, upload-time = "2025-05-22T12:35:21.808Z" }, + { url = "https://files.pythonhosted.org/packages/f8/85/3a0ad54a61257c31496545ae6861515d640316f93681d1dd917e7be06634/murmurhash-1.0.13-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:52a33a12ecedc432493692c207c784b06b6427ffaa897fc90b7a76e65846478d", size = 26900, upload-time = "2025-05-22T12:35:34.267Z" }, + { url = "https://files.pythonhosted.org/packages/b4/32/ce78bef5d6101568bcb12f5bb5103fabcbe23723ec52e76ff66132d5dbb7/murmurhash-1.0.13-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f741aab86007510199193eee4f87c5ece92bc5a6ca7d0fe0d27335c1203dface", size = 26900, upload-time = "2025-05-22T12:35:42.097Z" }, + { url = "https://files.pythonhosted.org/packages/de/1a/e45a629608b37ab98051dc9313299043aaa579ada8f7e194b6a0eacf546f/murmurhash-1.0.13-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1db35c354c6834aa0dcf693db34ccdf3b051c1cba59b8dc8992a4181c26ec463", size = 26534, upload-time = "2025-05-22T12:35:50.075Z" }, +] + [[package]] name = "mypy" version = "1.16.1" @@ -2969,15 +3548,11 @@ version = "3.5" source = { registry = "https://pypi.org/simple" } resolution-markers = [ "python_full_version >= '3.13' and platform_machine == 'arm64' and sys_platform == 'darwin'", - "python_full_version >= '3.12.4' and python_full_version < '3.13' and platform_machine == 'arm64' and sys_platform == 'darwin'", - "python_full_version >= '3.12' and python_full_version < '3.12.4' and platform_machine == 'arm64' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and platform_machine == 'arm64' and sys_platform == 'darwin'", "python_full_version == '3.11.*' and platform_machine == 'arm64' and sys_platform == 'darwin'", - "python_full_version >= '3.12.4' and platform_machine != 'arm64' and sys_platform == 'darwin'", - "python_full_version >= '3.12' and python_full_version < '3.12.4' and platform_machine != 'arm64' and sys_platform == 'darwin'", - "python_full_version >= '3.12.4' and platform_machine == 'aarch64' and sys_platform == 'linux'", - "python_full_version >= '3.12' and python_full_version < '3.12.4' and platform_machine == 'aarch64' and sys_platform == 'linux'", - "(python_full_version >= '3.12.4' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version >= '3.12.4' and sys_platform != 'darwin' and sys_platform != 'linux')", - "(python_full_version >= '3.12' and python_full_version < '3.12.4' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version >= '3.12' and python_full_version < '3.12.4' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version >= '3.12' and platform_machine != 'arm64' and sys_platform == 'darwin'", + "python_full_version >= '3.12' and platform_machine == 'aarch64' and sys_platform == 'linux'", + "(python_full_version >= '3.12' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version >= '3.12' and sys_platform != 'darwin' and sys_platform != 'linux')", "python_full_version == '3.11.*' and platform_machine != 'arm64' and sys_platform == 'darwin'", "python_full_version == '3.11.*' and platform_machine == 'aarch64' and sys_platform == 'linux'", "(python_full_version == '3.11.*' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version == '3.11.*' and sys_platform != 'darwin' and sys_platform != 'linux')", @@ -3051,6 +3626,102 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/d2/1d/1b658dbd2b9fa9c4c9f32accbfc0205d532c8c6194dc0f2a4c0428e7128a/nodeenv-1.9.1-py2.py3-none-any.whl", hash = "sha256:ba11c9782d29c27c70ffbdda2d7415098754709be8a7056d79a737cd901155c9", size = 22314, upload-time = "2024-06-04T18:44:08.352Z" }, ] +[[package]] +name = "num2words" +version = "0.5.14" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "docopt", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f6/58/ad645bd38b4b648eb2fc2ba1b909398e54eb0cbb6a7dbd2b4953e38c9621/num2words-0.5.14.tar.gz", hash = "sha256:b066ec18e56b6616a3b38086b5747daafbaa8868b226a36127e0451c0cf379c6", size = 218213, upload-time = "2024-12-17T20:17:10.191Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d6/5b/545e9267a1cc080c8a1be2746113a063e34bcdd0f5173fd665a5c13cb234/num2words-0.5.14-py3-none-any.whl", hash = "sha256:1c8e5b00142fc2966fd8d685001e36c4a9911e070d1b120e1beb721fa1edb33d", size = 163525, upload-time = "2024-12-17T20:17:06.074Z" }, +] + +[[package]] +name = "numba" +version = "0.60.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'", + "python_full_version < '3.10' and platform_machine == 'aarch64' and sys_platform == 'linux'", + "(python_full_version < '3.10' and platform_machine != 'arm64' and sys_platform == 'darwin') or (python_full_version < '3.10' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version < '3.10' and sys_platform != 'darwin' and sys_platform != 'linux')", +] +dependencies = [ + { name = "llvmlite", version = "0.43.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, + { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/3c/93/2849300a9184775ba274aba6f82f303343669b0592b7bb0849ea713dabb0/numba-0.60.0.tar.gz", hash = "sha256:5df6158e5584eece5fc83294b949fd30b9f1125df7708862205217e068aabf16", size = 2702171, upload-time = "2024-06-13T18:11:19.869Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f7/cf/baa13a7e3556d73d9e38021e6d6aa4aeb30d8b94545aa8b70d0f24a1ccc4/numba-0.60.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5d761de835cd38fb400d2c26bb103a2726f548dc30368853121d66201672e651", size = 2647627, upload-time = "2024-06-13T18:10:29.857Z" }, + { url = "https://files.pythonhosted.org/packages/ac/ba/4b57fa498564457c3cc9fc9e570a6b08e6086c74220f24baaf04e54b995f/numba-0.60.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:159e618ef213fba758837f9837fb402bbe65326e60ba0633dbe6c7f274d42c1b", size = 2650322, upload-time = "2024-06-13T18:10:32.849Z" }, + { url = "https://files.pythonhosted.org/packages/28/98/7ea97ee75870a54f938a8c70f7e0be4495ba5349c5f9db09d467c4a5d5b7/numba-0.60.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:1527dc578b95c7c4ff248792ec33d097ba6bef9eda466c948b68dfc995c25781", size = 3407390, upload-time = "2024-06-13T18:10:34.741Z" }, + { url = "https://files.pythonhosted.org/packages/79/58/cb4ac5b8f7ec64200460aef1fed88258fb872ceef504ab1f989d2ff0f684/numba-0.60.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:fe0b28abb8d70f8160798f4de9d486143200f34458d34c4a214114e445d7124e", size = 3699694, upload-time = "2024-06-13T18:10:37.295Z" }, + { url = "https://files.pythonhosted.org/packages/1c/b0/c61a93ca947d12233ff45de506ddbf52af3f752066a0b8be4d27426e16da/numba-0.60.0-cp310-cp310-win_amd64.whl", hash = "sha256:19407ced081d7e2e4b8d8c36aa57b7452e0283871c296e12d798852bc7d7f198", size = 2687030, upload-time = "2024-06-13T18:10:39.47Z" }, + { url = "https://files.pythonhosted.org/packages/98/ad/df18d492a8f00d29a30db307904b9b296e37507034eedb523876f3a2e13e/numba-0.60.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a17b70fc9e380ee29c42717e8cc0bfaa5556c416d94f9aa96ba13acb41bdece8", size = 2647254, upload-time = "2024-06-13T18:10:41.69Z" }, + { url = "https://files.pythonhosted.org/packages/9a/51/a4dc2c01ce7a850b8e56ff6d5381d047a5daea83d12bad08aa071d34b2ee/numba-0.60.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3fb02b344a2a80efa6f677aa5c40cd5dd452e1b35f8d1c2af0dfd9ada9978e4b", size = 2649970, upload-time = "2024-06-13T18:10:44.682Z" }, + { url = "https://files.pythonhosted.org/packages/f9/4c/8889ac94c0b33dca80bed11564b8c6d9ea14d7f094e674c58e5c5b05859b/numba-0.60.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:5f4fde652ea604ea3c86508a3fb31556a6157b2c76c8b51b1d45eb40c8598703", size = 3412492, upload-time = "2024-06-13T18:10:47.1Z" }, + { url = "https://files.pythonhosted.org/packages/57/03/2b4245b05b71c0cee667e6a0b51606dfa7f4157c9093d71c6b208385a611/numba-0.60.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4142d7ac0210cc86432b818338a2bc368dc773a2f5cf1e32ff7c5b378bd63ee8", size = 3705018, upload-time = "2024-06-13T18:10:49.539Z" }, + { url = "https://files.pythonhosted.org/packages/79/89/2d924ca60dbf949f18a6fec223a2445f5f428d9a5f97a6b29c2122319015/numba-0.60.0-cp311-cp311-win_amd64.whl", hash = "sha256:cac02c041e9b5bc8cf8f2034ff6f0dbafccd1ae9590dc146b3a02a45e53af4e2", size = 2686920, upload-time = "2024-06-13T18:10:51.937Z" }, + { url = "https://files.pythonhosted.org/packages/eb/5c/b5ec752c475e78a6c3676b67c514220dbde2725896bbb0b6ec6ea54b2738/numba-0.60.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:d7da4098db31182fc5ffe4bc42c6f24cd7d1cb8a14b59fd755bfee32e34b8404", size = 2647866, upload-time = "2024-06-13T18:10:54.453Z" }, + { url = "https://files.pythonhosted.org/packages/65/42/39559664b2e7c15689a638c2a38b3b74c6e69a04e2b3019b9f7742479188/numba-0.60.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:38d6ea4c1f56417076ecf8fc327c831ae793282e0ff51080c5094cb726507b1c", size = 2650208, upload-time = "2024-06-13T18:10:56.779Z" }, + { url = "https://files.pythonhosted.org/packages/67/88/c4459ccc05674ef02119abf2888ccd3e2fed12a323f52255f4982fc95876/numba-0.60.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:62908d29fb6a3229c242e981ca27e32a6e606cc253fc9e8faeb0e48760de241e", size = 3466946, upload-time = "2024-06-13T18:10:58.961Z" }, + { url = "https://files.pythonhosted.org/packages/8b/41/ac11cf33524def12aa5bd698226ae196a1185831c05ed29dc0c56eaa308b/numba-0.60.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:0ebaa91538e996f708f1ab30ef4d3ddc344b64b5227b67a57aa74f401bb68b9d", size = 3761463, upload-time = "2024-06-13T18:11:01.657Z" }, + { url = "https://files.pythonhosted.org/packages/ca/bd/0fe29fcd1b6a8de479a4ed25c6e56470e467e3611c079d55869ceef2b6d1/numba-0.60.0-cp312-cp312-win_amd64.whl", hash = "sha256:f75262e8fe7fa96db1dca93d53a194a38c46da28b112b8a4aca168f0df860347", size = 2707588, upload-time = "2024-06-13T18:11:04.261Z" }, + { url = "https://files.pythonhosted.org/packages/68/1a/87c53f836cdf557083248c3f47212271f220280ff766538795e77c8c6bbf/numba-0.60.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:01ef4cd7d83abe087d644eaa3d95831b777aa21d441a23703d649e06b8e06b74", size = 2647186, upload-time = "2024-06-13T18:11:06.753Z" }, + { url = "https://files.pythonhosted.org/packages/28/14/a5baa1f2edea7b49afa4dc1bb1b126645198cf1075186853b5b497be826e/numba-0.60.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:819a3dfd4630d95fd574036f99e47212a1af41cbcb019bf8afac63ff56834449", size = 2650038, upload-time = "2024-06-13T18:11:10.869Z" }, + { url = "https://files.pythonhosted.org/packages/3b/bd/f1985719ff34e37e07bb18f9d3acd17e5a21da255f550c8eae031e2ddf5f/numba-0.60.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:0b983bd6ad82fe868493012487f34eae8bf7dd94654951404114f23c3466d34b", size = 3403010, upload-time = "2024-06-13T18:11:13.057Z" }, + { url = "https://files.pythonhosted.org/packages/54/9b/cd73d3f6617ddc8398a63ef97d8dc9139a9879b9ca8a7ca4b8789056ea46/numba-0.60.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c151748cd269ddeab66334bd754817ffc0cabd9433acb0f551697e5151917d25", size = 3695086, upload-time = "2024-06-13T18:11:15.497Z" }, + { url = "https://files.pythonhosted.org/packages/01/01/8b7b670c77c5ea0e47e283d82332969bf672ab6410d0b2610cac5b7a3ded/numba-0.60.0-cp39-cp39-win_amd64.whl", hash = "sha256:3031547a015710140e8c87226b4cfe927cac199835e5bf7d4fe5cb64e814e3ab", size = 2686978, upload-time = "2024-06-13T18:11:17.765Z" }, +] + +[[package]] +name = "numba" +version = "0.61.2" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.13' and platform_machine == 'arm64' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and platform_machine == 'arm64' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and platform_machine == 'arm64' and sys_platform == 'darwin'", + "python_full_version == '3.10.*' and platform_machine == 'arm64' and sys_platform == 'darwin'", + "python_full_version >= '3.12' and platform_machine != 'arm64' and sys_platform == 'darwin'", + "python_full_version >= '3.12' and platform_machine == 'aarch64' and sys_platform == 'linux'", + "(python_full_version >= '3.12' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version >= '3.12' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version == '3.11.*' and platform_machine != 'arm64' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and platform_machine == 'aarch64' and sys_platform == 'linux'", + "(python_full_version == '3.11.*' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version == '3.11.*' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version == '3.10.*' and platform_machine != 'arm64' and sys_platform == 'darwin'", + "python_full_version == '3.10.*' and platform_machine == 'aarch64' and sys_platform == 'linux'", + "(python_full_version == '3.10.*' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version == '3.10.*' and sys_platform != 'darwin' and sys_platform != 'linux')", +] +dependencies = [ + { name = "llvmlite", version = "0.44.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/1c/a0/e21f57604304aa03ebb8e098429222722ad99176a4f979d34af1d1ee80da/numba-0.61.2.tar.gz", hash = "sha256:8750ee147940a6637b80ecf7f95062185ad8726c8c28a2295b8ec1160a196f7d", size = 2820615, upload-time = "2025-04-09T02:58:07.659Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/eb/ca/f470be59552ccbf9531d2d383b67ae0b9b524d435fb4a0d229fef135116e/numba-0.61.2-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:cf9f9fc00d6eca0c23fc840817ce9f439b9f03c8f03d6246c0e7f0cb15b7162a", size = 2775663, upload-time = "2025-04-09T02:57:34.143Z" }, + { url = "https://files.pythonhosted.org/packages/f5/13/3bdf52609c80d460a3b4acfb9fdb3817e392875c0d6270cf3fd9546f138b/numba-0.61.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ea0247617edcb5dd61f6106a56255baab031acc4257bddaeddb3a1003b4ca3fd", size = 2778344, upload-time = "2025-04-09T02:57:36.609Z" }, + { url = "https://files.pythonhosted.org/packages/e2/7d/bfb2805bcfbd479f04f835241ecf28519f6e3609912e3a985aed45e21370/numba-0.61.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ae8c7a522c26215d5f62ebec436e3d341f7f590079245a2f1008dfd498cc1642", size = 3824054, upload-time = "2025-04-09T02:57:38.162Z" }, + { url = "https://files.pythonhosted.org/packages/e3/27/797b2004745c92955470c73c82f0e300cf033c791f45bdecb4b33b12bdea/numba-0.61.2-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:bd1e74609855aa43661edffca37346e4e8462f6903889917e9f41db40907daa2", size = 3518531, upload-time = "2025-04-09T02:57:39.709Z" }, + { url = "https://files.pythonhosted.org/packages/b1/c6/c2fb11e50482cb310afae87a997707f6c7d8a48967b9696271347441f650/numba-0.61.2-cp310-cp310-win_amd64.whl", hash = "sha256:ae45830b129c6137294093b269ef0a22998ccc27bf7cf096ab8dcf7bca8946f9", size = 2831612, upload-time = "2025-04-09T02:57:41.559Z" }, + { url = "https://files.pythonhosted.org/packages/3f/97/c99d1056aed767503c228f7099dc11c402906b42a4757fec2819329abb98/numba-0.61.2-cp311-cp311-macosx_10_14_x86_64.whl", hash = "sha256:efd3db391df53aaa5cfbee189b6c910a5b471488749fd6606c3f33fc984c2ae2", size = 2775825, upload-time = "2025-04-09T02:57:43.442Z" }, + { url = "https://files.pythonhosted.org/packages/95/9e/63c549f37136e892f006260c3e2613d09d5120672378191f2dc387ba65a2/numba-0.61.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:49c980e4171948ffebf6b9a2520ea81feed113c1f4890747ba7f59e74be84b1b", size = 2778695, upload-time = "2025-04-09T02:57:44.968Z" }, + { url = "https://files.pythonhosted.org/packages/97/c8/8740616c8436c86c1b9a62e72cb891177d2c34c2d24ddcde4c390371bf4c/numba-0.61.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3945615cd73c2c7eba2a85ccc9c1730c21cd3958bfcf5a44302abae0fb07bb60", size = 3829227, upload-time = "2025-04-09T02:57:46.63Z" }, + { url = "https://files.pythonhosted.org/packages/fc/06/66e99ae06507c31d15ff3ecd1f108f2f59e18b6e08662cd5f8a5853fbd18/numba-0.61.2-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:bbfdf4eca202cebade0b7d43896978e146f39398909a42941c9303f82f403a18", size = 3523422, upload-time = "2025-04-09T02:57:48.222Z" }, + { url = "https://files.pythonhosted.org/packages/0f/a4/2b309a6a9f6d4d8cfba583401c7c2f9ff887adb5d54d8e2e130274c0973f/numba-0.61.2-cp311-cp311-win_amd64.whl", hash = "sha256:76bcec9f46259cedf888041b9886e257ae101c6268261b19fda8cfbc52bec9d1", size = 2831505, upload-time = "2025-04-09T02:57:50.108Z" }, + { url = "https://files.pythonhosted.org/packages/b4/a0/c6b7b9c615cfa3b98c4c63f4316e3f6b3bbe2387740277006551784218cd/numba-0.61.2-cp312-cp312-macosx_10_14_x86_64.whl", hash = "sha256:34fba9406078bac7ab052efbf0d13939426c753ad72946baaa5bf9ae0ebb8dd2", size = 2776626, upload-time = "2025-04-09T02:57:51.857Z" }, + { url = "https://files.pythonhosted.org/packages/92/4a/fe4e3c2ecad72d88f5f8cd04e7f7cff49e718398a2fac02d2947480a00ca/numba-0.61.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4ddce10009bc097b080fc96876d14c051cc0c7679e99de3e0af59014dab7dfe8", size = 2779287, upload-time = "2025-04-09T02:57:53.658Z" }, + { url = "https://files.pythonhosted.org/packages/9a/2d/e518df036feab381c23a624dac47f8445ac55686ec7f11083655eb707da3/numba-0.61.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:5b1bb509d01f23d70325d3a5a0e237cbc9544dd50e50588bc581ba860c213546", size = 3885928, upload-time = "2025-04-09T02:57:55.206Z" }, + { url = "https://files.pythonhosted.org/packages/10/0f/23cced68ead67b75d77cfcca3df4991d1855c897ee0ff3fe25a56ed82108/numba-0.61.2-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:48a53a3de8f8793526cbe330f2a39fe9a6638efcbf11bd63f3d2f9757ae345cd", size = 3577115, upload-time = "2025-04-09T02:57:56.818Z" }, + { url = "https://files.pythonhosted.org/packages/68/1d/ddb3e704c5a8fb90142bf9dc195c27db02a08a99f037395503bfbc1d14b3/numba-0.61.2-cp312-cp312-win_amd64.whl", hash = "sha256:97cf4f12c728cf77c9c1d7c23707e4d8fb4632b46275f8f3397de33e5877af18", size = 2831929, upload-time = "2025-04-09T02:57:58.45Z" }, + { url = "https://files.pythonhosted.org/packages/0b/f3/0fe4c1b1f2569e8a18ad90c159298d862f96c3964392a20d74fc628aee44/numba-0.61.2-cp313-cp313-macosx_10_14_x86_64.whl", hash = "sha256:3a10a8fc9afac40b1eac55717cece1b8b1ac0b946f5065c89e00bde646b5b154", size = 2771785, upload-time = "2025-04-09T02:57:59.96Z" }, + { url = "https://files.pythonhosted.org/packages/e9/71/91b277d712e46bd5059f8a5866862ed1116091a7cb03bd2704ba8ebe015f/numba-0.61.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7d3bcada3c9afba3bed413fba45845f2fb9cd0d2b27dd58a1be90257e293d140", size = 2773289, upload-time = "2025-04-09T02:58:01.435Z" }, + { url = "https://files.pythonhosted.org/packages/0d/e0/5ea04e7ad2c39288c0f0f9e8d47638ad70f28e275d092733b5817cf243c9/numba-0.61.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:bdbca73ad81fa196bd53dc12e3aaf1564ae036e0c125f237c7644fe64a4928ab", size = 3893918, upload-time = "2025-04-09T02:58:02.933Z" }, + { url = "https://files.pythonhosted.org/packages/17/58/064f4dcb7d7e9412f16ecf80ed753f92297e39f399c905389688cf950b81/numba-0.61.2-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:5f154aaea625fb32cfbe3b80c5456d514d416fcdf79733dd69c0df3a11348e9e", size = 3584056, upload-time = "2025-04-09T02:58:04.538Z" }, + { url = "https://files.pythonhosted.org/packages/af/a4/6d3a0f2d3989e62a18749e1e9913d5fa4910bbb3e3311a035baea6caf26d/numba-0.61.2-cp313-cp313-win_amd64.whl", hash = "sha256:59321215e2e0ac5fa928a8020ab00b8e57cda8a97384963ac0dfa4d4e6aa54e7", size = 2831846, upload-time = "2025-04-09T02:58:06.125Z" }, +] + [[package]] name = "numpy" version = "2.0.2" @@ -3113,7 +3784,16 @@ name = "numpy" version = "2.2.6" source = { registry = "https://pypi.org/simple" } resolution-markers = [ + "python_full_version >= '3.13' and platform_machine == 'arm64' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and platform_machine == 'arm64' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and platform_machine == 'arm64' and sys_platform == 'darwin'", "python_full_version == '3.10.*' and platform_machine == 'arm64' and sys_platform == 'darwin'", + "python_full_version >= '3.12' and platform_machine != 'arm64' and sys_platform == 'darwin'", + "python_full_version >= '3.12' and platform_machine == 'aarch64' and sys_platform == 'linux'", + "(python_full_version >= '3.12' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version >= '3.12' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version == '3.11.*' and platform_machine != 'arm64' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and platform_machine == 'aarch64' and sys_platform == 'linux'", + "(python_full_version == '3.11.*' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version == '3.11.*' and sys_platform != 'darwin' and sys_platform != 'linux')", "python_full_version == '3.10.*' and platform_machine != 'arm64' and sys_platform == 'darwin'", "python_full_version == '3.10.*' and platform_machine == 'aarch64' and sys_platform == 'linux'", "(python_full_version == '3.10.*' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version == '3.10.*' and sys_platform != 'darwin' and sys_platform != 'linux')", @@ -3176,79 +3856,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/37/48/ac2a9584402fb6c0cd5b5d1a91dcf176b15760130dd386bbafdbfe3640bf/numpy-2.2.6-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:d042d24c90c41b54fd506da306759e06e568864df8ec17ccc17e9e884634fd00", size = 12812666, upload-time = "2025-05-17T21:45:31.426Z" }, ] -[[package]] -name = "numpy" -version = "2.3.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.13' and platform_machine == 'arm64' and sys_platform == 'darwin'", - "python_full_version >= '3.12.4' and python_full_version < '3.13' and platform_machine == 'arm64' and sys_platform == 'darwin'", - "python_full_version >= '3.12' and python_full_version < '3.12.4' and platform_machine == 'arm64' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and platform_machine == 'arm64' and sys_platform == 'darwin'", - "python_full_version >= '3.12.4' and platform_machine != 'arm64' and sys_platform == 'darwin'", - "python_full_version >= '3.12' and python_full_version < '3.12.4' and platform_machine != 'arm64' and sys_platform == 'darwin'", - "python_full_version >= '3.12.4' and platform_machine == 'aarch64' and sys_platform == 'linux'", - "python_full_version >= '3.12' and python_full_version < '3.12.4' and platform_machine == 'aarch64' and sys_platform == 'linux'", - "(python_full_version >= '3.12.4' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version >= '3.12.4' and sys_platform != 'darwin' and sys_platform != 'linux')", - "(python_full_version >= '3.12' and python_full_version < '3.12.4' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version >= '3.12' and python_full_version < '3.12.4' and sys_platform != 'darwin' and sys_platform != 'linux')", - "python_full_version == '3.11.*' and platform_machine != 'arm64' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and platform_machine == 'aarch64' and sys_platform == 'linux'", - "(python_full_version == '3.11.*' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version == '3.11.*' and sys_platform != 'darwin' and sys_platform != 'linux')", -] -sdist = { url = "https://files.pythonhosted.org/packages/f3/db/8e12381333aea300890829a0a36bfa738cac95475d88982d538725143fd9/numpy-2.3.0.tar.gz", hash = "sha256:581f87f9e9e9db2cba2141400e160e9dd644ee248788d6f90636eeb8fd9260a6", size = 20382813, upload-time = "2025-06-07T14:54:32.608Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/fd/5f/df67435257d827eb3b8af66f585223dc2c3f2eb7ad0b50cb1dae2f35f494/numpy-2.3.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c3c9fdde0fa18afa1099d6257eb82890ea4f3102847e692193b54e00312a9ae9", size = 21199688, upload-time = "2025-06-07T14:36:52.067Z" }, - { url = "https://files.pythonhosted.org/packages/e5/ce/aad219575055d6c9ef29c8c540c81e1c38815d3be1fe09cdbe53d48ee838/numpy-2.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:46d16f72c2192da7b83984aa5455baee640e33a9f1e61e656f29adf55e406c2b", size = 14359277, upload-time = "2025-06-07T14:37:15.325Z" }, - { url = "https://files.pythonhosted.org/packages/29/6b/2d31da8e6d2ec99bed54c185337a87f8fbeccc1cd9804e38217e92f3f5e2/numpy-2.3.0-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:a0be278be9307c4ab06b788f2a077f05e180aea817b3e41cebbd5aaf7bd85ed3", size = 5376069, upload-time = "2025-06-07T14:37:25.636Z" }, - { url = "https://files.pythonhosted.org/packages/7d/2a/6c59a062397553ec7045c53d5fcdad44e4536e54972faa2ba44153bca984/numpy-2.3.0-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:99224862d1412d2562248d4710126355d3a8db7672170a39d6909ac47687a8a4", size = 6913057, upload-time = "2025-06-07T14:37:37.215Z" }, - { url = "https://files.pythonhosted.org/packages/d5/5a/8df16f258d28d033e4f359e29d3aeb54663243ac7b71504e89deeb813202/numpy-2.3.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:2393a914db64b0ead0ab80c962e42d09d5f385802006a6c87835acb1f58adb96", size = 14568083, upload-time = "2025-06-07T14:37:59.337Z" }, - { url = "https://files.pythonhosted.org/packages/0a/92/0528a563dfc2cdccdcb208c0e241a4bb500d7cde218651ffb834e8febc50/numpy-2.3.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:7729c8008d55e80784bd113787ce876ca117185c579c0d626f59b87d433ea779", size = 16929402, upload-time = "2025-06-07T14:38:24.343Z" }, - { url = "https://files.pythonhosted.org/packages/e4/2f/e7a8c8d4a2212c527568d84f31587012cf5497a7271ea1f23332142f634e/numpy-2.3.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:06d4fb37a8d383b769281714897420c5cc3545c79dc427df57fc9b852ee0bf58", size = 15879193, upload-time = "2025-06-07T14:38:48.007Z" }, - { url = "https://files.pythonhosted.org/packages/e2/c3/dada3f005953847fe35f42ac0fe746f6e1ea90b4c6775e4be605dcd7b578/numpy-2.3.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:c39ec392b5db5088259c68250e342612db82dc80ce044cf16496cf14cf6bc6f8", size = 18665318, upload-time = "2025-06-07T14:39:15.794Z" }, - { url = "https://files.pythonhosted.org/packages/3b/ae/3f448517dedefc8dd64d803f9d51a8904a48df730e00a3c5fb1e75a60620/numpy-2.3.0-cp311-cp311-win32.whl", hash = "sha256:ee9d3ee70d62827bc91f3ea5eee33153212c41f639918550ac0475e3588da59f", size = 6601108, upload-time = "2025-06-07T14:39:27.176Z" }, - { url = "https://files.pythonhosted.org/packages/8c/4a/556406d2bb2b9874c8cbc840c962683ac28f21efbc9b01177d78f0199ca1/numpy-2.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:43c55b6a860b0eb44d42341438b03513cf3879cb3617afb749ad49307e164edd", size = 13021525, upload-time = "2025-06-07T14:39:46.637Z" }, - { url = "https://files.pythonhosted.org/packages/ed/ee/bf54278aef30335ffa9a189f869ea09e1a195b3f4b93062164a3b02678a7/numpy-2.3.0-cp311-cp311-win_arm64.whl", hash = "sha256:2e6a1409eee0cb0316cb64640a49a49ca44deb1a537e6b1121dc7c458a1299a8", size = 10170327, upload-time = "2025-06-07T14:40:02.703Z" }, - { url = "https://files.pythonhosted.org/packages/89/59/9df493df81ac6f76e9f05cdbe013cdb0c9a37b434f6e594f5bd25e278908/numpy-2.3.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:389b85335838155a9076e9ad7f8fdba0827496ec2d2dc32ce69ce7898bde03ba", size = 20897025, upload-time = "2025-06-07T14:40:33.558Z" }, - { url = "https://files.pythonhosted.org/packages/2f/86/4ff04335901d6cf3a6bb9c748b0097546ae5af35e455ae9b962ebff4ecd7/numpy-2.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9498f60cd6bb8238d8eaf468a3d5bb031d34cd12556af53510f05fcf581c1b7e", size = 14129882, upload-time = "2025-06-07T14:40:55.034Z" }, - { url = "https://files.pythonhosted.org/packages/71/8d/a942cd4f959de7f08a79ab0c7e6cecb7431d5403dce78959a726f0f57aa1/numpy-2.3.0-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:622a65d40d8eb427d8e722fd410ac3ad4958002f109230bc714fa551044ebae2", size = 5110181, upload-time = "2025-06-07T14:41:04.4Z" }, - { url = "https://files.pythonhosted.org/packages/86/5d/45850982efc7b2c839c5626fb67fbbc520d5b0d7c1ba1ae3651f2f74c296/numpy-2.3.0-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:b9446d9d8505aadadb686d51d838f2b6688c9e85636a0c3abaeb55ed54756459", size = 6647581, upload-time = "2025-06-07T14:41:14.695Z" }, - { url = "https://files.pythonhosted.org/packages/1a/c0/c871d4a83f93b00373d3eebe4b01525eee8ef10b623a335ec262b58f4dc1/numpy-2.3.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:50080245365d75137a2bf46151e975de63146ae6d79f7e6bd5c0e85c9931d06a", size = 14262317, upload-time = "2025-06-07T14:41:35.862Z" }, - { url = "https://files.pythonhosted.org/packages/b7/f6/bc47f5fa666d5ff4145254f9e618d56e6a4ef9b874654ca74c19113bb538/numpy-2.3.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:c24bb4113c66936eeaa0dc1e47c74770453d34f46ee07ae4efd853a2ed1ad10a", size = 16633919, upload-time = "2025-06-07T14:42:00.622Z" }, - { url = "https://files.pythonhosted.org/packages/f5/b4/65f48009ca0c9b76df5f404fccdea5a985a1bb2e34e97f21a17d9ad1a4ba/numpy-2.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:4d8d294287fdf685281e671886c6dcdf0291a7c19db3e5cb4178d07ccf6ecc67", size = 15567651, upload-time = "2025-06-07T14:42:24.429Z" }, - { url = "https://files.pythonhosted.org/packages/f1/62/5367855a2018578e9334ed08252ef67cc302e53edc869666f71641cad40b/numpy-2.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:6295f81f093b7f5769d1728a6bd8bf7466de2adfa771ede944ce6711382b89dc", size = 18361723, upload-time = "2025-06-07T14:42:51.167Z" }, - { url = "https://files.pythonhosted.org/packages/d4/75/5baed8cd867eabee8aad1e74d7197d73971d6a3d40c821f1848b8fab8b84/numpy-2.3.0-cp312-cp312-win32.whl", hash = "sha256:e6648078bdd974ef5d15cecc31b0c410e2e24178a6e10bf511e0557eed0f2570", size = 6318285, upload-time = "2025-06-07T14:43:02.052Z" }, - { url = "https://files.pythonhosted.org/packages/bc/49/d5781eaa1a15acb3b3a3f49dc9e2ff18d92d0ce5c2976f4ab5c0a7360250/numpy-2.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:0898c67a58cdaaf29994bc0e2c65230fd4de0ac40afaf1584ed0b02cd74c6fdd", size = 12732594, upload-time = "2025-06-07T14:43:21.071Z" }, - { url = "https://files.pythonhosted.org/packages/c2/1c/6d343e030815c7c97a1f9fbad00211b47717c7fe446834c224bd5311e6f1/numpy-2.3.0-cp312-cp312-win_arm64.whl", hash = "sha256:bd8df082b6c4695753ad6193018c05aac465d634834dca47a3ae06d4bb22d9ea", size = 9891498, upload-time = "2025-06-07T14:43:36.332Z" }, - { url = "https://files.pythonhosted.org/packages/73/fc/1d67f751fd4dbafc5780244fe699bc4084268bad44b7c5deb0492473127b/numpy-2.3.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:5754ab5595bfa2c2387d241296e0381c21f44a4b90a776c3c1d39eede13a746a", size = 20889633, upload-time = "2025-06-07T14:44:06.839Z" }, - { url = "https://files.pythonhosted.org/packages/e8/95/73ffdb69e5c3f19ec4530f8924c4386e7ba097efc94b9c0aff607178ad94/numpy-2.3.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d11fa02f77752d8099573d64e5fe33de3229b6632036ec08f7080f46b6649959", size = 14151683, upload-time = "2025-06-07T14:44:28.847Z" }, - { url = "https://files.pythonhosted.org/packages/64/d5/06d4bb31bb65a1d9c419eb5676173a2f90fd8da3c59f816cc54c640ce265/numpy-2.3.0-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:aba48d17e87688a765ab1cd557882052f238e2f36545dfa8e29e6a91aef77afe", size = 5102683, upload-time = "2025-06-07T14:44:38.417Z" }, - { url = "https://files.pythonhosted.org/packages/12/8b/6c2cef44f8ccdc231f6b56013dff1d71138c48124334aded36b1a1b30c5a/numpy-2.3.0-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:4dc58865623023b63b10d52f18abaac3729346a7a46a778381e0e3af4b7f3beb", size = 6640253, upload-time = "2025-06-07T14:44:49.359Z" }, - { url = "https://files.pythonhosted.org/packages/62/aa/fca4bf8de3396ddb59544df9b75ffe5b73096174de97a9492d426f5cd4aa/numpy-2.3.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:df470d376f54e052c76517393fa443758fefcdd634645bc9c1f84eafc67087f0", size = 14258658, upload-time = "2025-06-07T14:45:10.156Z" }, - { url = "https://files.pythonhosted.org/packages/1c/12/734dce1087eed1875f2297f687e671cfe53a091b6f2f55f0c7241aad041b/numpy-2.3.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:87717eb24d4a8a64683b7a4e91ace04e2f5c7c77872f823f02a94feee186168f", size = 16628765, upload-time = "2025-06-07T14:45:35.076Z" }, - { url = "https://files.pythonhosted.org/packages/48/03/ffa41ade0e825cbcd5606a5669962419528212a16082763fc051a7247d76/numpy-2.3.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:d8fa264d56882b59dcb5ea4d6ab6f31d0c58a57b41aec605848b6eb2ef4a43e8", size = 15564335, upload-time = "2025-06-07T14:45:58.797Z" }, - { url = "https://files.pythonhosted.org/packages/07/58/869398a11863310aee0ff85a3e13b4c12f20d032b90c4b3ee93c3b728393/numpy-2.3.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e651756066a0eaf900916497e20e02fe1ae544187cb0fe88de981671ee7f6270", size = 18360608, upload-time = "2025-06-07T14:46:25.687Z" }, - { url = "https://files.pythonhosted.org/packages/2f/8a/5756935752ad278c17e8a061eb2127c9a3edf4ba2c31779548b336f23c8d/numpy-2.3.0-cp313-cp313-win32.whl", hash = "sha256:e43c3cce3b6ae5f94696669ff2a6eafd9a6b9332008bafa4117af70f4b88be6f", size = 6310005, upload-time = "2025-06-07T14:50:13.138Z" }, - { url = "https://files.pythonhosted.org/packages/08/60/61d60cf0dfc0bf15381eaef46366ebc0c1a787856d1db0c80b006092af84/numpy-2.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:81ae0bf2564cf475f94be4a27ef7bcf8af0c3e28da46770fc904da9abd5279b5", size = 12729093, upload-time = "2025-06-07T14:50:31.82Z" }, - { url = "https://files.pythonhosted.org/packages/66/31/2f2f2d2b3e3c32d5753d01437240feaa32220b73258c9eef2e42a0832866/numpy-2.3.0-cp313-cp313-win_arm64.whl", hash = "sha256:c8738baa52505fa6e82778580b23f945e3578412554d937093eac9205e845e6e", size = 9885689, upload-time = "2025-06-07T14:50:47.888Z" }, - { url = "https://files.pythonhosted.org/packages/f1/89/c7828f23cc50f607ceb912774bb4cff225ccae7131c431398ad8400e2c98/numpy-2.3.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:39b27d8b38942a647f048b675f134dd5a567f95bfff481f9109ec308515c51d8", size = 20986612, upload-time = "2025-06-07T14:46:56.077Z" }, - { url = "https://files.pythonhosted.org/packages/dd/46/79ecf47da34c4c50eedec7511e53d57ffdfd31c742c00be7dc1d5ffdb917/numpy-2.3.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:0eba4a1ea88f9a6f30f56fdafdeb8da3774349eacddab9581a21234b8535d3d3", size = 14298953, upload-time = "2025-06-07T14:47:18.053Z" }, - { url = "https://files.pythonhosted.org/packages/59/44/f6caf50713d6ff4480640bccb2a534ce1d8e6e0960c8f864947439f0ee95/numpy-2.3.0-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:b0f1f11d0a1da54927436505a5a7670b154eac27f5672afc389661013dfe3d4f", size = 5225806, upload-time = "2025-06-07T14:47:27.524Z" }, - { url = "https://files.pythonhosted.org/packages/a6/43/e1fd1aca7c97e234dd05e66de4ab7a5be54548257efcdd1bc33637e72102/numpy-2.3.0-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:690d0a5b60a47e1f9dcec7b77750a4854c0d690e9058b7bef3106e3ae9117808", size = 6735169, upload-time = "2025-06-07T14:47:38.057Z" }, - { url = "https://files.pythonhosted.org/packages/84/89/f76f93b06a03177c0faa7ca94d0856c4e5c4bcaf3c5f77640c9ed0303e1c/numpy-2.3.0-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:8b51ead2b258284458e570942137155978583e407babc22e3d0ed7af33ce06f8", size = 14330701, upload-time = "2025-06-07T14:47:59.113Z" }, - { url = "https://files.pythonhosted.org/packages/aa/f5/4858c3e9ff7a7d64561b20580cf7cc5d085794bd465a19604945d6501f6c/numpy-2.3.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:aaf81c7b82c73bd9b45e79cfb9476cb9c29e937494bfe9092c26aece812818ad", size = 16692983, upload-time = "2025-06-07T14:48:24.196Z" }, - { url = "https://files.pythonhosted.org/packages/08/17/0e3b4182e691a10e9483bcc62b4bb8693dbf9ea5dc9ba0b77a60435074bb/numpy-2.3.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:f420033a20b4f6a2a11f585f93c843ac40686a7c3fa514060a97d9de93e5e72b", size = 15641435, upload-time = "2025-06-07T14:48:47.712Z" }, - { url = "https://files.pythonhosted.org/packages/4e/d5/463279fda028d3c1efa74e7e8d507605ae87f33dbd0543cf4c4527c8b882/numpy-2.3.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:d344ca32ab482bcf8735d8f95091ad081f97120546f3d250240868430ce52555", size = 18433798, upload-time = "2025-06-07T14:49:14.866Z" }, - { url = "https://files.pythonhosted.org/packages/0e/1e/7a9d98c886d4c39a2b4d3a7c026bffcf8fbcaf518782132d12a301cfc47a/numpy-2.3.0-cp313-cp313t-win32.whl", hash = "sha256:48a2e8eaf76364c32a1feaa60d6925eaf32ed7a040183b807e02674305beef61", size = 6438632, upload-time = "2025-06-07T14:49:25.67Z" }, - { url = "https://files.pythonhosted.org/packages/fe/ab/66fc909931d5eb230107d016861824f335ae2c0533f422e654e5ff556784/numpy-2.3.0-cp313-cp313t-win_amd64.whl", hash = "sha256:ba17f93a94e503551f154de210e4d50c5e3ee20f7e7a1b5f6ce3f22d419b93bb", size = 12868491, upload-time = "2025-06-07T14:49:44.898Z" }, - { url = "https://files.pythonhosted.org/packages/ee/e8/2c8a1c9e34d6f6d600c83d5ce5b71646c32a13f34ca5c518cc060639841c/numpy-2.3.0-cp313-cp313t-win_arm64.whl", hash = "sha256:f14e016d9409680959691c109be98c436c6249eaf7f118b424679793607b5944", size = 9935345, upload-time = "2025-06-07T14:50:02.311Z" }, - { url = "https://files.pythonhosted.org/packages/6a/a2/f8c1133f90eaa1c11bbbec1dc28a42054d0ce74bc2c9838c5437ba5d4980/numpy-2.3.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:80b46117c7359de8167cc00a2c7d823bdd505e8c7727ae0871025a86d668283b", size = 21070759, upload-time = "2025-06-07T14:51:18.241Z" }, - { url = "https://files.pythonhosted.org/packages/6c/e0/4c05fc44ba28463096eee5ae2a12832c8d2759cc5bcec34ae33386d3ff83/numpy-2.3.0-pp311-pypy311_pp73-macosx_14_0_arm64.whl", hash = "sha256:5814a0f43e70c061f47abd5857d120179609ddc32a613138cbb6c4e9e2dbdda5", size = 5301054, upload-time = "2025-06-07T14:51:27.413Z" }, - { url = "https://files.pythonhosted.org/packages/8a/3b/6c06cdebe922bbc2a466fe2105f50f661238ea223972a69c7deb823821e7/numpy-2.3.0-pp311-pypy311_pp73-macosx_14_0_x86_64.whl", hash = "sha256:ef6c1e88fd6b81ac6d215ed71dc8cd027e54d4bf1d2682d362449097156267a2", size = 6817520, upload-time = "2025-06-07T14:51:38.015Z" }, - { url = "https://files.pythonhosted.org/packages/9d/a3/1e536797fd10eb3c5dbd2e376671667c9af19e241843548575267242ea02/numpy-2.3.0-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:33a5a12a45bb82d9997e2c0b12adae97507ad7c347546190a18ff14c28bbca12", size = 14398078, upload-time = "2025-06-07T14:52:00.122Z" }, - { url = "https://files.pythonhosted.org/packages/7c/61/9d574b10d9368ecb1a0c923952aa593510a20df4940aa615b3a71337c8db/numpy-2.3.0-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:54dfc8681c1906d239e95ab1508d0a533c4a9505e52ee2d71a5472b04437ef97", size = 16751324, upload-time = "2025-06-07T14:52:25.077Z" }, - { url = "https://files.pythonhosted.org/packages/39/de/bcad52ce972dc26232629ca3a99721fd4b22c1d2bda84d5db6541913ef9c/numpy-2.3.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:e017a8a251ff4d18d71f139e28bdc7c31edba7a507f72b1414ed902cbe48c74d", size = 12924237, upload-time = "2025-06-07T14:52:44.713Z" }, -] - [[package]] name = "nvidia-cublas-cu12" version = "12.6.4.1" @@ -3288,7 +3895,7 @@ name = "nvidia-cudnn-cu12" version = "9.5.1.17" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "nvidia-cublas-cu12", marker = "(python_full_version < '3.10' and platform_machine != 'arm64' and sys_platform == 'darwin') or (platform_machine != 'aarch64' and sys_platform == 'linux') or (sys_platform != 'darwin' and sys_platform != 'linux')" }, + { name = "nvidia-cublas-cu12", marker = "python_full_version < '3.10' or platform_machine != 'arm64' or sys_platform != 'darwin'" }, ] wheels = [ { url = "https://files.pythonhosted.org/packages/2a/78/4535c9c7f859a64781e43c969a3a7e84c54634e319a996d43ef32ce46f83/nvidia_cudnn_cu12-9.5.1.17-py3-none-manylinux_2_28_x86_64.whl", hash = "sha256:30ac3869f6db17d170e0e556dd6cc5eee02647abc31ca856634d5a40f82c15b2", size = 570988386, upload-time = "2024-10-25T19:54:26.39Z" }, @@ -3299,7 +3906,7 @@ name = "nvidia-cufft-cu12" version = "11.3.0.4" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "nvidia-nvjitlink-cu12", marker = "(python_full_version < '3.10' and platform_machine != 'arm64' and sys_platform == 'darwin') or (platform_machine != 'aarch64' and sys_platform == 'linux') or (sys_platform != 'darwin' and sys_platform != 'linux')" }, + { name = "nvidia-nvjitlink-cu12", marker = "python_full_version < '3.10' or platform_machine != 'arm64' or sys_platform != 'darwin'" }, ] wheels = [ { url = "https://files.pythonhosted.org/packages/8f/16/73727675941ab8e6ffd86ca3a4b7b47065edcca7a997920b831f8147c99d/nvidia_cufft_cu12-11.3.0.4-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ccba62eb9cef5559abd5e0d54ceed2d9934030f51163df018532142a8ec533e5", size = 200221632, upload-time = "2024-11-20T17:41:32.357Z" }, @@ -3328,9 +3935,9 @@ name = "nvidia-cusolver-cu12" version = "11.7.1.2" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "nvidia-cublas-cu12", marker = "(python_full_version < '3.10' and platform_machine != 'arm64' and sys_platform == 'darwin') or (platform_machine != 'aarch64' and sys_platform == 'linux') or (sys_platform != 'darwin' and sys_platform != 'linux')" }, - { name = "nvidia-cusparse-cu12", marker = "(python_full_version < '3.10' and platform_machine != 'arm64' and sys_platform == 'darwin') or (platform_machine != 'aarch64' and sys_platform == 'linux') or (sys_platform != 'darwin' and sys_platform != 'linux')" }, - { name = "nvidia-nvjitlink-cu12", marker = "(python_full_version < '3.10' and platform_machine != 'arm64' and sys_platform == 'darwin') or (platform_machine != 'aarch64' and sys_platform == 'linux') or (sys_platform != 'darwin' and sys_platform != 'linux')" }, + { name = "nvidia-cublas-cu12", marker = "python_full_version < '3.10' or platform_machine != 'arm64' or sys_platform != 'darwin'" }, + { name = "nvidia-cusparse-cu12", marker = "python_full_version < '3.10' or platform_machine != 'arm64' or sys_platform != 'darwin'" }, + { name = "nvidia-nvjitlink-cu12", marker = "python_full_version < '3.10' or platform_machine != 'arm64' or sys_platform != 'darwin'" }, ] wheels = [ { url = "https://files.pythonhosted.org/packages/f0/6e/c2cf12c9ff8b872e92b4a5740701e51ff17689c4d726fca91875b07f655d/nvidia_cusolver_cu12-11.7.1.2-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:e9e49843a7707e42022babb9bcfa33c29857a93b88020c4e4434656a655b698c", size = 158229790, upload-time = "2024-11-20T17:43:43.211Z" }, @@ -3342,7 +3949,7 @@ name = "nvidia-cusparse-cu12" version = "12.5.4.2" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "nvidia-nvjitlink-cu12", marker = "(python_full_version < '3.10' and platform_machine != 'arm64' and sys_platform == 'darwin') or (platform_machine != 'aarch64' and sys_platform == 'linux') or (sys_platform != 'darwin' and sys_platform != 'linux')" }, + { name = "nvidia-nvjitlink-cu12", marker = "python_full_version < '3.10' or platform_machine != 'arm64' or sys_platform != 'darwin'" }, ] wheels = [ { url = "https://files.pythonhosted.org/packages/06/1e/b8b7c2f4099a37b96af5c9bb158632ea9e5d9d27d7391d7eb8fc45236674/nvidia_cusparse_cu12-12.5.4.2-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:7556d9eca156e18184b94947ade0fba5bb47d69cec46bf8660fd2c71a4b48b73", size = 216561367, upload-time = "2024-11-20T17:44:54.824Z" }, @@ -3397,6 +4004,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/e5/f4/eef75cb750ff3e40240c8cbc713d68f8fc12b10eef016f7d4966eb05b065/ocrmac-1.0.0-py2.py3-none-any.whl", hash = "sha256:0b5a072aa23a9ead48132cb2d595b680aa6c3c5a6cb69525155e35ca95610c3a", size = 12100, upload-time = "2024-11-07T11:59:58.383Z" }, ] +[[package]] +name = "omegaconf" +version = "2.3.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "antlr4-python3-runtime", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "pyyaml", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/09/48/6388f1bb9da707110532cb70ec4d2822858ddfb44f1cdf1233c20a80ea4b/omegaconf-2.3.0.tar.gz", hash = "sha256:d5d4b6d29955cc50ad50c46dc269bcd92c6e00f5f90d23ab5fee7bfca4ba4cc7", size = 3298120, upload-time = "2022-12-08T20:59:22.753Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e3/94/1843518e420fa3ed6919835845df698c7e27e183cb997394e4a670973a65/omegaconf-2.3.0-py3-none-any.whl", hash = "sha256:7b4df175cdb08ba400f45cae3bdcae7ba8365db4d165fc65fd04b050ab63b46b", size = 79500, upload-time = "2022-12-08T20:59:19.686Z" }, +] + [[package]] name = "onnxruntime" version = "1.19.2" @@ -3443,16 +4063,12 @@ version = "1.22.0" source = { registry = "https://pypi.org/simple" } resolution-markers = [ "python_full_version >= '3.13' and platform_machine == 'arm64' and sys_platform == 'darwin'", - "python_full_version >= '3.12.4' and python_full_version < '3.13' and platform_machine == 'arm64' and sys_platform == 'darwin'", - "python_full_version >= '3.12' and python_full_version < '3.12.4' and platform_machine == 'arm64' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and platform_machine == 'arm64' and sys_platform == 'darwin'", "python_full_version == '3.11.*' and platform_machine == 'arm64' and sys_platform == 'darwin'", "python_full_version == '3.10.*' and platform_machine == 'arm64' and sys_platform == 'darwin'", - "python_full_version >= '3.12.4' and platform_machine != 'arm64' and sys_platform == 'darwin'", - "python_full_version >= '3.12' and python_full_version < '3.12.4' and platform_machine != 'arm64' and sys_platform == 'darwin'", - "python_full_version >= '3.12.4' and platform_machine == 'aarch64' and sys_platform == 'linux'", - "python_full_version >= '3.12' and python_full_version < '3.12.4' and platform_machine == 'aarch64' and sys_platform == 'linux'", - "(python_full_version >= '3.12.4' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version >= '3.12.4' and sys_platform != 'darwin' and sys_platform != 'linux')", - "(python_full_version >= '3.12' and python_full_version < '3.12.4' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version >= '3.12' and python_full_version < '3.12.4' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version >= '3.12' and platform_machine != 'arm64' and sys_platform == 'darwin'", + "python_full_version >= '3.12' and platform_machine == 'aarch64' and sys_platform == 'linux'", + "(python_full_version >= '3.12' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version >= '3.12' and sys_platform != 'darwin' and sys_platform != 'linux')", "python_full_version == '3.11.*' and platform_machine != 'arm64' and sys_platform == 'darwin'", "python_full_version == '3.11.*' and platform_machine == 'aarch64' and sys_platform == 'linux'", "(python_full_version == '3.11.*' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version == '3.11.*' and sys_platform != 'darwin' and sys_platform != 'linux')", @@ -3463,8 +4079,7 @@ resolution-markers = [ dependencies = [ { name = "coloredlogs", marker = "python_full_version >= '3.10'" }, { name = "flatbuffers", marker = "python_full_version >= '3.10'" }, - { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, - { name = "numpy", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, { name = "packaging", marker = "python_full_version >= '3.10'" }, { name = "protobuf", marker = "python_full_version >= '3.10'" }, { name = "sympy", marker = "python_full_version >= '3.10'" }, @@ -3490,14 +4105,29 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c3/16/873b955beda7bada5b0d798d3a601b2ff210e44ad5169f6d405b93892103/onnxruntime-1.22.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:64845709f9e8a2809e8e009bc4c8f73b788cee9c6619b7d9930344eae4c9cd36", size = 16427482, upload-time = "2025-05-09T20:26:20.376Z" }, ] +[[package]] +name = "openai-whisper" +version = "20240930" +source = { git = "https://github.com/openai/whisper.git?rev=dd985ac4b90cafeef8712f2998d62c59c3e62d22#dd985ac4b90cafeef8712f2998d62c59c3e62d22" } +dependencies = [ + { name = "more-itertools" }, + { name = "numba", version = "0.60.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, + { name = "numba", version = "0.61.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "tiktoken" }, + { name = "torch" }, + { name = "tqdm" }, + { name = "triton", marker = "(platform_machine == 'x86_64' and sys_platform == 'linux') or sys_platform == 'linux2'" }, +] + [[package]] name = "opencv-python" version = "4.10.0.84" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, - { name = "numpy", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/4a/e7/b70a2d9ab205110d715906fc8ec83fbb00404aeb3a37a0654fdb68eb0c8c/opencv-python-4.10.0.84.tar.gz", hash = "sha256:72d234e4582e9658ffea8e9cae5b63d488ad06994ef12d81dc303b17472f3526", size = 95103981, upload-time = "2024-06-17T18:29:56.757Z" } wheels = [ @@ -3515,8 +4145,7 @@ version = "4.11.0.86" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, - { name = "numpy", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/36/2f/5b2b3ba52c864848885ba988f24b7f105052f68da9ab0e693cc7c25b0b30/opencv-python-headless-4.11.0.86.tar.gz", hash = "sha256:996eb282ca4b43ec6a3972414de0e2331f5d9cda2b41091a49739c19fb843798", size = 95177929, upload-time = "2025-01-16T13:53:40.22Z" } wheels = [ @@ -3643,8 +4272,7 @@ version = "2.3.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, - { name = "numpy", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, { name = "python-dateutil" }, { name = "pytz" }, { name = "tzdata" }, @@ -3718,16 +4346,12 @@ version = "2.2.3.250527" source = { registry = "https://pypi.org/simple" } resolution-markers = [ "python_full_version >= '3.13' and platform_machine == 'arm64' and sys_platform == 'darwin'", - "python_full_version >= '3.12.4' and python_full_version < '3.13' and platform_machine == 'arm64' and sys_platform == 'darwin'", - "python_full_version >= '3.12' and python_full_version < '3.12.4' and platform_machine == 'arm64' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and platform_machine == 'arm64' and sys_platform == 'darwin'", "python_full_version == '3.11.*' and platform_machine == 'arm64' and sys_platform == 'darwin'", "python_full_version == '3.10.*' and platform_machine == 'arm64' and sys_platform == 'darwin'", - "python_full_version >= '3.12.4' and platform_machine != 'arm64' and sys_platform == 'darwin'", - "python_full_version >= '3.12' and python_full_version < '3.12.4' and platform_machine != 'arm64' and sys_platform == 'darwin'", - "python_full_version >= '3.12.4' and platform_machine == 'aarch64' and sys_platform == 'linux'", - "python_full_version >= '3.12' and python_full_version < '3.12.4' and platform_machine == 'aarch64' and sys_platform == 'linux'", - "(python_full_version >= '3.12.4' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version >= '3.12.4' and sys_platform != 'darwin' and sys_platform != 'linux')", - "(python_full_version >= '3.12' and python_full_version < '3.12.4' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version >= '3.12' and python_full_version < '3.12.4' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version >= '3.12' and platform_machine != 'arm64' and sys_platform == 'darwin'", + "python_full_version >= '3.12' and platform_machine == 'aarch64' and sys_platform == 'linux'", + "(python_full_version >= '3.12' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version >= '3.12' and sys_platform != 'darwin' and sys_platform != 'linux')", "python_full_version == '3.11.*' and platform_machine != 'arm64' and sys_platform == 'darwin'", "python_full_version == '3.11.*' and platform_machine == 'aarch64' and sys_platform == 'linux'", "(python_full_version == '3.11.*' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version == '3.11.*' and sys_platform != 'darwin' and sys_platform != 'linux')", @@ -3736,8 +4360,7 @@ resolution-markers = [ "(python_full_version == '3.10.*' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version == '3.10.*' and sys_platform != 'darwin' and sys_platform != 'linux')", ] dependencies = [ - { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, - { name = "numpy", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, { name = "types-pytz", marker = "python_full_version >= '3.10'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/5f/0d/5fe7f7f3596eb1c2526fea151e9470f86b379183d8b9debe44b2098651ca/pandas_stubs-2.2.3.250527.tar.gz", hash = "sha256:e2d694c4e72106055295ad143664e5c99e5815b07190d1ff85b73b13ff019e63", size = 106312, upload-time = "2025-05-27T15:24:29.716Z" } @@ -3784,6 +4407,22 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl", hash = "sha256:7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523", size = 63772, upload-time = "2023-11-25T06:56:14.81Z" }, ] +[[package]] +name = "phonemizer-fork" +version = "3.3.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "dlinfo", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "joblib", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "segments", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "typing-extensions", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/42/fa/9294d2f11890ca49d0bdac7a4da60cbe5686629bfd4987cae0ad75e051cc/phonemizer_fork-3.3.2.tar.gz", hash = "sha256:10e16e827d0443b087062e21b55e805c00989cf1343b2e81e734cae5f6c0cf69", size = 300989, upload-time = "2025-01-30T13:02:31.201Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/64/f1/0dcce21b0ae16a82df4b6583f8f3ad8e55b35f7e98b6bf536a4dd225fa08/phonemizer_fork-3.3.2-py3-none-any.whl", hash = "sha256:97305c76f4183b3825dae8f4c032265fe78c9946ce58c47d4b62161349264b74", size = 82700, upload-time = "2025-01-30T13:02:28.667Z" }, +] + [[package]] name = "pillow" version = "11.2.1" @@ -3899,6 +4538,20 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746", size = 20538, upload-time = "2025-05-15T12:30:06.134Z" }, ] +[[package]] +name = "pooch" +version = "1.8.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "packaging", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "platformdirs", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "requests", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c6/77/b3d3e00c696c16cf99af81ef7b1f5fe73bd2a307abca41bd7605429fe6e5/pooch-1.8.2.tar.gz", hash = "sha256:76561f0de68a01da4df6af38e9955c4c9d1a5c90da73f7e40276a5728ec83d10", size = 59353, upload-time = "2024-06-06T16:53:46.224Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a8/87/77cc11c7a9ea9fd05503def69e3d18605852cd0d4b0d3b8f15bbeb3ef1d1/pooch-1.8.2-py3-none-any.whl", hash = "sha256:3529a57096f7198778a5ceefd5ac3ef0e4d06a6ddaf9fc2d609b806f25302c47", size = 64574, upload-time = "2024-06-06T16:53:44.343Z" }, +] + [[package]] name = "pre-commit" version = "3.8.0" @@ -3915,6 +4568,23 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/07/92/caae8c86e94681b42c246f0bca35c059a2f0529e5b92619f6aba4cf7e7b6/pre_commit-3.8.0-py2.py3-none-any.whl", hash = "sha256:9a90a53bf82fdd8778d58085faf8d83df56e40dfe18f45b19446e26bf1b3a63f", size = 204643, upload-time = "2024-07-28T19:58:59.335Z" }, ] +[[package]] +name = "preshed" +version = "3.0.10" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cymem", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "murmurhash", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/4d/3a/db814f67a05b6d7f9c15d38edef5ec9b21415710705b393883de92aee5ef/preshed-3.0.10.tar.gz", hash = "sha256:5a5c8e685e941f4ffec97f1fbf32694b8107858891a4bc34107fac981d8296ff", size = 15039, upload-time = "2025-05-26T15:18:33.612Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e4/bf/54635387524315fe40b1f3d1688a5ad369f59a4e3a377b0da6e8a3ecba30/preshed-3.0.10-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ba1960a3996678aded882260133853e19e3a251d9f35a19c9d7d830c4238c4eb", size = 127302, upload-time = "2025-05-26T15:17:43.263Z" }, + { url = "https://files.pythonhosted.org/packages/e0/27/0fd36b63caa8bbf57b31a121d9565d385bbd7521771d4eb93e17d326873d/preshed-3.0.10-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:cb01ea930b96f3301526a2ab26f41347d07555e4378c4144c6b7645074f2ebb0", size = 127938, upload-time = "2025-05-26T15:17:54.19Z" }, + { url = "https://files.pythonhosted.org/packages/38/80/67507653c35620cace913f617df6d6f658b87e8da83087b851557d65dd86/preshed-3.0.10-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5c4ebc4f8ef0114d55f2ffdce4965378129c7453d0203664aeeb03055572d9e4", size = 126535, upload-time = "2025-05-26T15:18:03.589Z" }, + { url = "https://files.pythonhosted.org/packages/92/69/b3969a3c95778def5bf5126484a1f7d2ad324d1040077f55f56e027d8ea4/preshed-3.0.10-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:574e6d6056981540310ff181b47a2912f4bddc91bcace3c7a9c6726eafda24ca", size = 124258, upload-time = "2025-05-26T15:18:14.497Z" }, + { url = "https://files.pythonhosted.org/packages/e0/fa/2fe872958a00b379e28d16ccdae9033f5f6d7bf982c56fe6a0d9b764f01a/preshed-3.0.10-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e5e41cdb12f43a27fa5f8f5d788aa8b3b6eb699434bb1e95d0da3d18727a5f8d", size = 129149, upload-time = "2025-05-26T15:18:24.587Z" }, +] + [[package]] name = "prompt-toolkit" version = "3.0.51" @@ -4184,11 +4854,11 @@ wheels = [ [[package]] name = "pycodestyle" -version = "2.13.0" +version = "2.14.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/04/6e/1f4a62078e4d95d82367f24e685aef3a672abfd27d1a868068fed4ed2254/pycodestyle-2.13.0.tar.gz", hash = "sha256:c8415bf09abe81d9c7f872502a6eee881fbe85d8763dd5b9924bb0a01d67efae", size = 39312, upload-time = "2025-03-29T17:33:30.669Z" } +sdist = { url = "https://files.pythonhosted.org/packages/11/e0/abfd2a0d2efe47670df87f3e3a0e2edda42f055053c85361f19c0e2c1ca8/pycodestyle-2.14.0.tar.gz", hash = "sha256:c4b5b517d278089ff9d0abdec919cd97262a3367449ea1c8b49b91529167b783", size = 39472, upload-time = "2025-06-20T18:49:48.75Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/07/be/b00116df1bfb3e0bb5b45e29d604799f7b91dd861637e4d448b4e09e6a3e/pycodestyle-2.13.0-py2.py3-none-any.whl", hash = "sha256:35863c5974a271c7a726ed228a14a4f6daf49df369d8c50cd9a6f58a5e143ba9", size = 31424, upload-time = "2025-03-29T17:33:29.405Z" }, + { url = "https://files.pythonhosted.org/packages/d7/27/a58ddaf8c588a3ef080db9d0b7e0b97215cee3a45df74f3a94dbbf5c893a/pycodestyle-2.14.0-py2.py3-none-any.whl", hash = "sha256:dd6bf7cb4ee77f8e016f9c8e74a35ddd9f67e1d5fd4184d86c3b98e07099f42d", size = 31594, upload-time = "2025-06-20T18:49:47.491Z" }, ] [[package]] @@ -4326,16 +4996,16 @@ wheels = [ [[package]] name = "pydantic-settings" -version = "2.9.1" +version = "2.10.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pydantic" }, { name = "python-dotenv" }, { name = "typing-inspection" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/67/1d/42628a2c33e93f8e9acbde0d5d735fa0850f3e6a2f8cb1eb6c40b9a732ac/pydantic_settings-2.9.1.tar.gz", hash = "sha256:c509bf79d27563add44e8446233359004ed85066cd096d8b510f715e6ef5d268", size = 163234, upload-time = "2025-04-18T16:44:48.265Z" } +sdist = { url = "https://files.pythonhosted.org/packages/68/85/1ea668bbab3c50071ca613c6ab30047fb36ab0da1b92fa8f17bbc38fd36c/pydantic_settings-2.10.1.tar.gz", hash = "sha256:06f0062169818d0f5524420a360d632d5857b83cffd4d42fe29597807a1614ee", size = 172583, upload-time = "2025-06-24T13:26:46.841Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/b6/5f/d6d641b490fd3ec2c4c13b4244d68deea3a1b970a97be64f34fb5504ff72/pydantic_settings-2.9.1-py3-none-any.whl", hash = "sha256:59b4f431b1defb26fe620c71a7d3968a710d719f5f4cdbbdb7926edeb770f6ef", size = 44356, upload-time = "2025-04-18T16:44:46.617Z" }, + { url = "https://files.pythonhosted.org/packages/58/f0/427018098906416f580e3cf1366d3b1abfb408a0652e9f31600c24a1903c/pydantic_settings-2.10.1-py3-none-any.whl", hash = "sha256:a60952460b99cf661dc25c29c0ef171721f98bfcb52ef8d9ea4c943d7c8cc796", size = 45235, upload-time = "2025-06-24T13:26:45.485Z" }, ] [[package]] @@ -4348,12 +5018,24 @@ wheels = [ ] [[package]] -name = "pygments" -version = "2.19.1" +name = "pyee" +version = "13.0.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/7c/2d/c3338d48ea6cc0feb8446d8e6937e1408088a72a39937982cc6111d17f84/pygments-2.19.1.tar.gz", hash = "sha256:61c16d2a8576dc0649d9f39e089b5f02bcd27fba10d8fb4dcc28173f7a45151f", size = 4968581, upload-time = "2025-01-06T17:26:30.443Z" } +dependencies = [ + { name = "typing-extensions", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/95/03/1fd98d5841cd7964a27d729ccf2199602fe05eb7a405c1462eb7277945ed/pyee-13.0.0.tar.gz", hash = "sha256:b391e3c5a434d1f5118a25615001dbc8f669cf410ab67d04c4d4e07c55481c37", size = 31250, upload-time = "2025-03-17T18:53:15.955Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/8a/0b/9fcc47d19c48b59121088dd6da2488a49d5f72dacf8262e2790a1d2c7d15/pygments-2.19.1-py3-none-any.whl", hash = "sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c", size = 1225293, upload-time = "2025-01-06T17:26:25.553Z" }, + { url = "https://files.pythonhosted.org/packages/9b/4d/b9add7c84060d4c1906abe9a7e5359f2a60f7a9a4f67268b2766673427d8/pyee-13.0.0-py3-none-any.whl", hash = "sha256:48195a3cddb3b1515ce0695ed76036b5ccc2ef3a9f963ff9f77aec0139845498", size = 15730, upload-time = "2025-03-17T18:53:14.532Z" }, +] + +[[package]] +name = "pygments" +version = "2.19.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b0/77/a5b8c569bf593b0140bde72ea885a803b82086995367bf2037de0159d924/pygments-2.19.2.tar.gz", hash = "sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887", size = 4968631, upload-time = "2025-06-21T13:39:12.283Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c7/21/705964c7812476f378728bdf590ca4b771ec72385c533964653c68e86bdc/pygments-2.19.2-py3-none-any.whl", hash = "sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b", size = 1225217, upload-time = "2025-06-21T13:39:07.939Z" }, ] [[package]] @@ -4362,17 +5044,44 @@ version = "2.10" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/5d/ab/34ec41718af73c00119d0351b7a2531d2ebddb51833a36448fc7b862be60/pylatexenc-2.10.tar.gz", hash = "sha256:3dd8fd84eb46dc30bee1e23eaab8d8fb5a7f507347b23e5f38ad9675c84f40d3", size = 162597, upload-time = "2021-04-06T07:56:07.854Z" } +[[package]] +name = "pylibsrtp" +version = "0.12.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cffi", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/54/c8/a59e61f5dd655f5f21033bd643dd31fe980a537ed6f373cdfb49d3a3bd32/pylibsrtp-0.12.0.tar.gz", hash = "sha256:f5c3c0fb6954e7bb74dc7e6398352740ca67327e6759a199fe852dbc7b84b8ac", size = 10878, upload-time = "2025-04-06T12:35:51.804Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/05/1a/ee553abe4431b7bd9bab18f078c0ad2298b94ea55e664da6ecb8700b1052/pylibsrtp-0.12.0-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:d2c81d152606721331ece87c80ed17159ba6da55c7c61a6b750cff67ab7f63a5", size = 2057900, upload-time = "2025-04-06T12:35:38.253Z" }, +] + +[[package]] +name = "pyloudnorm" +version = "0.1.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "future", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "scipy", version = "1.15.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "scipy", version = "1.16.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/75/b5/39d59c44ecd828fabfdbd796b50a561e6543ca90ef440ab307374f107856/pyloudnorm-0.1.1.tar.gz", hash = "sha256:63cd4e197dea4e7795160ea08ed02d318091bce883e436a6dbc5963326b71e1e", size = 8588, upload-time = "2023-01-05T16:11:28.601Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/58/f5/6724805521ab4e723a12182f92374031032aff28a8a89dc8505c52b79032/pyloudnorm-0.1.1-py3-none-any.whl", hash = "sha256:d7f12ebdd097a464d87ce2878fc4d942f15f8233e26cc03f33fefa226f869a14", size = 9636, upload-time = "2023-01-05T16:11:27.331Z" }, +] + [[package]] name = "pymdown-extensions" -version = "10.15" +version = "10.16" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "markdown" }, { name = "pyyaml" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/08/92/a7296491dbf5585b3a987f3f3fc87af0e632121ff3e490c14b5f2d2b4eb5/pymdown_extensions-10.15.tar.gz", hash = "sha256:0e5994e32155f4b03504f939e501b981d306daf7ec2aa1cd2eb6bd300784f8f7", size = 852320, upload-time = "2025-04-27T23:48:29.183Z" } +sdist = { url = "https://files.pythonhosted.org/packages/1a/0a/c06b542ac108bfc73200677309cd9188a3a01b127a63f20cadc18d873d88/pymdown_extensions-10.16.tar.gz", hash = "sha256:71dac4fca63fabeffd3eb9038b756161a33ec6e8d230853d3cecf562155ab3de", size = 853197, upload-time = "2025-06-21T17:56:36.974Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a7/d1/c54e608505776ce4e7966d03358ae635cfd51dff1da6ee421c090dbc797b/pymdown_extensions-10.15-py3-none-any.whl", hash = "sha256:46e99bb272612b0de3b7e7caf6da8dd5f4ca5212c0b273feb9304e236c484e5f", size = 265845, upload-time = "2025-04-27T23:48:27.359Z" }, + { url = "https://files.pythonhosted.org/packages/98/d4/10bb14004d3c792811e05e21b5e5dcae805aacb739bd12a0540967b99592/pymdown_extensions-10.16-py3-none-any.whl", hash = "sha256:f5dd064a4db588cb2d95229fc4ee63a1b16cc8b4d0e6145c0899ed8723da1df2", size = 266143, upload-time = "2025-06-21T17:56:35.356Z" }, ] [[package]] @@ -4490,6 +5199,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/54/76/93978bb75642ae6e903c476392310e7d16227d448a42f4924cbd084156c0/pyobjc_framework_vision-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:25d2d42edc7459b010ec87a0c5428d12fe5d62dfa95cd34fb71f716f2e4d6b95", size = 21653, upload-time = "2025-06-14T20:56:25.06Z" }, ] +[[package]] +name = "pyopenssl" +version = "25.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cryptography", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "typing-extensions", marker = "python_full_version >= '3.10' and python_full_version < '3.13' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/04/8c/cd89ad05804f8e3c17dea8f178c3f40eeab5694c30e0c9f5bcd49f576fc3/pyopenssl-25.1.0.tar.gz", hash = "sha256:8d031884482e0c67ee92bf9a4d8cceb08d92aba7136432ffb0703c5280fc205b", size = 179937, upload-time = "2025-05-17T16:28:31.31Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/80/28/2659c02301b9500751f8d42f9a6632e1508aa5120de5e43042b8b30f8d5d/pyopenssl-25.1.0-py3-none-any.whl", hash = "sha256:2b11f239acc47ac2e5aca04fd7fa829800aeee22a2eb30d744572a157bd8a1ab", size = 56771, upload-time = "2025-05-17T16:28:29.197Z" }, +] + [[package]] name = "pypdfium2" version = "4.30.1" @@ -4703,11 +5425,11 @@ wheels = [ [[package]] name = "python-dotenv" -version = "1.1.0" +version = "1.1.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/88/2c/7bb1416c5620485aa793f2de31d3df393d3686aa8a8506d11e10e13c5baf/python_dotenv-1.1.0.tar.gz", hash = "sha256:41f90bc6f5f177fb41f53e87666db362025010eb28f60a01c9143bfa33a2b2d5", size = 39920, upload-time = "2025-03-25T10:14:56.835Z" } +sdist = { url = "https://files.pythonhosted.org/packages/f6/b0/4bc07ccd3572a2f9df7e6782f52b0c6c90dcbb803ac4a167702d7d0dfe1e/python_dotenv-1.1.1.tar.gz", hash = "sha256:a8a6399716257f45be6a007360200409fce5cda2661e3dec71d23dc15f6189ab", size = 41978, upload-time = "2025-06-24T04:21:07.341Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/1e/18/98a99ad95133c6a6e2005fe89faedf294a748bd5dc803008059409ac9b1e/python_dotenv-1.1.0-py3-none-any.whl", hash = "sha256:d7c01d9e2293916c18baf562d95698754b0dbbb5e74d457c45d4f6561fb9d55d", size = 20256, upload-time = "2025-03-25T10:14:55.034Z" }, + { url = "https://files.pythonhosted.org/packages/5f/ed/539768cf28c661b5b068d66d96a2f155c4971a5d55684a514c1a0e0dec2f/python_dotenv-1.1.1-py3-none-any.whl", hash = "sha256:31f23644fe2602f88ff55e1f5c79ba497e01224ee7737937930c448e4d0e24dc", size = 20556, upload-time = "2025-06-24T04:21:06.073Z" }, ] [[package]] @@ -4956,8 +5678,7 @@ version = "1.4.4" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, - { name = "numpy", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, { name = "onnxruntime", version = "1.19.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, { name = "onnxruntime", version = "1.22.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, { name = "opencv-python" }, @@ -5279,11 +6000,11 @@ wheels = [ [[package]] name = "ruff" -version = "0.12.0" +version = "0.12.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/24/90/5255432602c0b196a0da6720f6f76b93eb50baef46d3c9b0025e2f9acbf3/ruff-0.12.0.tar.gz", hash = "sha256:4d047db3662418d4a848a3fdbfaf17488b34b62f527ed6f10cb8afd78135bc5c", size = 4376101, upload-time = "2025-06-17T15:19:26.217Z" } +sdist = { url = "https://files.pythonhosted.org/packages/97/38/796a101608a90494440856ccfb52b1edae90de0b817e76bfade66b12d320/ruff-0.12.1.tar.gz", hash = "sha256:806bbc17f1104fd57451a98a58df35388ee3ab422e029e8f5cf30aa4af2c138c", size = 4413426, upload-time = "2025-06-26T20:34:14.784Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/07/a2/01a5acf495265c667686ec418f19fd5c32bcc326d4c79ac28824aecd6a32/ruff-0.12.0-py3-none-macosx_11_0_arm64.whl", hash = "sha256:07a7aa9b69ac3fcfda3c507916d5d1bca10821fe3797d46bad10f2c6de1edda0", size = 10466010, upload-time = "2025-06-17T15:18:51.341Z" }, + { url = "https://files.pythonhosted.org/packages/3f/3e/2d819ffda01defe857fa2dd4cba4d19109713df4034cc36f06bbf582d62a/ruff-0.12.1-py3-none-macosx_11_0_arm64.whl", hash = "sha256:9a256522893cb7e92bb1e1153283927f842dea2e48619c803243dccc8437b8be", size = 10466769, upload-time = "2025-06-26T20:33:44.102Z" }, ] [[package]] @@ -5323,8 +6044,7 @@ wheels = [ [package.optional-dependencies] torch = [ { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, - { name = "numpy", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, { name = "torch" }, ] @@ -5377,16 +6097,12 @@ version = "0.25.2" source = { registry = "https://pypi.org/simple" } resolution-markers = [ "python_full_version >= '3.13' and platform_machine == 'arm64' and sys_platform == 'darwin'", - "python_full_version >= '3.12.4' and python_full_version < '3.13' and platform_machine == 'arm64' and sys_platform == 'darwin'", - "python_full_version >= '3.12' and python_full_version < '3.12.4' and platform_machine == 'arm64' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and platform_machine == 'arm64' and sys_platform == 'darwin'", "python_full_version == '3.11.*' and platform_machine == 'arm64' and sys_platform == 'darwin'", "python_full_version == '3.10.*' and platform_machine == 'arm64' and sys_platform == 'darwin'", - "python_full_version >= '3.12.4' and platform_machine != 'arm64' and sys_platform == 'darwin'", - "python_full_version >= '3.12' and python_full_version < '3.12.4' and platform_machine != 'arm64' and sys_platform == 'darwin'", - "python_full_version >= '3.12.4' and platform_machine == 'aarch64' and sys_platform == 'linux'", - "python_full_version >= '3.12' and python_full_version < '3.12.4' and platform_machine == 'aarch64' and sys_platform == 'linux'", - "(python_full_version >= '3.12.4' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version >= '3.12.4' and sys_platform != 'darwin' and sys_platform != 'linux')", - "(python_full_version >= '3.12' and python_full_version < '3.12.4' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version >= '3.12' and python_full_version < '3.12.4' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version >= '3.12' and platform_machine != 'arm64' and sys_platform == 'darwin'", + "python_full_version >= '3.12' and platform_machine == 'aarch64' and sys_platform == 'linux'", + "(python_full_version >= '3.12' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version >= '3.12' and sys_platform != 'darwin' and sys_platform != 'linux')", "python_full_version == '3.11.*' and platform_machine != 'arm64' and sys_platform == 'darwin'", "python_full_version == '3.11.*' and platform_machine == 'aarch64' and sys_platform == 'linux'", "(python_full_version == '3.11.*' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version == '3.11.*' and sys_platform != 'darwin' and sys_platform != 'linux')", @@ -5399,11 +6115,11 @@ dependencies = [ { name = "lazy-loader", marker = "python_full_version >= '3.10'" }, { name = "networkx", version = "3.4.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, { name = "networkx", version = "3.5", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, - { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, - { name = "numpy", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, { name = "packaging", marker = "python_full_version >= '3.10'" }, { name = "pillow", marker = "python_full_version >= '3.10'" }, - { name = "scipy", version = "1.15.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "scipy", version = "1.15.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, + { name = "scipy", version = "1.16.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "tifffile", version = "2025.5.10", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, { name = "tifffile", version = "2025.6.11", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, ] @@ -5432,6 +6148,26 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/10/cc/75e9f17e3670b5ed93c32456fda823333c6279b144cd93e2c03aa06aa472/scikit_image-0.25.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:330d061bd107d12f8d68f1d611ae27b3b813b8cdb0300a71d07b1379178dd4cd", size = 13862801, upload-time = "2025-02-18T18:05:20.783Z" }, ] +[[package]] +name = "scikit-learn" +version = "1.7.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "joblib", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "scipy", version = "1.15.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "scipy", version = "1.16.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "threadpoolctl", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/df/3b/29fa87e76b1d7b3b77cc1fcbe82e6e6b8cd704410705b008822de530277c/scikit_learn-1.7.0.tar.gz", hash = "sha256:c01e869b15aec88e2cdb73d27f15bdbe03bce8e2fb43afbe77c45d399e73a5a3", size = 7178217, upload-time = "2025-06-05T22:02:46.703Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/32/aa/43874d372e9dc51eb361f5c2f0a4462915c9454563b3abb0d9457c66b7e9/scikit_learn-1.7.0-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:d0c93294e1e1acbee2d029b1f2a064f26bd928b284938d51d412c22e0c977eb3", size = 10726255, upload-time = "2025-06-05T22:01:46.082Z" }, + { url = "https://files.pythonhosted.org/packages/a3/24/44acca76449e391b6b2522e67a63c0454b7c1f060531bdc6d0118fb40851/scikit_learn-1.7.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:7d7240c7b19edf6ed93403f43b0fcb0fe95b53bc0b17821f8fb88edab97085ef", size = 10712636, upload-time = "2025-06-05T22:01:59.093Z" }, + { url = "https://files.pythonhosted.org/packages/58/d8/f3249232fa79a70cb40595282813e61453c1e76da3e1a44b77a63dd8d0cb/scikit_learn-1.7.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:9f39f6a811bf3f15177b66c82cbe0d7b1ebad9f190737dcdef77cfca1ea3c19c", size = 10673971, upload-time = "2025-06-05T22:02:12.217Z" }, + { url = "https://files.pythonhosted.org/packages/d8/57/eea0de1562cc52d3196eae51a68c5736a31949a465f0b6bb3579b2d80282/scikit_learn-1.7.0-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:014e07a23fe02e65f9392898143c542a50b6001dbe89cb867e19688e468d049b", size = 10616463, upload-time = "2025-06-05T22:02:26.068Z" }, + { url = "https://files.pythonhosted.org/packages/d0/0c/9c3715393343f04232f9d81fe540eb3831d0b4ec351135a145855295110f/scikit_learn-1.7.0-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:0521cb460426c56fee7e07f9365b0f45ec8ca7b2d696534ac98bfb85e7ae4775", size = 11325286, upload-time = "2025-06-05T22:02:39.739Z" }, +] + [[package]] name = "scipy" version = "1.13.1" @@ -5477,27 +6213,13 @@ name = "scipy" version = "1.15.3" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version >= '3.13' and platform_machine == 'arm64' and sys_platform == 'darwin'", - "python_full_version >= '3.12.4' and python_full_version < '3.13' and platform_machine == 'arm64' and sys_platform == 'darwin'", - "python_full_version >= '3.12' and python_full_version < '3.12.4' and platform_machine == 'arm64' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and platform_machine == 'arm64' and sys_platform == 'darwin'", "python_full_version == '3.10.*' and platform_machine == 'arm64' and sys_platform == 'darwin'", - "python_full_version >= '3.12.4' and platform_machine != 'arm64' and sys_platform == 'darwin'", - "python_full_version >= '3.12' and python_full_version < '3.12.4' and platform_machine != 'arm64' and sys_platform == 'darwin'", - "python_full_version >= '3.12.4' and platform_machine == 'aarch64' and sys_platform == 'linux'", - "python_full_version >= '3.12' and python_full_version < '3.12.4' and platform_machine == 'aarch64' and sys_platform == 'linux'", - "(python_full_version >= '3.12.4' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version >= '3.12.4' and sys_platform != 'darwin' and sys_platform != 'linux')", - "(python_full_version >= '3.12' and python_full_version < '3.12.4' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version >= '3.12' and python_full_version < '3.12.4' and sys_platform != 'darwin' and sys_platform != 'linux')", - "python_full_version == '3.11.*' and platform_machine != 'arm64' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and platform_machine == 'aarch64' and sys_platform == 'linux'", - "(python_full_version == '3.11.*' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version == '3.11.*' and sys_platform != 'darwin' and sys_platform != 'linux')", "python_full_version == '3.10.*' and platform_machine != 'arm64' and sys_platform == 'darwin'", "python_full_version == '3.10.*' and platform_machine == 'aarch64' and sys_platform == 'linux'", "(python_full_version == '3.10.*' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version == '3.10.*' and sys_platform != 'darwin' and sys_platform != 'linux')", ] dependencies = [ { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, - { name = "numpy", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/0f/37/6964b830433e654ec7485e45a00fc9a27cf868d622838f6b6d9c5ec0d532/scipy-1.15.3.tar.gz", hash = "sha256:eae3cf522bc7df64b42cad3925c876e1b0b6c35c1337c93e12c0f366f55b0eaf", size = 59419214, upload-time = "2025-05-08T16:13:05.955Z" } wheels = [ @@ -5548,6 +6270,64 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/81/06/0a5e5349474e1cbc5757975b21bd4fad0e72ebf138c5592f191646154e06/scipy-1.15.3-cp313-cp313t-win_amd64.whl", hash = "sha256:76ad1fb5f8752eabf0fa02e4cc0336b4e8f021e2d5f061ed37d6d264db35e3ca", size = 40308097, upload-time = "2025-05-08T16:08:27.627Z" }, ] +[[package]] +name = "scipy" +version = "1.16.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.13' and platform_machine == 'arm64' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and platform_machine == 'arm64' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and platform_machine == 'arm64' and sys_platform == 'darwin'", + "python_full_version >= '3.12' and platform_machine != 'arm64' and sys_platform == 'darwin'", + "python_full_version >= '3.12' and platform_machine == 'aarch64' and sys_platform == 'linux'", + "(python_full_version >= '3.12' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version >= '3.12' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version == '3.11.*' and platform_machine != 'arm64' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and platform_machine == 'aarch64' and sys_platform == 'linux'", + "(python_full_version == '3.11.*' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version == '3.11.*' and sys_platform != 'darwin' and sys_platform != 'linux')", +] +dependencies = [ + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/81/18/b06a83f0c5ee8cddbde5e3f3d0bb9b702abfa5136ef6d4620ff67df7eee5/scipy-1.16.0.tar.gz", hash = "sha256:b5ef54021e832869c8cfb03bc3bf20366cbcd426e02a58e8a58d7584dfbb8f62", size = 30581216, upload-time = "2025-06-22T16:27:55.782Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d9/f8/53fc4884df6b88afd5f5f00240bdc49fee2999c7eff3acf5953eb15bc6f8/scipy-1.16.0-cp311-cp311-macosx_10_14_x86_64.whl", hash = "sha256:deec06d831b8f6b5fb0b652433be6a09db29e996368ce5911faf673e78d20085", size = 36447362, upload-time = "2025-06-22T16:18:17.817Z" }, + { url = "https://files.pythonhosted.org/packages/c9/25/fad8aa228fa828705142a275fc593d701b1817c98361a2d6b526167d07bc/scipy-1.16.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:d30c0fe579bb901c61ab4bb7f3eeb7281f0d4c4a7b52dbf563c89da4fd2949be", size = 28547120, upload-time = "2025-06-22T16:18:24.117Z" }, + { url = "https://files.pythonhosted.org/packages/8d/be/d324ddf6b89fd1c32fecc307f04d095ce84abb52d2e88fab29d0cd8dc7a8/scipy-1.16.0-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:b2243561b45257f7391d0f49972fca90d46b79b8dbcb9b2cb0f9df928d370ad4", size = 20818922, upload-time = "2025-06-22T16:18:28.035Z" }, + { url = "https://files.pythonhosted.org/packages/cd/e0/cf3f39e399ac83fd0f3ba81ccc5438baba7cfe02176be0da55ff3396f126/scipy-1.16.0-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:e6d7dfc148135e9712d87c5f7e4f2ddc1304d1582cb3a7d698bbadedb61c7afd", size = 23409695, upload-time = "2025-06-22T16:18:32.497Z" }, + { url = "https://files.pythonhosted.org/packages/5b/61/d92714489c511d3ffd6830ac0eb7f74f243679119eed8b9048e56b9525a1/scipy-1.16.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:90452f6a9f3fe5a2cf3748e7be14f9cc7d9b124dce19667b54f5b429d680d539", size = 33444586, upload-time = "2025-06-22T16:18:37.992Z" }, + { url = "https://files.pythonhosted.org/packages/af/2c/40108915fd340c830aee332bb85a9160f99e90893e58008b659b9f3dddc0/scipy-1.16.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:a2f0bf2f58031c8701a8b601df41701d2a7be17c7ffac0a4816aeba89c4cdac8", size = 35284126, upload-time = "2025-06-22T16:18:43.605Z" }, + { url = "https://files.pythonhosted.org/packages/d3/30/e9eb0ad3d0858df35d6c703cba0a7e16a18a56a9e6b211d861fc6f261c5f/scipy-1.16.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6c4abb4c11fc0b857474241b812ce69ffa6464b4bd8f4ecb786cf240367a36a7", size = 35608257, upload-time = "2025-06-22T16:18:49.09Z" }, + { url = "https://files.pythonhosted.org/packages/c8/ff/950ee3e0d612b375110d8cda211c1f787764b4c75e418a4b71f4a5b1e07f/scipy-1.16.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b370f8f6ac6ef99815b0d5c9f02e7ade77b33007d74802efc8316c8db98fd11e", size = 38040541, upload-time = "2025-06-22T16:18:55.077Z" }, + { url = "https://files.pythonhosted.org/packages/8b/c9/750d34788288d64ffbc94fdb4562f40f609d3f5ef27ab4f3a4ad00c9033e/scipy-1.16.0-cp311-cp311-win_amd64.whl", hash = "sha256:a16ba90847249bedce8aa404a83fb8334b825ec4a8e742ce6012a7a5e639f95c", size = 38570814, upload-time = "2025-06-22T16:19:00.912Z" }, + { url = "https://files.pythonhosted.org/packages/01/c0/c943bc8d2bbd28123ad0f4f1eef62525fa1723e84d136b32965dcb6bad3a/scipy-1.16.0-cp312-cp312-macosx_10_14_x86_64.whl", hash = "sha256:7eb6bd33cef4afb9fa5f1fb25df8feeb1e52d94f21a44f1d17805b41b1da3180", size = 36459071, upload-time = "2025-06-22T16:19:06.605Z" }, + { url = "https://files.pythonhosted.org/packages/99/0d/270e2e9f1a4db6ffbf84c9a0b648499842046e4e0d9b2275d150711b3aba/scipy-1.16.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:1dbc8fdba23e4d80394ddfab7a56808e3e6489176d559c6c71935b11a2d59db1", size = 28490500, upload-time = "2025-06-22T16:19:11.775Z" }, + { url = "https://files.pythonhosted.org/packages/1c/22/01d7ddb07cff937d4326198ec8d10831367a708c3da72dfd9b7ceaf13028/scipy-1.16.0-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:7dcf42c380e1e3737b343dec21095c9a9ad3f9cbe06f9c05830b44b1786c9e90", size = 20762345, upload-time = "2025-06-22T16:19:15.813Z" }, + { url = "https://files.pythonhosted.org/packages/34/7f/87fd69856569ccdd2a5873fe5d7b5bbf2ad9289d7311d6a3605ebde3a94b/scipy-1.16.0-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:26ec28675f4a9d41587266084c626b02899db373717d9312fa96ab17ca1ae94d", size = 23418563, upload-time = "2025-06-22T16:19:20.746Z" }, + { url = "https://files.pythonhosted.org/packages/f6/f1/e4f4324fef7f54160ab749efbab6a4bf43678a9eb2e9817ed71a0a2fd8de/scipy-1.16.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:952358b7e58bd3197cfbd2f2f2ba829f258404bdf5db59514b515a8fe7a36c52", size = 33203951, upload-time = "2025-06-22T16:19:25.813Z" }, + { url = "https://files.pythonhosted.org/packages/6d/f0/b6ac354a956384fd8abee2debbb624648125b298f2c4a7b4f0d6248048a5/scipy-1.16.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:03931b4e870c6fef5b5c0970d52c9f6ddd8c8d3e934a98f09308377eba6f3824", size = 35070225, upload-time = "2025-06-22T16:19:31.416Z" }, + { url = "https://files.pythonhosted.org/packages/e5/73/5cbe4a3fd4bc3e2d67ffad02c88b83edc88f381b73ab982f48f3df1a7790/scipy-1.16.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:512c4f4f85912767c351a0306824ccca6fd91307a9f4318efe8fdbd9d30562ef", size = 35389070, upload-time = "2025-06-22T16:19:37.387Z" }, + { url = "https://files.pythonhosted.org/packages/86/e8/a60da80ab9ed68b31ea5a9c6dfd3c2f199347429f229bf7f939a90d96383/scipy-1.16.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e69f798847e9add03d512eaf5081a9a5c9a98757d12e52e6186ed9681247a1ac", size = 37825287, upload-time = "2025-06-22T16:19:43.375Z" }, + { url = "https://files.pythonhosted.org/packages/ea/b5/29fece1a74c6a94247f8a6fb93f5b28b533338e9c34fdcc9cfe7a939a767/scipy-1.16.0-cp312-cp312-win_amd64.whl", hash = "sha256:adf9b1999323ba335adc5d1dc7add4781cb5a4b0ef1e98b79768c05c796c4e49", size = 38431929, upload-time = "2025-06-22T16:19:49.385Z" }, + { url = "https://files.pythonhosted.org/packages/46/95/0746417bc24be0c2a7b7563946d61f670a3b491b76adede420e9d173841f/scipy-1.16.0-cp313-cp313-macosx_10_14_x86_64.whl", hash = "sha256:e9f414cbe9ca289a73e0cc92e33a6a791469b6619c240aa32ee18abdce8ab451", size = 36418162, upload-time = "2025-06-22T16:19:56.3Z" }, + { url = "https://files.pythonhosted.org/packages/19/5a/914355a74481b8e4bbccf67259bbde171348a3f160b67b4945fbc5f5c1e5/scipy-1.16.0-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:bbba55fb97ba3cdef9b1ee973f06b09d518c0c7c66a009c729c7d1592be1935e", size = 28465985, upload-time = "2025-06-22T16:20:01.238Z" }, + { url = "https://files.pythonhosted.org/packages/58/46/63477fc1246063855969cbefdcee8c648ba4b17f67370bd542ba56368d0b/scipy-1.16.0-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:58e0d4354eacb6004e7aa1cd350e5514bd0270acaa8d5b36c0627bb3bb486974", size = 20737961, upload-time = "2025-06-22T16:20:05.913Z" }, + { url = "https://files.pythonhosted.org/packages/93/86/0fbb5588b73555e40f9d3d6dde24ee6fac7d8e301a27f6f0cab9d8f66ff2/scipy-1.16.0-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:75b2094ec975c80efc273567436e16bb794660509c12c6a31eb5c195cbf4b6dc", size = 23377941, upload-time = "2025-06-22T16:20:10.668Z" }, + { url = "https://files.pythonhosted.org/packages/ca/80/a561f2bf4c2da89fa631b3cbf31d120e21ea95db71fd9ec00cb0247c7a93/scipy-1.16.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:6b65d232157a380fdd11a560e7e21cde34fdb69d65c09cb87f6cc024ee376351", size = 33196703, upload-time = "2025-06-22T16:20:16.097Z" }, + { url = "https://files.pythonhosted.org/packages/11/6b/3443abcd0707d52e48eb315e33cc669a95e29fc102229919646f5a501171/scipy-1.16.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:1d8747f7736accd39289943f7fe53a8333be7f15a82eea08e4afe47d79568c32", size = 35083410, upload-time = "2025-06-22T16:20:21.734Z" }, + { url = "https://files.pythonhosted.org/packages/20/ab/eb0fc00e1e48961f1bd69b7ad7e7266896fe5bad4ead91b5fc6b3561bba4/scipy-1.16.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:eb9f147a1b8529bb7fec2a85cf4cf42bdfadf9e83535c309a11fdae598c88e8b", size = 35387829, upload-time = "2025-06-22T16:20:27.548Z" }, + { url = "https://files.pythonhosted.org/packages/57/9e/d6fc64e41fad5d481c029ee5a49eefc17f0b8071d636a02ceee44d4a0de2/scipy-1.16.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:d2b83c37edbfa837a8923d19c749c1935ad3d41cf196006a24ed44dba2ec4358", size = 37841356, upload-time = "2025-06-22T16:20:35.112Z" }, + { url = "https://files.pythonhosted.org/packages/7c/a7/4c94bbe91f12126b8bf6709b2471900577b7373a4fd1f431f28ba6f81115/scipy-1.16.0-cp313-cp313-win_amd64.whl", hash = "sha256:79a3c13d43c95aa80b87328a46031cf52508cf5f4df2767602c984ed1d3c6bbe", size = 38403710, upload-time = "2025-06-22T16:21:54.473Z" }, + { url = "https://files.pythonhosted.org/packages/47/20/965da8497f6226e8fa90ad3447b82ed0e28d942532e92dd8b91b43f100d4/scipy-1.16.0-cp313-cp313t-macosx_10_14_x86_64.whl", hash = "sha256:f91b87e1689f0370690e8470916fe1b2308e5b2061317ff76977c8f836452a47", size = 36813833, upload-time = "2025-06-22T16:20:43.925Z" }, + { url = "https://files.pythonhosted.org/packages/28/f4/197580c3dac2d234e948806e164601c2df6f0078ed9f5ad4a62685b7c331/scipy-1.16.0-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:88a6ca658fb94640079e7a50b2ad3b67e33ef0f40e70bdb7dc22017dae73ac08", size = 28974431, upload-time = "2025-06-22T16:20:51.302Z" }, + { url = "https://files.pythonhosted.org/packages/8a/fc/e18b8550048d9224426e76906694c60028dbdb65d28b1372b5503914b89d/scipy-1.16.0-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:ae902626972f1bd7e4e86f58fd72322d7f4ec7b0cfc17b15d4b7006efc385176", size = 21246454, upload-time = "2025-06-22T16:20:57.276Z" }, + { url = "https://files.pythonhosted.org/packages/8c/48/07b97d167e0d6a324bfd7484cd0c209cc27338b67e5deadae578cf48e809/scipy-1.16.0-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:8cb824c1fc75ef29893bc32b3ddd7b11cf9ab13c1127fe26413a05953b8c32ed", size = 23772979, upload-time = "2025-06-22T16:21:03.363Z" }, + { url = "https://files.pythonhosted.org/packages/4c/4f/9efbd3f70baf9582edf271db3002b7882c875ddd37dc97f0f675ad68679f/scipy-1.16.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:de2db7250ff6514366a9709c2cba35cb6d08498e961cba20d7cff98a7ee88938", size = 33341972, upload-time = "2025-06-22T16:21:11.14Z" }, + { url = "https://files.pythonhosted.org/packages/3f/dc/9e496a3c5dbe24e76ee24525155ab7f659c20180bab058ef2c5fa7d9119c/scipy-1.16.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:e85800274edf4db8dd2e4e93034f92d1b05c9421220e7ded9988b16976f849c1", size = 35185476, upload-time = "2025-06-22T16:21:19.156Z" }, + { url = "https://files.pythonhosted.org/packages/ce/b3/21001cff985a122ba434c33f2c9d7d1dc3b669827e94f4fc4e1fe8b9dfd8/scipy-1.16.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:4f720300a3024c237ace1cb11f9a84c38beb19616ba7c4cdcd771047a10a1706", size = 35570990, upload-time = "2025-06-22T16:21:27.797Z" }, + { url = "https://files.pythonhosted.org/packages/e5/d3/7ba42647d6709251cdf97043d0c107e0317e152fa2f76873b656b509ff55/scipy-1.16.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:aad603e9339ddb676409b104c48a027e9916ce0d2838830691f39552b38a352e", size = 37950262, upload-time = "2025-06-22T16:21:36.976Z" }, + { url = "https://files.pythonhosted.org/packages/eb/c4/231cac7a8385394ebbbb4f1ca662203e9d8c332825ab4f36ffc3ead09a42/scipy-1.16.0-cp313-cp313t-win_amd64.whl", hash = "sha256:f56296fefca67ba605fd74d12f7bd23636267731a72cb3947963e76b8c0a25db", size = 38515076, upload-time = "2025-06-22T16:21:45.694Z" }, +] + [[package]] name = "secretstorage" version = "3.3.3" @@ -5561,6 +6341,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/54/24/b4293291fa1dd830f353d2cb163295742fa87f179fcc8a20a306a81978b7/SecretStorage-3.3.3-py3-none-any.whl", hash = "sha256:f356e6628222568e3af06f2eba8df495efa13b3b63081dafd4f7d9a7b7bc9f99", size = 15221, upload-time = "2022-08-13T16:22:44.457Z" }, ] +[[package]] +name = "segments" +version = "2.3.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "csvw", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "regex", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/9b/4c/25e499df952528004ff3f7f8e1e63d20773ed30141ed17c285adb5446f55/segments-2.3.0.tar.gz", hash = "sha256:381143f66f59eaf45398f5bb57f899d6501be011048ec5f92754c9b24b181615", size = 18193, upload-time = "2025-02-20T07:55:42.273Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/11/18/cb614939ccd46d336013cab705f1e11540ec9c68b08ecbb854ab893fc480/segments-2.3.0-py2.py3-none-any.whl", hash = "sha256:30a5656787071430cd22422e04713b2a9beabe1a97d2ebf37f716a56f90577a3", size = 15705, upload-time = "2025-02-20T07:55:39.755Z" }, +] + [[package]] name = "semantic-version" version = "2.10.0" @@ -5669,16 +6462,12 @@ version = "2.1.1" source = { registry = "https://pypi.org/simple" } resolution-markers = [ "python_full_version >= '3.13' and platform_machine == 'arm64' and sys_platform == 'darwin'", - "python_full_version >= '3.12.4' and python_full_version < '3.13' and platform_machine == 'arm64' and sys_platform == 'darwin'", - "python_full_version >= '3.12' and python_full_version < '3.12.4' and platform_machine == 'arm64' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and platform_machine == 'arm64' and sys_platform == 'darwin'", "python_full_version == '3.11.*' and platform_machine == 'arm64' and sys_platform == 'darwin'", "python_full_version == '3.10.*' and platform_machine == 'arm64' and sys_platform == 'darwin'", - "python_full_version >= '3.12.4' and platform_machine != 'arm64' and sys_platform == 'darwin'", - "python_full_version >= '3.12' and python_full_version < '3.12.4' and platform_machine != 'arm64' and sys_platform == 'darwin'", - "python_full_version >= '3.12.4' and platform_machine == 'aarch64' and sys_platform == 'linux'", - "python_full_version >= '3.12' and python_full_version < '3.12.4' and platform_machine == 'aarch64' and sys_platform == 'linux'", - "(python_full_version >= '3.12.4' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version >= '3.12.4' and sys_platform != 'darwin' and sys_platform != 'linux')", - "(python_full_version >= '3.12' and python_full_version < '3.12.4' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version >= '3.12' and python_full_version < '3.12.4' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version >= '3.12' and platform_machine != 'arm64' and sys_platform == 'darwin'", + "python_full_version >= '3.12' and platform_machine == 'aarch64' and sys_platform == 'linux'", + "(python_full_version >= '3.12' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version >= '3.12' and sys_platform != 'darwin' and sys_platform != 'linux')", "python_full_version == '3.11.*' and platform_machine != 'arm64' and sys_platform == 'darwin'", "python_full_version == '3.11.*' and platform_machine == 'aarch64' and sys_platform == 'linux'", "(python_full_version == '3.11.*' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version == '3.11.*' and sys_platform != 'darwin' and sys_platform != 'linux')", @@ -5687,8 +6476,7 @@ resolution-markers = [ "(python_full_version == '3.10.*' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version == '3.10.*' and sys_platform != 'darwin' and sys_platform != 'linux')", ] dependencies = [ - { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, - { name = "numpy", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/ca/3c/2da625233f4e605155926566c0e7ea8dda361877f48e8b1655e53456f252/shapely-2.1.1.tar.gz", hash = "sha256:500621967f2ffe9642454808009044c21e5b35db89ce69f8a2042c2ffd0e2772", size = 315422, upload-time = "2025-05-19T11:04:41.265Z" } wheels = [ @@ -5752,6 +6540,18 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050, upload-time = "2024-12-04T17:35:26.475Z" }, ] +[[package]] +name = "smart-open" +version = "7.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "wrapt", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/21/30/1f41c3d3b8cec82024b4b277bfd4e5b18b765ae7279eb9871fa25c503778/smart_open-7.1.0.tar.gz", hash = "sha256:a4f09f84f0f6d3637c6543aca7b5487438877a21360e7368ccf1f704789752ba", size = 72044, upload-time = "2024-12-17T13:19:17.71Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7a/18/9a8d9f01957aa1f8bbc5676d54c2e33102d247e146c1a3679d3bd5cc2e3a/smart_open-7.1.0-py3-none-any.whl", hash = "sha256:4b8489bb6058196258bafe901730c7db0dcf4f083f316e97269c66f45502055b", size = 61746, upload-time = "2024-12-17T13:19:21.076Z" }, +] + [[package]] name = "smmap" version = "5.0.2" @@ -5770,6 +6570,33 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10235, upload-time = "2024-02-25T23:20:01.196Z" }, ] +[[package]] +name = "sounddevice" +version = "0.5.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cffi", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/91/a6/91e9f08ed37c7c9f56b5227c6aea7f2ae63ba2d59520eefb24e82cbdd589/sounddevice-0.5.2.tar.gz", hash = "sha256:c634d51bd4e922d6f0fa5e1a975cc897c947f61d31da9f79ba7ea34dff448b49", size = 53150, upload-time = "2025-05-16T18:12:27.339Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/75/2d/582738fc01352a5bc20acac9221e58538365cecb3bb264838f66419df219/sounddevice-0.5.2-py3-none-any.whl", hash = "sha256:82375859fac2e73295a4ab3fc60bd4782743157adc339561c1f1142af472f505", size = 32450, upload-time = "2025-05-16T18:12:21.919Z" }, + { url = "https://files.pythonhosted.org/packages/3f/6f/e3dd751face4fcb5be25e8abba22f25d8e6457ebd7e9ed79068b768dc0e5/sounddevice-0.5.2-py3-none-macosx_10_6_x86_64.macosx_10_6_universal2.whl", hash = "sha256:943f27e66037d41435bdd0293454072cdf657b594c9cde63cd01ee3daaac7ab3", size = 108088, upload-time = "2025-05-16T18:12:23.146Z" }, +] + +[[package]] +name = "soundfile" +version = "0.13.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cffi", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e1/41/9b873a8c055582859b239be17902a85339bec6a30ad162f98c9b0288a2cc/soundfile-0.13.1.tar.gz", hash = "sha256:b2c68dab1e30297317080a5b43df57e302584c49e2942defdde0acccc53f0e5b", size = 46156, upload-time = "2025-01-25T09:17:04.831Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/64/28/e2a36573ccbcf3d57c00626a21fe51989380636e821b341d36ccca0c1c3a/soundfile-0.13.1-py2.py3-none-any.whl", hash = "sha256:a23c717560da2cf4c7b5ae1142514e0fd82d6bbd9dfc93a50423447142f2c445", size = 25751, upload-time = "2025-01-25T09:16:44.235Z" }, + { url = "https://files.pythonhosted.org/packages/a0/e5/58fd1a8d7b26fc113af244f966ee3aecf03cb9293cb935daaddc1e455e18/soundfile-0.13.1-py2.py3-none-macosx_11_0_arm64.whl", hash = "sha256:743f12c12c4054921e15736c6be09ac26b3b3d603aef6fd69f9dde68748f2593", size = 1101406, upload-time = "2025-01-25T09:16:49.662Z" }, +] + [[package]] name = "soupsieve" version = "2.7" @@ -5779,6 +6606,103 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/e7/9c/0e6afc12c269578be5c0c1c9f4b49a8d32770a080260c333ac04cc1c832d/soupsieve-2.7-py3-none-any.whl", hash = "sha256:6e60cc5c1ffaf1cebcc12e8188320b72071e922c2e897f737cadce79ad5d30c4", size = 36677, upload-time = "2025-04-20T18:50:07.196Z" }, ] +[[package]] +name = "soxr" +version = "0.5.0.post1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/02/c0/4429bf9b3be10e749149e286aa5c53775399ec62891c6b970456c6dca325/soxr-0.5.0.post1.tar.gz", hash = "sha256:7092b9f3e8a416044e1fa138c8172520757179763b85dc53aa9504f4813cff73", size = 170853, upload-time = "2024-08-31T03:43:33.058Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1f/5d/56ad3d181d30d103128f65cc44f4c4e24c199e6d5723e562704e47c89f78/soxr-0.5.0.post1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fa0a382fb8d8e2afed2c1642723b2d2d1b9a6728ff89f77f3524034c8885b8c9", size = 160192, upload-time = "2024-08-31T03:43:01.128Z" }, + { url = "https://files.pythonhosted.org/packages/0e/48/3e88329a695f6e0e38a3b171fff819d75d7cc055dae1ec5d5074f34d61e3/soxr-0.5.0.post1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:39e0f791ba178d69cd676485dbee37e75a34f20daa478d90341ecb7f6d9d690f", size = 159933, upload-time = "2024-08-31T03:43:10.053Z" }, + { url = "https://files.pythonhosted.org/packages/20/f1/88adaca3c52e03bcb66b63d295df2e2d35bf355d19598c6ce84b20be7fca/soxr-0.5.0.post1-cp312-abi3-macosx_11_0_arm64.whl", hash = "sha256:4704ba6b13a3f1e41d12acf192878384c1c31f71ce606829c64abdf64a8d7d32", size = 156373, upload-time = "2024-08-31T03:43:18.633Z" }, + { url = "https://files.pythonhosted.org/packages/88/5c/f6cf6b90ce1628def17c746d6cde9991fdd29667ef1d5fb5bd3b22eb788f/soxr-0.5.0.post1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e1dda616fc797b1507b65486f3116ed2c929f13c722922963dd419d64ada6c07", size = 160375, upload-time = "2024-08-31T03:43:26.742Z" }, +] + +[[package]] +name = "spacy" +version = "3.8.7" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "catalogue", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "cymem", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "jinja2", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "langcodes", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "murmurhash", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "packaging", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "preshed", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "pydantic", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "requests", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "setuptools", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "spacy-legacy", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "spacy-loggers", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "srsly", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "thinc", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "tqdm", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "typer", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "wasabi", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "weasel", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/1e/9e/fb4e1cefe3fbd51ea6a243e5a3d2bc629baa9a28930bf4be6fe5672fa1ca/spacy-3.8.7.tar.gz", hash = "sha256:700fd174c6c552276be142c48e70bb53cae24c4dd86003c4432af9cb93e4c908", size = 1316143, upload-time = "2025-05-23T08:55:39.538Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/39/a9/c1fdecc11d8855b3df601bbfb5fc4cdb98d79b6a5d166af974354ea658eb/spacy-3.8.7-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5672f8a0fe7a3847e925544890be60015fbf48a60a838803425f82e849dd4f18", size = 6261550, upload-time = "2025-05-23T08:54:06.984Z" }, + { url = "https://files.pythonhosted.org/packages/03/2a/43afac516eb82409ca47d7206f982beaf265d2ba06a72ca07cf06b290c20/spacy-3.8.7-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9194b7cf015ed9b4450ffb162da49c8a9305e76b468de036b0948abdfc748a37", size = 6392440, upload-time = "2025-05-23T08:54:25.12Z" }, + { url = "https://files.pythonhosted.org/packages/16/fb/b5d54522969a632c06f4af354763467553b66d5bf0671ac39f3cceb3fd54/spacy-3.8.7-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f70b676955fa6959347ca86ed6edd8ff0d6eb2ba20561fdfec76924bd3e540f9", size = 5906035, upload-time = "2025-05-23T08:54:44.824Z" }, + { url = "https://files.pythonhosted.org/packages/96/c3/d2362846154d4d341136774831605df02d61f49ac637524a15f4f2794874/spacy-3.8.7-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:de0e0bddb810ed05bce44bcb91460eabe52bc56323da398d2ca74288a906da35", size = 5878106, upload-time = "2025-05-23T08:55:04.496Z" }, + { url = "https://files.pythonhosted.org/packages/29/99/77f46998d662d74891f0ccbdd2623b727f23eac3d8550f6692fc4b75e1f4/spacy-3.8.7-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:fdff9526d3f79914c6eae8eb40af440f0085be122264df2ada0f2ba294be2b42", size = 6287052, upload-time = "2025-05-23T08:55:23.96Z" }, +] + +[[package]] +name = "spacy-curated-transformers" +version = "0.3.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "curated-tokenizers", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "curated-transformers", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "torch", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/d8/b3/a4fd3cf28008cbe1d95463b5c76a0d9c8da7b9ad4f06289c2be4aae62052/spacy_curated_transformers-0.3.1.tar.gz", hash = "sha256:7e53fccf64260e641b0a3f2b65b6d98381b86cef6eeb21ce279e8db849e8525d", size = 218990, upload-time = "2025-05-28T10:29:32.69Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/42/d8/f053d43125ae4ad14f3e2a12a475a656128233f1f40a272c6e09a05c73e8/spacy_curated_transformers-0.3.1-py2.py3-none-any.whl", hash = "sha256:503559b6a1d6e44ec2c978e18ed871ce5c3d56871dc9216c0e1523428204e610", size = 237943, upload-time = "2025-05-28T10:29:31.058Z" }, +] + +[[package]] +name = "spacy-legacy" +version = "3.0.12" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d9/79/91f9d7cc8db5642acad830dcc4b49ba65a7790152832c4eceb305e46d681/spacy-legacy-3.0.12.tar.gz", hash = "sha256:b37d6e0c9b6e1d7ca1cf5bc7152ab64a4c4671f59c85adaf7a3fcb870357a774", size = 23806, upload-time = "2023-01-23T09:04:15.104Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c3/55/12e842c70ff8828e34e543a2c7176dac4da006ca6901c9e8b43efab8bc6b/spacy_legacy-3.0.12-py2.py3-none-any.whl", hash = "sha256:476e3bd0d05f8c339ed60f40986c07387c0a71479245d6d0f4298dbd52cda55f", size = 29971, upload-time = "2023-01-23T09:04:13.45Z" }, +] + +[[package]] +name = "spacy-loggers" +version = "1.0.5" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/67/3d/926db774c9c98acf66cb4ed7faf6c377746f3e00b84b700d0868b95d0712/spacy-loggers-1.0.5.tar.gz", hash = "sha256:d60b0bdbf915a60e516cc2e653baeff946f0cfc461b452d11a4d5458c6fe5f24", size = 20811, upload-time = "2023-09-11T12:26:52.323Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/33/78/d1a1a026ef3af911159398c939b1509d5c36fe524c7b644f34a5146c4e16/spacy_loggers-1.0.5-py3-none-any.whl", hash = "sha256:196284c9c446cc0cdb944005384270d775fdeaf4f494d8e269466cfa497ef645", size = 22343, upload-time = "2023-09-11T12:26:50.586Z" }, +] + +[[package]] +name = "srsly" +version = "2.5.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "catalogue", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b7/e8/eb51b1349f50bac0222398af0942613fdc9d1453ae67cbe4bf9936a1a54b/srsly-2.5.1.tar.gz", hash = "sha256:ab1b4bf6cf3e29da23dae0493dd1517fb787075206512351421b89b4fc27c77e", size = 466464, upload-time = "2025-01-17T09:26:26.919Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/03/8a/379dd9014e56460e71346cf512632fb8cbc89aa6dfebe31dff21c9eb37ba/srsly-2.5.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:cf643e6f45c266cfacea54997a1f9cfe0113fadac1ac21a1ec5b200cfe477ba0", size = 634425, upload-time = "2025-01-17T09:25:07.957Z" }, + { url = "https://files.pythonhosted.org/packages/41/47/1bdaad84502df973ecb8ca658117234cf7fb20e1dec60da71dce82de993f/srsly-2.5.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7a8269c40859806d71920396d185f4f38dc985cdb6a28d3a326a701e29a5f629", size = 634374, upload-time = "2025-01-17T09:25:26.609Z" }, + { url = "https://files.pythonhosted.org/packages/b6/e8/9372317a4742c70b87b413335adfcdfb2bee4f88f3faba89fabb9e6abf21/srsly-2.5.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:459d987130e57e83ce9e160899afbeb871d975f811e6958158763dd9a8a20f23", size = 634697, upload-time = "2025-01-17T09:25:43.605Z" }, + { url = "https://files.pythonhosted.org/packages/67/8b/501f51f4eaee7e1fd7327764799cb0a42f5d0de042a97916d30dbff770fc/srsly-2.5.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:6ac3944c112acb3347a39bfdc2ebfc9e2d4bace20fe1c0b764374ac5b83519f2", size = 632842, upload-time = "2025-01-17T09:25:59.777Z" }, + { url = "https://files.pythonhosted.org/packages/72/1c/834f083c1f9bc09370b293393983a3ae27ea3081eb190e793f5ca84aebe0/srsly-2.5.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1529f5beb25a736ba1177f55532a942c786a8b4fe544bf9e9fbbebc5c63f4224", size = 635664, upload-time = "2025-01-17T09:26:16.048Z" }, +] + [[package]] name = "stack-data" version = "0.6.3" @@ -5793,6 +6717,40 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl", hash = "sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695", size = 24521, upload-time = "2023-09-30T13:58:03.53Z" }, ] +[[package]] +name = "standard-aifc" +version = "3.13.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "audioop-lts", marker = "python_full_version >= '3.13' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "standard-chunk", marker = "python_full_version >= '3.13' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c4/53/6050dc3dde1671eb3db592c13b55a8005e5040131f7509cef0215212cb84/standard_aifc-3.13.0.tar.gz", hash = "sha256:64e249c7cb4b3daf2fdba4e95721f811bde8bdfc43ad9f936589b7bb2fae2e43", size = 15240, upload-time = "2024-10-30T16:01:31.772Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c3/52/5fbb203394cc852334d1575cc020f6bcec768d2265355984dfd361968f36/standard_aifc-3.13.0-py3-none-any.whl", hash = "sha256:f7ae09cc57de1224a0dd8e3eb8f73830be7c3d0bc485de4c1f82b4a7f645ac66", size = 10492, upload-time = "2024-10-30T16:01:07.071Z" }, +] + +[[package]] +name = "standard-chunk" +version = "3.13.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/43/06/ce1bb165c1f111c7d23a1ad17204d67224baa69725bb6857a264db61beaf/standard_chunk-3.13.0.tar.gz", hash = "sha256:4ac345d37d7e686d2755e01836b8d98eda0d1a3ee90375e597ae43aaf064d654", size = 4672, upload-time = "2024-10-30T16:18:28.326Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7a/90/a5c1084d87767d787a6caba615aa50dc587229646308d9420c960cb5e4c0/standard_chunk-3.13.0-py3-none-any.whl", hash = "sha256:17880a26c285189c644bd5bd8f8ed2bdb795d216e3293e6dbe55bbd848e2982c", size = 4944, upload-time = "2024-10-30T16:18:26.694Z" }, +] + +[[package]] +name = "standard-sunau" +version = "3.13.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "audioop-lts", marker = "python_full_version >= '3.13' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/66/e3/ce8d38cb2d70e05ffeddc28bb09bad77cfef979eb0a299c9117f7ed4e6a9/standard_sunau-3.13.0.tar.gz", hash = "sha256:b319a1ac95a09a2378a8442f403c66f4fd4b36616d6df6ae82b8e536ee790908", size = 9368, upload-time = "2024-10-30T16:01:41.626Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/34/ae/e3707f6c1bc6f7aa0df600ba8075bfb8a19252140cd595335be60e25f9ee/standard_sunau-3.13.0-py3-none-any.whl", hash = "sha256:53af624a9529c41062f4c2fd33837f297f3baa196b0cfceffea6555654602622", size = 7364, upload-time = "2024-10-30T16:01:28.003Z" }, +] + [[package]] name = "starlette" version = "0.46.2" @@ -5868,6 +6826,42 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/66/67/b1dec4be3cc4f6294c36f0efd7da4b02f618e99433e3e8cb10c8f0c60dc0/tesserocr-2.8.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:317931096378a1dd056500d9c3a489aa0e4546e4d7792a6ffa1a31c0902ab365", size = 6509792, upload-time = "2025-02-12T12:40:40.935Z" }, ] +[[package]] +name = "thinc" +version = "8.3.6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "blis", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "catalogue", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "confection", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "cymem", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "murmurhash", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "packaging", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "preshed", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "pydantic", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "setuptools", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "srsly", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "wasabi", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/01/f4/7607f76c2e156a34b1961a941eb8407b84da4f515cc0903b44d44edf4f45/thinc-8.3.6.tar.gz", hash = "sha256:49983f9b7ddc4343a9532694a9118dd216d7a600520a21849a43b6c268ec6cad", size = 194218, upload-time = "2025-04-04T11:50:45.751Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e9/7e/ce6acadb3ae92836ed9eef2359fd2bd5f9257d22c422b44dd9c1cbc2b5c8/thinc-8.3.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ba7ced4bfc5890dd8f4be2978f8d491a07e80c9d9a7fffae9f57970b55db01bd", size = 844882, upload-time = "2025-04-04T11:49:45.947Z" }, + { url = "https://files.pythonhosted.org/packages/f0/53/5f9eeb725c2ca94adef76a2cd0289bc530728b0a035eed815c766a9291ef/thinc-8.3.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:92b3c38bdfdf81d0485685a6261b8a6ea40e03120b08ced418c8400f5e186b2d", size = 845256, upload-time = "2025-04-04T11:49:57.401Z" }, + { url = "https://files.pythonhosted.org/packages/3b/89/1ac54b18d4de79872c633302a10825695a36cd2e552cb8d4fea820b7a357/thinc-8.3.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:91acdbf3041c0ac1775ede570535a779cdf1312c317cd054d7b9d200da685c23", size = 839410, upload-time = "2025-04-04T11:50:09.26Z" }, + { url = "https://files.pythonhosted.org/packages/ae/79/ac31cd25d1d973b824de10ebbc56788688aecdd8f56800daf8edfff45097/thinc-8.3.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:89dbeb2ca94f1033e90999a70e2bc9dd5390d5341dc1a3a4b8793d03855265c3", size = 832654, upload-time = "2025-04-04T11:50:24.871Z" }, + { url = "https://files.pythonhosted.org/packages/38/bd/8f24bbf54f3aabfadbab33e271e02899a348390cb2327903a48511bb64b1/thinc-8.3.6-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9745f4e57560fbba4cfd6d87ef9a0b09efbb14d7721bd7fdd44411ee4bbd021f", size = 848545, upload-time = "2025-04-04T11:50:36.702Z" }, +] + +[[package]] +name = "threadpoolctl" +version = "3.6.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b7/4d/08c89e34946fce2aec4fbb45c9016efd5f4d7f24af8e5d93296e935631d8/threadpoolctl-3.6.0.tar.gz", hash = "sha256:8ab8b4aa3491d812b623328249fab5302a68d2d71745c8a4c719a2fcaba9f44e", size = 21274, upload-time = "2025-03-13T13:49:23.031Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/32/d5/f9a850d79b0851d1d4ef6456097579a9005b31fea68726a4ae5f2d82ddd9/threadpoolctl-3.6.0-py3-none-any.whl", hash = "sha256:43a0b8fd5a2928500110039e43a5eed8480b918967083ea48dc3ab9f13c4a7fb", size = 18638, upload-time = "2025-03-13T13:49:21.846Z" }, +] + [[package]] name = "tifffile" version = "2024.8.30" @@ -5909,27 +6903,65 @@ version = "2025.6.11" source = { registry = "https://pypi.org/simple" } resolution-markers = [ "python_full_version >= '3.13' and platform_machine == 'arm64' and sys_platform == 'darwin'", - "python_full_version >= '3.12.4' and python_full_version < '3.13' and platform_machine == 'arm64' and sys_platform == 'darwin'", - "python_full_version >= '3.12' and python_full_version < '3.12.4' and platform_machine == 'arm64' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and platform_machine == 'arm64' and sys_platform == 'darwin'", "python_full_version == '3.11.*' and platform_machine == 'arm64' and sys_platform == 'darwin'", - "python_full_version >= '3.12.4' and platform_machine != 'arm64' and sys_platform == 'darwin'", - "python_full_version >= '3.12' and python_full_version < '3.12.4' and platform_machine != 'arm64' and sys_platform == 'darwin'", - "python_full_version >= '3.12.4' and platform_machine == 'aarch64' and sys_platform == 'linux'", - "python_full_version >= '3.12' and python_full_version < '3.12.4' and platform_machine == 'aarch64' and sys_platform == 'linux'", - "(python_full_version >= '3.12.4' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version >= '3.12.4' and sys_platform != 'darwin' and sys_platform != 'linux')", - "(python_full_version >= '3.12' and python_full_version < '3.12.4' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version >= '3.12' and python_full_version < '3.12.4' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version >= '3.12' and platform_machine != 'arm64' and sys_platform == 'darwin'", + "python_full_version >= '3.12' and platform_machine == 'aarch64' and sys_platform == 'linux'", + "(python_full_version >= '3.12' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version >= '3.12' and sys_platform != 'darwin' and sys_platform != 'linux')", "python_full_version == '3.11.*' and platform_machine != 'arm64' and sys_platform == 'darwin'", "python_full_version == '3.11.*' and platform_machine == 'aarch64' and sys_platform == 'linux'", "(python_full_version == '3.11.*' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version == '3.11.*' and sys_platform != 'darwin' and sys_platform != 'linux')", ] dependencies = [ - { name = "numpy", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/11/9e/636e3e433c24da41dd639e0520db60750dbf5e938d023b83af8097382ea3/tifffile-2025.6.11.tar.gz", hash = "sha256:0ece4c2e7a10656957d568a093b07513c0728d30c1bd8cc12725901fffdb7143", size = 370125, upload-time = "2025-06-12T04:49:38.839Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/3a/d8/1ba8f32bfc9cb69e37edeca93738e883f478fbe84ae401f72c0d8d507841/tifffile-2025.6.11-py3-none-any.whl", hash = "sha256:32effb78b10b3a283eb92d4ebf844ae7e93e151458b0412f38518b4e6d2d7542", size = 230800, upload-time = "2025-06-12T04:49:37.458Z" }, ] +[[package]] +name = "tiktoken" +version = "0.9.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "regex" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ea/cf/756fedf6981e82897f2d570dd25fa597eb3f4459068ae0572d7e888cfd6f/tiktoken-0.9.0.tar.gz", hash = "sha256:d02a5ca6a938e0490e1ff957bc48c8b078c88cb83977be1625b1fd8aac792c5d", size = 35991, upload-time = "2025-02-14T06:03:01.003Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/64/f3/50ec5709fad61641e4411eb1b9ac55b99801d71f1993c29853f256c726c9/tiktoken-0.9.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:586c16358138b96ea804c034b8acf3f5d3f0258bd2bc3b0227af4af5d622e382", size = 1065770, upload-time = "2025-02-14T06:02:01.251Z" }, + { url = "https://files.pythonhosted.org/packages/d6/f8/5a9560a422cf1755b6e0a9a436e14090eeb878d8ec0f80e0cd3d45b78bf4/tiktoken-0.9.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d9c59ccc528c6c5dd51820b3474402f69d9a9e1d656226848ad68a8d5b2e5108", size = 1009314, upload-time = "2025-02-14T06:02:02.869Z" }, + { url = "https://files.pythonhosted.org/packages/bc/20/3ed4cfff8f809cb902900ae686069e029db74567ee10d017cb254df1d598/tiktoken-0.9.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f0968d5beeafbca2a72c595e8385a1a1f8af58feaebb02b227229b69ca5357fd", size = 1143140, upload-time = "2025-02-14T06:02:04.165Z" }, + { url = "https://files.pythonhosted.org/packages/f1/95/cc2c6d79df8f113bdc6c99cdec985a878768120d87d839a34da4bd3ff90a/tiktoken-0.9.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:92a5fb085a6a3b7350b8fc838baf493317ca0e17bd95e8642f95fc69ecfed1de", size = 1197860, upload-time = "2025-02-14T06:02:06.268Z" }, + { url = "https://files.pythonhosted.org/packages/c7/6c/9c1a4cc51573e8867c9381db1814223c09ebb4716779c7f845d48688b9c8/tiktoken-0.9.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:15a2752dea63d93b0332fb0ddb05dd909371ededa145fe6a3242f46724fa7990", size = 1259661, upload-time = "2025-02-14T06:02:08.889Z" }, + { url = "https://files.pythonhosted.org/packages/cd/4c/22eb8e9856a2b1808d0a002d171e534eac03f96dbe1161978d7389a59498/tiktoken-0.9.0-cp310-cp310-win_amd64.whl", hash = "sha256:26113fec3bd7a352e4b33dbaf1bd8948de2507e30bd95a44e2b1156647bc01b4", size = 894026, upload-time = "2025-02-14T06:02:12.841Z" }, + { url = "https://files.pythonhosted.org/packages/4d/ae/4613a59a2a48e761c5161237fc850eb470b4bb93696db89da51b79a871f1/tiktoken-0.9.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:f32cc56168eac4851109e9b5d327637f15fd662aa30dd79f964b7c39fbadd26e", size = 1065987, upload-time = "2025-02-14T06:02:14.174Z" }, + { url = "https://files.pythonhosted.org/packages/3f/86/55d9d1f5b5a7e1164d0f1538a85529b5fcba2b105f92db3622e5d7de6522/tiktoken-0.9.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:45556bc41241e5294063508caf901bf92ba52d8ef9222023f83d2483a3055348", size = 1009155, upload-time = "2025-02-14T06:02:15.384Z" }, + { url = "https://files.pythonhosted.org/packages/03/58/01fb6240df083b7c1916d1dcb024e2b761213c95d576e9f780dfb5625a76/tiktoken-0.9.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:03935988a91d6d3216e2ec7c645afbb3d870b37bcb67ada1943ec48678e7ee33", size = 1142898, upload-time = "2025-02-14T06:02:16.666Z" }, + { url = "https://files.pythonhosted.org/packages/b1/73/41591c525680cd460a6becf56c9b17468d3711b1df242c53d2c7b2183d16/tiktoken-0.9.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8b3d80aad8d2c6b9238fc1a5524542087c52b860b10cbf952429ffb714bc1136", size = 1197535, upload-time = "2025-02-14T06:02:18.595Z" }, + { url = "https://files.pythonhosted.org/packages/7d/7c/1069f25521c8f01a1a182f362e5c8e0337907fae91b368b7da9c3e39b810/tiktoken-0.9.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b2a21133be05dc116b1d0372af051cd2c6aa1d2188250c9b553f9fa49301b336", size = 1259548, upload-time = "2025-02-14T06:02:20.729Z" }, + { url = "https://files.pythonhosted.org/packages/6f/07/c67ad1724b8e14e2b4c8cca04b15da158733ac60136879131db05dda7c30/tiktoken-0.9.0-cp311-cp311-win_amd64.whl", hash = "sha256:11a20e67fdf58b0e2dea7b8654a288e481bb4fc0289d3ad21291f8d0849915fb", size = 893895, upload-time = "2025-02-14T06:02:22.67Z" }, + { url = "https://files.pythonhosted.org/packages/cf/e5/21ff33ecfa2101c1bb0f9b6df750553bd873b7fb532ce2cb276ff40b197f/tiktoken-0.9.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:e88f121c1c22b726649ce67c089b90ddda8b9662545a8aeb03cfef15967ddd03", size = 1065073, upload-time = "2025-02-14T06:02:24.768Z" }, + { url = "https://files.pythonhosted.org/packages/8e/03/a95e7b4863ee9ceec1c55983e4cc9558bcfd8f4f80e19c4f8a99642f697d/tiktoken-0.9.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a6600660f2f72369acb13a57fb3e212434ed38b045fd8cc6cdd74947b4b5d210", size = 1008075, upload-time = "2025-02-14T06:02:26.92Z" }, + { url = "https://files.pythonhosted.org/packages/40/10/1305bb02a561595088235a513ec73e50b32e74364fef4de519da69bc8010/tiktoken-0.9.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:95e811743b5dfa74f4b227927ed86cbc57cad4df859cb3b643be797914e41794", size = 1140754, upload-time = "2025-02-14T06:02:28.124Z" }, + { url = "https://files.pythonhosted.org/packages/1b/40/da42522018ca496432ffd02793c3a72a739ac04c3794a4914570c9bb2925/tiktoken-0.9.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:99376e1370d59bcf6935c933cb9ba64adc29033b7e73f5f7569f3aad86552b22", size = 1196678, upload-time = "2025-02-14T06:02:29.845Z" }, + { url = "https://files.pythonhosted.org/packages/5c/41/1e59dddaae270ba20187ceb8aa52c75b24ffc09f547233991d5fd822838b/tiktoken-0.9.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:badb947c32739fb6ddde173e14885fb3de4d32ab9d8c591cbd013c22b4c31dd2", size = 1259283, upload-time = "2025-02-14T06:02:33.838Z" }, + { url = "https://files.pythonhosted.org/packages/5b/64/b16003419a1d7728d0d8c0d56a4c24325e7b10a21a9dd1fc0f7115c02f0a/tiktoken-0.9.0-cp312-cp312-win_amd64.whl", hash = "sha256:5a62d7a25225bafed786a524c1b9f0910a1128f4232615bf3f8257a73aaa3b16", size = 894897, upload-time = "2025-02-14T06:02:36.265Z" }, + { url = "https://files.pythonhosted.org/packages/7a/11/09d936d37f49f4f494ffe660af44acd2d99eb2429d60a57c71318af214e0/tiktoken-0.9.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:2b0e8e05a26eda1249e824156d537015480af7ae222ccb798e5234ae0285dbdb", size = 1064919, upload-time = "2025-02-14T06:02:37.494Z" }, + { url = "https://files.pythonhosted.org/packages/80/0e/f38ba35713edb8d4197ae602e80837d574244ced7fb1b6070b31c29816e0/tiktoken-0.9.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:27d457f096f87685195eea0165a1807fae87b97b2161fe8c9b1df5bd74ca6f63", size = 1007877, upload-time = "2025-02-14T06:02:39.516Z" }, + { url = "https://files.pythonhosted.org/packages/fe/82/9197f77421e2a01373e27a79dd36efdd99e6b4115746ecc553318ecafbf0/tiktoken-0.9.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2cf8ded49cddf825390e36dd1ad35cd49589e8161fdcb52aa25f0583e90a3e01", size = 1140095, upload-time = "2025-02-14T06:02:41.791Z" }, + { url = "https://files.pythonhosted.org/packages/f2/bb/4513da71cac187383541facd0291c4572b03ec23c561de5811781bbd988f/tiktoken-0.9.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cc156cb314119a8bb9748257a2eaebd5cc0753b6cb491d26694ed42fc7cb3139", size = 1195649, upload-time = "2025-02-14T06:02:43Z" }, + { url = "https://files.pythonhosted.org/packages/fa/5c/74e4c137530dd8504e97e3a41729b1103a4ac29036cbfd3250b11fd29451/tiktoken-0.9.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:cd69372e8c9dd761f0ab873112aba55a0e3e506332dd9f7522ca466e817b1b7a", size = 1258465, upload-time = "2025-02-14T06:02:45.046Z" }, + { url = "https://files.pythonhosted.org/packages/de/a8/8f499c179ec900783ffe133e9aab10044481679bb9aad78436d239eee716/tiktoken-0.9.0-cp313-cp313-win_amd64.whl", hash = "sha256:5ea0edb6f83dc56d794723286215918c1cde03712cbbafa0348b33448faf5b95", size = 894669, upload-time = "2025-02-14T06:02:47.341Z" }, + { url = "https://files.pythonhosted.org/packages/c4/92/4d681b5c066d417b98f22a0176358d9e606e183c6b61c337d61fb54accb4/tiktoken-0.9.0-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:c6386ca815e7d96ef5b4ac61e0048cd32ca5a92d5781255e13b31381d28667dc", size = 1066217, upload-time = "2025-02-14T06:02:49.259Z" }, + { url = "https://files.pythonhosted.org/packages/12/dd/af27bbe186df481666de48cf0f2f4e0643ba9c78b472e7bf70144c663b22/tiktoken-0.9.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:75f6d5db5bc2c6274b674ceab1615c1778e6416b14705827d19b40e6355f03e0", size = 1009441, upload-time = "2025-02-14T06:02:51.347Z" }, + { url = "https://files.pythonhosted.org/packages/33/35/2792b7dcb8b150d2767322637513c73a3e80833c19212efea80b31087894/tiktoken-0.9.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e15b16f61e6f4625a57a36496d28dd182a8a60ec20a534c5343ba3cafa156ac7", size = 1144423, upload-time = "2025-02-14T06:02:52.547Z" }, + { url = "https://files.pythonhosted.org/packages/65/ae/4d1682510172ce3500bbed3b206ebc4efefe280f0bf1179cfb043f88cc16/tiktoken-0.9.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ebcec91babf21297022882344c3f7d9eed855931466c3311b1ad6b64befb3df", size = 1199002, upload-time = "2025-02-14T06:02:55.72Z" }, + { url = "https://files.pythonhosted.org/packages/1c/2e/df2dc31dd161190f315829775a9652ea01d60f307af8f98e35bdd14a6a93/tiktoken-0.9.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:e5fd49e7799579240f03913447c0cdfa1129625ebd5ac440787afc4345990427", size = 1260610, upload-time = "2025-02-14T06:02:56.924Z" }, + { url = "https://files.pythonhosted.org/packages/70/22/e8fc1bf9cdecc439b7ddc28a45b976a8c699a38874c070749d855696368a/tiktoken-0.9.0-cp39-cp39-win_amd64.whl", hash = "sha256:26242ca9dc8b58e875ff4ca078b9a94d2f0813e6a535dcd2205df5d49d927cc7", size = 894215, upload-time = "2025-02-14T06:02:59.031Z" }, +] + [[package]] name = "tinycss2" version = "1.4.0" @@ -5953,27 +6985,27 @@ wheels = [ [[package]] name = "tokenizers" -version = "0.21.1" +version = "0.21.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "huggingface-hub" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/92/76/5ac0c97f1117b91b7eb7323dcd61af80d72f790b4df71249a7850c195f30/tokenizers-0.21.1.tar.gz", hash = "sha256:a1bb04dc5b448985f86ecd4b05407f5a8d97cb2c0532199b2a302a604a0165ab", size = 343256, upload-time = "2025-03-13T10:51:18.189Z" } +sdist = { url = "https://files.pythonhosted.org/packages/ab/2d/b0fce2b8201635f60e8c95990080f58461cc9ca3d5026de2e900f38a7f21/tokenizers-0.21.2.tar.gz", hash = "sha256:fdc7cffde3e2113ba0e6cc7318c40e3438a4d74bbc62bf04bcc63bdfb082ac77", size = 351545, upload-time = "2025-06-24T10:24:52.449Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a5/1f/328aee25f9115bf04262e8b4e5a2050b7b7cf44b59c74e982db7270c7f30/tokenizers-0.21.1-cp39-abi3-macosx_10_12_x86_64.whl", hash = "sha256:e78e413e9e668ad790a29456e677d9d3aa50a9ad311a40905d6861ba7692cf41", size = 2780767, upload-time = "2025-03-13T10:51:09.459Z" }, - { url = "https://files.pythonhosted.org/packages/ae/1a/4526797f3719b0287853f12c5ad563a9be09d446c44ac784cdd7c50f76ab/tokenizers-0.21.1-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:cd51cd0a91ecc801633829fcd1fda9cf8682ed3477c6243b9a095539de4aecf3", size = 2650555, upload-time = "2025-03-13T10:51:07.692Z" }, - { url = "https://files.pythonhosted.org/packages/4d/7a/a209b29f971a9fdc1da86f917fe4524564924db50d13f0724feed37b2a4d/tokenizers-0.21.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:28da6b72d4fb14ee200a1bd386ff74ade8992d7f725f2bde2c495a9a98cf4d9f", size = 2937541, upload-time = "2025-03-13T10:50:56.679Z" }, - { url = "https://files.pythonhosted.org/packages/3c/1e/b788b50ffc6191e0b1fc2b0d49df8cff16fe415302e5ceb89f619d12c5bc/tokenizers-0.21.1-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:34d8cfde551c9916cb92014e040806122295a6800914bab5865deb85623931cf", size = 2819058, upload-time = "2025-03-13T10:50:59.525Z" }, - { url = "https://files.pythonhosted.org/packages/36/aa/3626dfa09a0ecc5b57a8c58eeaeb7dd7ca9a37ad9dd681edab5acd55764c/tokenizers-0.21.1-cp39-abi3-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aaa852d23e125b73d283c98f007e06d4595732104b65402f46e8ef24b588d9f8", size = 3133278, upload-time = "2025-03-13T10:51:04.678Z" }, - { url = "https://files.pythonhosted.org/packages/a4/4d/8fbc203838b3d26269f944a89459d94c858f5b3f9a9b6ee9728cdcf69161/tokenizers-0.21.1-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a21a15d5c8e603331b8a59548bbe113564136dc0f5ad8306dd5033459a226da0", size = 3144253, upload-time = "2025-03-13T10:51:01.261Z" }, - { url = "https://files.pythonhosted.org/packages/d8/1b/2bd062adeb7c7511b847b32e356024980c0ffcf35f28947792c2d8ad2288/tokenizers-0.21.1-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2fdbd4c067c60a0ac7eca14b6bd18a5bebace54eb757c706b47ea93204f7a37c", size = 3398225, upload-time = "2025-03-13T10:51:03.243Z" }, - { url = "https://files.pythonhosted.org/packages/8a/63/38be071b0c8e06840bc6046991636bcb30c27f6bb1e670f4f4bc87cf49cc/tokenizers-0.21.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2dd9a0061e403546f7377df940e866c3e678d7d4e9643d0461ea442b4f89e61a", size = 3038874, upload-time = "2025-03-13T10:51:06.235Z" }, - { url = "https://files.pythonhosted.org/packages/ec/83/afa94193c09246417c23a3c75a8a0a96bf44ab5630a3015538d0c316dd4b/tokenizers-0.21.1-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:db9484aeb2e200c43b915a1a0150ea885e35f357a5a8fabf7373af333dcc8dbf", size = 9014448, upload-time = "2025-03-13T10:51:10.927Z" }, - { url = "https://files.pythonhosted.org/packages/ae/b3/0e1a37d4f84c0f014d43701c11eb8072704f6efe8d8fc2dcdb79c47d76de/tokenizers-0.21.1-cp39-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:ed248ab5279e601a30a4d67bdb897ecbe955a50f1e7bb62bd99f07dd11c2f5b6", size = 8937877, upload-time = "2025-03-13T10:51:12.688Z" }, - { url = "https://files.pythonhosted.org/packages/ac/33/ff08f50e6d615eb180a4a328c65907feb6ded0b8f990ec923969759dc379/tokenizers-0.21.1-cp39-abi3-musllinux_1_2_i686.whl", hash = "sha256:9ac78b12e541d4ce67b4dfd970e44c060a2147b9b2a21f509566d556a509c67d", size = 9186645, upload-time = "2025-03-13T10:51:14.723Z" }, - { url = "https://files.pythonhosted.org/packages/5f/aa/8ae85f69a9f6012c6f8011c6f4aa1c96154c816e9eea2e1b758601157833/tokenizers-0.21.1-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:e5a69c1a4496b81a5ee5d2c1f3f7fbdf95e90a0196101b0ee89ed9956b8a168f", size = 9384380, upload-time = "2025-03-13T10:51:16.526Z" }, - { url = "https://files.pythonhosted.org/packages/e8/5b/a5d98c89f747455e8b7a9504910c865d5e51da55e825a7ae641fb5ff0a58/tokenizers-0.21.1-cp39-abi3-win32.whl", hash = "sha256:1039a3a5734944e09de1d48761ade94e00d0fa760c0e0551151d4dd851ba63e3", size = 2239506, upload-time = "2025-03-13T10:51:20.643Z" }, - { url = "https://files.pythonhosted.org/packages/e6/b6/072a8e053ae600dcc2ac0da81a23548e3b523301a442a6ca900e92ac35be/tokenizers-0.21.1-cp39-abi3-win_amd64.whl", hash = "sha256:0f0dcbcc9f6e13e675a66d7a5f2f225a736745ce484c1a4e07476a89ccdad382", size = 2435481, upload-time = "2025-03-13T10:51:19.243Z" }, + { url = "https://files.pythonhosted.org/packages/1d/cc/2936e2d45ceb130a21d929743f1e9897514691bec123203e10837972296f/tokenizers-0.21.2-cp39-abi3-macosx_10_12_x86_64.whl", hash = "sha256:342b5dfb75009f2255ab8dec0041287260fed5ce00c323eb6bab639066fef8ec", size = 2875206, upload-time = "2025-06-24T10:24:42.755Z" }, + { url = "https://files.pythonhosted.org/packages/6c/e6/33f41f2cc7861faeba8988e7a77601407bf1d9d28fc79c5903f8f77df587/tokenizers-0.21.2-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:126df3205d6f3a93fea80c7a8a266a78c1bd8dd2fe043386bafdd7736a23e45f", size = 2732655, upload-time = "2025-06-24T10:24:41.56Z" }, + { url = "https://files.pythonhosted.org/packages/33/2b/1791eb329c07122a75b01035b1a3aa22ad139f3ce0ece1b059b506d9d9de/tokenizers-0.21.2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4a32cd81be21168bd0d6a0f0962d60177c447a1aa1b1e48fa6ec9fc728ee0b12", size = 3019202, upload-time = "2025-06-24T10:24:31.791Z" }, + { url = "https://files.pythonhosted.org/packages/05/15/fd2d8104faa9f86ac68748e6f7ece0b5eb7983c7efc3a2c197cb98c99030/tokenizers-0.21.2-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8bd8999538c405133c2ab999b83b17c08b7fc1b48c1ada2469964605a709ef91", size = 2934539, upload-time = "2025-06-24T10:24:34.567Z" }, + { url = "https://files.pythonhosted.org/packages/a5/2e/53e8fd053e1f3ffbe579ca5f9546f35ac67cf0039ed357ad7ec57f5f5af0/tokenizers-0.21.2-cp39-abi3-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5e9944e61239b083a41cf8fc42802f855e1dca0f499196df37a8ce219abac6eb", size = 3248665, upload-time = "2025-06-24T10:24:39.024Z" }, + { url = "https://files.pythonhosted.org/packages/00/15/79713359f4037aa8f4d1f06ffca35312ac83629da062670e8830917e2153/tokenizers-0.21.2-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:514cd43045c5d546f01142ff9c79a96ea69e4b5cda09e3027708cb2e6d5762ab", size = 3451305, upload-time = "2025-06-24T10:24:36.133Z" }, + { url = "https://files.pythonhosted.org/packages/38/5f/959f3a8756fc9396aeb704292777b84f02a5c6f25c3fc3ba7530db5feb2c/tokenizers-0.21.2-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b1b9405822527ec1e0f7d8d2fdb287a5730c3a6518189c968254a8441b21faae", size = 3214757, upload-time = "2025-06-24T10:24:37.784Z" }, + { url = "https://files.pythonhosted.org/packages/c5/74/f41a432a0733f61f3d21b288de6dfa78f7acff309c6f0f323b2833e9189f/tokenizers-0.21.2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fed9a4d51c395103ad24f8e7eb976811c57fbec2af9f133df471afcd922e5020", size = 3121887, upload-time = "2025-06-24T10:24:40.293Z" }, + { url = "https://files.pythonhosted.org/packages/3c/6a/bc220a11a17e5d07b0dfb3b5c628621d4dcc084bccd27cfaead659963016/tokenizers-0.21.2-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:2c41862df3d873665ec78b6be36fcc30a26e3d4902e9dd8608ed61d49a48bc19", size = 9091965, upload-time = "2025-06-24T10:24:44.431Z" }, + { url = "https://files.pythonhosted.org/packages/6c/bd/ac386d79c4ef20dc6f39c4706640c24823dca7ebb6f703bfe6b5f0292d88/tokenizers-0.21.2-cp39-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:ed21dc7e624e4220e21758b2e62893be7101453525e3d23264081c9ef9a6d00d", size = 9053372, upload-time = "2025-06-24T10:24:46.455Z" }, + { url = "https://files.pythonhosted.org/packages/63/7b/5440bf203b2a5358f074408f7f9c42884849cd9972879e10ee6b7a8c3b3d/tokenizers-0.21.2-cp39-abi3-musllinux_1_2_i686.whl", hash = "sha256:0e73770507e65a0e0e2a1affd6b03c36e3bc4377bd10c9ccf51a82c77c0fe365", size = 9298632, upload-time = "2025-06-24T10:24:48.446Z" }, + { url = "https://files.pythonhosted.org/packages/a4/d2/faa1acac3f96a7427866e94ed4289949b2524f0c1878512516567d80563c/tokenizers-0.21.2-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:106746e8aa9014a12109e58d540ad5465b4c183768ea96c03cbc24c44d329958", size = 9470074, upload-time = "2025-06-24T10:24:50.378Z" }, + { url = "https://files.pythonhosted.org/packages/d8/a5/896e1ef0707212745ae9f37e84c7d50269411aef2e9ccd0de63623feecdf/tokenizers-0.21.2-cp39-abi3-win32.whl", hash = "sha256:cabda5a6d15d620b6dfe711e1af52205266d05b379ea85a8a301b3593c60e962", size = 2330115, upload-time = "2025-06-24T10:24:55.069Z" }, + { url = "https://files.pythonhosted.org/packages/13/c3/cc2755ee10be859c4338c962a35b9a663788c0c0b50c0bdd8078fb6870cf/tokenizers-0.21.2-cp39-abi3-win_amd64.whl", hash = "sha256:58747bb898acdb1007f37a7bbe614346e98dc28708ffb66a3fd50ce169ac6c98", size = 2509918, upload-time = "2025-06-24T10:24:53.71Z" }, ] [[package]] @@ -6087,8 +7119,7 @@ version = "0.22.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, - { name = "numpy", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, { name = "pillow" }, { name = "torch" }, ] @@ -6161,14 +7192,13 @@ wheels = [ [[package]] name = "transformers" -version = "4.52.4" +version = "4.53.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "filelock" }, { name = "huggingface-hub" }, { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, - { name = "numpy", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, { name = "packaging" }, { name = "pyyaml" }, { name = "regex" }, @@ -6177,9 +7207,9 @@ dependencies = [ { name = "tokenizers" }, { name = "tqdm" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/da/a9/275037087f9d846580b02f2d7cae0e0a6955d46f84583d0151d6227bd416/transformers-4.52.4.tar.gz", hash = "sha256:aff3764441c1adc192a08dba49740d3cbbcb72d850586075aed6bd89b98203e6", size = 8945376, upload-time = "2025-05-30T09:17:17.947Z" } +sdist = { url = "https://files.pythonhosted.org/packages/e8/40/f2d2c3bcf5c6135027cab0fd7db52f6149a1c23acc4e45f914c43d362386/transformers-4.53.0.tar.gz", hash = "sha256:f89520011b4a73066fdc7aabfa158317c3934a22e3cd652d7ffbc512c4063841", size = 9177265, upload-time = "2025-06-26T16:10:54.729Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/96/f2/25b27b396af03d5b64e61976b14f7209e2939e9e806c10749b6d277c273e/transformers-4.52.4-py3-none-any.whl", hash = "sha256:203f5c19416d5877e36e88633943761719538a25d9775977a24fe77a1e5adfc7", size = 10460375, upload-time = "2025-05-30T09:17:14.477Z" }, + { url = "https://files.pythonhosted.org/packages/5e/0c/68d03a38f6ab2ba2b2829eb11b334610dd236e7926787f7656001b68e1f2/transformers-4.53.0-py3-none-any.whl", hash = "sha256:7d8039ff032c01a2d7f8a8fe0066620367003275f023815a966e62203f9f5dd7", size = 10821970, upload-time = "2025-06-26T16:10:51.505Z" }, ] [package.optional-dependencies] @@ -6193,7 +7223,7 @@ name = "triton" version = "3.3.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "setuptools", marker = "(python_full_version < '3.10' and platform_machine != 'arm64' and sys_platform == 'darwin') or (platform_machine != 'aarch64' and sys_platform == 'linux') or (sys_platform != 'darwin' and sys_platform != 'linux')" }, + { name = "setuptools", marker = "python_full_version < '3.10' or platform_machine != 'arm64' or sys_platform != 'darwin'" }, ] wheels = [ { url = "https://files.pythonhosted.org/packages/8d/a9/549e51e9b1b2c9b854fd761a1d23df0ba2fbc60bd0c13b489ffa518cfcb7/triton-3.3.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b74db445b1c562844d3cfad6e9679c72e93fdfb1a90a24052b03bb5c49d1242e", size = 155600257, upload-time = "2025-05-29T23:39:36.085Z" }, @@ -6243,11 +7273,11 @@ wheels = [ [[package]] name = "types-awscrt" -version = "0.27.2" +version = "0.27.4" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/36/6c/583522cfb3c330e92e726af517a91c13247e555e021791a60f1b03c6ff16/types_awscrt-0.27.2.tar.gz", hash = "sha256:acd04f57119eb15626ab0ba9157fc24672421de56e7bd7b9f61681fedee44e91", size = 16304, upload-time = "2025-05-16T03:10:08.712Z" } +sdist = { url = "https://files.pythonhosted.org/packages/94/95/02564024f8668feab6733a2c491005b5281b048b3d0573510622cbcd9fd4/types_awscrt-0.27.4.tar.gz", hash = "sha256:c019ba91a097e8a31d6948f6176ede1312963f41cdcacf82482ac877cbbcf390", size = 16941, upload-time = "2025-06-29T22:58:04.756Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/4c/82/1ee2e5c9d28deac086ab3a6ff07c8bc393ef013a083f546c623699881715/types_awscrt-0.27.2-py3-none-any.whl", hash = "sha256:49a045f25bbd5ad2865f314512afced933aed35ddbafc252e2268efa8a787e4e", size = 37761, upload-time = "2025-05-16T03:10:07.466Z" }, + { url = "https://files.pythonhosted.org/packages/d4/40/cb4d04df4ac3520858f5b397a4ab89f34be2601000002a26edd8ddc0cac5/types_awscrt-0.27.4-py3-none-any.whl", hash = "sha256:a8c4b9d9ae66d616755c322aba75ab9bd793c6fef448917e6de2e8b8cdf66fb4", size = 39626, upload-time = "2025-06-29T22:58:03.157Z" }, ] [[package]] @@ -6419,6 +7449,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/af/c4/fa70e77e1c27bbaf682d790bd09ef40e86807ada704c528ef3ea3418d439/ujson-5.10.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:e1402f0564a97d2a52310ae10a64d25bcef94f8dd643fcf5d310219d915484f7", size = 42230, upload-time = "2024-05-14T02:02:29.678Z" }, ] +[[package]] +name = "uritemplate" +version = "4.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/98/60/f174043244c5306c9988380d2cb10009f91563fc4b31293d27e17201af56/uritemplate-4.2.0.tar.gz", hash = "sha256:480c2ed180878955863323eea31b0ede668795de182617fef9c6ca09e6ec9d0e", size = 33267, upload-time = "2025-06-02T15:12:06.318Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a9/99/3ae339466c9183ea5b8ae87b34c0b897eda475d2aec2307cae60e5cd4f29/uritemplate-4.2.0-py3-none-any.whl", hash = "sha256:962201ba1c4edcab02e60f9a0d3821e82dfc5d2d6662a21abd533879bdb8a686", size = 11488, upload-time = "2025-06-02T15:12:03.405Z" }, +] + [[package]] name = "urllib3" version = "2.5.0" @@ -6430,16 +7469,16 @@ wheels = [ [[package]] name = "uvicorn" -version = "0.34.3" +version = "0.35.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "click", version = "8.2.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, { name = "h11", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, { name = "typing-extensions", marker = "python_full_version == '3.10.*' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/de/ad/713be230bcda622eaa35c28f0d328c3675c371238470abdea52417f17a8e/uvicorn-0.34.3.tar.gz", hash = "sha256:35919a9a979d7a59334b6b10e05d77c1d0d574c50e0fc98b8b1a0f165708b55a", size = 76631, upload-time = "2025-06-01T07:48:17.531Z" } +sdist = { url = "https://files.pythonhosted.org/packages/5e/42/e0e305207bb88c6b8d3061399c6a961ffe5fbb7e2aa63c9234df7259e9cd/uvicorn-0.35.0.tar.gz", hash = "sha256:bc662f087f7cf2ce11a1d7fd70b90c9f98ef2e2831556dd078d131b96cc94a01", size = 78473, upload-time = "2025-06-28T16:15:46.058Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/6d/0d/8adfeaa62945f90d19ddc461c55f4a50c258af7662d34b6a3d5d1f8646f6/uvicorn-0.34.3-py3-none-any.whl", hash = "sha256:16246631db62bdfbf069b0645177d6e8a77ba950cfedbfd093acef9444e4d885", size = 62431, upload-time = "2025-06-01T07:48:15.664Z" }, + { url = "https://files.pythonhosted.org/packages/d2/e2/dc81b1bd1dcfe91735810265e9d26bc8ec5da45b4c0f6237e286819194c3/uvicorn-0.35.0-py3-none-any.whl", hash = "sha256:197535216b25ff9b785e29a0b79199f55222193d47f820816e7da751e9bc8d4a", size = 66406, upload-time = "2025-06-28T16:15:44.816Z" }, ] [[package]] @@ -6456,6 +7495,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/f3/40/b1c265d4b2b62b58576588510fc4d1fe60a86319c8de99fd8e9fec617d2c/virtualenv-20.31.2-py3-none-any.whl", hash = "sha256:36efd0d9650ee985f0cad72065001e66d49a6f24eb44d98980f630686243cf11", size = 6057982, upload-time = "2025-05-08T17:58:21.15Z" }, ] +[[package]] +name = "wasabi" +version = "1.1.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ac/f9/054e6e2f1071e963b5e746b48d1e3727470b2a490834d18ad92364929db3/wasabi-1.1.3.tar.gz", hash = "sha256:4bb3008f003809db0c3e28b4daf20906ea871a2bb43f9914197d540f4f2e0878", size = 30391, upload-time = "2024-05-31T16:56:18.99Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/06/7c/34330a89da55610daa5f245ddce5aab81244321101614751e7537f125133/wasabi-1.1.3-py3-none-any.whl", hash = "sha256:f76e16e8f7e79f8c4c8be49b4024ac725713ab10cd7f19350ad18a8e3f71728c", size = 27880, upload-time = "2024-05-31T16:56:16.699Z" }, +] + [[package]] name = "watchdog" version = "6.0.0" @@ -6502,6 +7550,26 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl", hash = "sha256:3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859", size = 34166, upload-time = "2024-01-06T02:10:55.763Z" }, ] +[[package]] +name = "weasel" +version = "0.4.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cloudpathlib", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "confection", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "packaging", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "pydantic", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "requests", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "smart-open", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "srsly", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "typer", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "wasabi", marker = "python_full_version >= '3.10' and platform_machine == 'arm64' and sys_platform == 'darwin'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a7/1a/9c522dd61b52939c217925d3e55c95f9348b73a66a956f52608e1e59a2c0/weasel-0.4.1.tar.gz", hash = "sha256:aabc210f072e13f6744e5c3a28037f93702433405cd35673f7c6279147085aa9", size = 38417, upload-time = "2024-05-15T08:52:54.765Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2a/87/abd57374044e1f627f0a905ac33c1a7daab35a3a815abfea4e1bafd3fdb1/weasel-0.4.1-py3-none-any.whl", hash = "sha256:24140a090ea1ac512a2b2f479cc64192fd1d527a7f3627671268d08ed5ac418c", size = 50270, upload-time = "2024-05-15T08:52:52.977Z" }, +] + [[package]] name = "webencodings" version = "0.5.1" @@ -6511,6 +7579,12 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/f4/24/2a3e3df732393fed8b3ebf2ec078f05546de641fe1b667ee316ec1dcf3b7/webencodings-0.5.1-py2.py3-none-any.whl", hash = "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78", size = 11774, upload-time = "2017-04-05T20:21:32.581Z" }, ] +[[package]] +name = "webrtcvad" +version = "2.0.10" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/89/34/e2de2d97f3288512b9ea56f92e7452f8207eb5a0096500badf9dfd48f5e6/webrtcvad-2.0.10.tar.gz", hash = "sha256:f1bed2fb25b63fb7b1a55d64090c993c9c9167b28485ae0bcdd81cf6ede96aea", size = 66156, upload-time = "2017-01-07T23:05:18.732Z" } + [[package]] name = "websockets" version = "15.0.1" @@ -6550,6 +7624,27 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/ca/51/5447876806d1088a0f8f71e16542bf350918128d0a69437df26047c8e46f/widgetsnbextension-4.0.14-py3-none-any.whl", hash = "sha256:4875a9eaf72fbf5079dc372a51a9f268fc38d46f767cbf85c43a36da5cb9b575", size = 2196503, upload-time = "2025-04-10T13:01:23.086Z" }, ] +[[package]] +name = "wrapt" +version = "1.17.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c3/fc/e91cc220803d7bc4db93fb02facd8461c37364151b8494762cc88b0fbcef/wrapt-1.17.2.tar.gz", hash = "sha256:41388e9d4d1522446fe79d3213196bd9e3b301a336965b9e27ca2788ebd122f3", size = 55531, upload-time = "2025-01-14T10:35:45.465Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5a/d1/1daec934997e8b160040c78d7b31789f19b122110a75eca3d4e8da0049e1/wrapt-1.17.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3d57c572081fed831ad2d26fd430d565b76aa277ed1d30ff4d40670b1c0dd984", size = 53307, upload-time = "2025-01-14T10:33:13.616Z" }, + { url = "https://files.pythonhosted.org/packages/62/bf/e0105016f907c30b4bd9e377867c48c34dc9c6c0c104556c9c9126bd89ed/wrapt-1.17.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:80dd7db6a7cb57ffbc279c4394246414ec99537ae81ffd702443335a61dbf3a7", size = 38777, upload-time = "2025-01-14T10:33:17.462Z" }, + { url = "https://files.pythonhosted.org/packages/cd/f7/a2aab2cbc7a665efab072344a8949a71081eed1d2f451f7f7d2b966594a2/wrapt-1.17.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ff04ef6eec3eee8a5efef2401495967a916feaa353643defcc03fc74fe213b58", size = 53308, upload-time = "2025-01-14T10:33:33.992Z" }, + { url = "https://files.pythonhosted.org/packages/65/46/5a917ce85b5c3b490d35c02bf71aedaa9f2f63f2d15d9949cc4ba56e8ba9/wrapt-1.17.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9abc77a4ce4c6f2a3168ff34b1da9b0f311a8f1cfd694ec96b0603dff1c79438", size = 38776, upload-time = "2025-01-14T10:33:38.28Z" }, + { url = "https://files.pythonhosted.org/packages/a1/bd/ab55f849fd1f9a58ed7ea47f5559ff09741b25f00c191231f9f059c83949/wrapt-1.17.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:d5e2439eecc762cd85e7bd37161d4714aa03a33c5ba884e26c81559817ca0925", size = 53799, upload-time = "2025-01-14T10:33:57.4Z" }, + { url = "https://files.pythonhosted.org/packages/48/2a/97928387d6ed1c1ebbfd4efc4133a0633546bec8481a2dd5ec961313a1c7/wrapt-1.17.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8fdbdb757d5390f7c675e558fd3186d590973244fab0c5fe63d373ade3e99d40", size = 38919, upload-time = "2025-01-14T10:34:04.093Z" }, + { url = "https://files.pythonhosted.org/packages/ce/b9/0ffd557a92f3b11d4c5d5e0c5e4ad057bd9eb8586615cdaf901409920b14/wrapt-1.17.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:6ed6ffac43aecfe6d86ec5b74b06a5be33d5bb9243d055141e8cabb12aa08125", size = 53800, upload-time = "2025-01-14T10:34:21.571Z" }, + { url = "https://files.pythonhosted.org/packages/36/89/0aae34c10fe524cce30fe5fc433210376bce94cf74d05b0d68344c8ba46e/wrapt-1.17.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a604bf7a053f8362d27eb9fefd2097f82600b856d5abe996d623babd067b1ab5", size = 38920, upload-time = "2025-01-14T10:34:25.386Z" }, + { url = "https://files.pythonhosted.org/packages/3d/bc/30f903f891a82d402ffb5fda27ec1d621cc97cb74c16fea0b6141f1d4e87/wrapt-1.17.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:4a721d3c943dae44f8e243b380cb645a709ba5bd35d3ad27bc2ed947e9c68192", size = 56312, upload-time = "2025-01-14T10:34:40.604Z" }, + { url = "https://files.pythonhosted.org/packages/4e/ca/3b7afa1eae3a9e7fefe499db9b96813f41828b9fdb016ee836c4c379dadb/wrapt-1.17.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:e496a8ce2c256da1eb98bd15803a79bee00fc351f5dfb9ea82594a3f058309e0", size = 40155, upload-time = "2025-01-14T10:34:47.25Z" }, + { url = "https://files.pythonhosted.org/packages/8a/f4/6ed2b8f6f1c832933283974839b88ec7c983fd12905e01e97889dadf7559/wrapt-1.17.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:99039fa9e6306880572915728d7f6c24a86ec57b0a83f6b2491e1d8ab0235b9a", size = 53308, upload-time = "2025-01-14T10:35:24.413Z" }, + { url = "https://files.pythonhosted.org/packages/fa/9b/e172c8f28a489a2888df18f953e2f6cb8d33b1a2e78c9dfc52d8bf6a5ead/wrapt-1.17.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:612dff5db80beef9e649c6d803a8d50c409082f1fedc9dbcdfde2983b2025b82", size = 38776, upload-time = "2025-01-14T10:35:28.183Z" }, + { url = "https://files.pythonhosted.org/packages/2d/82/f56956041adef78f849db6b289b282e72b55ab8045a75abad81898c28d19/wrapt-1.17.2-py3-none-any.whl", hash = "sha256:b18f2d1533a71f069c7f82d524a52599053d4c7166e9dd374ae2136b7f40f7c8", size = 23594, upload-time = "2025-01-14T10:35:44.018Z" }, +] + [[package]] name = "xlsxwriter" version = "3.2.5"