diff --git a/.gitignore b/.gitignore index f258900c0d..4ea1c3c9cc 100644 --- a/.gitignore +++ b/.gitignore @@ -454,3 +454,6 @@ pip-selfcheck.json # AI agents **/.bob/ + +# Local ASR model validation output +/asr-validation/ diff --git a/docling/.agents/skills/docling/references/cli.md b/docling/.agents/skills/docling/references/cli.md index 7b8ebbb31c..5408deab20 100644 --- a/docling/.agents/skills/docling/references/cli.md +++ b/docling/.agents/skills/docling/references/cli.md @@ -1,5 +1,9 @@ # Docling CLI reference +For Transformers ASR, install `docling-slim[feat-asr-transformers]` and select +`--asr-model granite_speech_5_0_2b` (or another speech preset). The same ASR +settings apply to video. + The `docling` CLI is the quickest way to understand the content of any supported document. It ships with the `docling` package (`pip install docling`) and needs no code. Use it any time you need to read, convert, or extract content from a diff --git a/docling/.agents/skills/docling/references/python-sdk.md b/docling/.agents/skills/docling/references/python-sdk.md index 254f59f383..3472ad42ff 100644 --- a/docling/.agents/skills/docling/references/python-sdk.md +++ b/docling/.agents/skills/docling/references/python-sdk.md @@ -394,8 +394,36 @@ result = converter.convert("interview.wav") print(result.document.export_to_markdown()) # timestamped transcript ``` +For a Transformers-format Whisper checkpoint, install +`docling-slim[feat-asr-transformers]` and select an explicit preset such as +`asr_model_specs.WHISPER_TINY_TRANSFORMERS`. The presets cover tiny, base, +small, medium, large, and large-v3-turbo. Set +`pipeline_options.artifacts_path` to a directory that contains `config.json` +and the Transformers model files, or to its parent directory with a +`openai--whisper-tiny` subdirectory. The local directory is used without a +Hugging Face lookup. For MLX Whisper, use `WHISPER_TINY_MLX` and provide an +MLX checkpoint with `config.json` and `weights.safetensors` or `weights.npz`. + +Other explicit Transformers presets are `GRANITE_4_0_1B_SPEECH` and +`NEMOTRON_3_5_ASR_STREAMING`. These models return +one transcript item that covers the full audio duration. The Transformers +Whisper presets provide model segment timestamps. + The CLI can also transcribe: `docling interview.wav --to md --output /tmp/`. +Additional presets include `GRANITE_SPEECH_5_0_2B`, +`GRANITE_SPEECH_5_0_470M_TURBOCTC`, its `_NC` variant, +`GRANITE_SPEECH_4_1_2B`, its `_PLUS` variant, and +`NEMOTRON_SPEECH_STREAMING_EN_0_6B`. Copy a preset with +`.model_copy(deep=True)` before changing `revision`, `language`, or `prompt`. +Granite and TurboCTC use FP32 weights on MPS to avoid BF16 normalization failures. +Plus defaults to plain transcription; speaker and timestamp tags are not parsed +into tracks. +The `_NC` preset uses a noncommercial license. +For real decoding checks, use `scripts/validate_asr_models.py` in a repository +checkout. Repeat `--model` to select presets; without it, the script runs every +ASR preset on the same fragment. It is outside normal pytest collection. + Video files (`.mp4`, `.mov`, `.mkv`, `.webm`, `.avi`) use `VideoPipeline` with `VideoPipelineOptions`, which also samples frames. `max_sampled_frames` defaults to `200` (set `None` for no limit). When `document_timeout` is set, all FFmpeg diff --git a/docling/backend/md_backend.py b/docling/backend/md_backend.py index 7e77cb8054..874e137815 100644 --- a/docling/backend/md_backend.py +++ b/docling/backend/md_backend.py @@ -1182,20 +1182,22 @@ def convert(self) -> DoclingDocument: ) html_str = html_payload.text - def _restore_original_html(txt, regex): - _txt, count = re.subn(regex, "", txt) - if count != self._html_blocks: - raise RuntimeError( - "An internal error has occurred during Markdown conversion." - ) - return _txt - - # restore original HTML by removing previously added markers - for regex in [ - rf"
\s*\s*{_START_MARKER}",
-                    rf"{_STOP_MARKER}\s*\s*
", - ]: - html_str = _restore_original_html(txt=html_str, regex=regex) + # Restore only the marked HTML blocks. The HTML serializer + # escapes code content, so decode each block before parsing it. + pattern = ( + rf"
\s*\s*{re.escape(_START_MARKER)}"
+                    rf"(.*?){re.escape(_STOP_MARKER)}\s*\s*
" + ) + html_str, count = re.subn( + pattern, + lambda match: unescape(match.group(1)), + html_str, + flags=re.DOTALL, + ) + if count != self._html_blocks: + raise RuntimeError( + "An internal error has occurred during Markdown conversion." + ) self._html_blocks = 0 # delegate to HTML backend stream = BytesIO(bytes(html_str, encoding="utf-8")) diff --git a/docling/cli/main.py b/docling/cli/main.py index 9434598b54..ca835aabf2 100644 --- a/docling/cli/main.py +++ b/docling/cli/main.py @@ -66,12 +66,16 @@ ) from docling.datamodel.accelerator_options import AcceleratorDevice, AcceleratorOptions from docling.datamodel.asr_model_specs import ( + ADDITIONAL_ASR_PRESETS, + GRANITE_4_0_1B_SPEECH, + NEMOTRON_3_5_ASR_STREAMING, WHISPER_BASE, WHISPER_BASE_EN_NATIVE, WHISPER_BASE_EN_S2T, WHISPER_BASE_MLX, WHISPER_BASE_NATIVE, WHISPER_BASE_S2T, + WHISPER_BASE_TRANSFORMERS, WHISPER_DISTIL_LARGE_V3_5_NATIVE, WHISPER_DISTIL_LARGE_V3_5_S2T, WHISPER_DISTIL_LARGE_V3_NATIVE, @@ -83,6 +87,7 @@ WHISPER_LARGE, WHISPER_LARGE_MLX, WHISPER_LARGE_NATIVE, + WHISPER_LARGE_TRANSFORMERS, WHISPER_LARGE_V3_S2T, WHISPER_LARGE_V3_TURBO_S2T, WHISPER_MEDIUM, @@ -91,21 +96,25 @@ WHISPER_MEDIUM_MLX, WHISPER_MEDIUM_NATIVE, WHISPER_MEDIUM_S2T, + WHISPER_MEDIUM_TRANSFORMERS, WHISPER_SMALL, WHISPER_SMALL_EN_NATIVE, WHISPER_SMALL_EN_S2T, WHISPER_SMALL_MLX, WHISPER_SMALL_NATIVE, WHISPER_SMALL_S2T, + WHISPER_SMALL_TRANSFORMERS, WHISPER_TINY, WHISPER_TINY_EN_NATIVE, WHISPER_TINY_EN_S2T, WHISPER_TINY_MLX, WHISPER_TINY_NATIVE, WHISPER_TINY_S2T, + WHISPER_TINY_TRANSFORMERS, WHISPER_TURBO, WHISPER_TURBO_MLX, WHISPER_TURBO_NATIVE, + WHISPER_TURBO_TRANSFORMERS, AsrModelType, ) from docling.datamodel.backend_options import ( @@ -148,7 +157,10 @@ VlmPipelineOptions, normalize_pdf_backend, ) -from docling.datamodel.pipeline_options_asr_model import InlineAsrOptions +from docling.datamodel.pipeline_options_asr_model import ( + InlineAsrOptions, + InlineAsrTransformersOptions, +) from docling.datamodel.settings import DEFAULT_PAGE_RANGE, settings from docling.datamodel.vlm_engine_options import ( AutoInlineVlmEngineOptions, @@ -406,13 +418,23 @@ def _resolve_asr_options(asr_model: AsrModelType) -> InlineAsrOptions: Shared mapping so both audio and (later) video CLI setup resolve ASR presets the same way. """ + if asr_model.value in ADDITIONAL_ASR_PRESETS: + return ADDITIONAL_ASR_PRESETS[asr_model.value].to_options() mapping: dict[AsrModelType, InlineAsrOptions] = { + AsrModelType.GRANITE_4_0_1B_SPEECH: GRANITE_4_0_1B_SPEECH, + AsrModelType.NEMOTRON_3_5_ASR_STREAMING: NEMOTRON_3_5_ASR_STREAMING, AsrModelType.WHISPER_TINY: WHISPER_TINY, AsrModelType.WHISPER_SMALL: WHISPER_SMALL, AsrModelType.WHISPER_MEDIUM: WHISPER_MEDIUM, AsrModelType.WHISPER_BASE: WHISPER_BASE, AsrModelType.WHISPER_LARGE: WHISPER_LARGE, AsrModelType.WHISPER_TURBO: WHISPER_TURBO, + AsrModelType.WHISPER_TINY_TRANSFORMERS: WHISPER_TINY_TRANSFORMERS, + AsrModelType.WHISPER_BASE_TRANSFORMERS: WHISPER_BASE_TRANSFORMERS, + AsrModelType.WHISPER_SMALL_TRANSFORMERS: WHISPER_SMALL_TRANSFORMERS, + AsrModelType.WHISPER_MEDIUM_TRANSFORMERS: WHISPER_MEDIUM_TRANSFORMERS, + AsrModelType.WHISPER_LARGE_TRANSFORMERS: WHISPER_LARGE_TRANSFORMERS, + AsrModelType.WHISPER_TURBO_TRANSFORMERS: WHISPER_TURBO_TRANSFORMERS, AsrModelType.WHISPER_TINY_MLX: WHISPER_TINY_MLX, AsrModelType.WHISPER_SMALL_MLX: WHISPER_SMALL_MLX, AsrModelType.WHISPER_MEDIUM_MLX: WHISPER_MEDIUM_MLX, @@ -1001,6 +1023,13 @@ def convert( # noqa: C901 AsrModelType, typer.Option(..., help="Choose the ASR model to use with audio/video files."), ] = AsrModelType.WHISPER_TINY, + asr_language: Annotated[ + str | None, + typer.Option( + "--asr-language", + help="Source language for Transformers ASR.", + ), + ] = None, video_sampling_mode: Annotated[ Literal["fixed", "scene"], typer.Option(..., help="frame sampling mode."), @@ -2020,6 +2049,12 @@ def _resolve_pdf_backend() -> tuple[type[PdfDocumentBackend], PdfBackendOptions] # Auto-selecting models (choose best implementation for hardware) asr_pipeline_options.asr_options = _resolve_asr_options(asr_model) + if isinstance(asr_pipeline_options.asr_options, InlineAsrTransformersOptions): + asr_pipeline_options.asr_options = ( + asr_pipeline_options.asr_options.model_copy( + update={"language": asr_language} + ) + ) _log.debug(f"ASR pipeline_options: {asr_pipeline_options}") @@ -2053,7 +2088,9 @@ def _resolve_pdf_backend() -> tuple[type[PdfDocumentBackend], PdfBackendOptions] video_pipeline_options = VideoPipelineOptions() video_pipeline_options.enable_diarization = video_diarization video_pipeline_options.document_timeout = document_timeout - video_pipeline_options.asr_options = _resolve_asr_options(asr_model) + video_pipeline_options.asr_options = ( + asr_pipeline_options.asr_options.model_copy(deep=True) + ) if video_sampling_mode == "scene": video_pipeline_options.frame_sampling_mode = ( VideoFrameSamplingMode.SCENE_CHANGE diff --git a/docling/datamodel/asr_model_specs.py b/docling/datamodel/asr_model_specs.py index 005d113215..4609754881 100644 --- a/docling/datamodel/asr_model_specs.py +++ b/docling/datamodel/asr_model_specs.py @@ -9,6 +9,11 @@ ) from docling.datamodel.accelerator_options import AcceleratorDevice +from docling.datamodel.asr_presets import ( + AsrEngineConfig, + AsrModelPreset, + AsrModelSpec, +) from docling.datamodel.pipeline_options_asr_model import ( # AsrResponseFormat, # ApiAsrOptions, @@ -729,7 +734,190 @@ def _distil_whisper_prefetch_name(model_name: str) -> str: # ============================================================================= +_WHISPER_EXPORTS = { + "tiny": "mlx-community/whisper-tiny-mlx", + "base": "mlx-community/whisper-base-mlx", + "small": "mlx-community/whisper-small-mlx", + "medium": "mlx-community/whisper-medium-mlx-8bit", + "large": "mlx-community/whisper-large-mlx-8bit", + "turbo": "mlx-community/whisper-turbo", +} + +WHISPER_ASR_PRESETS: dict[str, AsrModelPreset] = { + size: AsrModelPreset( + preset_id=f"whisper_{size}", + default_engine_type=InferenceAsrFramework.TRANSFORMERS, + model_spec=AsrModelSpec( + name=f"Whisper {size}", + default_repo_id=( + "openai/whisper-large-v3-turbo" + if size == "turbo" + else f"openai/whisper-{size}" + ), + supported_engines={ + InferenceAsrFramework.TRANSFORMERS, + InferenceAsrFramework.MLX, + }, + engine_overrides={ + InferenceAsrFramework.MLX: AsrEngineConfig(repo_id=mlx_repo_id) + }, + ), + ) + for size, mlx_repo_id in _WHISPER_EXPORTS.items() +} + +WHISPER_TINY_TRANSFORMERS = WHISPER_ASR_PRESETS["tiny"].to_options() +WHISPER_BASE_TRANSFORMERS = WHISPER_ASR_PRESETS["base"].to_options() +WHISPER_SMALL_TRANSFORMERS = WHISPER_ASR_PRESETS["small"].to_options() +WHISPER_MEDIUM_TRANSFORMERS = WHISPER_ASR_PRESETS["medium"].to_options() +WHISPER_LARGE_TRANSFORMERS = WHISPER_ASR_PRESETS["large"].to_options() +WHISPER_TURBO_TRANSFORMERS = WHISPER_ASR_PRESETS["turbo"].to_options() + +GRANITE_4_0_1B_SPEECH_PRESET = AsrModelPreset( + preset_id="granite_4_0_1b_speech", + default_engine_type=InferenceAsrFramework.TRANSFORMERS, + model_spec=AsrModelSpec( + name="Granite 4.0 1B Speech", + default_repo_id="ibm-granite/granite-4.0-1b-speech", + model_family="granite", + supported_engines={InferenceAsrFramework.TRANSFORMERS}, + ), +) +NEMOTRON_3_5_ASR_STREAMING_PRESET = AsrModelPreset( + preset_id="nemotron_3_5_asr_streaming_0_6b", + default_engine_type=InferenceAsrFramework.TRANSFORMERS, + model_spec=AsrModelSpec( + name="Nemotron 3.5 ASR Streaming 0.6B", + default_repo_id="nvidia/nemotron-3.5-asr-streaming-0.6b", + model_family="nemotron", + supported_engines={InferenceAsrFramework.TRANSFORMERS}, + ), +) + +GRANITE_4_0_1B_SPEECH = GRANITE_4_0_1B_SPEECH_PRESET.to_options() +NEMOTRON_3_5_ASR_STREAMING = NEMOTRON_3_5_ASR_STREAMING_PRESET.to_options() + + +GRANITE_SPEECH_5_0_2B_PRESET = AsrModelPreset( + preset_id="granite_speech_5_0_2b", + default_engine_type=InferenceAsrFramework.TRANSFORMERS, + model_spec=AsrModelSpec( + name="Granite Speech 5.0 2B", + default_repo_id="ibm-granite/granite-speech-5.0-2b", + revision="f4e68169fa2a5751acc4b5da9957855e5e8fc3f1", + model_family="granite", + supported_engines={InferenceAsrFramework.TRANSFORMERS}, + ), +) +GRANITE_SPEECH_5_0_2B = GRANITE_SPEECH_5_0_2B_PRESET.to_options() + +GRANITE_SPEECH_5_0_470M_TURBOCTC_PRESET = AsrModelPreset( + preset_id="granite_speech_5_0_470m_turboctc", + default_engine_type=InferenceAsrFramework.TRANSFORMERS, + model_spec=AsrModelSpec( + name="Granite Speech 5.0 470M TurboCTC", + default_repo_id="ibm-granite/granite-speech-5.0-470m-turboctc", + revision="1dd23f46f6d4e6eae2531982ba2e33220086dd97", + model_family="granite_ctc", + supported_engines={InferenceAsrFramework.TRANSFORMERS}, + ), +) +GRANITE_SPEECH_5_0_470M_TURBOCTC = GRANITE_SPEECH_5_0_470M_TURBOCTC_PRESET.to_options() + +GRANITE_SPEECH_5_0_470M_TURBOCTC_NC_PRESET = AsrModelPreset( + preset_id="granite_speech_5_0_470m_turboctc_nc", + default_engine_type=InferenceAsrFramework.TRANSFORMERS, + model_spec=AsrModelSpec( + name="Granite Speech 5.0 470M TurboCTC NC", + default_repo_id="ibm-granite/granite-speech-5.0-470m-turboctc-nc", + revision="af0a8e8663defc902944ebdae0d29a5219be11a3", + model_family="granite_ctc", + supported_engines={InferenceAsrFramework.TRANSFORMERS}, + ), +) +GRANITE_SPEECH_5_0_470M_TURBOCTC_NC = ( + GRANITE_SPEECH_5_0_470M_TURBOCTC_NC_PRESET.to_options() +) + +GRANITE_SPEECH_4_1_2B_PRESET = AsrModelPreset( + preset_id="granite_speech_4_1_2b", + default_engine_type=InferenceAsrFramework.TRANSFORMERS, + model_spec=AsrModelSpec( + name="Granite Speech 4.1 2B", + default_repo_id="ibm-granite/granite-speech-4.1-2b", + revision="de575db64086f84fdc79da4932d1076e965bc546", + model_family="granite", + supported_engines={InferenceAsrFramework.TRANSFORMERS}, + ), +) +GRANITE_SPEECH_4_1_2B = GRANITE_SPEECH_4_1_2B_PRESET.to_options() + +GRANITE_SPEECH_4_1_2B_PLUS_PRESET = AsrModelPreset( + preset_id="granite_speech_4_1_2b_plus", + default_engine_type=InferenceAsrFramework.TRANSFORMERS, + model_spec=AsrModelSpec( + name="Granite Speech 4.1 2B Plus", + default_repo_id="ibm-granite/granite-speech-4.1-2b-plus", + revision="e69efe37f97b6283c61f5a8dadda2b3eb67765d6", + model_family="granite", + supported_engines={InferenceAsrFramework.TRANSFORMERS}, + ), +) +GRANITE_SPEECH_4_1_2B_PLUS = GRANITE_SPEECH_4_1_2B_PLUS_PRESET.to_options() + +NEMOTRON_SPEECH_STREAMING_EN_0_6B_PRESET = AsrModelPreset( + preset_id="nemotron_speech_streaming_en_0_6b", + default_engine_type=InferenceAsrFramework.TRANSFORMERS, + model_spec=AsrModelSpec( + name="Nemotron Speech Streaming English 0.6B", + default_repo_id="nvidia/nemotron-speech-streaming-en-0.6b", + revision="ebe59e5a817142986528bbbee5dba8db7b38ed50", + model_family="nemotron", + supported_engines={InferenceAsrFramework.TRANSFORMERS}, + ), +) +NEMOTRON_SPEECH_STREAMING_EN_0_6B = ( + NEMOTRON_SPEECH_STREAMING_EN_0_6B_PRESET.to_options() +) + +PARAKEET_CTC_1_1B_PRESET = AsrModelPreset( + preset_id="parakeet_ctc_1_1b", + default_engine_type=InferenceAsrFramework.TRANSFORMERS, + model_spec=AsrModelSpec( + name="Parakeet CTC 1.1B", + default_repo_id="nvidia/parakeet-ctc-1.1b", + revision="20e63a0fed6aedba145b74b826dbd41df0941730", + model_family="parakeet", + supported_engines={InferenceAsrFramework.TRANSFORMERS}, + ), +) +PARAKEET_CTC_1_1B = PARAKEET_CTC_1_1B_PRESET.to_options() + + +ADDITIONAL_ASR_PRESETS: dict[str, AsrModelPreset] = { + preset.preset_id: preset + for preset in ( + GRANITE_SPEECH_5_0_2B_PRESET, + GRANITE_SPEECH_5_0_470M_TURBOCTC_PRESET, + GRANITE_SPEECH_5_0_470M_TURBOCTC_NC_PRESET, + GRANITE_SPEECH_4_1_2B_PRESET, + GRANITE_SPEECH_4_1_2B_PLUS_PRESET, + NEMOTRON_SPEECH_STREAMING_EN_0_6B_PRESET, + PARAKEET_CTC_1_1B_PRESET, + ) +} + + class AsrModelType(str, Enum): + GRANITE_SPEECH_5_0_2B = "granite_speech_5_0_2b" + GRANITE_SPEECH_5_0_470M_TURBOCTC = "granite_speech_5_0_470m_turboctc" + GRANITE_SPEECH_5_0_470M_TURBOCTC_NC = "granite_speech_5_0_470m_turboctc_nc" + GRANITE_SPEECH_4_1_2B = "granite_speech_4_1_2b" + GRANITE_SPEECH_4_1_2B_PLUS = "granite_speech_4_1_2b_plus" + NEMOTRON_SPEECH_STREAMING_EN_0_6B = "nemotron_speech_streaming_en_0_6b" + PARAKEET_CTC_1_1B = "parakeet_ctc_1_1b" + GRANITE_4_0_1B_SPEECH = "granite_4_0_1b_speech" + NEMOTRON_3_5_ASR_STREAMING = "nemotron_3_5_asr_streaming" # Auto-selecting models (choose best implementation for hardware) WHISPER_TINY = "whisper_tiny" WHISPER_SMALL = "whisper_small" @@ -738,6 +926,14 @@ class AsrModelType(str, Enum): WHISPER_LARGE = "whisper_large" WHISPER_TURBO = "whisper_turbo" + # Transformers-format Whisper checkpoints + WHISPER_TINY_TRANSFORMERS = "whisper_tiny_transformers" + WHISPER_BASE_TRANSFORMERS = "whisper_base_transformers" + WHISPER_SMALL_TRANSFORMERS = "whisper_small_transformers" + WHISPER_MEDIUM_TRANSFORMERS = "whisper_medium_transformers" + WHISPER_LARGE_TRANSFORMERS = "whisper_large_transformers" + WHISPER_TURBO_TRANSFORMERS = "whisper_turbo_transformers" + # Explicit MLX models (force MLX implementation) WHISPER_TINY_MLX = "whisper_tiny_mlx" WHISPER_SMALL_MLX = "whisper_small_mlx" diff --git a/docling/datamodel/asr_presets.py b/docling/datamodel/asr_presets.py new file mode 100644 index 0000000000..1aa554977b --- /dev/null +++ b/docling/datamodel/asr_presets.py @@ -0,0 +1,74 @@ +# SPDX-FileCopyrightText: The Docling Contributors +# SPDX-License-Identifier: MIT + +"""ASR model specifications with engine-specific checkpoint exports.""" + +from pydantic import BaseModel, Field + +from docling.datamodel.pipeline_options_asr_model import ( + AsrModelFamily, + InferenceAsrFramework, + InlineAsrMlxWhisperOptions, + InlineAsrOptions, + InlineAsrTransformersOptions, +) + + +class AsrEngineConfig(BaseModel): + """Checkpoint settings for one ASR engine.""" + + repo_id: str | None = None + revision: str | None = None + torch_dtype: str | None = None + + def merge_with(self, repo_id: str, revision: str) -> "AsrEngineConfig": + return AsrEngineConfig( + repo_id=self.repo_id or repo_id, + revision=self.revision or revision, + torch_dtype=self.torch_dtype, + ) + + +class AsrModelSpec(BaseModel): + """Checkpoint locations supported by an ASR model family.""" + + name: str + default_repo_id: str + revision: str = "main" + model_family: AsrModelFamily = "whisper" + supported_engines: set[InferenceAsrFramework] + engine_overrides: dict[InferenceAsrFramework, AsrEngineConfig] = Field( + default_factory=dict + ) + + def get_engine_config(self, engine: InferenceAsrFramework) -> AsrEngineConfig: + if engine not in self.supported_engines: + raise ValueError(f"{self.name} does not support the {engine.value} engine") + override = self.engine_overrides.get(engine, AsrEngineConfig()) + return override.merge_with(self.default_repo_id, self.revision) + + +class AsrModelPreset(BaseModel): + """A named ASR model and its default engine.""" + + preset_id: str + model_spec: AsrModelSpec + default_engine_type: InferenceAsrFramework + + def to_options( + self, engine: InferenceAsrFramework | None = None + ) -> InlineAsrOptions: + selected = engine or self.default_engine_type + config = self.model_spec.get_engine_config(selected) + if config.repo_id is None: + raise ValueError(f"No repository ID for {self.preset_id}") + if selected == InferenceAsrFramework.TRANSFORMERS: + return InlineAsrTransformersOptions( + repo_id=config.repo_id, + revision=config.revision or "main", + torch_dtype=config.torch_dtype, + model_family=self.model_spec.model_family, + ) + if selected == InferenceAsrFramework.MLX: + return InlineAsrMlxWhisperOptions(repo_id=config.repo_id) + raise ValueError(f"{selected.value} is not configured by this ASR preset") diff --git a/docling/datamodel/pipeline_options_asr_model.py b/docling/datamodel/pipeline_options_asr_model.py index 80214156c1..11edd5e4e9 100644 --- a/docling/datamodel/pipeline_options_asr_model.py +++ b/docling/datamodel/pipeline_options_asr_model.py @@ -9,6 +9,7 @@ - ``InlineAsrNativeWhisperOptions``: OpenAI's native ``whisper`` (PyTorch), the default backend, supported on CPU and CUDA. - ``InlineAsrMlxWhisperOptions``: ``mlx-whisper``, optimized for Apple Silicon. +- ``InlineAsrTransformersOptions``: Transformers checkpoints for speech models. - ``InlineAsrWhisperS2TOptions``: WhisperS2T (CTranslate2), an optional, experimental high-throughput backend installed via the ``format-audio`` extra. @@ -53,7 +54,7 @@ class BaseAsrOptions(BaseModel): class InferenceAsrFramework(str, Enum): MLX = "mlx" - # TRANSFORMERS = "transformers" # disabled for now + TRANSFORMERS = "transformers" WHISPER = "whisper" WHISPER_S2T = "whisper_s2t" @@ -158,10 +159,7 @@ class InlineAsrOptions(BaseAsrOptions): repo_id: Annotated[ str, Field( - description=( - "HuggingFace model repository ID for the ASR model. Must be a " - "Whisper-compatible model for automatic speech recognition." - ), + description=("Hugging Face model repository ID for the ASR model."), examples=["openai/whisper-tiny", "openai/whisper-base"], ), ] @@ -316,6 +314,34 @@ class InlineAsrNativeWhisperOptions(InlineAsrOptions): ] = None +AsrModelFamily = Literal[ + "whisper", + "granite", + "granite_ctc", + "parakeet", + "nemotron", +] + + +class InlineAsrTransformersOptions(InlineAsrOptions): + """ASR with a Hugging Face Transformers checkpoint.""" + + inference_framework: Literal[InferenceAsrFramework.TRANSFORMERS] = ( + InferenceAsrFramework.TRANSFORMERS + ) + revision: str = "main" + model_family: AsrModelFamily = "whisper" + prompt: str | None = None + language: str | None = None + task: Literal["transcribe", "translate"] = "transcribe" + supported_devices: list[AcceleratorDevice] = [ + AcceleratorDevice.CPU, + AcceleratorDevice.CUDA, + AcceleratorDevice.MPS, + AcceleratorDevice.XPU, + ] + + class InlineAsrMlxWhisperOptions(InlineAsrOptions): """MLX Whisper options for Apple Silicon optimization. diff --git a/docling/pipeline/asr_transcriber.py b/docling/pipeline/asr_transcriber.py index 1eec06ed05..8203c29713 100644 --- a/docling/pipeline/asr_transcriber.py +++ b/docling/pipeline/asr_transcriber.py @@ -1,8 +1,10 @@ # SPDX-FileCopyrightText: The Docling Contributors # SPDX-License-Identifier: MIT +import json import logging import shutil +import subprocess import sys import tempfile from io import BytesIO @@ -42,9 +44,11 @@ InlineAsrMlxWhisperOptions, InlineAsrNativeWhisperOptions, InlineAsrOptions, + InlineAsrTransformersOptions, InlineAsrWhisperS2TOptions, ) from docling.exceptions import OperationNotAllowed +from docling.pipeline.asr_transformers import TransformersAsrDecoder from docling.pipeline.base_pipeline import BasePipeline from docling.utils.accelerator_utils import decide_device from docling.utils.profiling import ProfilingScope, TimeRecorder @@ -187,6 +191,41 @@ def to_string(self) -> str: return result +def _resolve_asr_artifacts(artifacts_path: Path, repo_id: str) -> Path: + """Find a local checkpoint, either directly or under its repo cache folder.""" + roots = ( + artifacts_path, + artifacts_path / repo_id.replace("/", "--"), + ) + for candidate in roots: + if (candidate / "config.json").is_file(): + return candidate + raise FileNotFoundError( + f"ASR model {repo_id} was not found in {artifacts_path}. " + "Expected config.json in that directory or its repo cache folder." + ) + + +def _audio_duration_seconds(fpath: Path) -> float: + """Read audio duration for ASR models that return text without timestamps.""" + result = subprocess.run( + [ + "ffprobe", + "-v", + "error", + "-show_entries", + "format=duration", + "-of", + "json", + str(fpath), + ], + check=True, + capture_output=True, + text=True, + ) + return float(json.loads(result.stdout)["format"]["duration"]) + + class _NativeWhisperModel: def __init__( self, @@ -403,8 +442,18 @@ def __init__( self.model_name = asr_options.repo_id _log.info(f"loading _MlxWhisperModel({self.model_name})") - # MLX Whisper models are loaded differently - they use HuggingFace repos - self.model_path = self.model_name + self.model_path = ( + str(_resolve_asr_artifacts(artifacts_path, self.model_name)) + if artifacts_path is not None + else self.model_name + ) + if artifacts_path is not None and not any( + (Path(self.model_path) / name).is_file() + for name in ("weights.safetensors", "weights.npz") + ): + raise FileNotFoundError( + f"MLX Whisper weights are missing from {self.model_path}" + ) # Store MLX-specific options self.language = asr_options.language @@ -454,7 +503,7 @@ def run(self, conv_res: ConversionResult) -> ConversionResult: return conv_res except Exception as exc: - _log.error(f"MLX Audio transcription has an error: {exc}") + _log.error(f"ASR transcription has an error: {exc}") conv_res.status = ConversionStatus.FAILURE return conv_res @@ -514,6 +563,91 @@ def transcribe(self, fpath: Path) -> list[_ConversationItem]: return convo +class _TransformersAsrModel(_MlxWhisperModel): + """Transcribe speech with a Transformers ASR pipeline.""" + + def __init__( + self, + enabled: bool, + artifacts_path: Path | None, + accelerator_options: AcceleratorOptions, + asr_options: InlineAsrTransformersOptions, + ): + self.enabled = enabled + if not enabled: + return + self.asr_options = asr_options + self.device = decide_device( + accelerator_options.device, + supported_devices=asr_options.supported_devices, + ) + model = ( + str(_resolve_asr_artifacts(artifacts_path, asr_options.repo_id)) + if artifacts_path is not None + else asr_options.repo_id + ) + self.decoder: TransformersAsrDecoder | None = None + if asr_options.model_family in {"granite", "granite_ctc"}: + self.decoder = TransformersAsrDecoder( + asr_options, self.device, model, artifacts_path is not None + ) + return + + try: + from transformers import pipeline + except ImportError as exc: + raise ImportError( + "Transformers ASR requires transformers. Install the " + "`feat-asr-transformers` extra." + ) from exc + pipeline_kwargs = { + "task": "automatic-speech-recognition", + "model": model, + "device": self.device, + } + if artifacts_path is not None: + pipeline_kwargs["model_kwargs"] = {"local_files_only": True} + else: + pipeline_kwargs["revision"] = asr_options.revision + if asr_options.torch_dtype is not None: + pipeline_kwargs["dtype"] = asr_options.torch_dtype + self.asr_pipeline = pipeline(**pipeline_kwargs) + + def transcribe(self, fpath: Path) -> list[_ConversationItem]: + if self.asr_options.model_family == "whisper": + generate_kwargs: dict[str, str] = {"task": self.asr_options.task} + if self.asr_options.language is not None: + generate_kwargs["language"] = self.asr_options.language + result = self.asr_pipeline( + str(fpath), + return_timestamps=True, + generate_kwargs=generate_kwargs, + ) + return [ + _ConversationItem( + start_time=chunk["timestamp"][0], + end_time=chunk["timestamp"][1], + text=chunk["text"].strip(), + ) + for chunk in result["chunks"] + ] + + if self.decoder is not None: + text = self.decoder.transcribe(fpath) + else: + result = self.asr_pipeline(str(fpath)) + text = result["text"].strip() + if not text: + return [] + return [ + _ConversationItem( + start_time=0.0, + end_time=_audio_duration_seconds(fpath), + text=text, + ) + ] + + class _WhisperS2TModel: """Transcriber using WhisperS2T with CTranslate2 backend for high-speed inference.""" @@ -930,6 +1064,13 @@ def create( accelerator_options=accelerator_options, asr_options=asr_options, ) + elif isinstance(asr_options, InlineAsrTransformersOptions): + return _TransformersAsrModel( + enabled=True, + artifacts_path=artifacts_path, + accelerator_options=accelerator_options, + asr_options=asr_options, + ) elif isinstance(asr_options, InlineAsrWhisperS2TOptions): return _WhisperS2TModel( enabled=True, diff --git a/docling/pipeline/asr_transformers.py b/docling/pipeline/asr_transformers.py new file mode 100644 index 0000000000..23e72f0372 --- /dev/null +++ b/docling/pipeline/asr_transformers.py @@ -0,0 +1,121 @@ +# SPDX-FileCopyrightText: The Docling Contributors +# SPDX-License-Identifier: MIT + +"""Model-specific speech decoding through documented Transformers interfaces.""" + +from pathlib import Path +from typing import Any + +import torch + +from docling.datamodel.pipeline_options_asr_model import InlineAsrTransformersOptions + + +def _expand_granite_queries( + _module: torch.nn.Module, args: tuple[Any, ...], kwargs: dict[str, Any] +) -> tuple[tuple[Any, ...], dict[str, Any]] | None: + """Match Q-Former queries to the projector's batch of audio windows.""" + queries = kwargs["query_embeds"] + window_batch = kwargs["encoder_hidden_states"].shape[0] + if queries.shape[0] == 1 and window_batch > 1: + kwargs["query_embeds"] = queries.expand(window_batch, -1, -1) + return args, kwargs + return None + + +class TransformersAsrDecoder: + """Decode models that need a processor or custom model method.""" + + def __init__( + self, + options: InlineAsrTransformersOptions, + device: str, + checkpoint: str, + local: bool, + ) -> None: + # These imports belong to the optional Transformers ASR feature. + from transformers import ( + AutoModelForCTC, + AutoModelForSpeechSeq2Seq, + AutoProcessor, + ) + + self.options = options + self.device = device + load_kwargs: dict[str, Any] = { + "local_files_only": local, + } + if not local: + load_kwargs["revision"] = options.revision + + model_kwargs = dict(load_kwargs) + if options.torch_dtype is not None: + model_kwargs["dtype"] = options.torch_dtype + # Granite's BF16 normalization can abort the MPS process. Set the + # loading dtype explicitly; catching an exception cannot recover it. + if device == "mps" and options.model_family in {"granite", "granite_ctc"}: + model_kwargs["dtype"] = "float32" + + self.processor = AutoProcessor.from_pretrained(checkpoint, **load_kwargs) + if options.model_family == "granite_ctc": + self.model = AutoModelForCTC.from_pretrained(checkpoint, **model_kwargs) + else: + self.model = AutoModelForSpeechSeq2Seq.from_pretrained( + checkpoint, **model_kwargs + ) + self.model.to(device).eval() + if options.model_family == "granite": + # Transformers 5.16.1 passes a single query batch for all audio + # windows. Its Q-Former can return only one window, so the projector + # then fails to reshape the output. Scope this correction to the + # loaded instance; already expanded queries are left intact. + self.model.model.projector.qformer.register_forward_pre_hook( + _expand_granite_queries, with_kwargs=True + ) + + def transcribe(self, path: Path) -> str: + from transformers.pipelines.audio_utils import ffmpeg_read + + waveform = ffmpeg_read(path.read_bytes(), sampling_rate=16000).copy() + if waveform.size == 0: + return "" + with torch.inference_mode(): + if self.options.model_family == "granite_ctc": + inputs = self.processor( + [waveform], + sampling_rate=16000, + device=self.device, + return_tensors="pt", + ).to(self.device) + output = self.model.generate(**inputs) + return self.processor.batch_decode(output, skip_special_tokens=True)[ + 0 + ].strip() + # Granite's decoder is a language model: it needs an audio prompt, + # and generate() includes the input tokens in the returned sequence. + prompt = self.options.prompt or ( + "translate the speech into English." + if self.options.task == "translate" + else "transcribe the speech with proper punctuation and capitalization." + ) + formatted = self.processor.tokenizer.apply_chat_template( + [{"role": "user", "content": f"<|audio|>{prompt}"}], + tokenize=False, + add_generation_prompt=True, + ) + inputs = self.processor( + formatted, + torch.from_numpy(waveform).unsqueeze(0), + device=self.device, + return_tensors="pt", + ).to(self.device) + output = self.model.generate( + **inputs, + max_new_tokens=self.options.max_new_tokens, + do_sample=False, + num_beams=1, + ) + generated = output[:, inputs["input_ids"].shape[-1] :] + return self.processor.tokenizer.batch_decode( + generated, skip_special_tokens=True + )[0].strip() diff --git a/docs/reference/cli.md b/docs/reference/cli.md index 2820d19e8d..32d88bfe4f 100644 --- a/docs/reference/cli.md +++ b/docs/reference/cli.md @@ -55,7 +55,8 @@ docling convert [OPTIONS] source | `--trust-remote-code` | `boolean` | `false` | Allow the local VLM engine to run code from the model repository. Some --vlm-model presets require it. Review the model's code at the preset's pinned revision first. | | `--vlm-write-native-output` | `boolean` | `false` | Write each page's unparsed VLM response under `/.vlm-native/`. | | `--extract-form-fields` / `--no-extract-form-fields` | flag | `false` | If enabled, native PDF form widgets (AcroForm) become fillable field values with field keys from printed text. Standard and legacy pipelines with the docling-parse backend only. | -| `--asr-model` | `whisper_tiny`, `whisper_small`, `whisper_medium`, `whisper_base`, `whisper_large`, `whisper_turbo`, `whisper_tiny_mlx`, `whisper_small_mlx`, `whisper_medium_mlx`, `whisper_base_mlx`, `whisper_large_mlx`, `whisper_turbo_mlx`, `whisper_tiny_native`, `whisper_small_native`, `whisper_medium_native`, `whisper_base_native`, `whisper_large_native`, `whisper_turbo_native`, `whisper_tiny_en_native`, `whisper_base_en_native`, `whisper_small_en_native`, `whisper_medium_en_native`, `whisper_distil_small_en_native`, `whisper_distil_medium_en_native`, `whisper_distil_large_v3_native`, `whisper_distil_large_v3_5_native`, `whisper_tiny_s2t`, `whisper_tiny_en_s2t`, `whisper_base_s2t`, `whisper_base_en_s2t`, `whisper_small_s2t`, `whisper_small_en_s2t`, `whisper_distil_small_en_s2t`, `whisper_medium_s2t`, `whisper_medium_en_s2t`, `whisper_distil_medium_en_s2t`, `whisper_large_v3_s2t`, `whisper_distil_large_v3_s2t`, `whisper_distil_large_v3_5_s2t`, `whisper_large_v3_turbo_s2t` | `whisper_tiny` | Choose the ASR model to use with audio/video files. | +| `--asr-model` | `granite_speech_5_0_2b`, `granite_speech_5_0_470m_turboctc`, `granite_speech_5_0_470m_turboctc_nc`, `granite_speech_4_1_2b`, `granite_speech_4_1_2b_plus`, `nemotron_speech_streaming_en_0_6b`, `parakeet_ctc_1_1b`, `granite_4_0_1b_speech`, `nemotron_3_5_asr_streaming`, `whisper_tiny`, `whisper_small`, `whisper_medium`, `whisper_base`, `whisper_large`, `whisper_turbo`, `whisper_tiny_transformers`, `whisper_base_transformers`, `whisper_small_transformers`, `whisper_medium_transformers`, `whisper_large_transformers`, `whisper_turbo_transformers`, `whisper_tiny_mlx`, `whisper_small_mlx`, `whisper_medium_mlx`, `whisper_base_mlx`, `whisper_large_mlx`, `whisper_turbo_mlx`, `whisper_tiny_native`, `whisper_small_native`, `whisper_medium_native`, `whisper_base_native`, `whisper_large_native`, `whisper_turbo_native`, `whisper_tiny_en_native`, `whisper_base_en_native`, `whisper_small_en_native`, `whisper_medium_en_native`, `whisper_distil_small_en_native`, `whisper_distil_medium_en_native`, `whisper_distil_large_v3_native`, `whisper_distil_large_v3_5_native`, `whisper_tiny_s2t`, `whisper_tiny_en_s2t`, `whisper_base_s2t`, `whisper_base_en_s2t`, `whisper_small_s2t`, `whisper_small_en_s2t`, `whisper_distil_small_en_s2t`, `whisper_medium_s2t`, `whisper_medium_en_s2t`, `whisper_distil_medium_en_s2t`, `whisper_large_v3_s2t`, `whisper_distil_large_v3_s2t`, `whisper_distil_large_v3_5_s2t`, `whisper_large_v3_turbo_s2t` | `whisper_tiny` | Choose the ASR model to use with audio/video files. | +| `--asr-language` | `text` | | Source language for Transformers ASR. | | `--video-sampling-mode` | `fixed`, `scene` | `fixed` | frame sampling mode. | | `--video-frame-interval` | `float` | `10.0` | Seconds between frames in fixed interval mode. | | `--video-cuts-per-minute` | `float` | `0.0` | Target cuts per minute in scene mode (overrides prominence). | diff --git a/docs/usage/processing_audio_media.md b/docs/usage/processing_audio_media.md index 15da87fc91..67cefffae2 100644 --- a/docs/usage/processing_audio_media.md +++ b/docs/usage/processing_audio_media.md @@ -260,7 +260,8 @@ See the [CLI reference](../reference/cli.md) for the complete flag list. ## Choosing an ASR model and backend -Docling ships three interchangeable ASR backends, all installed by the `asr` extra shown above: +Docling includes three Whisper backends installed by the `asr` extra shown above. +The optional Transformers backend supports additional speech model families. | Backend | Library | Hardware | Notes | |---------|---------|----------|-------| @@ -420,6 +421,89 @@ docling --to md --asr-model whisper_distil_large_v3_s2t recording.mp3 See the [CLI reference](../reference/cli.md) for the complete list of `--asr-model` values. +### Transformers speech models + +Install the optional backend: + +```bash +pip install "docling-slim[feat-asr-transformers]" +``` + +The following additional presets use Transformers. The SDK constants are in +`docling.datamodel.asr_model_specs`; the CLI names are their lower-case names. + +| SDK constant | Hugging Face repository | +|---|---| +| `GRANITE_SPEECH_5_0_2B` | [`ibm-granite/granite-speech-5.0-2b`](https://huggingface.co/ibm-granite/granite-speech-5.0-2b) | +| `GRANITE_SPEECH_5_0_470M_TURBOCTC` | [`ibm-granite/granite-speech-5.0-470m-turboctc`](https://huggingface.co/ibm-granite/granite-speech-5.0-470m-turboctc) | +| `GRANITE_SPEECH_5_0_470M_TURBOCTC_NC` | [`ibm-granite/granite-speech-5.0-470m-turboctc-nc`](https://huggingface.co/ibm-granite/granite-speech-5.0-470m-turboctc-nc) | +| `GRANITE_SPEECH_4_1_2B` | [`ibm-granite/granite-speech-4.1-2b`](https://huggingface.co/ibm-granite/granite-speech-4.1-2b) | +| `GRANITE_SPEECH_4_1_2B_PLUS` | [`ibm-granite/granite-speech-4.1-2b-plus`](https://huggingface.co/ibm-granite/granite-speech-4.1-2b-plus) | +| `NEMOTRON_SPEECH_STREAMING_EN_0_6B` | [`nvidia/nemotron-speech-streaming-en-0.6b`](https://huggingface.co/nvidia/nemotron-speech-streaming-en-0.6b) | +| `PARAKEET_CTC_1_1B` | [`nvidia/parakeet-ctc-1.1b`](https://huggingface.co/nvidia/parakeet-ctc-1.1b) | + +```python +from docling.datamodel import asr_model_specs + +options = asr_model_specs.GRANITE_SPEECH_5_0_2B.model_copy(deep=True) +# Override the checkpoint revision when needed. +# options.revision = "branch-tag-or-commit" +pipeline_options.asr_options = options +``` + +On Apple MPS, Granite and TurboCTC load weights in FP32 to avoid a BF16 +normalization failure. Allow more memory than for BF16 weights. + +With `artifacts_path`, provide the local checkpoint or its parent directory. +The loader does not download missing weights. + +```bash +docling recording.wav --asr-model granite_speech_5_0_2b --to md +docling recording.wav --asr-model parakeet_ctc_1_1b --to md +``` + +These models currently produce one transcript segment covering the full audio +duration. Plus uses plain transcription by default; its speaker and timestamp +tags are not mapped to structured Docling tracks. Streaming model names identify +the checkpoints; this pipeline performs file transcription. + +The `TURBOCTC_NC` preset uses CC-BY-NC-SA-4.0. + +### Validate real model decoding + +From a repository checkout, run the separate script against one short speech +fragment. It is outside pytest collection and never runs in the normal test suite. + +```bash +# Select several models. Repeat --model for each preset. +uv run python scripts/validate_asr_models.py \\ + --audio tests/data/audio/sources/sample_10s.mp3 \\ + --model granite_speech_5_0_2b \\ + --model granite_speech_5_0_470m_turboctc \\ + --output /tmp/asr-validation + +# List choices, or run every preset against the default ten-second fragment. +uv run python scripts/validate_asr_models.py --list-models +uv run python scripts/validate_asr_models.py --device auto +``` + +Each model runs in a separate process. The script checks conversion status and +requires a nonempty transcript. It saves `transcript.txt`, `transcript.md`, +`document.dclx`, `options.json`, and `run.log` in each model directory. +The shared `report.json` records the audio SHA-256, elapsed time, and failures. +It returns a nonzero exit code if any model fails, including missing dependencies +or unsupported hardware, and continues with the other models. + +The default run selects every ASR preset, including native Whisper, MLX, and +WhisperS2T variants. Install the required backends or select a subset suitable +for your machine. Models download weights unless `--artifacts-path` is set. +Use `--language` for the source language (default: English), `--revision` to +override Transformers revisions, and `--timeout` to change the per-model limit +(default: 900 seconds, including download time). + +Compare the saved transcripts to the spoken fragment to assess recognition +accuracy. Decoding success alone does not measure transcription accuracy. + ## Limitations | Limitation | Workaround | diff --git a/pyproject.toml b/pyproject.toml index 4d00d5c1d8..12bb71482c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -184,6 +184,12 @@ format-audio = [ 'whisper-s2t-reborn>=1.7.1,<2.0.0 ; sys_platform != "darwin" or platform_machine != "arm64"', ] +feat-asr-transformers = [ + 'docling-slim[format-audio]', + 'transformers>=5.16.0,<6.0.0', + 'torchaudio>=2.2.2,<3.0.0', +] + # Video pipeline: transcription (format-audio) plus speaker diarization. format-video = [ 'docling-slim[format-audio]', diff --git a/scripts/validate_asr_models.py b/scripts/validate_asr_models.py new file mode 100644 index 0000000000..d0674f8a5e --- /dev/null +++ b/scripts/validate_asr_models.py @@ -0,0 +1,212 @@ +#!/usr/bin/env python3 +# SPDX-FileCopyrightText: The Docling Contributors +# SPDX-License-Identifier: MIT + +"""Run real ASR conversions on one audio fragment, outside normal pytest runs. + +uv run python scripts/validate_asr_models.py --model granite_speech_5_0_2b +uv run python scripts/validate_asr_models.py --audio recording.wav --device cuda + +Each model runs in a separate process. Failures do not stop the remaining models. +The report describes decoding success, not transcription accuracy. +""" + +import argparse +import hashlib +import subprocess +import sys +import time +from pathlib import Path + +from pydantic import BaseModel, Field + +from docling.datamodel.asr_model_specs import AsrModelType + + +class ModelRun(BaseModel): + model: str + success: bool + seconds: float + error: str | None = None + + +class RunReport(BaseModel): + audio: str + audio_sha256: str + runs: list[ModelRun] = Field(default_factory=list) + + +def _convert(args: argparse.Namespace) -> None: + # Defer conversion setup until a worker is requested. + from docling.cli.main import _resolve_asr_options + from docling.datamodel.accelerator_options import AcceleratorOptions + from docling.datamodel.base_models import ConversionStatus, InputFormat + from docling.datamodel.pipeline_options import AsrPipelineOptions + from docling.datamodel.pipeline_options_asr_model import ( + InlineAsrTransformersOptions, + ) + from docling.document_converter import AudioFormatOption, DocumentConverter + from docling.pipeline.asr_pipeline import AsrPipeline + + model = AsrModelType(args.model[0]) + options = _resolve_asr_options(model).model_copy(deep=True) + if isinstance(options, InlineAsrTransformersOptions): + options.language = args.language + if args.revision is not None: + options.revision = args.revision + pipeline_options = AsrPipelineOptions( + asr_options=options, + artifacts_path=args.artifacts_path, + accelerator_options=AcceleratorOptions(device=args.device), + ) + converter = DocumentConverter( + format_options={ + InputFormat.AUDIO: AudioFormatOption( + pipeline_cls=AsrPipeline, + pipeline_options=pipeline_options, + ) + } + ) + result = converter.convert(args.audio, raises_on_error=False) + if result.status != ConversionStatus.SUCCESS: + errors = "; ".join(error.error_message for error in result.errors) + raise RuntimeError(f"Conversion status: {result.status.value}. {errors}") + transcript = "\n".join( + item.text for item in result.document.texts if item.text.strip() + ) + if not transcript.strip(): + raise RuntimeError("The conversion produced an empty transcript") + args.output.mkdir(parents=True, exist_ok=True) + result.document.save_as_doclang_archive(args.output / "document.dclx") + (args.output / "transcript.md").write_text( + result.document.export_to_markdown(), encoding="utf-8" + ) + (args.output / "transcript.txt").write_text(transcript + "\n", encoding="utf-8") + (args.output / "options.json").write_text( + options.model_dump_json(indent=2) + "\n", encoding="utf-8" + ) + + +def run_models(args: argparse.Namespace) -> int: + """Run every selected preset and retain each process's diagnostics.""" + models = list(dict.fromkeys(args.model or [model.value for model in AsrModelType])) + audio = args.audio.resolve(strict=True) + args.output.mkdir(parents=True, exist_ok=True) + report = RunReport( + audio=str(audio), audio_sha256=hashlib.sha256(audio.read_bytes()).hexdigest() + ) + for model in models: + output = args.output / model + output.mkdir(parents=True, exist_ok=True) + command = [ + sys.executable, + str(Path(__file__).resolve()), + "--worker", + "--model", + model, + "--audio", + str(audio), + "--output", + str(output.resolve()), + "--device", + args.device, + "--language", + args.language, + ] + if args.revision is not None: + command.extend(["--revision", args.revision]) + if args.artifacts_path is not None: + command.extend(["--artifacts-path", str(args.artifacts_path.resolve())]) + print(f"Running {model} ...", flush=True) + started = time.monotonic() + error = None + with (output / "run.log").open("w", encoding="utf-8") as log: + try: + process = subprocess.run( + command, + stdout=log, + stderr=subprocess.STDOUT, + timeout=args.timeout, + check=False, + ) + if process.returncode != 0: + error = f"Process exited with code {process.returncode}; see {output / 'run.log'}" + except subprocess.TimeoutExpired: + error = f"Exceeded {args.timeout:g} seconds; see {output / 'run.log'}" + run = ModelRun( + model=model, + success=error is None, + seconds=time.monotonic() - started, + error=error, + ) + report.runs.append(run) + (args.output / "report.json").write_text( + report.model_dump_json(indent=2) + "\n", encoding="utf-8" + ) + print( + f"{'PASS' if run.success else 'FAIL'} {model} ({run.seconds:.1f}s)", + flush=True, + ) + if error is not None: + print(error, flush=True) + name_width = max(len("Name"), *(len(run.model) for run in report.runs)) + print(f"\n{'Name':<{name_width}} {'Status':<6} {'Time (s)':>8}") + print(f"{'-' * name_width} {'-' * 6} {'-' * 8}") + for run in report.runs: + status = "PASS" if run.success else "FAIL" + print(f"{run.model:<{name_width}} {status:<6} {run.seconds:>8.1f}") + print(f"Report: {args.output / 'report.json'}") + return 0 if all(run.success for run in report.runs) else 1 + + +def main() -> int: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument( + "--audio", type=Path, default=Path("tests/data/audio/sources/sample_10s.mp3") + ) + parser.add_argument( + "--model", + action="append", + choices=[model.value for model in AsrModelType], + help="Repeat to select several presets; defaults to all presets.", + ) + parser.add_argument("--output", type=Path, default=Path("asr-validation")) + parser.add_argument("--device", default="auto") + parser.add_argument( + "--language", default="en", help="Source language of the shared fragment." + ) + parser.add_argument( + "--revision", help="Override the revision for selected Transformers models." + ) + parser.add_argument( + "--artifacts-path", + type=Path, + help="Use local model artifacts without downloading weights.", + ) + parser.add_argument( + "--timeout", + type=float, + default=900, + help="Maximum seconds per model, including downloads (default: 900).", + ) + parser.add_argument("--list-models", action="store_true") + parser.add_argument("--worker", action="store_true", help=argparse.SUPPRESS) + args = parser.parse_args() + if args.list_models: + for model in AsrModelType: + print(model.value) + return 0 + if not args.audio.is_file(): + parser.error(f"Audio file does not exist: {args.audio}") + if args.timeout <= 0: + parser.error("--timeout must be positive") + if args.worker: + if args.model is None or len(args.model) != 1: + parser.error("Worker mode requires exactly one --model") + _convert(args) + return 0 + return run_models(args) + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/tach.toml b/tach.toml index 8e2d8f2c2a..193dca980e 100644 --- a/tach.toml +++ b/tach.toml @@ -480,10 +480,16 @@ depends_on = [ "docling.datamodel", "docling.datamodel.asr_model_specs", "docling.datamodel.pipeline_options_asr_model", + "docling.pipeline.asr_transformers", "docling.pipeline.base_pipeline", "docling.utils", ] +[[modules]] +path = "docling.pipeline.asr_transformers" +layer = "pipeline" +depends_on = ["docling.datamodel.pipeline_options_asr_model"] + [[modules]] path = "docling.pipeline.asr_pipeline" layer = "pipeline" diff --git a/tests/data/html/groundtruth/wiki_duck.html.md b/tests/data/html/groundtruth/wiki_duck.html.md index 40d7fa99d5..f81f452e88 100644 --- a/tests/data/html/groundtruth/wiki_duck.html.md +++ b/tests/data/html/groundtruth/wiki_duck.html.md @@ -52,7 +52,7 @@ hide - [Беларуская (тарашкевіца)](https://be-tarask.wikipedia.org/wiki/%D0%9A%D0%B0%D1%87%D0%BA%D1%96) - [Bikol Central](https://bcl.wikipedia.org/wiki/Itik) - [Български](https://bg.wikipedia.org/wiki/%D0%9F%D0%B0%D1%82%D0%B8%D1%86%D0%B0) -- [Brezhoneg](https://br.wikipedia.org/wiki/Houad_(evn)) +- [Brezhoneg](https://br.wikipedia.org/wiki/Houad_%28evn%29) - [Буряад](https://bxr.wikipedia.org/wiki/%D0%9D%D1%83%D0%B3%D0%B0h%D0%B0%D0%BD) - [Català](https://ca.wikipedia.org/wiki/%C3%80necs) - [Чӑвашла](https://cv.wikipedia.org/wiki/%D0%9A%C4%83%D0%B2%D0%B0%D0%BA%D0%B0%D0%BB%D1%81%D0%B5%D0%BC) @@ -101,7 +101,7 @@ hide - [Kreyòl ayisyen](https://ht.wikipedia.org/wiki/Kanna) - [Кырык мары](https://mrj.wikipedia.org/wiki/%D0%9B%D1%8B%D0%B4%D1%8B%D0%B2%D0%BB%D3%93) - [ລາວ](https://lo.wikipedia.org/wiki/%E0%BB%80%E0%BA%9B%E0%BA%B1%E0%BA%94) -- [Latina](https://la.wikipedia.org/wiki/Anas_(avis)) +- [Latina](https://la.wikipedia.org/wiki/Anas_%28avis%29) - [Latviešu](https://lv.wikipedia.org/wiki/P%C4%ABle) - [Lietuvių](https://lt.wikipedia.org/wiki/Antis) - [Li Niha](https://nia.wikipedia.org/wiki/Bebe) @@ -141,7 +141,7 @@ hide - [Scots](https://sco.wikipedia.org/wiki/Deuk) - [Seeltersk](https://stq.wikipedia.org/wiki/Oante) - [Shqip](https://sq.wikipedia.org/wiki/Rosa) -- [Sicilianu](https://scn.wikipedia.org/wiki/P%C3%A0para_(%C3%A0natra)) +- [Sicilianu](https://scn.wikipedia.org/wiki/P%C3%A0para_%28%C3%A0natra%29) - [සිංහල](https://si.wikipedia.org/wiki/%E0%B6%AD%E0%B7%8F%E0%B6%BB%E0%B7%8F%E0%B7%80%E0%B7%8F) - [Simple English](https://simple.wikipedia.org/wiki/Duck) - [سنڌي](https://sd.wikipedia.org/wiki/%D8%A8%D8%AF%DA%AA) @@ -158,7 +158,7 @@ hide - [Türkçe](https://tr.wikipedia.org/wiki/%C3%96rdek) - [Українська](https://uk.wikipedia.org/wiki/%D0%9A%D0%B0%D1%87%D0%BA%D0%B8) - [ئۇيغۇرچە / Uyghurche](https://ug.wikipedia.org/wiki/%D8%A6%DB%86%D8%B1%D8%AF%DB%95%D9%83) -- [Vahcuengh](https://za.wikipedia.org/wiki/Bit_(doenghduz)) +- [Vahcuengh](https://za.wikipedia.org/wiki/Bit_%28doenghduz%29) - [Tiếng Việt](https://vi.wikipedia.org/wiki/V%E1%BB%8Bt) - [Walon](https://wa.wikipedia.org/wiki/Can%C3%A5rd) - [文言](https://zh-classical.wikipedia.org/wiki/%E9%B4%A8) @@ -230,15 +230,15 @@ From Wikipedia, the free encyclopedia (Redirected from [Duckling](/w/index.php?title=Duckling&redirect=no) ) -This article is about the bird. For duck as a food, see [Duck as food](/wiki/Duck_as_food) . For other uses, see [Duck (disambiguation)](/wiki/Duck_(disambiguation)) . +This article is about the bird. For duck as a food, see [Duck as food](/wiki/Duck_as_food) . For other uses, see [Duck (disambiguation)](/wiki/Duck_%28disambiguation%29) . -"Duckling" redirects here. For other uses, see [Duckling (disambiguation)](/wiki/Duckling_(disambiguation)) . +"Duckling" redirects here. For other uses, see [Duckling (disambiguation)](/wiki/Duckling_%28disambiguation%29) . | Duck | Duck | | - | - | | | | | [Bufflehead](/wiki/Bufflehead) ( *Bucephala albeola* ) | [Bufflehead](/wiki/Bufflehead) ( *Bucephala albeola* ) | -| [Scientific classification](/wiki/Taxonomy_(biology)) Edit this classification | [Scientific classification](/wiki/Taxonomy_(biology)) Edit this classification | +| [Scientific classification](/wiki/Taxonomy_%28biology%29) Edit this classification | [Scientific classification](/wiki/Taxonomy_%28biology%29) Edit this classification | | Domain: | [Eukaryota](/wiki/Eukaryote) | | Kingdom: | [Animalia](/wiki/Animal) | | Phylum: | [Chordata](/wiki/Chordate) | @@ -249,7 +249,7 @@ This article is about the bird. For duck as a food, see [Duck as food](/wiki/Duc | Subfamilies | Subfamilies | | See text | See text | -**Duck** is the common name for numerous species of [waterfowl](/wiki/Waterfowl) in the [family](/wiki/Family_(biology)) [Anatidae](/wiki/Anatidae) . Ducks are generally smaller and shorter-necked than [swans](/wiki/Swan) and [geese](/wiki/Goose) , which are members of the same family. Divided among several subfamilies, they are a [form taxon](/wiki/Form_taxon) ; they do not represent a [monophyletic group](/wiki/Monophyletic_group) (the group of all descendants of a single common ancestral species), since swans and geese are not considered ducks. Ducks are mostly [aquatic birds](/wiki/Aquatic_bird) , and may be found in both fresh water and sea water. +**Duck** is the common name for numerous species of [waterfowl](/wiki/Waterfowl) in the [family](/wiki/Family_%28biology%29) [Anatidae](/wiki/Anatidae) . Ducks are generally smaller and shorter-necked than [swans](/wiki/Swan) and [geese](/wiki/Goose) , which are members of the same family. Divided among several subfamilies, they are a [form taxon](/wiki/Form_taxon) ; they do not represent a [monophyletic group](/wiki/Monophyletic_group) (the group of all descendants of a single common ancestral species), since swans and geese are not considered ducks. Ducks are mostly [aquatic birds](/wiki/Aquatic_bird) , and may be found in both fresh water and sea water. Ducks are sometimes confused with several types of unrelated water birds with similar forms, such as [loons](/wiki/Loon) or divers, [grebes](/wiki/Grebe) , [gallinules](/wiki/Gallinule) and [coots](/wiki/Coot) . @@ -277,7 +277,7 @@ Wood ducks . ## Taxonomy -All ducks belong to the [biological order](/wiki/Order_(biology)) [Anseriformes](/wiki/Anseriformes) , a group that contains the ducks, geese and swans, as well as the [screamers](/wiki/Screamer) , and the [magpie goose](/wiki/Magpie_goose) . [[ 5 ]](#cite_note-FOOTNOTECarboneras1992536-5) All except the screamers belong to the [biological family](/wiki/Family_(biology)) [Anatidae](/wiki/Anatidae) . [[ 5 ]](#cite_note-FOOTNOTECarboneras1992536-5) Within the family, ducks are split into a variety of subfamilies and 'tribes'. The number and composition of these subfamilies and tribes is the cause of considerable disagreement among taxonomists. [[ 5 ]](#cite_note-FOOTNOTECarboneras1992536-5) Some base their decisions on [morphological characteristics](/wiki/Morphology_(biology)) , others on shared behaviours or genetic studies. [[ 6 ]](#cite_note-FOOTNOTELivezey1986737–738-6) [[ 7 ]](#cite_note-FOOTNOTEMadsenMcHughde_Kloet1988452-7) The number of suggested subfamilies containing ducks ranges from two to five. [[ 8 ]](#cite_note-FOOTNOTEDonne-GousséLaudetHänni2002353–354-8) [[ 9 ]](#cite_note-FOOTNOTECarboneras1992540-9) The significant level of [hybridisation](/wiki/Hybrid_(biology)) that occurs among wild ducks complicates efforts to tease apart the relationships between various species. [[ 9 ]](#cite_note-FOOTNOTECarboneras1992540-9) +All ducks belong to the [biological order](/wiki/Order_%28biology%29) [Anseriformes](/wiki/Anseriformes) , a group that contains the ducks, geese and swans, as well as the [screamers](/wiki/Screamer) , and the [magpie goose](/wiki/Magpie_goose) . [[ 5 ]](#cite_note-FOOTNOTECarboneras1992536-5) All except the screamers belong to the [biological family](/wiki/Family_%28biology%29) [Anatidae](/wiki/Anatidae) . [[ 5 ]](#cite_note-FOOTNOTECarboneras1992536-5) Within the family, ducks are split into a variety of subfamilies and 'tribes'. The number and composition of these subfamilies and tribes is the cause of considerable disagreement among taxonomists. [[ 5 ]](#cite_note-FOOTNOTECarboneras1992536-5) Some base their decisions on [morphological characteristics](/wiki/Morphology_%28biology%29) , others on shared behaviours or genetic studies. [[ 6 ]](#cite_note-FOOTNOTELivezey1986737–738-6) [[ 7 ]](#cite_note-FOOTNOTEMadsenMcHughde_Kloet1988452-7) The number of suggested subfamilies containing ducks ranges from two to five. [[ 8 ]](#cite_note-FOOTNOTEDonne-GousséLaudetHänni2002353–354-8) [[ 9 ]](#cite_note-FOOTNOTECarboneras1992540-9) The significant level of [hybridisation](/wiki/Hybrid_%28biology%29) that occurs among wild ducks complicates efforts to tease apart the relationships between various species. [[ 9 ]](#cite_note-FOOTNOTECarboneras1992540-9) Mallard landing in approach @@ -293,7 +293,7 @@ Male Mandarin duck -The overall [body plan](/wiki/Body_plan) of ducks is elongated and broad, and they are also relatively long-necked, albeit not as long-necked as the geese and swans. The body shape of diving ducks varies somewhat from this in being more rounded. The [bill](/wiki/Beak) is usually broad and contains serrated [pectens](/wiki/Pecten_(biology)) , which are particularly well defined in the filter-feeding species. In the case of some fishing species the bill is long and strongly serrated. The scaled legs are strong and well developed, and generally set far back on the body, more so in the highly aquatic species. The wings are very strong and are generally short and pointed, and the [flight](/wiki/Bird_flight) of ducks requires fast continuous strokes, requiring in turn strong wing muscles. Three species of [steamer duck](/wiki/Steamer_duck) are almost flightless, however. Many species of duck are temporarily flightless while [moulting](/wiki/Moult) ; they seek out protected habitat with good food supplies during this period. This moult typically precedes [migration](/wiki/Bird_migration) . +The overall [body plan](/wiki/Body_plan) of ducks is elongated and broad, and they are also relatively long-necked, albeit not as long-necked as the geese and swans. The body shape of diving ducks varies somewhat from this in being more rounded. The [bill](/wiki/Beak) is usually broad and contains serrated [pectens](/wiki/Pecten_%28biology%29) , which are particularly well defined in the filter-feeding species. In the case of some fishing species the bill is long and strongly serrated. The scaled legs are strong and well developed, and generally set far back on the body, more so in the highly aquatic species. The wings are very strong and are generally short and pointed, and the [flight](/wiki/Bird_flight) of ducks requires fast continuous strokes, requiring in turn strong wing muscles. Three species of [steamer duck](/wiki/Steamer_duck) are almost flightless, however. Many species of duck are temporarily flightless while [moulting](/wiki/Moult) ; they seek out protected habitat with good food supplies during this period. This moult typically precedes [migration](/wiki/Bird_migration) . The drakes of northern species often have extravagant [plumage](/wiki/Plumage) , but that is [moulted](/wiki/Moult) in summer to give a more female-like appearance, the "eclipse" plumage. Southern resident species typically show less [sexual dimorphism](/wiki/Sexual_dimorphism) , although there are exceptions such as the [paradise shelduck](/wiki/Paradise_shelduck) of [New Zealand](/wiki/New_Zealand) , which is both strikingly sexually dimorphic and in which the female's plumage is brighter than that of the male. The plumage of juvenile birds generally resembles that of the female. Female ducks have evolved to have a corkscrew shaped vagina to prevent rape. @@ -325,7 +325,7 @@ Mallard duckling preening Ducks eat food sources such as [grasses](/wiki/Poaceae) , aquatic plants, fish, insects, small amphibians, worms, and small [molluscs](/wiki/Mollusc) . -[Dabbling ducks](/wiki/Dabbling_duck) feed on the surface of water or on land, or as deep as they can reach by up-ending without completely submerging. [[ 24 ]](#cite_note-24) Along the edge of the bill, there is a comb-like structure called a [pecten](/wiki/Pecten_(biology)) . This strains the water squirting from the side of the bill and traps any food. The pecten is also used to preen feathers and to hold slippery food items. +[Dabbling ducks](/wiki/Dabbling_duck) feed on the surface of water or on land, or as deep as they can reach by up-ending without completely submerging. [[ 24 ]](#cite_note-24) Along the edge of the bill, there is a comb-like structure called a [pecten](/wiki/Pecten_%28biology%29) . This strains the water squirting from the side of the bill and traps any food. The pecten is also used to preen feathers and to hold slippery food items. [Diving ducks](/wiki/Diving_duck) and [sea ducks](/wiki/Sea_duck) forage deep underwater. To be able to submerge more easily, the diving ducks are heavier than dabbling ducks, and therefore have more difficulty taking off to fly. @@ -341,13 +341,13 @@ A Muscovy duckling -Ducks generally [only have one partner at a time](/wiki/Monogamy_in_animals) , although the partnership usually only lasts one year. [[ 26 ]](#cite_note-26) Larger species and the more sedentary species (like fast-river specialists) tend to have pair-bonds that last numerous years. [[ 27 ]](#cite_note-27) Most duck species breed once a year, choosing to do so in favourable conditions ( [spring](/wiki/Spring_(season)) /summer or wet seasons). Ducks also tend to make a [nest](/wiki/Bird_nest) before breeding, and, after hatching, lead their ducklings to water. Mother ducks are very caring and protective of their young, but may abandon some of their ducklings if they are physically stuck in an area they cannot get out of (such as nesting in an enclosed [courtyard](/wiki/Courtyard) ) or are not prospering due to genetic defects or sickness brought about by hypothermia, starvation, or disease. Ducklings can also be orphaned by inconsistent late hatching where a few eggs hatch after the mother has abandoned the nest and led her ducklings to water. [[ 28 ]](#cite_note-28) +Ducks generally [only have one partner at a time](/wiki/Monogamy_in_animals) , although the partnership usually only lasts one year. [[ 26 ]](#cite_note-26) Larger species and the more sedentary species (like fast-river specialists) tend to have pair-bonds that last numerous years. [[ 27 ]](#cite_note-27) Most duck species breed once a year, choosing to do so in favourable conditions ( [spring](/wiki/Spring_%28season%29) /summer or wet seasons). Ducks also tend to make a [nest](/wiki/Bird_nest) before breeding, and, after hatching, lead their ducklings to water. Mother ducks are very caring and protective of their young, but may abandon some of their ducklings if they are physically stuck in an area they cannot get out of (such as nesting in an enclosed [courtyard](/wiki/Courtyard) ) or are not prospering due to genetic defects or sickness brought about by hypothermia, starvation, or disease. Ducklings can also be orphaned by inconsistent late hatching where a few eggs hatch after the mother has abandoned the nest and led her ducklings to water. [[ 28 ]](#cite_note-28) ### Communication Female [mallard](/wiki/Mallard) ducks (as well as several other species in the genus *Anas* , such as the [American](/wiki/American_black_duck) and [Pacific black ducks](/wiki/Pacific_black_duck) , [spot-billed duck](/wiki/Spot-billed_duck) , [northern pintail](/wiki/Northern_pintail) and [common teal](/wiki/Common_teal) ) make the classic "quack" sound while males make a similar but raspier sound that is sometimes written as "breeeeze", [[ 29 ]](#cite_note-29) [ [*self-published source?*](/wiki/Wikipedia:Verifiability#Self-published_sources) ] but, despite widespread misconceptions, most species of duck do not "quack". [[ 30 ]](#cite_note-30) In general, ducks make a range of [calls](/wiki/Bird_vocalisation) , including whistles, cooing, yodels and grunts. For example, the [scaup](/wiki/Scaup) - which are [diving ducks](/wiki/Diving_duck) - make a noise like "scaup" (hence their name). Calls may be loud displaying calls or quieter contact calls. -A common [urban legend](/wiki/Urban_legend) claims that duck quacks do not echo; however, this has been proven to be false. This myth was first debunked by the Acoustics Research Centre at the [University of Salford](/wiki/University_of_Salford) in 2003 as part of the [British Association](/wiki/British_Association) 's Festival of Science. [[ 31 ]](#cite_note-31) It was also debunked in [one of the earlier episodes](/wiki/MythBusters_(2003_season)#Does_a_Duck's_Quack_Echo?) of the popular Discovery Channel television show [*MythBusters*](/wiki/MythBusters) . [[ 32 ]](#cite_note-32) +A common [urban legend](/wiki/Urban_legend) claims that duck quacks do not echo; however, this has been proven to be false. This myth was first debunked by the Acoustics Research Centre at the [University of Salford](/wiki/University_of_Salford) in 2003 as part of the [British Association](/wiki/British_Association) 's Festival of Science. [[ 31 ]](#cite_note-31) It was also debunked in [one of the earlier episodes](/wiki/MythBusters_%282003_season%29#Does_a_Duck's_Quack_Echo?) of the popular Discovery Channel television show [*MythBusters*](/wiki/MythBusters) . [[ 32 ]](#cite_note-32) ### Predators @@ -367,7 +367,7 @@ Main article: [Waterfowl hunting](/wiki/Waterfowl_hunting) Humans have hunted ducks since prehistoric times. Excavations of [middens](/wiki/Midden) in California dating to 7800 - 6400 [BP](/wiki/Before_present) have turned up bones of ducks, including at least one now-extinct flightless species. [[ 33 ]](#cite_note-FOOTNOTEErlandson1994171-33) Ducks were captured in "significant numbers" by [Holocene](/wiki/Holocene) inhabitants of the lower [Ohio River](/wiki/Ohio_River) valley, suggesting they took advantage of the seasonal bounty provided by migrating waterfowl. [[ 34 ]](#cite_note-FOOTNOTEJeffries2008168,_243-34) Neolithic hunters in locations as far apart as the Caribbean, [[ 35 ]](#cite_note-FOOTNOTESued-Badillo200365-35) Scandinavia, [[ 36 ]](#cite_note-FOOTNOTEThorpe199668-36) Egypt, [[ 37 ]](#cite_note-FOOTNOTEMaisels199942-37) Switzerland, [[ 38 ]](#cite_note-FOOTNOTERau1876133-38) and China relied on ducks as a source of protein for some or all of the year. [[ 39 ]](#cite_note-FOOTNOTEHigman201223-39) Archeological evidence shows that [Māori people](/wiki/M%C4%81ori_people) in New Zealand hunted the flightless [Finsch's duck](/wiki/Finsch%27s_duck) , possibly to extinction, though rat predation may also have contributed to its fate. [[ 40 ]](#cite_note-FOOTNOTEHume201253-40) A similar end awaited the [Chatham duck](/wiki/Chatham_duck) , a species with reduced flying capabilities which went extinct shortly after its island was colonised by Polynesian settlers. [[ 41 ]](#cite_note-FOOTNOTEHume201252-41) It is probable that duck eggs were gathered by Neolithic hunter-gathers as well, though hard evidence of this is uncommon. [[ 35 ]](#cite_note-FOOTNOTESued-Badillo200365-35) [[ 42 ]](#cite_note-FOOTNOTEFieldhouse2002167-42) -In many areas, wild ducks (including ducks farmed and released into the wild) are hunted for food or sport, [[ 43 ]](#cite_note-43) by shooting, or by being trapped using [duck decoys](/wiki/Duck_decoy_(structure)) . Because an idle floating duck or a duck squatting on land cannot react to fly or move quickly, "a sitting duck" has come to mean "an easy target". These ducks may be [contaminated by pollutants](/wiki/Duck_(food)#Pollution) such as [PCBs](/wiki/Polychlorinated_biphenyl) . [[ 44 ]](#cite_note-44) +In many areas, wild ducks (including ducks farmed and released into the wild) are hunted for food or sport, [[ 43 ]](#cite_note-43) by shooting, or by being trapped using [duck decoys](/wiki/Duck_decoy_%28structure%29) . Because an idle floating duck or a duck squatting on land cannot react to fly or move quickly, "a sitting duck" has come to mean "an easy target". These ducks may be [contaminated by pollutants](/wiki/Duck_%28food%29#Pollution) such as [PCBs](/wiki/Polychlorinated_biphenyl) . [[ 44 ]](#cite_note-44) ### Domestication @@ -389,9 +389,9 @@ Ducks appear on several [coats of arms](/wiki/Coats_of_arms) , including the coa ### Cultural references -In 2002, psychologist [Richard Wiseman](/wiki/Richard_Wiseman) and colleagues at the [University of Hertfordshire](/wiki/University_of_Hertfordshire) , [UK](/wiki/UK) , finished a year-long [LaughLab](/wiki/LaughLab) experiment, concluding that of all animals, ducks attract the most humor and silliness; he said, "If you're going to tell a joke involving an animal, make it a duck." [[ 52 ]](#cite_note-52) The word "duck" may have become an [inherently funny word](/wiki/Inherently_funny_word) in many languages, possibly because ducks are seen as silly in their looks or behavior. Of the many [ducks in fiction](/wiki/List_of_fictional_ducks) , many are cartoon characters, such as [Walt Disney](/wiki/The_Walt_Disney_Company) 's [Donald Duck](/wiki/Donald_Duck) , and [Warner Bros.](/wiki/Warner_Bros.) ' [Daffy Duck](/wiki/Daffy_Duck) . [Howard the Duck](/wiki/Howard_the_Duck) started as a comic book character in 1973 [[ 53 ]](#cite_note-53) [[ 54 ]](#cite_note-54) and was made into a [movie](/wiki/Howard_the_Duck_(film)) in 1986. +In 2002, psychologist [Richard Wiseman](/wiki/Richard_Wiseman) and colleagues at the [University of Hertfordshire](/wiki/University_of_Hertfordshire) , [UK](/wiki/UK) , finished a year-long [LaughLab](/wiki/LaughLab) experiment, concluding that of all animals, ducks attract the most humor and silliness; he said, "If you're going to tell a joke involving an animal, make it a duck." [[ 52 ]](#cite_note-52) The word "duck" may have become an [inherently funny word](/wiki/Inherently_funny_word) in many languages, possibly because ducks are seen as silly in their looks or behavior. Of the many [ducks in fiction](/wiki/List_of_fictional_ducks) , many are cartoon characters, such as [Walt Disney](/wiki/The_Walt_Disney_Company) 's [Donald Duck](/wiki/Donald_Duck) , and [Warner Bros.](/wiki/Warner_Bros.) ' [Daffy Duck](/wiki/Daffy_Duck) . [Howard the Duck](/wiki/Howard_the_Duck) started as a comic book character in 1973 [[ 53 ]](#cite_note-53) [[ 54 ]](#cite_note-54) and was made into a [movie](/wiki/Howard_the_Duck_%28film%29) in 1986. -The 1992 Disney film [*The Mighty Ducks*](/wiki/The_Mighty_Ducks_(film)) , starring [Emilio Estevez](/wiki/Emilio_Estevez) , chose the duck as the mascot for the fictional youth hockey team who are protagonists of the movie, based on the duck being described as a fierce fighter. This led to the duck becoming the nickname and mascot for the eventual [National Hockey League](/wiki/National_Hockey_League) professional team of the [Anaheim Ducks](/wiki/Anaheim_Ducks) , who were founded with the name the Mighty Ducks of Anaheim. [ [*citation needed*](/wiki/Wikipedia:Citation_needed) ] The duck is also the nickname of the [University of Oregon](/wiki/University_of_Oregon) sports teams as well as the [Long Island Ducks](/wiki/Long_Island_Ducks) minor league [baseball](/wiki/Baseball) team. [[ 55 ]](#cite_note-55) +The 1992 Disney film [*The Mighty Ducks*](/wiki/The_Mighty_Ducks_%28film%29) , starring [Emilio Estevez](/wiki/Emilio_Estevez) , chose the duck as the mascot for the fictional youth hockey team who are protagonists of the movie, based on the duck being described as a fierce fighter. This led to the duck becoming the nickname and mascot for the eventual [National Hockey League](/wiki/National_Hockey_League) professional team of the [Anaheim Ducks](/wiki/Anaheim_Ducks) , who were founded with the name the Mighty Ducks of Anaheim. [ [*citation needed*](/wiki/Wikipedia:Citation_needed) ] The duck is also the nickname of the [University of Oregon](/wiki/University_of_Oregon) sports teams as well as the [Long Island Ducks](/wiki/Long_Island_Ducks) minor league [baseball](/wiki/Baseball) team. [[ 55 ]](#cite_note-55) ## See also @@ -411,8 +411,8 @@ The 1992 Disney film [*The Mighty Ducks*](/wiki/The_Mighty_Ducks_(film)) , starr 1. [**^**](#cite_ref-1) ["Duckling"](http://dictionary.reference.com/browse/duckling) . *The American Heritage Dictionary of the English Language, Fourth Edition* . Houghton Mifflin Company. 2006 . Retrieved 2015-05-22 . 2. [**^**](#cite_ref-2) ["Duckling"](http://dictionary.reference.com/browse/duckling) . *Kernerman English Multilingual Dictionary (Beta Version)* . K. Dictionaries Ltd. 2000-2006 . Retrieved 2015-05-22 . -3. [**^**](#cite_ref-3) Dohner, Janet Vorwald (2001). [*The Encyclopedia of Historic and Endangered Livestock and Poultry Breeds*](https://books.google.com/books?id=WJCTL_mC5w4C&q=male+duck+is+called+a+drake+and+the+female+is+called+a+duck&pg=PA457) . Yale University Press. [ISBN](/wiki/ISBN_(identifier)) [978-0300138139](/wiki/Special:BookSources/978-0300138139) . -4. [**^**](#cite_ref-4) Visca, Curt; Visca, Kelley (2003). [*How to Draw Cartoon Birds*](https://books.google.com/books?id=VqSquCLNrZcC&q=male+duck+is+called+a+drake+and+the+female+is+called+a+duck+%28or+hen%29&pg=PA16) . The Rosen Publishing Group. [ISBN](/wiki/ISBN_(identifier)) [9780823961566](/wiki/Special:BookSources/9780823961566) . +3. [**^**](#cite_ref-3) Dohner, Janet Vorwald (2001). [*The Encyclopedia of Historic and Endangered Livestock and Poultry Breeds*](https://books.google.com/books?id=WJCTL_mC5w4C&q=male+duck+is+called+a+drake+and+the+female+is+called+a+duck&pg=PA457) . Yale University Press. [ISBN](/wiki/ISBN_%28identifier%29) [978-0300138139](/wiki/Special:BookSources/978-0300138139) . +4. [**^**](#cite_ref-4) Visca, Curt; Visca, Kelley (2003). [*How to Draw Cartoon Birds*](https://books.google.com/books?id=VqSquCLNrZcC&q=male+duck+is+called+a+drake+and+the+female+is+called+a+duck+%28or+hen%29&pg=PA16) . The Rosen Publishing Group. [ISBN](/wiki/ISBN_%28identifier%29) [9780823961566](/wiki/Special:BookSources/9780823961566) . 5. ^ [***a***](#cite_ref-FOOTNOTECarboneras1992536_5-0) [***b***](#cite_ref-FOOTNOTECarboneras1992536_5-1) [***c***](#cite_ref-FOOTNOTECarboneras1992536_5-2) [***d***](#cite_ref-FOOTNOTECarboneras1992536_5-3) [Carboneras 1992](#CITEREFCarboneras1992) , p. 536. 6. [**^**](#cite_ref-FOOTNOTELivezey1986737–738_6-0) [Livezey 1986](#CITEREFLivezey1986) , pp. 737-738. 7. [**^**](#cite_ref-FOOTNOTEMadsenMcHughde_Kloet1988452_7-0) [Madsen, McHugh & de Kloet 1988](#CITEREFMadsenMcHughde_Kloet1988) , p. 452. @@ -434,11 +434,11 @@ The 1992 Disney film [*The Mighty Ducks*](/wiki/The_Mighty_Ducks_(film)) , starr 23. [**^**](#cite_ref-23) ["Pacific Black Duck"](http://www.wiresnr.org/pacificblackduck.html) . *www.wiresnr.org* . Retrieved 2018-04-27 . 24. [**^**](#cite_ref-24) Ogden, Evans. ["Dabbling Ducks"](https://www.sfu.ca/biology/wildberg/species/dabbducks.html) . CWE . Retrieved 2006-11-02 . 25. [**^**](#cite_ref-25) Karl Mathiesen (16 March 2015). ["Don't feed the ducks bread, say conservationists"](https://www.theguardian.com/environment/2015/mar/16/dont-feed-the-ducks-bread-say-conservationists) . *The Guardian* . Retrieved 13 November 2016 . -26. [**^**](#cite_ref-26) 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](/wiki/Doi_(identifier)) : [10.1007/978-1-4615-6787-5\_4](https://doi.org/10.1007%2F978-1-4615-6787-5_4) . [ISBN](/wiki/ISBN_(identifier)) [978-1-4615-6789-9](/wiki/Special:BookSources/978-1-4615-6789-9) . -27. [**^**](#cite_ref-27) Smith, Cyndi M.; Cooke, Fred; Robertson, Gregory J.; Goudie, R. Ian; Boyd, W. Sean (2000). ["Long-Term Pair Bonds in Harlequin Ducks"](https://doi.org/10.1093%2Fcondor%2F102.1.201) . *The Condor* . **102** (1): 201-205. [doi](/wiki/Doi_(identifier)) : [10.1093/condor/102.1.201](https://doi.org/10.1093%2Fcondor%2F102.1.201) . [hdl](/wiki/Hdl_(identifier)) : [10315/13797](https://hdl.handle.net/10315%2F13797) . +26. [**^**](#cite_ref-26) 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](/wiki/Doi_%28identifier%29) : [10.1007/978-1-4615-6787-5\_4](https://doi.org/10.1007%2F978-1-4615-6787-5_4) . [ISBN](/wiki/ISBN_%28identifier%29) [978-1-4615-6789-9](/wiki/Special:BookSources/978-1-4615-6789-9) . +27. [**^**](#cite_ref-27) Smith, Cyndi M.; Cooke, Fred; Robertson, Gregory J.; Goudie, R. Ian; Boyd, W. Sean (2000). ["Long-Term Pair Bonds in Harlequin Ducks"](https://doi.org/10.1093%2Fcondor%2F102.1.201) . *The Condor* . **102** (1): 201-205. [doi](/wiki/Doi_%28identifier%29) : [10.1093/condor/102.1.201](https://doi.org/10.1093%2Fcondor%2F102.1.201) . [hdl](/wiki/Hdl_%28identifier%29) : [10315/13797](https://hdl.handle.net/10315%2F13797) . 28. [**^**](#cite_ref-28) ["If You Find An Orphaned Duckling - Wildlife Rehabber"](https://web.archive.org/web/20180923152911/http://wildliferehabber.com/content/if-you-find-duckling) . *wildliferehabber.com* . Archived from [the original](https://wildliferehabber.com/content/if-you-find-duckling) on 2018-09-23 . Retrieved 2018-12-22 . -29. [**^**](#cite_ref-29) Carver, Heather (2011). [*The Duck Bible*](https://books.google.com/books?id=VGofAwAAQBAJ&q=mallard+sound+deep+and+raspy&pg=PA39) . Lulu.com. [ISBN](/wiki/ISBN_(identifier)) [9780557901562](/wiki/Special:BookSources/9780557901562) . [ [*self-published source*](/wiki/Wikipedia:Verifiability#Self-published_sources) ] -30. [**^**](#cite_ref-30) Titlow, Budd (2013-09-03). [*Bird Brains: Inside the Strange Minds of Our Fine Feathered Friends*](https://books.google.com/books?id=fXJBBAAAQBAJ&q=Females+of+most+dabbling+ducks+make+the+classic+%22quack%22+sound+but+most+ducks+don%27t+quack&pg=PA123) . Rowman & Littlefield. [ISBN](/wiki/ISBN_(identifier)) [9780762797707](/wiki/Special:BookSources/9780762797707) . +29. [**^**](#cite_ref-29) Carver, Heather (2011). [*The Duck Bible*](https://books.google.com/books?id=VGofAwAAQBAJ&q=mallard+sound+deep+and+raspy&pg=PA39) . Lulu.com. [ISBN](/wiki/ISBN_%28identifier%29) [9780557901562](/wiki/Special:BookSources/9780557901562) . [ [*self-published source*](/wiki/Wikipedia:Verifiability#Self-published_sources) ] +30. [**^**](#cite_ref-30) Titlow, Budd (2013-09-03). [*Bird Brains: Inside the Strange Minds of Our Fine Feathered Friends*](https://books.google.com/books?id=fXJBBAAAQBAJ&q=Females+of+most+dabbling+ducks+make+the+classic+%22quack%22+sound+but+most+ducks+don%27t+quack&pg=PA123) . Rowman & Littlefield. [ISBN](/wiki/ISBN_%28identifier%29) [9780762797707](/wiki/Special:BookSources/9780762797707) . 31. [**^**](#cite_ref-31) Amos, Jonathan (2003-09-08). ["Sound science is quackers"](http://news.bbc.co.uk/2/hi/science/nature/3086890.stm) . *BBC News* . Retrieved 2006-11-02 . 32. [**^**](#cite_ref-32) ["Mythbusters Episode 8"](http://mythbustersresults.com/episode8) . 12 December 2003. 33. [**^**](#cite_ref-FOOTNOTEErlandson1994171_33-0) [Erlandson 1994](#CITEREFErlandson1994) , p. 171. @@ -451,42 +451,42 @@ The 1992 Disney film [*The Mighty Ducks*](/wiki/The_Mighty_Ducks_(film)) , starr 40. [**^**](#cite_ref-FOOTNOTEHume201253_40-0) [Hume 2012](#CITEREFHume2012) , p. 53. 41. [**^**](#cite_ref-FOOTNOTEHume201252_41-0) [Hume 2012](#CITEREFHume2012) , p. 52. 42. [**^**](#cite_ref-FOOTNOTEFieldhouse2002167_42-0) [Fieldhouse 2002](#CITEREFFieldhouse2002) , p. 167. -43. [**^**](#cite_ref-43) Livingston, A. D. (1998-01-01). [*Guide to Edible Plants and Animals*](https://books.google.com/books?id=NViSMffyaSgC&q=%C2%A0%C2%A0In+many+areas,+wild+ducks+of+various+species+are+hunted+for+food+or+sport) . Wordsworth Editions, Limited. [ISBN](/wiki/ISBN_(identifier)) [9781853263774](/wiki/Special:BookSources/9781853263774) . +43. [**^**](#cite_ref-43) Livingston, A. D. (1998-01-01). [*Guide to Edible Plants and Animals*](https://books.google.com/books?id=NViSMffyaSgC&q=%C2%A0%C2%A0In+many+areas,+wild+ducks+of+various+species+are+hunted+for+food+or+sport) . Wordsworth Editions, Limited. [ISBN](/wiki/ISBN_%28identifier%29) [9781853263774](/wiki/Special:BookSources/9781853263774) . 44. [**^**](#cite_ref-44) ["Study plan for waterfowl injury assessment: Determining PCB concentrations in Hudson river resident waterfowl"](https://www.dec.ny.gov/docs/fish_marine_pdf/wfp09a.pdf) (PDF) . *New York State Department of Environmental Conservation* . US Department of Commerce. December 2008. p. 3. [Archived](https://ghostarchive.org/archive/20221009/https://www.dec.ny.gov/docs/fish_marine_pdf/wfp09a.pdf) (PDF) from the original on 2022-10-09 . Retrieved 2 July 2019 . 45. [**^**](#cite_ref-45) ["FAOSTAT"](http://www.fao.org/faostat/en/#data/QL) . *www.fao.org* . Retrieved 2019-10-25 . 46. [**^**](#cite_ref-46) ["Anas platyrhynchos, Domestic Duck; DigiMorph Staff - The University of Texas at Austin"](http://digimorph.org/specimens/anas_platyrhynchos/skull/) . Digimorph.org . Retrieved 2012-12-23 . 47. [**^**](#cite_ref-47) Sy Montgomery. ["Mallard; Encyclopædia Britannica"](https://www.britannica.com/eb/topic-360302/mallard) . *Britannica.com* . Retrieved 2012-12-23 . -48. [**^**](#cite_ref-48) Glenday, Craig (2014). [*Guinness World Records*](https://archive.org/details/guinnessworldrec0000unse_r3e7/page/135) . Guinness World Records Limited. pp. [135](https://archive.org/details/guinnessworldrec0000unse_r3e7/page/135) . [ISBN](/wiki/ISBN_(identifier)) [978-1-908843-15-9](/wiki/Special:BookSources/978-1-908843-15-9) . -49. [**^**](#cite_ref-49) *Suomen kunnallisvaakunat* (in Finnish). Suomen Kunnallisliitto. 1982. p. 147. [ISBN](/wiki/ISBN_(identifier)) [951-773-085-3](/wiki/Special:BookSources/951-773-085-3) . +48. [**^**](#cite_ref-48) Glenday, Craig (2014). [*Guinness World Records*](https://archive.org/details/guinnessworldrec0000unse_r3e7/page/135) . Guinness World Records Limited. pp. [135](https://archive.org/details/guinnessworldrec0000unse_r3e7/page/135) . [ISBN](/wiki/ISBN_%28identifier%29) [978-1-908843-15-9](/wiki/Special:BookSources/978-1-908843-15-9) . +49. [**^**](#cite_ref-49) *Suomen kunnallisvaakunat* (in Finnish). Suomen Kunnallisliitto. 1982. p. 147. [ISBN](/wiki/ISBN_%28identifier%29) [951-773-085-3](/wiki/Special:BookSources/951-773-085-3) . 50. [**^**](#cite_ref-50) ["Lubānas simbolika"](http://www.lubana.lv/index.php/lv/homepage/lubanas-pilseta-2) (in Latvian) . Retrieved September 9, 2021 . 51. [**^**](#cite_ref-51) ["Föglö"](http://digi.narc.fi/digi/view.ka?kuid=1738595) (in Swedish) . Retrieved September 9, 2021 . 52. [**^**](#cite_ref-52) Young, Emma. ["World's funniest joke revealed"](https://www.newscientist.com/article/dn2876-worlds-funniest-joke-revealed/) . *New Scientist* . Retrieved 7 January 2019 . 53. [**^**](#cite_ref-53) ["Howard the Duck (character)"](http://www.comics.org/character/name/Howard%20the%20Duck/sort/chrono/) . [*Grand Comics Database*](/wiki/Grand_Comics_Database) . -54. [**^**](#cite_ref-54) [Sanderson, Peter](/wiki/Peter_Sanderson) ; Gilbert, Laura (2008). "1970s". *Marvel Chronicle A Year by Year History* . London, United Kingdom: [Dorling Kindersley](/wiki/Dorling_Kindersley) . p. 161. [ISBN](/wiki/ISBN_(identifier)) [978-0756641238](/wiki/Special:BookSources/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. +54. [**^**](#cite_ref-54) [Sanderson, Peter](/wiki/Peter_Sanderson) ; Gilbert, Laura (2008). "1970s". *Marvel Chronicle A Year by Year History* . London, United Kingdom: [Dorling Kindersley](/wiki/Dorling_Kindersley) . p. 161. [ISBN](/wiki/ISBN_%28identifier%29) [978-0756641238](/wiki/Special:BookSources/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. 55. [**^**](#cite_ref-55) ["The Duck"](https://goducks.com/sports/2003/8/28/153778.aspx) . *University of Oregon Athletics* . Retrieved 2022-01-20 . ### Sources -- American Ornithologists' Union (1998). [*Checklist of North American Birds*](https://americanornithology.org/wp-content/uploads/2019/07/AOSChecklistTin-Falcon.pdf) (PDF) . Washington, DC: American Ornithologists' Union. [ISBN](/wiki/ISBN_(identifier)) [978-1-891276-00-2](/wiki/Special:BookSources/978-1-891276-00-2) . [Archived](https://ghostarchive.org/archive/20221009/https://americanornithology.org/wp-content/uploads/2019/07/AOSChecklistTin-Falcon.pdf) (PDF) from the original on 2022-10-09. -- 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](/wiki/ISBN_(identifier)) [978-84-87334-10-8](/wiki/Special:BookSources/978-84-87334-10-8) . -- Christidis, Les; Boles, Walter E., eds. (2008). *Systematics and Taxonomy of Australian Birds* . Collingwood, VIC: Csiro Publishing. [ISBN](/wiki/ISBN_(identifier)) [978-0-643-06511-6](/wiki/Special:BookSources/978-0-643-06511-6) . -- 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](/wiki/Bibcode_(identifier)) : [2002MolPE..23..339D](https://ui.adsabs.harvard.edu/abs/2002MolPE..23..339D) . [doi](/wiki/Doi_(identifier)) : [10.1016/S1055-7903(02)00019-2](https://doi.org/10.1016%2FS1055-7903%2802%2900019-2) . [PMID](/wiki/PMID_(identifier)) [12099792](https://pubmed.ncbi.nlm.nih.gov/12099792) . -- Elphick, Chris; Dunning, John B. Jr.; Sibley, David, eds. (2001). *The Sibley Guide to Bird Life and Behaviour* . London: Christopher Helm. [ISBN](/wiki/ISBN_(identifier)) [978-0-7136-6250-4](/wiki/Special:BookSources/978-0-7136-6250-4) . -- Erlandson, Jon M. (1994). [*Early Hunter-Gatherers of the California Coast*](https://books.google.com/books?id=nGTaBwAAQBAJ&pg=171) . New York, NY: Springer Science & Business Media. [ISBN](/wiki/ISBN_(identifier)) [978-1-4419-3231-0](/wiki/Special:BookSources/978-1-4419-3231-0) . -- Fieldhouse, Paul (2002). [*Food, Feasts, and Faith: An Encyclopedia of Food Culture in World Religions*](https://books.google.com/books?id=P-FqDgAAQBAJ&pg=PA167) . Vol. I: A-K. Santa Barbara: ABC-CLIO. [ISBN](/wiki/ISBN_(identifier)) [978-1-61069-412-4](/wiki/Special:BookSources/978-1-61069-412-4) . -- Fitter, Julian; Fitter, Daniel; Hosking, David (2000). *Wildlife of the Galápagos* . Princeton, NJ: Princeton University Press. [ISBN](/wiki/ISBN_(identifier)) [978-0-691-10295-5](/wiki/Special:BookSources/978-0-691-10295-5) . -- Higman, B. W. (2012). [*How Food Made History*](https://books.google.com/books?id=YIUoz98yMvgC&pg=RA1-PA1801) . Chichester, UK: John Wiley & Sons. [ISBN](/wiki/ISBN_(identifier)) [978-1-4051-8947-7](/wiki/Special:BookSources/978-1-4051-8947-7) . -- Hume, Julian H. (2012). [*Extinct Birds*](https://books.google.com/books?id=40sxDwAAQBAJ&pg=PA53) . London: Christopher Helm. [ISBN](/wiki/ISBN_(identifier)) [978-1-4729-3744-5](/wiki/Special:BookSources/978-1-4729-3744-5) . -- Jeffries, Richard (2008). [*Holocene Hunter-Gatherers of the Lower Ohio River Valley*](https://archive.org/details/holocenehunterga0000jeff/mode/2up) . Tuscaloosa: University of Alabama Press. [ISBN](/wiki/ISBN_(identifier)) [978-0-8173-1658-7](/wiki/Special:BookSources/978-0-8173-1658-7) . -- Kear, Janet, ed. (2005). *Ducks, Geese and Swans: Species Accounts (* Cairina *to* Mergus *)* . Bird Families of the World. Oxford: Oxford University Press. [ISBN](/wiki/ISBN_(identifier)) [978-0-19-861009-0](/wiki/Special:BookSources/978-0-19-861009-0) . -- Livezey, Bradley C. (October 1986). ["A phylogenetic analysis of recent Anseriform genera using morphological characters"](https://sora.unm.edu/sites/default/files/journals/auk/v103n04/p0737-p0754.pdf) (PDF) . *The Auk* . **103** (4): 737-754. [doi](/wiki/Doi_(identifier)) : [10.1093/auk/103.4.737](https://doi.org/10.1093%2Fauk%2F103.4.737) . [Archived](https://ghostarchive.org/archive/20221009/https://sora.unm.edu/sites/default/files/journals/auk/v103n04/p0737-p0754.pdf) (PDF) from the original on 2022-10-09. -- Madsen, Cort S.; McHugh, Kevin P.; de Kloet, Siwo R. (July 1988). ["A partial classification of waterfowl (Anatidae) based on single-copy DNA"](https://sora.unm.edu/sites/default/files/journals/auk/v105n03/p0452-p0459.pdf) (PDF) . *The Auk* . **105** (3): 452-459. [doi](/wiki/Doi_(identifier)) : [10.1093/auk/105.3.452](https://doi.org/10.1093%2Fauk%2F105.3.452) . [Archived](https://ghostarchive.org/archive/20221009/https://sora.unm.edu/sites/default/files/journals/auk/v105n03/p0452-p0459.pdf) (PDF) from the original on 2022-10-09. -- Maisels, Charles Keith (1999). [*Early Civilizations of the Old World*](https://books.google.com/books?id=I2dgI2ijww8C&pg=PA42) . London: Routledge. [ISBN](/wiki/ISBN_(identifier)) [978-0-415-10975-8](/wiki/Special:BookSources/978-0-415-10975-8) . -- 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](/wiki/ISBN_(identifier)) [0-691-02399-9](/wiki/Special:BookSources/0-691-02399-9) . -- Rau, Charles (1876). [*Early Man in Europe*](https://books.google.com/books?id=9XBgAAAAIAAJ&pg=133) . New York: Harper & Brothers. [LCCN](/wiki/LCCN_(identifier)) [05040168](https://lccn.loc.gov/05040168) . -- Shirihai, Hadoram (2008). *A Complete Guide to Antarctic Wildlife* . Princeton, NJ, US: Princeton University Press. [ISBN](/wiki/ISBN_(identifier)) [978-0-691-13666-0](/wiki/Special:BookSources/978-0-691-13666-0) . -- Sued-Badillo, Jalil (2003). [*Autochthonous Societies*](https://books.google.com/books?id=zexcW7q-4LgC&pg=PA65) . General History of the Caribbean. Paris: UNESCO. [ISBN](/wiki/ISBN_(identifier)) [978-92-3-103832-7](/wiki/Special:BookSources/978-92-3-103832-7) . -- Thorpe, I. J. (1996). [*The Origins of Agriculture in Europe*](https://books.google.com/books?id=YA-EAgAAQBAJ&pg=PA68) . New York: Routledge. [ISBN](/wiki/ISBN_(identifier)) [978-0-415-08009-5](/wiki/Special:BookSources/978-0-415-08009-5) . +- American Ornithologists' Union (1998). [*Checklist of North American Birds*](https://americanornithology.org/wp-content/uploads/2019/07/AOSChecklistTin-Falcon.pdf) (PDF) . Washington, DC: American Ornithologists' Union. [ISBN](/wiki/ISBN_%28identifier%29) [978-1-891276-00-2](/wiki/Special:BookSources/978-1-891276-00-2) . [Archived](https://ghostarchive.org/archive/20221009/https://americanornithology.org/wp-content/uploads/2019/07/AOSChecklistTin-Falcon.pdf) (PDF) from the original on 2022-10-09. +- 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](/wiki/ISBN_%28identifier%29) [978-84-87334-10-8](/wiki/Special:BookSources/978-84-87334-10-8) . +- Christidis, Les; Boles, Walter E., eds. (2008). *Systematics and Taxonomy of Australian Birds* . Collingwood, VIC: Csiro Publishing. [ISBN](/wiki/ISBN_%28identifier%29) [978-0-643-06511-6](/wiki/Special:BookSources/978-0-643-06511-6) . +- 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](/wiki/Bibcode_%28identifier%29) : [2002MolPE..23..339D](https://ui.adsabs.harvard.edu/abs/2002MolPE..23..339D) . [doi](/wiki/Doi_%28identifier%29) : [10.1016/S1055-7903(02)00019-2](https://doi.org/10.1016%2FS1055-7903%2802%2900019-2) . [PMID](/wiki/PMID_%28identifier%29) [12099792](https://pubmed.ncbi.nlm.nih.gov/12099792) . +- Elphick, Chris; Dunning, John B. Jr.; Sibley, David, eds. (2001). *The Sibley Guide to Bird Life and Behaviour* . London: Christopher Helm. [ISBN](/wiki/ISBN_%28identifier%29) [978-0-7136-6250-4](/wiki/Special:BookSources/978-0-7136-6250-4) . +- Erlandson, Jon M. (1994). [*Early Hunter-Gatherers of the California Coast*](https://books.google.com/books?id=nGTaBwAAQBAJ&pg=171) . New York, NY: Springer Science & Business Media. [ISBN](/wiki/ISBN_%28identifier%29) [978-1-4419-3231-0](/wiki/Special:BookSources/978-1-4419-3231-0) . +- Fieldhouse, Paul (2002). [*Food, Feasts, and Faith: An Encyclopedia of Food Culture in World Religions*](https://books.google.com/books?id=P-FqDgAAQBAJ&pg=PA167) . Vol. I: A-K. Santa Barbara: ABC-CLIO. [ISBN](/wiki/ISBN_%28identifier%29) [978-1-61069-412-4](/wiki/Special:BookSources/978-1-61069-412-4) . +- Fitter, Julian; Fitter, Daniel; Hosking, David (2000). *Wildlife of the Galápagos* . Princeton, NJ: Princeton University Press. [ISBN](/wiki/ISBN_%28identifier%29) [978-0-691-10295-5](/wiki/Special:BookSources/978-0-691-10295-5) . +- Higman, B. W. (2012). [*How Food Made History*](https://books.google.com/books?id=YIUoz98yMvgC&pg=RA1-PA1801) . Chichester, UK: John Wiley & Sons. [ISBN](/wiki/ISBN_%28identifier%29) [978-1-4051-8947-7](/wiki/Special:BookSources/978-1-4051-8947-7) . +- Hume, Julian H. (2012). [*Extinct Birds*](https://books.google.com/books?id=40sxDwAAQBAJ&pg=PA53) . London: Christopher Helm. [ISBN](/wiki/ISBN_%28identifier%29) [978-1-4729-3744-5](/wiki/Special:BookSources/978-1-4729-3744-5) . +- Jeffries, Richard (2008). [*Holocene Hunter-Gatherers of the Lower Ohio River Valley*](https://archive.org/details/holocenehunterga0000jeff/mode/2up) . Tuscaloosa: University of Alabama Press. [ISBN](/wiki/ISBN_%28identifier%29) [978-0-8173-1658-7](/wiki/Special:BookSources/978-0-8173-1658-7) . +- Kear, Janet, ed. (2005). *Ducks, Geese and Swans: Species Accounts (* Cairina *to* Mergus *)* . Bird Families of the World. Oxford: Oxford University Press. [ISBN](/wiki/ISBN_%28identifier%29) [978-0-19-861009-0](/wiki/Special:BookSources/978-0-19-861009-0) . +- Livezey, Bradley C. (October 1986). ["A phylogenetic analysis of recent Anseriform genera using morphological characters"](https://sora.unm.edu/sites/default/files/journals/auk/v103n04/p0737-p0754.pdf) (PDF) . *The Auk* . **103** (4): 737-754. [doi](/wiki/Doi_%28identifier%29) : [10.1093/auk/103.4.737](https://doi.org/10.1093%2Fauk%2F103.4.737) . [Archived](https://ghostarchive.org/archive/20221009/https://sora.unm.edu/sites/default/files/journals/auk/v103n04/p0737-p0754.pdf) (PDF) from the original on 2022-10-09. +- Madsen, Cort S.; McHugh, Kevin P.; de Kloet, Siwo R. (July 1988). ["A partial classification of waterfowl (Anatidae) based on single-copy DNA"](https://sora.unm.edu/sites/default/files/journals/auk/v105n03/p0452-p0459.pdf) (PDF) . *The Auk* . **105** (3): 452-459. [doi](/wiki/Doi_%28identifier%29) : [10.1093/auk/105.3.452](https://doi.org/10.1093%2Fauk%2F105.3.452) . [Archived](https://ghostarchive.org/archive/20221009/https://sora.unm.edu/sites/default/files/journals/auk/v105n03/p0452-p0459.pdf) (PDF) from the original on 2022-10-09. +- Maisels, Charles Keith (1999). [*Early Civilizations of the Old World*](https://books.google.com/books?id=I2dgI2ijww8C&pg=PA42) . London: Routledge. [ISBN](/wiki/ISBN_%28identifier%29) [978-0-415-10975-8](/wiki/Special:BookSources/978-0-415-10975-8) . +- 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](/wiki/ISBN_%28identifier%29) [0-691-02399-9](/wiki/Special:BookSources/0-691-02399-9) . +- Rau, Charles (1876). [*Early Man in Europe*](https://books.google.com/books?id=9XBgAAAAIAAJ&pg=133) . New York: Harper & Brothers. [LCCN](/wiki/LCCN_%28identifier%29) [05040168](https://lccn.loc.gov/05040168) . +- Shirihai, Hadoram (2008). *A Complete Guide to Antarctic Wildlife* . Princeton, NJ, US: Princeton University Press. [ISBN](/wiki/ISBN_%28identifier%29) [978-0-691-13666-0](/wiki/Special:BookSources/978-0-691-13666-0) . +- Sued-Badillo, Jalil (2003). [*Autochthonous Societies*](https://books.google.com/books?id=zexcW7q-4LgC&pg=PA65) . General History of the Caribbean. Paris: UNESCO. [ISBN](/wiki/ISBN_%28identifier%29) [978-92-3-103832-7](/wiki/Special:BookSources/978-92-3-103832-7) . +- Thorpe, I. J. (1996). [*The Origins of Agriculture in Europe*](https://books.google.com/books?id=YA-EAgAAQBAJ&pg=PA68) . New York: Routledge. [ISBN](/wiki/ISBN_%28identifier%29) [978-0-415-08009-5](/wiki/Special:BookSources/978-0-415-08009-5) . ## External links @@ -526,20 +526,20 @@ Hidden categories: - [All accuracy disputes](/wiki/Category:All_accuracy_disputes) - [Accuracy disputes from February 2020](/wiki/Category:Accuracy_disputes_from_February_2020) -- [CS1 Finnish-language sources (fi)](/wiki/Category:CS1_Finnish-language_sources_(fi)) -- [CS1 Latvian-language sources (lv)](/wiki/Category:CS1_Latvian-language_sources_(lv)) -- [CS1 Swedish-language sources (sv)](/wiki/Category:CS1_Swedish-language_sources_(sv)) +- [CS1 Finnish-language sources (fi)](/wiki/Category:CS1_Finnish-language_sources_%28fi%29) +- [CS1 Latvian-language sources (lv)](/wiki/Category:CS1_Latvian-language_sources_%28lv%29) +- [CS1 Swedish-language sources (sv)](/wiki/Category:CS1_Swedish-language_sources_%28sv%29) - [Articles with short description](/wiki/Category:Articles_with_short_description) - [Short description is different from Wikidata](/wiki/Category:Short_description_is_different_from_Wikidata) - [Wikipedia indefinitely move-protected pages](/wiki/Category:Wikipedia_indefinitely_move-protected_pages) - [Wikipedia indefinitely semi-protected pages](/wiki/Category:Wikipedia_indefinitely_semi-protected_pages) - [Articles with 'species' microformats](/wiki/Category:Articles_with_%27species%27_microformats) -- [Articles containing Old English (ca. 450-1100)-language text](/wiki/Category:Articles_containing_Old_English_(ca._450-1100)-language_text) +- [Articles containing Old English (ca. 450-1100)-language text](/wiki/Category:Articles_containing_Old_English_%28ca._450-1100%29-language_text) - [Articles containing Dutch-language text](/wiki/Category:Articles_containing_Dutch-language_text) - [Articles containing German-language text](/wiki/Category:Articles_containing_German-language_text) - [Articles containing Norwegian-language text](/wiki/Category:Articles_containing_Norwegian-language_text) - [Articles containing Lithuanian-language text](/wiki/Category:Articles_containing_Lithuanian-language_text) -- [Articles containing Ancient Greek (to 1453)-language text](/wiki/Category:Articles_containing_Ancient_Greek_(to_1453)-language_text) +- [Articles containing Ancient Greek (to 1453)-language text](/wiki/Category:Articles_containing_Ancient_Greek_%28to_1453%29-language_text) - [All articles with self-published sources](/wiki/Category:All_articles_with_self-published_sources) - [Articles with self-published sources from February 2020](/wiki/Category:Articles_with_self-published_sources_from_February_2020) - [All articles with unsourced statements](/wiki/Category:All_articles_with_unsourced_statements) diff --git a/tests/data/latex/groundtruth/1706.03762_main.tex.dclg b/tests/data/latex/groundtruth/1706.03762_main.tex.dclg index e68736eafd..1c55b1afa4 100644 --- a/tests/data/latex/groundtruth/1706.03762_main.tex.dclg +++ b/tests/data/latex/groundtruth/1706.03762_main.tex.dclg @@ -1,4 +1,4 @@ - + \documentclass{article} diff --git a/tests/data/latex/groundtruth/2305.03393_main.tex.dclg b/tests/data/latex/groundtruth/2305.03393_main.tex.dclg index e6efbf5294..f6e9a0f710 100644 --- a/tests/data/latex/groundtruth/2305.03393_main.tex.dclg +++ b/tests/data/latex/groundtruth/2305.03393_main.tex.dclg @@ -1,4 +1,4 @@ - + \documentclass[runningheads]{llncs} diff --git a/tests/data/latex/groundtruth/2310.06825_main.tex.dclg b/tests/data/latex/groundtruth/2310.06825_main.tex.dclg index 2ab88c1475..dec59fbe05 100644 --- a/tests/data/latex/groundtruth/2310.06825_main.tex.dclg +++ b/tests/data/latex/groundtruth/2310.06825_main.tex.dclg @@ -1,4 +1,4 @@ - + \documentclass{article} diff --git a/tests/data/latex/groundtruth/2412.19437_main.tex.dclg b/tests/data/latex/groundtruth/2412.19437_main.tex.dclg index 4961e95521..be03b6f75e 100644 --- a/tests/data/latex/groundtruth/2412.19437_main.tex.dclg +++ b/tests/data/latex/groundtruth/2412.19437_main.tex.dclg @@ -1,4 +1,4 @@ - + \documentclass[11pt, a4paper, logo, copyright, nonumbering]{deepseek} diff --git a/tests/data/latex/groundtruth/2501.00089_main.tex.dclg b/tests/data/latex/groundtruth/2501.00089_main.tex.dclg index 6cfc2ef273..03d62e9c05 100644 --- a/tests/data/latex/groundtruth/2501.00089_main.tex.dclg +++ b/tests/data/latex/groundtruth/2501.00089_main.tex.dclg @@ -1,4 +1,4 @@ - + \documentclass[apj,twocolumn,twocolappendix]{aastex631} diff --git a/tests/data/latex/groundtruth/arXiv-2501.01300v2_main.tex.dclg b/tests/data/latex/groundtruth/arXiv-2501.01300v2_main.tex.dclg index 75386a2565..69fea891be 100644 --- a/tests/data/latex/groundtruth/arXiv-2501.01300v2_main.tex.dclg +++ b/tests/data/latex/groundtruth/arXiv-2501.01300v2_main.tex.dclg @@ -1,4 +1,4 @@ - + \documentclass[a4paper,fleqn]{cas-dc} diff --git a/tests/data/latex/groundtruth/example_01.tex.dclg b/tests/data/latex/groundtruth/example_01.tex.dclg index 6ef0c5f60e..14b86282cb 100644 --- a/tests/data/latex/groundtruth/example_01.tex.dclg +++ b/tests/data/latex/groundtruth/example_01.tex.dclg @@ -1,4 +1,4 @@ - + \documentclass{article} diff --git a/tests/data/latex/groundtruth/example_02.tex.dclg b/tests/data/latex/groundtruth/example_02.tex.dclg index 6ab9fd8484..6d431a4d20 100644 --- a/tests/data/latex/groundtruth/example_02.tex.dclg +++ b/tests/data/latex/groundtruth/example_02.tex.dclg @@ -1,4 +1,4 @@ - + \documentclass{article} diff --git a/tests/data/md/groundtruth/escaped_characters.md.json b/tests/data/md/groundtruth/escaped_characters.md.json index 287450224f..826912662f 100644 --- a/tests/data/md/groundtruth/escaped_characters.md.json +++ b/tests/data/md/groundtruth/escaped_characters.md.json @@ -4,7 +4,7 @@ "name": "escaped_characters", "origin": { "mimetype": "text/html", - "binary_hash": 18124772015084648739, + "binary_hash": 3824621944112159534, "filename": "escaped_characters.md" }, "furniture": { @@ -167,7 +167,7 @@ "orig": "& < > \" '", "text": "& < > \" '", "enumerated": true, - "marker": "" + "marker": "1." }, { "self_ref": "#/texts/5", @@ -208,8 +208,8 @@ "content_layer": "body", "label": "code", "prov": [], - "orig": "& < > \" '", - "text": "& < > \" '", + "orig": "& < > " '", + "text": "& < > " '", "captions": [], "references": [], "footnotes": [], @@ -240,8 +240,8 @@ "content_layer": "body", "label": "code", "prov": [], - "orig": "& < > \" '", - "text": "& < > \" '", + "orig": "& < > " '", + "text": "& < > " '", "captions": [], "references": [], "footnotes": [], diff --git a/tests/data/md/groundtruth/escaped_characters.md.md b/tests/data/md/groundtruth/escaped_characters.md.md index 84f40db5fe..2e99a936dd 100644 --- a/tests/data/md/groundtruth/escaped_characters.md.md +++ b/tests/data/md/groundtruth/escaped_characters.md.md @@ -13,13 +13,13 @@ Text: 00:16.000 ----> 00:18.000 & < > " ' # Inline code ``` -& < > " ' +& < > " ' ``` # Code block ``` -& < > " ' +& < > " ' ``` # Table diff --git a/tests/data/md/groundtruth/inline_and_formatting.md.yaml b/tests/data/md/groundtruth/inline_and_formatting.md.yaml index c6181a41cb..c746bee498 100644 --- a/tests/data/md/groundtruth/inline_and_formatting.md.yaml +++ b/tests/data/md/groundtruth/inline_and_formatting.md.yaml @@ -170,38 +170,46 @@ groups: parent: $ref: '#/body' self_ref: '#/groups/13' +- children: + - $ref: '#/groups/15' + content_layer: body + label: unspecified + name: rich_cell_group_0_0_0 + parent: + $ref: '#/tables/0' + self_ref: '#/groups/14' - children: - $ref: '#/texts/53' content_layer: body label: inline name: group parent: - $ref: '#/groups/15' - self_ref: '#/groups/14' + $ref: '#/groups/14' + self_ref: '#/groups/15' - children: - - $ref: '#/groups/14' + - $ref: '#/groups/17' content_layer: body label: unspecified - name: rich_cell_group_0_0_0 + name: rich_cell_group_0_1_0 parent: $ref: '#/tables/0' - self_ref: '#/groups/15' + self_ref: '#/groups/16' - children: - $ref: '#/texts/54' content_layer: body label: inline name: group parent: - $ref: '#/groups/17' - self_ref: '#/groups/16' + $ref: '#/groups/16' + self_ref: '#/groups/17' - children: - - $ref: '#/groups/16' + - $ref: '#/groups/19' content_layer: body label: unspecified - name: rich_cell_group_0_1_0 + name: rich_cell_group_0_0_2 parent: $ref: '#/tables/0' - self_ref: '#/groups/17' + self_ref: '#/groups/18' - children: - $ref: '#/texts/55' - $ref: '#/texts/56' @@ -209,16 +217,16 @@ groups: label: inline name: group parent: - $ref: '#/groups/19' - self_ref: '#/groups/18' + $ref: '#/groups/18' + self_ref: '#/groups/19' - children: - - $ref: '#/groups/18' + - $ref: '#/groups/21' content_layer: body label: unspecified - name: rich_cell_group_0_0_2 + name: rich_cell_group_0_0_3 parent: $ref: '#/tables/0' - self_ref: '#/groups/19' + self_ref: '#/groups/20' - children: - $ref: '#/texts/57' - $ref: '#/texts/58' @@ -226,16 +234,16 @@ groups: label: inline name: group parent: - $ref: '#/groups/21' - self_ref: '#/groups/20' + $ref: '#/groups/20' + self_ref: '#/groups/21' - children: - - $ref: '#/groups/20' + - $ref: '#/groups/23' content_layer: body label: unspecified - name: rich_cell_group_0_0_3 + name: rich_cell_group_0_0_4 parent: $ref: '#/tables/0' - self_ref: '#/groups/21' + self_ref: '#/groups/22' - children: - $ref: '#/texts/59' - $ref: '#/texts/60' @@ -243,16 +251,16 @@ groups: label: inline name: group parent: - $ref: '#/groups/23' - self_ref: '#/groups/22' + $ref: '#/groups/22' + self_ref: '#/groups/23' - children: - - $ref: '#/groups/22' + - $ref: '#/groups/25' content_layer: body label: unspecified - name: rich_cell_group_0_0_4 + name: rich_cell_group_0_0_5 parent: $ref: '#/tables/0' - self_ref: '#/groups/23' + self_ref: '#/groups/24' - children: - $ref: '#/texts/61' - $ref: '#/texts/62' @@ -263,16 +271,16 @@ groups: label: inline name: group parent: - $ref: '#/groups/25' - self_ref: '#/groups/24' + $ref: '#/groups/24' + self_ref: '#/groups/25' - children: - - $ref: '#/groups/24' + - $ref: '#/groups/27' content_layer: body label: unspecified - name: rich_cell_group_0_0_5 + name: rich_cell_group_0_0_6 parent: $ref: '#/tables/0' - self_ref: '#/groups/25' + self_ref: '#/groups/26' - children: - $ref: '#/texts/66' - $ref: '#/texts/67' @@ -281,16 +289,16 @@ groups: label: inline name: group parent: - $ref: '#/groups/27' - self_ref: '#/groups/26' + $ref: '#/groups/26' + self_ref: '#/groups/27' - children: - - $ref: '#/groups/26' + - $ref: '#/groups/29' content_layer: body label: unspecified - name: rich_cell_group_0_0_6 + name: rich_cell_group_0_0_7 parent: $ref: '#/tables/0' - self_ref: '#/groups/27' + self_ref: '#/groups/28' - children: - $ref: '#/texts/69' - $ref: '#/texts/70' @@ -298,15 +306,7 @@ groups: label: inline name: group parent: - $ref: '#/groups/29' - self_ref: '#/groups/28' -- children: - - $ref: '#/groups/28' - content_layer: body - label: unspecified - name: rich_cell_group_0_0_7 - parent: - $ref: '#/tables/0' + $ref: '#/groups/28' self_ref: '#/groups/29' key_value_items: [] name: inline_and_formatting @@ -321,14 +321,14 @@ tables: - annotations: [] captions: [] children: - - $ref: '#/groups/15' - - $ref: '#/groups/17' - - $ref: '#/groups/19' - - $ref: '#/groups/21' - - $ref: '#/groups/23' - - $ref: '#/groups/25' - - $ref: '#/groups/27' - - $ref: '#/groups/29' + - $ref: '#/groups/14' + - $ref: '#/groups/16' + - $ref: '#/groups/18' + - $ref: '#/groups/20' + - $ref: '#/groups/22' + - $ref: '#/groups/24' + - $ref: '#/groups/26' + - $ref: '#/groups/28' content_layer: body data: grid: @@ -518,7 +518,7 @@ tables: end_row_offset_idx: 1 fillable: false ref: - $ref: '#/groups/15' + $ref: '#/groups/14' row_header: false row_section: false row_span: 1 @@ -531,7 +531,7 @@ tables: end_row_offset_idx: 1 fillable: false ref: - $ref: '#/groups/17' + $ref: '#/groups/16' row_header: false row_section: false row_span: 1 @@ -566,7 +566,7 @@ tables: end_row_offset_idx: 3 fillable: false ref: - $ref: '#/groups/19' + $ref: '#/groups/18' row_header: false row_section: false row_span: 1 @@ -590,7 +590,7 @@ tables: end_row_offset_idx: 4 fillable: false ref: - $ref: '#/groups/21' + $ref: '#/groups/20' row_header: false row_section: false row_span: 1 @@ -614,7 +614,7 @@ tables: end_row_offset_idx: 5 fillable: false ref: - $ref: '#/groups/23' + $ref: '#/groups/22' row_header: false row_section: false row_span: 1 @@ -638,7 +638,7 @@ tables: end_row_offset_idx: 6 fillable: false ref: - $ref: '#/groups/25' + $ref: '#/groups/24' row_header: false row_section: false row_span: 1 @@ -662,7 +662,7 @@ tables: end_row_offset_idx: 7 fillable: false ref: - $ref: '#/groups/27' + $ref: '#/groups/26' row_header: false row_section: false row_span: 1 @@ -686,7 +686,7 @@ tables: end_row_offset_idx: 8 fillable: false ref: - $ref: '#/groups/29' + $ref: '#/groups/28' row_header: false row_section: false row_span: 1 @@ -1330,7 +1330,7 @@ texts: label: text orig: Bold Heading parent: - $ref: '#/groups/14' + $ref: '#/groups/15' prov: [] self_ref: '#/texts/53' text: Bold Heading @@ -1345,7 +1345,7 @@ texts: label: text orig: Italic Heading parent: - $ref: '#/groups/16' + $ref: '#/groups/17' prov: [] self_ref: '#/texts/54' text: Italic Heading @@ -1360,7 +1360,7 @@ texts: label: text orig: C parent: - $ref: '#/groups/18' + $ref: '#/groups/19' prov: [] self_ref: '#/texts/55' text: C @@ -1369,7 +1369,7 @@ texts: label: text orig: Cadre parent: - $ref: '#/groups/18' + $ref: '#/groups/19' prov: [] self_ref: '#/texts/56' text: Cadre @@ -1378,7 +1378,7 @@ texts: label: text orig: foo parent: - $ref: '#/groups/20' + $ref: '#/groups/21' prov: [] self_ref: '#/texts/57' text: foo @@ -1393,7 +1393,7 @@ texts: label: text orig: bar parent: - $ref: '#/groups/20' + $ref: '#/groups/21' prov: [] self_ref: '#/texts/58' text: bar @@ -1408,7 +1408,7 @@ texts: label: text orig: A parent: - $ref: '#/groups/22' + $ref: '#/groups/23' prov: [] self_ref: '#/texts/59' text: A @@ -1423,7 +1423,7 @@ texts: label: text orig: B parent: - $ref: '#/groups/22' + $ref: '#/groups/23' prov: [] self_ref: '#/texts/60' text: B @@ -1438,7 +1438,7 @@ texts: label: text orig: italic parent: - $ref: '#/groups/24' + $ref: '#/groups/25' prov: [] self_ref: '#/texts/61' text: italic @@ -1447,7 +1447,7 @@ texts: label: text orig: and parent: - $ref: '#/groups/24' + $ref: '#/groups/25' prov: [] self_ref: '#/texts/62' text: and @@ -1462,7 +1462,7 @@ texts: label: text orig: bold parent: - $ref: '#/groups/24' + $ref: '#/groups/25' prov: [] self_ref: '#/texts/63' text: bold @@ -1471,7 +1471,7 @@ texts: label: text orig: and parent: - $ref: '#/groups/24' + $ref: '#/groups/25' prov: [] self_ref: '#/texts/64' text: and @@ -1486,7 +1486,7 @@ texts: label: text orig: strikethrough parent: - $ref: '#/groups/24' + $ref: '#/groups/25' prov: [] self_ref: '#/texts/65' text: strikethrough @@ -1495,7 +1495,7 @@ texts: label: text orig: run parent: - $ref: '#/groups/26' + $ref: '#/groups/27' prov: [] self_ref: '#/texts/66' text: run @@ -1507,7 +1507,7 @@ texts: label: code orig: build parent: - $ref: '#/groups/26' + $ref: '#/groups/27' prov: [] references: [] self_ref: '#/texts/67' @@ -1517,7 +1517,7 @@ texts: label: text orig: now parent: - $ref: '#/groups/26' + $ref: '#/groups/27' prov: [] self_ref: '#/texts/68' text: now @@ -1526,7 +1526,7 @@ texts: label: text orig: visit parent: - $ref: '#/groups/28' + $ref: '#/groups/29' prov: [] self_ref: '#/texts/69' text: visit @@ -1536,7 +1536,7 @@ texts: label: text orig: Docling parent: - $ref: '#/groups/28' + $ref: '#/groups/29' prov: [] self_ref: '#/texts/70' text: Docling diff --git a/tests/data/pdf/groundtruth/2203.01017v2.json b/tests/data/pdf/groundtruth/2203.01017v2.json index 19f9f98d5f..8f249419ff 100644 --- a/tests/data/pdf/groundtruth/2203.01017v2.json +++ b/tests/data/pdf/groundtruth/2203.01017v2.json @@ -14750,7 +14750,7 @@ "l": 74.08, "t": 714.17, "r": 519.44, - "b": 607.41, + "b": 607.43, "coord_origin": "BOTTOMLEFT" }, "charspan": [ @@ -14901,7 +14901,7 @@ "l": 53.61, "t": 534.01, "r": 285.09, - "b": 286.34, + "b": 286.35, "coord_origin": "BOTTOMLEFT" }, "charspan": [ diff --git a/tests/data/pdf/groundtruth/2206.01062.json b/tests/data/pdf/groundtruth/2206.01062.json index 10eb5bb5d2..729d9c0695 100644 --- a/tests/data/pdf/groundtruth/2206.01062.json +++ b/tests/data/pdf/groundtruth/2206.01062.json @@ -14254,10 +14254,10 @@ { "page_no": 5, "bbox": { - "l": 315.39, - "t": 710.85, - "r": 564.93, - "b": 332.48, + "l": 315.4, + "t": 710.84, + "r": 564.94, + "b": 332.47, "coord_origin": "BOTTOMLEFT" }, "charspan": [ @@ -14432,10 +14432,10 @@ { "page_no": 9, "bbox": { - "l": 53.89, - "t": 707.3, - "r": 549.06, - "b": 343.36, + "l": 53.9, + "t": 707.26, + "r": 549.24, + "b": 343.33, "coord_origin": "BOTTOMLEFT" }, "charspan": [ diff --git a/tests/data/pdf/groundtruth/2305.03393v1.json b/tests/data/pdf/groundtruth/2305.03393v1.json index dbc9f23896..32bf80c493 100644 --- a/tests/data/pdf/groundtruth/2305.03393v1.json +++ b/tests/data/pdf/groundtruth/2305.03393v1.json @@ -10572,9 +10572,9 @@ { "page_no": 2, "bbox": { - "l": 149.23, + "l": 149.24, "t": 583.73, - "r": 464.05, + "r": 464.06, "b": 366.83, "coord_origin": "BOTTOMLEFT" }, @@ -10781,9 +10781,9 @@ { "page_no": 7, "bbox": { - "l": 164.39, - "t": 628.5, - "r": 449.05, + "l": 164.4, + "t": 628.52, + "r": 449.07, "b": 511.83, "coord_origin": "BOTTOMLEFT" }, @@ -11007,7 +11007,7 @@ { "page_no": 8, "bbox": { - "l": 141.33, + "l": 141.34, "t": 284.93, "r": 473.21, "b": 198.42, @@ -11284,8 +11284,8 @@ { "page_no": 10, "bbox": { - "l": 162.33, - "t": 347.93, + "l": 162.34, + "t": 347.95, "r": 451.66, "b": 128.75, "coord_origin": "BOTTOMLEFT" @@ -11354,10 +11354,10 @@ { "page_no": 11, "bbox": { - "l": 167.62, - "t": 609.1, + "l": 167.61, + "t": 609.09, "r": 446.4, - "b": 158.46, + "b": 158.48, "coord_origin": "BOTTOMLEFT" }, "charspan": [ diff --git a/tests/data/pdf/groundtruth/amt_handbook_sample.json b/tests/data/pdf/groundtruth/amt_handbook_sample.json index 8ee1a32907..07f6799b02 100644 --- a/tests/data/pdf/groundtruth/amt_handbook_sample.json +++ b/tests/data/pdf/groundtruth/amt_handbook_sample.json @@ -821,10 +821,10 @@ { "page_no": 1, "bbox": { - "l": 70.57, + "l": 70.56, "t": 243.07, "r": 310.07, - "b": 79.23, + "b": 79.21, "coord_origin": "BOTTOMLEFT" }, "charspan": [ @@ -877,9 +877,9 @@ "page_no": 1, "bbox": { "l": 320.55, - "t": 352.24, + "t": 352.23, "r": 559.54, - "b": 80.58, + "b": 80.59, "coord_origin": "BOTTOMLEFT" }, "charspan": [ diff --git a/tests/data/pdf/groundtruth/elsevier-00.md b/tests/data/pdf/groundtruth/elsevier-00.md index 0bec003ae0..26b5747666 100644 --- a/tests/data/pdf/groundtruth/elsevier-00.md +++ b/tests/data/pdf/groundtruth/elsevier-00.md @@ -374,80 +374,80 @@ No data was used for the research described in the article. ## References -- [Antunes, M., 1964. O Neocret´acico e o Cenoz´oico do Litoral de Angola. Junta de Investigaç˜ao do Ultramar, Lisboa, 255pp.](http://refhub.elsevier.com/S1464-343X(26)00366-3/sref1) +- [Antunes, M., 1964. O Neocret´acico e o Cenoz´oico do Litoral de Angola. Junta de Investigaç˜ao do Ultramar, Lisboa, 255pp.](http://refhub.elsevier.com/S1464-343X%2826%2900366-3/sref1) - Arai, M., 2014. Aptian/Albian (Early Cretaceous) paleogeography of the South Atlantic: a paleontological perspective. Braz. J. Geol. 44 (2), 339-350. https://doi.org/ 10.5327/Z2317-4889201400020012. -- [Araújo, A.G., Guimar˜aes, F., 1992. Geologia de Angola, Notícia explicativa da Carta Geol´ogica `a escala 1: 1 000 000. Serviço Geol´ogico de Angola, Luanda 140.](http://refhub.elsevier.com/S1464-343X(26)00366-3/sref3) -- [Araújo, A.G., Perevalov, O.V., Jukov, R.A., 1988. Folha 4 da Carta Geol´ogica de Angola `a escala 1:1 000 000. República Popular de Angola. Minist´erio da Industria. Instituto Nacional de Geologia.](http://refhub.elsevier.com/S1464-343X(26)00366-3/sref4) -- [Brilha, J., 2016. Inventory and quantitative assessment of geosites and geodiversity sites: a review. Geoheritage 8, 119-134.](http://refhub.elsevier.com/S1464-343X(26)00366-3/sref5) -- [Brilha, J., 2018. Geoheritage: inventories and evaluation. In: Reynard, Brilha (Eds.), Geoheritage: Assessment, Protection. and Management. Elsevier, pp. 69-85.](http://refhub.elsevier.com/S1464-343X(26)00366-3/sref6) -- [Brognon, G.P., Verrier, G.R., 1966. Oil and geology in Cuanza Basin of Angola. AAPG (Am. Assoc. Pet. Geol.) Bull. 50 (1), 108-158.](http://refhub.elsevier.com/S1464-343X(26)00366-3/sref7) -- [Brownfield, M.E., Charpentier, R.R., 2006. Geology and Total Petroleum Systems of the West-Central Coastal Province (7203), West Africa, 2207-B. U.S. Geological Survey Bulletin, pp. 1-52.](http://refhub.elsevier.com/S1464-343X(26)00366-3/sref8) -- [Buta-Neto, A., Tavares, T.S., Quesne, D., Guiraud, M., Meister, C., David, B., Morais, M.- L., 2006. Synth`ese pr´eliminaire des travaux men´es sur le bassin de Benguela (Sud Angola): implications s´edimentologiques et structurales. Afr. Geosci. Rev. 13 (3), 239-250.](http://refhub.elsevier.com/S1464-343X(26)00366-3/sref9) -- [Carvalho, H., 1961. Contribuiç˜ao para o conhecimento geol´ogico de Angola. Serviços de Geologia e Minas de Angola. Luanda.](http://refhub.elsevier.com/S1464-343X(26)00366-3/sref10) -- [Chaboureau, A.-C., Guillocheau, F., Robin, C., Rohais, S., Moulin, M., Aslanian, D., 2013. Paleogeographic evolution of the central segment of the South Atlantic during Early Cretaceous times: paleotopographic and geodynamic implications. Tectonophysics 604, 191-223.](http://refhub.elsevier.com/S1464-343X(26)00366-3/sref11) -- [Collignon, M., 1978. Ammonites du Cr´etac´e Moyen-Sup´erieur de l'Angola. 2◦ Centen´ario Academia das Ciˆencias. Estudos de Geologia, Paleontologia e de Micologia. Academia das Ciˆencias, Lisboa, pp. 1-75.](http://refhub.elsevier.com/S1464-343X(26)00366-3/sref12) -- [Cooper, M.R., 1972. The Cretaceous stratigraphy of San Nicolau and Salinas, Angola. Ann. S. Afr. Mus. 6, 245-251.](http://refhub.elsevier.com/S1464-343X(26)00366-3/sref13) -- [Cooper, M.R., 1982. Lower Cretaceous (Middle Albian) ammonites from Dombe Grande. Angola. Ann. S. Af. Mus. 89, 265-314.](http://refhub.elsevier.com/S1464-343X(26)00366-3/sref14) -- [Cooper, M.R., Kennedy, W.J., 1979. Upper most Albian (Stoliczkaia dispar Zone) ammonites from the Angolan littoral. Ann. S. Afr. Mus. 77, 175-308.](http://refhub.elsevier.com/S1464-343X(26)00366-3/sref15) +- [Araújo, A.G., Guimar˜aes, F., 1992. Geologia de Angola, Notícia explicativa da Carta Geol´ogica `a escala 1: 1 000 000. Serviço Geol´ogico de Angola, Luanda 140.](http://refhub.elsevier.com/S1464-343X%2826%2900366-3/sref3) +- [Araújo, A.G., Perevalov, O.V., Jukov, R.A., 1988. Folha 4 da Carta Geol´ogica de Angola `a escala 1:1 000 000. República Popular de Angola. Minist´erio da Industria. Instituto Nacional de Geologia.](http://refhub.elsevier.com/S1464-343X%2826%2900366-3/sref4) +- [Brilha, J., 2016. Inventory and quantitative assessment of geosites and geodiversity sites: a review. Geoheritage 8, 119-134.](http://refhub.elsevier.com/S1464-343X%2826%2900366-3/sref5) +- [Brilha, J., 2018. Geoheritage: inventories and evaluation. In: Reynard, Brilha (Eds.), Geoheritage: Assessment, Protection. and Management. Elsevier, pp. 69-85.](http://refhub.elsevier.com/S1464-343X%2826%2900366-3/sref6) +- [Brognon, G.P., Verrier, G.R., 1966. Oil and geology in Cuanza Basin of Angola. AAPG (Am. Assoc. Pet. Geol.) Bull. 50 (1), 108-158.](http://refhub.elsevier.com/S1464-343X%2826%2900366-3/sref7) +- [Brownfield, M.E., Charpentier, R.R., 2006. Geology and Total Petroleum Systems of the West-Central Coastal Province (7203), West Africa, 2207-B. U.S. Geological Survey Bulletin, pp. 1-52.](http://refhub.elsevier.com/S1464-343X%2826%2900366-3/sref8) +- [Buta-Neto, A., Tavares, T.S., Quesne, D., Guiraud, M., Meister, C., David, B., Morais, M.- L., 2006. Synth`ese pr´eliminaire des travaux men´es sur le bassin de Benguela (Sud Angola): implications s´edimentologiques et structurales. Afr. Geosci. Rev. 13 (3), 239-250.](http://refhub.elsevier.com/S1464-343X%2826%2900366-3/sref9) +- [Carvalho, H., 1961. Contribuiç˜ao para o conhecimento geol´ogico de Angola. Serviços de Geologia e Minas de Angola. Luanda.](http://refhub.elsevier.com/S1464-343X%2826%2900366-3/sref10) +- [Chaboureau, A.-C., Guillocheau, F., Robin, C., Rohais, S., Moulin, M., Aslanian, D., 2013. Paleogeographic evolution of the central segment of the South Atlantic during Early Cretaceous times: paleotopographic and geodynamic implications. Tectonophysics 604, 191-223.](http://refhub.elsevier.com/S1464-343X%2826%2900366-3/sref11) +- [Collignon, M., 1978. Ammonites du Cr´etac´e Moyen-Sup´erieur de l'Angola. 2◦ Centen´ario Academia das Ciˆencias. Estudos de Geologia, Paleontologia e de Micologia. Academia das Ciˆencias, Lisboa, pp. 1-75.](http://refhub.elsevier.com/S1464-343X%2826%2900366-3/sref12) +- [Cooper, M.R., 1972. The Cretaceous stratigraphy of San Nicolau and Salinas, Angola. Ann. S. Afr. Mus. 6, 245-251.](http://refhub.elsevier.com/S1464-343X%2826%2900366-3/sref13) +- [Cooper, M.R., 1982. Lower Cretaceous (Middle Albian) ammonites from Dombe Grande. Angola. Ann. S. Af. Mus. 89, 265-314.](http://refhub.elsevier.com/S1464-343X%2826%2900366-3/sref14) +- [Cooper, M.R., Kennedy, W.J., 1979. Upper most Albian (Stoliczkaia dispar Zone) ammonites from the Angolan littoral. Ann. S. Afr. Mus. 77, 175-308.](http://refhub.elsevier.com/S1464-343X%2826%2900366-3/sref15) - Dodd, S.C., Mac Niocaill, C., Muxworthya, A.R., 2015. Long duration (> 4 Ma) and steady-state volcanic activity in the early Cretaceous Parana-Etendeka Large Igneous Province: new palaeomagnetic data from Namibia. Earth Planet Sci. Lett. 414 (15), 16-29. https://doi.org/10.1016/j.epsl.2015.01.009. - Dowling, R., Newsome, D. (Eds.), 2018. Handbook of Geotourism. Edward Elgar Publishing. - Duarte, L., 2004. The geological heritage of the Lower Jurassic of Central Portugal: selected sites, inventory and main scientific arguments. Riv. Ital. Paleontol. Stratigr. 110, 381-388. https://doi.org/10.13130/2039-4942/6315. - Duarte, L.V., 2019. De regresso `a geologia de Angola: I. A zona costeira de Luanda ao Cuanza Sul. Rev. Ciˆencia Elem. V7 (4), 78. https://rce.casadasciencias.org/rceapp/ art/2019/078/. - Duarte, L.V., 2020. De regresso `a geologia de Angola: II. O Meso-Cenozoico da Bacia de Benguela. Rev. Ciˆencia Elem. V8 (2), 28. https://doi.org/10.24927/rce2020.028. -- [Duarte, L.V., Callapez, P., Kalukembe, A., Gonçalves, A., Segundo, J., Lap˜ao, L., Prata, M. E., Bandeira, M., Cristino, A.T., 2014. Do Proterozoico da Serra da Leba (Planalto da Humpata) ao Cret´acico da Bacia de Benguela (Angola). A geologia de lugares com elevado valor paisagístico. Comunicaç˜oes Geol´ogicas 101, 1255-1259. Especial III,.](http://refhub.elsevier.com/S1464-343X(26)00366-3/sref21) -- [Duarte, L.V., Silva, R.L., Felix, F., Comas-Rengifo, M.J., Rocha, R.B., Mattioli, E., Paredes, R., Mendonca Filho, J.G., Cabral, M.C., 2017. The Jurassic of the Peniche Peninsula (Portugal): scientific, educational and science popularization relevance. Rev. Soc. Geol. Espana 30, 55-70.](http://refhub.elsevier.com/S1464-343X(26)00366-3/sref22) +- [Duarte, L.V., Callapez, P., Kalukembe, A., Gonçalves, A., Segundo, J., Lap˜ao, L., Prata, M. E., Bandeira, M., Cristino, A.T., 2014. Do Proterozoico da Serra da Leba (Planalto da Humpata) ao Cret´acico da Bacia de Benguela (Angola). A geologia de lugares com elevado valor paisagístico. Comunicaç˜oes Geol´ogicas 101, 1255-1259. Especial III,.](http://refhub.elsevier.com/S1464-343X%2826%2900366-3/sref21) +- [Duarte, L.V., Silva, R.L., Felix, F., Comas-Rengifo, M.J., Rocha, R.B., Mattioli, E., Paredes, R., Mendonca Filho, J.G., Cabral, M.C., 2017. The Jurassic of the Peniche Peninsula (Portugal): scientific, educational and science popularization relevance. Rev. Soc. Geol. Espana 30, 55-70.](http://refhub.elsevier.com/S1464-343X%2826%2900366-3/sref22) - Fauth, G., Bruno, M.D.R., Villegas-Martín, J., Savian, J.F., Guerra, R.D.M., Krahl, G., Lima, F.H.O., Strohschoen Jr., O., Mello, R.G., Lopes, F.M., Leandro, C.G., Aguiar, E. S., 2021. Drilling the Aptian-Albian of the Sergipe-Alagoas Basin, Brazil: paleobiogeographic and paleoceanographic studies in the South Atlantic. Sci. Drill. 29, 1-17. https://doi.org/10.5194/sd-29-1-2021. -- [Galv˜ao, C.F., Portugal, A., 1971. Carta Geol´ogica 227-228 Lobito `a escala 1:100.000. Direcç˜ao Provincial dos Serviços de Geologia e Minas.](http://refhub.elsevier.com/S1464-343X(26)00366-3/sref24) -- [Galv˜ao, C.F., Silva, Z., 1972. Notícia Explicativa da Carta Geol´ogica de Angola, escala 1: 100 000, Folha n◦ 227-228-Lobito. Direcç˜ao Provincial dos Serviços de Geologia e Minas. Luanda, 40 p.](http://refhub.elsevier.com/S1464-343X(26)00366-3/sref25) -- [Gonçalves, A.L., 2015. An´alise do patrim´onio geol´ogico e potencial geoturístico da faixa costeira entre o Rio Tapado e a Restinga do Lobito. University of Coimbra, Coimbra, Portugal. Unpublished Master Thesis.](http://refhub.elsevier.com/S1464-343X(26)00366-3/sref26) -- [Gordon, J.E., 2018. Geoheritage, geotourism and the cultural landscape: enhancing the visitor experience and promoting geoconservation. Geosciences 8 (4), 136.](http://refhub.elsevier.com/S1464-343X(26)00366-3/sref27) +- [Galv˜ao, C.F., Portugal, A., 1971. Carta Geol´ogica 227-228 Lobito `a escala 1:100.000. Direcç˜ao Provincial dos Serviços de Geologia e Minas.](http://refhub.elsevier.com/S1464-343X%2826%2900366-3/sref24) +- [Galv˜ao, C.F., Silva, Z., 1972. Notícia Explicativa da Carta Geol´ogica de Angola, escala 1: 100 000, Folha n◦ 227-228-Lobito. Direcç˜ao Provincial dos Serviços de Geologia e Minas. Luanda, 40 p.](http://refhub.elsevier.com/S1464-343X%2826%2900366-3/sref25) +- [Gonçalves, A.L., 2015. An´alise do patrim´onio geol´ogico e potencial geoturístico da faixa costeira entre o Rio Tapado e a Restinga do Lobito. University of Coimbra, Coimbra, Portugal. Unpublished Master Thesis.](http://refhub.elsevier.com/S1464-343X%2826%2900366-3/sref26) +- [Gordon, J.E., 2018. Geoheritage, geotourism and the cultural landscape: enhancing the visitor experience and promoting geoconservation. Geosciences 8 (4), 136.](http://refhub.elsevier.com/S1464-343X%2826%2900366-3/sref27) - Gordon, J.E., Crofts, R., Díaz-Martínez, E., Woo, K.S., 2021. Including geoconservation in the management of protected and conserved areas matters for all of nature and people. International Journal of Geoheritage and Parks 9 (3), 323-334. https://doi. org/10.1016/j.ijgeop.2021.05.003. -- [Gray, J.M., 2013. Geodiversity: Valuing and Conserving Abiotic Nature, second ed. John Wiley & Sons, Chichester.](http://refhub.elsevier.com/S1464-343X(26)00366-3/sref29) -- [Guia, J., 2016. Estudo integrado do patrim´onio geol´ogico e potential geoturístico da faixa costeira envolvente das praias da Chitamba a Quicombo (Sumbe, Cuanza Sul, Angola). University of Coimbra, Coimbra, Portugal. Unpublished Master Thesis.](http://refhub.elsevier.com/S1464-343X(26)00366-3/sref30) -- [Guiraud, M., Buta-Neto, A., Quesne, D., 2010. Segmentation and differential post-rift uplift at the Angola margin as recorded by the transform-rifted Benguela and oblique-to-orthogonal-rifted Kwanza basins. Mar. Petrol. Geol. 27, 1040-1068.](http://refhub.elsevier.com/S1464-343X(26)00366-3/sref31) -- [Haas, O., 1942. The vernay collection of Cretaceous (Albian) ammonites from Angola. Bull. Am. Mus. Nat. Hist. 81 (1), 1-224.](http://refhub.elsevier.com/S1464-343X(26)00366-3/sref32) -- [Heine, C., Zoethout, J., Müller, R.D., 2013. Kinematics of the South Atlantic rift. Solid Earth 4, 215-253.](http://refhub.elsevier.com/S1464-343X(26)00366-3/sref33) -- [Henriques, M.H., Tavares, A.O., Bala, A.L.M., 2013. The geological heritage of Tundavala (Angola): an integrated approach to its characterisation. J. Afr. Earth Sci. 88, 62-71. Hose, T.A., 2012. 3G's for modern geotourism. Geoheritage 4, 7-24.](http://refhub.elsevier.com/S1464-343X(26)00366-3/sref34) -- [Hudec, M.R., Jackson, M.P.A., 2002. Structural segmentation, inversion, and salt tectonics on a passive margin: evolution of the Inner Kwanza Basin, Angola. Geol. Soc. Am. Bull. 114, 1222-1244.](http://refhub.elsevier.com/S1464-343X(26)00366-3/sref36) -- [IUGS, 2023. Guidelines for the Assessment of the International Significance of Geological Heritage in UNESCO Global Geopark Applications. UNESCO Global Geoparks/ International Commission on Geoheritage. July 2023.](http://refhub.elsevier.com/S1464-343X(26)00366-3/sref37) +- [Gray, J.M., 2013. Geodiversity: Valuing and Conserving Abiotic Nature, second ed. John Wiley & Sons, Chichester.](http://refhub.elsevier.com/S1464-343X%2826%2900366-3/sref29) +- [Guia, J., 2016. Estudo integrado do patrim´onio geol´ogico e potential geoturístico da faixa costeira envolvente das praias da Chitamba a Quicombo (Sumbe, Cuanza Sul, Angola). University of Coimbra, Coimbra, Portugal. Unpublished Master Thesis.](http://refhub.elsevier.com/S1464-343X%2826%2900366-3/sref30) +- [Guiraud, M., Buta-Neto, A., Quesne, D., 2010. Segmentation and differential post-rift uplift at the Angola margin as recorded by the transform-rifted Benguela and oblique-to-orthogonal-rifted Kwanza basins. Mar. Petrol. Geol. 27, 1040-1068.](http://refhub.elsevier.com/S1464-343X%2826%2900366-3/sref31) +- [Haas, O., 1942. The vernay collection of Cretaceous (Albian) ammonites from Angola. Bull. Am. Mus. Nat. Hist. 81 (1), 1-224.](http://refhub.elsevier.com/S1464-343X%2826%2900366-3/sref32) +- [Heine, C., Zoethout, J., Müller, R.D., 2013. Kinematics of the South Atlantic rift. Solid Earth 4, 215-253.](http://refhub.elsevier.com/S1464-343X%2826%2900366-3/sref33) +- [Henriques, M.H., Tavares, A.O., Bala, A.L.M., 2013. The geological heritage of Tundavala (Angola): an integrated approach to its characterisation. J. Afr. Earth Sci. 88, 62-71. Hose, T.A., 2012. 3G's for modern geotourism. Geoheritage 4, 7-24.](http://refhub.elsevier.com/S1464-343X%2826%2900366-3/sref34) +- [Hudec, M.R., Jackson, M.P.A., 2002. Structural segmentation, inversion, and salt tectonics on a passive margin: evolution of the Inner Kwanza Basin, Angola. Geol. Soc. Am. Bull. 114, 1222-1244.](http://refhub.elsevier.com/S1464-343X%2826%2900366-3/sref36) +- [IUGS, 2023. Guidelines for the Assessment of the International Significance of Geological Heritage in UNESCO Global Geopark Applications. UNESCO Global Geoparks/ International Commission on Geoheritage. July 2023.](http://refhub.elsevier.com/S1464-343X%2826%2900366-3/sref37) - Jerram, D.A., Sharp, I.R., Torsvik, T.H., Poulsen, R., Watton, T., Freitag, U., Halton, A., Sherlock, S.C., Malley, J.A.S., Finley, A., Roberge, J., Swart, R., Puigdefabregas, C., Ferreira, C.H., Machado, V., 2019. Volcanic constraints on the unzipping of Africa from South America: insights from new geochronological controls along the Angola margin. Tectonophysics 760, 252-266. https://doi.org/10.1016/j. [tecto.2018.07.027.](https://doi.org/10.1016/j.tecto.2018.07.027) -- [Lap˜ao, L.G.P., Pereira, E.S., 1971. Notícia Explicativa da Carta Geol´ogica de Angola, `a escala 1:100 000, Folha N◦ 206, Egito Praia. Direcç˜ao Provincial dos Serviços de Geologia e Minas, Luanda, p. 42.](http://refhub.elsevier.com/S1464-343X(26)00366-3/sref43) -- [Lap˜ao, L.G.P., Sim˜oes, M.C., 1972. Notícia Explicativa da Carta Geol´ogica de Angola, `a escala 1:100 000, Folha N◦ 184, Novo Redondo. Direcç˜ao Provincial dos Serviços de Geologia e Minas, Luanda, p. 58.](http://refhub.elsevier.com/S1464-343X(26)00366-3/sref44) -- [Lap˜ao, L.P., Galv˜ao, C.F., 1971. Carta Geol´ogica 206 - Egito-Praia `a escala 1:100 000. Direcç˜ao Provincial dos Serviços de Geologia e Minas.](http://refhub.elsevier.com/S1464-343X(26)00366-3/sref39) -- [Lap˜ao, L.P., Galv˜ao, C.F., 1972. Carta Geol´ogica 184 - Novo Redondo `a escala 1:100 000. Direcç˜ao Provincial dos Serviços de Geologia e Minas.](http://refhub.elsevier.com/S1464-343X(26)00366-3/sref40) +- [Lap˜ao, L.G.P., Pereira, E.S., 1971. Notícia Explicativa da Carta Geol´ogica de Angola, `a escala 1:100 000, Folha N◦ 206, Egito Praia. Direcç˜ao Provincial dos Serviços de Geologia e Minas, Luanda, p. 42.](http://refhub.elsevier.com/S1464-343X%2826%2900366-3/sref43) +- [Lap˜ao, L.G.P., Sim˜oes, M.C., 1972. Notícia Explicativa da Carta Geol´ogica de Angola, `a escala 1:100 000, Folha N◦ 184, Novo Redondo. Direcç˜ao Provincial dos Serviços de Geologia e Minas, Luanda, p. 58.](http://refhub.elsevier.com/S1464-343X%2826%2900366-3/sref44) +- [Lap˜ao, L.P., Galv˜ao, C.F., 1971. Carta Geol´ogica 206 - Egito-Praia `a escala 1:100 000. Direcç˜ao Provincial dos Serviços de Geologia e Minas.](http://refhub.elsevier.com/S1464-343X%2826%2900366-3/sref39) +- [Lap˜ao, L.P., Galv˜ao, C.F., 1972. Carta Geol´ogica 184 - Novo Redondo `a escala 1:100 000. Direcç˜ao Provincial dos Serviços de Geologia e Minas.](http://refhub.elsevier.com/S1464-343X%2826%2900366-3/sref40) - Lima, F.F., Brilha, J.B., Salamuni, E., 2010. Inventorying geological heritage in large territories: a methodological proposal applied to Brazil. Geoheritage 2, 91-99. https://doi.org/10.1007/s12371-010-0014-9. -- [Lopes, F.C., Ramos, A.M., Callapez, P.M., Andrade, P.S., Duarte, L.V., 2024. Geoheritage of the iconic EN280 leba road (Huila Plateau, Southwestern Angola): inventory, geological characterization and quantitative assessment for outdoor educational activities. Land 13 (8), 1293.](http://refhub.elsevier.com/S1464-343X(26)00366-3/sref41) -- [Lopes, F.C., Ramos, A.M., Gomes, C.R., Ussombo, C.C., 2019. The geoheritage of Lubango-Tundavala road traverse in the Serra da Leba (SW Angola): outcrops characterization and numerical assessment for outdoor educational activities and geoconservation purpose. J. Afr. Earth Sci. 154, 55-70.](http://refhub.elsevier.com/S1464-343X(26)00366-3/sref42) +- [Lopes, F.C., Ramos, A.M., Callapez, P.M., Andrade, P.S., Duarte, L.V., 2024. Geoheritage of the iconic EN280 leba road (Huila Plateau, Southwestern Angola): inventory, geological characterization and quantitative assessment for outdoor educational activities. Land 13 (8), 1293.](http://refhub.elsevier.com/S1464-343X%2826%2900366-3/sref41) +- [Lopes, F.C., Ramos, A.M., Gomes, C.R., Ussombo, C.C., 2019. The geoheritage of Lubango-Tundavala road traverse in the Serra da Leba (SW Angola): outcrops characterization and numerical assessment for outdoor educational activities and geoconservation purpose. J. Afr. Earth Sci. 154, 55-70.](http://refhub.elsevier.com/S1464-343X%2826%2900366-3/sref42) - Luft-Souza, F., Fauth, G., Bruno, M.D.R., Mota, M.A.D.L., V´azquez-García, B., Santos Filho, M.A.B., Terra, G.J.S., 2022. Sergipe-Alagoas Basin, Northeast Brazil: a reference basin for studies on the early history of the South Atlantic Ocean. Earth Sci. Rev. 229, 104034. https://doi.org/10.1016/j.earscirev.2022.104034. -- [Masse, P., Laurent, O., 2016. Geological exploration of Angola from Sumbe to Namibe: a review at the frontier between Geology, natural resources and the history of Geology. C. R. Geosci. 348 (1), 80-88.](http://refhub.elsevier.com/S1464-343X(26)00366-3/sref47) +- [Masse, P., Laurent, O., 2016. Geological exploration of Angola from Sumbe to Namibe: a review at the frontier between Geology, natural resources and the history of Geology. C. R. Geosci. 348 (1), 80-88.](http://refhub.elsevier.com/S1464-343X%2826%2900366-3/sref47) - Mateus, O., Callapez, P.M., Polcyn, M.J., Schulp, A.S., Gonçalves, A.O., Jacobs, L.L., 2019. The fossil record of biodiversity in Angola through time: a paleontological perspective. In: Huntley, B., Russo, V., Lages, F., Ferrand, N. (Eds.), Biodiversity of Angola. Springer, Cham, pp. 53-76. https://doi.org/10.1007/978-3-030-03083-4\_4. -- [Meister, C., Buta, A., David, B., Tavares, T., 2011. Les ammonites de la limite AlbienC´enomanien dans la r´egion de Sumbe (Bassin de la Kwanza, Angola). Rev. Pal´eobiol. 30 (2), 685-781.](http://refhub.elsevier.com/S1464-343X(26)00366-3/sref50) +- [Meister, C., Buta, A., David, B., Tavares, T., 2011. Les ammonites de la limite AlbienC´enomanien dans la r´egion de Sumbe (Bassin de la Kwanza, Angola). Rev. Pal´eobiol. 30 (2), 685-781.](http://refhub.elsevier.com/S1464-343X%2826%2900366-3/sref50) - Menkem, E.F., Robert, E., Fowe Kwetche, P.G., Ntamak Nida, M.-J., Martin, J.E., 2025. The first definitive Albian ammonites from the Kribi-Campo sub-basin in Cameroon and biostratigraphic implications for the opening of the South Atlantic. J. Afr. Earth Sci. 228, 105659. https://doi.org/10.1016/j.jafrearsci.2025.105659. -- [Merino, E., Feria, M.C., Martin-Banda, R., Rodrigues, J.F., Pereira, E., Ferreira, E., 2019. Bloco UTE4 do Mapa Geol´ogico de Angola `a escala 1:500 000. República ee Angola, Minist´erio dos Recursos Minerais, Petr´oleo e G´as. Instituto Geol´ogico, de Angola.](http://refhub.elsevier.com/S1464-343X(26)00366-3/sref51) -- [Neto, K., Henriques, M.H., 2022. Geoconservation in Africa: state of the art and future challenges. Gondwana Res. 111, 1-15.](http://refhub.elsevier.com/S1464-343X(26)00366-3/sref52) -- [Neto, M.G.M., 1961. As bacias sedimentares de Benguela e Moçˆamedes. Bol. Serv. Geol. Minas Angola 3, 63-93.](http://refhub.elsevier.com/S1464-343X(26)00366-3/sref53) -- [Neto, M.G.M., 1964. O sedimentar costeiro de Angola. Algumas notas sobre o estado actual do seu conhecimento. Junta de Investigaç˜ao do Ultramar, pp. 1-232.](http://refhub.elsevier.com/S1464-343X(26)00366-3/sref54) -- [Peres, A.M., Moreira, A.F.D., 1970. Notícia Explicativa da Folha 185 - Vila Nova Do Seles da Carta Geol´ogica de Angola, `a escala 1: 100 000. Direcç˜ao Provincial dos Serviços de Geologia e Minas, 42 p.](http://refhub.elsevier.com/S1464-343X(26)00366-3/sref55) -- [Peres, A.M., Moreira, A.F.D., Lap˜ao, L.G.P., Galv˜ao, C.F., Sousa, J.P., Pereira, E.P., 1970. Carta Geol´ogica 185 - Vila Nova do Seles `a escala 1:100 000. Direcç˜ao Provincial dos Serviços de Geologia e Minas.](http://refhub.elsevier.com/S1464-343X(26)00366-3/sref56) +- [Merino, E., Feria, M.C., Martin-Banda, R., Rodrigues, J.F., Pereira, E., Ferreira, E., 2019. Bloco UTE4 do Mapa Geol´ogico de Angola `a escala 1:500 000. República ee Angola, Minist´erio dos Recursos Minerais, Petr´oleo e G´as. Instituto Geol´ogico, de Angola.](http://refhub.elsevier.com/S1464-343X%2826%2900366-3/sref51) +- [Neto, K., Henriques, M.H., 2022. Geoconservation in Africa: state of the art and future challenges. Gondwana Res. 111, 1-15.](http://refhub.elsevier.com/S1464-343X%2826%2900366-3/sref52) +- [Neto, M.G.M., 1961. As bacias sedimentares de Benguela e Moçˆamedes. Bol. Serv. Geol. Minas Angola 3, 63-93.](http://refhub.elsevier.com/S1464-343X%2826%2900366-3/sref53) +- [Neto, M.G.M., 1964. O sedimentar costeiro de Angola. Algumas notas sobre o estado actual do seu conhecimento. Junta de Investigaç˜ao do Ultramar, pp. 1-232.](http://refhub.elsevier.com/S1464-343X%2826%2900366-3/sref54) +- [Peres, A.M., Moreira, A.F.D., 1970. Notícia Explicativa da Folha 185 - Vila Nova Do Seles da Carta Geol´ogica de Angola, `a escala 1: 100 000. Direcç˜ao Provincial dos Serviços de Geologia e Minas, 42 p.](http://refhub.elsevier.com/S1464-343X%2826%2900366-3/sref55) +- [Peres, A.M., Moreira, A.F.D., Lap˜ao, L.G.P., Galv˜ao, C.F., Sousa, J.P., Pereira, E.P., 1970. Carta Geol´ogica 185 - Vila Nova do Seles `a escala 1:100 000. Direcç˜ao Provincial dos Serviços de Geologia e Minas.](http://refhub.elsevier.com/S1464-343X%2826%2900366-3/sref56) - P´erez-Díaz, L., Eagles, G., 2017. South Atlantic paleobathymetry since early Cretaceous. Sci. Rep. 7, 11819. https://doi.org/10.1038/s41598-017-11959-7. -- [Quesne, D., Buta-Neto, A., Bernard, D., Guiraud, M., 2009. Distribution of Albian clastic deposits in the Benguela basin (Angola): evidence of a Benguela palaeocurrent? Bull. Soc. Geol. France 180 (2), 117-129.](http://refhub.elsevier.com/S1464-343X(26)00366-3/sref58) -- [Republic of Angola, 2020. Law No. 8/20 of 16 April 2020 Approving the Environmental Conservation Areas Act. Di´ario Da República, I S´erie, No. 50, Assembleia Nacional. Luanda, Angola.](http://refhub.elsevier.com/S1464-343X(26)00366-3/sref59) +- [Quesne, D., Buta-Neto, A., Bernard, D., Guiraud, M., 2009. Distribution of Albian clastic deposits in the Benguela basin (Angola): evidence of a Benguela palaeocurrent? Bull. Soc. Geol. France 180 (2), 117-129.](http://refhub.elsevier.com/S1464-343X%2826%2900366-3/sref58) +- [Republic of Angola, 2020. Law No. 8/20 of 16 April 2020 Approving the Environmental Conservation Areas Act. Di´ario Da República, I S´erie, No. 50, Assembleia Nacional. Luanda, Angola.](http://refhub.elsevier.com/S1464-343X%2826%2900366-3/sref59) - Reynard, E., 2009. Geomorphosites and landscape. G´eomorphol. Relief, Process. Environ. 15 (3), 193-201. https://doi.org/10.4000/geomorphologie.7945. -- [Reynard, E., 2021. Geomorphosites: definitions, assessment and mapping. In: Reynard, E., Coratza, J., Regolini-Bissig, G. (Eds.), Geomorphosites, second ed. Friedrich Pfeil, München, pp. 13-27.](http://refhub.elsevier.com/S1464-343X(26)00366-3/sref61) -- [Reynard, E., Brilha, J. (Eds.), 2018. Geoheritage: Assessment, Protection. and Management. Elsevier, Amsterdam.](http://refhub.elsevier.com/S1464-343X(26)00366-3/sref62) -- [Rodrigues, C., Mendes, M., Pereira, Z., Nsungani, P.C., Fernandes, P., Duarte, L.V., Chitangueleca, B., Sebasti˜ao, L., Aida, B., Esposti, D.D., Freitas, D., 2024. Palynology of the Albian-Turonian sediments from the Sumbe region, Kwanza Basin (Angola): implications for paleoenvironment, paleoclimate, and paleogeography. Cretac. Res. 164, 105953.](http://refhub.elsevier.com/S1464-343X(26)00366-3/sref63) -- [Segundo, J.C., 2011. An´alise sedimentol´ogica e estratigr´afica da Formaç˜ao Quissonde (Albiano Superior) na regi˜ao do Lobito (Angola). University of Coimbra, Unpublished Master Thesis, p. 98.](http://refhub.elsevier.com/S1464-343X(26)00366-3/sref64) -- [Segundo, J.C., Duarte, L.V., Callapez, P.M., 2014. Litostratigrafia da sucess˜ao margocalc´aria da Formaç˜ao de Quissonde (Albiano) do setor Ponta do Jomba-Praia do Binge (Bacia de Benguela, Angola). Comunicaç˜oes Geol´ogicas 101, 567-571. Especial I.](http://refhub.elsevier.com/S1464-343X(26)00366-3/sref65) +- [Reynard, E., 2021. Geomorphosites: definitions, assessment and mapping. In: Reynard, E., Coratza, J., Regolini-Bissig, G. (Eds.), Geomorphosites, second ed. Friedrich Pfeil, München, pp. 13-27.](http://refhub.elsevier.com/S1464-343X%2826%2900366-3/sref61) +- [Reynard, E., Brilha, J. (Eds.), 2018. Geoheritage: Assessment, Protection. and Management. Elsevier, Amsterdam.](http://refhub.elsevier.com/S1464-343X%2826%2900366-3/sref62) +- [Rodrigues, C., Mendes, M., Pereira, Z., Nsungani, P.C., Fernandes, P., Duarte, L.V., Chitangueleca, B., Sebasti˜ao, L., Aida, B., Esposti, D.D., Freitas, D., 2024. Palynology of the Albian-Turonian sediments from the Sumbe region, Kwanza Basin (Angola): implications for paleoenvironment, paleoclimate, and paleogeography. Cretac. Res. 164, 105953.](http://refhub.elsevier.com/S1464-343X%2826%2900366-3/sref63) +- [Segundo, J.C., 2011. An´alise sedimentol´ogica e estratigr´afica da Formaç˜ao Quissonde (Albiano Superior) na regi˜ao do Lobito (Angola). University of Coimbra, Unpublished Master Thesis, p. 98.](http://refhub.elsevier.com/S1464-343X%2826%2900366-3/sref64) +- [Segundo, J.C., Duarte, L.V., Callapez, P.M., 2014. Litostratigrafia da sucess˜ao margocalc´aria da Formaç˜ao de Quissonde (Albiano) do setor Ponta do Jomba-Praia do Binge (Bacia de Benguela, Angola). Comunicaç˜oes Geol´ogicas 101, 567-571. Especial I.](http://refhub.elsevier.com/S1464-343X%2826%2900366-3/sref65) SMNA, 2013. http://7maravilhas.ao/#home. (Accessed 17 November 2013). -- [Tavares, A.O., Duarte, L.V., Carvalho, B., Palanga, L., 2014. Caracterizaç˜ao litol´ogica e dos movimentos de instabilidade nas arribas costeiras do troço Praia da Hanha - Lobito Velho, Benguela, Angola. Comunicaç˜oes Geol´ogicas 101, 939-942. Especial II.](http://refhub.elsevier.com/S1464-343X(26)00366-3/sref67) -- [Tavares, T., 2006. Ammonites et ´Echinides de L'Albien du Bassin de Benguela (Angola). Syst´ematique, Biostratigraphie, Pal´eog´eographie et Pal´eoenvironnement. Universit´e de Bourgogne, Dijon, p. 389. Unpublished PhD Thesis.](http://refhub.elsevier.com/S1464-343X(26)00366-3/sref68) -- [Tavares, T., Meister, C., Duarte-Morais, M.L., David, B., 2007. Albian ammonites of the Benguela Basin (Angola): a biostratigraphic framework. South Afr. J. Geol. 110, 137-156.](http://refhub.elsevier.com/S1464-343X(26)00366-3/sref69) +- [Tavares, A.O., Duarte, L.V., Carvalho, B., Palanga, L., 2014. Caracterizaç˜ao litol´ogica e dos movimentos de instabilidade nas arribas costeiras do troço Praia da Hanha - Lobito Velho, Benguela, Angola. Comunicaç˜oes Geol´ogicas 101, 939-942. Especial II.](http://refhub.elsevier.com/S1464-343X%2826%2900366-3/sref67) +- [Tavares, T., 2006. Ammonites et ´Echinides de L'Albien du Bassin de Benguela (Angola). Syst´ematique, Biostratigraphie, Pal´eog´eographie et Pal´eoenvironnement. Universit´e de Bourgogne, Dijon, p. 389. Unpublished PhD Thesis.](http://refhub.elsevier.com/S1464-343X%2826%2900366-3/sref68) +- [Tavares, T., Meister, C., Duarte-Morais, M.L., David, B., 2007. Albian ammonites of the Benguela Basin (Angola): a biostratigraphic framework. South Afr. J. Geol. 110, 137-156.](http://refhub.elsevier.com/S1464-343X%2826%2900366-3/sref69) - Tshibango-Andr´e, I., Andrade, P.S., Callapez, P.S., M, P., Brand˜ao, J.M., 2025a. O Museu Regional do Dundo e a sua envolvente geol´ogica e patrimonial na Província da Lunda Norte. Comunicaç˜oes Geol´ogicas 112, 451-455. https://doi.org/10.34637/ 1acw-7v36. Especial I. - Tshibango-Andr´e, I., Callapez, P.M., Andrade, P.S., Brand˜ao, J.M., 2025b. "Diamonds are forever": o Museu Regional do Dundo e o papel da Geologia da Lunda no renascer de uma instituiç˜ao hist´orica de Angola. Comunicaç˜oes Geol´ogicas 112, 501-504. https://doi.org/10.34637/91nz-j629. Especial I. - UNESCO, 2016. UNESCO Global Geoparks: Celebrating Earth Heritage, Sustaining Local Communities. https://unesdoc.unesco.org/ark:/48223/pf0000243650. \ No newline at end of file diff --git a/tests/data/pptx/groundtruth/powerpoint_with_image.pptx.json b/tests/data/pptx/groundtruth/powerpoint_with_image.pptx.json index 5e12d432d2..40d55d9f38 100644 --- a/tests/data/pptx/groundtruth/powerpoint_with_image.pptx.json +++ b/tests/data/pptx/groundtruth/powerpoint_with_image.pptx.json @@ -245,7 +245,7 @@ "width": 268.0, "height": 268.0 }, - "uri": "data:image/png;base64,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" + "uri": "data:image/png;base64,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" }, "annotations": [] }, diff --git a/tests/test_asr_model_decoders.py b/tests/test_asr_model_decoders.py new file mode 100644 index 0000000000..125e570d28 --- /dev/null +++ b/tests/test_asr_model_decoders.py @@ -0,0 +1,176 @@ +# SPDX-FileCopyrightText: The Docling Contributors +# SPDX-License-Identifier: MIT + +"""Regression tests at the model processor and generation boundaries.""" + +import sys +from pathlib import Path +from types import ModuleType +from unittest.mock import Mock + +import numpy as np +import pytest +import torch + +from docling.cli.main import _resolve_asr_options +from docling.datamodel.accelerator_options import AcceleratorOptions +from docling.datamodel.asr_model_specs import ADDITIONAL_ASR_PRESETS, AsrModelType +from docling.datamodel.pipeline_options_asr_model import InlineAsrTransformersOptions +from docling.pipeline.asr_transcriber import _AsrModelFactory +from docling.pipeline.asr_transformers import ( + TransformersAsrDecoder, + _expand_granite_queries, +) + + +class _Inputs(dict): + def to(self, device): + return self + + +def test_granite_projector_keeps_every_audio_window(): + from transformers import GraniteSpeechConfig + from transformers.models.granite_speech.modeling_granite_speech import ( + GraniteSpeechEncoderProjector, + ) + + config = GraniteSpeechConfig( + projector_config={ + "model_type": "blip_2_qformer", + "hidden_size": 16, + "num_attention_heads": 4, + "num_hidden_layers": 2, + "intermediate_size": 32, + "encoder_hidden_size": 16, + }, + text_config={"model_type": "granite", "hidden_size": 16}, + window_size=15, + downsample_rate=5, + ) + projector = GraniteSpeechEncoderProjector(config).eval() + projector.qformer.register_forward_pre_hook( + _expand_granite_queries, with_kwargs=True + ) + audio = torch.randn(1, 45, 16) + with torch.inference_mode(): + output = projector(audio) + # Decode each window separately as the reference. This checks both the + # number of returned windows and their content without model downloads. + expected = torch.cat( + [projector(audio[:, start : start + 15]) for start in range(0, 45, 15)], + dim=1, + ) + assert output.shape == (1, 9, 16) + torch.testing.assert_close(output, expected) + + +@pytest.mark.parametrize("family", ["granite", "granite_ctc"]) +@pytest.mark.parametrize("device", ["cpu", "cuda:0", "mps"]) +def test_granite_uses_safe_loading_dtype_on_mps(family, device, model_boundary): + transformers, _, _ = model_boundary + options = InlineAsrTransformersOptions( + repo_id="test/model", + model_family=family, + torch_dtype="bfloat16", + ) + TransformersAsrDecoder(options, device, options.repo_id, False) + factory = ( + transformers.AutoModelForCTC + if family == "granite_ctc" + else transformers.AutoModelForSpeechSeq2Seq + ) + assert factory.from_pretrained.call_args.kwargs["dtype"] == ( + "float32" if device == "mps" else "bfloat16" + ) + + +@pytest.fixture +def model_boundary(monkeypatch): + """Replace downloaded models while keeping tensor slicing and audio shapes real.""" + model = Mock() + model.generate.return_value = torch.tensor([[10, 11, 42, 43]]) + model.to.return_value = model + model.eval.return_value = model + processor = Mock() + processor.return_value = _Inputs(input_ids=torch.tensor([[10, 11]])) + processor.tokenizer.apply_chat_template.return_value = "formatted audio prompt" + processor.tokenizer.batch_decode.return_value = [" decoded speech "] + processor.batch_decode.return_value = [" decoded speech "] + transformers = ModuleType("transformers") + for name in ( + "AutoModelForCTC", + "AutoModelForSpeechSeq2Seq", + ): + setattr(transformers, name, Mock(from_pretrained=Mock(return_value=model))) + transformers.AutoProcessor = Mock(from_pretrained=Mock(return_value=processor)) + monkeypatch.setitem(sys.modules, "transformers", transformers) + audio_utils = ModuleType("transformers.pipelines.audio_utils") + audio_utils.ffmpeg_read = Mock(return_value=np.zeros(16000, dtype=np.float32)) + monkeypatch.setitem(sys.modules, "transformers.pipelines.audio_utils", audio_utils) + return transformers, model, processor + + +def test_granite_crops_prompt_and_preserves_revision(model_boundary, tmp_path): + transformers, model, processor = model_boundary + path = tmp_path / "sample.wav" + path.write_bytes(b"audio") + options = InlineAsrTransformersOptions( + repo_id="ibm-granite/granite-speech-5.0-2b", + model_family="granite", + revision="pinned-model-revision", + prompt="transcribe these technical terms", + ) + decoder = TransformersAsrDecoder(options, "cpu", options.repo_id, False) + assert decoder.transcribe(path) == "decoded speech" + for factory in (transformers.AutoProcessor, transformers.AutoModelForSpeechSeq2Seq): + assert factory.from_pretrained.call_args.kwargs["revision"] == options.revision + assert processor.tokenizer.apply_chat_template.call_args.args[0] == [ + {"role": "user", "content": "<|audio|>transcribe these technical terms"} + ] + assert torch.equal( + processor.tokenizer.batch_decode.call_args.args[0], torch.tensor([[42, 43]]) + ) + assert model.generate.call_args.kwargs["do_sample"] is False + + +def test_granite_ctc_output_becomes_document_segment( + model_boundary, tmp_path, monkeypatch +): + transformers, model, processor = model_boundary + checkpoint = tmp_path / "checkpoint" + checkpoint.mkdir() + (checkpoint / "config.json").write_text("{}", encoding="utf-8") + audio = tmp_path / "sample.wav" + audio.write_bytes(b"audio") + monkeypatch.setattr( + "docling.pipeline.asr_transcriber.decide_device", + lambda *args, **kwargs: "cuda:0", + ) + monkeypatch.setattr( + "docling.pipeline.asr_transcriber._audio_duration_seconds", lambda path: 1.0 + ) + options = InlineAsrTransformersOptions( + repo_id="test/model", + model_family="granite_ctc", + revision="must-not-fetch", + ) + transcriber = _AsrModelFactory.create(options, checkpoint, AcceleratorOptions()) + conversation = transcriber.transcribe(audio) + assert [(item.text, item.start_time, item.end_time) for item in conversation] == [ + ("decoded speech", 0.0, 1.0) + ] + assert ( + transformers.AutoProcessor.from_pretrained.call_args.kwargs["local_files_only"] + is True + ) + assert "revision" not in transformers.AutoProcessor.from_pretrained.call_args.kwargs + assert processor.batch_decode.call_args.kwargs["skip_special_tokens"] is True + + +@pytest.mark.parametrize( + "preset", list(ADDITIONAL_ASR_PRESETS.values()), ids=lambda preset: preset.preset_id +) +def test_added_models_resolve_through_the_cli(preset): + options = _resolve_asr_options(AsrModelType(preset.preset_id)) + assert options.repo_id == preset.model_spec.default_repo_id + assert options.model_family == preset.model_spec.model_family diff --git a/tests/test_asr_transformers.py b/tests/test_asr_transformers.py new file mode 100644 index 0000000000..59e4adedf6 --- /dev/null +++ b/tests/test_asr_transformers.py @@ -0,0 +1,151 @@ +# SPDX-FileCopyrightText: The Docling Contributors +# SPDX-License-Identifier: MIT + +"""Local Whisper checkpoint and Transformers ASR boundary tests.""" + +import sys +from pathlib import Path +from types import ModuleType +from unittest.mock import Mock + +import pytest + +from docling.datamodel.accelerator_options import AcceleratorOptions +from docling.datamodel.asr_model_specs import ( + NEMOTRON_3_5_ASR_STREAMING, + PARAKEET_CTC_1_1B, + WHISPER_ASR_PRESETS, +) +from docling.datamodel.pipeline_options_asr_model import ( + InferenceAsrFramework, + InlineAsrMlxWhisperOptions, + InlineAsrTransformersOptions, +) +from docling.pipeline.asr_transcriber import ( + _AsrModelFactory, + _MlxWhisperModel, + _TransformersAsrModel, +) + + +def test_whisper_preset_engine_exports(): + preset = WHISPER_ASR_PRESETS["tiny"] + assert preset.to_options().repo_id == "openai/whisper-tiny" + assert ( + preset.to_options(InferenceAsrFramework.MLX).repo_id + == "mlx-community/whisper-tiny-mlx" + ) + with pytest.raises(ValueError, match="does not support"): + preset.to_options(InferenceAsrFramework.WHISPER_S2T) + + +def test_transformers_uses_local_checkpoint_and_keeps_timestamps( + tmp_path: Path, monkeypatch: pytest.MonkeyPatch +): + checkpoint = tmp_path / "openai--whisper-tiny" + checkpoint.mkdir() + (checkpoint / "config.json").write_text("{}") + asr_pipeline = Mock( + return_value={ + "chunks": [ + {"text": " hello", "timestamp": (0.2, 1.4)}, + {"text": " world", "timestamp": (1.4, 2.0)}, + ] + } + ) + make_pipeline = Mock(return_value=asr_pipeline) + transformers = ModuleType("transformers") + transformers.pipeline = make_pipeline + monkeypatch.setitem(sys.modules, "transformers", transformers) + monkeypatch.setattr( + "docling.pipeline.asr_transcriber.decide_device", lambda *args, **kwargs: "cpu" + ) + + model = _AsrModelFactory.create( + InlineAsrTransformersOptions(repo_id="openai/whisper-tiny"), + tmp_path, + AcceleratorOptions(), + ) + assert isinstance(model, _TransformersAsrModel) + assert make_pipeline.call_args.kwargs["model"] == str(checkpoint) + assert make_pipeline.call_args.kwargs["model_kwargs"] == {"local_files_only": True} + conversation = model.transcribe(Path("sample.wav")) + assert [(item.text, item.start_time, item.end_time) for item in conversation] == [ + ("hello", 0.2, 1.4), + ("world", 1.4, 2.0), + ] + assert asr_pipeline.call_args.kwargs["return_timestamps"] is True + + +def test_local_checkpoint_is_required_without_hub_fallback( + tmp_path: Path, monkeypatch: pytest.MonkeyPatch +): + transformers = ModuleType("transformers") + transformers.pipeline = Mock() + monkeypatch.setitem(sys.modules, "transformers", transformers) + monkeypatch.setattr( + "docling.pipeline.asr_transcriber.decide_device", lambda *args, **kwargs: "cpu" + ) + with pytest.raises(FileNotFoundError, match="openai/whisper-tiny"): + _AsrModelFactory.create( + InlineAsrTransformersOptions(repo_id="openai/whisper-tiny"), + tmp_path, + AcceleratorOptions(), + ) + transformers.pipeline.assert_not_called() + + +def test_mlx_uses_local_checkpoint(tmp_path: Path, monkeypatch: pytest.MonkeyPatch): + checkpoint = tmp_path / "mlx-community--whisper-tiny-mlx" + checkpoint.mkdir() + (checkpoint / "config.json").write_text("{}") + (checkpoint / "weights.safetensors").write_bytes(b"checkpoint") + mlx_whisper = ModuleType("mlx_whisper") + mlx_whisper.transcribe = Mock(return_value={"segments": []}) + monkeypatch.setitem(sys.modules, "mlx_whisper", mlx_whisper) + monkeypatch.setattr( + "docling.pipeline.asr_transcriber.decide_device", lambda *args, **kwargs: "mps" + ) + model = _MlxWhisperModel( + True, + tmp_path, + AcceleratorOptions(), + InlineAsrMlxWhisperOptions(repo_id="mlx-community/whisper-tiny-mlx"), + ) + model.transcribe(Path("sample.wav")) + assert mlx_whisper.transcribe.call_args.kwargs["path_or_hf_repo"] == str(checkpoint) + + +@pytest.mark.parametrize( + ("options", "family"), + [ + (PARAKEET_CTC_1_1B, "parakeet"), + (NEMOTRON_3_5_ASR_STREAMING, "nemotron"), + ], +) +def test_other_transformers_models_keep_text_without_segment_timestamps( + options: InlineAsrTransformersOptions, + family: str, + tmp_path: Path, + monkeypatch: pytest.MonkeyPatch, +): + checkpoint = tmp_path / options.repo_cache_folder + checkpoint.mkdir() + (checkpoint / "config.json").write_text("{}") + asr_pipeline = Mock(return_value={"text": " recognized speech "}) + transformers = ModuleType("transformers") + transformers.pipeline = Mock(return_value=asr_pipeline) + monkeypatch.setitem(sys.modules, "transformers", transformers) + monkeypatch.setattr( + "docling.pipeline.asr_transcriber.decide_device", lambda *args, **kwargs: "cpu" + ) + monkeypatch.setattr( + "docling.pipeline.asr_transcriber._audio_duration_seconds", lambda path: 2.5 + ) + model = _AsrModelFactory.create(options, tmp_path, AcceleratorOptions()) + conversation = model.transcribe(Path("sample.wav")) + assert options.model_family == family + assert [(item.text, item.start_time, item.end_time) for item in conversation] == [ + ("recognized speech", 0.0, 2.5) + ] + asr_pipeline.assert_called_once_with("sample.wav") diff --git a/tests/test_backend_pptx.py b/tests/test_backend_pptx.py index 30bdf983ed..b657fe3c2c 100644 --- a/tests/test_backend_pptx.py +++ b/tests/test_backend_pptx.py @@ -4,6 +4,7 @@ import logging import re import struct +import sys import warnings import zipfile import zlib @@ -961,6 +962,10 @@ def test_metafile_detection(image_bytes: bytes, expected: bool): assert _is_metafile(image_bytes) is expected +@pytest.mark.skipif( + sys.version_info < (3, 11), + reason="Pillow 12 stores the WMF handler on the module, not the image class", +) def test_pptx_emf_picture_survives_without_pillow_metafile_support( tmp_path: Path, monkeypatch: pytest.MonkeyPatch, caplog: pytest.LogCaptureFixture ): @@ -978,9 +983,9 @@ def test_pptx_emf_picture_survives_without_pillow_metafile_support( import docling.backend.mspowerpoint_backend as _pptx_backend - # The plugin registers a GDI-backed handler at import time on Windows only; - # on other platforms this attribute is already None. - monkeypatch.setattr(WmfImagePlugin, "_handler", None) + # The plugin registers a GDI-backed handler on Windows only. Pillow stores + # it on the image class; on other platforms the value is already None. + monkeypatch.setattr(WmfImagePlugin.WmfStubImageFile, "_handler", None) # Patch get_docx_to_pdf_converter in the pptx backend's own namespace so # LibreOffice is reported as unavailable regardless of PATH, environment # variables, or hardcoded install paths on the test machine. @@ -1038,6 +1043,10 @@ def chunk(tag: bytes, data: bytes) -> bytes: assert "Quarterly results" in [t.text for t in doc.texts] +@pytest.mark.skipif( + sys.version_info < (3, 11), + reason="Pillow 12 stores the WMF handler on the module, not the image class", +) def test_pptx_emf_picture_rasterized_via_libreoffice( tmp_path: Path, monkeypatch: pytest.MonkeyPatch, libreoffice_available: bool ): @@ -1054,7 +1063,7 @@ def test_pptx_emf_picture_rasterized_via_libreoffice( from PIL import WmfImagePlugin - monkeypatch.setattr(WmfImagePlugin, "_handler", None) + monkeypatch.setattr(WmfImagePlugin.WmfStubImageFile, "_handler", None) deck_path = _deck_with_picture(tmp_path, _emf_bytes(drawable=True), ".emf") doc = get_converter().convert(deck_path).document diff --git a/tests/test_cli.py b/tests/test_cli.py index b52b7c91cd..4d4e58f81c 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -1910,6 +1910,24 @@ def convert_all( return result, captured.get("asr_pipeline_options") +def test_cli_transformers_asr_flags_reach_pipeline_options(tmp_path, monkeypatch): + from docling.datamodel.asr_model_specs import GRANITE_SPEECH_5_0_2B + + result, options = _capture_cli_asr_pipeline_options( + monkeypatch, + [ + "--asr-model", + "granite_speech_5_0_2b", + "--asr-language", + "de", + ], + tmp_path, + ) + assert result.exit_code == 0, result.output + assert options.asr_options.language == "de" + assert GRANITE_SPEECH_5_0_2B.language is None + + def test_cli_allow_external_plugins_reaches_asr_pipeline_options(tmp_path, monkeypatch): """Regression test for #3284: `--allow-external-plugins` and `--enable-remote-services` were parsed correctly but never passed into diff --git a/uv.lock b/uv.lock index b0f8e4b435..9df470be4d 100644 --- a/uv.lock +++ b/uv.lock @@ -1,25 +1,25 @@ version = 1 -revision = 5 +revision = 2 requires-python = ">=3.10, <4.0" resolution-markers = [ "python_full_version >= '3.14' and sys_platform == 'darwin'", "(python_full_version >= '3.14' and sys_platform == 'linux') or (python_full_version >= '3.14' and sys_platform == 'win32')", - "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.13.*' and sys_platform == 'darwin'", - "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", - "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'darwin'", + "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'", + "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", "(python_full_version == '3.12.*' and platform_machine != 'x86_64' and sys_platform == 'linux') or (python_full_version == '3.12.*' and sys_platform == 'win32')", - "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", - "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'darwin'", "(python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'linux') or (python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'win32')", - "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", - "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'darwin'", "(python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'linux') or (python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'win32')", - "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version < '3.11' and sys_platform == 'darwin'", "(python_full_version < '3.11' and sys_platform == 'linux') or (python_full_version < '3.11' and sys_platform == 'win32')", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version < '3.11' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", ] @@ -304,21 +304,21 @@ resolution-markers = [ "python_full_version < '3.11' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", ] dependencies = [ - { name = "bottle" }, - { name = "certifi" }, - { name = "filelock", version = "4.1.0", source = { registry = "https://pypi.org/simple" } }, - { name = "isodate" }, - { name = "jaconv" }, - { name = "jsonschema" }, - { name = "lxml" }, - { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" } }, - { name = "openpyxl" }, - { name = "pillow" }, - { name = "pyparsing" }, - { name = "python-dateutil" }, - { name = "regex" }, - { name = "truststore" }, - { name = "typing-extensions" }, + { name = "bottle", marker = "python_full_version < '3.11'" }, + { name = "certifi", marker = "python_full_version < '3.11'" }, + { name = "filelock", version = "4.1.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "isodate", marker = "python_full_version < '3.11'" }, + { name = "jaconv", marker = "python_full_version < '3.11'" }, + { name = "jsonschema", marker = "python_full_version < '3.11'" }, + { name = "lxml", marker = "python_full_version < '3.11'" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "openpyxl", marker = "python_full_version < '3.11'" }, + { name = "pillow", version = "12.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "pyparsing", marker = "python_full_version < '3.11'" }, + { name = "python-dateutil", marker = "python_full_version < '3.11'" }, + { name = "regex", marker = "python_full_version < '3.11'" }, + { name = "truststore", marker = "python_full_version < '3.11'" }, + { name = "typing-extensions", marker = "python_full_version < '3.11'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/a0/e4/0d838db7197b4b48a3e8023c6e9c06f2762fda3097de5e18fd38d6af7a5e/arelle_release-2.46.1.tar.gz", hash = "sha256:d2c5942448f1c1a38370410da4998badb23db1d8bf38cce1b4d075a222e1244d", size = 5717849, upload-time = "2026-10-08T14:32:46.374Z" } wheels = [ @@ -327,47 +327,47 @@ wheels = [ [[package]] name = "arelle-release" -version = "2.47.0" +version = "2.47.1" source = { registry = "https://pypi.org/simple" } resolution-markers = [ "python_full_version >= '3.14' and sys_platform == 'darwin'", "(python_full_version >= '3.14' and sys_platform == 'linux') or (python_full_version >= '3.14' and sys_platform == 'win32')", - "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.13.*' and sys_platform == 'darwin'", - "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", - "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'darwin'", + "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'", + "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", "(python_full_version == '3.12.*' and platform_machine != 'x86_64' and sys_platform == 'linux') or (python_full_version == '3.12.*' and sys_platform == 'win32')", - "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", - "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'darwin'", "(python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'linux') or (python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'win32')", - "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", - "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'darwin'", "(python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'linux') or (python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'win32')", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", ] dependencies = [ - { name = "bottle" }, - { name = "certifi" }, - { name = "filelock", version = "4.2.4", source = { registry = "https://pypi.org/simple" } }, - { name = "isodate" }, - { name = "jaconv" }, - { name = "jsonschema" }, - { name = "lxml" }, - { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.12'" }, + { name = "bottle", marker = "python_full_version >= '3.11'" }, + { name = "certifi", marker = "python_full_version >= '3.11'" }, + { name = "filelock", version = "4.2.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "isodate", marker = "python_full_version >= '3.11'" }, + { name = "jaconv", marker = "python_full_version >= '3.11'" }, + { name = "jsonschema", marker = "python_full_version >= '3.11'" }, + { name = "lxml", marker = "python_full_version >= '3.11'" }, + { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*'" }, { name = "numpy", version = "2.5.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, - { name = "openpyxl" }, - { name = "pillow" }, - { name = "pyparsing" }, - { name = "python-dateutil" }, - { name = "regex" }, - { name = "truststore" }, - { name = "typing-extensions" }, + { name = "openpyxl", marker = "python_full_version >= '3.11'" }, + { name = "pillow", version = "13.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "pyparsing", marker = "python_full_version >= '3.11'" }, + { name = "python-dateutil", marker = "python_full_version >= '3.11'" }, + { name = "regex", marker = "python_full_version >= '3.11'" }, + { name = "truststore", marker = "python_full_version >= '3.11'" }, + { name = "typing-extensions", marker = "python_full_version >= '3.11'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/f0/a1/18f3439b8003c845e3c2cb934b0d717ba217041bbcd6af2df46bfdc57700/arelle_release-2.47.0.tar.gz", hash = "sha256:56844ba22ebbf58ef55be718aa66d9163f2d971acbbe7af232ff38df174be5e1", size = 5728803, upload-time = "2026-10-21T04:28:57.997Z" } +sdist = { url = "https://files.pythonhosted.org/packages/27/2c/e812640805ec2caf7e68331cb46389dfdddd62c6408e40b264618e4b6871/arelle_release-2.47.1.tar.gz", hash = "sha256:833fdf75eb5073045fee7584d194b3df93a9ad7ce4c462d76058a7da7e40c4be", size = 5729171, upload-time = "2026-10-23T05:24:08.225Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/5b/24/c5b39295355fe122e642755d69f7bbd56de69909a4bffe2b2057f192a364/arelle_release-2.47.0-py3-none-any.whl", hash = "sha256:19f5fee13b5e99a3d307f9b0a701c670a3968e9d7e89e685b39cdc7d95ae4d63", size = 6163593, upload-time = "2026-10-21T04:28:54.895Z" }, + { url = "https://files.pythonhosted.org/packages/42/e5/64aeb972aee1094fc0b1cf156b24074ff163cabf79b147fe9d5efd1c6411/arelle_release-2.47.1-py3-none-any.whl", hash = "sha256:e8bf8f80b61f80f9dd0759fe7e7eb8f865c092b9e8f651e2732c3d95001fc4d0", size = 6165188, upload-time = "2026-10-23T05:24:05.322Z" }, ] [[package]] @@ -527,10 +527,10 @@ version = "18.1.0" source = { registry = "https://pypi.org/simple" } resolution-markers = [ "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'darwin'", - "(python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'linux') or (python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'win32')", - "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'darwin'", + "(python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'linux') or (python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'win32')", "(python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'linux') or (python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'win32')", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", ] sdist = { url = "https://files.pythonhosted.org/packages/8d/f4/f22114d30d3435e38c6af2b4870f37b864403dca6ae7af747a289ce0a18e/av-18.1.0.tar.gz", hash = "sha256:47bfc286e1bc9de7ab4681fc2b575cd2460a66919d31ffe1bd5aa54fae531a28", size = 4451061, upload-time = "2026-08-12T22:28:18.761Z" } @@ -562,13 +562,13 @@ source = { registry = "https://pypi.org/simple" } resolution-markers = [ "python_full_version >= '3.14' and sys_platform == 'darwin'", "(python_full_version >= '3.14' and sys_platform == 'linux') or (python_full_version >= '3.14' and sys_platform == 'win32')", - "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.13.*' and sys_platform == 'darwin'", - "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", - "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'", + "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", "(python_full_version == '3.12.*' and platform_machine != 'x86_64' and sys_platform == 'linux') or (python_full_version == '3.12.*' and sys_platform == 'win32')", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", ] sdist = { url = "https://files.pythonhosted.org/packages/23/01/76b6bf563fe907597cf58f10d10168e93fe588b6db9f2658db87e87efa7e/av-19.0.2.tar.gz", hash = "sha256:bebbc52598886480f4d861c575dc2b020785d6c04e1308680ddcc545e1b94c66", size = 4277157, upload-time = "2026-10-21T03:45:30.799Z" } @@ -608,7 +608,7 @@ version = "4.15.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "soupsieve", version = "2.10", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11.5'" }, - { name = "soupsieve", version = "3.0.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11.5'" }, + { name = "soupsieve", version = "3.0.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11.5'" }, { name = "typing-extensions" }, ] sdist = { url = "https://files.pythonhosted.org/packages/43/65/318323f98dbee45d42dff61d8f047181bc6f2268a9068cfad035a46be5af/beautifulsoup4-4.15.0.tar.gz", hash = "sha256:288e3ca7d54b06f2ac191970bc275c1939cb46d450b255bf6718b04aa37ab4f7", size = 632571, upload-time = "2026-06-07T16:44:20.453Z" } @@ -635,25 +635,25 @@ css = [ [[package]] name = "boto3-stubs" -version = "1.43.116" +version = "1.43.118" 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/5d/e6/6f8eaeb37203962fc08cc73bd0317d61f41332675fd82c967cf8de2fb9ba/boto3_stubs-1.43.116.tar.gz", hash = "sha256:4d25cffe799c48758bab00a179b7340d35dd1c73487e289423099bae426d348d", size = 105928, upload-time = "2026-10-20T22:00:16.013Z" } +sdist = { url = "https://files.pythonhosted.org/packages/75/15/d5faf1c0eb6998a6b2d46598a42a00e0af02f48e89b9e02161282ecff0b4/boto3_stubs-1.43.118.tar.gz", hash = "sha256:11a39b22fabd4ac0532904b0522e7491cc54b1a710e04ead30711ceafda6ba4f", size = 105504, upload-time = "2026-10-22T19:26:41.321Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/70/a5/9af4a59995d9bd4c2df8866dddb1fcbf859e27137eba16bda83bb9d96438/boto3_stubs-1.43.116-py3-none-any.whl", hash = "sha256:85c0cdcbfad9b270a65cfa5247cd8dfc44dd43de54ffe3654b79e1f260013971", size = 72203, upload-time = "2026-10-20T22:00:03.318Z" }, + { url = "https://files.pythonhosted.org/packages/cc/24/13aeefef9d1f7330692cfdacd98faae898e06b7f2d2926af4819ed0f5990/boto3_stubs-1.43.118-py3-none-any.whl", hash = "sha256:21c9fd6d24b99af97d5f04247b58b8072352f39d69233fe1c5f20676c5aa547b", size = 72011, upload-time = "2026-10-22T19:26:33.662Z" }, ] [[package]] name = "botocore-stubs" -version = "1.43.116" +version = "1.43.118" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/c3/fd/9358039292af3f9eb125062e8d10e164b6cebdb726ef6c12bb58353f371a/botocore_stubs-1.43.116.tar.gz", hash = "sha256:5ae1a7864d1835c961706e93556c97daedd4202bd601512e3ad2959a3378de12", size = 42897, upload-time = "2026-10-20T20:24:16.164Z" } +sdist = { url = "https://files.pythonhosted.org/packages/00/ee/7136f756dbc2b279ed9d9c21ab1f99c455fec0ffbbe285ce4ac77d19b943/botocore_stubs-1.43.118.tar.gz", hash = "sha256:5c5684f51b50b09e2a7b2d7bd3e822a8f0e669932019e204de950903b2066b72", size = 42913, upload-time = "2026-10-22T19:54:58.536Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a8/ae/e22b69de51b6b15f622442fc6fbe662804de3f233a7f43a6486ec70cdf8b/botocore_stubs-1.43.116-py3-none-any.whl", hash = "sha256:2c94393e5578599a0ad05eb79401492a2ac9639b07d87401c15d6339d4ec2b11", size = 67248, upload-time = "2026-10-20T20:24:14.429Z" }, + { url = "https://files.pythonhosted.org/packages/80/31/dcba0f342139254674d6727b3ccd2f81a52459b9d1400ea6614d87bbd0e2/botocore_stubs-1.43.118-py3-none-any.whl", hash = "sha256:684daeaef4bafc08eee8c001809b47588d51d0ad774e61fb1f42a2d5f5366721", size = 67248, upload-time = "2026-10-22T19:54:57.057Z" }, ] [[package]] @@ -688,7 +688,8 @@ name = "cffi" version = "2.1.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "pycparser", marker = "implementation_name != 'PyPy'" }, + { name = "pycparser", version = "3.11", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11' and implementation_name != 'PyPy'" }, + { name = "pycparser", version = "3.12", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11' and implementation_name != 'PyPy'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/9e/ef/008a1939e372c06329a3fce4279c02f328488f3526744906eeec3da7ad5f/cffi-2.1.1.tar.gz", hash = "sha256:dd31f52ea1086513bb9df30f8fcee9b8918323ae067a3d5b78bc826a000712be", size = 530807, upload-time = "2026-08-03T21:21:18.939Z" } wheels = [ @@ -1000,7 +1001,7 @@ name = "coloredlogs" version = "15.0.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "humanfriendly" }, + { name = "humanfriendly", marker = "python_full_version < '3.11'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/cc/c7/eed8f27100517e8c0e6b923d5f0845d0cb99763da6fdee00478f91db7325/coloredlogs-15.0.1.tar.gz", hash = "sha256:7c991aa71a4577af2f82600d8f8f3a89f936baeaf9b50a9c197da014e5bf16b0", size = 278520, upload-time = "2021-06-11T10:22:45.202Z" } wheels = [ @@ -1038,7 +1039,7 @@ resolution-markers = [ "python_full_version < '3.11' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", ] dependencies = [ - { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" } }, + { 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/66/54/eb9bfc647b19f2009dd5c7f5ec51c4e6ca831725f1aea7a993034f483147/contourpy-1.3.2.tar.gz", hash = "sha256:b6945942715a034c671b7fc54f9588126b0b8bf23db2696e3ca8328f3ff0ab54", size = 13466130, upload-time = "2025-04-15T17:47:53.79Z" } wheels = [ @@ -1106,14 +1107,14 @@ version = "1.3.3" source = { registry = "https://pypi.org/simple" } resolution-markers = [ "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'darwin'", - "(python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'linux') or (python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'win32')", - "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'darwin'", + "(python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'linux') or (python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'win32')", "(python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'linux') or (python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'win32')", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", ] dependencies = [ - { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" } }, + { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/58/01/1253e6698a07380cd31a736d248a3f2a50a7c88779a1813da27503cadc2a/contourpy-1.3.3.tar.gz", hash = "sha256:083e12155b210502d0bca491432bb04d56dc3432f95a979b429f2848c3dbe880", size = 13466174, upload-time = "2025-07-26T12:03:12.549Z" } wheels = [ @@ -1197,17 +1198,17 @@ source = { registry = "https://pypi.org/simple" } resolution-markers = [ "python_full_version >= '3.14' and sys_platform == 'darwin'", "(python_full_version >= '3.14' and sys_platform == 'linux') or (python_full_version >= '3.14' and sys_platform == 'win32')", - "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.13.*' and sys_platform == 'darwin'", - "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", - "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'", + "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", "(python_full_version == '3.12.*' and platform_machine != 'x86_64' and sys_platform == 'linux') or (python_full_version == '3.12.*' and sys_platform == 'win32')", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", ] dependencies = [ - { name = "numpy", version = "2.5.4", source = { registry = "https://pypi.org/simple" } }, + { name = "numpy", version = "2.5.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/83/5a/a55177dd22553a277388e8a1b3220e92de91bacb28356cdc73caa240121d/contourpy-1.4.0.tar.gz", hash = "sha256:20156f5a1ac4f8ce02656e39a61e82164a3d359796dc8026f75b062783d500e1", size = 13323726, upload-time = "2026-09-11T19:05:05.808Z" } wheels = [ @@ -1286,6 +1287,11 @@ wheels = [ name = "coverage" version = "7.16.2" source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.11' and sys_platform == 'darwin'", + "(python_full_version < '3.11' and sys_platform == 'linux') or (python_full_version < '3.11' and sys_platform == 'win32')", + "python_full_version < '3.11' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", +] sdist = { url = "https://files.pythonhosted.org/packages/2f/55/d1eaf3e73781174340a00dc1ba2aee8a65f82fadb18e2797b192b6b3925b/coverage-7.16.2.tar.gz", hash = "sha256:ca64d9f1f384f151b9511bec01126072acd2f313439f8ed015a22d8790aab6fa", size = 971999, upload-time = "2026-09-27T12:29:01.118Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/60/72/db17bf5f87568ab524413693385be2eeb03e652ab56c54ea05fa85515675/coverage-7.16.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:23219888477edd736b6fcaec1272d47d93b926e999641ffea7e53a1738e70b2b", size = 223670, upload-time = "2026-09-27T12:25:34.675Z" }, @@ -1412,7 +1418,151 @@ wheels = [ [package.optional-dependencies] toml = [ - { name = "tomli", marker = "python_full_version <= '3.11'" }, + { name = "tomli", marker = "python_full_version < '3.11'" }, +] + +[[package]] +name = "coverage" +version = "7.17.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.14' and sys_platform == 'darwin'", + "(python_full_version >= '3.14' and sys_platform == 'linux') or (python_full_version >= '3.14' and sys_platform == 'win32')", + "python_full_version == '3.13.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'darwin'", + "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'", + "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", + "(python_full_version == '3.12.*' and platform_machine != 'x86_64' and sys_platform == 'linux') or (python_full_version == '3.12.*' and sys_platform == 'win32')", + "(python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'linux') or (python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'win32')", + "(python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'linux') or (python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'win32')", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", +] +sdist = { url = "https://files.pythonhosted.org/packages/d2/79/e78bd8f75a9b8e32233ce92d4607f0a21ce88a9156cace2884e7175a82f5/coverage-7.17.0.tar.gz", hash = "sha256:cc010a0a7fbdd9bb8bdfd0d3f04a5151275860213cbd7e2b876b29778489c712", size = 991021, upload-time = "2026-10-22T16:06:50.009Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/75/25/79a66272edd250031aeee6db87d500a0bf76390d0d5f8c2f431fe354715f/coverage-7.17.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:99a7b390cbccc6bf029ca4da3f0f607c218bb4085e9cd6b58a90d14ca12993c3", size = 225837, upload-time = "2026-10-22T16:03:55.622Z" }, + { url = "https://files.pythonhosted.org/packages/52/a6/f5f6fefb2fc1305363927edad1d0a60ce6ef80d6c1a74a79e825f0f670eb/coverage-7.17.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f72640e02a470b57b15cd655820133f6892760209283a363a60e2df932d5f0fe", size = 226257, upload-time = "2026-10-22T16:03:57.164Z" }, + { url = "https://files.pythonhosted.org/packages/28/61/72889bac8eb44c51f8043edb227df551dfdca1fc4819a6c6d67b3f69427b/coverage-7.17.0-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:2dc9233f39149b5a4f4aba17a4b6bc5cca22e52cfc4b06fdb07d014439b8b2ea", size = 258282, upload-time = "2026-10-22T16:03:58.521Z" }, + { url = "https://files.pythonhosted.org/packages/f4/e4/03e4a5644df9b73de0d44d1b82acd18b06c42b5abc3f1433be8363fa983d/coverage-7.17.0-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:8e8113d3852e9377421a61de1917df27b3abb25404a4ecf69f9e64612c4345b5", size = 260506, upload-time = "2026-10-22T16:04:00.116Z" }, + { url = "https://files.pythonhosted.org/packages/6f/4e/949022286df7e59e8633a3a7e6635e0e6b53af7d57074cb0bf8f500373fb/coverage-7.17.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c86a39539d10d666bb819c16c94d7edfc1aa2e0531b937f7c549b83d15177c6e", size = 262600, upload-time = "2026-10-22T16:04:01.49Z" }, + { url = "https://files.pythonhosted.org/packages/27/cf/7d67f60df081006315699b7edb9402c1b47142caf1383f4e56ae8ff1a501/coverage-7.17.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:559f748446ee799803686b5784e3deb54c70d655ac386a860e06b11672504ba7", size = 264609, upload-time = "2026-10-22T16:04:03.286Z" }, + { url = "https://files.pythonhosted.org/packages/e1/e0/9293d94afbc099990a085e88229a51c79b00828aba0f2adda32dc4cc16d1/coverage-7.17.0-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:34d65c9e8e257f48a654908005046fbf1bc48d9540ae3776ad08c0acd010e10c", size = 258382, upload-time = "2026-10-22T16:04:04.804Z" }, + { url = "https://files.pythonhosted.org/packages/24/c8/bcd28efedf262c074dae76f61098739eb02b15f3f716f80cc86f9885b8a9/coverage-7.17.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:5b7fa0997b8eba7378ac66f31ec7f70164490353ab79b9667d37c0d365e50177", size = 260299, upload-time = "2026-10-22T16:04:06.291Z" }, + { url = "https://files.pythonhosted.org/packages/b8/dc/503f55e5e2200933403c90d619d9f779b5060ddd338b1bdc63cd235592cb/coverage-7.17.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:6ae0453a3390e67f7bfbe34417bbdf5b4ebfc21db23fb446a0a41115eeeca6ca", size = 258314, upload-time = "2026-10-22T16:04:07.729Z" }, + { url = "https://files.pythonhosted.org/packages/bb/b1/f1a57c36077cc516240636f7eff0d1427939ed795f096dd2c7769213a56c/coverage-7.17.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:96151262832f3c230ebae23b2d6911ad549e1738465946c97004913ff06112ba", size = 262239, upload-time = "2026-10-22T16:04:09.116Z" }, + { url = "https://files.pythonhosted.org/packages/a8/4f/c2e59d4a132936c7c207b9b69ab99c0f27b14c3c93266e9922aa3b562b37/coverage-7.17.0-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:cd7397de6cc782f00fe5ac1d75e9b306bcfa49c8b6b8dd6ed1f7709393ad40b3", size = 257841, upload-time = "2026-10-22T16:04:10.509Z" }, + { url = "https://files.pythonhosted.org/packages/05/04/50742c0ee8b6c85826ff11737c93ed957fea4c9acf4b4b99804bdac1dd84/coverage-7.17.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:9d1fdf82c6fea57b5e9dada509f9ce9638c8334664e2c98c7f6f1ccf3d143ad2", size = 259039, upload-time = "2026-10-22T16:04:11.916Z" }, + { url = "https://files.pythonhosted.org/packages/8e/cd/83ad4bbbfcb6d045a33c14cdca313f6c9275737c67f3b7300222e3239a37/coverage-7.17.0-cp311-cp311-win32.whl", hash = "sha256:38c86e5d74bbfd88a393fa3f91257c1225c63aa6db6d5918de3e49ab04f91c6e", size = 227687, upload-time = "2026-10-22T16:04:13.537Z" }, + { url = "https://files.pythonhosted.org/packages/ca/c8/dcc5a7effa79707eb8a61e699b141cff7c9b46036771274cfb48ea7b765f/coverage-7.17.0-cp311-cp311-win_amd64.whl", hash = "sha256:2ed3097c6817bc1a7fc8ae0a6131db74aa1150d863cccc308237ff362d3226b2", size = 228290, upload-time = "2026-10-22T16:04:14.899Z" }, + { url = "https://files.pythonhosted.org/packages/d1/58/a8553e0dcd38d8136df63964638d2b588e0a4a916bff1bca996244fda693/coverage-7.17.0-cp311-cp311-win_arm64.whl", hash = "sha256:6052e878b628abcd38fa5f2b64abebc686eed4e2267da42434017a9c6d24f241", size = 228199, upload-time = "2026-10-22T16:04:16.351Z" }, + { url = "https://files.pythonhosted.org/packages/0a/25/989fd3b495c4274ac0cf54cb6664326415e60183a7f8a73dd9bbb0b11e34/coverage-7.17.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:0cfdc938ca3319d873d1f1252e60620a39aee4ebf9dbd7cc58238109ebda9c51", size = 225938, upload-time = "2026-10-22T16:04:18.113Z" }, + { url = "https://files.pythonhosted.org/packages/db/cb/14726426bf3241657facbf0f7df7babd8f7d3fcf8e4609b7929f9dceecbc/coverage-7.17.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:d523da3c2e4bca49417768bcdb1a443c5b359dc44b8b93a3102e118fce912c40", size = 226166, upload-time = "2026-10-22T16:04:19.524Z" }, + { url = "https://files.pythonhosted.org/packages/8e/97/f95ed32cd3cfbe261a3598e694cb770cefc7b2d13ff013418d6f70a44dde/coverage-7.17.0-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:adbf3450c0f3f2b2854e282a8758f2b3eddf787eeff24ec9c9bc2cbc38328cc1", size = 258462, upload-time = "2026-10-22T16:04:21.079Z" }, + { url = "https://files.pythonhosted.org/packages/91/ac/eb4c31f741509a9ef48cf6f28385e98e9de0785599282252eee252ff8af7/coverage-7.17.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:85932227e9dd38e62cd29c17fefdfecfb919eead6af1e3259522d03cf85de983", size = 261789, upload-time = "2026-10-22T16:04:23.037Z" }, + { url = "https://files.pythonhosted.org/packages/e8/3e/d9cd006d1a3cc5deab07beb29b86cb4a10dd84d66b330820363fb8d310d6/coverage-7.17.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:30f5477aac9c9e4a0a641c55f8f8fddd7f3bd91176c912c50f40ffced96b4034", size = 262322, upload-time = "2026-10-22T16:04:24.94Z" }, + { url = "https://files.pythonhosted.org/packages/c0/3a/4c872c6ae0762b09cdb8e856891bb3f584848cb60b6dda2bacb85fe2f3f0/coverage-7.17.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:0b8bb651a4406fb6a983a905309fec1783443c65e1771b41e92740a0f4a1176b", size = 264600, upload-time = "2026-10-22T16:04:26.444Z" }, + { url = "https://files.pythonhosted.org/packages/df/98/1d41a2373fa98b423bcd70adb91d75e38eafb417955426dbb920b10016f3/coverage-7.17.0-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:0edeb6594f080c8de1263cccb239cb316ef77aeb959e2e0f38f2953fcc72a49e", size = 258678, upload-time = "2026-10-22T16:04:27.832Z" }, + { url = "https://files.pythonhosted.org/packages/92/6a/fe04b5e63e76506daa63d90bdfb00a53767fe5df18546b437d6226918d6b/coverage-7.17.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:da94ec0484e84fce5c7bf8d0f54b97767a90d992653a129b35634699d516e0a5", size = 260210, upload-time = "2026-10-22T16:04:29.275Z" }, + { url = "https://files.pythonhosted.org/packages/4f/c3/5c5a78dc19dd4799be9c6ec022316fb25ababaeacfaf0f52f24c56a57b43/coverage-7.17.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a25cc5e8c23a590815c6a7aa43624234d25cb23b21b484adb8a0daed59860db5", size = 258375, upload-time = "2026-10-22T16:04:30.647Z" }, + { url = "https://files.pythonhosted.org/packages/ed/e7/4c1d8eaff4d756fefd15d58c4953a78ab656782fd0e32c5a3465dba61aa0/coverage-7.17.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:db645c81cf4d6bcb392ea1894aad65d55d1588a8472c834b25ca575da3029a56", size = 262422, upload-time = "2026-10-22T16:04:32.053Z" }, + { url = "https://files.pythonhosted.org/packages/a6/2a/0b17c3e2e7b6ff1a5d92eb58915c0d1026668928f961d14dac73cf1b6096/coverage-7.17.0-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:6a80a11b90c4a03df1502304cf24ff953255b6b5d076ef79066ecf88baaff31f", size = 257875, upload-time = "2026-10-22T16:04:33.824Z" }, + { url = "https://files.pythonhosted.org/packages/d3/2d/eb0cbde0535342df0d17a667163030a3afb67e5eb9e3ad94af9540041584/coverage-7.17.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e4eaf11d6b0f2147f46cfbf06fe7edcca6f095d0120da00ddc2458995ee869fc", size = 260361, upload-time = "2026-10-22T16:04:35.661Z" }, + { url = "https://files.pythonhosted.org/packages/2e/47/1be2a6db7eb655d0a1d899217c3f2469f9121cbbeddac35c1c8173b1482e/coverage-7.17.0-cp312-cp312-win32.whl", hash = "sha256:912a29f338798541d795e2e25903c6fe7a99dee70a40fe4706a9a124649b523e", size = 227747, upload-time = "2026-10-22T16:04:37.102Z" }, + { url = "https://files.pythonhosted.org/packages/11/c5/201c894c57de81875d8b8cc527ba222aa350e8cfb183eb3f6df45d06ad8e/coverage-7.17.0-cp312-cp312-win_amd64.whl", hash = "sha256:88a1a9fb0075b83389dd9b403bb3fce976031b3c2aa0e05e3e57143cf639de69", size = 228325, upload-time = "2026-10-22T16:04:38.989Z" }, + { url = "https://files.pythonhosted.org/packages/0b/5d/196095339b19758cf83f507fb598bc42820ae124745feb3084662729e17a/coverage-7.17.0-cp312-cp312-win_arm64.whl", hash = "sha256:2c680e838ff9e68d491158625ca2c1ddb17d78d791bba96a31f8b839b4990438", size = 228131, upload-time = "2026-10-22T16:04:40.654Z" }, + { url = "https://files.pythonhosted.org/packages/54/e6/1f01afbc9f4fa8ca5e1fa6fdf537a5c58b5765d1b4167ee284cddb9acc72/coverage-7.17.0-cp313-cp313-android_24_arm64_v8a.whl", hash = "sha256:84538c040f4e6214f663459d89372ce4e6b2bbdd9d397ef0dca7b3ecd56b8eb2", size = 227080, upload-time = "2026-10-22T16:04:42.325Z" }, + { url = "https://files.pythonhosted.org/packages/92/7a/bdb7e6260c4a211389aeac9b89dc31662ebe122153ad0ecfd156897912df/coverage-7.17.0-cp313-cp313-android_24_x86_64.whl", hash = "sha256:6abfb6a4cf1cb1b67bc8fccdde177e2d2b781d0d34449e7078156547025140e5", size = 227152, upload-time = "2026-10-22T16:04:43.737Z" }, + { url = "https://files.pythonhosted.org/packages/37/4e/276e7d5b3cfb124871bdb544c27b004a8b4e270e6bf8e7414149c54b5e5b/coverage-7.17.0-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:ef65e96f0fc1a7c8b7644c7011d47a8228555e7888ac4d6246f715a7f3d7c398", size = 225397, upload-time = "2026-10-22T16:04:45.292Z" }, + { url = "https://files.pythonhosted.org/packages/b3/7d/dac073db12f3c131598a6693253aded581e4d7d622a89864f11bfb0ca2f5/coverage-7.17.0-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:55939ea4c097fda2edabf80fac5e49bef15597b950a9f29fc56292a895245feb", size = 225705, upload-time = "2026-10-22T16:04:46.603Z" }, + { url = "https://files.pythonhosted.org/packages/00/45/877b0a9248e921080ae91d115c13192d17e308f5aee86bcc7f7bc2a54ed1/coverage-7.17.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:bfb6f868af552c0ceb2d19220b8cbcc2be096ca26163ac30e682a13041433429", size = 225828, upload-time = "2026-10-22T16:04:48.065Z" }, + { url = "https://files.pythonhosted.org/packages/4f/f5/2c48d47abec0e4590b302920334be5ee3854f96bbd22524feabb8d92b220/coverage-7.17.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:8d823d66afd59566030539c49c7a6acaf3083996682be2dda760c63555842094", size = 226088, upload-time = "2026-10-22T16:04:49.513Z" }, + { url = "https://files.pythonhosted.org/packages/a8/a0/ec0442f3f372c7fd742f49b3022edd392f79e37a0048e1fa333f56d01ec3/coverage-7.17.0-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:50678474e714c684b82c108e63fbb8f1bcf1266d8293a49980f1d08526f093b5", size = 257257, upload-time = "2026-10-22T16:04:50.982Z" }, + { url = "https://files.pythonhosted.org/packages/92/e2/eb0927ba93809f76eee69fa1e47999825fc7dbbabc3e0e1a2744f2677acb/coverage-7.17.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:045c1eeb19fb4eae949850a761102fffb3a5f638b97f977912f95843e54f6669", size = 260165, upload-time = "2026-10-22T16:04:52.409Z" }, + { url = "https://files.pythonhosted.org/packages/9a/a2/8d4c6055efb32099b15c9cc33d007b8aabebc4832f372a3274de5ba0afc5/coverage-7.17.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:dfb12891a773cbc2132349c77c690a045a882fe3f98b4bda50dfabb01893f9bd", size = 261098, upload-time = "2026-10-22T16:04:53.763Z" }, + { url = "https://files.pythonhosted.org/packages/2c/1e/93412288688a7b03f152a734c8ef086e395108a0a6a746985d3967e220f2/coverage-7.17.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:3067608b4429629f640c1b23d2f69b05d2fd45e00ebb6ee9e8fad220a6c11722", size = 263164, upload-time = "2026-10-22T16:04:55.386Z" }, + { url = "https://files.pythonhosted.org/packages/3c/20/7eb8d805c4f1a212245cef20181dfbf39535357985073d49730ee9cf08d4/coverage-7.17.0-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:a1762e85cbbe3b5ff9c6dcbcc1b89d5c72320094292b7b9572bf882c85e428b7", size = 257287, upload-time = "2026-10-22T16:04:56.976Z" }, + { url = "https://files.pythonhosted.org/packages/1a/c1/1df29630b4ed17e135c76390afcc6bd273c3dc5ba2a21a76813a600fe98c/coverage-7.17.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:62bb77987d3f72a0aaa77c567ee7f9806bc2e748c8f46fafbe1fdb90dd148398", size = 259256, upload-time = "2026-10-22T16:04:58.545Z" }, + { url = "https://files.pythonhosted.org/packages/a1/79/2365d1008d28aafe468a450a24c6c63363de794b5140223d67685cd0e205/coverage-7.17.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:6cc31f27240d4e080437e3b8229d92f1d809c9a4f233607385373b73974e183e", size = 257178, upload-time = "2026-10-22T16:05:00.103Z" }, + { url = "https://files.pythonhosted.org/packages/c0/9f/f002952d295d772688dffce0d991e3822795b1e3aad158073712a5a5e86e/coverage-7.17.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:61cde5222f1933d476647c5a25ed1a8678b7703098cb5a15f4a0aa39967d8c28", size = 261275, upload-time = "2026-10-22T16:05:01.462Z" }, + { url = "https://files.pythonhosted.org/packages/40/fe/f9e15fbb426be97cd679ee5d359151e046f103bcd76b5092c318c26ed596/coverage-7.17.0-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:11f5f7fb2d97a0fe865f5e7bad4eb0619b957637f676bc088d13844adf26ba95", size = 257029, upload-time = "2026-10-22T16:05:02.8Z" }, + { url = "https://files.pythonhosted.org/packages/c2/4a/3c398f38694387334ff4c9f71afc8e15b4fa7db7bc0bea4d5b6032eb0df0/coverage-7.17.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6e09612b1b82c9df1d2b6c85dee88d5aad3e73d77a8ec0b16ac6a7322cbdf5d9", size = 259109, upload-time = "2026-10-22T16:05:04.241Z" }, + { url = "https://files.pythonhosted.org/packages/bd/a9/908a3cf1a2335aec1c788682a06c2f742a62a4f987033f080de1c5fd1997/coverage-7.17.0-cp313-cp313-win32.whl", hash = "sha256:bd3e9eb493631ff1ca34bf5efac25b5c66724f837bf6182c4fc771c55946423d", size = 227691, upload-time = "2026-10-22T16:05:05.636Z" }, + { url = "https://files.pythonhosted.org/packages/13/f7/8cdd7bfd8a63b3e6b133fc395ecfc7b1cb6f561926e7e2ad050de85b83e7/coverage-7.17.0-cp313-cp313-win_amd64.whl", hash = "sha256:f1fc9a7cea899c51d8a53e66c2f082a3d9e461ece32418d3ef0a0b90c32bfd3d", size = 228418, upload-time = "2026-10-22T16:05:07.057Z" }, + { url = "https://files.pythonhosted.org/packages/09/cf/0b3fc57f735cd3831ca13d0be5312a5477d5934066683c5d34018cab7541/coverage-7.17.0-cp313-cp313-win_arm64.whl", hash = "sha256:e65a1e61a68493fbfbe44d8bec71b3231d81b9917f62d3dafe0e105072147e83", size = 228142, upload-time = "2026-10-22T16:05:08.435Z" }, + { url = "https://files.pythonhosted.org/packages/4d/e1/722462fe79912ebebc101497bd16c42413cde2dbae771017f1ec0acb84c2/coverage-7.17.0-cp314-cp314-android_24_arm64_v8a.whl", hash = "sha256:dc5936491e306f2f6f095bd5fba593de11eb0375cee787ca1f245c3a333a523a", size = 227197, upload-time = "2026-10-22T16:05:09.846Z" }, + { url = "https://files.pythonhosted.org/packages/b7/74/826b9c09f2ebfea803bccb391d935688a25309bff8e819fc446bc629c108/coverage-7.17.0-cp314-cp314-android_24_x86_64.whl", hash = "sha256:968c5fb6e0c83cab752d79a70209648ce4d90cae815c60fa229b59e264601062", size = 227314, upload-time = "2026-10-22T16:05:11.422Z" }, + { url = "https://files.pythonhosted.org/packages/6d/19/c8514d7f5e0659a96ff2bc7377119dca6d420e2761c5fc69ae37618734f8/coverage-7.17.0-cp314-cp314-ios_13_0_arm64_iphoneos.whl", hash = "sha256:12cb8a20ad904a5811e6660d829a586b216e5254b9b34b76dde8a4d65d827dc6", size = 225477, upload-time = "2026-10-22T16:05:12.761Z" }, + { url = "https://files.pythonhosted.org/packages/81/74/ef9433ce599f07d8633b4ce6e6d6921505c4ef3f7f9006f8eb66e2c278cf/coverage-7.17.0-cp314-cp314-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:bb5ca66937c55bc85d1a5e9c5900a3e4693a8edf2280a9b3672b7b2661a84b95", size = 225787, upload-time = "2026-10-22T16:05:14.394Z" }, + { url = "https://files.pythonhosted.org/packages/d8/66/26e58981940e8b3944c6a9941bec5c7f50840e7009a046712e3f3bcd9e6a/coverage-7.17.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:5cc15faaf318ee5040d835a62c75bc6f122d837274f3b5efd47bf9fbd4ac5b85", size = 226019, upload-time = "2026-10-22T16:05:15.798Z" }, + { url = "https://files.pythonhosted.org/packages/e9/63/fe175310815cc8357b83b773c9b4c20943c269f217dd825a37c4b4bfe324/coverage-7.17.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:7d6d9d396c8b7bcaf76d774a10140b218111484e54c73a5f2a1b75655381748e", size = 226169, upload-time = "2026-10-22T16:05:17.188Z" }, + { url = "https://files.pythonhosted.org/packages/2c/b0/ac84761f5b4bd226696b0ec4606903d2ef7208abda0aec06c14a4218def4/coverage-7.17.0-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:42e6f170d1ac04b7eb3363310a6c41cdfd82c1fe6bf9ffbc4a86f380bdf091c7", size = 258092, upload-time = "2026-10-22T16:05:18.691Z" }, + { url = "https://files.pythonhosted.org/packages/e9/58/d8bdd65a661913bc12eaaa3e59742b2cb8b94f2e7f78e62184f0a58ca493/coverage-7.17.0-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:acdb5f3c96046efff9dc6c572a6acb2b8d0da09372d7b9a9ed7249cf7d17434f", size = 261096, upload-time = "2026-10-22T16:05:20.089Z" }, + { url = "https://files.pythonhosted.org/packages/7b/15/5d82e2f0a75ea149e0a6412e137e1d610538772fdfd7199737db7fe234da/coverage-7.17.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3393209f6894713161ee82a9b0e673e58237e0f9733c6638e7a6c0c620ef0b33", size = 262080, upload-time = "2026-10-22T16:05:21.568Z" }, + { url = "https://files.pythonhosted.org/packages/0f/cc/e3ebfd295d1dd47c7bc84a17d73f150465a37ab388dd68fe82b495dc79a0/coverage-7.17.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:e9494d9e99389d39e6a96227749af898d8924ff591cb63944f8a98e68582bf0e", size = 264558, upload-time = "2026-10-22T16:05:22.906Z" }, + { url = "https://files.pythonhosted.org/packages/e0/9d/e2adff76d6544bbc6df7366d74967923c2de37ba889a006bfb875bf5857b/coverage-7.17.0-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:032d4c2db4c677eb71d43f2f8b80bf64e9346f7a3f7b6ebb13f1782f3cc6c274", size = 257855, upload-time = "2026-10-22T16:05:24.343Z" }, + { url = "https://files.pythonhosted.org/packages/d9/fd/ecd1e9cddf1c36b5d03c438568b1f53e63db84bb3656539d71b454484c7d/coverage-7.17.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:4343a9378b964eb3cb80fa90406385de91c7e982a769ca9314d848f93bc0d3f2", size = 259933, upload-time = "2026-10-22T16:05:25.79Z" }, + { url = "https://files.pythonhosted.org/packages/40/b6/e17a19dccdbcad494c64691f71c1dba3e55c30625bc29ffbb88ac5a0aa8b/coverage-7.17.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:b609df3d6d900464207532c5170a65c6ede8d2e0b91f151f90008a866395cd76", size = 257972, upload-time = "2026-10-22T16:05:27.185Z" }, + { url = "https://files.pythonhosted.org/packages/6a/0d/37dac534709a3fa43a937c8b0604839bb44b8670b83d143a4b78fec20d1e/coverage-7.17.0-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:a01ef92caeedfa4f2ad171a3a8e6fece4565de871d8bca428151bf9929f41048", size = 262271, upload-time = "2026-10-22T16:05:28.619Z" }, + { url = "https://files.pythonhosted.org/packages/cb/17/7c05186925b4d64a46c271dfd944e3f0c1ad89db9095c31a6df157a75df2/coverage-7.17.0-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:a3914e2c98c34b94c26d2add3d2a61ccfd3534fc4eaa879ee290bdbb5184ba6c", size = 257604, upload-time = "2026-10-22T16:05:30.07Z" }, + { url = "https://files.pythonhosted.org/packages/95/65/c241cdee66a0ff86c68f6d37328e735d10e3d30cd6ff66f356039eb688d2/coverage-7.17.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:e8a72b26dc5c9a9422e45472b1d67ba5caf273c524c8668cc04b23062663755e", size = 259714, upload-time = "2026-10-22T16:05:31.402Z" }, + { url = "https://files.pythonhosted.org/packages/db/09/e93233fe2405574ce0a31ed201c0cba3a860e085db5d2828bf12b7dc0790/coverage-7.17.0-cp314-cp314-win32.whl", hash = "sha256:03baf0688e14a5a44ffd1eefa8928dfc92b14565e521174e072b31b971aa1657", size = 227914, upload-time = "2026-10-22T16:05:32.78Z" }, + { url = "https://files.pythonhosted.org/packages/d7/77/04979eb217edb94b94afabb4bcc179f60c746f68d3fd0b12688ba9195730/coverage-7.17.0-cp314-cp314-win_amd64.whl", hash = "sha256:3a4459b0f389dd1e51aac3dbfc4ca35b30cae7dc99caa3c0a086d1997a985709", size = 228543, upload-time = "2026-10-22T16:05:34.118Z" }, + { url = "https://files.pythonhosted.org/packages/a0/38/155f2f2c6769f8c43eca8a5e581443faa0908828650090b97103b4a41376/coverage-7.17.0-cp314-cp314-win_arm64.whl", hash = "sha256:a32ee5831b15ba239bef5d272ae586ca8acea4a661b5f2941f5a0d380e518b23", size = 228396, upload-time = "2026-10-22T16:05:35.951Z" }, + { url = "https://files.pythonhosted.org/packages/52/55/d6751572d9445485c4c5a51ec6ae11caa5c11b7ef2448cdccc884f7f54d9/coverage-7.17.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:9c083e253e96fdeeaf48133fe836cac86ace2db215d235700e7f7532420a200c", size = 226486, upload-time = "2026-10-22T16:05:37.363Z" }, + { url = "https://files.pythonhosted.org/packages/2f/a8/82d37760e537bfdb9fdee285fa1e1b45bc153293d23e2331c7befedd1990/coverage-7.17.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:b88fb4d4d7608cbcebdc7ff7dbffc2115e3b81d6c33a79147cd79d54fcb080f4", size = 226861, upload-time = "2026-10-22T16:05:38.777Z" }, + { url = "https://files.pythonhosted.org/packages/24/96/70ec00a9db6d7bdd3f914eba12057360769f5cb78a98456e71fe1937deb5/coverage-7.17.0-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:2bf3ee38a40c0570c316b9e7507c472469586906a20f289705898528c31aaea8", size = 266849, upload-time = "2026-10-22T16:05:40.285Z" }, + { url = "https://files.pythonhosted.org/packages/77/d8/d99be3bfbb208512f039c80b31e404138a86678fc929a17acd5b7135a6ae/coverage-7.17.0-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:7c570293f001ea91598b90e90cb9b98fddee833e90bbede432cbd218331ccd8e", size = 269402, upload-time = "2026-10-22T16:05:41.585Z" }, + { url = "https://files.pythonhosted.org/packages/82/50/6cbe8b5a5060edbd21ce8109c4e900f8b7656e8b72ede6dc4d82dc0b8bfb/coverage-7.17.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:791f9ee09814dd30d9562b4f4eb037a371485ec1c830b53999d2320d20c4e764", size = 272025, upload-time = "2026-10-22T16:05:42.921Z" }, + { url = "https://files.pythonhosted.org/packages/bd/05/d3633add01e5518dfdacfdbd1be41cb5c581412dd8bccd663edf6ef7fec8/coverage-7.17.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c7c5672ecf1b497de7a0b37743bef40e3b58e3207e9fe2ed6682cb0420836a88", size = 273515, upload-time = "2026-10-22T16:05:44.324Z" }, + { url = "https://files.pythonhosted.org/packages/57/d9/b83387780271bf9ea9f96a3aeb01c1c302c4494a927923c4fa70cd170a3f/coverage-7.17.0-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:337f87e62e1c5f43c8198d879f677c342d152f84d3f157add12558853cbb8eaf", size = 266725, upload-time = "2026-10-22T16:05:45.713Z" }, + { url = "https://files.pythonhosted.org/packages/e4/be/8e80b29764ae3f4d70d44952eee3f3927eb36897490fe799e400adb7f5da/coverage-7.17.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:c8a58baa8eb6154c6645eadcc19b6c089deab78c24a612a83206f2a8a5992a7c", size = 269312, upload-time = "2026-10-22T16:05:47.054Z" }, + { url = "https://files.pythonhosted.org/packages/b8/c9/e702f588fe8d83ca844f133270ad0a49bf650c8cf260551ff6f11a6b6bbf/coverage-7.17.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:fb5745048ee20f796b0e3ab61831049e749acff188563e2af32f58ede957ac1b", size = 266740, upload-time = "2026-10-22T16:05:48.343Z" }, + { url = "https://files.pythonhosted.org/packages/8a/11/ee13ad14b714d75ef07c490b6e43969574a8b8b8c6d67bc741fcbacbf9c3/coverage-7.17.0-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:7b5abcae74750302ac4bc77351eaee87c450e4abd3b6225eacde3858e260f8b2", size = 271036, upload-time = "2026-10-22T16:05:49.727Z" }, + { url = "https://files.pythonhosted.org/packages/e2/bc/854e8912c11c54aaf416e74602000589c6efbbe1f251dc90202fdabddcb6/coverage-7.17.0-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:4e153f0bd6509dbf837fd585f489b3328bfd98f2a718a0b15ae63032148b285c", size = 266158, upload-time = "2026-10-22T16:05:51.141Z" }, + { url = "https://files.pythonhosted.org/packages/a8/dd/96432830ddf63bc42654de54eee77a0cd6949cc65769bda06f353323f23a/coverage-7.17.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:e42a835271922fe7bf98c7a05c78d4032f4e52bf5b07fafa1eadfdfc2f0ad22f", size = 268088, upload-time = "2026-10-22T16:05:52.92Z" }, + { url = "https://files.pythonhosted.org/packages/ce/ee/230c6ec065a6629d41cc89323ceb54d37e2650c104f70fc108f4ee7c5051/coverage-7.17.0-cp314-cp314t-win32.whl", hash = "sha256:5900055351ec89fdffb34b27898815106529ded29a9496464c1ebd6313fd40fa", size = 228229, upload-time = "2026-10-22T16:05:54.255Z" }, + { url = "https://files.pythonhosted.org/packages/f0/1d/23eb6aadcb3c00764ff2961c0ff55f5dfa2543856d932b949bbc04fa68e9/coverage-7.17.0-cp314-cp314t-win_amd64.whl", hash = "sha256:5ee9c8bd13a59e301dc2aefe7aa8384633406808de051b1982775667094eb673", size = 229154, upload-time = "2026-10-22T16:05:55.682Z" }, + { url = "https://files.pythonhosted.org/packages/3e/f1/7df117e8e016b7a3ee459e833b3456f3610505afefd071f8727702d98439/coverage-7.17.0-cp314-cp314t-win_arm64.whl", hash = "sha256:0a9cb9a0fb58e6fff5442969af36094ecd6976f4907f179e33b27e15355d8f74", size = 228726, upload-time = "2026-10-22T16:05:57.179Z" }, + { url = "https://files.pythonhosted.org/packages/9f/a1/f9c24911755f91e6f451ca2e2c1804fbcbe9fecbc3310e341bbbbfa1d85b/coverage-7.17.0-cp315-cp315-android_24_arm64_v8a.whl", hash = "sha256:adabc1079ba844b096799ba8638d8df434aca1613f95bb7d5791af320cf05559", size = 227196, upload-time = "2026-10-22T16:05:58.543Z" }, + { url = "https://files.pythonhosted.org/packages/b0/a5/2b665b40c626e6bb40e5e8e23d91170b48b5f2f57186f46b07f2fac42386/coverage-7.17.0-cp315-cp315-android_24_x86_64.whl", hash = "sha256:6b4593d2871c4c801656dd5861e759f8f5156febd6b6061b02f6a72d64618b7b", size = 227315, upload-time = "2026-10-22T16:06:00.409Z" }, + { url = "https://files.pythonhosted.org/packages/3d/8c/22b518d61b930b8a4d62905d046c76a03675ef19b466462011dfb16439a3/coverage-7.17.0-cp315-cp315-ios_13_0_arm64_iphoneos.whl", hash = "sha256:c2c48a36bb970b7265b196032bfd4237c0b373f2b25ef7012d7e905b5b35c19c", size = 225490, upload-time = "2026-10-22T16:06:01.743Z" }, + { url = "https://files.pythonhosted.org/packages/08/5b/d3b141455944e030cd4987f055f8c84a44a1a0b28d81ae93389f44051691/coverage-7.17.0-cp315-cp315-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:f8bc2cd4c6aa58be1ca243fb8cddb6c3c42031fe4403991ad9cf2b3baed03d9f", size = 225797, upload-time = "2026-10-22T16:06:03.423Z" }, + { url = "https://files.pythonhosted.org/packages/03/24/aab2156983f7022361352640c583d08f0238e4cd7463eb921172001b4cfe/coverage-7.17.0-cp315-cp315-macosx_10_15_x86_64.whl", hash = "sha256:cbf0b83ce927de6053279ba61342d9f8892afde1385fcba9144cd05d4023d109", size = 226025, upload-time = "2026-10-22T16:06:04.76Z" }, + { url = "https://files.pythonhosted.org/packages/87/db/94697b9ccf4ec94cdad07bf94e2a21b9702247cb212d2d5f18d2b9c3d0de/coverage-7.17.0-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:66efc0fb99cee34626fc17d3adac9c3cd816bfdad563bb1e983c3ef432f566d4", size = 226193, upload-time = "2026-10-22T16:06:06.167Z" }, + { url = "https://files.pythonhosted.org/packages/a0/fd/db1c4ade4219831d590fff5aa5b7d9ceaf84586e8e60da6fff71b6182251/coverage-7.17.0-cp315-cp315-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:58a304efdf2253fb2ea03d45d0a04cc174a92a0cd5279c28c5bb893ce7410968", size = 258046, upload-time = "2026-10-22T16:06:07.51Z" }, + { url = "https://files.pythonhosted.org/packages/95/ee/84ed138990ed752abd73db4adffc1842d6152017d8e21809cc109a413fda/coverage-7.17.0-cp315-cp315-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:aed06129a9f530a948928260d7d2d81c47261355b0127e3c782251b38958463c", size = 261735, upload-time = "2026-10-22T16:06:08.861Z" }, + { url = "https://files.pythonhosted.org/packages/64/ad/c1e4367bbd1e7d562d6bc979c82b542f2040544e95a8cd995b694caf0e1a/coverage-7.17.0-cp315-cp315-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f6cdb47a9be2d3313829bed1d296086287682a3ee901ff987b3432b45705b771", size = 262819, upload-time = "2026-10-22T16:06:10.49Z" }, + { url = "https://files.pythonhosted.org/packages/b5/3a/e8e8509b0940403eab15d86f70022790a01fce3e971a161919c544953f7a/coverage-7.17.0-cp315-cp315-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:804fbaf81d09b34e2f8b1159d01e211a50713d743d32fd9b2ca6cf0ae507a66f", size = 265194, upload-time = "2026-10-22T16:06:11.847Z" }, + { url = "https://files.pythonhosted.org/packages/1f/77/d64bbdbb734b1059ebcde2b5df567f142a9948079e51af9b0abf8c9ec17b/coverage-7.17.0-cp315-cp315-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:b2afebb96da9a1bbca142f8cc12320c14e5c215e0a49cded4f191f5a31506a28", size = 258410, upload-time = "2026-10-22T16:06:13.234Z" }, + { url = "https://files.pythonhosted.org/packages/e2/29/7cf81f08a254532c074eb52cfe6b12bb753d08f2997269c9fac8de359541/coverage-7.17.0-cp315-cp315-musllinux_1_2_aarch64.whl", hash = "sha256:bd04fd23206be9ad3de13b0b39313094fafa66a1f6baf70f5471c004a9fac47d", size = 260697, upload-time = "2026-10-22T16:06:14.595Z" }, + { url = "https://files.pythonhosted.org/packages/7f/56/bacea6dee2d5ccb31ab0cfffcee87ca7efa80ff048840209c8013aeaf02e/coverage-7.17.0-cp315-cp315-musllinux_1_2_i686.whl", hash = "sha256:5ebfbc87836529a31d25c2dec1262c38eea852ec1c46c0f690a515a7339d9c5b", size = 258649, upload-time = "2026-10-22T16:06:16.265Z" }, + { url = "https://files.pythonhosted.org/packages/a4/97/fd8a6a63740f9ee177c53b59e2f4d0752369bb0fd154086a1e69aa1fb255/coverage-7.17.0-cp315-cp315-musllinux_1_2_ppc64le.whl", hash = "sha256:a59c3b470ac3b2432af3598a996affbeb10236cd899a005c1c4e517fcff8b592", size = 262989, upload-time = "2026-10-22T16:06:17.85Z" }, + { url = "https://files.pythonhosted.org/packages/c1/37/7cd3d3520d45db3788456452b65446182c08f2a7c276f40c9dd11966be02/coverage-7.17.0-cp315-cp315-musllinux_1_2_riscv64.whl", hash = "sha256:7fef12cec4b96f59e09761cbd4fc9bdf4788062d1ae435b920241fc16c8a9549", size = 257955, upload-time = "2026-10-22T16:06:19.563Z" }, + { url = "https://files.pythonhosted.org/packages/c1/b9/80343a55e07d854927a915cc21a52e350ae1db9ead33f0248507b960785f/coverage-7.17.0-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:a14e8d69464da9cbe1dc29e7116dbd37296d1d51a695327c478e250349085089", size = 260512, upload-time = "2026-10-22T16:06:21.055Z" }, + { url = "https://files.pythonhosted.org/packages/f3/32/e4c816f0cb3efdc6392bb276ff88359729f9dec605bdd3c1c7a44776f759/coverage-7.17.0-cp315-cp315-win32.whl", hash = "sha256:9a66074231799d8884d267234d49f60c90b43a945dfe069646b72f3058cd4e67", size = 227913, upload-time = "2026-10-22T16:06:22.407Z" }, + { url = "https://files.pythonhosted.org/packages/43/14/283120142ac281834808584249b89957de997c28573ddd65ae106b622121/coverage-7.17.0-cp315-cp315-win_amd64.whl", hash = "sha256:79cf71e5f9a48877ccfed5baa2c72f45af4feeaa596249e23eb15b473134830e", size = 228532, upload-time = "2026-10-22T16:06:23.756Z" }, + { url = "https://files.pythonhosted.org/packages/b9/bc/83dbc6c3bd58042afaefcb0cfd7d7a2e3076989a2f3d9bc6e6edac819784/coverage-7.17.0-cp315-cp315-win_arm64.whl", hash = "sha256:09e563b49c81cd0a33734e926d7a4a6ef1778d74304cde2dcc3aff8b30ea1036", size = 228393, upload-time = "2026-10-22T16:06:25.163Z" }, + { url = "https://files.pythonhosted.org/packages/00/ed/9463d1cb1766a2570343a372c2871c7fb4d561e5051f029399f4d57ce947/coverage-7.17.0-cp315-cp315t-macosx_10_15_x86_64.whl", hash = "sha256:a5e2e0625dfc789af0b2e10acfc106b352f314fffbd19e6392a7961c8cbe5d9a", size = 226481, upload-time = "2026-10-22T16:06:26.563Z" }, + { url = "https://files.pythonhosted.org/packages/ae/59/6536c7fa87be13236b4184fc395f14d18f622a5b8ef7448a6bfdf5f24ec0/coverage-7.17.0-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:194562ab1eff0d85aee8a17ce4c5c0bc1ebf70a629a7145257123156ad100fd6", size = 226876, upload-time = "2026-10-22T16:06:27.921Z" }, + { url = "https://files.pythonhosted.org/packages/b0/bc/4ffae6038f78382c9ab6a4969cb5fc01d50b083d119851085807629abe88/coverage-7.17.0-cp315-cp315t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:85682ca89bc4601125dcdff23fa70e6274e13c9ad502fba845e6c274ab2c6569", size = 267241, upload-time = "2026-10-22T16:06:29.356Z" }, + { url = "https://files.pythonhosted.org/packages/c0/60/cae4b708b4217d33ebf66b9c57f8910a257346b3eaf054a78d73605ddc4c/coverage-7.17.0-cp315-cp315t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:0d0fac604a962ff546beb038cba9a5a09d88e6e3f01612fb46f7bd4fe5dc8dca", size = 270079, upload-time = "2026-10-22T16:06:30.736Z" }, + { url = "https://files.pythonhosted.org/packages/a9/84/1225ab04e55a6a2e483e903a5eb0f8f081cb5325df833594534aa288d91c/coverage-7.17.0-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:72edd4f9483ae30cd1ba4f230687840ef7b58a16afb1c9e81131fd6d64655f36", size = 272775, upload-time = "2026-10-22T16:06:32.247Z" }, + { url = "https://files.pythonhosted.org/packages/94/ad/567f8dd9246a553aa8753732c41f0e0654e98e9a617d6282e64eae0e6aa8/coverage-7.17.0-cp315-cp315t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:91e487ad07c511da77b574820141a7c2da09bc2a4b4090b5be2424295d100697", size = 274110, upload-time = "2026-10-22T16:06:33.859Z" }, + { url = "https://files.pythonhosted.org/packages/66/5f/e0ee76895df40601e4aedffb6b8e71ea48e276a629fb4488b92cffffca14/coverage-7.17.0-cp315-cp315t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:1cabb31531002fef5197de5df3c84730aef01e750e25154b9813a2583435aba2", size = 267775, upload-time = "2026-10-22T16:06:35.193Z" }, + { url = "https://files.pythonhosted.org/packages/19/6d/d19c6e45e940e5b9ba697b7be9a8e63cef73d90bdea45b670a59df466717/coverage-7.17.0-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:c9ac886242bbd50fb35a2242ba79555a99891e657da33f98b7ca968e3488a350", size = 270268, upload-time = "2026-10-22T16:06:36.597Z" }, + { url = "https://files.pythonhosted.org/packages/27/a3/b2731bb7aef2db800b330603675c3fa58a6497a05d5b5f8625f3b6285f68/coverage-7.17.0-cp315-cp315t-musllinux_1_2_i686.whl", hash = "sha256:d45cdc495671fc99268ff3653e0da4244972e9fc0e1fc3ea9de18781ad28963a", size = 267298, upload-time = "2026-10-22T16:06:37.973Z" }, + { url = "https://files.pythonhosted.org/packages/50/75/d0c90a81b6b6607933109914dc8b0ef0a5f4cacf9482ca868ae773ee5d0b/coverage-7.17.0-cp315-cp315t-musllinux_1_2_ppc64le.whl", hash = "sha256:12961f738d717a046d4bf3f8d1727eb3ebe2ed5478ff96cd6233d4dfc39323d3", size = 271899, upload-time = "2026-10-22T16:06:39.389Z" }, + { url = "https://files.pythonhosted.org/packages/64/1e/f038f3a2614e9ef839a40a184713aca40b8ed79e626ab5cdc388771045df/coverage-7.17.0-cp315-cp315t-musllinux_1_2_riscv64.whl", hash = "sha256:1ee0a982b0e1230b3edf768a7dd022bd2377303763895327ac62deb5efacee03", size = 267380, upload-time = "2026-10-22T16:06:40.97Z" }, + { url = "https://files.pythonhosted.org/packages/c9/30/8d636e639b2d8b1934128573402a7caf66c8cfbc794fa02061d84f115c34/coverage-7.17.0-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:460679f53893081edb94eeed011d26be37228ba649b853fd2aed7e4394fb1f35", size = 268993, upload-time = "2026-10-22T16:06:42.361Z" }, + { url = "https://files.pythonhosted.org/packages/73/7a/219f6b391cb0636242d06c390a8add5af91afa3e92afd0380dbedd34f487/coverage-7.17.0-cp315-cp315t-win32.whl", hash = "sha256:600e121e412cd6bdb52ec105b95c6a04da0c9710d1534f6e64a42db667907802", size = 228216, upload-time = "2026-10-22T16:06:43.714Z" }, + { url = "https://files.pythonhosted.org/packages/f0/3f/514d294319c5eac11494394545de209079f33993e14526c220eab29b2a96/coverage-7.17.0-cp315-cp315t-win_amd64.whl", hash = "sha256:c3e11b81faafb1f063248735c3e2c5c4183fc1db2c7f46782170dd7760dffcbc", size = 229146, upload-time = "2026-10-22T16:06:45.262Z" }, + { url = "https://files.pythonhosted.org/packages/f6/82/c0d8bb0a67df838fc7bc6f4060ffc404fd1154fd18e624d83e6abc41aeef/coverage-7.17.0-cp315-cp315t-win_arm64.whl", hash = "sha256:d472ee1c64868a917a47f02ffb4ac8c22b477f7589d57a3eb0c58b1ad4f0137c", size = 228716, upload-time = "2026-10-22T16:06:47.097Z" }, + { url = "https://files.pythonhosted.org/packages/c9/17/48032919343afa2906112d458aceda2043afdb24a2ee8eb4c60904d8ddf1/coverage-7.17.0-py3-none-any.whl", hash = "sha256:bac487dce0d2aff28ddf1a533a916f771416eee0e493960f611e49037b878e9d", size = 217383, upload-time = "2026-10-22T16:06:48.471Z" }, ] [[package]] @@ -1533,7 +1683,8 @@ name = "cuda-bindings" version = "13.4.4" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "cuda-pathfinder" }, + { name = "cuda-pathfinder", version = "1.8.3", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.11' and sys_platform == 'linux') or (python_full_version < '3.11' and sys_platform == 'win32')" }, + { name = "cuda-pathfinder", version = "1.8.4", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version >= '3.11' and sys_platform == 'linux') or (python_full_version >= '3.11' and sys_platform == 'win32')" }, ] wheels = [ { url = "https://files.pythonhosted.org/packages/9b/1e/d90a8af3d589776c70e92d43d7a0234260709a1d552d105f4dd3bdf48fa3/cuda_bindings-13.4.4-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:90f85a00fc89dd4a8f7c4beb0a2f3f788b845c8496fe84adc1217830206db9e0", size = 6512106, upload-time = "2026-10-14T12:35:04.07Z" }, @@ -1558,10 +1709,29 @@ wheels = [ name = "cuda-pathfinder" version = "1.8.3" source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "(python_full_version < '3.11' and sys_platform == 'linux') or (python_full_version < '3.11' and sys_platform == 'win32')", +] wheels = [ { url = "https://files.pythonhosted.org/packages/b9/fb/f8e1890428f9f590b4beebd63b068aac1ce32a3331510c847b9f9a78f261/cuda_pathfinder-1.8.3-py3-none-any.whl", hash = "sha256:e29e59829c297a7a5233bd9cc71094fc5bddbd076951482670178f9eade39b1f", size = 62561, upload-time = "2026-10-02T03:20:23.712Z" }, ] +[[package]] +name = "cuda-pathfinder" +version = "1.8.4" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "(python_full_version >= '3.14' and sys_platform == 'linux') or (python_full_version >= '3.14' and sys_platform == 'win32')", + "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'", + "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", + "(python_full_version == '3.12.*' and platform_machine != 'x86_64' and sys_platform == 'linux') or (python_full_version == '3.12.*' and sys_platform == 'win32')", + "(python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'linux') or (python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'win32')", + "(python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'linux') or (python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'win32')", +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/8e/93/f0904fa7d954ecc4c0db17c8d63d185d442dd59fc6757f1d1f448c59c256/cuda_pathfinder-1.8.4-py3-none-any.whl", hash = "sha256:85a4e708c725d603f576042ef32781a3d1737c51e84c35fe361d2680191af65a", size = 62594, upload-time = "2026-10-22T21:49:19.246Z" }, +] + [[package]] name = "cuda-toolkit" version = "13.0.2" @@ -1575,37 +1745,37 @@ wheels = [ [package.optional-dependencies] cublas = [ - { name = "nvidia-cublas", version = "13.1.0.3", source = { registry = "https://pypi.org/simple" } }, + { name = "nvidia-cublas", version = "13.1.0.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'" }, ] cudart = [ - { name = "nvidia-cuda-runtime" }, + { name = "nvidia-cuda-runtime", marker = "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'" }, ] cufft = [ - { name = "nvidia-cufft" }, + { name = "nvidia-cufft", marker = "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'" }, ] cufile = [ - { name = "nvidia-cufile" }, + { name = "nvidia-cufile", marker = "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'" }, ] cupti = [ - { name = "nvidia-cuda-cupti" }, + { name = "nvidia-cuda-cupti", marker = "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'" }, ] curand = [ - { name = "nvidia-curand" }, + { name = "nvidia-curand", marker = "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'" }, ] cusolver = [ - { name = "nvidia-cusolver" }, + { name = "nvidia-cusolver", marker = "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'" }, ] cusparse = [ - { name = "nvidia-cusparse" }, + { name = "nvidia-cusparse", marker = "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'" }, ] nvjitlink = [ - { name = "nvidia-nvjitlink", version = "13.0.88", source = { registry = "https://pypi.org/simple" } }, + { name = "nvidia-nvjitlink", version = "13.0.88", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'" }, ] nvrtc = [ - { name = "nvidia-cuda-nvrtc" }, + { name = "nvidia-cuda-nvrtc", marker = "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'" }, ] nvtx = [ - { name = "nvidia-nvtx" }, + { name = "nvidia-nvtx", marker = "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'" }, ] [[package]] @@ -1626,43 +1796,43 @@ wheels = [ [package.optional-dependencies] cublas = [ - { name = "nvidia-cublas", version = "13.1.1.3", source = { registry = "https://pypi.org/simple" }, marker = "platform_machine == 'aarch64' or platform_machine == 'x86_64'" }, - { name = "nvidia-cuda-nvrtc", marker = "platform_machine == 'aarch64' or platform_machine == 'x86_64'" }, + { name = "nvidia-cublas", version = "13.1.1.3", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version != '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux') or (platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'AMD64' and sys_platform == 'win32')" }, + { name = "nvidia-cuda-nvrtc", marker = "(python_full_version != '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux') or (platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'AMD64' and sys_platform == 'win32')" }, ] cudart = [ - { name = "nvidia-cuda-runtime", marker = "platform_machine == 'aarch64' or platform_machine == 'x86_64'" }, + { name = "nvidia-cuda-runtime", marker = "(python_full_version != '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux') or (platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'AMD64' and sys_platform == 'win32')" }, ] cufft = [ - { name = "nvidia-cufft", marker = "platform_machine == 'aarch64' or platform_machine == 'x86_64'" }, - { name = "nvidia-nvjitlink", version = "13.4.92", source = { registry = "https://pypi.org/simple" }, marker = "platform_machine == 'aarch64' or platform_machine == 'x86_64'" }, + { name = "nvidia-cufft", marker = "(python_full_version != '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux') or (platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'AMD64' and sys_platform == 'win32')" }, + { name = "nvidia-nvjitlink", version = "13.4.92", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version != '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux') or (platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'AMD64' and sys_platform == 'win32')" }, ] cufile = [ - { name = "nvidia-cufile", marker = "platform_machine == 'aarch64' or platform_machine == 'x86_64'" }, + { name = "nvidia-cufile", marker = "(python_full_version != '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux') or (platform_machine == 'aarch64' and sys_platform == 'linux')" }, ] cupti = [ - { name = "nvidia-cuda-cupti", marker = "platform_machine == 'aarch64' or platform_machine == 'x86_64'" }, + { name = "nvidia-cuda-cupti", marker = "(python_full_version != '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux') or (platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'AMD64' and sys_platform == 'win32')" }, ] curand = [ - { name = "nvidia-curand", marker = "platform_machine == 'aarch64' or platform_machine == 'x86_64'" }, + { name = "nvidia-curand", marker = "(python_full_version != '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux') or (platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'AMD64' and sys_platform == 'win32')" }, ] cusolver = [ - { name = "nvidia-cublas", version = "13.1.1.3", source = { registry = "https://pypi.org/simple" }, marker = "platform_machine == 'aarch64' or platform_machine == 'x86_64'" }, - { name = "nvidia-cusolver", marker = "platform_machine == 'aarch64' or platform_machine == 'x86_64'" }, - { name = "nvidia-cusparse", marker = "platform_machine == 'aarch64' or platform_machine == 'x86_64'" }, - { name = "nvidia-nvjitlink", version = "13.4.92", source = { registry = "https://pypi.org/simple" }, marker = "platform_machine == 'aarch64' or platform_machine == 'x86_64'" }, + { name = "nvidia-cublas", version = "13.1.1.3", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version != '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux') or (platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'AMD64' and sys_platform == 'win32')" }, + { name = "nvidia-cusolver", marker = "(python_full_version != '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux') or (platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'AMD64' and sys_platform == 'win32')" }, + { name = "nvidia-cusparse", marker = "(python_full_version != '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux') or (platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'AMD64' and sys_platform == 'win32')" }, + { name = "nvidia-nvjitlink", version = "13.4.92", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version != '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux') or (platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'AMD64' and sys_platform == 'win32')" }, ] cusparse = [ - { name = "nvidia-cusparse", marker = "platform_machine == 'aarch64' or platform_machine == 'x86_64'" }, - { name = "nvidia-nvjitlink", version = "13.4.92", source = { registry = "https://pypi.org/simple" }, marker = "platform_machine == 'aarch64' or platform_machine == 'x86_64'" }, + { name = "nvidia-cusparse", marker = "(python_full_version != '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux') or (platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'AMD64' and sys_platform == 'win32')" }, + { name = "nvidia-nvjitlink", version = "13.4.92", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version != '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux') or (platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'AMD64' and sys_platform == 'win32')" }, ] nvjitlink = [ - { name = "nvidia-nvjitlink", version = "13.4.92", source = { registry = "https://pypi.org/simple" }, marker = "platform_machine == 'aarch64' or platform_machine == 'x86_64'" }, + { name = "nvidia-nvjitlink", version = "13.4.92", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version != '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux') or (platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'AMD64' and sys_platform == 'win32')" }, ] nvrtc = [ - { name = "nvidia-cuda-nvrtc", marker = "platform_machine == 'aarch64' or platform_machine == 'x86_64'" }, + { name = "nvidia-cuda-nvrtc", marker = "(python_full_version != '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux') or (platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'AMD64' and sys_platform == 'win32')" }, ] nvtx = [ - { name = "nvidia-nvtx", marker = "platform_machine == 'aarch64' or platform_machine == 'x86_64'" }, + { name = "nvidia-nvtx", marker = "(python_full_version != '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux') or (platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'AMD64' and sys_platform == 'win32')" }, ] [[package]] @@ -1674,147 +1844,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl", hash = "sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30", size = 8321, upload-time = "2023-10-07T05:32:16.783Z" }, ] -[[package]] -name = "cysignals" -version = "1.12.5" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'darwin'", - "(python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'linux') or (python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'win32')", - "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", - "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'darwin'", - "(python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'linux') or (python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'win32')", - "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "(python_full_version < '3.11' and sys_platform == 'linux') or (python_full_version < '3.11' and sys_platform == 'win32')", - "python_full_version < '3.11' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", -] -sdist = { url = "https://files.pythonhosted.org/packages/ba/be/3dd297fb25113abf40dd5de66088ce6883b62c417caa6b5fc2a84b9d48bf/cysignals-1.12.5.tar.gz", hash = "sha256:8f8ed409043d028b59d063dc4c069cbf12a750534757ce06f38eeac5ff368700", size = 86022, upload-time = "2025-09-24T02:47:35.065Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/b2/7e/a1438512fe30237b360853ab67eb77be7270e90108eeac6b906fc59eda0b/cysignals-1.12.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:78ec72c069b0c0fbf81c52afadf4220e49ff04405976cd3ac1d1fb3561bdc8b3", size = 216195, upload-time = "2025-09-24T02:46:50.87Z" }, - { url = "https://files.pythonhosted.org/packages/9d/c3/96d19413d80c2158dfab8dbc7347725e560f725a5be0a455f8dfd80fd5f1/cysignals-1.12.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:dcea06cc0902ed5453345bc7a8e6a2237b222ce772ab3cc137b135ebcb7e410c", size = 216979, upload-time = "2025-09-24T02:46:52.625Z" }, - { url = "https://files.pythonhosted.org/packages/9d/65/a7141267ed7d86d888a4733d36e67b9ae9f277767b09b2f698a3919e4926/cysignals-1.12.5-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:131e70b8c1eead0781c34d1cd5b5d3fe1c9228a985ce548f277a68d10df691ff", size = 262455, upload-time = "2025-09-24T02:46:53.947Z" }, - { url = "https://files.pythonhosted.org/packages/08/32/a9903d69da4bc6f05c3e2e803f1d1899039379cfbee5b45044901fb9bbf7/cysignals-1.12.5-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:215fdf50197256e456075c0a80de67006584a67d7f489ff1436c1b2f00592e2d", size = 268161, upload-time = "2025-09-24T02:46:55.437Z" }, - { url = "https://files.pythonhosted.org/packages/43/71/07da5244e84bbda1b26afe6491e62a79b1b71381bd0a3a32642ec7a8bce2/cysignals-1.12.5-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a8631d5ed0c15951c5ab653298efd76e0a8d48912693dd8287cb52d4b631783a", size = 264246, upload-time = "2025-09-24T02:46:56.471Z" }, - { url = "https://files.pythonhosted.org/packages/5a/54/8b9921971aaadd4729d626171bdc1721c959c812d2c7205dafe81fb79a95/cysignals-1.12.5-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:13d61803e20d471f3bafa2acbb290168609b8854aaefb6feaab2208ef4906b9a", size = 271089, upload-time = "2025-09-24T02:46:57.776Z" }, - { url = "https://files.pythonhosted.org/packages/bc/b4/4e61a82ed2761239d4b6592069def42fa0e0398d6efbb798ebce8ac34bd3/cysignals-1.12.5-cp310-cp310-win_amd64.whl", hash = "sha256:8636cb41552467e5037220b5368ef10a3d9890b1991e87640769a8f00ebad0c6", size = 53840, upload-time = "2025-09-24T02:46:58.822Z" }, - { url = "https://files.pythonhosted.org/packages/5f/8b/e70c0920de6a8c01c3b15465eec4dfbb2fc02b76d9ee138dc23a9998d19a/cysignals-1.12.5-cp310-cp310-win_arm64.whl", hash = "sha256:2fc8b1e90a1589c899d815635b073d0a9614309cc981db8c53c55104a11412f4", size = 50842, upload-time = "2025-09-24T02:46:59.608Z" }, - { url = "https://files.pythonhosted.org/packages/e1/7f/916abb405299a2e29eebcde322e7d583557e159f1749345574decd5b00e5/cysignals-1.12.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b8b757e49c9181d874c08271bcbc3ded677f43263e2370b36e41556d897fb053", size = 219441, upload-time = "2025-09-24T02:47:00.396Z" }, - { url = "https://files.pythonhosted.org/packages/b4/5e/3b90a5a05293b788b037573879dfa4128df53681c9282be0c50d7ec1fda5/cysignals-1.12.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:82022c3f20f44e52e1c1767716ebf936f15ed9dc2539ae0f840108a59c8313b2", size = 219615, upload-time = "2025-09-24T02:47:01.339Z" }, - { url = "https://files.pythonhosted.org/packages/85/22/c31e7373d00783d7ebed166ae1e24b871505bb4148fe9a1760659aa9e3d6/cysignals-1.12.5-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9c2daad79f36bf288be9501fcfac4eaacd80113376128e67151a45a57a6470d5", size = 267017, upload-time = "2025-09-24T02:47:02.638Z" }, - { url = "https://files.pythonhosted.org/packages/cc/f9/0120e457038ab2a00c018503b0fcb1226b59cede896ff19aad93af96d9ca/cysignals-1.12.5-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c37abf7fe2c68c7b63bb5df1f0bf54abab69f7386e767c625d6924dc38746f45", size = 273583, upload-time = "2025-09-24T02:47:03.633Z" }, - { url = "https://files.pythonhosted.org/packages/e5/a9/03ae3e5b559dd4dd2d852365af9b0ea9150fd74cd216e74227b305a1352b/cysignals-1.12.5-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:90404a01595e0fcc2f55760ab25ba4ea995c3143739da976364a64fa16306a47", size = 269180, upload-time = "2025-09-24T02:47:04.567Z" }, - { url = "https://files.pythonhosted.org/packages/11/a9/2a78532431764608a87baa91108f2200ac72490cb03af3cc92cdb21dfd08/cysignals-1.12.5-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f14d212027280f37fc1324a66737f78755be010101e0ee8ddd3c98c0dcef4276", size = 276560, upload-time = "2025-09-24T02:47:05.957Z" }, - { url = "https://files.pythonhosted.org/packages/01/99/82b5ea5df6e24e07547aa8bc0bc7dc80845bced244ddac1784d49dafdba9/cysignals-1.12.5-cp311-cp311-win_amd64.whl", hash = "sha256:e372512ad4137ffeb5ea9626854fc0f7feb0fafca07b2ea5f8c5a968138c23f3", size = 53920, upload-time = "2025-09-24T02:47:07.267Z" }, - { url = "https://files.pythonhosted.org/packages/c2/15/420f701ee0950dbff18695054f4aa289be10ed0d1379fe27115c645a0d18/cysignals-1.12.5-cp311-cp311-win_arm64.whl", hash = "sha256:e5f9f1d1f47e9b680c69c63a7faf1a0863736f6f00311b273c076810ef40509c", size = 50790, upload-time = "2025-09-24T02:47:08.153Z" }, - { url = "https://files.pythonhosted.org/packages/ff/7f/4ac0871dfea1e5723db6a8765e340660c6bf789d9d538c10e773c08ab2e0/cysignals-1.12.5-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f7c4074c9a9ae1294abf6a7de224174c2797e3b8f0c86881a04557224ad766bd", size = 220817, upload-time = "2025-09-24T02:47:09.319Z" }, - { url = "https://files.pythonhosted.org/packages/ba/0c/17b2236fb780081cd95a6609747377c9f5d0bd85fb0d7aa31ee9f5dc531f/cysignals-1.12.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:08dc79fd7470f828d7ae2f70b534a2710d39c1f194ffeb9649fbdff6e6f0bfff", size = 219943, upload-time = "2025-09-24T02:47:10.347Z" }, - { url = "https://files.pythonhosted.org/packages/60/fd/9d84bcd8c0d743b41f22e2ef54125e4e787c401e1ffe569b15a433d089ac/cysignals-1.12.5-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9c8011f72efc59fda3cf72096e7cdfc00f415629252c161c29eb721427a666a8", size = 262680, upload-time = "2025-09-24T02:47:11.35Z" }, - { url = "https://files.pythonhosted.org/packages/d9/e5/6954b9b5d8c843292a58cb091fb52c4a93305681d63e5b48c01d9ff0dead/cysignals-1.12.5-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:eccbcfd762de37daf4a01a0a77ef653561a153c48c2db9104916d36ebbd3cf24", size = 270195, upload-time = "2025-09-24T02:47:12.424Z" }, - { url = "https://files.pythonhosted.org/packages/76/04/cea6ac568ec4c2c9a5d003629346438ec8ceb991a627edc91fa8d24028de/cysignals-1.12.5-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:741c9bed4ef802c5892f62c6c8ad96390610bcfb617a0250a86c595eecdd13a9", size = 263724, upload-time = "2025-09-24T02:47:13.789Z" }, - { url = "https://files.pythonhosted.org/packages/8f/06/16111451a159266a9b03946498137645cd1fd334331b751b00c55fdc2bd4/cysignals-1.12.5-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:10e57664e3a2c3e7cdd270b7fa041859b552c2813c195b1247e3c116bf40226b", size = 273469, upload-time = "2025-09-24T02:47:14.785Z" }, - { url = "https://files.pythonhosted.org/packages/63/8a/a50f6df7d3e49f056727b9140521e8588222a904b97d8bca6a81b25b138e/cysignals-1.12.5-cp312-cp312-win_amd64.whl", hash = "sha256:8824990cdf09891ccdd8f5d0f839762948c90535b56d476fcf8c0dddd27ca53b", size = 53672, upload-time = "2025-09-24T02:47:16.127Z" }, - { url = "https://files.pythonhosted.org/packages/20/51/abe5fc0b929c798c7e67f36ea1f0f279e3d3e9549bde8c7e48f272cc48d4/cysignals-1.12.5-cp312-cp312-win_arm64.whl", hash = "sha256:f8e27a442aea569e824b12cd4b8c8599d94e44272e3dfaa56d4ac98215aef7c1", size = 50737, upload-time = "2025-09-24T02:47:16.951Z" }, - { url = "https://files.pythonhosted.org/packages/9c/3e/9873294ae69ab6620a19e225b65b2aaf79b42a0e5c50e55ccda129d493ac/cysignals-1.12.5-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:c2131f0a724d3f5c0d6ae11c100641a491b223b075d03aa83c69b1d44736a099", size = 217212, upload-time = "2025-09-24T02:47:18.409Z" }, - { url = "https://files.pythonhosted.org/packages/77/9c/208ba3bad103ed0218d6a225705f2ebc9a886167e0fae5d761c891779057/cysignals-1.12.5-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:03cb462edcc1ee7b63f2108bbeb89ce04ddca3baeb4d490f26c997ec23f392f1", size = 217008, upload-time = "2025-09-24T02:47:19.495Z" }, - { url = "https://files.pythonhosted.org/packages/0b/ab/ebc8dc495251630832a2572ef9a350ac0d2b7d9608531fbbb65fc61ad6e4/cysignals-1.12.5-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:64895f286cb6e0f070db6ea8c808039fda21b2c3c9876e3486e6f36aa956b557", size = 260584, upload-time = "2025-09-24T02:47:20.564Z" }, - { url = "https://files.pythonhosted.org/packages/95/bc/4aaf0032b7c5c7d3c62e42ce6ffda431778f08ac8f52d701af77ed5db3c1/cysignals-1.12.5-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0008a7e53f4889f75c5132c06b42723e80ec40f1035be1cbe4d909896e8f55dc", size = 268999, upload-time = "2025-09-24T02:47:21.579Z" }, - { url = "https://files.pythonhosted.org/packages/9c/7d/ef2e2d6a08f3821fd157fe69ecdf921c763645ea6259f557a7712f42b7ee/cysignals-1.12.5-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:800b6b7ad6c45590a2a30d05889378beee9948d8828bc8aafd79694825b595b6", size = 262547, upload-time = "2025-09-24T02:47:22.598Z" }, - { url = "https://files.pythonhosted.org/packages/22/51/0a564cfefe9853ddcfb4b76ab845398471dd4106da29e829be31705db2c1/cysignals-1.12.5-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:c09035afcd3017250e796247f3eaf5e79a9a7090b1e104a962b8eb4c87bf9ebe", size = 271757, upload-time = "2025-09-24T02:47:23.637Z" }, - { url = "https://files.pythonhosted.org/packages/a8/8d/164781b362dca2216916896d2ede197f2496c97fa961ccb6265382e6ad24/cysignals-1.12.5-cp313-cp313-win_amd64.whl", hash = "sha256:7392bbc6a46ee9b1eb973ec994f95f7421257a474c071c56def37c7ce0ea8d87", size = 53494, upload-time = "2025-09-24T02:47:24.922Z" }, - { url = "https://files.pythonhosted.org/packages/53/c8/6e5bb6f96405c41cffef037540a6eb031657e92cb7f2213cf532191f9484/cysignals-1.12.5-cp313-cp313-win_arm64.whl", hash = "sha256:1a2ebb66883be5e493741c5db787d509b2c1f860d32829a184dbc912b33a9f4e", size = 50469, upload-time = "2025-09-24T02:47:25.745Z" }, -] - -[[package]] -name = "cysignals" -version = "1.12.6" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'", - "(python_full_version == '3.12.*' and platform_machine != 'x86_64' and sys_platform == 'linux') or (python_full_version == '3.12.*' and sys_platform == 'win32')", - "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", -] -sdist = { url = "https://files.pythonhosted.org/packages/b9/5a/d258fd8d6ee1538b8472f39051a87d3d6aa2ab26ffa2da4ac809fb851b88/cysignals-1.12.6.tar.gz", hash = "sha256:3ef3a37bdb244821b85475a08e2762ca1019570b369e321504995fa9a54675ce", size = 79583, upload-time = "2025-10-30T04:28:44.463Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/d4/65/8ada25e5501a3357ec0cddc40e6cca8fbef3c0a38bc62614cd20f4304e79/cysignals-1.12.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3ee654e14c0747d39711d169a664766e0140327a1d3ea1e0fccda1e31ef74e53", size = 220559, upload-time = "2025-10-30T04:28:14.409Z" }, - { url = "https://files.pythonhosted.org/packages/fc/4c/ef1a4d2a0383a3b258ee2d2c67acc3a31f57ea7ff219354f4d920aecd5c3/cysignals-1.12.6-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:26a79edceeee7d74609b0cc73b4c3d93301e488dca28b166b3667049a2ee559c", size = 270698, upload-time = "2025-10-30T04:28:16.212Z" }, - { url = "https://files.pythonhosted.org/packages/11/bc/24b88e729e9051f7c6225891200affc2ea4a431a72e00029de6f6cbaf84f/cysignals-1.12.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:cdcf379028c9a4afcc957d046ce492c3418ac931ddf2089d21d34f337b64ecfb", size = 274019, upload-time = "2025-10-30T04:28:17.966Z" }, - { url = "https://files.pythonhosted.org/packages/88/ed/31137ee4aa5a642560a843c838665986a361761d9b2236bd90bdeb95d365/cysignals-1.12.6-cp312-cp312-win_amd64.whl", hash = "sha256:ae2119e7194f48f31eebdaf238fe09a69ce6c89b73f8733a6a9b7b9386bbf414", size = 53934, upload-time = "2025-10-30T04:28:19.531Z" }, - { url = "https://files.pythonhosted.org/packages/2d/56/546c9ee45185f4bb0e1ddd6d43ea5b464c2d25f686a775916c733f6e5ef0/cysignals-1.12.6-cp312-cp312-win_arm64.whl", hash = "sha256:3a664ba18028400abf1221c412ca914795c4cfe9564b9bde1e065e1ab472e668", size = 50977, upload-time = "2025-10-30T04:28:20.73Z" }, - { url = "https://files.pythonhosted.org/packages/d4/ad/2c74618022ff94072458f21f941745ed6a14b6d95e28890a77d22b671e09/cysignals-1.12.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7cfce1fb8b5b30027518d29c472ea78377b049c74aa72b2750d203ba6e791327", size = 217630, upload-time = "2025-10-30T04:28:22.079Z" }, - { url = "https://files.pythonhosted.org/packages/23/c0/356d5be95499d8a27e4195d6b9c9d000cdfc15171813c65058a35de6a06a/cysignals-1.12.6-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d2a54eb2787e7e93855e06e420740b51b61c06dd466b8ad48a01cf5bc3bc2375", size = 268799, upload-time = "2025-10-30T04:28:23.844Z" }, - { url = "https://files.pythonhosted.org/packages/86/5c/8c0734a11c8126fe0bb86e7e4e94f9d7d109f09275e57e87b84c7e9d783d/cysignals-1.12.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:63bd2aeab7e515a530176a007478129a043415de7fa08519d9721689b47f91b3", size = 271794, upload-time = "2025-10-30T04:28:25.262Z" }, - { url = "https://files.pythonhosted.org/packages/58/c7/2d64af5766461e817294cad63a9a89bb981f72db2ac891e6645c97f10f3b/cysignals-1.12.6-cp313-cp313-win_amd64.whl", hash = "sha256:8c3987e9607e7db896e99aa23066366544151aba0f2155fc3da7e19d20d66439", size = 53776, upload-time = "2025-10-30T04:28:26.618Z" }, - { url = "https://files.pythonhosted.org/packages/7c/75/b9360ca85c8ceeaaebc1767104caf27ccea209eeaec8952dbf2f09cfad01/cysignals-1.12.6-cp313-cp313-win_arm64.whl", hash = "sha256:f85bc3d7bf6d8a79d53685bf466e25b95b799787397622265515a72bb7addf6c", size = 50727, upload-time = "2025-10-30T04:28:27.997Z" }, - { url = "https://files.pythonhosted.org/packages/d9/0c/db66ab5e7be5454e39eac13e5a5bf908b28af590cb4e75a5d9da5005ab7b/cysignals-1.12.6-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:f0e1b9c1f0a1a6ddc3b550893aa032cb2e865a60b8480d3ec61bf4f24f232cf1", size = 219287, upload-time = "2025-10-30T04:28:29.603Z" }, - { url = "https://files.pythonhosted.org/packages/23/ea/e60bf45dbfb49a349b2ac9812526be40cc17a6b854308301932883dad85b/cysignals-1.12.6-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:948d9b0fcdb54d6ef0624991fb22b9c57a63467da56d46bc1f8edb618c900584", size = 269488, upload-time = "2025-10-30T04:28:31.005Z" }, - { url = "https://files.pythonhosted.org/packages/71/bb/2f4097bcc7b6de3cceba80d830c653dc893feeef0914066580770aba1cdf/cysignals-1.12.6-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:8eceead50d00487179017eb81b00a7bbf2acfcef6869ba950a13e0e3ee5fef07", size = 272516, upload-time = "2025-10-30T04:28:32.798Z" }, - { url = "https://files.pythonhosted.org/packages/de/49/77aa0bed4d5aba945977b3ee786755f09071bc136a2daf7d64475308b6b3/cysignals-1.12.6-cp314-cp314-win_amd64.whl", hash = "sha256:77fc10e45f7ee704adf6d217812a6fa58b983fff22ceb1c8530dd27bc067d6d0", size = 54400, upload-time = "2025-10-30T04:28:34.4Z" }, - { url = "https://files.pythonhosted.org/packages/df/a4/af33931a416b07385df9adba5d162ed47818b57bfd7f9c7a3e71bd984760/cysignals-1.12.6-cp314-cp314-win_arm64.whl", hash = "sha256:34e19f1abcf40d08634b07bd4ac21852f9e4091e9245012b031fa923a1d7d7fe", size = 51826, upload-time = "2025-10-30T04:28:35.581Z" }, - { url = "https://files.pythonhosted.org/packages/75/f8/25a75c4106eb1ed54b0ab928d8206d3906bcf708ef952a141fff88e2c034/cysignals-1.12.6-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:83c4f6bb0cd1fc58fc55a3f0dbca0e1229113e3faf06e9a1a7f9cb19a4263f6f", size = 231614, upload-time = "2025-10-30T04:28:36.785Z" }, - { url = "https://files.pythonhosted.org/packages/07/13/b10ef901ded109b6e86fadf123b7d8dc3646f64aefb5633e5b85bcd09ccb/cysignals-1.12.6-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8fd29e7452de0d8c7a929b29e8ba7f8bfa84fca746e80263799db026b56b8a1e", size = 279460, upload-time = "2025-10-30T04:28:38.282Z" }, - { url = "https://files.pythonhosted.org/packages/15/55/ba70d9babff953d1b1730bd685ad47c2a4cee2f384a23d74f7f952d1f4e8/cysignals-1.12.6-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:576c16e08b4a917c23ca6d586131a53bedc921b9af8e311dbfc145d39dacd9cd", size = 283163, upload-time = "2025-10-30T04:28:40.517Z" }, - { url = "https://files.pythonhosted.org/packages/db/76/db8b9ad792cd0aa68b96931ccbf0502c2f1acc1e87c7ccb07c7b52517754/cysignals-1.12.6-cp314-cp314t-win_amd64.whl", hash = "sha256:8876ac137f055c20cba80b73bce8908afe24bb62fa1c6f9889c30354e53ea4e6", size = 59881, upload-time = "2025-10-30T04:28:41.716Z" }, - { url = "https://files.pythonhosted.org/packages/58/08/6056364ba9e90e861c11c2ca9158dda31eadf587c6254f47de8f061bd08b/cysignals-1.12.6-cp314-cp314t-win_arm64.whl", hash = "sha256:ba487c5b75c2b4ab480bc5bc59d6c0a540443db133ce1565e925179e7f5f3c10", size = 54005, upload-time = "2025-10-30T04:28:43.249Z" }, -] - -[[package]] -name = "cysignals" -version = "1.13.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.14' and sys_platform == 'darwin'", - "(python_full_version >= '3.14' and sys_platform == 'linux') or (python_full_version >= '3.14' and sys_platform == 'win32')", - "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", - "python_full_version == '3.13.*' and sys_platform == 'darwin'", - "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", - "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", -] -sdist = { url = "https://files.pythonhosted.org/packages/98/dd/9157e0e6138e395405c7ef56a55b0edcc292e2a9e7f8c90e8b2d912e9a1d/cysignals-1.13.1.tar.gz", hash = "sha256:6444b86ddd1f31c7b15e4f0a3dafb973507759676a00f2cc599f0d75062d9eb0", size = 77348, upload-time = "2026-10-02T19:22:05.285Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/27/e1/d8a0acc22a331a4032a919d458399406b621198e403f23b1428719675510/cysignals-1.13.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:02f08ec81ed3f2f0155ab6e015e096a2e9d11a6a786c9c82ca205afe88340420", size = 237195, upload-time = "2026-10-02T19:21:14.088Z" }, - { url = "https://files.pythonhosted.org/packages/27/f7/2e4e5106ca5a016fd6da586a4335be3a5cafbf2acc5dc102374529ba3095/cysignals-1.13.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:24ae6574283dfe551e61a34c4777ca53bea1e50e09e692c1dacd3e189d4d1301", size = 232066, upload-time = "2026-10-02T19:21:15.695Z" }, - { url = "https://files.pythonhosted.org/packages/7d/d8/715d5c61c77fac3cfa8fa5338c2bef37788420c6b362be6046567bc7a8e2/cysignals-1.13.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4ef8e2d972026ff84db31bef7263d2d0a5d2827a17e18b625d2c27ecbf349643", size = 262696, upload-time = "2026-10-02T19:21:16.886Z" }, - { url = "https://files.pythonhosted.org/packages/b4/73/0716f9d202c049910d475d8dafe7f30733cf954b89ac43738f2f7d2c4992/cysignals-1.13.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0dea8b08ce68aa408ae4b41180ed111414a6f510320d37db0e94134ce9b16a71", size = 271263, upload-time = "2026-10-02T19:21:18.133Z" }, - { url = "https://files.pythonhosted.org/packages/c8/c7/1f44e3d3d7b0cff1fce522e52e58a991da3b2ea416ef092993c8e169f2ac/cysignals-1.13.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:de1c8826bbc2baffa3a1777b95245b50b7d1d1e14080b4b36cc5f0974edf4455", size = 265258, upload-time = "2026-10-02T19:21:19.334Z" }, - { url = "https://files.pythonhosted.org/packages/0c/7f/33b9291d35802aad2bb92021c62f8541c24ff737acb77867c7857c81ac0f/cysignals-1.13.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:3fea21f455b09464269540af72bec6f79714c1c6cbc25b501990ba1caa8357cf", size = 274179, upload-time = "2026-10-02T19:21:20.565Z" }, - { url = "https://files.pythonhosted.org/packages/a0/54/0a031ffb3a8aa6ac6e7753d0257fb4d5c0470166671749ea182de5addc15/cysignals-1.13.1-cp313-cp313-win_amd64.whl", hash = "sha256:53a6a69e77d2a4193c87b369d28f9799ace10258c92da841df12b24a5646b684", size = 51975, upload-time = "2026-10-02T19:21:21.744Z" }, - { url = "https://files.pythonhosted.org/packages/61/fa/1da676065d15ebebcba710286961b392ac708cb5760556ea9415c5a74652/cysignals-1.13.1-cp313-cp313-win_arm64.whl", hash = "sha256:17dea729259d70c2ec1da2121c70ca81d40ca8c23b53cd91632402e6e43076ac", size = 50579, upload-time = "2026-10-02T19:21:22.947Z" }, - { url = "https://files.pythonhosted.org/packages/4f/95/e1b93a5766c2bc510c12410397b20341d49783c0dc25f8e61712c5e3f2e8/cysignals-1.13.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:bde74ae127d37aea405a2f21c0d3ac76edca0a1eab7db9db2c6a29b3790f8694", size = 238299, upload-time = "2026-10-02T19:21:24.175Z" }, - { url = "https://files.pythonhosted.org/packages/f4/69/202412d185231cbd467b7e9fe85a9bedd6f6b95b76c70ee12c9632baca8d/cysignals-1.13.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:a0e63694dccc2005f1ec0d54fa79c9ed894014acf59c615f9391f19253740e90", size = 234080, upload-time = "2026-10-02T19:21:25.625Z" }, - { url = "https://files.pythonhosted.org/packages/0c/46/3aa68e7b1573e0cb4590efbcbe850e981d5bb578bedcb2207eb3067e280c/cysignals-1.13.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:fa5c0cdb142e77610fb445b01c6371747d935214092df24d8c460b011eb538b7", size = 266303, upload-time = "2026-10-02T19:21:26.875Z" }, - { url = "https://files.pythonhosted.org/packages/bb/49/d77d163b0d6c870f4139b700d01005c77736521107fc13637c424fd1f075/cysignals-1.13.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fff456cde34c90e1f4b632afbdb07da16e9d9f0c91b08ce1eccdd5c72f747d0c", size = 272057, upload-time = "2026-10-02T19:21:28.405Z" }, - { url = "https://files.pythonhosted.org/packages/ff/f6/a676245aa2136136d6f6816acb9e0d6f61563255f1d0b7ebcb559fd8000e/cysignals-1.13.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:76a41614704af44fd671aa192c66070bd328b7437e2e5aab20d05f2d6f89a59d", size = 268881, upload-time = "2026-10-02T19:21:29.679Z" }, - { url = "https://files.pythonhosted.org/packages/02/4f/f2a369bbafbfd38d968a2daaa9957e7bda062e1d00140327ac3e57bd5912/cysignals-1.13.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:a196ee3371fd0b516428e9060fd5de7636cdd2acd5f6a28c8b067e7d4f73b1bc", size = 275007, upload-time = "2026-10-02T19:21:30.968Z" }, - { url = "https://files.pythonhosted.org/packages/ab/7e/c4e40c624790a738f63e3221708dad377514916e7f7427640209425bfd5d/cysignals-1.13.1-cp314-cp314-win_amd64.whl", hash = "sha256:2afeac9570fbce89245f4ab332cf9c6f0600bf3811270d152e5ffd873e0f061e", size = 52726, upload-time = "2026-10-02T19:21:32.111Z" }, - { url = "https://files.pythonhosted.org/packages/1f/85/e030c6c26e600fc3c089d8872d74911ef6e796b4e925cd79b9a2c236cd3f/cysignals-1.13.1-cp314-cp314-win_arm64.whl", hash = "sha256:4accb2db634c738d8591289ba06711bdb4c428c66aba0f44272c6fa3949012c9", size = 51452, upload-time = "2026-10-02T19:21:33.143Z" }, - { url = "https://files.pythonhosted.org/packages/8d/fe/31c9d0816d14af5b92a969d5ba1e0dc91937ac4afc35f1a25b06c0b3b998/cysignals-1.13.1-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:5288c00970bed535001a7cc8526275842acb069ff4c6229f790b80587ae24a6a", size = 249764, upload-time = "2026-10-02T19:21:34.256Z" }, - { url = "https://files.pythonhosted.org/packages/59/61/30183d736f7973fbb5196de9bf03b5667c25a4ee27d785ad8c62e837415c/cysignals-1.13.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:253fe302fb6d1806d54a494bd451f857ac4ba2895a6726649a574919d1a12ea1", size = 247901, upload-time = "2026-10-02T19:21:35.485Z" }, - { url = "https://files.pythonhosted.org/packages/1e/f6/c8a4dc1d8511da3bea7152ff197b664272ba5b4087f3ceed7088f2d139ae/cysignals-1.13.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2cadae177711759f83b8f18a1671b17a93e224f79e360de9230cdc3de78a77aa", size = 277736, upload-time = "2026-10-02T19:21:36.787Z" }, - { url = "https://files.pythonhosted.org/packages/aa/f7/6755570612df3250771a651ec1a646af38fd012a622a89b9a678b9eae597/cysignals-1.13.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e66b2e7dbeb46f78c72f36df476012c6abaabb3afef505e7122cf5d2d2bb8027", size = 281929, upload-time = "2026-10-02T19:21:38.108Z" }, - { url = "https://files.pythonhosted.org/packages/d5/bd/062cfba9242628d96ee8abdfe0b3152ca8883a5c21c2ec3b0aa335c9b367/cysignals-1.13.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:a429502f8fa79e2dae1e7430febb938265f1f83c4f1281cd3f2ec23208b0a4fb", size = 280355, upload-time = "2026-10-02T19:21:39.574Z" }, - { url = "https://files.pythonhosted.org/packages/da/c2/61e7f5bf46ee99f171f4bdc6607585d2bb06bbe54df121c509c520abd919/cysignals-1.13.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:04d0267e5242b078f627beb5a5a72aa9289936fb85191c458888cedbfb92e351", size = 285672, upload-time = "2026-10-02T19:21:41.108Z" }, - { url = "https://files.pythonhosted.org/packages/1f/79/b1836e835c0b4e32d88dac2fc5b001ffbe087560a0d62ede6e8b2aa8408b/cysignals-1.13.1-cp314-cp314t-win_amd64.whl", hash = "sha256:c49ed8e97e317ad5254e3b35a128b270ed5caccfa7e8f403c5f09130003376d7", size = 56044, upload-time = "2026-10-02T19:21:42.337Z" }, - { url = "https://files.pythonhosted.org/packages/3c/1a/9905b9f0baec0fbb3e38202d76f247aa6263799df06e27cf4659e3dd7307/cysignals-1.13.1-cp314-cp314t-win_arm64.whl", hash = "sha256:ab03756fa2ceb8e789b2a1c0120ce24e60db0d850b690432eb65646b68bc0fe2", size = 54535, upload-time = "2026-10-02T19:21:43.466Z" }, - { url = "https://files.pythonhosted.org/packages/2f/66/0818ab285dc3f853415faee73810c10f894305f0a5c79a467b69e6e94b25/cysignals-1.13.1-cp315-cp315-macosx_10_15_x86_64.whl", hash = "sha256:eaeca9f4ba2a30b244091b12e35ff532437e462ff91454766e537ecfdf18d28f", size = 237960, upload-time = "2026-10-02T19:21:44.57Z" }, - { url = "https://files.pythonhosted.org/packages/32/57/2800e2669f7aff8d32ea92e1f1dbdee5b20cf58130ab5365b910a929c788/cysignals-1.13.1-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:4cf465afe488cb129cd710fe50b5628e6324bff2196079917d43167046943777", size = 232825, upload-time = "2026-10-02T19:21:45.985Z" }, - { url = "https://files.pythonhosted.org/packages/bd/8c/69bc9cc51a67c1ea4f75722429bf5944a347a0de3a29b1bd0e3ffbae5cf9/cysignals-1.13.1-cp315-cp315-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7e2eec977dc97babe96772887f71235aca9ebbb4c08295c6cba8af20d1c614dc", size = 266208, upload-time = "2026-10-02T19:21:47.288Z" }, - { url = "https://files.pythonhosted.org/packages/5b/bc/ed1662ee73bcc627c8b5529926f53b561cbd1b0661226b9eb110c4dfd739/cysignals-1.13.1-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fbde52395d19bed55df0f109f71c35fec6cc86d13d16ff0105a22adcea0945fb", size = 272094, upload-time = "2026-10-02T19:21:48.585Z" }, - { url = "https://files.pythonhosted.org/packages/b7/59/b12c14a931fef91cc4e5358f03e4d6c9f96a9a5a36de958f7a264c2d6f2a/cysignals-1.13.1-cp315-cp315-musllinux_1_2_aarch64.whl", hash = "sha256:704451e6c576302e2417520dab2e29d01a48ca2ee05c14caa16a5e39639ff684", size = 268564, upload-time = "2026-10-02T19:21:50.073Z" }, - { url = "https://files.pythonhosted.org/packages/5d/ee/fc181e9f5ff2cfda75ecdd5d1b571e53f9f52006e6491f89c87af0304615/cysignals-1.13.1-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:e90d9c3c0baa65f87d23f61cdbf3aa683619884a9dbf10da158dc80733db5503", size = 275553, upload-time = "2026-10-02T19:21:51.45Z" }, - { url = "https://files.pythonhosted.org/packages/43/4b/c74d4b111c7cac2b9344a5d32ccb0baec36a85a262ce93659a47aa14c69e/cysignals-1.13.1-cp315-cp315-win_amd64.whl", hash = "sha256:16671cf7d546b9e4fb7b26ae03d4fbd51a8ca62ee758592b9e3be3923b065d9d", size = 52657, upload-time = "2026-10-02T19:21:52.817Z" }, - { url = "https://files.pythonhosted.org/packages/3e/9c/59423c531c9d40c71decbf7b8c3b14db8bcc9a073cd38547c8e9373f020f/cysignals-1.13.1-cp315-cp315-win_arm64.whl", hash = "sha256:168b8f7fd4f55d1283c4558dff93c4c9d85b8c90e0a902cd63778aafd727bb22", size = 51359, upload-time = "2026-10-02T19:21:54.066Z" }, - { url = "https://files.pythonhosted.org/packages/62/1d/d9288e9ab4d817bab351f9716a65bec8cac28111acda5cf19c1cb48de427/cysignals-1.13.1-cp315-cp315t-macosx_10_15_x86_64.whl", hash = "sha256:797ad4b177c25e27db9455ce8cbaaa356500c24f774677a67109419b68ba0baf", size = 247556, upload-time = "2026-10-02T19:21:55.183Z" }, - { url = "https://files.pythonhosted.org/packages/03/fd/bda6cf0b2cd7e199af1d1369d470c5965cdf2a3466b01ff613bd324b25c4/cysignals-1.13.1-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:7195b1451b3b01444cfa27929df17f25ca9b73a046a3986452b9f3aeb9605a1e", size = 245547, upload-time = "2026-10-02T19:21:56.409Z" }, - { url = "https://files.pythonhosted.org/packages/90/fa/f51efbfeae6564a76d5513e77acbd0c600ea2680db974b20dc23c4bcd0e5/cysignals-1.13.1-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9bdd3a112c53360b69b14b1398bfe0828c668882e700c8121a1b895d60869fb0", size = 274725, upload-time = "2026-10-02T19:21:57.678Z" }, - { url = "https://files.pythonhosted.org/packages/08/9d/ffdf8db01f8e977a70a3dad73b4c30d28592c8ca39ffa60dc220f728e335/cysignals-1.13.1-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2fc6b114ea012ce9bd9e1e68b75a888be3ef6f4ab17f8b3357f7e3d33a4cae6e", size = 279355, upload-time = "2026-10-02T19:21:59.036Z" }, - { url = "https://files.pythonhosted.org/packages/c0/61/2c8a238e12ae3189641401fe1712209e5840a69a80ced942d617936d4034/cysignals-1.13.1-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:07eb01b9bde389fe2868e2369f2950da3553f32f4ec2cd7821acb5c5a1369752", size = 277532, upload-time = "2026-10-02T19:22:00.677Z" }, - { url = "https://files.pythonhosted.org/packages/28/b9/61126a2ed1395d68709143514166a05676aff13261181cb2192622752fa6/cysignals-1.13.1-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:e59ad8a236fb3c51a6389236adda75a86fbd1b0f14974799d7f205dfa35d8c22", size = 282732, upload-time = "2026-10-02T19:22:02.026Z" }, - { url = "https://files.pythonhosted.org/packages/fb/46/e222ec9fb60dcbb3e7623ddf597943a9ab55583f952298def1c0cf398fa7/cysignals-1.13.1-cp315-cp315t-win_amd64.whl", hash = "sha256:15fae6633fa984a1dbc6fa41beea522dbaa4c5050da86fcf376709893040132d", size = 55438, upload-time = "2026-10-02T19:22:03.192Z" }, - { url = "https://files.pythonhosted.org/packages/13/11/db77bc1ebebd81a831b0c1a9d78fa7273bac47f5f86f902f009522e2e3e9/cysignals-1.13.1-cp315-cp315t-win_arm64.whl", hash = "sha256:031c443331f9ba98dd8ee85cab354c83ce14b47cf13b37299bb76f2123e05e93", size = 54215, upload-time = "2026-10-02T19:22:04.239Z" }, -] - [[package]] name = "datasets" version = "2.21.0" @@ -1832,7 +1861,7 @@ dependencies = [ { name = "numpy", version = "2.5.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, { name = "packaging" }, { name = "pandas", version = "2.3.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, - { name = "pandas", version = "3.0.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "pandas", version = "3.1.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "pyarrow", version = "25.0.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, { name = "pyarrow", version = "26.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "pyyaml" }, @@ -1925,15 +1954,15 @@ wheels = [ [[package]] name = "doclang" -version = "0.7.3" +version = "0.8.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "lxml" }, { name = "typer" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/f5/3a/005e4856ad8e9b9879414a4df4dbc56dc3663b96f9d8c920ef210e8931cf/doclang-0.7.3.tar.gz", hash = "sha256:ca50615357e46ebf9597bb9065b9112367103ec24bd539f8ae12649224cf50b0", size = 31569, upload-time = "2026-07-15T08:11:02.917Z" } +sdist = { url = "https://files.pythonhosted.org/packages/b1/3d/67a1af92bcd22548b02aa44dc24615a511d5c5ee9070259625ddc4b3c0a7/doclang-0.8.0.tar.gz", hash = "sha256:29607b86670c769071c785ade7b1f48d20f188b8eff9b68ffdb0446de1d979dc", size = 66380, upload-time = "2026-10-15T14:50:55.169Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a5/81/334ccc0f0cd7c3d75996b6b596e7f4c62c4c46a0ca042003315c28170159/doclang-0.7.3-py3-none-any.whl", hash = "sha256:9440c4ca9f7e061a7b8d33bdf15b1029be69a4c13cd8952dd6ce541884e4c685", size = 32267, upload-time = "2026-07-15T08:11:01.977Z" }, + { url = "https://files.pythonhosted.org/packages/67/18/6c22e40531a43ae978584f16a2ada71c358bf1174c56ce4e9a57d49f2753/doclang-0.8.0-py3-none-any.whl", hash = "sha256:7c768f641414629ec23576ed1a4a76b3e934ff734803f09f8d9bd084ac2cae90", size = 69943, upload-time = "2026-10-15T14:50:53.844Z" }, ] [[package]] @@ -2005,7 +2034,7 @@ requires-dist = [{ name = "docling-slim", extras = ["service-client"], editable [[package]] name = "docling-core" -version = "2.103.1" +version = "2.104.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "defusedxml" }, @@ -2014,8 +2043,9 @@ dependencies = [ { name = "jsonschema" }, { name = "latex2mathml" }, { name = "pandas", version = "2.3.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, - { name = "pandas", version = "3.0.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, - { name = "pillow" }, + { name = "pandas", version = "3.1.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "pillow", version = "12.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "pillow", version = "13.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "pydantic" }, { name = "pydantic-settings", version = "2.15.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, { name = "pydantic-settings", version = "2.16.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, @@ -2025,9 +2055,9 @@ dependencies = [ { name = "typer" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/5e/74/70107b222626fa5167a4de9dd24148b2ff657667d9ad57d17d3fba3906ef/docling_core-2.103.1.tar.gz", hash = "sha256:52398d2369fe32fccb7c06527d888b4cfa50226b25f55bbdc5d6e6d6863ee4f4", size = 440557, upload-time = "2026-10-20T14:45:14.447Z" } +sdist = { url = "https://files.pythonhosted.org/packages/dd/39/07095f73dec9a9dfeaf75acce470a708c7f88fc66a5565a63f88dd6567ff/docling_core-2.104.0.tar.gz", hash = "sha256:94a5c968d40c3ff3cba59fe94d4c92b53e617637ba758b3f6bd38f585e147fe1", size = 446513, upload-time = "2026-10-22T14:02:02.15Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/8a/6b/047a02de5828d54462f48f7d12da50861cc36505a600460ae08eeeeca2f5/docling_core-2.103.1-py3-none-any.whl", hash = "sha256:2407bb42bb95468192b69b772ab72477e2a636bd33c5c6a401047b190fc81b96", size = 328165, upload-time = "2026-10-20T14:45:12.455Z" }, + { url = "https://files.pythonhosted.org/packages/a4/3d/effaf34794872ad8800bb0cc21de9c5c838ec080086249c6d222afaaa276/docling_core-2.104.0-py3-none-any.whl", hash = "sha256:e820fb6f130678df06119ea1f437d1a597c1c441fddd0e95299e27348d961011", size = 329981, upload-time = "2026-10-22T14:02:00.295Z" }, ] [package.optional-dependencies] @@ -2051,7 +2081,8 @@ dependencies = [ { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*'" }, { name = "numpy", version = "2.5.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, - { name = "pillow" }, + { name = "pillow", version = "12.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "pillow", version = "13.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "safetensors", extra = ["torch"] }, { name = "torch", version = "2.11.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'" }, { name = "torch", version = "2.14.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version != '3.12.*' or platform_machine != 'x86_64' or sys_platform != 'linux'" }, @@ -2067,48 +2098,53 @@ wheels = [ [[package]] name = "docling-parse" -version = "7.22.4" +version = "7.23.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "docling-core" }, - { name = "pillow" }, + { name = "pillow", version = "12.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "pillow", version = "13.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "pydantic" }, { name = "pywin32", marker = "sys_platform == 'win32'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/f8/d1/8e9ce26f54513802444c40f5efdfe75cfdee56e04b1beb672a82aab176f2/docling_parse-7.22.4.tar.gz", hash = "sha256:d2e75549b1d25b68a322cc0f3a0e983c49fb14a31b9676867988994583707bfe", size = 7050935, upload-time = "2026-10-21T12:00:55.226Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/3e/11/467d2b655b93faff000aea81d04e421cce32d9d11e65718ed5503410da2e/docling_parse-7.22.4-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:dd2e90296b036d35d2e467c39ccfd9098d09105ba61583aa22520ee1b0e57026", size = 9875748, upload-time = "2026-10-21T11:59:54.271Z" }, - { url = "https://files.pythonhosted.org/packages/04/e5/0d55ba446a1c5d10d8f978816531241e265387402cdf8141e83358e7bb55/docling_parse-7.22.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6c4125ab87d55d72023e9d4e5e78669c189dae73d7ecb64ea509708458563905", size = 10464083, upload-time = "2026-10-21T11:59:56.783Z" }, - { url = "https://files.pythonhosted.org/packages/fd/32/be0f54acfee3fbea3104dd9c3308e57515f5888089cf815cb50ec41ea18c/docling_parse-7.22.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:11d7f552ad0175f813b4dbccf0e97aa177049f689420e0d22f43cfc2304ef488", size = 10738228, upload-time = "2026-10-21T11:59:59.296Z" }, - { url = "https://files.pythonhosted.org/packages/b1/bf/1851d9bf7d00f30fb22dd81a62004ac6509ad954df3d38b721fbc71fd3c4/docling_parse-7.22.4-cp310-cp310-win_amd64.whl", hash = "sha256:86c025d9ad8181b21b1feb9cb459435a4951868cb59683d09bff238e14b0d081", size = 11884483, upload-time = "2026-10-21T12:00:01.51Z" }, - { url = "https://files.pythonhosted.org/packages/68/b9/6c3a8ebf7788fbd4a53acb75bf7f5646991da9ff2a5cc4c5794a178e8e56/docling_parse-7.22.4-cp310-cp310-win_arm64.whl", hash = "sha256:d71783fae0c754656f2963e1e0d311252ac84d3604194988532e0ce41ea129f7", size = 9274393, upload-time = "2026-10-21T12:00:03.622Z" }, - { url = "https://files.pythonhosted.org/packages/90/1b/5069d82b560dab59f56c3d046fb71a804fbe4b0a2f2e12b775d06c0cd3a5/docling_parse-7.22.4-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:ee88c5e79d040f207aa2df58975fd5c2574f736966a3a81eae85f421aea1ca4e", size = 9877627, upload-time = "2026-10-21T12:00:05.608Z" }, - { url = "https://files.pythonhosted.org/packages/8d/1e/113b1b1eeb2cf6886d7515257528b5a23357b69b4140c0fe284df65778b5/docling_parse-7.22.4-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:59864c147af8b34e2144ff30d66af49e92b8b693938d4accf3e406b897a55137", size = 10437037, upload-time = "2026-10-21T12:00:07.692Z" }, - { url = "https://files.pythonhosted.org/packages/2d/53/b799c7493fad11dfed3e99fa9de04a0817df85a6f91411c75aee941e19d8/docling_parse-7.22.4-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:53821adbf77fb10ab7ad9d14c1ac4e1f646dcf17dc4b75153fe056b4d8e37362", size = 10844131, upload-time = "2026-10-21T12:00:09.687Z" }, - { url = "https://files.pythonhosted.org/packages/6d/b3/aed6ac0560adff2c544f1981e21ff7316e33f1a24346bb2c23c1ba184c14/docling_parse-7.22.4-cp311-cp311-win_amd64.whl", hash = "sha256:e0714bf7375920b1f62e4dd246eb3852499eeb855d7545fcb1b473021b40a98f", size = 11885454, upload-time = "2026-10-21T12:00:12.116Z" }, - { url = "https://files.pythonhosted.org/packages/cd/63/891ef9446d83920a8fe9084b603235bed9ea4c6f2ed6f426f38c6c37b4a4/docling_parse-7.22.4-cp311-cp311-win_arm64.whl", hash = "sha256:4165b344e10cc30ae86a8c5bc9a8512404a31d64d36e6829ac71a676ccc03a95", size = 9275252, upload-time = "2026-10-21T12:00:14.461Z" }, - { url = "https://files.pythonhosted.org/packages/7b/eb/3867c931c16517c56c1e11d09482f7126a4f3b8771458f1c5906e279f7b2/docling_parse-7.22.4-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:26acd38c462e9ba9d5a22bf2ea5aeed6c72a1ef290718632bf19ebd589e1f789", size = 9879311, upload-time = "2026-10-21T12:00:16.558Z" }, - { url = "https://files.pythonhosted.org/packages/7a/17/997c1e697e0154903dfe890d4ae05f2f00639f1928d5b37c1c076a446642/docling_parse-7.22.4-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:cc65ce91a364aff050e5b9b9cd7668817ba093af4b3c17bebcfe367e561debe2", size = 10441373, upload-time = "2026-10-21T12:00:19.314Z" }, - { url = "https://files.pythonhosted.org/packages/c7/14/a7a71397ca2f7ffd520b41a687dfe0420899f86640d59b29c43946c2e43a/docling_parse-7.22.4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d3979c9fe092c4badf7ccf76a2402a264a8caeb3e43a187f00b8acabd453b0a2", size = 10848679, upload-time = "2026-10-21T12:00:21.477Z" }, - { url = "https://files.pythonhosted.org/packages/b2/fb/3e3cc04007986f98abc2c30926c9e2e055f44c5f7124c146a761ce33bf4e/docling_parse-7.22.4-cp312-cp312-win_amd64.whl", hash = "sha256:521448992c4b51bba652b2f68102f7f2db3a5316aff27f9a844d1df64f310714", size = 11890707, upload-time = "2026-10-21T12:00:24.418Z" }, - { url = "https://files.pythonhosted.org/packages/9e/ee/16fdbd039ec5a9d50db9f90ac1691f6d5c09f3227cdccda62404830d8f56/docling_parse-7.22.4-cp312-cp312-win_arm64.whl", hash = "sha256:72259d23ca8d2672fcc563b5f359e4aa2b3a3f4adfe6afff105059a10288b34c", size = 9275484, upload-time = "2026-10-21T12:00:27.426Z" }, - { url = "https://files.pythonhosted.org/packages/62/af/e266749b004ff735e5528d763f290a5799609627c043d378c576f637d659/docling_parse-7.22.4-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:63d4f51331286c0e526877aba91aa2aea7f5d56826bce0be0dfc74492a8ee64b", size = 9879476, upload-time = "2026-10-21T12:00:30.114Z" }, - { url = "https://files.pythonhosted.org/packages/44/99/a3e836532da6c9c37c5b650f279265e7b3578b631cefe1483bbd46eb4eb0/docling_parse-7.22.4-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8e6021ca25351d22d0604d151cfffbfe5a5c35d11eb997776ed0d2ff04c8e2fe", size = 10441279, upload-time = "2026-10-21T12:00:32.522Z" }, - { url = "https://files.pythonhosted.org/packages/6b/58/05247a30e1c8028469f14b4850f62992cf95abc6251ddc903cfe4d680061/docling_parse-7.22.4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:661df5ea5c0709302be74c8d2197573cc3dae88200cb179ed0c4998e93de9f2e", size = 10848682, upload-time = "2026-10-21T12:00:34.944Z" }, - { url = "https://files.pythonhosted.org/packages/5f/0a/807c27ed2280772c113ee7fabab822686b0ea892f7599bdcc152a55f09d2/docling_parse-7.22.4-cp313-cp313-win_amd64.whl", hash = "sha256:9f2f60d253ef9e537d54fd04c25f5e21b53c05ddb420304e195211d6207021fb", size = 11890816, upload-time = "2026-10-21T12:00:37.683Z" }, - { url = "https://files.pythonhosted.org/packages/fd/1d/56e2b198179bdfddabd8c5a63eab165daa8022f5ca5884180de684d0a03e/docling_parse-7.22.4-cp313-cp313-win_arm64.whl", hash = "sha256:8e82fa17e6196a3445ff14b64e884dd11ec12dc7ca35d7afa70e8cde8258420f", size = 9275561, upload-time = "2026-10-21T12:00:40.235Z" }, - { url = "https://files.pythonhosted.org/packages/8a/41/0d04edd6f5e8dff659194fd6a988972cd8813c24ca6da83efe007a8973f6/docling_parse-7.22.4-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:5c42ec40b068930b718e63de0b0a78fd96c2e2448fc1a29bc1dc5b736fdd0759", size = 9879563, upload-time = "2026-10-21T12:00:42.517Z" }, - { url = "https://files.pythonhosted.org/packages/c5/bc/b44930747349194d7074f1639a54bab0b5db05cee0f63f322a35218b761c/docling_parse-7.22.4-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5344ce1eba6fc9ccc104fb4febca0a06b4ea5b407e6fa053135c742bde6f05e0", size = 10443095, upload-time = "2026-10-21T12:00:45.181Z" }, - { url = "https://files.pythonhosted.org/packages/e8/d2/afa8f225bac130fcd6b492c9b3c3f267fe50dda01f4c601e9d33ca4a5516/docling_parse-7.22.4-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:66201814ab634018aae3f5963f9583cfedefa979bb795f04f86c4851d4e67d8f", size = 10849093, upload-time = "2026-10-21T12:00:47.58Z" }, - { url = "https://files.pythonhosted.org/packages/79/44/54959de3d4b2ad19b3ad688dc7164d269fbe0971654022b902ca99eb2f57/docling_parse-7.22.4-cp314-cp314-win_amd64.whl", hash = "sha256:ef86c9e1fd1c5a68a96638e67c1b34792454c207492cb98bd6451866c82852fe", size = 12329250, upload-time = "2026-10-21T12:00:50.282Z" }, - { url = "https://files.pythonhosted.org/packages/ad/78/00394326d2498fbbfde3e4262a7daa7da62a55bc0b264103faf8620ec4b2/docling_parse-7.22.4-cp314-cp314-win_arm64.whl", hash = "sha256:bbc4b9b9ba3e261848b5cb0b186d3a04c0a94aacad96dd9fe6b185b89a8aeaee", size = 9653344, upload-time = "2026-10-21T12:00:53.018Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/25/41/92864c6c957d1ca217dd6ad4a08990f4b6076e2331109cfa541c322967c5/docling_parse-7.23.0.tar.gz", hash = "sha256:5527017c8be23492d5074dbd8473a2ceb4dcb7c503bb95da21310c0e1f9cf1fd", size = 7126562, upload-time = "2026-10-22T14:53:05.826Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/59/31/4a7b1f9a78599bb9695e7e2ddefecbfd251067bf8492c90af288c4cc4942/docling_parse-7.23.0-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:831aba0e27111d5424b09c4ec02574ecc1854cd807caf5fce41bd4d28e3ca7a9", size = 9732958, upload-time = "2026-10-22T14:51:48.289Z" }, + { url = "https://files.pythonhosted.org/packages/ec/a2/690dc4a0dd6183d8d3270df577389c3c40a9e982b334b5c7f50e69186dce/docling_parse-7.23.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a03fdf857a9548c5680b8562f0cb38340a585075ef0b497344ebe96f355fd32", size = 10464089, upload-time = "2026-10-22T14:51:50.879Z" }, + { url = "https://files.pythonhosted.org/packages/c4/8d/ce4fe55246e657ad2061dd3477521b8056137d0c959406f68ed5af51f9c1/docling_parse-7.23.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d9a4e8d479769aecbc3581e982d0ddfc3ab0754f2c14dda858b605751aa644fb", size = 10738231, upload-time = "2026-10-22T14:51:53.021Z" }, + { url = "https://files.pythonhosted.org/packages/c6/47/3430dc8469fb094b3027657e4a45eaa289aaece237798bbef14558f57782/docling_parse-7.23.0-cp310-cp310-win_amd64.whl", hash = "sha256:5ac943792d2a2426f5788178928eed3e8aa433f1734ce4f50b6a8da944c24b19", size = 11884485, upload-time = "2026-10-22T14:51:55.62Z" }, + { url = "https://files.pythonhosted.org/packages/91/ba/8336075120e0a371341e0d6ff62f0020a458d6fdac5990f06bb308fdd420/docling_parse-7.23.0-cp310-cp310-win_arm64.whl", hash = "sha256:5ba44da48bd97746b243f5c412f06084545c5dfc156aaabd9c370adcbd0c98fc", size = 9274290, upload-time = "2026-10-22T14:51:58.111Z" }, + { url = "https://files.pythonhosted.org/packages/b3/6b/530bfd82c674d7e5d7f629e6be4e216b05547c1451ce67bfe0ac58ae7582/docling_parse-7.23.0-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:28f4b446e2bff81f20a5d470f1d5f9a665d8f40dacb69637d94402805c6217be", size = 9733396, upload-time = "2026-10-22T14:52:00.679Z" }, + { url = "https://files.pythonhosted.org/packages/07/b0/389785444961da62a5bd2506b1b659bbc27186d0b64d102623391dc5be1e/docling_parse-7.23.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:42440d105eab21562c4e74c2709c00abadffc80a62527de2f710cd65a29de7d5", size = 10436967, upload-time = "2026-10-22T14:52:02.901Z" }, + { url = "https://files.pythonhosted.org/packages/3b/9a/534c30d8209963cb9d0cc249a86a13c3aff643243b0ecc96767eba151573/docling_parse-7.23.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:84a1c26944e49017a44cf564c80bc0babdd20bcd1a80a48b2621d0983defe597", size = 10844047, upload-time = "2026-10-22T14:52:05.315Z" }, + { url = "https://files.pythonhosted.org/packages/ed/5e/5f138043e71942027ce2ffc1396d717ba0b2f1e3b5ca943fcc4aa6cbdf1d/docling_parse-7.23.0-cp311-cp311-win_amd64.whl", hash = "sha256:02f69fa46f449de651927518b42fe20a73051f3fe6db2ef37c2c3838fdc51a14", size = 11885462, upload-time = "2026-10-22T14:52:08.257Z" }, + { url = "https://files.pythonhosted.org/packages/1c/33/bf1335f6c4c671ff57a85f007c25dd149cd140475590d70bff5d9a9de4b4/docling_parse-7.23.0-cp311-cp311-win_arm64.whl", hash = "sha256:08c561c3562d3a23d5a83053124334a19aa1591d6998d4ff88c1b1dbdcc988db", size = 9275261, upload-time = "2026-10-22T14:52:10.481Z" }, + { url = "https://files.pythonhosted.org/packages/d4/d1/123cd47fe87ba8e3564573e95684127c9ee3ddd9b3104d51a9705a8ff362/docling_parse-7.23.0-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:f625742187efed68eecbd4594a3123a3f418dc2aff57430773e2d6667edec1ba", size = 9733732, upload-time = "2026-10-22T14:52:12.814Z" }, + { url = "https://files.pythonhosted.org/packages/5b/88/c5baa26313fad51e0f82ced6afc9da9cfe81f0c71f37ef689d140a62f51b/docling_parse-7.23.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:48b9b6d482d5a152ce6096073ad5d365c01434507e5e115c9710c72a67e4ebf7", size = 10441292, upload-time = "2026-10-22T14:52:15.078Z" }, + { url = "https://files.pythonhosted.org/packages/2d/33/37572a39b71fd6f2a0e7854f318c604776a1338575d6bab139e85f05d1f8/docling_parse-7.23.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f873b25874993db8f06540ca656e62b8bfcb1c82a21cb48b8f4728fe4aaf1e72", size = 10848602, upload-time = "2026-10-22T14:52:17.386Z" }, + { url = "https://files.pythonhosted.org/packages/db/a6/479b26df15a2fb325003e7ec7ff08fe15700e0f7d4d90828e73e86fd253e/docling_parse-7.23.0-cp312-cp312-win_amd64.whl", hash = "sha256:7a2388afcdd7fa50144a0849a44dc52b0db8445fd5d53ae2a14c6abe73d479d2", size = 11890715, upload-time = "2026-10-22T14:52:20.159Z" }, + { url = "https://files.pythonhosted.org/packages/45/9b/c742755ad27ba7dfa5cdfd8e49f3cc3a45fd99c141882cbf46725594e488/docling_parse-7.23.0-cp312-cp312-win_arm64.whl", hash = "sha256:32ac4e0fda6b41870df18be766fc80a5418646266876ec0d9a60b4dd1c6ad76c", size = 9275489, upload-time = "2026-10-22T14:52:23.229Z" }, + { url = "https://files.pythonhosted.org/packages/f3/c3/bb8644409284c802d48bc306c9bfbdbde66d4a7a42aaab1b70224dda3d44/docling_parse-7.23.0-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:5fb2a180c65ac7e5287e507dd05ed0ffed01b32ac30f264c45e89c030584ece0", size = 9733752, upload-time = "2026-10-22T14:52:26.379Z" }, + { url = "https://files.pythonhosted.org/packages/d3/36/7377514d803eef552476ebfae1504d8d40831b33c0d7e308b0aeaf483561/docling_parse-7.23.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5ae75ade39ced501eb1a46eeebb39cc81c10aed24dd0c2d29438623232f2b233", size = 10441214, upload-time = "2026-10-22T14:52:29.105Z" }, + { url = "https://files.pythonhosted.org/packages/92/3d/6d0b2de930d2eff62944aca707f515f9a854f62d7e31c029f38e95d77d8d/docling_parse-7.23.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:51bea4cb593072dfe7facb433fb1a984c87dec6584dde57d579eb197783bb22c", size = 10848602, upload-time = "2026-10-22T14:52:31.836Z" }, + { url = "https://files.pythonhosted.org/packages/a4/1e/2092ef42f9c617c2ff58e86a85fc5193723b3391a4688edcc39dca3a5c8a/docling_parse-7.23.0-cp313-cp313-win_amd64.whl", hash = "sha256:a9f8d4264003268ece960a29cf3e0ba25cebe85f200dcf1189fc866437701425", size = 11890823, upload-time = "2026-10-22T14:52:34.507Z" }, + { url = "https://files.pythonhosted.org/packages/21/84/2408a8375ec90ed10e09c89328dcfe3233b15687fc13f5ec279cd0b4f4f2/docling_parse-7.23.0-cp313-cp313-win_arm64.whl", hash = "sha256:d02b7d09f6005b8c7a5e1d8e57d007b4dc829a1702effc95d2016d1075dd15f4", size = 9275558, upload-time = "2026-10-22T14:52:37.487Z" }, + { url = "https://files.pythonhosted.org/packages/bb/1b/6468be5ed7dc6e3be39bc674d435dd3f712936e5e4dd597a29e5b8daf9ba/docling_parse-7.23.0-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:67c71f27ee5e4d52791c2bc023f80ad9522b2ad465dab1a8be43f7715675c8d7", size = 9734432, upload-time = "2026-10-22T14:52:39.962Z" }, + { url = "https://files.pythonhosted.org/packages/df/53/688f5de9edbb3993e56462fc90da3f4c57a8d82eb7b7cac33f35cd329390/docling_parse-7.23.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5a1ab03a1fc1185653545a3d648a60e00197bc7b6f4b122d9332895457aaf264", size = 10443019, upload-time = "2026-10-22T14:52:42.62Z" }, + { url = "https://files.pythonhosted.org/packages/1b/55/044e6b839114859bf44fe034729b935a295beb2148441c258d6a1fb6579a/docling_parse-7.23.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:aecfd319131cd74e520ebe4fa6ecc0cdbd9719b60ae5278a103a0bf3799ca2c2", size = 10849015, upload-time = "2026-10-22T14:52:45.555Z" }, + { url = "https://files.pythonhosted.org/packages/71/d6/9274e5020841fd0e649d7f672e7fc076f841b5befd084c1e72ea59c633cc/docling_parse-7.23.0-cp314-cp314-win_amd64.whl", hash = "sha256:8d2cc8d179b795869a3a533a423ef236cac1d846fc49791d0f42fe9218660824", size = 12329257, upload-time = "2026-10-22T14:52:48.445Z" }, + { url = "https://files.pythonhosted.org/packages/12/b6/4129084f51abdf6e230e9f9564b121a6f337639b57380047b79b54190e9d/docling_parse-7.23.0-cp314-cp314-win_arm64.whl", hash = "sha256:5577e44c36fc7e097b57e2077cfbcf1521fca01e4710bba264c5f26394f34c70", size = 9653258, upload-time = "2026-10-22T14:52:51.26Z" }, + { url = "https://files.pythonhosted.org/packages/f0/40/ef0663722c4cd28da5b9a12f1c0af11b13612994da59db793d4219ef2851/docling_parse-7.23.0-cp315-cp315-macosx_14_0_arm64.whl", hash = "sha256:ba72d9080fec10707677f5cadf6a5d23a7eb0b85c08c314dbe823e3414e5693a", size = 9734429, upload-time = "2026-10-22T14:52:53.975Z" }, + { url = "https://files.pythonhosted.org/packages/ab/cd/94e2daddb9d82868111297ab2ce37428ae1cd6efb24474ec6bf34d873456/docling_parse-7.23.0-cp315-cp315-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:df6b6ac4984da5936402b46c4f43bcdcdea650570be62bdc866e7efaf7cee33e", size = 10443024, upload-time = "2026-10-22T14:52:56.378Z" }, + { url = "https://files.pythonhosted.org/packages/f2/63/0316ad450e2b9de67792348a4c26ef0686c5d076a9cd1e67eadee601529a/docling_parse-7.23.0-cp315-cp315-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ac704d1749a671aadb89a57775ab41b78bd05bf97afa16d5bbf0eb602c894f15", size = 10849008, upload-time = "2026-10-22T14:52:58.86Z" }, + { url = "https://files.pythonhosted.org/packages/30/ec/345f9a82621c1aaff786d5036e2c8fd00c65184541c9aa6ab3a9a22ed9a7/docling_parse-7.23.0-cp315-cp315-win_amd64.whl", hash = "sha256:8bd26ee21db60a6ea7f51e18a0eb4f5c4ac3b90b1af6980cd7444f9bc67e51f2", size = 12329261, upload-time = "2026-10-22T14:53:01.277Z" }, + { url = "https://files.pythonhosted.org/packages/cd/73/07c078bcedfede62d89a1367d2c1e039a2019456a7d90e11384c4514c4f9/docling_parse-7.23.0-cp315-cp315-win_arm64.whl", hash = "sha256:b3f678461f1aed6a13092780e0dbd70141ce975ca0abd2e5a24a386ee6fbf86a", size = 9653325, upload-time = "2026-10-22T14:53:03.649Z" }, ] [[package]] name = "docling-slim" version = "2.142.1" source = { editable = "." } -default-groups = "all" dependencies = [ { name = "certifi" }, { name = "docling-core" }, @@ -2126,7 +2162,7 @@ dependencies = [ all = [ { name = "accelerate" }, { name = "arelle-release", version = "2.46.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, - { name = "arelle-release", version = "2.47.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "arelle-release", version = "2.47.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "beautifulsoup4" }, { name = "defusedxml" }, { name = "docling-core", extra = ["chunking"] }, @@ -2154,9 +2190,10 @@ all = [ { name = "openai-whisper" }, { name = "openpyxl" }, { name = "pandas", version = "2.3.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, - { name = "pandas", version = "3.0.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "pandas", version = "3.1.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "peft" }, - { name = "pillow" }, + { name = "pillow", version = "12.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "pillow", version = "13.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "playwright" }, { name = "polyfactory" }, { name = "pylatexenc" }, @@ -2196,7 +2233,8 @@ convert-core = [ { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*'" }, { name = "numpy", version = "2.5.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, - { name = "pillow" }, + { name = "pillow", version = "12.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "pillow", version = "13.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "rtree" }, { name = "scipy", version = "1.15.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, { name = "scipy", version = "1.17.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*'" }, @@ -2206,13 +2244,23 @@ extract-core = [ { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*'" }, { name = "numpy", version = "2.5.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, - { name = "pillow" }, + { name = "pillow", version = "12.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "pillow", version = "13.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "polyfactory" }, { name = "rtree" }, { name = "scipy", version = "1.15.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, { name = "scipy", version = "1.17.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*'" }, { name = "scipy", version = "1.18.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, ] +feat-asr-transformers = [ + { name = "mlx-whisper", marker = "platform_machine == 'arm64' and sys_platform == 'darwin'" }, + { name = "numba" }, + { name = "openai-whisper" }, + { name = "torchaudio" }, + { name = "transformers", version = "5.16.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform == 'darwin'" }, + { name = "transformers", version = "5.20.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.12' or python_full_version >= '3.14' or sys_platform != 'darwin'" }, + { name = "whisper-s2t-reborn", marker = "platform_machine != 'arm64' or sys_platform != 'darwin'" }, +] feat-chunking = [ { name = "docling-core", extra = ["chunking"] }, ] @@ -2237,7 +2285,7 @@ feat-ocr-rapidocr-onnx = [ ] feat-ocr-tesserocr = [ { name = "pandas", version = "2.3.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, - { name = "pandas", version = "3.0.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "pandas", version = "3.1.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "tesserocr" }, ] format-audio = [ @@ -2320,7 +2368,7 @@ format-xml-uspto = [ ] format-xml-xbrl = [ { name = "arelle-release", version = "2.46.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, - { name = "arelle-release", version = "2.47.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "arelle-release", version = "2.47.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, ] models-local = [ { name = "accelerate" }, @@ -2374,7 +2422,8 @@ standard = [ { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*'" }, { name = "numpy", version = "2.5.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, { name = "openpyxl" }, - { name = "pillow" }, + { name = "pillow", version = "12.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "pillow", version = "13.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "polyfactory" }, { name = "pylatexenc" }, { name = "pypdfium2" }, @@ -2401,11 +2450,12 @@ constraints = [ { name = "langchain-core" }, { name = "numba" }, { name = "pandas", version = "2.3.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, - { name = "pandas", version = "3.0.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "pandas", version = "3.1.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, ] dev = [ { name = "boto3-stubs" }, - { name = "coverage" }, + { name = "coverage", version = "7.16.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "coverage", version = "7.17.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "dprint-py" }, { name = "fastapi" }, { name = "ipykernel" }, @@ -2443,7 +2493,7 @@ docs = [ ] examples = [ { name = "datasets" }, - { name = "gliner", version = "0.2.24", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.12' or (python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform != 'darwin')" }, + { name = "gliner", version = "0.2.24", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.14' and sys_platform != 'darwin') or (python_full_version < '3.12' and sys_platform == 'darwin')" }, { name = "gliner", version = "0.2.29", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform == 'darwin'" }, { name = "langchain-huggingface" }, { name = "langchain-milvus" }, @@ -2494,6 +2544,7 @@ requires-dist = [ { name = "docling-ibm-models", marker = "extra == 'models-local'", specifier = ">=4.0.2,<5" }, { name = "docling-parse", marker = "extra == 'format-pdf-docling'", specifier = ">=7.22.2,<8.0.0" }, { name = "docling-slim", extras = ["convert-core"], marker = "extra == 'extract-core'" }, + { name = "docling-slim", extras = ["format-audio"], marker = "extra == 'feat-asr-transformers'" }, { name = "docling-slim", extras = ["format-audio"], marker = "extra == 'format-video'" }, { name = "docling-slim", extras = ["format-docx", "format-pptx", "format-xlsx"], marker = "extra == 'format-office'" }, { name = "docling-slim", extras = ["format-html"], marker = "extra == 'format-email'" }, @@ -2563,17 +2614,19 @@ requires-dist = [ { name = "tesserocr", marker = "extra == 'feat-ocr-tesserocr'", specifier = ">=2.7.1,<3.0.0" }, { name = "timm", marker = "extra == 'models-vlm-inline'", specifier = ">=1.0.22,<2.0.0" }, { name = "torch", marker = "extra == 'models-local'", specifier = ">=2.2.2,<3.0.0" }, + { name = "torchaudio", marker = "extra == 'feat-asr-transformers'", specifier = ">=2.2.2,<3.0.0" }, { name = "torchvision", marker = "extra == 'models-local'", specifier = ">=0,<1" }, { name = "tqdm", specifier = ">=4.65.0,<5.0.0" }, { name = "transformers", marker = "sys_platform == 'darwin' and extra == 'models-vlm-inline'", specifier = ">=4.42.0,!=5.0.*,!=5.1.*,!=5.2.*,!=5.3.*,!=5.9.*,!=5.10.*,!=5.11.*,!=5.12.*,!=5.13.*,!=5.14.*,!=5.15.*,<6.0.0" }, { name = "transformers", marker = "sys_platform != 'darwin' and extra == 'models-vlm-inline'", specifier = ">=4.42.0,!=5.0.*,!=5.1.*,!=5.2.*,!=5.3.*,!=5.13.0,<6.0.0" }, + { name = "transformers", marker = "extra == 'feat-asr-transformers'", specifier = ">=5.16.0,<6.0.0" }, { name = "tritonclient", extras = ["grpc"], marker = "extra == 'models-remote'", specifier = ">=2.65.0,<3.0.0" }, { name = "typer", marker = "extra == 'cli'", specifier = ">=0.19.0,<0.27.0" }, { name = "typer", marker = "extra == 'service-client'", specifier = ">=0.19.0,<0.27.0" }, { name = "websockets", marker = "extra == 'service-client'", specifier = ">=14.0,<17.0" }, { name = "whisper-s2t-reborn", marker = "(platform_machine != 'arm64' and extra == 'format-audio') or (sys_platform != 'darwin' and extra == 'format-audio')", specifier = ">=1.7.1,<2.0.0" }, ] -provides-extras = ["convert-core", "extract-core", "format-pdf-pypdfium2", "format-pdf-docling", "format-pdf", "format-docx", "format-pptx", "format-xlsx", "format-office", "format-opendocument", "format-html", "format-markdown", "format-web", "format-latex", "format-email", "format-iwork", "format-xml-jats", "format-xml-uspto", "format-xml-xbrl", "format-html-render", "format-audio", "format-video", "feat-ocr-rapidocr", "feat-ocr-rapidocr-onnx", "feat-ocr-easyocr", "feat-ocr-tesserocr", "feat-ocr-mac", "feat-ocr-nemotron", "models-local", "models-remote", "models-onnxruntime", "models-vlm-inline", "feat-chunking", "service-client", "cli", "standard", "all"] +provides-extras = ["convert-core", "extract-core", "format-pdf-pypdfium2", "format-pdf-docling", "format-pdf", "format-docx", "format-pptx", "format-xlsx", "format-office", "format-opendocument", "format-html", "format-markdown", "format-web", "format-latex", "format-email", "format-iwork", "format-xml-jats", "format-xml-uspto", "format-xml-xbrl", "format-html-render", "format-audio", "feat-asr-transformers", "format-video", "feat-ocr-rapidocr", "feat-ocr-rapidocr-onnx", "feat-ocr-easyocr", "feat-ocr-tesserocr", "feat-ocr-mac", "feat-ocr-nemotron", "models-local", "models-remote", "models-onnxruntime", "models-vlm-inline", "feat-chunking", "service-client", "cli", "standard", "all"] [package.metadata.requires-dev] constraints = [ @@ -2694,7 +2747,8 @@ dependencies = [ { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*'" }, { name = "numpy", version = "2.5.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, { name = "opencv-python-headless" }, - { name = "pillow" }, + { name = "pillow", version = "12.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "pillow", version = "13.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "pyclipper" }, { name = "python-bidi" }, { name = "pyyaml" }, @@ -2737,7 +2791,7 @@ name = "exceptiongroup" version = "1.3.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "typing-extensions" }, + { name = "typing-extensions", marker = "python_full_version < '3.11'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/50/79/66800aadf48771f6b62f7eb014e352e5d06856655206165d775e675a02c9/exceptiongroup-1.3.1.tar.gz", hash = "sha256:8b412432c6055b0b7d14c310000ae93352ed6754f70fa8f7c34141f91c4e3219", size = 30371, upload-time = "2025-11-21T23:01:54.787Z" } wheels = [ @@ -2795,7 +2849,7 @@ wheels = [ [[package]] name = "fastapi" -version = "0.156.8" +version = "0.161.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "annotated-doc" }, @@ -2806,9 +2860,9 @@ dependencies = [ { name = "typing-extensions" }, { name = "typing-inspection" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/6c/93/6e785df7ec0bdbfef9d7bf1044bc7bfabd6d22641d147e8326a1f2ba210b/fastapi-0.156.8.tar.gz", hash = "sha256:cee65bba7890cd85264b3b06c7fdf88e84ca3510d00d4018cdbc2ce629e1ff22", size = 504768, upload-time = "2026-10-21T08:45:18.817Z" } +sdist = { url = "https://files.pythonhosted.org/packages/ed/3d/2cc1a0dbc2dac6e157b4ef12bac063e1016cb7c6d7395f76665e439cf1aa/fastapi-0.161.1.tar.gz", hash = "sha256:4076b88434452e20289379068e976c4a04c65ffc8e6be31510106e150a422f0f", size = 527406, upload-time = "2026-10-22T22:22:07.757Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/21/93/b87423a73fad5b3b1de4f14a680a2d2344c442d5a1f297a0eb413b7572a3/fastapi-0.156.8-py3-none-any.whl", hash = "sha256:d5f2e052a5f985fb0bbe1114527938c25fedbe198a8197faae71c3d38851b7c3", size = 147358, upload-time = "2026-10-21T08:45:17.278Z" }, + { url = "https://files.pythonhosted.org/packages/45/2a/101012d82931d9de3855384e1667e49c0e07a0048e3868f9fec1697293a9/fastapi-0.161.1-py3-none-any.whl", hash = "sha256:a1363080cf9aeedecd99f4e1a23669d7e77542227f6536f4d7bbd59f07ecaa94", size = 149049, upload-time = "2026-10-22T22:22:06.139Z" }, ] [[package]] @@ -2841,19 +2895,19 @@ source = { registry = "https://pypi.org/simple" } resolution-markers = [ "python_full_version >= '3.14' and sys_platform == 'darwin'", "(python_full_version >= '3.14' and sys_platform == 'linux') or (python_full_version >= '3.14' and sys_platform == 'win32')", - "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.13.*' and sys_platform == 'darwin'", - "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", - "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'darwin'", + "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'", + "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", "(python_full_version == '3.12.*' and platform_machine != 'x86_64' and sys_platform == 'linux') or (python_full_version == '3.12.*' and sys_platform == 'win32')", - "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", - "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'darwin'", "(python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'linux') or (python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'win32')", - "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", - "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'darwin'", "(python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'linux') or (python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'win32')", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", ] sdist = { url = "https://files.pythonhosted.org/packages/d8/28/3893324bcadf8f89b1616637468d766af3f625008c0735bf704fdfa86617/filelock-4.2.4.tar.gz", hash = "sha256:c6d8663535e1650ee430507b4ffbac7b464dd64b7647ea0112a9f406499d163d", size = 652444, upload-time = "2026-10-19T01:57:51.001Z" } @@ -2963,19 +3017,19 @@ source = { registry = "https://pypi.org/simple" } resolution-markers = [ "python_full_version >= '3.14' and sys_platform == 'darwin'", "(python_full_version >= '3.14' and sys_platform == 'linux') or (python_full_version >= '3.14' and sys_platform == 'win32')", - "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.13.*' and sys_platform == 'darwin'", - "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", - "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'darwin'", + "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'", + "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", "(python_full_version == '3.12.*' and platform_machine != 'x86_64' and sys_platform == 'linux') or (python_full_version == '3.12.*' and sys_platform == 'win32')", - "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", - "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'darwin'", "(python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'linux') or (python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'win32')", - "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", - "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'darwin'", "(python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'linux') or (python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'win32')", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", ] sdist = { url = "https://files.pythonhosted.org/packages/94/36/102e180f8f5dbaee88b26595b01ca8aa80bf4e62128d9aa94265b3996c96/fonttools-4.67.0.tar.gz", hash = "sha256:3cb57e6600ca77c0b1729cf8adc23bc0652633a37f18cfa934d9c7bc3de25519", size = 3750028, upload-time = "2026-10-14T13:20:28.294Z" } @@ -3227,30 +3281,30 @@ name = "gliner" version = "0.2.24" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", - "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'darwin'", + "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'", + "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", "(python_full_version == '3.12.*' and platform_machine != 'x86_64' and sys_platform == 'linux') or (python_full_version == '3.12.*' and sys_platform == 'win32')", - "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", - "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'darwin'", "(python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'linux') or (python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'win32')", - "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", - "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'darwin'", "(python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'linux') or (python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'win32')", - "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version < '3.11' and sys_platform == 'darwin'", "(python_full_version < '3.11' and sys_platform == 'linux') or (python_full_version < '3.11' and sys_platform == 'win32')", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version < '3.11' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", ] dependencies = [ - { name = "huggingface-hub" }, - { name = "onnxruntime", version = "1.23.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11' or python_full_version >= '3.14'" }, - { name = "onnxruntime", version = "1.31.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*' or (python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform != 'darwin')" }, - { name = "sentencepiece" }, + { name = "huggingface-hub", marker = "(python_full_version < '3.14' and sys_platform != 'darwin') or (python_full_version < '3.12' and sys_platform == 'darwin')" }, + { name = "onnxruntime", version = "1.23.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "onnxruntime", version = "1.31.0", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version >= '3.11' and python_full_version < '3.14' and sys_platform != 'darwin') or (python_full_version == '3.11.*' and sys_platform == 'darwin')" }, + { name = "sentencepiece", marker = "(python_full_version < '3.14' and sys_platform != 'darwin') or (python_full_version < '3.12' and sys_platform == 'darwin')" }, { name = "torch", version = "2.11.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'" }, - { name = "torch", version = "2.14.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version != '3.12.*' or platform_machine != 'x86_64' or sys_platform != 'linux'" }, - { name = "tqdm" }, - { name = "transformers", version = "5.20.2", source = { registry = "https://pypi.org/simple" } }, + { name = "torch", version = "2.14.1", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.14' and platform_machine != 'x86_64' and sys_platform == 'linux') or (python_full_version < '3.12' and platform_machine == 'x86_64' and sys_platform == 'linux') or (python_full_version == '3.13.*' and platform_machine == 'x86_64' and sys_platform == 'linux') or (python_full_version < '3.12' and sys_platform == 'darwin') or (python_full_version < '3.14' and sys_platform != 'darwin' and sys_platform != 'linux')" }, + { name = "tqdm", marker = "(python_full_version < '3.14' and sys_platform != 'darwin') or (python_full_version < '3.12' and sys_platform == 'darwin')" }, + { name = "transformers", version = "5.20.2", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.14' and sys_platform != 'darwin') or (python_full_version < '3.12' and sys_platform == 'darwin')" }, ] sdist = { url = "https://files.pythonhosted.org/packages/2b/6d/677d50855311e4a1286204c5ef2ef5672d01688246a303bde5326311bdad/gliner-0.2.24.tar.gz", hash = "sha256:191a37d1b3d297927c37ae890ce904e9d4e9d3f4c8e19715e77a9876e5f8a575", size = 160568, upload-time = "2025-11-26T18:20:32.867Z" } wheels = [ @@ -3266,14 +3320,14 @@ resolution-markers = [ "python_full_version == '3.12.*' and sys_platform == 'darwin'", ] dependencies = [ - { name = "huggingface-hub" }, - { name = "numpy", version = "2.5.4", source = { registry = "https://pypi.org/simple" } }, - { name = "packaging" }, - { name = "safetensors" }, - { name = "sentencepiece" }, - { name = "torch", version = "2.14.1", source = { registry = "https://pypi.org/simple" } }, - { name = "tqdm" }, - { name = "transformers", version = "5.16.1", source = { registry = "https://pypi.org/simple" } }, + { name = "huggingface-hub", marker = "python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform == 'darwin'" }, + { name = "numpy", version = "2.5.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform == 'darwin'" }, + { name = "packaging", marker = "python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform == 'darwin'" }, + { name = "safetensors", marker = "python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform == 'darwin'" }, + { name = "sentencepiece", marker = "python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform == 'darwin'" }, + { name = "torch", version = "2.14.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform == 'darwin'" }, + { name = "tqdm", marker = "python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform == 'darwin'" }, + { name = "transformers", version = "5.16.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform == 'darwin'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/93/02/ab43b9ad919d3cc1bcbb35485b2cdf7508ede0cddcebf72e765711795c30/gliner-0.2.29.tar.gz", hash = "sha256:39fa8f33c027627e1d6724bff972ab197bf37cea27e401cd3d40f2f95909b0a4", size = 299687, upload-time = "2026-09-08T12:50:50.113Z" } wheels = [ @@ -3376,7 +3430,7 @@ resolution-markers = [ "python_full_version < '3.11' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", ] dependencies = [ - { name = "griffelib", version = "2.3.0", source = { registry = "https://pypi.org/simple" } }, + { name = "griffelib", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/5a/bd/d2eaeaf3f9910c9cd72793af0de18ee3d3a3a27bb30ab01cfd7659c08dc4/griffe_pydantic-1.3.1.tar.gz", hash = "sha256:f7caedfa0effedb22893bf01cc411fd567614f7b4de7ce0c1f4293eb7acb5c44", size = 38176, upload-time = "2026-02-21T09:38:49.674Z" } wheels = [ @@ -3390,23 +3444,23 @@ source = { registry = "https://pypi.org/simple" } resolution-markers = [ "python_full_version >= '3.14' and sys_platform == 'darwin'", "(python_full_version >= '3.14' and sys_platform == 'linux') or (python_full_version >= '3.14' and sys_platform == 'win32')", - "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.13.*' and sys_platform == 'darwin'", - "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", - "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'darwin'", + "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'", + "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", "(python_full_version == '3.12.*' and platform_machine != 'x86_64' and sys_platform == 'linux') or (python_full_version == '3.12.*' and sys_platform == 'win32')", - "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", - "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'darwin'", "(python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'linux') or (python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'win32')", - "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", - "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'darwin'", "(python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'linux') or (python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'win32')", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", ] dependencies = [ - { name = "griffelib", version = "2.4.0", source = { registry = "https://pypi.org/simple" } }, + { name = "griffelib", version = "2.4.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/b8/18/5420f9df75e45717075c82c0b7c4dd1a23ce6987051ffd48107df2266d13/griffe_pydantic-1.3.2.tar.gz", hash = "sha256:4d7cddda2d30ef7814cd3d78af854d6fcc14f3f170bd07360babbec62673d4ca", size = 40000, upload-time = "2026-10-06T09:08:06.746Z" } wheels = [ @@ -3429,100 +3483,100 @@ wheels = [ [[package]] name = "griffelib" -version = "2.4.0" +version = "2.4.1" source = { registry = "https://pypi.org/simple" } resolution-markers = [ "python_full_version >= '3.14' and sys_platform == 'darwin'", "(python_full_version >= '3.14' and sys_platform == 'linux') or (python_full_version >= '3.14' and sys_platform == 'win32')", - "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.13.*' and sys_platform == 'darwin'", - "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", - "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'darwin'", + "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'", + "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", "(python_full_version == '3.12.*' and platform_machine != 'x86_64' and sys_platform == 'linux') or (python_full_version == '3.12.*' and sys_platform == 'win32')", - "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", - "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'darwin'", "(python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'linux') or (python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'win32')", - "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", - "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'darwin'", "(python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'linux') or (python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'win32')", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", ] -sdist = { url = "https://files.pythonhosted.org/packages/2e/5f/6d93df326cbf8f9f7276be77f83c81a9c061f479abdd81f9bbec197d4b29/griffelib-2.4.0.tar.gz", hash = "sha256:a277a462c56ff4479efe5cbcb4f882dc9a63cfa5ab6404a3e60957c6c8d2f7c9", size = 244488, upload-time = "2026-10-19T16:26:53.583Z" } +sdist = { url = "https://files.pythonhosted.org/packages/36/e2/0f5d8ed08766bc6dcd3eebf5a6623d83cbca33a6e4c90aef57156ce745ad/griffelib-2.4.1.tar.gz", hash = "sha256:40c028dd2e623f464423f0e11e3c553158f1cf4f1368239a370534d73e1407ff", size = 245153, upload-time = "2026-10-22T11:20:03.705Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/7e/28/bb989a55ac56dabf30765d2e7ea0710c032d9b67d8a7599f91fdcb2e00b1/griffelib-2.4.0-py3-none-any.whl", hash = "sha256:0a7db47b0bdf5123a6ceca2f71aa996742a4f04d9048046778f4a9006772d27f", size = 172791, upload-time = "2026-10-19T16:26:49.511Z" }, + { url = "https://files.pythonhosted.org/packages/de/02/1156d5f5307f573b901b14373848b84e69ca6cab09169b8cc97d16a181f9/griffelib-2.4.1-py3-none-any.whl", hash = "sha256:76bc562f936ad1ce198d2cf6d0731bd5c92a7d934b69ef828ef22ee0ffdb62ce", size = 172983, upload-time = "2026-10-22T11:19:59.843Z" }, ] [[package]] name = "grpcio" -version = "1.84.0" +version = "1.84.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/3f/4f/4435c0aae54657258d9cfcba78598f3d9e5fe4c82ff18d78558567b90faf/grpcio-1.84.0.tar.gz", hash = "sha256:19aaf172fc2edbefccce3f6e92c5150975dbe56c45744e9e87cf72ebdf85bfbe", size = 13493876, upload-time = "2026-09-14T06:59:33.291Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/3a/4b/a0dc421d049b743093eae90caeb5dd92ced7226cd4919dc4de34c81455b6/grpcio-1.84.0-cp310-cp310-linux_armv7l.whl", hash = "sha256:71fd60e6e426d293d0a2f685115ad0a0845117602cf13605a4be7524fb5f7bba", size = 6450049, upload-time = "2026-09-14T06:56:48.72Z" }, - { url = "https://files.pythonhosted.org/packages/f7/41/90292bf55af7aa09de0e3ec928d1b8c56d477f85244f7928d2231630b781/grpcio-1.84.0-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:8e1a45d174b6b8589f51dce1cea804aa6c1f72c9c80cba91ae2caabeb6d90540", size = 12344932, upload-time = "2026-09-14T06:56:51.685Z" }, - { url = "https://files.pythonhosted.org/packages/e9/68/b6c0248266a378b1bde08e4de7d69f3cc08ee6f5937a5dce7d3c3ba0fe1d/grpcio-1.84.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:efb29f8633bf6630dc89de4fe0353ac3d7e4b70ef7b6e29fb40f00e68c127fa5", size = 7030162, upload-time = "2026-09-14T06:56:54.412Z" }, - { url = "https://files.pythonhosted.org/packages/70/2b/0a2a2cbcf48847f83eb51fb982116d0965f2fe068e73f28b2d17facf30a4/grpcio-1.84.0-cp310-cp310-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:d0fdd25faece8a1f95e8a3a8006e29701b5cf8dadb4a8132e68f3134637004a5", size = 7781546, upload-time = "2026-09-14T06:56:56.571Z" }, - { url = "https://files.pythonhosted.org/packages/a6/7c/da97476f3c2e90e9f00bfb19def7cbb5f841b7661e3cd09c6a89beaa5b98/grpcio-1.84.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:393d8a78bff6731ecc5ad2151a821f8fbc1709b137ebb9c25a4ef399fbdcc914", size = 7186279, upload-time = "2026-09-14T06:56:58.817Z" }, - { url = "https://files.pythonhosted.org/packages/14/16/27fa3aed1ee6fdcbb978a1bd4bce255dc0122b90179535177a96543d14fc/grpcio-1.84.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:fc66cb50c93554b86db0b6625ab5c6e9051dbf8847c08d93c84918e02e413fb7", size = 7731191, upload-time = "2026-09-14T06:57:02.447Z" }, - { url = "https://files.pythonhosted.org/packages/4c/78/75644af37af85afb381376aef99cad92da8bc2d56ba3e5ae070a7cb59682/grpcio-1.84.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:455ed6083353b8e938f1d58c765eab2fbb165731e5b507be30fee344915a2a11", size = 8790443, upload-time = "2026-09-14T06:57:04.623Z" }, - { url = "https://files.pythonhosted.org/packages/95/4d/ce57fa986e93c06ef867f64e1ebe419e924fdc2395115607f0725f4855e4/grpcio-1.84.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:3d6a82c4fc6c85f2fb7572c86bdb86f84c97b6580e5f6599f711800bac48a5d8", size = 8138068, upload-time = "2026-09-14T06:57:07.348Z" }, - { url = "https://files.pythonhosted.org/packages/ba/a6/22a73111c4f75da9450bf0481fac805396ec9bf6f949a90bb2969de07cf4/grpcio-1.84.0-cp310-cp310-win32.whl", hash = "sha256:8e3f508d0e9e6236ba2f08d56e33355e434e785e813149a1b8477d3edf69779d", size = 4496545, upload-time = "2026-09-14T06:57:09.236Z" }, - { url = "https://files.pythonhosted.org/packages/31/ff/dc048bc3d8ebd8d4b7f6f6803c76142a9a5ca1e1e9fa34e79597f0f9ed77/grpcio-1.84.0-cp310-cp310-win_amd64.whl", hash = "sha256:ed2c1493c44d0932f1e55fdb5d1ead658c68288ec5d51b8c4928422d98633ef9", size = 5258144, upload-time = "2026-09-14T06:57:11.403Z" }, - { url = "https://files.pythonhosted.org/packages/2d/b9/46146728b3f4a5c7e34c17d0ab724d58b5456b116e76dc77d3ef4e79b135/grpcio-1.84.0-cp311-cp311-linux_armv7l.whl", hash = "sha256:4aaeceeb7fa7d824c322d1ec3208c8495c88478a927295553235435fc49043ad", size = 6454572, upload-time = "2026-09-14T06:57:14.651Z" }, - { url = "https://files.pythonhosted.org/packages/e3/63/5d668b4102637410d700153fd12d6a798e3ff8308bd9dcbaeae93f191060/grpcio-1.84.0-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:06619ba1515e5ee69fb2a514e95dd8be05ce74cb3928d5b34f87f87c86fe3c27", size = 12359529, upload-time = "2026-09-14T06:57:17.202Z" }, - { url = "https://files.pythonhosted.org/packages/18/2a/52e29c02047a493f15a78c0502bde4d3fab7c19c7813944d367cd501811c/grpcio-1.84.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:158c1c11cfb61b4849c3caf4d52de6f5ecd376e14446feb4a90dc95a90d616f5", size = 7029927, upload-time = "2026-09-14T06:57:19.767Z" }, - { url = "https://files.pythonhosted.org/packages/0a/11/9962b313553647abb091943e0721e4a1662ecc63cdfe930abf00abcce47a/grpcio-1.84.0-cp311-cp311-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:a9383401d9f116f98cacd4eba6c505a6edb80ba65badfc8e8ed8ae64983bcc44", size = 7782268, upload-time = "2026-09-14T06:57:22.381Z" }, - { url = "https://files.pythonhosted.org/packages/e2/b7/14a9413cb7d4b2e782b4f79c81a918610caedf55138ab5916f5fdd4b002f/grpcio-1.84.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:bd8ea8eb3817b226057cc1c0e7ec4b378dcda52043b972b6ff12b1152178967d", size = 7187959, upload-time = "2026-09-14T06:57:24.686Z" }, - { url = "https://files.pythonhosted.org/packages/ee/3b/6cc8e6aed8f23be40f52af341e5d4595ec3ec8d7572271a692b5c1212178/grpcio-1.84.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:756ea5c2da00fa65c930284892d2a9706828704ca3ba40b4c51c4834eb39fcfd", size = 7737554, upload-time = "2026-09-14T06:57:27.5Z" }, - { url = "https://files.pythonhosted.org/packages/3c/7e/6f61002a01802ca9675e1b3599c9b0f9f3cf168ded94ebacc02199309f88/grpcio-1.84.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:28d2609691da93051e998495108bbddd2a9f7a561253bae94828d81290f30c15", size = 8792681, upload-time = "2026-09-14T06:57:29.731Z" }, - { url = "https://files.pythonhosted.org/packages/eb/84/8bec1ae7e6732a9b435a394ddfdfffde46c2620ae0109823f7cce1a54455/grpcio-1.84.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:27b8b36200a9fbee6e120246f4a8a41657549107ef19fb2c819c4b2fd524f39a", size = 8145493, upload-time = "2026-09-14T06:57:32.672Z" }, - { url = "https://files.pythonhosted.org/packages/59/84/c8c7bd210d657288f18af06522f150f61e81ea14fd3c7c135beed697c5fd/grpcio-1.84.0-cp311-cp311-win32.whl", hash = "sha256:465eef3d17e59ad22a556fc0138f7c7c799df426734344daec42c797d49fda99", size = 4495596, upload-time = "2026-09-14T06:57:34.799Z" }, - { url = "https://files.pythonhosted.org/packages/da/1e/da99356b3b573af357d059753a47fba54f1ca1a9c0e4deccd0210cb7f4ba/grpcio-1.84.0-cp311-cp311-win_amd64.whl", hash = "sha256:f9a456bdbed52a01c9ab8423bdebab04a5363c78676edc55ab9b58bd13bdf9e1", size = 5259900, upload-time = "2026-09-14T06:57:37.067Z" }, - { url = "https://files.pythonhosted.org/packages/0a/c1/4c9a2e0e6b0aaf02781404cad2f79211f989f2c827cf672a4a48d1604d3e/grpcio-1.84.0-cp312-cp312-linux_armv7l.whl", hash = "sha256:b5c6f20d657ae09ae4e30d9d3a21edd13f1219d58cc6f999b9d1bb63be9c1baa", size = 6415756, upload-time = "2026-09-14T06:57:39.345Z" }, - { url = "https://files.pythonhosted.org/packages/b1/57/131e7007bdee9acb77a8dbe8a16fa9fef75f88c1695242d8ee0993ac2d3d/grpcio-1.84.0-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:406583b4e8fb2282ebd392e12b963e601c1f82e07125a8c2cb5b144e7e024796", size = 12339195, upload-time = "2026-09-14T06:57:42.373Z" }, - { url = "https://files.pythonhosted.org/packages/db/d1/a7b7cda98fcab9b3d2916204a872d87371158a7a34e41768f524584fb64d/grpcio-1.84.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:fbdbcd06986ede3ce584083b1dc2afe6808e8943e5cf50ad11183c03aceda25a", size = 6984468, upload-time = "2026-09-14T06:57:45.035Z" }, - { url = "https://files.pythonhosted.org/packages/19/81/c5be83e3ac9416f73c4c51fe1ea9c41a0c42fc3509e3505faa46f5046abe/grpcio-1.84.0-cp312-cp312-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:23e6e8e8a75cff88e0a793bfd3becea03a13e2763ae90c1ff573bc19ca5b429a", size = 7749432, upload-time = "2026-09-14T06:57:47.395Z" }, - { url = "https://files.pythonhosted.org/packages/a0/bf/258cd7c0a7ed92745dc93c31666d462d05b702807a689744bd49fb833bde/grpcio-1.84.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:b44f0a0fc7bc6677d38cc80bca1a32814ce6c8f200fb8b3c1a61c9d77eaefbf3", size = 7156115, upload-time = "2026-09-14T06:57:49.657Z" }, - { url = "https://files.pythonhosted.org/packages/2b/4b/7f829418dbfcf91b875e55e2973f1059a95decb4f081313416317ef04ec1/grpcio-1.84.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:210e4c32f907045eb8158273e60c6ab69a3947697df6245dbda381f26c59485b", size = 7708010, upload-time = "2026-09-14T06:57:52.496Z" }, - { url = "https://files.pythonhosted.org/packages/34/f0/9932e2fec6a04205f8bf3f8f4d2020479dcdac88feb6f93822ed31bf0eba/grpcio-1.84.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a71d24f40b0cc6798feaa978c7411dc1135b7018e9fc0442db611c139bf58344", size = 8759980, upload-time = "2026-09-14T06:57:55.312Z" }, - { url = "https://files.pythonhosted.org/packages/2c/5c/b67407c6dbc480dfc0715f6eccdb1061e7c88d85f9a330a241d357a538c5/grpcio-1.84.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:f6c972474ce691aca74e58d17625450cef153dc4760364cadeb167983ea6d589", size = 8124904, upload-time = "2026-09-14T06:57:58.569Z" }, - { url = "https://files.pythonhosted.org/packages/02/37/2bfdae2df8dfcfc0df619b628e0c7153ce703adae827243f44720322ccc1/grpcio-1.84.0-cp312-cp312-win32.whl", hash = "sha256:0d532ade4486dad9b302ffa4d4683d67561051c26d17c4023322845e9fa10140", size = 4478915, upload-time = "2026-09-14T06:58:00.714Z" }, - { url = "https://files.pythonhosted.org/packages/85/2c/309268b7b39f6deb2342f634841e105623a0b67982e8b10ec516782ff1c6/grpcio-1.84.0-cp312-cp312-win_amd64.whl", hash = "sha256:49717e857899f4136d7657bf5aded61ac479110a075438290923a4d86af7cd02", size = 5253534, upload-time = "2026-09-14T06:58:03.336Z" }, - { url = "https://files.pythonhosted.org/packages/5d/51/40f99701adb01d4e5316a2aaf13838da1a24d5c879cd8c95156d7c364454/grpcio-1.84.0-cp313-cp313-linux_armv7l.whl", hash = "sha256:209414080da8c20af94df1395b635da52dd57b5edc9e917e1deca0dc1c4bb55e", size = 6427619, upload-time = "2026-09-14T06:58:06.025Z" }, - { url = "https://files.pythonhosted.org/packages/c5/4b/ed8e22a1237e6b2be6ef4f221d074a5b0e0dd8a0da8c944c04aea731f0eb/grpcio-1.84.0-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:e41c3993eee896c617dbd8a505085d28b6e84a0445ed9a1f40f95808473cf678", size = 12336549, upload-time = "2026-09-14T06:58:08.583Z" }, - { url = "https://files.pythonhosted.org/packages/d3/50/00165b05cd73f45996748ea67ce9e55d08936f2fea94a7fd8541cc2d0e54/grpcio-1.84.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:fff5ef3fe1bba7d6147e5f19e01e5e122ac2c076486887ddcb8d42e663400fbe", size = 6989458, upload-time = "2026-09-14T06:58:11.884Z" }, - { url = "https://files.pythonhosted.org/packages/26/38/d0486230e684d916f97429a53041db88410e662a38f2a8d09e2d90375840/grpcio-1.84.0-cp313-cp313-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:b8c62888c3e49debf37ad9773e3c02f77b0c1e811f8fb0962f2b6c3bbab5b97a", size = 7757778, upload-time = "2026-09-14T06:58:14.849Z" }, - { url = "https://files.pythonhosted.org/packages/da/56/548a643decb059ca244499c675ae2c13a15f523ba94592c2774bd80a13c1/grpcio-1.84.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:986e9751d416d7a6eaa2fecdac38da63153d63a4b340ba7d624889c490451500", size = 7159572, upload-time = "2026-09-14T06:58:17.87Z" }, - { url = "https://files.pythonhosted.org/packages/db/f5/42caac81a79ec680f1f7a8eaf7ca90d2f93936ce0c3a073141ba96757f77/grpcio-1.84.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5933a052946873d01a42119a05420d669bdca436aeba2d1851988ccb12b421c0", size = 7710547, upload-time = "2026-09-14T06:58:20.607Z" }, - { url = "https://files.pythonhosted.org/packages/57/a4/828ad990b2410fee0a55cc73aa1bf98eb5b911c54847374ef4f24b9e877b/grpcio-1.84.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:e094dd21f077af8194923fc263cad872eaa1802bb0156fd7e5ae18e99cd86715", size = 8761519, upload-time = "2026-09-14T06:58:23.875Z" }, - { url = "https://files.pythonhosted.org/packages/d5/a5/1f91af098919eaf5d80d5a61126ad9fae074e5190c25a3014ce1d8d0d890/grpcio-1.84.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:08735e3d08d24ab3132cf87e2e5dea8746cabcc7d676c2b0b7362f195feef9d9", size = 8121424, upload-time = "2026-09-14T06:58:27.006Z" }, - { url = "https://files.pythonhosted.org/packages/8c/8f/77fd4a7a913b636785479922349c4cb98d94d05d15652e556b3ca0df6663/grpcio-1.84.0-cp313-cp313-win32.whl", hash = "sha256:70bb4ce8be0c5606bec259cbd7152374470396413b7863a658a08c849e6b29ff", size = 4477974, upload-time = "2026-09-14T06:58:29.528Z" }, - { url = "https://files.pythonhosted.org/packages/d0/9a/1fa59ddbfc8898e5518d1447e46f771f387f0ed6132ad531395338e51a5c/grpcio-1.84.0-cp313-cp313-win_amd64.whl", hash = "sha256:b61692f0069b3eee2fc8a3a1b7f6c044df9e03fede6ce69b3ca832e1c39f26c5", size = 5255326, upload-time = "2026-09-14T06:58:31.781Z" }, - { url = "https://files.pythonhosted.org/packages/26/6f/e25ca89ca5b0b7b95464c907a5c21a77c0ac8c4ee1dca164c4dd8f153ddb/grpcio-1.84.0-cp314-cp314-linux_armv7l.whl", hash = "sha256:026d757df86c5b7a41de8200b9a2cda454aaa5004cb0c7e3374c66eb82f61499", size = 6428207, upload-time = "2026-09-14T06:58:34.401Z" }, - { url = "https://files.pythonhosted.org/packages/cd/b4/6b76b429f3f9b901cdbc306c81364d708bc957f847a05cbd1046cd2d05d8/grpcio-1.84.0-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:3de427b05f244ba2c2a9bdc67e7a6731c8340811524ecc4435466549f8af1d17", size = 12342420, upload-time = "2026-09-14T06:58:37.416Z" }, - { url = "https://files.pythonhosted.org/packages/af/64/ac86d638ba7f73bee0dccb608ba551d4f63adf75151f00d2c43e46d3979e/grpcio-1.84.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:e90e3bdf7b5eac005fef631adae9cafde16f922def207b80a7c46b253c18ad20", size = 6998396, upload-time = "2026-09-14T06:58:40.535Z" }, - { url = "https://files.pythonhosted.org/packages/4a/65/fa12e9ec9d7ebf8cc3e81428fa9e1ca0d30d22d546ce2baa4c64bc917cbc/grpcio-1.84.0-cp314-cp314-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:e88d304f094f4937bc27ec6a435e218a084168f11ec630c8d5d39b431d08d81d", size = 7757538, upload-time = "2026-09-14T06:58:43.297Z" }, - { url = "https://files.pythonhosted.org/packages/21/d7/94240c7fae121ff1f116dcf04a3b7ee0216a06832c704310363f72638d4c/grpcio-1.84.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:57dc36a5ab0e676f5f6e171de2917fd0aef73f32a9aaf23956bfe19997a30bd1", size = 7161480, upload-time = "2026-09-14T06:58:45.939Z" }, - { url = "https://files.pythonhosted.org/packages/23/c9/7033e95d4b344969818b09185721c7608b47fc2498d97b5e4eec4995dbf3/grpcio-1.84.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:5deda5b4bf62769eb98c119cca43d40e1231e34846b19db5cdea821d446a2253", size = 7720191, upload-time = "2026-09-14T06:58:48.308Z" }, - { url = "https://files.pythonhosted.org/packages/95/22/b45df2deba81d55069076859480bae7109c9eec02bce5515c799530cc2aa/grpcio-1.84.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:9bab4cf571653a8afffb83ce21aa27b51dfe629b526b7b6adec35491fe1fc2ea", size = 8762792, upload-time = "2026-09-14T06:58:51.068Z" }, - { url = "https://files.pythonhosted.org/packages/de/c4/3e1c3d6155c16b8737cc31d5b477d6cf1fc7cdd10d58320cf0ec9b446f42/grpcio-1.84.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:c5559b492007dc09b4de9b95dab05f0b5e53547aad230cf07e46c7dd017a3be5", size = 8123299, upload-time = "2026-09-14T06:58:54.332Z" }, - { url = "https://files.pythonhosted.org/packages/56/fe/f4864de5b815e5ba18858771f99381a398fac14117f89ef5291ed43d3c4e/grpcio-1.84.0-cp314-cp314-win32.whl", hash = "sha256:2c024da73b296f040b8360e60bd73a659b230093684a438da0e1260f34cc724e", size = 4562560, upload-time = "2026-09-14T06:58:56.894Z" }, - { url = "https://files.pythonhosted.org/packages/44/03/640811d4d8c84f5e603995c5a9bab725223aa472cad9ca4286c3bbf1c3e3/grpcio-1.84.0-cp314-cp314-win_amd64.whl", hash = "sha256:800b7e00d92553313c0463c200087930aa78678ec1d528193aeb50906f55989b", size = 5394092, upload-time = "2026-09-14T06:58:59.61Z" }, - { url = "https://files.pythonhosted.org/packages/4a/1a/9e3d2c9f005f680f03308fa894b1db91d4ab3f0fe65ff630c69561e91e95/grpcio-1.84.0-cp315-cp315-linux_armv7l.whl", hash = "sha256:47ecf0d9b81d981f07b61bd89eced9d2582f5eaacc3aaa36ad27f81aef70a27f", size = 6428252, upload-time = "2026-09-14T06:59:02.597Z" }, - { url = "https://files.pythonhosted.org/packages/77/34/0bc9f52ebf091311651eeab3a452fb557985604a3088cb5406f4d6df85d3/grpcio-1.84.0-cp315-cp315-macosx_10_15_universal2.whl", hash = "sha256:61386101ecaa096b694d0dd278caf99a56aeec78440cc17e918eef0b50f2d567", size = 12359488, upload-time = "2026-09-14T06:59:05.646Z" }, - { url = "https://files.pythonhosted.org/packages/93/0e/c31052712f241cb6ecae9c226fabd519b7f8c64a7a40bac27e9ca0405b78/grpcio-1.84.0-cp315-cp315-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:f6d178ba6dc8e82976c184b65fddde172d054c17237993a3e083efe4f134d55b", size = 7019339, upload-time = "2026-09-14T06:59:08.76Z" }, - { url = "https://files.pythonhosted.org/packages/55/b9/b9b33ea4f1eb4cad28833cade604febf357385b5ebb0c9c7562d020e167a/grpcio-1.84.0-cp315-cp315-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:15bb76489e337fc492685c9758e2fd4d4ab516b901ad830dc5a91987decf00be", size = 7107974, upload-time = "2026-09-14T06:59:11.568Z" }, - { url = "https://files.pythonhosted.org/packages/0e/9e/799d4c45db91bbdcd8c54b3982932dbcf3d059f7ce67dca3e8540faa1ece/grpcio-1.84.0-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:82da34ae4f639c73ac46e521e00c0a49bf86f717b9fb1f405f133e98731e38dc", size = 7200036, upload-time = "2026-09-14T06:59:14.401Z" }, - { url = "https://files.pythonhosted.org/packages/45/dc/dcfdd13ada41aff9098f0c2c6f260eb7debbc88b84b7e5fcbd085165427d/grpcio-1.84.0-cp315-cp315-musllinux_1_2_aarch64.whl", hash = "sha256:9b73836ba0e16fcbb57c31cf6cbc2907c8d8c790b83679df454b74bd15e0be04", size = 7742281, upload-time = "2026-09-14T06:59:17.348Z" }, - { url = "https://files.pythonhosted.org/packages/55/31/75eab2ec77b80804bc5e21cec99b57598e726fca6484cd3e8920a97639d5/grpcio-1.84.0-cp315-cp315-musllinux_1_2_i686.whl", hash = "sha256:42959bd50dd660ffc3f2a9bec15a6da4f9aaa0dda555d59ff2d2e80b908456a8", size = 8113629, upload-time = "2026-09-14T06:59:20.584Z" }, - { url = "https://files.pythonhosted.org/packages/34/f0/fdcf6bdc1df9ca11679a1187bef8e6b81df31a2baae69497e17344f05ea3/grpcio-1.84.0-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:659728f20fc7a0933ed7b1945435e31014b97ab8a5a7edcbaa70da4794aeb191", size = 8152972, upload-time = "2026-09-14T06:59:24.523Z" }, - { url = "https://files.pythonhosted.org/packages/5c/cf/6720e720bfa80fcb1ace873f66724eb3c8b03bba2fa078a30c12cab3212e/grpcio-1.84.0-cp315-cp315-win32.whl", hash = "sha256:edb6f87fc60ff438557291501b3e16c7a77c3b01a52d782cf276dccc7c5dd89c", size = 4561981, upload-time = "2026-09-14T06:59:27.275Z" }, - { url = "https://files.pythonhosted.org/packages/7f/b9/69d8a709df225bc2e06e028e9465166b174c24b3da07cc72d9a5ddc63194/grpcio-1.84.0-cp315-cp315-win_amd64.whl", hash = "sha256:4119efa6519871719ad81f33bc95ab87857dcb1c5801f30a6e592f2c41164169", size = 5394757, upload-time = "2026-09-14T06:59:30.118Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/c0/3a/5c8e0eea2af3d30cb20d33ac325a98d9b799c069d63101ca4da20bcc776a/grpcio-1.84.1.tar.gz", hash = "sha256:446e7876b9b991fa124c1d414899fa7cf95f89a3e71237ea0161863dc0b2c09f", size = 13421202, upload-time = "2026-10-22T14:59:43.986Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4b/05/f05e999e5ddc319a52e70d15b765ffb597b959bfe276eddc246c6bd78c2d/grpcio-1.84.1-cp310-cp310-linux_armv7l.whl", hash = "sha256:68ff21d6cee6f38f7554cdd263e6db25c95a3efe20726350ab4de4a81808be9c", size = 6415481, upload-time = "2026-10-22T14:57:12.614Z" }, + { url = "https://files.pythonhosted.org/packages/a0/2f/90cf10ac2754ac93604c92d7c9b21713774ad2a7e6ef2a52f04c9becf9c1/grpcio-1.84.1-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:3c5b41ac9a337f5633d9474b9ae6b1b7f2f4e3eca024a3855536d6980e817d43", size = 12311108, upload-time = "2026-10-22T14:57:16.97Z" }, + { url = "https://files.pythonhosted.org/packages/f6/6b/3743380ac98de1d7decd77550ae3982e5ecbb057423b91fc0d3190cafb73/grpcio-1.84.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:5842cc52e13a5cf0d1beced73e43276a41e22c0e8a8f9f7c606536efce187e5a", size = 6995603, upload-time = "2026-10-22T14:57:19.511Z" }, + { url = "https://files.pythonhosted.org/packages/94/6b/d98111f24cc7806eac591e9031e733ad7ae65627993a3d3b9d27a6d8d1bb/grpcio-1.84.1-cp310-cp310-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:3bb28f8c1911de119135adbabb21b6e6563e7a5c9fc950c6b8ab2a387afb4372", size = 7746983, upload-time = "2026-10-22T14:57:22.066Z" }, + { url = "https://files.pythonhosted.org/packages/cd/be/d2cb6ab9b4552426127fde93acc9197c89e6f46b646134298087e40b9401/grpcio-1.84.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4aaf596ea35c7d022a3bfe0402cdee30d86c6ccea2b6fbbe03d1e4826cc7179c", size = 7151717, upload-time = "2026-10-22T14:57:24.28Z" }, + { url = "https://files.pythonhosted.org/packages/ed/aa/98dea9d63129a3071240cb98980429cd3d732d47e948478216bd914b5666/grpcio-1.84.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:c36f794a507bbda13e1b656e4fba775a08f3ca0a1e1be5f65ed47ceb0db47812", size = 7696631, upload-time = "2026-10-22T14:57:26.845Z" }, + { url = "https://files.pythonhosted.org/packages/4d/51/a5829f905a311c8b8a877132adda95104cbe6487dce4efffbc513e48ba01/grpcio-1.84.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:0b3d2b21939a6a773d1a692a1ac8564ec31702b752b38b913eb5b1bcfc280d55", size = 8755877, upload-time = "2026-10-22T14:57:29.353Z" }, + { url = "https://files.pythonhosted.org/packages/cc/3b/30c6cf1693321278055386761bce00b32ac24fe892691197023a31f7a7ca/grpcio-1.84.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f6d12757eea5b6b642a171e7701ecfb360ce0bf13d262dad1bfdebcd267bcaf5", size = 8103508, upload-time = "2026-10-22T14:57:32.08Z" }, + { url = "https://files.pythonhosted.org/packages/3d/59/ae59ed6d2d76a189a12c2c68d08d2fa2aa20797b94c6b30ae9a0b4c3b13b/grpcio-1.84.1-cp310-cp310-win32.whl", hash = "sha256:a37234085137ba26aa89bb377bba839894616eb1ed3873e1cc4a1badce885880", size = 4461581, upload-time = "2026-10-22T14:57:34.407Z" }, + { url = "https://files.pythonhosted.org/packages/16/2d/87ae3e5a5075e7f2a33773cf0958a57351989f7cf98a9b2f6eb9fa6d4dce/grpcio-1.84.1-cp310-cp310-win_amd64.whl", hash = "sha256:d82bfc0cc4e9120a52f7657caa6af1727a79093612bd7e91a8444a29e4df21de", size = 5223494, upload-time = "2026-10-22T14:57:36.928Z" }, + { url = "https://files.pythonhosted.org/packages/b6/99/8c0a3739dbc75bf509cf2a79a35ebb27e73cd7a1f9be25af842ae66e4749/grpcio-1.84.1-cp311-cp311-linux_armv7l.whl", hash = "sha256:a5ea4e8d1e9745ba6c2c9d14ed0861e9496a8051bf9fd8a17b667d9b9a0c1019", size = 6420007, upload-time = "2026-10-22T14:57:39.037Z" }, + { url = "https://files.pythonhosted.org/packages/a3/00/c8261b1d56715d09c922145d12427abc1b1be5afad031336d7b00bad7d8c/grpcio-1.84.1-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:11c1d07c58922f5dad022b422d3f7998755c3e35e2f1949bac47cfd7a5eb31fd", size = 12325248, upload-time = "2026-10-22T14:57:41.384Z" }, + { url = "https://files.pythonhosted.org/packages/f0/4a/30f23e49f1b8ab11ccd24cfa146524df5478f45db7167006580cdfeaa321/grpcio-1.84.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:6a22342e59b5b2f4c5ed276ef72a3668ec84f38d2f5fad8a64af0b3618e510eb", size = 6995366, upload-time = "2026-10-22T14:57:44.399Z" }, + { url = "https://files.pythonhosted.org/packages/c1/d8/fd238758e4725f11d509c440de1b03a77c53d5f213fd45ccfb5f4f775aff/grpcio-1.84.1-cp311-cp311-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:bdd1181edaf42b6e79a457789fd43e85858db1df3861e4e5128ff4d6a49cb638", size = 7747707, upload-time = "2026-10-22T14:57:47.241Z" }, + { url = "https://files.pythonhosted.org/packages/47/54/d6544884ef836bea968d3ed7abf179c4d33a794dd8a8b1c5cf002fff9620/grpcio-1.84.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:eb881326607275ad2d2d17dce09b823472414dcc559e8f694d5607fe8af3cbc1", size = 7153395, upload-time = "2026-10-22T14:57:50.28Z" }, + { url = "https://files.pythonhosted.org/packages/06/9c/094cd0afd21348e65d5750a7fa4cfa5f8ba6ca354fe6aff9f1163f4c5d0e/grpcio-1.84.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:772ff116d0d31b2817e23fb9a1dfa52fa9fed08be0cd87b593450f034e2968b1", size = 7702992, upload-time = "2026-10-22T14:57:53.602Z" }, + { url = "https://files.pythonhosted.org/packages/7c/54/254432337e14beb08bc7f29fc10a86ef149f672124073f2e0d446dbf8538/grpcio-1.84.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:0225c1e29d1506594e75ac46fd7b327bbfd24c6306a3c479b2164c1c4e87901f", size = 8758120, upload-time = "2026-10-22T14:57:55.728Z" }, + { url = "https://files.pythonhosted.org/packages/04/29/528ccb437076233d524e09e59320625b8ca9d94f0fb0198703e7100f3bff/grpcio-1.84.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a1ce9e360d0a4a329b925ae8b0bc49d97d663bcce50822eb862873798a86eb10", size = 8110925, upload-time = "2026-10-22T14:57:58.639Z" }, + { url = "https://files.pythonhosted.org/packages/24/5a/e4005d02dd65884a525f49ba0aa0371967b7fb40f00d35818ab397d91a93/grpcio-1.84.1-cp311-cp311-win32.whl", hash = "sha256:b87f8696bb78a31328e815629d320304c3d5cca1c654d3fd7e5518685bcfb8d2", size = 4460566, upload-time = "2026-10-22T14:58:01.077Z" }, + { url = "https://files.pythonhosted.org/packages/6e/fc/fc040230b60529a5df349945eb1e4f8a201607a6e3d70f3465d80e801393/grpcio-1.84.1-cp311-cp311-win_amd64.whl", hash = "sha256:e44786d5c166944a53fb1fa3384d03f1dbade6f68007be6d0c5a1a0971cbaca6", size = 5225017, upload-time = "2026-10-22T14:58:03.113Z" }, + { url = "https://files.pythonhosted.org/packages/69/39/34a3e64818b1fdaf73b6c873f7d085969f20c2aff114c8909cc7ee0cb2b4/grpcio-1.84.1-cp312-cp312-linux_armv7l.whl", hash = "sha256:db2dbe5380dccc2f5df967f31308a744e65d46e21b473a9c3ca033c4299ec3f4", size = 6381194, upload-time = "2026-10-22T14:58:05.289Z" }, + { url = "https://files.pythonhosted.org/packages/77/bf/5f1922cafaaaa7b2b6a0f6b0614783efa8502f16c8dd9c7b8b131a3dc9d2/grpcio-1.84.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:f7533921b52ef94210437dedd3911e00b7642ca8d11eda64eb1715778630715e", size = 12304970, upload-time = "2026-10-22T14:58:07.714Z" }, + { url = "https://files.pythonhosted.org/packages/af/f9/77e9991fd5ae7d754b78b3c8e8eb028ddc886a480b86b934ece85f727f95/grpcio-1.84.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:e0dcc7b588e7b7dd3363317296983db23a26af8baa5884db15a10fc0c8534186", size = 6949905, upload-time = "2026-10-22T14:58:10.92Z" }, + { url = "https://files.pythonhosted.org/packages/a7/a2/af693a3bd3fb43cd97e4ad054ad5b117814c1a24cad048130e982a189f0f/grpcio-1.84.1-cp312-cp312-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:a92bb13dd1b31a16f631ab415710de59f404c37364c018e7486496fb449a89da", size = 7714870, upload-time = "2026-10-22T14:58:13.622Z" }, + { url = "https://files.pythonhosted.org/packages/00/98/456ef643a796ba04ad737e39a820c27291c238db87f7d168355dbdaf7b4b/grpcio-1.84.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:474408c92b27c823ea6aab2315e2ea52d5a4e0040b37ce1e65e89d9149c48205", size = 7121552, upload-time = "2026-10-22T14:58:16.454Z" }, + { url = "https://files.pythonhosted.org/packages/a9/bc/c98f29a74b772ba9025f13243dc9547807583b1d111282bdcc53bb4f8db6/grpcio-1.84.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:912694cac76adb4f45563b38ae4d06d77a2081e8ed5cb20a3918c1affba83c63", size = 7673450, upload-time = "2026-10-22T14:58:19.009Z" }, + { url = "https://files.pythonhosted.org/packages/2e/2f/713bbfaf1cd7ce3a4626b8c0e93ec3f7493d8f52ccdb1ddb02fc98fc7d7e/grpcio-1.84.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:f821954e4d89e97f7d51c03073d6964e177f2d11181550a5a22c082fac614f43", size = 8725415, upload-time = "2026-10-22T14:58:22.23Z" }, + { url = "https://files.pythonhosted.org/packages/b3/ef/21db8160edde5646a0f688c9f7e97bf6106965e4e2ae1dcfe9649fe2db01/grpcio-1.84.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:02612f3c19ed3dd885e2fff1236bf5629e5b43b5aa84c3290b0d5f62f26b0ef7", size = 8090355, upload-time = "2026-10-22T14:58:25.039Z" }, + { url = "https://files.pythonhosted.org/packages/34/0e/a762461094659b13a86a027461a6acdf4734dbbe17b19bb193191801b570/grpcio-1.84.1-cp312-cp312-win32.whl", hash = "sha256:380b58bf32707b4e3019c9567dab30375bd21f9a5c98aa24401aff1e73f3b262", size = 4444024, upload-time = "2026-10-22T14:58:27.015Z" }, + { url = "https://files.pythonhosted.org/packages/51/b5/2dbcb95b7b3622253bbb09b79dd87787dd05709303e571cc0eb150f860d1/grpcio-1.84.1-cp312-cp312-win_amd64.whl", hash = "sha256:1a221fe42e444cd0099752028810a289efafce1b5690dfe19a831d2a2fe6ea62", size = 5218662, upload-time = "2026-10-22T14:58:29.124Z" }, + { url = "https://files.pythonhosted.org/packages/0d/57/f25d35af33566daec7c9eec09c65e06f510cea2cc392bc2988af26250a4e/grpcio-1.84.1-cp313-cp313-linux_armv7l.whl", hash = "sha256:9c24b1ebbdf867b33d74868044fed5c7c5a6a6e00787140b5f582572f7a7e633", size = 6393057, upload-time = "2026-10-22T14:58:31.938Z" }, + { url = "https://files.pythonhosted.org/packages/1f/d5/68c3c5804bc7b05a0a544ac68439ff7eb493d5d394e5361bc94e60b6be0b/grpcio-1.84.1-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:af0f0c10281c2b62c68868e0a98de24f89c31308c68dbf19320d30c3a329aba5", size = 12302330, upload-time = "2026-10-22T14:58:34.375Z" }, + { url = "https://files.pythonhosted.org/packages/ce/8f/d25a5d4d4f34e99ec31869ad3b988893f15d5965625cfc35a5faffb9889f/grpcio-1.84.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:c1c04d2876ccb063507a976602bc88b5c31330982e650c620bf8e730b120c9d5", size = 6954893, upload-time = "2026-10-22T14:58:37.408Z" }, + { url = "https://files.pythonhosted.org/packages/88/f8/fae50f0e28281be328614ad772118290d0f804d9be5be2d5708e7ea8d9aa/grpcio-1.84.1-cp313-cp313-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:3cf14e9cf02d12628f20ec205d699838c47e2d3741690fbf14ae626bfa32ac0b", size = 7723209, upload-time = "2026-10-22T14:58:39.537Z" }, + { url = "https://files.pythonhosted.org/packages/59/4d/99dfd9cfab7f748d52cfb9177e8967d5cec0a50f148d4e3b9a0bf0b1220c/grpcio-1.84.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:2ce575e400e0dec9484f5d038fa12d6b3919d493c2beb897a23b9a32fa3bfd12", size = 7125010, upload-time = "2026-10-22T14:58:42.037Z" }, + { url = "https://files.pythonhosted.org/packages/0e/cc/7354ebd3d4c1bef08b062b9f07d154141c2b9043f677a219bc7943070867/grpcio-1.84.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c6e9be93efe763bb2b12a4c0d5fc13082f24de6cbb53a9d11078c9d0c8cdb2b8", size = 7675985, upload-time = "2026-10-22T14:58:44.564Z" }, + { url = "https://files.pythonhosted.org/packages/9b/67/37ccd26e1f7a7576f53627b45e222ac89ea3465b3f02836f480ac26e4dce/grpcio-1.84.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:f216832aa84ad7e697ae1ed993c33905d27e27cd1b02016af1441be2091e287d", size = 8726955, upload-time = "2026-10-22T14:58:47.051Z" }, + { url = "https://files.pythonhosted.org/packages/88/cf/4887c033734182cecd12d3a1f6f9e7f84e9a5589a1ca2f564ff2ce8f2a29/grpcio-1.84.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6a4a06d757e7ea5ddf636a4c40914aa36fb4f7e2a03abf727a16e61822331343", size = 8086854, upload-time = "2026-10-22T14:58:49.831Z" }, + { url = "https://files.pythonhosted.org/packages/d0/2c/34aca5188055d8e5342a5a672f6d321f331c8e1e944ea7d3650ee71f4943/grpcio-1.84.1-cp313-cp313-win32.whl", hash = "sha256:4052f86fdb5105ac8b02c77d17cd9beff78790a0c3117afdd5316154cf4348a5", size = 4443070, upload-time = "2026-10-22T14:58:51.851Z" }, + { url = "https://files.pythonhosted.org/packages/68/25/5c315847ab3bd6d3b9f3caad178596eb1affd5aafd02374813b27bddf708/grpcio-1.84.1-cp313-cp313-win_amd64.whl", hash = "sha256:b7452ccc592e40e4167adec46195d85387c8036f0aadf6f96ab6ed931205d0ce", size = 5220505, upload-time = "2026-10-22T14:58:54.464Z" }, + { url = "https://files.pythonhosted.org/packages/4c/d8/bbc616bd123ddc2fd1f53f49e40cf537f7dd9c483f47bb21be61c4aa0ae1/grpcio-1.84.1-cp314-cp314-linux_armv7l.whl", hash = "sha256:42ffbbc11fe2e4b02a4b51b090f8ca6727414748cf551539665b5592372263e8", size = 6393649, upload-time = "2026-10-22T14:58:56.534Z" }, + { url = "https://files.pythonhosted.org/packages/80/25/71e0903ca23c483aad588daa7744f9b01c149db9cbfa13eb24ef5f813a2e/grpcio-1.84.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:f2482ebe5e3a9c6d1f99859e135cc0ca370362e3b2a94cb6304f64943997bfcb", size = 12308221, upload-time = "2026-10-22T14:58:58.92Z" }, + { url = "https://files.pythonhosted.org/packages/28/01/a0207b967ab991bc009030763e3c7e6280cbeda1de06351e16034d34547e/grpcio-1.84.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:b8fb04fe0ded6fb1c5edd4c90ed39193d7b6226214685111b25a153ccb33a52a", size = 6963837, upload-time = "2026-10-22T14:59:01.562Z" }, + { url = "https://files.pythonhosted.org/packages/38/74/a4171ad8c4b0e80371afb27503cad580d4cae2f116b56adbb9dafa7e3c76/grpcio-1.84.1-cp314-cp314-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:ffc0be893d8df55f0d23afbd3b776ede444847260a4a00ac80326a32dac91ad3", size = 7722977, upload-time = "2026-10-22T14:59:03.784Z" }, + { url = "https://files.pythonhosted.org/packages/4e/b8/73e85d67437fa4324933cc625a6a8e8e5f22fbdfe6757d949a6958b87479/grpcio-1.84.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ccd8be89a73d276336cbf223b22bd5c677d9fd15233100f208845c6a0c7cbc72", size = 7126919, upload-time = "2026-10-22T14:59:05.982Z" }, + { url = "https://files.pythonhosted.org/packages/03/60/734b781ca01f562e6e01c84ef8e762f1ebcfccd02b29be0b77513fc26da0/grpcio-1.84.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:ced0c5ef2709964aca16e6af6f74f682b57872d2f7c7c553916c6b86dac64fa4", size = 7685628, upload-time = "2026-10-22T14:59:08.495Z" }, + { url = "https://files.pythonhosted.org/packages/5a/c8/03051aa012430b2dbd15fbf9af42482d945197b7886c77c557475d1bb4bb/grpcio-1.84.1-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:28caf3df58096e2cb06f0f7e672160e65e9df5e053f392594d93d33a15fe1ef1", size = 8728232, upload-time = "2026-10-22T14:59:10.709Z" }, + { url = "https://files.pythonhosted.org/packages/58/83/c87911b98ed766d7084d64053dc06f7855267f686b673dc0bb1ac8c07aee/grpcio-1.84.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:f4b64099afaccdeeb987240af47aa1fc14f57285d3d2ff000c7327228624999a", size = 8088730, upload-time = "2026-10-22T14:59:13.431Z" }, + { url = "https://files.pythonhosted.org/packages/88/bf/6b18690790c0c4d7062749785bc8e515881a8a4058f46cb2925c86adc9e0/grpcio-1.84.1-cp314-cp314-win32.whl", hash = "sha256:116b4796da0e7fca3fdf6edf422ea7521c25d8c4be64ab7e3b5e2a77c832b0ed", size = 4527749, upload-time = "2026-10-22T14:59:15.712Z" }, + { url = "https://files.pythonhosted.org/packages/b8/d9/ee50fe67481254c45c9b709b31ba468e4c90925018f4507c424369a9abd5/grpcio-1.84.1-cp314-cp314-win_amd64.whl", hash = "sha256:3875f4c4caf0c54ac370b66322f0bf2d46e9d21414be36ea8b7f618badb3b87c", size = 5359432, upload-time = "2026-10-22T14:59:18.331Z" }, + { url = "https://files.pythonhosted.org/packages/c4/c0/fc3341990f75cba2096d07ea5e7a8f78af8cb36f6b1fd78660b8c1220e11/grpcio-1.84.1-cp315-cp315-linux_armv7l.whl", hash = "sha256:775f98cb476625936061b91e3c1da229112b212a6b2a70fefc9c87e5aaf9fba6", size = 6393689, upload-time = "2026-10-22T14:59:20.402Z" }, + { url = "https://files.pythonhosted.org/packages/c9/f4/6b9a70760bbd8e927f31452ed2ba33cc3dc1a327f1b46c44f65ddb6dbf0a/grpcio-1.84.1-cp315-cp315-macosx_10_15_universal2.whl", hash = "sha256:cfdc7530e5707ab6e5c80fc624f89e26ddf8f38d3e89e5226dd7e55c080e9b65", size = 12325454, upload-time = "2026-10-22T14:59:22.805Z" }, + { url = "https://files.pythonhosted.org/packages/ea/87/e44f1c73d4c003a10a8c9b348b44296e99ec5623b70fb441ad250f4b532b/grpcio-1.84.1-cp315-cp315-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:c61a0d5c60506b2371444716b56d6c633d3c56a17c703566bcca39604c02c12c", size = 6984778, upload-time = "2026-10-22T14:59:25.385Z" }, + { url = "https://files.pythonhosted.org/packages/19/9f/efd7828266b9e5ff0764af8420d52add5acfc13382d073596f15d7dfc183/grpcio-1.84.1-cp315-cp315-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:79b3ee4683290b3cfabadc718a008c3474073b585bc450231a842c21c2ef1f27", size = 7073415, upload-time = "2026-10-22T14:59:27.503Z" }, + { url = "https://files.pythonhosted.org/packages/80/5e/de257fc887b5a4e955173fb28a76a39fdb69f12e0d99987ed723c937c419/grpcio-1.84.1-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c8ae49802f09cc272546592b3656207de6f719e50a6a0d1654e613aaba6336ac", size = 7165478, upload-time = "2026-10-22T14:59:30.083Z" }, + { url = "https://files.pythonhosted.org/packages/75/b0/66840129d46b06a5159277206a1f706ff755d725fdd0652e7acf6961a930/grpcio-1.84.1-cp315-cp315-musllinux_1_2_aarch64.whl", hash = "sha256:1e25f45414b3a53bfc1fe43b980f9d0cae9e194a62541d5f6bef0846758162ac", size = 7707719, upload-time = "2026-10-22T14:59:32.284Z" }, + { url = "https://files.pythonhosted.org/packages/10/0d/92682af96b05c1d5e5ce1ea82a3969b221c9d58112a097ff637946e395c6/grpcio-1.84.1-cp315-cp315-musllinux_1_2_i686.whl", hash = "sha256:de3c31abc0d052511744a817506e03534f14e32dadab8ec19f63f2d4facd05f3", size = 8079074, upload-time = "2026-10-22T14:59:34.507Z" }, + { url = "https://files.pythonhosted.org/packages/0c/69/1e426aa52c23640430eed1728c0f7c1167bb64eb7b0a31bb5ce9a500f73c/grpcio-1.84.1-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:6ce0835704f30d4954aa0a68352fc9cc30242cc85f39d7b6cd20c0790e05925b", size = 8118408, upload-time = "2026-10-22T14:59:37.082Z" }, + { url = "https://files.pythonhosted.org/packages/72/66/037c29a3668a32f2dbd287ceac43286797ffe14c95e7234db75c42ea10dc/grpcio-1.84.1-cp315-cp315-win32.whl", hash = "sha256:43d8b84b3e2b7505e4902ab6288ceee699cfec5435ed879bb53f876b2966ee33", size = 4527284, upload-time = "2026-10-22T14:59:39.362Z" }, + { url = "https://files.pythonhosted.org/packages/c3/87/4dea740311428c40fa0da674e0ecfa28f572809cba4cbc9c568918c82d2e/grpcio-1.84.1-cp315-cp315-win_amd64.whl", hash = "sha256:c8e1c15e81f65efb317906754fdba4a85d2eac9cff250d8a3fb3ccb3a4e52db9", size = 5360072, upload-time = "2026-10-22T14:59:41.328Z" }, ] [[package]] @@ -3581,8 +3635,8 @@ resolution-markers = [ "python_full_version < '3.11' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", ] dependencies = [ - { name = "h11" }, - { name = "truststore" }, + { name = "h11", marker = "python_full_version < '3.11'" }, + { name = "truststore", marker = "python_full_version < '3.11'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/30/ff/b53af1b49bb2cb5fa97c92215614b173ca5c1a99ded80e2d52f15a94fa6d/httpcore2-2.14.0.tar.gz", hash = "sha256:4f57a1a8249fe6af589d935cfd456f1d13bbdcb0f0fc72af9142368fc94811d7", size = 69096, upload-time = "2026-10-18T16:29:21.898Z" } wheels = [ @@ -3596,24 +3650,24 @@ source = { registry = "https://pypi.org/simple" } resolution-markers = [ "python_full_version >= '3.14' and sys_platform == 'darwin'", "(python_full_version >= '3.14' and sys_platform == 'linux') or (python_full_version >= '3.14' and sys_platform == 'win32')", - "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.13.*' and sys_platform == 'darwin'", - "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", - "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'darwin'", + "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'", + "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", "(python_full_version == '3.12.*' and platform_machine != 'x86_64' and sys_platform == 'linux') or (python_full_version == '3.12.*' and sys_platform == 'win32')", - "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", - "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'darwin'", "(python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'linux') or (python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'win32')", - "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", - "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'darwin'", "(python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'linux') or (python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'win32')", - "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", -] -dependencies = [ - { name = "h11" }, - { name = "truststore" }, + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", +] +dependencies = [ + { name = "h11", marker = "python_full_version >= '3.11'" }, + { name = "truststore", marker = "python_full_version >= '3.11'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/c0/61/afa9d6b7452f9eca73f73d45324eb0bb52f098fd5e6049bf6b8263be9b4e/httpcore2-2.16.0.tar.gz", hash = "sha256:c72cd0413563b17e1cd8354677dff887466f8ec2551679759e93126534428643", size = 69886, upload-time = "2026-10-21T07:09:45.31Z" } wheels = [ @@ -3645,11 +3699,11 @@ resolution-markers = [ "python_full_version < '3.11' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", ] dependencies = [ - { name = "anyio", marker = "sys_platform != 'emscripten'" }, - { name = "httpcore2", version = "2.14.0", source = { registry = "https://pypi.org/simple" }, marker = "sys_platform != 'emscripten'" }, - { name = "idna" }, - { name = "truststore", marker = "sys_platform != 'emscripten'" }, - { name = "typing-extensions" }, + { name = "anyio", marker = "python_full_version < '3.11' and sys_platform != 'emscripten'" }, + { name = "httpcore2", version = "2.14.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11' and sys_platform != 'emscripten'" }, + { name = "idna", marker = "python_full_version < '3.11'" }, + { name = "truststore", marker = "python_full_version < '3.11' and sys_platform != 'emscripten'" }, + { name = "typing-extensions", marker = "python_full_version < '3.11'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/e8/67/58353f1848b4ba568e1ec22ea1e0d8e039f0bca5fde7e2d1f07739fd83e7/httpx2-2.14.0.tar.gz", hash = "sha256:47ad61a3c40282cd8d0dc96311531f00f5bfc71a066c6fe3b36d8f63fb9e4f6e", size = 102036, upload-time = "2026-10-18T16:29:22.627Z" } wheels = [ @@ -3663,28 +3717,28 @@ source = { registry = "https://pypi.org/simple" } resolution-markers = [ "python_full_version >= '3.14' and sys_platform == 'darwin'", "(python_full_version >= '3.14' and sys_platform == 'linux') or (python_full_version >= '3.14' and sys_platform == 'win32')", - "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.13.*' and sys_platform == 'darwin'", - "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", - "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'darwin'", + "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'", + "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", "(python_full_version == '3.12.*' and platform_machine != 'x86_64' and sys_platform == 'linux') or (python_full_version == '3.12.*' and sys_platform == 'win32')", - "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", - "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'darwin'", "(python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'linux') or (python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'win32')", - "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", - "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'darwin'", "(python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'linux') or (python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'win32')", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", ] dependencies = [ - { name = "anyio", marker = "sys_platform != 'emscripten'" }, - { name = "httpcore2", version = "2.16.0", source = { registry = "https://pypi.org/simple" }, marker = "sys_platform != 'emscripten'" }, + { name = "anyio", marker = "python_full_version >= '3.11' and sys_platform != 'emscripten'" }, + { name = "httpcore2", version = "2.16.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11' and sys_platform != 'emscripten'" }, { name = "httpx2-jsfetch", marker = "python_full_version >= '3.12' and sys_platform == 'emscripten'" }, - { name = "idna" }, - { name = "truststore", marker = "sys_platform != 'emscripten'" }, - { name = "typing-extensions", marker = "python_full_version < '3.13'" }, + { name = "idna", marker = "python_full_version >= '3.11'" }, + { name = "truststore", marker = "python_full_version >= '3.11' and sys_platform != 'emscripten'" }, + { name = "typing-extensions", marker = "python_full_version >= '3.11' and python_full_version < '3.13'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/43/73/5ca2cedf5e4e50423d1c258877865a6b62793633b561c58499f8aeb33b7e/httpx2-2.16.0.tar.gz", hash = "sha256:0d54c98128e8f2ff7fbbde0fca8c359e5f032edeaaaac443cdb7f31f685bcd7f", size = 103116, upload-time = "2026-10-21T07:09:46.348Z" } wheels = [ @@ -3727,7 +3781,7 @@ name = "humanfriendly" version = "10.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "pyreadline3", marker = "sys_platform == 'win32'" }, + { name = "pyreadline3", marker = "python_full_version < '3.11' and sys_platform == 'win32'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/cc/3f/2c29224acb2e2df4d2046e4c73ee2662023c58ff5b113c4c1adac0886c43/humanfriendly-10.0.tar.gz", hash = "sha256:6b0b831ce8f15f7300721aa49829fc4e83921a9a301cc7f606be6686a2288ddc", size = 360702, upload-time = "2021-09-17T21:40:43.31Z" } wheels = [ @@ -3753,8 +3807,8 @@ resolution-markers = [ "python_full_version < '3.11' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", ] dependencies = [ - { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" } }, - { name = "pillow" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "pillow", version = "12.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/81/c8/2b56274457e4fadcfa86bf7c0fb93f19e124ab8f38f4bfa4372423052046/imageio-2.38.0.tar.gz", hash = "sha256:fe1d406862f6bc2930e8ec662d7bc40d4370cb76e3390dcd33819560d2708531", size = 403333, upload-time = "2026-09-28T07:44:08.101Z" } wheels = [ @@ -3768,25 +3822,25 @@ source = { registry = "https://pypi.org/simple" } resolution-markers = [ "python_full_version >= '3.14' and sys_platform == 'darwin'", "(python_full_version >= '3.14' and sys_platform == 'linux') or (python_full_version >= '3.14' and sys_platform == 'win32')", - "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.13.*' and sys_platform == 'darwin'", - "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", - "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'darwin'", + "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'", + "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", "(python_full_version == '3.12.*' and platform_machine != 'x86_64' and sys_platform == 'linux') or (python_full_version == '3.12.*' and sys_platform == 'win32')", - "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", - "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'darwin'", "(python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'linux') or (python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'win32')", - "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", - "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'darwin'", "(python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'linux') or (python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'win32')", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", ] dependencies = [ - { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.12'" }, + { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*'" }, { name = "numpy", version = "2.5.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, - { name = "pillow" }, + { name = "pillow", version = "13.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/f3/cd/69e4ac55b6dafdd2b5f32075236841a3945dea7323d0232d80f28c37cea8/imageio-2.38.1.tar.gz", hash = "sha256:6769f1f01c4dd46448307863a787c9a22fa4dbe11c0c88f525c6e410fdfd7983", size = 403667, upload-time = "2026-10-08T14:35:32.961Z" } wheels = [ @@ -3797,14 +3851,49 @@ wheels = [ name = "importlib-metadata" version = "9.0.1" source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.11' and sys_platform == 'darwin'", + "(python_full_version < '3.11' and sys_platform == 'linux') or (python_full_version < '3.11' and sys_platform == 'win32')", + "python_full_version < '3.11' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", +] dependencies = [ - { name = "zipp" }, + { name = "zipp", marker = "python_full_version < '3.11'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/6f/7e/1e7e8dc30634b93ebb3d58a3dea569ad146e656218d3960ab04f62047b29/importlib_metadata-9.0.1.tar.gz", hash = "sha256:ab830580bc0ef3db61ce8fae716389e5462b67e033018bab6d8f80ef17172f99", size = 59124, upload-time = "2026-08-28T15:30:34.646Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/b3/55/ecca97ae19075f1fac62def77731e7f535e6c1fb8f92ff08160c5e6dade8/importlib_metadata-9.0.1-py3-none-any.whl", hash = "sha256:bba5600596a7e21f3eef53281cf28d6a5195634d2f2b78ff9501a3272c6eaab0", size = 27920, upload-time = "2026-08-28T15:30:33.433Z" }, ] +[[package]] +name = "importlib-metadata" +version = "9.1.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.14' and sys_platform == 'darwin'", + "(python_full_version >= '3.14' and sys_platform == 'linux') or (python_full_version >= '3.14' and sys_platform == 'win32')", + "python_full_version == '3.13.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'darwin'", + "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'", + "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", + "(python_full_version == '3.12.*' and platform_machine != 'x86_64' and sys_platform == 'linux') or (python_full_version == '3.12.*' and sys_platform == 'win32')", + "(python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'linux') or (python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'win32')", + "(python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'linux') or (python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'win32')", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", +] +dependencies = [ + { name = "zipp", marker = "python_full_version >= '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/16/f9/795a9a483b9f0168ab3e32906039140e233a546c04dec35dd671733de369/importlib_metadata-9.1.0.tar.gz", hash = "sha256:9607fb24f95d4e0b1c17d57ec4604357d76d3f0d154f19fd4861f2e31c8e4065", size = 62078, upload-time = "2026-10-22T23:22:14.12Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a4/9f/2e33795e8765420ac43de1f29fe3d827ab4eaa45cbcf4a5de83555a3f9dd/importlib_metadata-9.1.0-py3-none-any.whl", hash = "sha256:626c65eddcd23c0ee0ffb17567aa882f8cfce0e552c424f2fa37c8b679374078", size = 28434, upload-time = "2026-10-22T23:22:12.531Z" }, +] + [[package]] name = "iniconfig" version = "2.3.1" @@ -3840,7 +3929,8 @@ dependencies = [ { name = "packaging" }, { name = "psutil" }, { name = "pyzmq" }, - { name = "tornado" }, + { name = "tornado", version = "6.5.10", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "tornado", version = "6.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "traitlets" }, ] sdist = { url = "https://files.pythonhosted.org/packages/a5/1d/d5ba6edbfe6fae4c3105bca3a9c889563cc752c7f2de45e333164c7f4846/ipykernel-6.31.0.tar.gz", hash = "sha256:2372ce8bc1ff4f34e58cafed3a0feb2194b91fc7cad0fc72e79e47b45ee9e8f6", size = 167493, upload-time = "2025-10-20T11:42:39.948Z" } @@ -3858,17 +3948,17 @@ resolution-markers = [ "python_full_version < '3.11' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", ] dependencies = [ - { name = "colorama", marker = "sys_platform == 'win32'" }, - { name = "decorator" }, - { name = "exceptiongroup" }, - { name = "jedi" }, - { name = "matplotlib-inline" }, - { name = "pexpect", marker = "sys_platform != 'emscripten' and sys_platform != 'win32'" }, - { name = "prompt-toolkit" }, - { name = "pygments" }, - { name = "stack-data" }, - { name = "traitlets" }, - { name = "typing-extensions" }, + { name = "colorama", marker = "python_full_version < '3.11' and sys_platform == 'win32'" }, + { name = "decorator", marker = "python_full_version < '3.11'" }, + { name = "exceptiongroup", marker = "python_full_version < '3.11'" }, + { name = "jedi", marker = "python_full_version < '3.11'" }, + { name = "matplotlib-inline", marker = "python_full_version < '3.11'" }, + { name = "pexpect", marker = "python_full_version < '3.11' and sys_platform != 'emscripten' and sys_platform != 'win32'" }, + { name = "prompt-toolkit", marker = "python_full_version < '3.11'" }, + { name = "pygments", marker = "python_full_version < '3.11'" }, + { name = "stack-data", marker = "python_full_version < '3.11'" }, + { name = "traitlets", marker = "python_full_version < '3.11'" }, + { name = "typing-extensions", marker = "python_full_version < '3.11'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/40/18/f8598d287006885e7136451fdea0755af4ebcbfe342836f24deefaed1164/ipython-8.39.0.tar.gz", hash = "sha256:4110ae96012c379b8b6db898a07e186c40a2a1ef5d57a7fa83166047d9da7624", size = 5513971, upload-time = "2026-03-27T10:02:13.94Z" } wheels = [ @@ -3882,33 +3972,33 @@ source = { registry = "https://pypi.org/simple" } resolution-markers = [ "python_full_version >= '3.14' and sys_platform == 'darwin'", "(python_full_version >= '3.14' and sys_platform == 'linux') or (python_full_version >= '3.14' and sys_platform == 'win32')", - "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.13.*' and sys_platform == 'darwin'", - "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", - "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'darwin'", + "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'", + "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", "(python_full_version == '3.12.*' and platform_machine != 'x86_64' and sys_platform == 'linux') or (python_full_version == '3.12.*' and sys_platform == 'win32')", - "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", - "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'darwin'", "(python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'linux') or (python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'win32')", - "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", - "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'darwin'", "(python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'linux') or (python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'win32')", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", ] dependencies = [ - { name = "colorama", marker = "sys_platform == 'win32'" }, - { name = "ipython-pygments-lexers" }, - { name = "jedi" }, - { name = "matplotlib-inline" }, - { name = "pexpect", marker = "sys_platform != 'emscripten' and sys_platform != 'win32'" }, - { name = "prompt-toolkit" }, - { name = "psutil", marker = "sys_platform != 'cygwin' and sys_platform != 'emscripten'" }, - { name = "pygments" }, - { name = "stack-data" }, - { name = "traitlets" }, - { name = "typing-extensions", marker = "python_full_version < '3.12'" }, + { name = "colorama", marker = "python_full_version >= '3.11' and sys_platform == 'win32'" }, + { name = "ipython-pygments-lexers", marker = "python_full_version >= '3.11'" }, + { name = "jedi", marker = "python_full_version >= '3.11'" }, + { name = "matplotlib-inline", marker = "python_full_version >= '3.11'" }, + { name = "pexpect", marker = "python_full_version >= '3.11' and sys_platform != 'emscripten' and sys_platform != 'win32'" }, + { name = "prompt-toolkit", marker = "python_full_version >= '3.11'" }, + { name = "psutil", marker = "python_full_version >= '3.11' and sys_platform != 'cygwin' and sys_platform != 'emscripten'" }, + { name = "pygments", marker = "python_full_version >= '3.11'" }, + { name = "stack-data", marker = "python_full_version >= '3.11'" }, + { name = "traitlets", marker = "python_full_version >= '3.11'" }, + { name = "typing-extensions", marker = "python_full_version == '3.11.*'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/b9/32/99451b1283ec5d92ad77073f12e1c667dc10775384d8f15c2914207149dd/ipython-9.17.1.tar.gz", hash = "sha256:8919be8c27f20a6f4423145028063f6637b42a03ce57665bb12015ee1f073529", size = 4539289, upload-time = "2026-09-01T08:29:32.6Z" } wheels = [ @@ -3920,7 +4010,7 @@ name = "ipython-pygments-lexers" version = "1.1.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "pygments" }, + { name = "pygments", marker = "python_full_version >= '3.11'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/ef/4c/5dd1d8af08107f88c7f741ead7a40854b8ac24ddf9ae850afbcf698aa552/ipython_pygments_lexers-1.1.1.tar.gz", hash = "sha256:09c0138009e56b6854f9535736f4171d855c8c08a563a0dcd8022f78355c7e81", size = 8393, upload-time = "2025-01-17T11:24:34.505Z" } wheels = [ @@ -4111,7 +4201,8 @@ dependencies = [ { name = "jupyter-core" }, { name = "python-dateutil" }, { name = "pyzmq" }, - { name = "tornado" }, + { name = "tornado", version = "6.5.10", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "tornado", version = "6.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "traitlets" }, { name = "typing-extensions" }, ] @@ -4174,7 +4265,8 @@ name = "keyring" version = "25.7.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "importlib-metadata", marker = "python_full_version < '3.12'" }, + { name = "importlib-metadata", version = "9.0.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "importlib-metadata", version = "9.1.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*'" }, { name = "jaraco-classes" }, { name = "jaraco-context" }, { name = "jaraco-functools" }, @@ -4337,7 +4429,7 @@ wheels = [ [[package]] name = "langchain-core" -version = "1.6.12" +version = "1.7.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "httpx" }, @@ -4351,9 +4443,9 @@ dependencies = [ { name = "typing-extensions" }, { name = "uuid-utils" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/12/c2/9779d64322d4e270f6d5392bc86b30f735581a87b5eefd6ad15a0828a169/langchain_core-1.6.12.tar.gz", hash = "sha256:dc6b2a965c351b4cc94df1c80220bcf3c5472e14437d2186c8290ea22f4d0219", size = 1015639, upload-time = "2026-10-16T19:28:31.055Z" } +sdist = { url = "https://files.pythonhosted.org/packages/64/cb/77d1dabe57d0dc0f96f65cba321366c341627295d1c09eefa58549e34391/langchain_core-1.7.0.tar.gz", hash = "sha256:c34e53358b103cd73f43c63f5f46f9b5c6c3467efdffcdf134892b89020494e4", size = 1020046, upload-time = "2026-10-22T17:47:21.554Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/c6/7b/49de1d4d6b9ff62e7c40a6fceb6aeecd8c190ac5f49dd7a99948c6650c16/langchain_core-1.6.12-py3-none-any.whl", hash = "sha256:39b07aed976baac14c47b7a21e3c7d4073362bccf06cf8799c585dcc9548547d", size = 573838, upload-time = "2026-10-16T19:28:29.466Z" }, + { url = "https://files.pythonhosted.org/packages/b3/d8/ed130e91cee0525cb47d185b98a5a6ffd6a8b660a100fbee43d887e745d6/langchain_core-1.7.0-py3-none-any.whl", hash = "sha256:e82b24d7ac51fc74874baa29d6b3c0b8234880d4f3d897f8ff57fb80dfd9b07d", size = 574676, upload-time = "2026-10-22T17:47:19.749Z" }, ] [[package]] @@ -4419,7 +4511,7 @@ wheels = [ [[package]] name = "langsmith" -version = "0.14.11" +version = "0.14.12" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "anyio" }, @@ -4438,9 +4530,9 @@ dependencies = [ { name = "xxhash" }, { name = "zstandard" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/f8/c3/a9a98d7adf573fdd5ea5c92cadbc26d7c597ab36f4dc31c093eb19507808/langsmith-0.14.11.tar.gz", hash = "sha256:d9e7ffe587e12ce51573cab654d02e84feb924d3b1f582274c4b1412ebeabf4c", size = 5020659, upload-time = "2026-10-16T07:16:56.865Z" } +sdist = { url = "https://files.pythonhosted.org/packages/a2/f7/07a02241b6e6ed3df4e31a64ed09cb522c47227816da3d71097e7cf94657/langsmith-0.14.12.tar.gz", hash = "sha256:b4d6a24ed74333095da476803ad9d22ee35f9dae1052cebf1e366d3889a9b675", size = 5038994, upload-time = "2026-10-21T20:16:22.565Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/e2/1d/b683b3d8777e625e021efeaaf72dc04f709be59e6a5f2d65725cebaedcfb/langsmith-0.14.11-py3-none-any.whl", hash = "sha256:9ecca7633df228ef2c44563f7187e426b8a79e7c5c2351c5dd8c9074c61512e7", size = 869018, upload-time = "2026-10-16T07:16:54.634Z" }, + { url = "https://files.pythonhosted.org/packages/c6/6c/33e2de8d8d809895263e4f24ef7619e5535e3ece7de863ffbe49c1b7a60d/langsmith-0.14.12-py3-none-any.whl", hash = "sha256:9dafba7f615afa77204dc8afbb9c803e4ba1b55e96249f12c8f9aafb23fae6d0", size = 883644, upload-time = "2026-10-21T20:16:20.039Z" }, ] [[package]] @@ -4732,19 +4824,19 @@ source = { registry = "https://pypi.org/simple" } resolution-markers = [ "python_full_version >= '3.14' and sys_platform == 'darwin'", "(python_full_version >= '3.14' and sys_platform == 'linux') or (python_full_version >= '3.14' and sys_platform == 'win32')", - "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.13.*' and sys_platform == 'darwin'", - "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", - "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'darwin'", + "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'", + "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", "(python_full_version == '3.12.*' and platform_machine != 'x86_64' and sys_platform == 'linux') or (python_full_version == '3.12.*' and sys_platform == 'win32')", - "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", - "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'darwin'", "(python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'linux') or (python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'win32')", - "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", - "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'darwin'", "(python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'linux') or (python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'win32')", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", ] sdist = { url = "https://files.pythonhosted.org/packages/f4/32/0b4d0297064244f04af4331b65de16237cc3cce07474171ee14222a28981/markdown-3.11.2.tar.gz", hash = "sha256:87bf5d90f2d2882e2c02fcda182c2800456b985bff38913867c49706481514b0", size = 491445, upload-time = "2026-10-19T19:41:42.687Z" } @@ -4926,15 +5018,15 @@ resolution-markers = [ "python_full_version < '3.11' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", ] dependencies = [ - { name = "contourpy", version = "1.3.2", source = { registry = "https://pypi.org/simple" } }, - { name = "cycler" }, - { name = "fonttools", version = "4.65.0", source = { registry = "https://pypi.org/simple" } }, - { name = "kiwisolver" }, - { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" } }, - { name = "packaging" }, - { name = "pillow" }, - { name = "pyparsing" }, - { name = "python-dateutil" }, + { name = "contourpy", version = "1.3.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "cycler", marker = "python_full_version < '3.11'" }, + { name = "fonttools", version = "4.65.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "kiwisolver", marker = "python_full_version < '3.11'" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "packaging", marker = "python_full_version < '3.11'" }, + { name = "pillow", version = "12.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "pyparsing", marker = "python_full_version < '3.11'" }, + { name = "python-dateutil", marker = "python_full_version < '3.11'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/63/1b/4be5be87d43d327a0cf4de1a56e86f7f84c89312452406cf122efe2839e6/matplotlib-3.10.9.tar.gz", hash = "sha256:fd66508e8c6877d98e586654b608a0456db8d7e8a546eb1e2600efd957302358", size = 34811233, upload-time = "2026-04-24T00:14:13.539Z" } wheels = [ @@ -5001,33 +5093,33 @@ source = { registry = "https://pypi.org/simple" } resolution-markers = [ "python_full_version >= '3.14' and sys_platform == 'darwin'", "(python_full_version >= '3.14' and sys_platform == 'linux') or (python_full_version >= '3.14' and sys_platform == 'win32')", - "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.13.*' and sys_platform == 'darwin'", - "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", - "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'darwin'", + "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'", + "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", "(python_full_version == '3.12.*' and platform_machine != 'x86_64' and sys_platform == 'linux') or (python_full_version == '3.12.*' and sys_platform == 'win32')", - "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", - "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'darwin'", "(python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'linux') or (python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'win32')", - "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", - "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'darwin'", "(python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'linux') or (python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'win32')", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", ] dependencies = [ - { name = "contourpy", version = "1.3.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.12'" }, + { name = "contourpy", version = "1.3.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*'" }, { name = "contourpy", version = "1.4.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, - { name = "cycler" }, - { name = "fonttools", version = "4.67.0", source = { registry = "https://pypi.org/simple" } }, - { name = "kiwisolver" }, - { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.12'" }, + { name = "cycler", marker = "python_full_version >= '3.11'" }, + { name = "fonttools", version = "4.67.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "kiwisolver", marker = "python_full_version >= '3.11'" }, + { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*'" }, { name = "numpy", version = "2.5.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, - { name = "packaging" }, - { name = "pillow" }, - { name = "pyparsing" }, - { name = "python-dateutil" }, + { name = "packaging", marker = "python_full_version >= '3.11'" }, + { name = "pillow", version = "13.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "pyparsing", marker = "python_full_version >= '3.11'" }, + { name = "python-dateutil", marker = "python_full_version >= '3.11'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/e7/c8/9aa712a0afb882649424dd8de8ad9aa6235e796e84c6052e8f6dc1598d0d/matplotlib-3.11.2.tar.gz", hash = "sha256:cec596316640f2b394b8f0daa0ea61a8eae82d017b620b9f202befb972a59ea4", size = 32660610, upload-time = "2026-09-11T19:05:31.214Z" } wheels = [ @@ -5151,7 +5243,7 @@ name = "miniaudio" version = "1.71" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "cffi" }, + { name = "cffi", marker = "sys_platform == 'darwin'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/d8/d5/e5439dc08561f73656bfeb3340fc64ab63163e101426593d8fb9a025ff1e/miniaudio-1.71.tar.gz", hash = "sha256:ff51e2887bb673e2e757752b586b3dc924d59aa5fbcae9bbc45f4a111bd3262b", size = 1116480, upload-time = "2026-04-29T21:20:38.182Z" } wheels = [ @@ -5203,17 +5295,53 @@ wheels = [ name = "mkdocs-autorefs" version = "1.4.4" source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.11' and sys_platform == 'darwin'", + "(python_full_version < '3.11' and sys_platform == 'linux') or (python_full_version < '3.11' and sys_platform == 'win32')", + "python_full_version < '3.11' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", +] dependencies = [ { name = "markdown", version = "3.10.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, - { name = "markdown", version = "3.11.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, - { name = "markupsafe" }, - { name = "mkdocs" }, + { name = "markupsafe", marker = "python_full_version < '3.11'" }, + { name = "mkdocs", marker = "python_full_version < '3.11'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/52/c0/f641843de3f612a6b48253f39244165acff36657a91cc903633d456ae1ac/mkdocs_autorefs-1.4.4.tar.gz", hash = "sha256:d54a284f27a7346b9c38f1f852177940c222da508e66edc816a0fa55fc6da197", size = 56588, upload-time = "2026-02-10T15:23:55.105Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/28/de/a3e710469772c6a89595fc52816da05c1e164b4c866a89e3cb82fb1b67c5/mkdocs_autorefs-1.4.4-py3-none-any.whl", hash = "sha256:834ef5408d827071ad1bc69e0f39704fa34c7fc05bc8e1c72b227dfdc5c76089", size = 25530, upload-time = "2026-02-10T15:23:53.817Z" }, ] +[[package]] +name = "mkdocs-autorefs" +version = "1.4.5" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.14' and sys_platform == 'darwin'", + "(python_full_version >= '3.14' and sys_platform == 'linux') or (python_full_version >= '3.14' and sys_platform == 'win32')", + "python_full_version == '3.13.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'darwin'", + "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'", + "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", + "(python_full_version == '3.12.*' and platform_machine != 'x86_64' and sys_platform == 'linux') or (python_full_version == '3.12.*' and sys_platform == 'win32')", + "(python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'linux') or (python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'win32')", + "(python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'linux') or (python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'win32')", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", +] +dependencies = [ + { name = "markdown", version = "3.11.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "markupsafe", marker = "python_full_version >= '3.11'" }, + { name = "mkdocs", marker = "python_full_version >= '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e0/e0/1e8ed4e8dabdcba8cba5dbf4b8ce49bb3b51e750177155247abb5345d48a/mkdocs_autorefs-1.4.5.tar.gz", hash = "sha256:856f75b327b7717923ce06267094650689a510a748c48657f5333965950c2788", size = 59736, upload-time = "2026-10-22T15:03:55.402Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1e/cf/3dfc07ec910553bfb1e5c9009c1854bd9d2efa7f3dda03f007a77db0e63a/mkdocs_autorefs-1.4.5-py3-none-any.whl", hash = "sha256:68ee484e0800f3ba50cda1bc4a94293adbdfcc010243c322b3f5d66e15d06770", size = 29633, upload-time = "2026-10-22T15:03:54.091Z" }, +] + [[package]] name = "mkdocs-get-deps" version = "0.2.2" @@ -5252,7 +5380,8 @@ dependencies = [ { name = "markdown", version = "3.11.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "markupsafe" }, { name = "mkdocs" }, - { name = "mkdocs-autorefs" }, + { name = "mkdocs-autorefs", version = "1.4.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "mkdocs-autorefs", version = "1.4.5", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "pymdown-extensions" }, ] sdist = { url = "https://files.pythonhosted.org/packages/c5/33/2fa3243439f794e685d3e694590d28469a9b8ea733af4b48c250a3ffc9a0/mkdocstrings-0.30.1.tar.gz", hash = "sha256:84a007aae9b707fb0aebfc9da23db4b26fc9ab562eb56e335e9ec480cb19744f", size = 106350, upload-time = "2025-09-19T10:49:26.446Z" } @@ -5271,8 +5400,9 @@ version = "2.0.9" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "griffelib", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, - { name = "griffelib", version = "2.4.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, - { name = "mkdocs-autorefs" }, + { name = "griffelib", version = "2.4.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "mkdocs-autorefs", version = "1.4.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "mkdocs-autorefs", version = "1.4.5", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "mkdocstrings" }, { name = "typing-extensions", marker = "python_full_version < '3.11'" }, ] @@ -5333,7 +5463,7 @@ name = "mlx" version = "0.32.4" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "mlx-metal" }, + { name = "mlx-metal", marker = "sys_platform == 'darwin'" }, ] wheels = [ { url = "https://files.pythonhosted.org/packages/52/73/f2b18f4bbcfeacd6880e68f2854609d6d2d305e5676586451a6c26664061/mlx-0.32.4-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:60ba41564e8b5018c9d8a5f8ce7a5aaf70c96d8dd98c1a54b854cbada362d471", size = 671799, upload-time = "2026-10-14T21:15:37.06Z" }, @@ -5370,20 +5500,20 @@ name = "mlx-audio" version = "0.6.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "huggingface-hub" }, - { name = "miniaudio" }, - { name = "mlx" }, - { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, - { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*'" }, - { name = "numpy", version = "2.5.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, - { name = "scipy", version = "1.15.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, - { name = "scipy", version = "1.17.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*'" }, - { name = "scipy", version = "1.18.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, - { name = "sentencepiece" }, - { name = "sounddevice" }, - { name = "tqdm" }, - { name = "transformers", version = "5.16.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12' and python_full_version < '3.14'" }, - { name = "transformers", version = "5.20.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.12' or python_full_version >= '3.14'" }, + { name = "huggingface-hub", marker = "sys_platform == 'darwin'" }, + { name = "miniaudio", marker = "sys_platform == 'darwin'" }, + { name = "mlx", marker = "sys_platform == 'darwin'" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11' and sys_platform == 'darwin'" }, + { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*' and sys_platform == 'darwin'" }, + { name = "numpy", version = "2.5.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12' and sys_platform == 'darwin'" }, + { name = "scipy", version = "1.15.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11' and sys_platform == 'darwin'" }, + { name = "scipy", version = "1.17.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*' and sys_platform == 'darwin'" }, + { name = "scipy", version = "1.18.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12' and sys_platform == 'darwin'" }, + { name = "sentencepiece", marker = "sys_platform == 'darwin'" }, + { name = "sounddevice", marker = "sys_platform == 'darwin'" }, + { name = "tqdm", marker = "sys_platform == 'darwin'" }, + { name = "transformers", version = "5.16.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform == 'darwin'" }, + { name = "transformers", version = "5.20.2", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.12' and sys_platform == 'darwin') or (python_full_version >= '3.14' and sys_platform == 'darwin')" }, ] sdist = { url = "https://files.pythonhosted.org/packages/b2/5b/e7be1d322253a56f891dd41773afe21997e3c889a4b68953aa0db67efe68/mlx_audio-0.6.1.tar.gz", hash = "sha256:94259999694c707129c1f6a30cc1e164e525d0471c9311c5af88f37f20682300", size = 1919670, upload-time = "2026-10-20T15:21:25.496Z" } wheels = [ @@ -5405,28 +5535,29 @@ name = "mlx-vlm" version = "0.7.6" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "cryptography" }, - { name = "fastapi" }, - { name = "jinja2" }, - { name = "llguidance" }, - { name = "miniaudio" }, - { name = "mlx" }, - { name = "mlx-audio" }, - { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, - { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*'" }, - { name = "numpy", version = "2.5.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, - { name = "opencv-python" }, - { name = "pillow" }, - { name = "python-multipart" }, - { name = "requests" }, - { name = "sentencepiece" }, - { name = "starlette", version = "1.7.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, - { name = "starlette", version = "1.9.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, - { name = "tqdm" }, - { name = "transformers", version = "5.16.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12' and python_full_version < '3.14'" }, - { name = "transformers", version = "5.20.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.12' or python_full_version >= '3.14'" }, - { name = "uvicorn" }, - { name = "websockets" }, + { name = "cryptography", marker = "sys_platform == 'darwin'" }, + { name = "fastapi", marker = "sys_platform == 'darwin'" }, + { name = "jinja2", marker = "sys_platform == 'darwin'" }, + { name = "llguidance", marker = "sys_platform == 'darwin'" }, + { name = "miniaudio", marker = "sys_platform == 'darwin'" }, + { name = "mlx", marker = "sys_platform == 'darwin'" }, + { name = "mlx-audio", marker = "sys_platform == 'darwin'" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11' and sys_platform == 'darwin'" }, + { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*' and sys_platform == 'darwin'" }, + { name = "numpy", version = "2.5.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12' and sys_platform == 'darwin'" }, + { name = "opencv-python", marker = "sys_platform == 'darwin'" }, + { name = "pillow", version = "12.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11' and sys_platform == 'darwin'" }, + { name = "pillow", version = "13.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11' and sys_platform == 'darwin'" }, + { name = "python-multipart", marker = "sys_platform == 'darwin'" }, + { name = "requests", marker = "sys_platform == 'darwin'" }, + { name = "sentencepiece", marker = "sys_platform == 'darwin'" }, + { name = "starlette", version = "1.7.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11' and sys_platform == 'darwin'" }, + { name = "starlette", version = "1.9.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11' and sys_platform == 'darwin'" }, + { name = "tqdm", marker = "sys_platform == 'darwin'" }, + { name = "transformers", version = "5.16.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform == 'darwin'" }, + { name = "transformers", version = "5.20.2", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.12' and sys_platform == 'darwin') or (python_full_version >= '3.14' and sys_platform == 'darwin')" }, + { name = "uvicorn", marker = "sys_platform == 'darwin'" }, + { name = "websockets", marker = "sys_platform == 'darwin'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/df/36/461e23fd3cdab42938e8c8cb4a2f18ea7be05d6f997183ab141c1106fce0/mlx_vlm-0.7.6.tar.gz", hash = "sha256:8076e29bdaf98d00eeaac16b17a05bfd139e58502939648422710cef700e9546", size = 2519473, upload-time = "2026-10-05T19:15:28.265Z" } wheels = [ @@ -5438,20 +5569,20 @@ name = "mlx-whisper" version = "0.4.3" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "huggingface-hub" }, - { name = "mlx" }, - { name = "more-itertools", version = "11.1.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, - { name = "more-itertools", version = "11.2.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, - { name = "numba" }, - { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, - { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*'" }, - { name = "numpy", version = "2.5.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, - { name = "scipy", version = "1.15.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, - { name = "scipy", version = "1.17.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*'" }, - { name = "scipy", version = "1.18.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, - { name = "tiktoken" }, - { name = "torch", version = "2.14.1", source = { registry = "https://pypi.org/simple" } }, - { name = "tqdm" }, + { name = "huggingface-hub", marker = "sys_platform == 'darwin'" }, + { name = "mlx", marker = "sys_platform == 'darwin'" }, + { name = "more-itertools", version = "11.1.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11' and sys_platform == 'darwin'" }, + { name = "more-itertools", version = "11.2.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11' and sys_platform == 'darwin'" }, + { name = "numba", marker = "sys_platform == 'darwin'" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11' and sys_platform == 'darwin'" }, + { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*' and sys_platform == 'darwin'" }, + { name = "numpy", version = "2.5.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12' and sys_platform == 'darwin'" }, + { name = "scipy", version = "1.15.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11' and sys_platform == 'darwin'" }, + { name = "scipy", version = "1.17.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*' and sys_platform == 'darwin'" }, + { name = "scipy", version = "1.18.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12' and sys_platform == 'darwin'" }, + { name = "tiktoken", marker = "sys_platform == 'darwin'" }, + { name = "torch", version = "2.14.1", source = { registry = "https://pypi.org/simple" }, marker = "sys_platform == 'darwin'" }, + { name = "tqdm", marker = "sys_platform == 'darwin'" }, ] wheels = [ { url = "https://files.pythonhosted.org/packages/22/b7/a35232812a2ccfffcb7614ba96a91338551a660a0e9815cee668bf5743f0/mlx_whisper-0.4.3-py3-none-any.whl", hash = "sha256:6b82b6597a994643a3e5496c7bc229a672e5ca308458455bfe276e76ae024489", size = 890544, upload-time = "2025-08-29T14:56:13.815Z" }, @@ -5515,19 +5646,19 @@ source = { registry = "https://pypi.org/simple" } resolution-markers = [ "python_full_version >= '3.14' and sys_platform == 'darwin'", "(python_full_version >= '3.14' and sys_platform == 'linux') or (python_full_version >= '3.14' and sys_platform == 'win32')", - "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.13.*' and sys_platform == 'darwin'", - "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", - "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'darwin'", + "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'", + "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", "(python_full_version == '3.12.*' and platform_machine != 'x86_64' and sys_platform == 'linux') or (python_full_version == '3.12.*' and sys_platform == 'win32')", - "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", - "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'darwin'", "(python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'linux') or (python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'win32')", - "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", - "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'darwin'", "(python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'linux') or (python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'win32')", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", ] sdist = { url = "https://files.pythonhosted.org/packages/52/b8/c63995bebbb9ac9c059350e0fb8c82c2420c85aeca7d34e40aecf3df9281/more_itertools-11.2.1.tar.gz", hash = "sha256:cbf08fd0af284dc69718b9b76a8e6203df624d70209ea511e4219d350c856f63", size = 154133, upload-time = "2026-10-14T18:50:30.407Z" } @@ -5945,12 +6076,12 @@ name = "nemotron-ocr" version = "2.0.2" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "huggingface-hub" }, - { name = "numpy", version = "2.5.4", source = { registry = "https://pypi.org/simple" } }, - { name = "pillow" }, - { name = "shapely", version = "2.2.0", source = { registry = "https://pypi.org/simple" } }, - { name = "torch", version = "2.11.0", source = { registry = "https://pypi.org/simple" } }, - { name = "torchvision", version = "0.26.0", source = { registry = "https://pypi.org/simple" } }, + { name = "huggingface-hub", marker = "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "numpy", version = "2.5.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "pillow", version = "13.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "shapely", version = "2.2.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "torch", version = "2.11.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "torchvision", version = "0.26.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/8e/42/744f74d37f58c4589bda4b8c3b0477432c48ff5caa3f1e1050d8c0edafff/nemotron_ocr-2.0.2.tar.gz", hash = "sha256:703ae32bf7172da8985fca90ff22584fd9622ee04ce877d0cc6d2db4be7dce5b", size = 159827, upload-time = "2026-07-20T19:05:24.126Z" } wheels = [ @@ -5988,10 +6119,10 @@ version = "3.6.1" source = { registry = "https://pypi.org/simple" } resolution-markers = [ "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'darwin'", - "(python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'linux') or (python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'win32')", - "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'darwin'", + "(python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'linux') or (python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'win32')", "(python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'linux') or (python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'win32')", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", ] sdist = { url = "https://files.pythonhosted.org/packages/6a/51/63fe664f3908c97be9d2e4f1158eb633317598cfa6e1fc14af5383f17512/networkx-3.6.1.tar.gz", hash = "sha256:26b7c357accc0c8cde558ad486283728b65b6a95d85ee1cd66bafab4c8168509", size = 2517025, upload-time = "2025-12-08T17:02:39.908Z" } @@ -6006,13 +6137,13 @@ source = { registry = "https://pypi.org/simple" } resolution-markers = [ "python_full_version >= '3.14' and sys_platform == 'darwin'", "(python_full_version >= '3.14' and sys_platform == 'linux') or (python_full_version >= '3.14' and sys_platform == 'win32')", - "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.13.*' and sys_platform == 'darwin'", - "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", - "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'", + "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", "(python_full_version == '3.12.*' and platform_machine != 'x86_64' and sys_platform == 'linux') or (python_full_version == '3.12.*' and sys_platform == 'win32')", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", ] sdist = { url = "https://files.pythonhosted.org/packages/dc/76/3af777226b63a5e64a6b36b1ec5855c14e2b94a37096d4760e595fc43511/networkx-3.7.tar.gz", hash = "sha256:fd77a511bd90f39f3d016351345b52cf5319b813bdca01de3f755d3cca62e96a", size = 1866482, upload-time = "2026-09-21T16:45:16.974Z" } @@ -6198,10 +6329,10 @@ version = "2.4.6" source = { registry = "https://pypi.org/simple" } resolution-markers = [ "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'darwin'", - "(python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'linux') or (python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'win32')", - "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'darwin'", + "(python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'linux') or (python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'win32')", "(python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'linux') or (python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'win32')", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", ] sdist = { url = "https://files.pythonhosted.org/packages/d0/ad/fed0499ce6a338d2a03ebae59cd15093910c8875328855781952abf6c2fe/numpy-2.4.6.tar.gz", hash = "sha256:f3a3570c4a2a16746ac2c31a7c7c7b0c186b95ce902e33db6f28094ed7387dda", size = 20735807, upload-time = "2026-05-18T23:37:14.07Z" } @@ -6286,13 +6417,13 @@ source = { registry = "https://pypi.org/simple" } resolution-markers = [ "python_full_version >= '3.14' and sys_platform == 'darwin'", "(python_full_version >= '3.14' and sys_platform == 'linux') or (python_full_version >= '3.14' and sys_platform == 'win32')", - "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.13.*' and sys_platform == 'darwin'", - "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", - "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'", + "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", "(python_full_version == '3.12.*' and platform_machine != 'x86_64' and sys_platform == 'linux') or (python_full_version == '3.12.*' and sys_platform == 'win32')", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", ] sdist = { url = "https://files.pythonhosted.org/packages/95/b0/c7453d0b6e2073c3264468b106ee1563750cecc910965e67357e3698c83e/numpy-2.5.4.tar.gz", hash = "sha256:9a94cf751c9ad8ebaa835bcd3d40dacf8534ad086b88c38029b65123c7999d2a", size = 20866315, upload-time = "2026-10-10T20:05:31.422Z" } @@ -6388,7 +6519,7 @@ resolution-markers = [ "(python_full_version < '3.11' and sys_platform == 'linux') or (python_full_version < '3.11' and sys_platform == 'win32')", ] dependencies = [ - { name = "nvidia-cuda-nvrtc" }, + { name = "nvidia-cuda-nvrtc", marker = "(python_full_version != '3.12.*' and sys_platform == 'linux') or (platform_machine != 'x86_64' and sys_platform == 'linux') or sys_platform == 'win32'" }, ] wheels = [ { url = "https://files.pythonhosted.org/packages/a7/a1/0bd24ee8c8d03adac032fd2909426a00c88f8c57961b1277ded97f91119f/nvidia_cublas-13.1.1.3-py3-none-manylinux_2_27_aarch64.whl", hash = "sha256:b7a210458267ac818974c53038fbec2e969d5c99f305ab15c72522fa9f001dd5", size = 542848918, upload-time = "2026-04-08T18:46:22.985Z" }, @@ -6430,7 +6561,7 @@ resolution-markers = [ "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'", ] dependencies = [ - { name = "nvidia-cublas", version = "13.1.0.3", source = { registry = "https://pypi.org/simple" } }, + { name = "nvidia-cublas", version = "13.1.0.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'" }, ] wheels = [ { url = "https://files.pythonhosted.org/packages/a3/22/0b4b932655d17a6da1b92fa92ab12844b053bb2ac2475e179ba6f043da1e/nvidia_cudnn_cu13-9.19.0.56-py3-none-manylinux_2_27_x86_64.whl", hash = "sha256:d20e1734305e9d68889a96e3f35094d733ff1f83932ebe462753973e53a572bf", size = 366066321, upload-time = "2026-02-03T20:44:52.837Z" }, @@ -6449,7 +6580,7 @@ resolution-markers = [ "(python_full_version < '3.11' and sys_platform == 'linux') or (python_full_version < '3.11' and sys_platform == 'win32')", ] dependencies = [ - { name = "nvidia-cublas", version = "13.1.1.3", source = { registry = "https://pypi.org/simple" } }, + { name = "nvidia-cublas", version = "13.1.1.3", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version != '3.12.*' and sys_platform == 'linux') or (platform_machine != 'x86_64' and sys_platform == 'linux') or sys_platform == 'win32'" }, ] wheels = [ { url = "https://files.pythonhosted.org/packages/ca/30/7c257e3d5cb4fecb147b93895c66e29c93f8e76d74b45bb418ff0587c4ec/nvidia_cudnn_cu13-9.24.0.43-py3-none-manylinux_2_27_aarch64.whl", hash = "sha256:a6812a554a1ff0413e9c52b84c26c050380649ab9615f9c16bded368ce9f421f", size = 650976863, upload-time = "2026-07-02T16:23:39.248Z" }, @@ -6461,8 +6592,8 @@ name = "nvidia-cufft" version = "12.0.0.61" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "nvidia-nvjitlink", version = "13.0.88", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.12.*' and platform_machine == 'x86_64'" }, - { name = "nvidia-nvjitlink", version = "13.4.92", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version != '3.12.*' or platform_machine != 'x86_64'" }, + { name = "nvidia-nvjitlink", version = "13.0.88", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "nvidia-nvjitlink", version = "13.4.92", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version != '3.12.*' and sys_platform == 'linux') or (platform_machine != 'x86_64' and sys_platform == 'linux') or sys_platform == 'win32'" }, ] wheels = [ { url = "https://files.pythonhosted.org/packages/8b/ae/f417a75c0259e85c1d2f83ca4e960289a5f814ed0cea74d18c353d3e989d/nvidia_cufft-12.0.0.61-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:2708c852ef8cd89d1d2068bdbece0aa188813a0c934db3779b9b1faa8442e5f5", size = 214053554, upload-time = "2025-09-04T08:31:38.196Z" }, @@ -6492,11 +6623,11 @@ name = "nvidia-cusolver" version = "12.0.4.66" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "nvidia-cublas", version = "13.1.0.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.12.*' and platform_machine == 'x86_64'" }, - { name = "nvidia-cublas", version = "13.1.1.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version != '3.12.*' or platform_machine != 'x86_64'" }, - { name = "nvidia-cusparse" }, - { name = "nvidia-nvjitlink", version = "13.0.88", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.12.*' and platform_machine == 'x86_64'" }, - { name = "nvidia-nvjitlink", version = "13.4.92", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version != '3.12.*' or platform_machine != 'x86_64'" }, + { name = "nvidia-cublas", version = "13.1.0.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "nvidia-cublas", version = "13.1.1.3", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version != '3.12.*' and sys_platform == 'linux') or (platform_machine != 'x86_64' and sys_platform == 'linux') or sys_platform == 'win32'" }, + { name = "nvidia-cusparse", marker = "sys_platform == 'linux' or sys_platform == 'win32'" }, + { name = "nvidia-nvjitlink", version = "13.0.88", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "nvidia-nvjitlink", version = "13.4.92", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version != '3.12.*' and sys_platform == 'linux') or (platform_machine != 'x86_64' and sys_platform == 'linux') or sys_platform == 'win32'" }, ] wheels = [ { url = "https://files.pythonhosted.org/packages/c8/c3/b30c9e935fc01e3da443ec0116ed1b2a009bb867f5324d3f2d7e533e776b/nvidia_cusolver-12.0.4.66-py3-none-manylinux_2_27_aarch64.whl", hash = "sha256:02c2457eaa9e39de20f880f4bd8820e6a1cfb9f9a34f820eb12a155aa5bc92d2", size = 223467760, upload-time = "2025-09-04T08:33:04.222Z" }, @@ -6508,8 +6639,8 @@ name = "nvidia-cusparse" version = "12.6.3.3" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "nvidia-nvjitlink", version = "13.0.88", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.12.*' and platform_machine == 'x86_64'" }, - { name = "nvidia-nvjitlink", version = "13.4.92", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version != '3.12.*' or platform_machine != 'x86_64'" }, + { name = "nvidia-nvjitlink", version = "13.0.88", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "nvidia-nvjitlink", version = "13.4.92", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version != '3.12.*' and sys_platform == 'linux') or (platform_machine != 'x86_64' and sys_platform == 'linux') or sys_platform == 'win32'" }, ] wheels = [ { url = "https://files.pythonhosted.org/packages/f8/94/5c26f33738ae35276672f12615a64bd008ed5be6d1ebcb23579285d960a9/nvidia_cusparse-12.6.3.3-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:80bcc4662f23f1054ee334a15c72b8940402975e0eab63178fc7e670aa59472c", size = 162155568, upload-time = "2025-09-04T08:33:42.864Z" }, @@ -6623,9 +6754,10 @@ name = "ocrmac" version = "1.0.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "click" }, - { name = "pillow" }, - { name = "pyobjc-framework-vision" }, + { name = "click", marker = "sys_platform == 'darwin'" }, + { name = "pillow", version = "12.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11' and sys_platform == 'darwin'" }, + { name = "pillow", version = "13.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11' and sys_platform == 'darwin'" }, + { name = "pyobjc-framework-vision", marker = "sys_platform == 'darwin'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/5e/07/3e15ab404f75875c5e48c47163300eb90b7409044d8711fc3aaf52503f2e/ocrmac-1.0.1.tar.gz", hash = "sha256:507fe5e4cbd67b2d03f6729a52bbc11f9d0b58241134eb958a5daafd4b9d93d9", size = 1454317, upload-time = "2026-01-08T16:44:26.412Z" } wheels = [ @@ -6676,12 +6808,12 @@ resolution-markers = [ "python_full_version < '3.11' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", ] dependencies = [ - { name = "coloredlogs" }, - { name = "flatbuffers" }, - { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" } }, - { name = "packaging" }, - { name = "protobuf" }, - { name = "sympy" }, + { name = "coloredlogs", marker = "python_full_version < '3.11'" }, + { name = "flatbuffers", marker = "python_full_version < '3.11'" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "packaging", marker = "python_full_version < '3.11'" }, + { name = "protobuf", marker = "python_full_version < '3.11'" }, + { name = "sympy", marker = "python_full_version < '3.11'" }, ] wheels = [ { url = "https://files.pythonhosted.org/packages/35/d6/311b1afea060015b56c742f3531168c1644650767f27ef40062569960587/onnxruntime-1.23.2-cp310-cp310-macosx_13_0_arm64.whl", hash = "sha256:a7730122afe186a784660f6ec5807138bf9d792fa1df76556b27307ea9ebcbe3", size = 17195934, upload-time = "2025-10-27T23:06:14.143Z" }, @@ -6715,27 +6847,27 @@ source = { registry = "https://pypi.org/simple" } resolution-markers = [ "python_full_version >= '3.14' and sys_platform == 'darwin'", "(python_full_version >= '3.14' and sys_platform == 'linux') or (python_full_version >= '3.14' and sys_platform == 'win32')", - "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.13.*' and sys_platform == 'darwin'", - "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", - "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'", - "(python_full_version == '3.12.*' and platform_machine != 'x86_64' and sys_platform == 'linux') or (python_full_version == '3.12.*' and sys_platform == 'win32')", - "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'darwin'", - "(python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'linux') or (python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'win32')", - "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'", + "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", + "(python_full_version == '3.12.*' and platform_machine != 'x86_64' and sys_platform == 'linux') or (python_full_version == '3.12.*' and sys_platform == 'win32')", + "(python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'linux') or (python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'win32')", "(python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'linux') or (python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'win32')", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", ] dependencies = [ - { name = "flatbuffers" }, - { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.12'" }, + { name = "flatbuffers", marker = "python_full_version >= '3.11'" }, + { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*'" }, { name = "numpy", version = "2.5.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, - { name = "packaging" }, - { name = "protobuf" }, + { name = "packaging", marker = "python_full_version >= '3.11'" }, + { name = "protobuf", marker = "python_full_version >= '3.11'" }, ] wheels = [ { url = "https://files.pythonhosted.org/packages/a7/e7/61b2768393646bd12e31eeb71958193f4e02c98c4980cf9289d19bbb4a8f/onnxruntime-1.31.0-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:cbf1a7f6470ddfe9dbc781966af8ce4a10e1858d75a93f93cc6b9367c9587870", size = 20871717, upload-time = "2026-10-09T04:18:03.504Z" }, @@ -6772,12 +6904,12 @@ resolution-markers = [ "(python_full_version < '3.11' and sys_platform == 'linux') or (python_full_version < '3.11' and sys_platform == 'win32')", ] dependencies = [ - { name = "coloredlogs" }, - { name = "flatbuffers" }, - { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" } }, - { name = "packaging" }, - { name = "protobuf" }, - { name = "sympy" }, + { name = "coloredlogs", marker = "(python_full_version < '3.11' and sys_platform == 'linux') or (python_full_version < '3.11' and sys_platform == 'win32')" }, + { name = "flatbuffers", marker = "(python_full_version < '3.11' and sys_platform == 'linux') or (python_full_version < '3.11' and sys_platform == 'win32')" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.11' and sys_platform == 'linux') or (python_full_version < '3.11' and sys_platform == 'win32')" }, + { name = "packaging", marker = "(python_full_version < '3.11' and sys_platform == 'linux') or (python_full_version < '3.11' and sys_platform == 'win32')" }, + { name = "protobuf", marker = "(python_full_version < '3.11' and sys_platform == 'linux') or (python_full_version < '3.11' and sys_platform == 'win32')" }, + { name = "sympy", marker = "(python_full_version < '3.11' and sys_platform == 'linux') or (python_full_version < '3.11' and sys_platform == 'win32')" }, ] wheels = [ { url = "https://files.pythonhosted.org/packages/cb/ae/39283748c68a96be4f5f8a9561e0e3ca92af1eae6c2b1c07fb1da5f65cd1/onnxruntime_gpu-1.23.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:18de50c6c8eea50acc405ea13d299aec593e46478d7a22cd32cdbbdf7c42899d", size = 300525411, upload-time = "2025-10-22T16:56:08.415Z" }, @@ -6797,18 +6929,18 @@ version = "1.31.0" source = { registry = "https://pypi.org/simple" } resolution-markers = [ "(python_full_version >= '3.14' and sys_platform == 'linux') or (python_full_version >= '3.14' and sys_platform == 'win32')", - "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'", + "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", "(python_full_version == '3.12.*' and platform_machine != 'x86_64' and sys_platform == 'linux') or (python_full_version == '3.12.*' and sys_platform == 'win32')", "(python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'linux') or (python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'win32')", "(python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'linux') or (python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'win32')", ] dependencies = [ - { name = "flatbuffers" }, - { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.12'" }, - { name = "numpy", version = "2.5.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, - { name = "packaging" }, - { name = "protobuf" }, + { name = "flatbuffers", marker = "(python_full_version >= '3.11' and sys_platform == 'linux') or (python_full_version >= '3.11' and sys_platform == 'win32')" }, + { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version == '3.11.*' and sys_platform == 'linux') or (python_full_version == '3.11.*' and sys_platform == 'win32')" }, + { name = "numpy", version = "2.5.4", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version >= '3.12' and sys_platform == 'linux') or (python_full_version >= '3.12' and sys_platform == 'win32')" }, + { name = "packaging", marker = "(python_full_version >= '3.11' and sys_platform == 'linux') or (python_full_version >= '3.11' and sys_platform == 'win32')" }, + { name = "protobuf", marker = "(python_full_version >= '3.11' and sys_platform == 'linux') or (python_full_version >= '3.11' and sys_platform == 'win32')" }, ] wheels = [ { url = "https://files.pythonhosted.org/packages/34/24/135cec3d9a3faca1acf8a9940802ae6ca7c7a1ff80acfe1ea83871a5db5c/onnxruntime_gpu-1.31.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:f9a79e13492ce69cf58d7b97a7639bf407c8a4db291d9f6125131eac1d5758b9", size = 255558422, upload-time = "2026-10-09T03:56:23.289Z" }, @@ -6875,9 +7007,9 @@ name = "opencv-python" version = "5.0.0.93" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, - { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*'" }, - { name = "numpy", version = "2.5.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11' and sys_platform == 'darwin'" }, + { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*' and sys_platform == 'darwin'" }, + { name = "numpy", version = "2.5.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12' and sys_platform == 'darwin'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/79/4c/a438d23e09ce2033c09f7b784ad2fbdb0adf529e434101ed28f142226f98/opencv_python-5.0.0.93.tar.gz", hash = "sha256:66aac3e5b5faa48d4025816592f3af19e4bfc2c68dec067bae2dbb4ca10aa9e2", size = 81802749, upload-time = "2026-07-02T06:59:53.815Z" } wheels = [ @@ -7014,10 +7146,10 @@ resolution-markers = [ "python_full_version < '3.11' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", ] dependencies = [ - { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" } }, - { name = "python-dateutil" }, - { name = "pytz" }, - { name = "tzdata" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "python-dateutil", marker = "python_full_version < '3.11'" }, + { name = "pytz", marker = "python_full_version < '3.11'" }, + { name = "tzdata", marker = "python_full_version < '3.11'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/33/01/d40b85317f86cf08d853a4f495195c73815fdf205eef3993821720274518/pandas-2.3.3.tar.gz", hash = "sha256:e05e1af93b977f7eafa636d043f9f94c7ee3ac81af99c13508215942e64c993b", size = 4495223, upload-time = "2025-09-29T23:34:51.853Z" } wheels = [ @@ -7072,91 +7204,91 @@ wheels = [ [[package]] name = "pandas" -version = "3.0.6" +version = "3.1.0" source = { registry = "https://pypi.org/simple" } resolution-markers = [ "python_full_version >= '3.14' and sys_platform == 'darwin'", "(python_full_version >= '3.14' and sys_platform == 'linux') or (python_full_version >= '3.14' and sys_platform == 'win32')", - "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.13.*' and sys_platform == 'darwin'", - "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", - "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'darwin'", + "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'", + "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", "(python_full_version == '3.12.*' and platform_machine != 'x86_64' and sys_platform == 'linux') or (python_full_version == '3.12.*' and sys_platform == 'win32')", - "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", - "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'darwin'", "(python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'linux') or (python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'win32')", - "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", - "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'darwin'", "(python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'linux') or (python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'win32')", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", ] dependencies = [ - { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.12'" }, + { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*'" }, { name = "numpy", version = "2.5.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, - { name = "python-dateutil" }, - { name = "tzdata", marker = "sys_platform == 'emscripten' or sys_platform == 'win32'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/e2/17/d7b106e05bfa642e8694451e7d3d759c6a241c5386a5d962e4f66c047e06/pandas-3.0.6.tar.gz", hash = "sha256:66b07ef7315a31bfe1089cd3d71a7de781c9dca986762d0b4fe7c0ef17465d10", size = 4667686, upload-time = "2026-09-17T23:23:18.345Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/7d/48/88e8d250d28efa8163294f6809a71683c7ee67f63ac7c33021c0503b3547/pandas-3.0.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:085e3786ae6b2e82b406266bce36690f72b9dc1421903ba9296b2981a9fcf586", size = 10391798, upload-time = "2026-09-17T23:20:20.96Z" }, - { url = "https://files.pythonhosted.org/packages/55/a6/39db5d41f3eb5d7846626312cb30e0cea48e988fc47a3725698bc931ad3c/pandas-3.0.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d7564d86a94c2eb8ab290b07f63ddaae5c032fa53897c29a2ff2197d43aee8af", size = 10023718, upload-time = "2026-09-17T23:20:25.094Z" }, - { url = "https://files.pythonhosted.org/packages/54/b7/707e966129f77ee8a39d41a41bbd989b790b3fef581c6e26b821315cba6b/pandas-3.0.6-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1e7c0afdcaf6661d795fcefc2f647ddd1136f62cdc153fba177c685d97a87808", size = 10612800, upload-time = "2026-09-17T23:20:27.99Z" }, - { url = "https://files.pythonhosted.org/packages/63/be/dfb6cc9329d0bbe76dadda8a1113d026bb996ec76c509221368dc68349f4/pandas-3.0.6-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:47121f9571503f724c9b93e297ab6254ac99c77adf5e9ed085ea419fd585c258", size = 11108900, upload-time = "2026-09-17T23:20:30.65Z" }, - { url = "https://files.pythonhosted.org/packages/1a/6f/3d58f15bbe972f3d7bfa13ee06d731785a76fe8d232c92b2655a8de14127/pandas-3.0.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:994a79608263fe1c14cc48ffa7300e2b834b7d1cb406ffe96a08828cb0cdd79b", size = 11630226, upload-time = "2026-09-17T23:20:33.582Z" }, - { url = "https://files.pythonhosted.org/packages/58/54/9b494de4a3dd92fc6eb19187db1b21afb50fdc21962f32ea1aca9f270cb2/pandas-3.0.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a3a22e07fe75347eaacc75b0e85297947af4fba6b4aae23916bd8b6828d0bba3", size = 12146942, upload-time = "2026-09-17T23:20:36.792Z" }, - { url = "https://files.pythonhosted.org/packages/d3/dc/d2df02854aec5d47659acfb2be352eecc691845b2f86e99c84f1010a8671/pandas-3.0.6-cp311-cp311-win_amd64.whl", hash = "sha256:2e5fa32ff162dfdbc280157d664f44d23049ae414725af9676df339c501d82cd", size = 9859246, upload-time = "2026-09-17T23:20:43.976Z" }, - { url = "https://files.pythonhosted.org/packages/79/1e/2a30df0d7dede5c195300a1820b0bc21cea3aa24e4c8b6c4431565ecc79a/pandas-3.0.6-cp311-cp311-win_arm64.whl", hash = "sha256:5e75072773c1b2f7cb63faa3a6f562aede11f3976f68ed34cb538bc091a28171", size = 9106923, upload-time = "2026-09-17T23:20:46.611Z" }, - { url = "https://files.pythonhosted.org/packages/77/4c/597d588c055d4373cff19cbbc32d4dd046c7be8fadee957585b5ba9e5b24/pandas-3.0.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7dac2d65e9087e8e7b5a45fe15c4920911a221df061ab629943ce016489145c7", size = 10397411, upload-time = "2026-09-17T23:20:49.465Z" }, - { url = "https://files.pythonhosted.org/packages/18/8f/48907c7c707b61a8e5018c32e1a3f70623209bfb59020a2f6196159d3aa7/pandas-3.0.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9dab635a549e58a053c7b0fa054dc0bd7be22f0ed9a720f4a85d5fb993276172", size = 10051279, upload-time = "2026-09-17T23:20:52.409Z" }, - { url = "https://files.pythonhosted.org/packages/67/fa/613d867c3d9554a61bafdec6f79565c8a3e73235feb52cc4a72ad2e0fa6a/pandas-3.0.6-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e3dccb584123b399c07562ac4d62543e90ede49ddf8ce3c13ffc64cbe828c281", size = 10303429, upload-time = "2026-09-17T23:20:55.597Z" }, - { url = "https://files.pythonhosted.org/packages/cb/67/0c0f18e38d7f2d2af8c24b3315bc4046e73bbdd4a5540405506671ad0c0d/pandas-3.0.6-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0704044b676496b8350e023b09f174a26772456c974a2b11c36bebb558c9490d", size = 10788193, upload-time = "2026-09-17T23:20:58.617Z" }, - { url = "https://files.pythonhosted.org/packages/39/53/1b57f3162501fe36687e4870e1b918a6458ca7386b173af75663ace95857/pandas-3.0.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e7c1905ef02c3d6d43d9dbd5b6ccb4da4870a0b0c821bbc103fbdb6f3ad2707b", size = 11323501, upload-time = "2026-09-17T23:21:01.911Z" }, - { url = "https://files.pythonhosted.org/packages/f2/d2/b1182e8d39100369d7f13f4a125a3fb6b096fef112c46d0566c25781ff68/pandas-3.0.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:569e114072b24fc4970c12e2b4bab252671668a40b324318903380cab0254c0c", size = 11838173, upload-time = "2026-09-17T23:21:04.85Z" }, - { url = "https://files.pythonhosted.org/packages/c7/33/5b717af24d2f27995e51e0875a269dddd373045216e34cf62e3aa764eaa1/pandas-3.0.6-cp312-cp312-pyemscripten_2024_0_wasm32.whl", hash = "sha256:2a8fc94be2ee5f1d86f97aacd8cc566f81680b6498e76f3007421bb5d98151bf", size = 7118499, upload-time = "2026-09-17T23:21:07.661Z" }, - { url = "https://files.pythonhosted.org/packages/bd/2a/14b3b17cd75cef4a1ee1af4234eb41cc1afe4103b98c2d80e8916abfd42b/pandas-3.0.6-cp312-cp312-win_amd64.whl", hash = "sha256:3ef908d28590b3f42d7070e7ad8f9b34b442b260b7f3c1afb57e0040c58cdb1b", size = 9661439, upload-time = "2026-09-17T23:21:10.959Z" }, - { url = "https://files.pythonhosted.org/packages/3b/11/3d580a604a1e35d69f6676847bd12db7d14344bc677b717f4413e79c5d0d/pandas-3.0.6-cp312-cp312-win_arm64.whl", hash = "sha256:f4e7c52eb108d752e7592268108fd3e98efd76d83a3125cdd06c621c2e44359b", size = 8959806, upload-time = "2026-09-17T23:21:13.851Z" }, - { url = "https://files.pythonhosted.org/packages/8e/1c/143605a1f6443ad50ebda78a31e5a3a10147fec2590e931584aaa5ff0a09/pandas-3.0.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:9ae8073aed8e21d1a7fe263dcdc6840743549722a6738198a0a46000fa9476f2", size = 10418900, upload-time = "2026-09-17T23:21:16.594Z" }, - { url = "https://files.pythonhosted.org/packages/ea/ca/87f8548f73d452aab35e4a90f8b39ae303295e0f2ef0b4055c44d6b3f1be/pandas-3.0.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:60d81f9e1799b36f3739e7fff44d1fbb2e8fd5a271b3863e03de9715fccda0fa", size = 10064785, upload-time = "2026-09-17T23:21:19.677Z" }, - { url = "https://files.pythonhosted.org/packages/43/1a/d951442e5607c6e3b2462eff8f420797d428aa74b87c6ecfe4f48553626e/pandas-3.0.6-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:097090508a1dd335013d39106fc10b20f4fd4a171638e47b77d55798ed9dab6c", size = 10245290, upload-time = "2026-09-17T23:21:22.797Z" }, - { url = "https://files.pythonhosted.org/packages/50/fa/96d50e1e6cd0b08b5e2b7c838f65ae644940f75a124063380b5ef73b6866/pandas-3.0.6-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1e92d9fa834c7d877130027cddc0cad8dcff97c1f6cca26bd6310f847228b658", size = 10757657, upload-time = "2026-09-17T23:21:25.673Z" }, - { url = "https://files.pythonhosted.org/packages/7b/12/f82d13a2cb703e1a8acee7e01fdc2b898d9cd0c00f07d1dfce63af43e350/pandas-3.0.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:b27c8d890e4aa2171437ae2a39de1d215e674158e4865c4023a8b31c932513b2", size = 11249114, upload-time = "2026-09-17T23:21:28.898Z" }, - { url = "https://files.pythonhosted.org/packages/1a/ce/8aef2e561a2f2c8b38c913c67373c65ba6748174e763d27c80271b24bd17/pandas-3.0.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:f8029ec0f1f89e4f985929ce1f6626dabf3140d61a4e9c1215afdab34eaf9a5d", size = 11820511, upload-time = "2026-09-17T23:21:32.11Z" }, - { url = "https://files.pythonhosted.org/packages/c0/bd/63cb67e6903ef6d9c2871916dbcbc09d254da0fe8b870cf62e16b21945f2/pandas-3.0.6-cp313-cp313-win_amd64.whl", hash = "sha256:f3ce8a6968045481e91a3990e797e348ce13db45ee164a7095bbc824e26c09dd", size = 9638092, upload-time = "2026-09-17T23:21:34.883Z" }, - { url = "https://files.pythonhosted.org/packages/75/2e/e7b35b712edb068d382ddc8b2bea8a04974100515ba2daa22b478b265842/pandas-3.0.6-cp313-cp313-win_arm64.whl", hash = "sha256:cc39303913e2ea129915670de5d1c9fbd647f543bb72e5543bac8baa94e9e42f", size = 8952032, upload-time = "2026-09-17T23:21:37.729Z" }, - { url = "https://files.pythonhosted.org/packages/75/55/1a8875395b05ccd572cbca0b9255dcd2db6e6508e632a558c1a6884b39ad/pandas-3.0.6-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:ee913a91669056c1de1a6b733fbfeab711de9e54e3bee2dfa5fe79d9457247d1", size = 10492213, upload-time = "2026-09-17T23:21:40.746Z" }, - { url = "https://files.pythonhosted.org/packages/35/61/47ae13476995cc8a40cd609e93e7cf11f273d8692925c2903cb6d38aa0d1/pandas-3.0.6-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:ff51a4459ed036e93d1eb1bb5e6e7b28685d3cb6b7c12b91c05b31024e234729", size = 10156618, upload-time = "2026-09-17T23:21:44.142Z" }, - { url = "https://files.pythonhosted.org/packages/bc/f2/cc5f2adb8d6e86a85d9fb5128f8cf205a61189336f70d1f7faf0d1b53ec9/pandas-3.0.6-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:654aae059295dbba6ecd2328ca12712a2cf1676214c8699f1c29213f7ccf9c34", size = 10375479, upload-time = "2026-09-17T23:21:47.159Z" }, - { url = "https://files.pythonhosted.org/packages/ca/ba/ffdcb19be4ff6bfe7d969e7cef2c567c633df5a3a1cc1053394ad053bca8/pandas-3.0.6-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:62f51d7f651c8054c5e82a69265c98082e795d1442df7ca6edc3a545d61214b1", size = 10783244, upload-time = "2026-09-17T23:21:50.367Z" }, - { url = "https://files.pythonhosted.org/packages/77/5b/e150075b2c6eb69fae896f2d9239bc6ed07db97735971d53d66de6553460/pandas-3.0.6-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:22172a92e7ee678ec0140c7af4fc9366b55413834a1cd86af78b3caa0b0574de", size = 11382223, upload-time = "2026-09-17T23:21:53.355Z" }, - { url = "https://files.pythonhosted.org/packages/d6/8a/b441c587dc7355bf6e1f68a91b4f76a6c29740f0c23be3acc5d4ebbeea6d/pandas-3.0.6-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:583be68728a31d0d750d5b8d9e00f02b153df0d4655f858bde93cb84cfc4227c", size = 11854881, upload-time = "2026-09-17T23:21:56.342Z" }, - { url = "https://files.pythonhosted.org/packages/b7/e9/f43410fada510b43fec09993c08f552086c3d247d3ee801a678f3cb10ea5/pandas-3.0.6-cp314-cp314-win_amd64.whl", hash = "sha256:77ccbe5057aece6fc172b9b77f19c04335af6882bc2e10c8f3ee4e6bfb3da553", size = 9791672, upload-time = "2026-09-17T23:21:59.332Z" }, - { url = "https://files.pythonhosted.org/packages/8b/9e/db14c059c21f9baa1907d436f8bf30e0c76c6288225c5e8b79a08ba8b2c5/pandas-3.0.6-cp314-cp314-win_arm64.whl", hash = "sha256:fb625f426b375bcc96e3a04c5d5d266cd7be6ae5d6866e0e703382ab5164068c", size = 9121246, upload-time = "2026-09-17T23:22:02.123Z" }, - { url = "https://files.pythonhosted.org/packages/67/ba/bad0f8dac020ab38a8637fddab01a57a82da7a496a6e6f19590aad53ab62/pandas-3.0.6-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:9e492cd4bdba6778de4fe0df7f4590c012161ebcf9902dce01b01dc683105514", size = 10920612, upload-time = "2026-09-17T23:22:05.404Z" }, - { url = "https://files.pythonhosted.org/packages/c4/a9/b500982e9aac6d52a58da4ad3f11e14168a315b06906b3f397c427878065/pandas-3.0.6-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:d7dcd21238cbb4828ff148481ba01cac8946dc5121457b5aeba28636f8f99a60", size = 10570213, upload-time = "2026-09-17T23:22:08.44Z" }, - { url = "https://files.pythonhosted.org/packages/4b/fa/e6ecd0073c98be8f840ac3125b955272835d7d9fd69f5944383b164deb5e/pandas-3.0.6-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6ff482fa91fa2bafd92e8fe66ce3645c851824310f295c1f0a2f96e928fc4541", size = 10252356, upload-time = "2026-09-17T23:22:11.302Z" }, - { url = "https://files.pythonhosted.org/packages/04/f5/001e230a7a7803590d9275a1a3f7e1bb605e3a495cfe5e8d3a532090621b/pandas-3.0.6-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:db7ec631f26223beee8e5c9e0b8f23c24d8197bbd1d982421d4e3188bea51965", size = 10655952, upload-time = "2026-09-17T23:22:14.283Z" }, - { url = "https://files.pythonhosted.org/packages/ca/ab/bab587148a3852c96aae26c4b5f9e04ce2221801ad94e166b4fbf969ede0/pandas-3.0.6-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:bd75ed0c840f709fc2ae26ddd9534ac77ca1a48ac0cce521a74acaa85f3340a7", size = 11274177, upload-time = "2026-09-17T23:22:17.352Z" }, - { url = "https://files.pythonhosted.org/packages/f3/32/74b48d87df2b80892d713c149abfe36d5db4de41b4eccb042a2bc07dafc1/pandas-3.0.6-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:ef738d71d1059245b6bb03e312be06d8b3821326a83486c1ad03b9aba3710e44", size = 11719041, upload-time = "2026-09-17T23:22:20.227Z" }, - { url = "https://files.pythonhosted.org/packages/f6/c6/d64b72d64d7eb0fad9fe424d34138e45dee70ddbea1360dcd0adf30e28f6/pandas-3.0.6-cp314-cp314t-win_amd64.whl", hash = "sha256:429d9df32731ab01383ed98f2baa7a60368090d1a94fc06019a12062510e8630", size = 10191388, upload-time = "2026-09-17T23:22:23.524Z" }, - { url = "https://files.pythonhosted.org/packages/7a/30/5e5b2ccabeca73ae2b03fc82bca3eabb7466cf43737f05ac08d591665d47/pandas-3.0.6-cp314-cp314t-win_arm64.whl", hash = "sha256:a4dbd4dc65cbe645b92b8785d0f96dd7311010dc6606cf620e51b07b8788a12a", size = 9387796, upload-time = "2026-09-17T23:22:26.64Z" }, - { url = "https://files.pythonhosted.org/packages/b6/77/47c5fb0be8bdd00116814c2c40d9ec42dbeb943865ef95130fe58a898226/pandas-3.0.6-cp315-cp315-macosx_10_15_x86_64.whl", hash = "sha256:50c44cbf5820b6b91a5f74aae04972472aefadd3cd9fbd1010409d85528bd570", size = 10483960, upload-time = "2026-09-17T23:22:30.071Z" }, - { url = "https://files.pythonhosted.org/packages/09/08/a310cb2fefe6d2b4623ab2150da818d93d4e73e33b58e4d163bb74243c5a/pandas-3.0.6-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:eb6900de08ac85f93ac4948aa6b80842eba555875337b8359035ac9c43e92d34", size = 10149432, upload-time = "2026-09-17T23:22:32.818Z" }, - { url = "https://files.pythonhosted.org/packages/54/36/6af478ec3a26d7754555cd62c3101c589c0931b1d85398e4fa5403910a1c/pandas-3.0.6-cp315-cp315-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4e25e2e1adee99ddfada6f7206a79ae8e9c8a8861b0e3eaaba165006d3eef18e", size = 10360981, upload-time = "2026-09-17T23:22:35.621Z" }, - { url = "https://files.pythonhosted.org/packages/43/20/5ece0e9cb79a6473216620db6a90546f578001c2bd857b77c444b27acad1/pandas-3.0.6-cp315-cp315-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4ff44b2cb51cbd691c91f92c4ea6c71e34003f239ebd67c2e857dc898466b49c", size = 10776585, upload-time = "2026-09-17T23:22:38.427Z" }, - { url = "https://files.pythonhosted.org/packages/2f/b6/cd3038f31ade5e8d2b4e1c9549d4b31e4d598469562f47142b2ad9171c0a/pandas-3.0.6-cp315-cp315-musllinux_1_2_aarch64.whl", hash = "sha256:5edd0a7abb0986ecce1ac81f56d99b6763f86aa6946dceb6c661224f90af5a19", size = 11385249, upload-time = "2026-09-17T23:22:41.18Z" }, - { url = "https://files.pythonhosted.org/packages/0a/87/05bb3003737f80375d7311774916a24d161e2e591abe8c672aed7813defc/pandas-3.0.6-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:1bcb3e9ed29e74a7439cedff9e2aefd3ea65de84d7de9ccb6c194192541bd60e", size = 11848595, upload-time = "2026-09-17T23:22:44.207Z" }, - { url = "https://files.pythonhosted.org/packages/c0/30/1c0d46acf236d19ef975e9cdd5d1e0dd54924b03f0ed8287096ad4a18152/pandas-3.0.6-cp315-cp315-win_amd64.whl", hash = "sha256:253e12cb9081b0afbac607920f6142975966bc315135e09de275fdbaa415d2de", size = 9783810, upload-time = "2026-09-17T23:22:47.097Z" }, - { url = "https://files.pythonhosted.org/packages/87/03/df3304a9c2833c4810e7f1c887b04105b24731f9deef8b5d5d04522a375b/pandas-3.0.6-cp315-cp315-win_arm64.whl", hash = "sha256:97274c9adf6255bb48c620cd6959805efa7f09ea2167f0e0ae006a448cd2fca7", size = 9116820, upload-time = "2026-09-17T23:22:50.149Z" }, - { url = "https://files.pythonhosted.org/packages/47/25/d5f6cce5efa17c38e4f752a875b4a26d66cfadd529cb8c81672f0376d6a6/pandas-3.0.6-cp315-cp315t-macosx_10_15_x86_64.whl", hash = "sha256:265f562fdd1079f69f3de96dd425c3405224038c0af4f920c54bd240ee2c4640", size = 10894614, upload-time = "2026-09-17T23:22:53.223Z" }, - { url = "https://files.pythonhosted.org/packages/ea/8b/e1876bfdc1df06bafc022d33202b5663bd86c81df2a6140aacafd0344669/pandas-3.0.6-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:c6e4aae3e9bea26c6c9a20d88d96c86ec4a99b4db5fd516bcb4e829ab2c0ee36", size = 10546973, upload-time = "2026-09-17T23:22:56.155Z" }, - { url = "https://files.pythonhosted.org/packages/e9/27/e0a27a5a5c27f7db66657b44def9e93121fd0ad4f0808355b9898fcbf204/pandas-3.0.6-cp315-cp315t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a77a1a44e4d88f1c6a2a64d3eb12efec8420875722e14279800b173a7c7c2804", size = 10239717, upload-time = "2026-09-17T23:22:59.603Z" }, - { url = "https://files.pythonhosted.org/packages/d5/4f/4eadb7d86a921c1e8bc70916cfe601ed667c4169118d17d69958611c21f8/pandas-3.0.6-cp315-cp315t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:86fa853a12e0b70927e2b1ee00d56d2224ec9cbb4b9d58348b5ad52d2f21150e", size = 10641275, upload-time = "2026-09-17T23:23:02.81Z" }, - { url = "https://files.pythonhosted.org/packages/c7/d1/eba72e9d905e84e79aefeefdcc6bc1abe15d9077973566643f4211636966/pandas-3.0.6-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:c826e9babb7790142c399f58599d8de679bea059d7b39c5b6efa2096fac37266", size = 11262919, upload-time = "2026-09-17T23:23:06.038Z" }, - { url = "https://files.pythonhosted.org/packages/9d/8a/1c5bd2642b450e374b6191189f47c49538fe41f82348a66de6f647e6ab59/pandas-3.0.6-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:8fe77b408d82e2615674dfed62533b95e18a03610573877422aada4f625d4947", size = 11709148, upload-time = "2026-09-17T23:23:09.082Z" }, - { url = "https://files.pythonhosted.org/packages/73/3d/1b142bd0d0f1326a5d98c91c955b923cd1e06b5eecb428cd9d8817fa01c0/pandas-3.0.6-cp315-cp315t-win_amd64.whl", hash = "sha256:83e91d15738d7783c050197cef2f2cf82fc6353dae9865aa87ed1fa16aa4d55a", size = 10161518, upload-time = "2026-09-17T23:23:12.365Z" }, - { url = "https://files.pythonhosted.org/packages/0b/a3/6419c14da2adc1f09a6a183b8f91d7494d325b287f4ca984ac04f663638a/pandas-3.0.6-cp315-cp315t-win_arm64.whl", hash = "sha256:963ca21199097a84c7827c4678b04e30833084fbf8ef44fde3fa7180a29f8fa0", size = 9364529, upload-time = "2026-09-17T23:23:15.274Z" }, + { name = "python-dateutil", marker = "python_full_version >= '3.11'" }, + { name = "tzdata", marker = "(python_full_version >= '3.11' and sys_platform == 'emscripten') or (python_full_version >= '3.11' and sys_platform == 'win32')" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/55/b1/a10c0d1a7e3ce44eb42635771004aa503e3b9ddde0bd39c524dda65f7eff/pandas-3.1.0.tar.gz", hash = "sha256:ecb9b2d8a817b1e1ba1fdb90c0abe9eab31b4fdf2562b7a56b86ac66ace17e49", size = 5933421, upload-time = "2026-10-22T11:57:03.087Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/36/f2/d8d89ee886df6d959d7b9f483a55a0e5a1d5b034f08c32f4343a524af802/pandas-3.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d53387f8bbff4e7aa567619d4034ffdb1836db1e768a482851b904bbeeed8ef9", size = 11595013, upload-time = "2026-10-22T11:54:48.33Z" }, + { url = "https://files.pythonhosted.org/packages/ec/73/e5243378792b79d3d08f9a6782a0e23ae65cc8c6d2f476b9d2825946b071/pandas-3.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:0d2ca3b380f0f6cc788780430eb23762619730c11d53989f3982ec96835bfb9e", size = 11159002, upload-time = "2026-10-22T11:54:51.011Z" }, + { url = "https://files.pythonhosted.org/packages/bf/4a/1064a6ec84ae047379a5969f6b331bd8d57013f08b30976564780fb0c9bd/pandas-3.1.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:388fad0c683ad061baabe23a76f43bf43c1d2c2fd46572b687082cfa195b7275", size = 11758276, upload-time = "2026-10-22T11:54:53.367Z" }, + { url = "https://files.pythonhosted.org/packages/14/41/2d264868728f7cb2add91a605bea5f2aabd3da41889ee97746a586ec34ee/pandas-3.1.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0a28602573f50453b57802d282f9f8cb7663aa10201127ecbbe95ed4a41c64ce", size = 12330371, upload-time = "2026-10-22T11:54:55.654Z" }, + { url = "https://files.pythonhosted.org/packages/7e/04/790ac6114ceb45575d7d7a909126210f829978f18f4f10ea8c6c847f0118/pandas-3.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:e6f83e44846f9386e3593965bac017a54a5b5c611ea7b836ceab7f465bb4cb24", size = 12777723, upload-time = "2026-10-22T11:54:58.08Z" }, + { url = "https://files.pythonhosted.org/packages/56/b1/0513aaaac23bc1400b831881448665565a1b9b327d3eb7c5aca2b23c0b84/pandas-3.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ebbc0e652844e52e06d1525e5084ec1609158c086c8646aa6ccb34802102e533", size = 13411658, upload-time = "2026-10-22T11:55:00.372Z" }, + { url = "https://files.pythonhosted.org/packages/f5/1a/e33f6637445dd4b7323aa7bdaf4cc15c383805b4a2e99f958b7e32296e58/pandas-3.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:a7704e3d7367cfae71d3f8c95ee81e178c7a90bef8d6eac30df9815010722259", size = 10977787, upload-time = "2026-10-22T11:55:02.967Z" }, + { url = "https://files.pythonhosted.org/packages/2e/f7/86bd686a20a5052e15581fdc7f220098426b1982604fb545e78bdd5b5b2e/pandas-3.1.0-cp311-cp311-win_arm64.whl", hash = "sha256:d3e660af30a6683fa57a5a2969555df117e873eaaeb418ad3b2e59249405ee70", size = 10305708, upload-time = "2026-10-22T11:55:05.046Z" }, + { url = "https://files.pythonhosted.org/packages/e9/12/b94c28870f351e9650c724e6daedf661455b348a9dca6d717c42c30fa216/pandas-3.1.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f4772320b7735d96dbbef437129f840dec4175f8a18a2391bd1222ed8943825c", size = 11587014, upload-time = "2026-10-22T11:55:07.208Z" }, + { url = "https://files.pythonhosted.org/packages/1b/4b/af8ca15261db52ab07f5d0c2d4c1bc28d822ea4c2a79756bc2606c012e7c/pandas-3.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:cc5e4e12d287ea77bbf4c4d4bf47ed152d82a990d3a6794dee7c350f887532b5", size = 11167712, upload-time = "2026-10-22T11:55:09.523Z" }, + { url = "https://files.pythonhosted.org/packages/49/c4/cd5127751e2bef3d10f07e0d856e120916a3df0df6450f759ddb48c78b1c/pandas-3.1.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9b4e696ff70ed06e986feeec09356c491ce878d0df69a36c8e591b6a38afa29b", size = 11476964, upload-time = "2026-10-22T11:55:11.889Z" }, + { url = "https://files.pythonhosted.org/packages/c5/a6/dc89cdd95e12093bc813e9b814a09f1a056be3e1304edaef9bf9dbee108a/pandas-3.1.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9433b5dc2f26ef9d9b56daaf4d41d078bf4372c5d88c42ed5b397a6eea80de16", size = 12019688, upload-time = "2026-10-22T11:55:14.246Z" }, + { url = "https://files.pythonhosted.org/packages/36/87/da14aa671da792612f15847451e731d5dc0f06f6747b76b15f197ffcce13/pandas-3.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3cba20fd269808e224d6212273008173978033a1dee0f3f217bfdbd58775a72c", size = 12490149, upload-time = "2026-10-22T11:55:16.675Z" }, + { url = "https://files.pythonhosted.org/packages/5e/a0/1ce996c7354ad37983955571058ba0dde585663163ab067275197183868f/pandas-3.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:743554ed96755ad1963397ccadbe9965d92db8777ca2ae8c1fe58bd9549d7f28", size = 13090624, upload-time = "2026-10-22T11:55:18.854Z" }, + { url = "https://files.pythonhosted.org/packages/92/72/d235f82b51a22478938a3583b68e8dc05811937543adf410f34bab76004a/pandas-3.1.0-cp312-cp312-pyemscripten_2024_0_wasm32.whl", hash = "sha256:ac2f833557874a79fc0b5fac4c86e402ea6498beba8753dc29ca23d08481689a", size = 8091628, upload-time = "2026-10-22T11:55:21.285Z" }, + { url = "https://files.pythonhosted.org/packages/10/72/06aefff8fe5efc5e1ca8bfb2695b648a435358f6dc224d4e40159314181a/pandas-3.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:b8c75dbb27c7d170b25c13dd35515da4bb92d40fe8bb3bd2c69a95de2218889b", size = 10748836, upload-time = "2026-10-22T11:55:23.47Z" }, + { url = "https://files.pythonhosted.org/packages/f6/b6/4c86f659f5b14790d14e17253becc93c4e3d1511b73f0ba2184f06b164f8/pandas-3.1.0-cp312-cp312-win_arm64.whl", hash = "sha256:73b6cea22090b7123c78ee662a5108ff36616b0bec4fe47026f86fb04a49bce7", size = 10128898, upload-time = "2026-10-22T11:55:25.995Z" }, + { url = "https://files.pythonhosted.org/packages/01/54/eb85f8b2ce121c21286842cf81abaa670ec3570173c512298f91128927a5/pandas-3.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:849d5019dead65944875ce21fbf71a2ca18e982164cd7367623cbda8567c3122", size = 11609893, upload-time = "2026-10-22T11:55:28.592Z" }, + { url = "https://files.pythonhosted.org/packages/9b/f2/b327e814327b7e7e61b5c5cceafd5c0c20f0d38e94f99ebf2dd6c1cec85b/pandas-3.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:c1e084760f3b275eed5863407d025b933d25f3247515fcc84bf664405e8bb3d2", size = 11182834, upload-time = "2026-10-22T11:55:30.912Z" }, + { url = "https://files.pythonhosted.org/packages/4e/6d/2b918a45ad31d85f898567c948f11d0789ffe7fbadd6f487565e99d179b6/pandas-3.1.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c1009f5b6819b81319cf177b4f01a2823ed54c81db8bd11cdf2375f42d064c02", size = 11421478, upload-time = "2026-10-22T11:55:33.257Z" }, + { url = "https://files.pythonhosted.org/packages/4b/6f/b63e1d43eef5746014ae3f4786c72e0020e61b6b373a2abb6ebf1be3df49/pandas-3.1.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:de6d0fc96e8551b83f400bf212611a0b3a2b389594d20a2540dacc61b21e7bce", size = 11991052, upload-time = "2026-10-22T11:55:35.556Z" }, + { url = "https://files.pythonhosted.org/packages/fd/43/2cf85145d822957a3f8959fd0a850e6bf687dac2823c612b3912b8888dae/pandas-3.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5611344f9f0ed51619ac7acdbf72b86f5043801a66e3f8730c8971257082e8ad", size = 12455560, upload-time = "2026-10-22T11:55:37.656Z" }, + { url = "https://files.pythonhosted.org/packages/7f/72/0cb19cea2e6afbb0854cbde0ed1345b61600e0de84eb7b73583fde3e3b55/pandas-3.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:39c67ed9e56ad3ac0727dc2ae6a1eef766988c762d5ce2e2a162613d81c8990b", size = 13045764, upload-time = "2026-10-22T11:55:39.969Z" }, + { url = "https://files.pythonhosted.org/packages/e3/5c/ea5472e8444f5871427f3a6818725684fcdce74223ca1b22aa7ca345d490/pandas-3.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:07807035ad66de0d833d68f9bee05801dbf08b88d56a233b0e9fd189372c3261", size = 10729719, upload-time = "2026-10-22T11:55:42.008Z" }, + { url = "https://files.pythonhosted.org/packages/45/f7/8cdd350c67bc62865d1e30cd7add43dd631420223487ba42dfcfd0d0e052/pandas-3.1.0-cp313-cp313-win_arm64.whl", hash = "sha256:54fed4a50b8321ff8d413b46b7e31a023cecefd06c7210c02aa980a9836428b2", size = 10116651, upload-time = "2026-10-22T11:55:44.367Z" }, + { url = "https://files.pythonhosted.org/packages/c3/a9/e82d44fe20dc61dd2e15bdd17c78aa0023d860d55620e4fe82f9e644a089/pandas-3.1.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:a8c44d40cbb6d00128bf2d8f8bb66c8d561744b6d44686b5a1a01f3b3fd1245f", size = 11675868, upload-time = "2026-10-22T11:55:46.617Z" }, + { url = "https://files.pythonhosted.org/packages/83/38/6be618d98e2cbbb99a40349717532f0c2b6794ddc62f1199e3f83e45a40f/pandas-3.1.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:89b66823678cdd53cf97187e7cd6861402bdd147d11a383706093136a4e83f45", size = 11262553, upload-time = "2026-10-22T11:55:49.143Z" }, + { url = "https://files.pythonhosted.org/packages/06/5c/66e27fb0d691e835bd55b336bdf47312a541a66a17ba4d72a988d743bb79/pandas-3.1.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2a8dc7780720b9e2182799ee86279d4cc7d1fd30b230ea1b202da5b6f7e14c3a", size = 11548155, upload-time = "2026-10-22T11:55:51.674Z" }, + { url = "https://files.pythonhosted.org/packages/37/1e/42e81484c5a6791ab1b8c52c1ff1ef0483c119f710ed58ee603d241b8792/pandas-3.1.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e4455cdcc03e42c17233184e8e4ea65c3ed2925d8b1d9d7dd8e6fced3f6e43c1", size = 12029136, upload-time = "2026-10-22T11:55:53.823Z" }, + { url = "https://files.pythonhosted.org/packages/cd/c9/a3b4fd156457f3eb2585838cd56427a113eeeba679204de435a3224b8cc3/pandas-3.1.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:224a9267e5fa70c16bf4f8a317435eef98387940ce6c8c611f1f68f2c3415e10", size = 12575350, upload-time = "2026-10-22T11:55:56.006Z" }, + { url = "https://files.pythonhosted.org/packages/4e/25/23a017003d792117b297bbd87e35a1bb5658509f610ecd5aeaebb84762aa/pandas-3.1.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:c261c7a808982557c2917d40ffd27916769f26aacb4e6775c01e4467bcd34c3b", size = 13096142, upload-time = "2026-10-22T11:55:58.434Z" }, + { url = "https://files.pythonhosted.org/packages/1c/d2/f4074b7d1234d112aaa23a796be1574441a9fa873707eb98312a237a6185/pandas-3.1.0-cp314-cp314-win_amd64.whl", hash = "sha256:e77112cfcabb3bef7281a72170670db9a5b31409a1cd3199939abb1fba67a7ad", size = 10885958, upload-time = "2026-10-22T11:56:00.895Z" }, + { url = "https://files.pythonhosted.org/packages/25/9f/bcfc9e0ea07f5c7583e129e62cd0529747317977ac1b85878b80235bb322/pandas-3.1.0-cp314-cp314-win_arm64.whl", hash = "sha256:6c51273b89784c9d54020ed2f60e20524169aef349bddf6cba9f5e83b46077a7", size = 10281257, upload-time = "2026-10-22T11:56:03.478Z" }, + { url = "https://files.pythonhosted.org/packages/05/e4/b3bf0b702c0a886e4abcfc2ebdc681310498592a10d9ca0ce5db6df47b70/pandas-3.1.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:84377fa82d0b40165379a0058d8a1a267ceb09e65160de6fcc75475d4d595884", size = 12134028, upload-time = "2026-10-22T11:56:05.696Z" }, + { url = "https://files.pythonhosted.org/packages/3e/ff/9e08cf048d73f4dfdb10da859790cd1a4213465dec39ea367a606d580c4a/pandas-3.1.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:37f88576f3449bfd86c1052f6b42274b61d7250c8d9dcc55f9dc4de7fe9883ae", size = 11729164, upload-time = "2026-10-22T11:56:08.335Z" }, + { url = "https://files.pythonhosted.org/packages/1f/ff/a0df60d70fac10006841457c30d35647ae0c93af33e420e5e047b15e058d/pandas-3.1.0-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:756fd67995f3efb6b25f8eaea95c0e893f84e0068e2c53c5fdbb65275041d4db", size = 11413041, upload-time = "2026-10-22T11:56:11.38Z" }, + { url = "https://files.pythonhosted.org/packages/55/04/e6742d85ba7d166a1a8a99ff9f4aa9e585fb24028522daa187859ce50b5d/pandas-3.1.0-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c4d9252b57bded194d09cd5ebf18d9b4edac238b16f56984ea8281d2ecfe39cd", size = 11869427, upload-time = "2026-10-22T11:56:13.637Z" }, + { url = "https://files.pythonhosted.org/packages/0a/a1/c9f4915408ef10b541f31b7812ca038dd903572c163b7be7bdcece8a5110/pandas-3.1.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:461b79db058639e446ddf90dd7f4804fae385acf0669f6e31321333e14cb6bc5", size = 12430367, upload-time = "2026-10-22T11:56:15.829Z" }, + { url = "https://files.pythonhosted.org/packages/9f/ed/636b9cc8d30b3e2027b43036dd5a8e9e7cfdd5aa86f4454235c5ef7f96db/pandas-3.1.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:bfac077874a396b7ae61a307b27aa6f0256cf31c143b7f96ac622765754cc300", size = 12945204, upload-time = "2026-10-22T11:56:18.419Z" }, + { url = "https://files.pythonhosted.org/packages/e6/5e/5c28942fa8c6cf2d8b4e941abee43a44ba0a123f9fef6411f0319aefddd5/pandas-3.1.0-cp314-cp314t-win_amd64.whl", hash = "sha256:1340f823a1d189fae8365de314c4d3c2ea0173c61bca66cc76a91385c64d9d3d", size = 11297553, upload-time = "2026-10-22T11:56:20.934Z" }, + { url = "https://files.pythonhosted.org/packages/cd/a4/5991dfb2cccd233ae754f2fb37a4b1474d90595d83f6790467dc5a7d8041/pandas-3.1.0-cp314-cp314t-win_arm64.whl", hash = "sha256:2bb3f8cc42fae0c0de5186778f4a4957656b9b3955aca48383abfdac44a83598", size = 10626068, upload-time = "2026-10-22T11:56:23.187Z" }, + { url = "https://files.pythonhosted.org/packages/77/26/5cd42609d8e6cb3991242116a0e499d09f29f5bcf574f72f0a4aba13a87e/pandas-3.1.0-cp315-cp315-macosx_10_15_x86_64.whl", hash = "sha256:04ca88727dfa86837030c493d7512bb1c008aa4f5f14149c5f8d3ff446791340", size = 11666949, upload-time = "2026-10-22T11:56:25.842Z" }, + { url = "https://files.pythonhosted.org/packages/97/5f/ca1ac99da700c215c52fb0f5063a7fbf14878c6e100f687704c21985640e/pandas-3.1.0-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:c0bfec4d188fb0c05bba47b9f9def87624b8c545913aa3585a28f19f27ce847e", size = 11255062, upload-time = "2026-10-22T11:56:28.201Z" }, + { url = "https://files.pythonhosted.org/packages/d3/eb/8d7aef062e7d1f48869288e5c5ae5d109923f37ed3bbd0fdcaecc87784e9/pandas-3.1.0-cp315-cp315-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bbfb087db83eb79ca348047961d367bdd4bf9820d90a5945f3652c7060da7363", size = 11547558, upload-time = "2026-10-22T11:56:30.492Z" }, + { url = "https://files.pythonhosted.org/packages/06/c4/a041c786bc29935afe44806f72c0111f2643cbac5cab761007a227e12e97/pandas-3.1.0-cp315-cp315-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4b5ce18612ca955e7a95d0bacc20120aedf97e2fbbebbe4de029fc24479e79b8", size = 12026259, upload-time = "2026-10-22T11:56:33.219Z" }, + { url = "https://files.pythonhosted.org/packages/d3/4a/ce6690c7e6081c96857ad7dcbe3b978394d8db682610755919e61863516f/pandas-3.1.0-cp315-cp315-musllinux_1_2_aarch64.whl", hash = "sha256:a13199463b129363701a540c7b79586581b246b10b6a7ad682c41b268e7991d5", size = 12563821, upload-time = "2026-10-22T11:56:35.402Z" }, + { url = "https://files.pythonhosted.org/packages/75/ec/ae440ecbfa8f5ba0230541b4519c1fed0c4293ff362f18f7f353b12e2dca/pandas-3.1.0-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:8e4de3fe8017e3445f1174707cd977e4e1154a704af2c060a1f648862f81acb9", size = 13086426, upload-time = "2026-10-22T11:56:37.666Z" }, + { url = "https://files.pythonhosted.org/packages/e7/1e/6459d4b0ed9c3d72b9ab63387ec11e1e658579e702e0ef117be8b5d7d0d1/pandas-3.1.0-cp315-cp315-win_amd64.whl", hash = "sha256:eee72bba8a72f0bf9522132e5c87cd10fce9d77440b50f65326b093ec9fb8d43", size = 10877850, upload-time = "2026-10-22T11:56:39.994Z" }, + { url = "https://files.pythonhosted.org/packages/f5/22/e5fad1828e5f923e80a8d7ba9187f687159004a10f99f95dd5346b04c54e/pandas-3.1.0-cp315-cp315-win_arm64.whl", hash = "sha256:9ea2983fe096a3d997c8c4b9f26775fa51e7fb251b10634bd7f87e6fe3542d52", size = 10276384, upload-time = "2026-10-22T11:56:42.193Z" }, + { url = "https://files.pythonhosted.org/packages/59/76/89820c2e1950425f39d30695d2296a8c7d400c4c2d279e7618363a7289ac/pandas-3.1.0-cp315-cp315t-macosx_10_15_x86_64.whl", hash = "sha256:84d73e0814a38711e4f2a24b272f748a0b4335169d2f9752407ae26bde22990f", size = 12107257, upload-time = "2026-10-22T11:56:44.498Z" }, + { url = "https://files.pythonhosted.org/packages/c8/2c/af4397e6e855d2c0dcb3392ab7788087be4ef53f6a3f166daad8b83c783e/pandas-3.1.0-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:d3920d9b4de89fbef76ba6b863d58a330b5bfb720c9f8f58eb9b7da9b711d034", size = 11704430, upload-time = "2026-10-22T11:56:46.791Z" }, + { url = "https://files.pythonhosted.org/packages/fd/9e/7791cd269099f9fca7dc4718955cfe4bb94aedb6634b59eeffefb1ed6a74/pandas-3.1.0-cp315-cp315t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a1d61e0eae5219cd024fcbc21304de759964b5642ddcdbb28d9a8ba442ab6901", size = 11378442, upload-time = "2026-10-22T11:56:49.113Z" }, + { url = "https://files.pythonhosted.org/packages/54/6c/da4013bd33c49a12eb3127771111caeed3222a985651e3465bc06f839ce7/pandas-3.1.0-cp315-cp315t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bbb121205af7bc5e587b94a07b5f67b5ba687a918665b9e8748f21388a88b044", size = 11850193, upload-time = "2026-10-22T11:56:51.558Z" }, + { url = "https://files.pythonhosted.org/packages/14/89/8c820bd6fb6ad8f0edb2877639bc7e164bfb4b8e4cdf7a2202f54959ea1b/pandas-3.1.0-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:684ef3add5a92abb99c1622f2bd04b54b8843075a266e8240106ca94ce1d1237", size = 12394022, upload-time = "2026-10-22T11:56:53.785Z" }, + { url = "https://files.pythonhosted.org/packages/92/f5/9d753d85c4ea85b6d1c3735496ae5b416d7ef6905f1845c70e9521d124d9/pandas-3.1.0-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:dde9a55ecd3c4f9100ac50ab15e852e4c54fcf372d800e4495e0b2159a0122ab", size = 12916085, upload-time = "2026-10-22T11:56:56.084Z" }, + { url = "https://files.pythonhosted.org/packages/e6/f9/4a6965677477dbbb19f8881befb01b67eb6009809db73f7f1b7a0132faf1/pandas-3.1.0-cp315-cp315t-win_amd64.whl", hash = "sha256:3fe234bfb9999552dc54c45851752e56e163218d7663897dca950b4a7c32af39", size = 11267097, upload-time = "2026-10-22T11:56:58.479Z" }, + { url = "https://files.pythonhosted.org/packages/99/35/e60fd8228db4eb848802988dbc6e3a0f1a81c57f06ad95ebe4cd534fa655/pandas-3.1.0-cp315-cp315t-win_arm64.whl", hash = "sha256:f1a93c24175129bfc9922ef748ddae1d8137c743ed835e2615be329f606fed4d", size = 10597861, upload-time = "2026-10-22T11:57:00.776Z" }, ] [[package]] @@ -7242,6 +7374,11 @@ wheels = [ name = "pillow" version = "12.3.0" source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.11' and sys_platform == 'darwin'", + "(python_full_version < '3.11' and sys_platform == 'linux') or (python_full_version < '3.11' and sys_platform == 'win32')", + "python_full_version < '3.11' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", +] sdist = { url = "https://files.pythonhosted.org/packages/1c/3d/bb7fca845737cf9d7dbde16ed1843984665ff2e0a518f5db43e77ec540b9/pillow-12.3.0.tar.gz", hash = "sha256:3b8182a766685eaa002637e28b4ec8d6b18819a0c71f579bf0dbaa5830297cce", size = 47025035, upload-time = "2026-07-01T11:56:38.965Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/25/c2/669d88644cddb1485bd9534e63e8cf476c8e51cb3c3a1297677023505c0e/pillow-12.3.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:6c0016e7b354317c4e9e525b937ac8596c38d2d232b419529b9cd7a1cd46e39a", size = 5392418, upload-time = "2026-07-01T11:53:27.808Z" }, @@ -7332,6 +7469,114 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/36/54/0169bc772ec491108b62f644f8ecf1fe5d8ae5ebafde2ee2142210166903/pillow-12.3.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:04f01d28a6aaff387bf842a13be313df23ba0597a44f1a976c9feb3c6ff4711a", size = 7231786, upload-time = "2026-07-01T11:56:35.046Z" }, ] +[[package]] +name = "pillow" +version = "13.0.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.14' and sys_platform == 'darwin'", + "(python_full_version >= '3.14' and sys_platform == 'linux') or (python_full_version >= '3.14' and sys_platform == 'win32')", + "python_full_version == '3.13.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'darwin'", + "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'", + "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", + "(python_full_version == '3.12.*' and platform_machine != 'x86_64' and sys_platform == 'linux') or (python_full_version == '3.12.*' and sys_platform == 'win32')", + "(python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'linux') or (python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'win32')", + "(python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'linux') or (python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'win32')", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", +] +sdist = { url = "https://files.pythonhosted.org/packages/ce/a4/9cc30690a394a8305e8be4c9036aa16d0dfddadd09079860b582f562496d/pillow-13.0.0.tar.gz", hash = "sha256:cdcd1ba258178f7356d74170c9a81ba4eab6a5d55748bc402a5a2a6fe6be3510", size = 47058631, upload-time = "2026-10-16T22:18:09.718Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6c/d7/af6af1b8cc55e07cb0489d5b0950bf5a9bb1461eeba825700b6d8d0e26ea/pillow-13.0.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:6f38f3f885a09cafc93fd667b1173a92f379e43785d635e7983c893f0da319fb", size = 5592324, upload-time = "2026-10-16T22:15:24.672Z" }, + { url = "https://files.pythonhosted.org/packages/0b/d2/2c12cb4fbb5d95f38d1001ff3d95fafcb830077018cba40e56a8f932dfbc/pillow-13.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:37290fbef0c73e2d51d594eb78fded7dc7170d1c3ad0a890269e6fd8c8c4e061", size = 4856298, upload-time = "2026-10-16T22:15:27.669Z" }, + { url = "https://files.pythonhosted.org/packages/5c/ee/229b27472483a4801ea94990815e710391836afdf987b4b722b62bd75db6/pillow-13.0.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7c88c10dd432f3b39ccdafc9ed81d0c21b8fd634502574da76d1bfa4fe2c76d0", size = 6517304, upload-time = "2026-10-16T22:15:29.43Z" }, + { url = "https://files.pythonhosted.org/packages/36/46/f509b74787f40ce0627501089d630b2c741b63b244c1f40b640b3b01e181/pillow-13.0.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a625df9a2a5597fa5e5266e01aefc82604bb85d291e3547981e863560d75da6c", size = 7140667, upload-time = "2026-10-16T22:15:31.368Z" }, + { url = "https://files.pythonhosted.org/packages/aa/a4/5a398b8ec2c37145397d6461c0b551c23ec03072aa64f357aed25e582b00/pillow-13.0.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:10b5019883c98f1dd819ca48ffc6f33a91cee04948fe637c605f4345c7cafd6f", size = 6610583, upload-time = "2026-10-16T22:15:34.025Z" }, + { url = "https://files.pythonhosted.org/packages/4f/7b/f2f1109b230fd4e2d57ab2305de31adc37ea9b4ff8719436c623cb484415/pillow-13.0.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f391dc92a015c478745192fe4f2e120c2af2aba18d9fe0616341cbf537599806", size = 7218241, upload-time = "2026-10-16T22:15:36.214Z" }, + { url = "https://files.pythonhosted.org/packages/ab/d3/069edb9083b267746baf59756282cacef904d3475c5288c7216fb5195a98/pillow-13.0.0-cp311-cp311-win32.whl", hash = "sha256:6a0920cb55df5a4d3f6862964908078c0bd59332bdd1bcd20d14e8c70ef27cc5", size = 6515278, upload-time = "2026-10-16T22:15:38.129Z" }, + { url = "https://files.pythonhosted.org/packages/7d/f6/6e2d96413e4c9dbec12ea584d9e646d602877d4cce3ea669099f959deac6/pillow-13.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:d7710eb676e9bb68965cb045be0d333b4c0d7f9dfbaa7fbf121385b1588683d3", size = 7278471, upload-time = "2026-10-16T22:15:40.286Z" }, + { url = "https://files.pythonhosted.org/packages/70/e7/baff21f8cb60496c8c250609501b88919eeedb4088d3da106f6c62f3f3c0/pillow-13.0.0-cp311-cp311-win_arm64.whl", hash = "sha256:12fbb851cf323cc19aac3eea1df5ad17b57e91e9fe3cfd06100dba7bb8208c13", size = 2698981, upload-time = "2026-10-16T22:15:42.637Z" }, + { url = "https://files.pythonhosted.org/packages/7a/b8/58d79332229482eb0d27c82973850808c19d37e5bdc14443d3417bd373f5/pillow-13.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:67c8d44ad89fa7eb88de5d6ef6199b1e03dd24974f85a67639fc8badb801fe79", size = 5568643, upload-time = "2026-10-16T22:15:44.474Z" }, + { url = "https://files.pythonhosted.org/packages/39/4b/f2ed53d83aa44ac19599ac0a54897f867fafb95f406980d1e24083f8cbe3/pillow-13.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:fc481f742ccda20e9ed760b8f978dff50f2a4e9bc253ac167fb0a05b0783ef52", size = 4852329, upload-time = "2026-10-16T22:15:46.284Z" }, + { url = "https://files.pythonhosted.org/packages/3b/bb/9e30e8ed18c20800ee327a12107d5249ad8dc444867b3adfcc21654e3c71/pillow-13.0.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8bf295fe459343bc6093c8e5e0df60bfa189e0fcb775a22e2c2488fdeccc6c0d", size = 6519309, upload-time = "2026-10-16T22:15:48.14Z" }, + { url = "https://files.pythonhosted.org/packages/e6/99/fdf65cc539e266ab93546c261bdf98411fe165c6e4e13f9dbf597097192b/pillow-13.0.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:42d63be3af4f9b951b199b0a9d23365d37ab14687e6d77b74940432c8515c4ca", size = 7144542, upload-time = "2026-10-16T22:15:50.093Z" }, + { url = "https://files.pythonhosted.org/packages/26/9b/f38b7c4d8f599537e2d1a6d546cec9beef7536ff8f5c49a3f9c78179d8ac/pillow-13.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:4bd024d567eca931b668978d672dba914d4b8e2628e2c3073a2ad178de8a2620", size = 6618042, upload-time = "2026-10-16T22:15:52.054Z" }, + { url = "https://files.pythonhosted.org/packages/a8/7c/45ee28531f89ee4582967d8a17f7a26d71ca64cd902b93c269590cd60a00/pillow-13.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:23edf4ec4b6f4f240e8df6e4985e9ee2ced86474632433e55fb1e2548744bf40", size = 7228137, upload-time = "2026-10-16T22:15:54.009Z" }, + { url = "https://files.pythonhosted.org/packages/01/bc/9c2a969cb1b70201d04fa17fd5aedf02a732870b8da86bceaaa30b0ca385/pillow-13.0.0-cp312-cp312-win32.whl", hash = "sha256:02464da86f561f410e13b061ec37c3068a9cb557a095494157742d07b3c24a27", size = 6515423, upload-time = "2026-10-16T22:15:56.25Z" }, + { url = "https://files.pythonhosted.org/packages/ff/cd/73a79ecdc822076002eb24b5e1e4a530b0bb5310fcb6d239abbec877110b/pillow-13.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:ff3fe9eb621fbb9db4c4be33ab946f6bac5f98ab50ca8d3260503653656c961b", size = 7272166, upload-time = "2026-10-16T22:15:58.597Z" }, + { url = "https://files.pythonhosted.org/packages/4a/a3/be5a1236efd085b3984e4305da8f179ae9dab80c991d2ad78f2bd5c4c843/pillow-13.0.0-cp312-cp312-win_arm64.whl", hash = "sha256:c3bc8ee0271387e0b1e3ad0ff893645990a656e79bf9c42f4f734a3642b11d51", size = 2698943, upload-time = "2026-10-16T22:16:00.637Z" }, + { url = "https://files.pythonhosted.org/packages/82/e2/9132d38df320e8099e2642d9fa538f18a7dfebf68a875a31725dc2a115aa/pillow-13.0.0-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:e98b4f91f99b24b1da72e10621ba181f7281922384a7403094debb4199de6c00", size = 4190620, upload-time = "2026-10-16T22:16:02.527Z" }, + { url = "https://files.pythonhosted.org/packages/cb/be/436dac0996876f65ef1916ffb711c5ef4af2ebc57414b6f16642e07f6b47/pillow-13.0.0-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:34fb3db1149c879343861831728c243c432d4a5afc8f1878ca7612ef8de2a033", size = 4290286, upload-time = "2026-10-16T22:16:04.861Z" }, + { url = "https://files.pythonhosted.org/packages/60/16/7c1007162e4169ea0d5bec47e2e0b2174f56c50cf5b8c02a1dc23e41037e/pillow-13.0.0-cp313-cp313-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:2d50500a4a3bc6469adcdb319cf05d688b08ca3bf0f22a05339f3b25b433a599", size = 3723169, upload-time = "2026-10-16T22:16:06.956Z" }, + { url = "https://files.pythonhosted.org/packages/08/bc/578ab2eaa04705a8978bd9be0fe15c3d43a8fc95097c4f7e39540e79e4fa/pillow-13.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ef5fe6b7db3f501c56000ba8fe7c7e1a35ca1d45824fbeb95a67daa85cff4dbe", size = 5568469, upload-time = "2026-10-16T22:16:08.664Z" }, + { url = "https://files.pythonhosted.org/packages/98/c8/ccede3dcc4f274b80fb49199eed1ef34ba05566c8b71976b9d1f111da2e3/pillow-13.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f11a3c1358bb3c68012a7b1f41b223c3db9f7bfde90b481df028cfe1c3363313", size = 4852187, upload-time = "2026-10-16T22:16:10.693Z" }, + { url = "https://files.pythonhosted.org/packages/fb/3c/cd0770e96d20bfd990db024bcbd43897ff3e88da1f4782cf90ea231b1d4f/pillow-13.0.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:19b66ca0a4d25cc0200b381ce824c7ea090db61427315e73cfb05dbf1b35c369", size = 6515908, upload-time = "2026-10-16T22:16:12.896Z" }, + { url = "https://files.pythonhosted.org/packages/ef/fe/f5cdaa2d1c4086e757430f368c271a58ee29cfe7378e7ae7b9d964015c25/pillow-13.0.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5f56499c1a74d2b862beb0c33b8016f99d095858455df9d21583bbbc1c15b582", size = 7142544, upload-time = "2026-10-16T22:16:14.844Z" }, + { url = "https://files.pythonhosted.org/packages/fb/b5/a54f6d44adbcd23737c8c12953f42be107e4cca64e247c0ca3a5b563061c/pillow-13.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a2a14cd73d5e6c927f644b0110ee81f59c4ef506259ec9183904747f2caacc81", size = 6613097, upload-time = "2026-10-16T22:16:16.893Z" }, + { url = "https://files.pythonhosted.org/packages/e6/b4/9e6c1207c21b2e91db0d15c16d30f3701ce5add1bd4da0e787761e66cb6e/pillow-13.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:08b826a9bf1265c76de04a42061d61ea6b109418b7826f28ff1ecdfaa26c5502", size = 7224846, upload-time = "2026-10-16T22:16:19.195Z" }, + { url = "https://files.pythonhosted.org/packages/78/9f/d3c3cb0518f3dd1eee0ef501535f53d15597a53c5c4118d178086143397a/pillow-13.0.0-cp313-cp313-win32.whl", hash = "sha256:12b0fa15879fe5a9d9eebe66e4e2d74128a773b1a4448010c9c714f45e04b9d8", size = 6516013, upload-time = "2026-10-16T22:16:21.389Z" }, + { url = "https://files.pythonhosted.org/packages/d7/ed/1b16fb66a37e1b9e41370b93b2c614c7da761a5b2a41dc333f7af4639962/pillow-13.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:9dda0788a9932776a75d8bcc020076edc308ce2508b51f6739a45e3158b3fc42", size = 7284777, upload-time = "2026-10-16T22:16:23.393Z" }, + { url = "https://files.pythonhosted.org/packages/87/7d/8d02eba9f7ecc87f8e90f731e032cc4773802f2a843763afd0c66a535ff4/pillow-13.0.0-cp313-cp313-win_arm64.whl", hash = "sha256:40a266371ece581e5de13b6635ef78d7487824af80561b6ca27694a88c19bc0f", size = 2698826, upload-time = "2026-10-16T22:16:25.382Z" }, + { url = "https://files.pythonhosted.org/packages/8e/45/fbad9c7f5e2f1745c373a434d46072bc84eddfefaa28b852425ac957fda6/pillow-13.0.0-cp314-cp314-ios_13_0_arm64_iphoneos.whl", hash = "sha256:44629d4498c9cb6b2051806155f22141df0d8a929c56134b166655232dfb2f8c", size = 4190721, upload-time = "2026-10-16T22:16:27.524Z" }, + { url = "https://files.pythonhosted.org/packages/a2/bf/2074902a259a90692c5dbf132885d21671644cbbd3f690047516243a55db/pillow-13.0.0-cp314-cp314-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:bf97ba1b5542050e9b0c74e632323b6d8136cc99d64e193abebee22fe6013c76", size = 4290236, upload-time = "2026-10-16T22:16:29.562Z" }, + { url = "https://files.pythonhosted.org/packages/ff/a5/3d1bb93b8ea38d15d21356c1b8e9f50971ac592aaa248f7fb71739094c0e/pillow-13.0.0-cp314-cp314-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:aa694c49787040943570d61c9b8fc01271bd2a2cfdd55f0d896f8aecdce1a981", size = 3723093, upload-time = "2026-10-16T22:16:31.249Z" }, + { url = "https://files.pythonhosted.org/packages/84/a1/be060135d85187b25fa8b2573786c0e45c62ae27527fff5257675eb97f4a/pillow-13.0.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:49c12af515073e9bf511e4ef736743bf70d531a643668722279314b937742ba4", size = 5572253, upload-time = "2026-10-16T22:16:33.103Z" }, + { url = "https://files.pythonhosted.org/packages/b5/f4/0bf6f1ac9ba7ee2ffe9914aeb410a1035a0c1a3c42f122388d7fc950bc4b/pillow-13.0.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:d9b0a2bee3f3e03e9f29057aedb807dbf1e1d96ee1b9d0f422d9db6c8583271d", size = 4852269, upload-time = "2026-10-16T22:16:35.102Z" }, + { url = "https://files.pythonhosted.org/packages/83/16/b603274617b3e6728da3a0133d4fba1ea8d7fbe0c4ea5fef9cbffa398b8b/pillow-13.0.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5933fcea5a5ba64c686f55c886a115cbfd92f2900460784a1e79909fdbafd7b6", size = 6516058, upload-time = "2026-10-16T22:16:37.228Z" }, + { url = "https://files.pythonhosted.org/packages/1d/f2/1371707ce438ba9a43f9d24089828494ec6f9396e28cd7903aa704dd6306/pillow-13.0.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e91c2b1cbeae768c98752e67e717e283d68dae45717b41f2d91eaee648e37b7d", size = 7142574, upload-time = "2026-10-16T22:16:39.172Z" }, + { url = "https://files.pythonhosted.org/packages/b9/a9/62cf68587f910bc87c5951bcb6e9430c7643a65076adf5f18b4bf350e2bd/pillow-13.0.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7f6299e494e46253d40c34653cac369412f44ca53b5f85d848d3f95b1ed0546c", size = 6614295, upload-time = "2026-10-16T22:16:41.117Z" }, + { url = "https://files.pythonhosted.org/packages/6c/c9/9e9b48178649730299be0bafbf5f810a5b6977538f5a92d47e4ba5f5d608/pillow-13.0.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:f9bd7d260d986f3553518c5d723544346fa48031f8aef3265d786aeb59845bc0", size = 7224841, upload-time = "2026-10-16T22:16:43.118Z" }, + { url = "https://files.pythonhosted.org/packages/8f/48/c44e91384b1b6c072a714a63d00608acc16a6a968735e478e4be4384e5ac/pillow-13.0.0-cp314-cp314-win32.whl", hash = "sha256:2e31c4e68cffd7b1f116127626813b82fcba19edf6b940a7b0c266d6484d0055", size = 6508694, upload-time = "2026-10-16T22:16:45.883Z" }, + { url = "https://files.pythonhosted.org/packages/50/e2/7ad17747517e4c813dca78257d6bb593466f8231baf1384bc98d92745edb/pillow-13.0.0-cp314-cp314-win_amd64.whl", hash = "sha256:f7cbb7a64e7ec664775195e4f81923bc8a93d9451b963f844e59118f63147a7a", size = 7281830, upload-time = "2026-10-16T22:16:47.725Z" }, + { url = "https://files.pythonhosted.org/packages/41/9f/e5b51f2ce8ef4563215334035403ce61a244f93a2e65c24a940131618f87/pillow-13.0.0-cp314-cp314-win_arm64.whl", hash = "sha256:a6aaa7871aebca081eb5c45f83e845bbd9712ae99fa9286dbfdcee835e63f4b4", size = 2695468, upload-time = "2026-10-16T22:16:49.515Z" }, + { url = "https://files.pythonhosted.org/packages/97/73/a53502f731f6c84805a4ce87a8881e86d07a65aee64728b900d112dc703e/pillow-13.0.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:7b999816b5850a35ada08443e6e03945f1f6488144a83afe2d37b240a552aafa", size = 5578196, upload-time = "2026-10-16T22:16:51.291Z" }, + { url = "https://files.pythonhosted.org/packages/21/50/7e949959a56b5559c78ef172b70fc6025706acb289f3f648a15329e4fa6f/pillow-13.0.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:67871a13cf47275201553b536c025da777f997fa562a19eb798af4ad4b97c18f", size = 4857276, upload-time = "2026-10-16T22:16:53.399Z" }, + { url = "https://files.pythonhosted.org/packages/c9/52/43ded0ac08e77e39d17bd6d894162572201b5e8fdc4a022b14c55a1960a4/pillow-13.0.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e8ca8f69b7c77fa96dad99f8638c1fc4f1c0bed4acaa1baf7a3c31bdb80a0ab1", size = 6607008, upload-time = "2026-10-16T22:16:55.525Z" }, + { url = "https://files.pythonhosted.org/packages/0d/2e/4a57ed216d5bf877387cba4d44c02aa87abe51ad2e06404aa6b597c4da39/pillow-13.0.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6bce6a29c3898191f4c9998e4d4e8f69790caeabde46e54da4bc235ce5bde683", size = 7224281, upload-time = "2026-10-16T22:16:57.738Z" }, + { url = "https://files.pythonhosted.org/packages/5c/3d/2929b248e135752d63aaeabf53f6de797e905b7b6263f9c1e2adade20aba/pillow-13.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:816752a5ef76a80484c8c441c85593b7ea9304f6231fc5776ad1fbff7e773058", size = 6695600, upload-time = "2026-10-16T22:16:59.842Z" }, + { url = "https://files.pythonhosted.org/packages/bc/33/fb0da992cf084ed1ee6ee05e96b6191e35c351eb707ca2df874feb24ce47/pillow-13.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:5bdb38ba220b61b4ec31dd1046dea6b016d3c6850a23f43ed8b58332b2fc668e", size = 7300589, upload-time = "2026-10-16T22:17:01.686Z" }, + { url = "https://files.pythonhosted.org/packages/bb/af/c30dd9ef6a3dce84ecb1b2393cac629047a32e66279056c6cb46c3ffd65c/pillow-13.0.0-cp314-cp314t-win32.whl", hash = "sha256:06903aac074d00c988e77a1fc435286dc498506d4ca8d6f69df9babddf4ecc15", size = 6517204, upload-time = "2026-10-16T22:17:03.722Z" }, + { url = "https://files.pythonhosted.org/packages/85/d5/ef3a8ae7609c8ab26570abf18194882534b480d245a9148b895a2262c004/pillow-13.0.0-cp314-cp314t-win_amd64.whl", hash = "sha256:9a635068d9793c7f0d929f39f18b58f1bd86c236e8e7b64167b86af9232ebca0", size = 7286695, upload-time = "2026-10-16T22:17:05.543Z" }, + { url = "https://files.pythonhosted.org/packages/84/3c/0861db0c69a03689ebe3e7599d35668a414deb5aaafd8255215e4e62e3d3/pillow-13.0.0-cp314-cp314t-win_arm64.whl", hash = "sha256:0d1a9cf7bc6917538b20f8d06b9ab2147e542f68849e96fc58eb66bdf6acc692", size = 2698098, upload-time = "2026-10-16T22:17:07.674Z" }, + { url = "https://files.pythonhosted.org/packages/6e/eb/e86a41962a3a31ad495a3d6a912d9002b01bba4a6fa71c28703abdca7f69/pillow-13.0.0-cp315-cp315-ios_13_0_arm64_iphoneos.whl", hash = "sha256:7d5e097eabd5d4915c27ac9f6e9325bb1e01a7c94d7348b5c4451d3fc30e8521", size = 4191213, upload-time = "2026-10-16T22:17:09.449Z" }, + { url = "https://files.pythonhosted.org/packages/dd/04/7e7445e706afec84ef06dc25b2c77f9cecff242c23730c62928ad1089d4a/pillow-13.0.0-cp315-cp315-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:51ebb529fc5e8abdd55302f6c3f8943037348ec2384329a3e55677f69ae2fdfc", size = 4290650, upload-time = "2026-10-16T22:17:11.196Z" }, + { url = "https://files.pythonhosted.org/packages/46/85/d534089068ac40c0f61f650389a296c812eab745a8a733f81feec39ae955/pillow-13.0.0-cp315-cp315-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:c87a04e7f152ee4db5dbe15f0bfa3fe628a1aeedbe66b81c43b87f52c813f9ac", size = 3723078, upload-time = "2026-10-16T22:17:12.772Z" }, + { url = "https://files.pythonhosted.org/packages/ce/2b/00b5c3b401df538b5dbe311d3899730fae5ba1e21cb8b80a128887ac6747/pillow-13.0.0-cp315-cp315-macosx_10_15_x86_64.whl", hash = "sha256:20722cd5375533ad754053363a80b8fb30c79d37930a6f7228030e237ce3bd5d", size = 5572292, upload-time = "2026-10-16T22:17:14.539Z" }, + { url = "https://files.pythonhosted.org/packages/72/f5/a6b0610f946e9b54ae888ba7ad29d6e2f8d9b11f69e212d70416b7186c09/pillow-13.0.0-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:04a63720f79e22fd54d897c233a68314c50ca0603360f54ce2bd5db8f0f43782", size = 4852222, upload-time = "2026-10-16T22:17:16.521Z" }, + { url = "https://files.pythonhosted.org/packages/1e/d0/c0ff25bb0427ec70f32aac995453321fc3c4494a46c7292ff02d9d260b04/pillow-13.0.0-cp315-cp315-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4f8db54177035a2b5f717f94475b74907e12a96dc74f6d487f3966b0a4694071", size = 6527349, upload-time = "2026-10-16T22:17:18.534Z" }, + { url = "https://files.pythonhosted.org/packages/85/11/e46fa0bcc0fc117f1eacc206b3d51f04d583fab328b4b740672d0438d83f/pillow-13.0.0-cp315-cp315-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8f36aa77f74b14a2103622b196402c71330e4e7cf4122ee45c854e9a01e0eecf", size = 7152873, upload-time = "2026-10-16T22:17:20.415Z" }, + { url = "https://files.pythonhosted.org/packages/7c/53/2bdeca705f3a58679fa9201233193c86a30238340ca29b3a152c3fcc719b/pillow-13.0.0-cp315-cp315-musllinux_1_2_aarch64.whl", hash = "sha256:149a1c323ba366f90b48e6f1a6db6582eb50512df374588de56fc909abc0f0f3", size = 6626871, upload-time = "2026-10-16T22:17:22.361Z" }, + { url = "https://files.pythonhosted.org/packages/14/de/3829030f209722ade3753bb456b805a0e7f885cf885b483407365c82e9ca/pillow-13.0.0-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:e892354a424b1e82a78ba16785822bdd40de06f19446a3d4a28047df1a4f8932", size = 7236439, upload-time = "2026-10-16T22:17:24.352Z" }, + { url = "https://files.pythonhosted.org/packages/44/b1/67fc37388382bc036a74f04da5bb6fcbf90ec3ac1f45893e06176c373fd3/pillow-13.0.0-cp315-cp315-win32.whl", hash = "sha256:8e459b613cf31f8980f584387b4fe47bf08e076e288d61aa8eba1f7fd4ddbb81", size = 6508688, upload-time = "2026-10-16T22:17:26.314Z" }, + { url = "https://files.pythonhosted.org/packages/44/05/fdb6a79aee10861165526b41b7b440e36ee1ff58613b2fbefe3acbf06d4f/pillow-13.0.0-cp315-cp315-win_amd64.whl", hash = "sha256:d4737f50d23ddd11d6685faacbb9252887dde0bc7997127757247983d74399d6", size = 7281107, upload-time = "2026-10-16T22:17:28.198Z" }, + { url = "https://files.pythonhosted.org/packages/e6/9c/6c6f7dc2a566467baf121394e83de25ac287cffe34cc030726beb4be0224/pillow-13.0.0-cp315-cp315-win_arm64.whl", hash = "sha256:2310e2adfc13c6d457d7d0f2ffdd5c56a74a317650cf765887df8d515a647ac0", size = 2695513, upload-time = "2026-10-16T22:17:30.013Z" }, + { url = "https://files.pythonhosted.org/packages/23/16/e9120defdb8bff693b582d035312acc6f530cdc2bc5238a87f410efccd82/pillow-13.0.0-cp315-cp315t-macosx_10_15_x86_64.whl", hash = "sha256:21c32061a5512dc13f87cc7303e120e4d77c2f70df89a35af0e3ce246e5ac57f", size = 5578129, upload-time = "2026-10-16T22:17:31.642Z" }, + { url = "https://files.pythonhosted.org/packages/47/22/76faf2bb2448f48a84cf894c1e2bb1090d7d2b1aa521ece131cb2f05d631/pillow-13.0.0-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:1c774b9c0ba0d0b356f71530677b39028878a2cae5a93e0a13779cfd17120f88", size = 4857428, upload-time = "2026-10-16T22:17:33.43Z" }, + { url = "https://files.pythonhosted.org/packages/b3/64/0861ea4e03c50b14af9ed9dd8b9f388ab42f445c623a9fcbab19aef7aa55/pillow-13.0.0-cp315-cp315t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:20822140c9a2ba9c5e42df342b0a892ab2e102fc0e3db967a133bb9ce3f898bb", size = 6612582, upload-time = "2026-10-16T22:17:35.415Z" }, + { url = "https://files.pythonhosted.org/packages/5c/20/cd1e9b3f60a9f3d5ebe46da36955c26004092a501f7f2c42f9fcc26611bc/pillow-13.0.0-cp315-cp315t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ffea6b2986a797c84b6d1d27d4f43e0b83c73fc16281a930891cd237cf0d08fe", size = 7230176, upload-time = "2026-10-16T22:17:37.362Z" }, + { url = "https://files.pythonhosted.org/packages/b6/ef/ffb0a2fc85690714fb7ac662956949645d57f15bf4426f520da361e7b6e3/pillow-13.0.0-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:05cd2cd39055d0b9650060e4513ef4a9a0aea870083950bd046a0d6490f93a22", size = 6703640, upload-time = "2026-10-16T22:17:39.313Z" }, + { url = "https://files.pythonhosted.org/packages/e0/c2/6402ee3ccb3363aeed8fdb3f9fe56703ac5377a539f0b81b53999d7e121f/pillow-13.0.0-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:c6fd031333dedcad7ce3e03d244093f43504f209e86925ebdb2b868fa4037630", size = 7309231, upload-time = "2026-10-16T22:17:41.021Z" }, + { url = "https://files.pythonhosted.org/packages/fc/96/d6b82e8b8c06ad143b66b12e0b31051e4bf489b4fabca1f390a14fe1ebde/pillow-13.0.0-cp315-cp315t-win32.whl", hash = "sha256:c50c80e3591e5cf9a8dfa6007d4f10732f02e32263850999286e56ccd650cfb2", size = 6517200, upload-time = "2026-10-16T22:17:42.886Z" }, + { url = "https://files.pythonhosted.org/packages/60/d4/0062e6005e9b270b165015aafd343364ac378ec5a685431ea42baad33357/pillow-13.0.0-cp315-cp315t-win_amd64.whl", hash = "sha256:adb3c2124c68e480f4632d06cb7caa3b48a51678475f483b4edb1c6dee29ea43", size = 7287488, upload-time = "2026-10-16T22:17:45.56Z" }, + { url = "https://files.pythonhosted.org/packages/e4/81/b8eb349746be7bce47dd95337c6634e84910af91b59aaa9159c034c614fa/pillow-13.0.0-cp315-cp315t-win_arm64.whl", hash = "sha256:4a25756244bdcce3b50580baadf320fa48297f0eeb8e114ba64139a40d4d0fc8", size = 2698073, upload-time = "2026-10-16T22:17:47.556Z" }, + { url = "https://files.pythonhosted.org/packages/68/c0/fb7b1caf25ed5ac5d46116f09b8b0706b9559833c65c667cecb1a53153f2/pillow-13.0.0-pp311-pypy311_pp80-macosx_10_15_x86_64.whl", hash = "sha256:405be6058e206a86fedce2f715ecc2343f94072d7925251632dffa2c05f70dca", size = 5521630, upload-time = "2026-10-16T22:17:50.008Z" }, + { url = "https://files.pythonhosted.org/packages/1a/e6/4d11d5b1137f4fc080605cce410cfaae4f303ad400bdec75d27d3083fa29/pillow-13.0.0-pp311-pypy311_pp80-macosx_11_0_arm64.whl", hash = "sha256:b84be41387fc00db28c13c02e30d42b02d8d8f6a4a741a1aee6012ca7f1f6039", size = 4806023, upload-time = "2026-10-16T22:17:51.932Z" }, + { url = "https://files.pythonhosted.org/packages/f1/45/0923202a658e8ff6aafd72c1a4395ebadcdebaa182c437d8595d3dd3db32/pillow-13.0.0-pp311-pypy311_pp80-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a192360d512305fe92d3053e4f7627bbad1f7708f1f4ad38cccd9336acabe9ad", size = 5464831, upload-time = "2026-10-16T22:17:53.742Z" }, + { url = "https://files.pythonhosted.org/packages/07/52/d3e38f0cad1dadea2a658b9a7d6ba8a04048f5ae14f011b806e5c3bd6bcb/pillow-13.0.0-pp311-pypy311_pp80-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:83b37abd87b590acd8f47ca8a61f70893322b11834d36e07c2298dacad4d14d2", size = 6043133, upload-time = "2026-10-16T22:17:55.625Z" }, + { url = "https://files.pythonhosted.org/packages/c4/f9/2ed7685980c1d64f8131a7d87a19c369424747577152622b73ddeff163b7/pillow-13.0.0-pp311-pypy311_pp80-win_amd64.whl", hash = "sha256:73ee25cf8cf8b75d5a5aeed7cb6588f5e5dbfbb0fde51707b630bbb23897645c", size = 7365208, upload-time = "2026-10-16T22:17:57.509Z" }, + { url = "https://files.pythonhosted.org/packages/60/da/f6d644e631c5b370c5d0b899f3ccadd2780aab070b29a110527cf4e1fd2c/pillow-13.0.0-pp312-pypy312_pp80-macosx_10_15_x86_64.whl", hash = "sha256:8619685cad8efc4c38c66d3b36aad854523297c43d748b3b6f0cc03c90ba3463", size = 5523188, upload-time = "2026-10-16T22:17:59.334Z" }, + { url = "https://files.pythonhosted.org/packages/e4/b0/2594f202d743a35d4fe80682bfd96f277e5ca7aecb27cf64ef5bfc1d000b/pillow-13.0.0-pp312-pypy312_pp80-macosx_11_0_arm64.whl", hash = "sha256:7e91e97a929232cdb828889ee6ad0e48d7f40f4ec38818f4e4a8968b2b1af22e", size = 4806808, upload-time = "2026-10-16T22:18:01.188Z" }, + { url = "https://files.pythonhosted.org/packages/8e/ed/d504165ef79af6fafe25c76726cf30f544cc236002f7ed054f1d51adc4ff/pillow-13.0.0-pp312-pypy312_pp80-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:93ff9c9c3663ce23aaa5d0b6b6abac55359e2a0c06c7e30f3771829af816be63", size = 5464358, upload-time = "2026-10-16T22:18:02.779Z" }, + { url = "https://files.pythonhosted.org/packages/7b/fe/a10aba5503ca13e9e009b8bd0a1a4ce5584bdce246245fd6f3a83701369c/pillow-13.0.0-pp312-pypy312_pp80-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e65dd6e75de67b2362a4fa3e16aa627595f65054dc4ec73d64680c84d592fa61", size = 6043514, upload-time = "2026-10-16T22:18:04.538Z" }, + { url = "https://files.pythonhosted.org/packages/c0/37/66b12dc476041fe523bca29c9d58fbf1ea92a4eaf73acfb9e993948f1191/pillow-13.0.0-pp312-pypy312_pp80-win_amd64.whl", hash = "sha256:567f20f1c75897d7663830da6ea8af719e03d712b1d9ee7f813319f9ece42e5a", size = 7366030, upload-time = "2026-10-16T22:18:06.638Z" }, +] + [[package]] name = "pkginfo" version = "1.13.3" @@ -7362,19 +7607,19 @@ source = { registry = "https://pypi.org/simple" } resolution-markers = [ "python_full_version >= '3.14' and sys_platform == 'darwin'", "(python_full_version >= '3.14' and sys_platform == 'linux') or (python_full_version >= '3.14' and sys_platform == 'win32')", - "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.13.*' and sys_platform == 'darwin'", - "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", - "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'darwin'", + "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'", + "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", "(python_full_version == '3.12.*' and platform_machine != 'x86_64' and sys_platform == 'linux') or (python_full_version == '3.12.*' and sys_platform == 'win32')", - "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", - "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'darwin'", "(python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'linux') or (python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'win32')", - "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", - "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'darwin'", "(python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'linux') or (python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'win32')", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", ] sdist = { url = "https://files.pythonhosted.org/packages/58/e6/d0abbb256b44e6a05748c6942511ff67db8dbb068de0c35b24bf1b395b09/platformdirs-4.13.5.tar.gz", hash = "sha256:05831adf87d392760f4b5c3a0a95579ab5a10b18b9b9bd43680dcb47544788a0", size = 62362, upload-time = "2026-10-19T01:02:11.778Z" } @@ -7384,7 +7629,7 @@ wheels = [ [[package]] name = "playwright" -version = "1.64.0" +version = "1.64.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "greenlet" }, @@ -7392,14 +7637,14 @@ dependencies = [ { name = "pyee", version = "14.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, ] wheels = [ - { url = "https://files.pythonhosted.org/packages/cc/b7/24e5c283694e7a63aa376ddde395031decd7d627c77b34a58953176e8a19/playwright-1.64.0-py3-none-macosx_10_13_x86_64.whl", hash = "sha256:d76a501c9930b5a097b00e2448cda2200122a1e8e4be762ff535c1b076277737", size = 44347913, upload-time = "2026-10-13T23:35:20.723Z" }, - { url = "https://files.pythonhosted.org/packages/b4/b3/99f6c07a7f59adb3830e42cda2e2093dc1c2cbd1f69fe4393ead30c88257/playwright-1.64.0-py3-none-macosx_11_0_arm64.whl", hash = "sha256:8de42430e9a7c8b04ec963856d484d36ffd452882318ebad2df3e6fb49a8197a", size = 43014183, upload-time = "2026-10-13T23:35:24.195Z" }, - { url = "https://files.pythonhosted.org/packages/ed/f4/e0ddecd32342cac462777ef9123de833486743709bd437458c49e004d750/playwright-1.64.0-py3-none-macosx_11_0_universal2.whl", hash = "sha256:61e4e0801bfd76b30e04635aaec45647df707881ccf14382471fcb0eaeb1d16f", size = 44347915, upload-time = "2026-10-13T23:35:27.476Z" }, - { url = "https://files.pythonhosted.org/packages/65/8b/78c19b805d52323122385b9c3f000144608deac38635455978af6d14807b/playwright-1.64.0-py3-none-manylinux1_x86_64.whl", hash = "sha256:5a59af1b230b234008524a5d42b613b233d4256f73bc1dd25bf3f11db0c81b75", size = 48286664, upload-time = "2026-10-13T23:35:30.981Z" }, - { url = "https://files.pythonhosted.org/packages/7f/7e/c100ee3c59ff42e3199880d77e8f59f3230fdb0dd1ecfd21a0a203bb5a68/playwright-1.64.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:727d20be6a0884e946b2471774dd960ec95519ba533e61329038526d9aea9a23", size = 47972215, upload-time = "2026-10-13T23:35:34.976Z" }, - { url = "https://files.pythonhosted.org/packages/c7/6e/3746bca44a77ad29fb4bf1722ad3345d5e936d5363d8daffbf23b226d3a4/playwright-1.64.0-py3-none-win32.whl", hash = "sha256:8b9f18dc1c23143ac0a5b3c59015db30e9413cc52e1ddddfc2836a7fbad7165a", size = 38675586, upload-time = "2026-10-13T23:35:38.665Z" }, - { url = "https://files.pythonhosted.org/packages/e9/be/1dd8a65e3713c50c64b2580f50494ece90a4a9ede6e23788ef120e54c1f2/playwright-1.64.0-py3-none-win_amd64.whl", hash = "sha256:2c14d105548876b15bea5e7eca77bf0d8ff4ba0c607c1ae931067f3d1b010369", size = 38675591, upload-time = "2026-10-13T23:35:42.078Z" }, - { url = "https://files.pythonhosted.org/packages/f1/53/683ee3eb28902208d1d0c1d2eb3d6ddd99bc0184063babc6a2a7886c5799/playwright-1.64.0-py3-none-win_arm64.whl", hash = "sha256:97a5c247f1130f3343f097caf3bb1e79358d6b6cfa3550d97ecd721d1905911a", size = 34593061, upload-time = "2026-10-13T23:35:45.768Z" }, + { url = "https://files.pythonhosted.org/packages/8d/c8/cc677856d89a0c077673b40ab915ed5597bf1347b205cabe70121c431ca9/playwright-1.64.1-py3-none-macosx_10_13_x86_64.whl", hash = "sha256:29453ff76e25c17d0b45658cacd6b92e9eec46e8db21e134fb3b7143df50f013", size = 44508971, upload-time = "2026-10-22T16:29:58.12Z" }, + { url = "https://files.pythonhosted.org/packages/72/4f/572bbbe60a5787ca61a84bad934c3ce19c08c2bc9c0e9781bf0d99cad1a6/playwright-1.64.1-py3-none-macosx_11_0_arm64.whl", hash = "sha256:59f7b041284ce8d1b72098ae50ca48a2d83692eec25154ab5ba79d4b6b4fe8a9", size = 43155232, upload-time = "2026-10-22T16:30:02.415Z" }, + { url = "https://files.pythonhosted.org/packages/44/fa/468f313a56d33a6420705147c8d47bef558f087856edf38c5b13eef8aa6c/playwright-1.64.1-py3-none-macosx_11_0_universal2.whl", hash = "sha256:6a6f99adad1ae40e6ee62efe89785db861ce7ddd57651521cb31894183cc4ae3", size = 44508977, upload-time = "2026-10-22T16:30:07.632Z" }, + { url = "https://files.pythonhosted.org/packages/15/b9/e481a34572933b5cf179d5637c98da488c732ee339dff5b73a0624d2e42b/playwright-1.64.1-py3-none-manylinux1_x86_64.whl", hash = "sha256:577b8d88778c245cfbd145ae17cf53044f084b1b46c55c69081d4069d56057e2", size = 48471931, upload-time = "2026-10-22T16:30:12.831Z" }, + { url = "https://files.pythonhosted.org/packages/0c/11/545f25e47ec54e1e8a2892ef9994fc2b298f909ab37b88578e3a1f87ac2e/playwright-1.64.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a29fda44725e11b0b625c4bff6458a1f6dbee97b88c9788d12e18a8344458c2d", size = 48150994, upload-time = "2026-10-22T16:30:18.297Z" }, + { url = "https://files.pythonhosted.org/packages/33/87/8ff7af99387ee72ae9b46a66ece7a0c0aa63f73320ecf6dd3dd087fa840a/playwright-1.64.1-py3-none-win32.whl", hash = "sha256:d3c48b31da426c2f3562d0919cb9ea4e5415f6dbd29d7211fa4d66cca24fbd2f", size = 38801828, upload-time = "2026-10-22T16:30:23.154Z" }, + { url = "https://files.pythonhosted.org/packages/96/0a/64db6851aa1852a4f76be28eea71d4e2bf9f3ce493ee2e66939426729046/playwright-1.64.1-py3-none-win_amd64.whl", hash = "sha256:5e240a79464434c9260957b9ef59a5808e02e96e3fcabdc717fd7485260b9730", size = 38801836, upload-time = "2026-10-22T16:30:28.092Z" }, + { url = "https://files.pythonhosted.org/packages/c5/4b/d7ddde9467a5fcfe6a0d3c954732332e98a4f4a9025fd42c8d091c16e5f9/playwright-1.64.1-py3-none-win_arm64.whl", hash = "sha256:983ccd085453ea5a7588193657fc349a6ffbf7bf7ba663fd58dc81e4aa3af9d9", size = 34693875, upload-time = "2026-10-22T16:30:32.724Z" }, ] [[package]] @@ -7761,19 +8006,19 @@ source = { registry = "https://pypi.org/simple" } resolution-markers = [ "python_full_version >= '3.14' and sys_platform == 'darwin'", "(python_full_version >= '3.14' and sys_platform == 'linux') or (python_full_version >= '3.14' and sys_platform == 'win32')", - "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.13.*' and sys_platform == 'darwin'", - "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", - "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'darwin'", + "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'", + "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", "(python_full_version == '3.12.*' and platform_machine != 'x86_64' and sys_platform == 'linux') or (python_full_version == '3.12.*' and sys_platform == 'win32')", - "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", - "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'darwin'", "(python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'linux') or (python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'win32')", - "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", - "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'darwin'", "(python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'linux') or (python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'win32')", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", ] sdist = { url = "https://files.pythonhosted.org/packages/ec/34/17c34cb38e5d940e38f0f0d9fdfa0e8a506676409ea9b85aff7e3079f831/pyarrow-26.0.0.tar.gz", hash = "sha256:0cccd36e00ea3afeb52ded61f2721ce71f604853d70c45365c58324eb773d6ae", size = 1239433, upload-time = "2026-10-09T08:26:25.315Z" } @@ -7885,11 +8130,43 @@ wheels = [ name = "pycparser" version = "3.11" source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.11' and sys_platform == 'darwin'", + "(python_full_version < '3.11' and sys_platform == 'linux') or (python_full_version < '3.11' and sys_platform == 'win32')", + "python_full_version < '3.11' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", +] sdist = { url = "https://files.pythonhosted.org/packages/da/a8/c5fdbeee588bb8ada9458774f43adf1bdd30bd59157055142183e769a024/pycparser-3.11.tar.gz", hash = "sha256:d875f09c3507d00e1aba0eecc6dcadc1352f30fff09dc6bff2f1c2935e97c2bc", size = 113796, upload-time = "2026-10-09T12:56:59.539Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/90/11/0e6f11117525ff0eec40ebac3d313376f102df93ca44ad9e893ee85e4f89/pycparser-3.11-py3-none-any.whl", hash = "sha256:51d5a8ba2be0bbe440b99d2112604c95bbbc3c2748a64260186c541e1729cd80", size = 51178, upload-time = "2026-10-09T12:56:58.131Z" }, ] +[[package]] +name = "pycparser" +version = "3.12" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.14' and sys_platform == 'darwin'", + "(python_full_version >= '3.14' and sys_platform == 'linux') or (python_full_version >= '3.14' and sys_platform == 'win32')", + "python_full_version == '3.13.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'darwin'", + "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'", + "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", + "(python_full_version == '3.12.*' and platform_machine != 'x86_64' and sys_platform == 'linux') or (python_full_version == '3.12.*' and sys_platform == 'win32')", + "(python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'linux') or (python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'win32')", + "(python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'linux') or (python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'win32')", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", +] +sdist = { url = "https://files.pythonhosted.org/packages/cb/27/eeb9f307bf07060f3d9f9aa0fb8c15b01bdfded0a941e4b2719c7f94cacd/pycparser-3.12.tar.gz", hash = "sha256:f03387877eab82ce01bbdfd0ba7252ee55a90b1c708d5129e2ce915475cf1db6", size = 158785, upload-time = "2026-10-22T13:40:03.56Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b6/ae/315bbeee126a769cbde43cf4908acb4b40408d8bf8bbf334dd7368d8dadf/pycparser-3.12-py3-none-any.whl", hash = "sha256:a076f3f489b39b43ed13563a1dafe42447445bec2e294154ec5c57fcdda4c85e", size = 62600, upload-time = "2026-10-22T13:40:02.021Z" }, +] + [[package]] name = "pydantic" version = "2.14.1" @@ -8062,9 +8339,9 @@ resolution-markers = [ "python_full_version < '3.11' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", ] dependencies = [ - { name = "pydantic" }, - { name = "python-dotenv" }, - { name = "typing-inspection" }, + { name = "pydantic", marker = "python_full_version < '3.11'" }, + { name = "python-dotenv", marker = "python_full_version < '3.11'" }, + { name = "typing-inspection", marker = "python_full_version < '3.11'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/68/ca/31c57507b13119d7d3cfa1576dad2911a4861e3be07b579395f4e9d393f9/pydantic_settings-2.15.0.tar.gz", hash = "sha256:694b793e84f766ba76a90ebdefc01d0a9a045dab0382bee70393da93712ad117", size = 261253, upload-time = "2026-08-07T09:24:57.419Z" } wheels = [ @@ -8078,26 +8355,26 @@ source = { registry = "https://pypi.org/simple" } resolution-markers = [ "python_full_version >= '3.14' and sys_platform == 'darwin'", "(python_full_version >= '3.14' and sys_platform == 'linux') or (python_full_version >= '3.14' and sys_platform == 'win32')", - "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.13.*' and sys_platform == 'darwin'", - "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", - "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'darwin'", + "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'", + "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", "(python_full_version == '3.12.*' and platform_machine != 'x86_64' and sys_platform == 'linux') or (python_full_version == '3.12.*' and sys_platform == 'win32')", - "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", - "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'darwin'", "(python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'linux') or (python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'win32')", - "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", - "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'darwin'", "(python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'linux') or (python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'win32')", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", ] dependencies = [ - { name = "pydantic" }, - { name = "python-dotenv" }, - { name = "typing-extensions" }, - { name = "typing-inspection" }, + { name = "pydantic", marker = "python_full_version >= '3.11'" }, + { name = "python-dotenv", marker = "python_full_version >= '3.11'" }, + { name = "typing-extensions", marker = "python_full_version >= '3.11'" }, + { name = "typing-inspection", marker = "python_full_version >= '3.11'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/05/ca/7817b4bf0c4b15c6a6ab8cdf4cb96c268335a8ca2f525de93b6ebe4c7d28/pydantic_settings-2.16.1.tar.gz", hash = "sha256:aff602a1886338c2df3d1e958e2193a8dc33cec75b91f202e83fd98484b4b0da", size = 303436, upload-time = "2026-10-20T11:37:19.024Z" } wheels = [ @@ -8122,17 +8399,17 @@ version = "13.0.1" source = { registry = "https://pypi.org/simple" } resolution-markers = [ "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'darwin'", - "(python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'linux') or (python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'win32')", - "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'darwin'", + "(python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'linux') or (python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'win32')", "(python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'linux') or (python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'win32')", - "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version < '3.11' and sys_platform == 'darwin'", "(python_full_version < '3.11' and sys_platform == 'linux') or (python_full_version < '3.11' and sys_platform == 'win32')", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version < '3.11' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", ] dependencies = [ - { name = "typing-extensions" }, + { name = "typing-extensions", marker = "python_full_version < '3.12'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/8b/04/e7c1fe4dc78a6fdbfd6c337b1c3732ff543b8a397683ab38378447baa331/pyee-13.0.1.tar.gz", hash = "sha256:0b931f7c14535667ed4c7e0d531716368715e860b988770fc7eb8578d1f67fc8", size = 31655, upload-time = "2026-02-14T21:12:28.044Z" } wheels = [ @@ -8146,17 +8423,17 @@ source = { registry = "https://pypi.org/simple" } resolution-markers = [ "python_full_version >= '3.14' and sys_platform == 'darwin'", "(python_full_version >= '3.14' and sys_platform == 'linux') or (python_full_version >= '3.14' and sys_platform == 'win32')", - "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.13.*' and sys_platform == 'darwin'", - "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", - "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'", + "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", "(python_full_version == '3.12.*' and platform_machine != 'x86_64' and sys_platform == 'linux') or (python_full_version == '3.12.*' and sys_platform == 'win32')", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", ] dependencies = [ - { name = "typing-extensions" }, + { name = "typing-extensions", marker = "python_full_version >= '3.12'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/1d/f1/fdedc2c75c3e31a330659c85e5793bb18b3397981fbf0844c6dee5b18926/pyee-14.0.0.tar.gz", hash = "sha256:76dd0f4314ecd27f02dc73589dea7fd3853f9b6176d8ef9b122860657e3602de", size = 98760, upload-time = "2026-08-13T04:26:11.021Z" } wheels = [ @@ -8204,7 +8481,7 @@ dependencies = [ { name = "grpcio" }, { name = "orjson" }, { name = "pandas", version = "2.3.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, - { name = "pandas", version = "3.0.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "pandas", version = "3.1.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "protobuf" }, { name = "python-dotenv" }, { name = "requests" }, @@ -8236,7 +8513,7 @@ name = "pyobjc-framework-cocoa" version = "12.2.2" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "pyobjc-core" }, + { name = "pyobjc-core", marker = "sys_platform == 'darwin'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/75/76/49c6da2c6a831020b4854ba20079d5a1030474bffc776b7b73c2eeff8c15/pyobjc_framework_cocoa-12.2.2.tar.gz", hash = "sha256:c96c0ef69a71afbbb0e6a7d594b455c5fe47d62e0db376ee7a2b4b828c16ace9", size = 3132831, upload-time = "2026-08-11T19:44:02.288Z" } wheels = [ @@ -8256,8 +8533,8 @@ name = "pyobjc-framework-coreml" version = "12.2.2" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "pyobjc-core" }, - { name = "pyobjc-framework-cocoa" }, + { name = "pyobjc-core", marker = "sys_platform == 'darwin'" }, + { name = "pyobjc-framework-cocoa", marker = "sys_platform == 'darwin'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/b7/3b/c835535e7aef41afc953e5597ea41e693b7bae80d753ab74b9721e07cba5/pyobjc_framework_coreml-12.2.2.tar.gz", hash = "sha256:3e6abe134634adbcc0c1e843826e42df86e63beb3bc7e8e4a914e93179ae1e75", size = 49750, upload-time = "2026-08-11T19:44:14.011Z" } wheels = [ @@ -8277,8 +8554,8 @@ name = "pyobjc-framework-quartz" version = "12.2.2" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "pyobjc-core" }, - { name = "pyobjc-framework-cocoa" }, + { name = "pyobjc-core", marker = "sys_platform == 'darwin'" }, + { name = "pyobjc-framework-cocoa", marker = "sys_platform == 'darwin'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/35/b1/426a37c7ae37280b3ffca2571fb48f211946aee2f4ca31a603ed1943c4a7/pyobjc_framework_quartz-12.2.2.tar.gz", hash = "sha256:810f97b210cfd93704d240860286dfd6df09f9f1c52525fc5c2166723aea3f9e", size = 3218295, upload-time = "2026-08-11T19:45:15.189Z" } wheels = [ @@ -8298,10 +8575,10 @@ name = "pyobjc-framework-vision" version = "12.2.2" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "pyobjc-core" }, - { name = "pyobjc-framework-cocoa" }, - { name = "pyobjc-framework-coreml" }, - { name = "pyobjc-framework-quartz" }, + { name = "pyobjc-core", marker = "sys_platform == 'darwin'" }, + { name = "pyobjc-framework-cocoa", marker = "sys_platform == 'darwin'" }, + { name = "pyobjc-framework-coreml", marker = "sys_platform == 'darwin'" }, + { name = "pyobjc-framework-quartz", marker = "sys_platform == 'darwin'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/ea/bf/31e8bcae94047b365592ab7533096a4025c0306a8a312b65bcbf57e073ec/pyobjc_framework_vision-12.2.2.tar.gz", hash = "sha256:a6bf78e8dca145c6a78fd8d5f925b6da54649a60a1464b81ff405bca4a08406b", size = 73289, upload-time = "2026-08-11T19:45:41.877Z" } wheels = [ @@ -8387,7 +8664,8 @@ name = "pytest-cov" version = "7.1.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "coverage", extra = ["toml"] }, + { name = "coverage", version = "7.16.2", source = { registry = "https://pypi.org/simple" }, extra = ["toml"], marker = "python_full_version < '3.11'" }, + { name = "coverage", version = "7.17.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "pluggy" }, { name = "pytest" }, ] @@ -8640,7 +8918,8 @@ version = "1.0.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "lxml" }, - { name = "pillow" }, + { name = "pillow", version = "12.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "pillow", version = "13.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "typing-extensions" }, { name = "xlsxwriter" }, ] @@ -8968,7 +9247,8 @@ dependencies = [ { name = "av", version = "18.1.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*'" }, { name = "av", version = "19.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, { name = "packaging" }, - { name = "pillow" }, + { name = "pillow", version = "12.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "pillow", version = "13.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "requests" }, ] sdist = { url = "https://files.pythonhosted.org/packages/b6/b1/ad4fc2260a3badd278b38d642f3b987412f1f6682f0ef2b31b0572d5caa8/qwen_vl_utils-0.0.14.tar.gz", hash = "sha256:9c7cad5ae803b3a10f8bb7194deb12aeacdd032f92f4224e880c73587a7346ad", size = 8453, upload-time = "2025-09-23T09:38:57.532Z" } @@ -8987,7 +9267,8 @@ dependencies = [ { name = "numpy", version = "2.5.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, { name = "omegaconf" }, { name = "opencv-python-headless" }, - { name = "pillow" }, + { name = "pillow", version = "12.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "pillow", version = "13.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "pyclipper" }, { name = "pyyaml" }, { name = "requests" }, @@ -9371,19 +9652,19 @@ source = { registry = "https://pypi.org/simple" } resolution-markers = [ "python_full_version >= '3.14' and sys_platform == 'darwin'", "(python_full_version >= '3.14' and sys_platform == 'linux') or (python_full_version >= '3.14' and sys_platform == 'win32')", - "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.13.*' and sys_platform == 'darwin'", - "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", - "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'darwin'", + "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'", + "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", "(python_full_version == '3.12.*' and platform_machine != 'x86_64' and sys_platform == 'linux') or (python_full_version == '3.12.*' and sys_platform == 'win32')", - "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", - "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'darwin'", "(python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'linux') or (python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'win32')", - "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", - "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'darwin'", "(python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'linux') or (python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'win32')", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", ] sdist = { url = "https://files.pythonhosted.org/packages/42/68/3bd46b8a5e01d3c2ebdf9c5e9497912e3fe0cde02bac21a7130ca866e403/rpds_py-2026.9.1.tar.gz", hash = "sha256:4793ef7f78268b124b73fa933440f01d258bbae01de9fa53e9080c9ab0425a12", size = 63948, upload-time = "2026-10-04T16:32:36.469Z" } @@ -9601,14 +9882,14 @@ resolution-markers = [ "python_full_version < '3.11' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", ] dependencies = [ - { name = "imageio", version = "2.38.0", source = { registry = "https://pypi.org/simple" } }, - { name = "lazy-loader" }, - { name = "networkx", version = "3.4.2", source = { registry = "https://pypi.org/simple" } }, - { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" } }, - { name = "packaging" }, - { name = "pillow" }, - { name = "scipy", version = "1.15.3", source = { registry = "https://pypi.org/simple" } }, - { name = "tifffile", version = "2025.5.10", source = { registry = "https://pypi.org/simple" } }, + { name = "imageio", version = "2.38.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "lazy-loader", marker = "python_full_version < '3.11'" }, + { name = "networkx", version = "3.4.2", 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'" }, + { name = "packaging", marker = "python_full_version < '3.11'" }, + { name = "pillow", version = "12.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "scipy", version = "1.15.3", 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.11'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/c7/a8/3c0f256012b93dd2cb6fda9245e9f4bff7dc0486880b248005f15ea2255e/scikit_image-0.25.2.tar.gz", hash = "sha256:e5a37e6cd4d0c018a7a55b9d601357e3382826d3888c10d0213fc63bff977dde", size = 22693594, upload-time = "2025-02-18T18:05:24.538Z" } wheels = [ @@ -9642,33 +9923,33 @@ source = { registry = "https://pypi.org/simple" } resolution-markers = [ "python_full_version >= '3.14' and sys_platform == 'darwin'", "(python_full_version >= '3.14' and sys_platform == 'linux') or (python_full_version >= '3.14' and sys_platform == 'win32')", - "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.13.*' and sys_platform == 'darwin'", - "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", - "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'darwin'", + "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'", + "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", "(python_full_version == '3.12.*' and platform_machine != 'x86_64' and sys_platform == 'linux') or (python_full_version == '3.12.*' and sys_platform == 'win32')", - "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", - "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'darwin'", "(python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'linux') or (python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'win32')", - "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", - "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'darwin'", "(python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'linux') or (python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'win32')", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", ] dependencies = [ - { name = "imageio", version = "2.38.1", source = { registry = "https://pypi.org/simple" } }, - { name = "lazy-loader" }, - { name = "networkx", version = "3.6.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.12'" }, + { name = "imageio", version = "2.38.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "lazy-loader", marker = "python_full_version >= '3.11'" }, + { name = "networkx", version = "3.6.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*'" }, { name = "networkx", version = "3.7", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, - { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.12'" }, + { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*'" }, { name = "numpy", version = "2.5.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, - { name = "packaging" }, - { name = "pillow" }, - { name = "scipy", version = "1.17.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.12'" }, + { name = "packaging", marker = "python_full_version >= '3.11'" }, + { name = "pillow", version = "13.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "scipy", version = "1.17.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*'" }, { name = "scipy", version = "1.18.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, - { name = "tifffile", version = "2026.3.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.12'" }, + { name = "tifffile", version = "2026.3.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*'" }, { name = "tifffile", version = "2026.10.15", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/a1/b4/2528bb43c67d48053a7a649a9666432dc307d66ba02e3a6d5c40f46655df/scikit_image-0.26.0.tar.gz", hash = "sha256:f5f970ab04efad85c24714321fcc91613fcb64ef2a892a13167df2f3e59199fa", size = 22729739, upload-time = "2025-12-20T17:12:21.824Z" } @@ -9733,10 +10014,10 @@ resolution-markers = [ "python_full_version < '3.11' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", ] dependencies = [ - { name = "joblib" }, - { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" } }, - { name = "scipy", version = "1.15.3", source = { registry = "https://pypi.org/simple" } }, - { name = "threadpoolctl" }, + { name = "joblib", marker = "python_full_version < '3.11'" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "scipy", version = "1.15.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "threadpoolctl", marker = "python_full_version < '3.11'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/98/c2/a7855e41c9d285dfe86dc50b250978105dce513d6e459ea66a6aeb0e1e0c/scikit_learn-1.7.2.tar.gz", hash = "sha256:20e9e49ecd130598f1ca38a1d85090e1a600147b9c02fa6f15d69cb53d968fda", size = 7193136, upload-time = "2025-09-09T08:21:29.075Z" } wheels = [ @@ -9779,29 +10060,29 @@ source = { registry = "https://pypi.org/simple" } resolution-markers = [ "python_full_version >= '3.14' and sys_platform == 'darwin'", "(python_full_version >= '3.14' and sys_platform == 'linux') or (python_full_version >= '3.14' and sys_platform == 'win32')", - "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.13.*' and sys_platform == 'darwin'", - "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", - "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'darwin'", + "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'", + "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", "(python_full_version == '3.12.*' and platform_machine != 'x86_64' and sys_platform == 'linux') or (python_full_version == '3.12.*' and sys_platform == 'win32')", - "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", - "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'darwin'", "(python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'linux') or (python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'win32')", - "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", - "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'darwin'", "(python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'linux') or (python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'win32')", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", ] dependencies = [ - { name = "joblib" }, - { name = "narwhals" }, - { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.12'" }, + { name = "joblib", marker = "python_full_version >= '3.11'" }, + { name = "narwhals", marker = "python_full_version >= '3.11'" }, + { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*'" }, { name = "numpy", version = "2.5.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, - { name = "scipy", version = "1.17.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.12'" }, + { name = "scipy", version = "1.17.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*'" }, { name = "scipy", version = "1.18.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, - { name = "threadpoolctl" }, + { name = "threadpoolctl", marker = "python_full_version >= '3.11'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/d2/eb/eaf5e07fcc0da7149b0e084f24e54edd7441b9a89ce7e034032ae97fe3a0/scikit_learn-1.9.1.tar.gz", hash = "sha256:629cada3e33e2b9bf376cdc7614a47a4140b8aedc1d836579e359736fbd82977", size = 7786908, upload-time = "2026-09-10T18:34:04.679Z" } wheels = [ @@ -9859,7 +10140,7 @@ resolution-markers = [ "python_full_version < '3.11' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", ] dependencies = [ - { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" } }, + { 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/0f/37/6964b830433e654ec7485e45a00fc9a27cf868d622838f6b6d9c5ec0d532/scipy-1.15.3.tar.gz", hash = "sha256:eae3cf522bc7df64b42cad3925c876e1b0b6c35c1337c93e12c0f366f55b0eaf", size = 59419214, upload-time = "2025-05-08T16:13:05.955Z" } wheels = [ @@ -9916,14 +10197,14 @@ version = "1.17.1" source = { registry = "https://pypi.org/simple" } resolution-markers = [ "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'darwin'", - "(python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'linux') or (python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'win32')", - "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'darwin'", + "(python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'linux') or (python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'win32')", "(python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'linux') or (python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'win32')", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", ] dependencies = [ - { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" } }, + { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/7a/97/5a3609c4f8d58b039179648e62dd220f89864f56f7357f5d4f45c29eb2cc/scipy-1.17.1.tar.gz", hash = "sha256:95d8e012d8cb8816c226aef832200b1d45109ed4464303e997c5b13122b297c0", size = 30573822, upload-time = "2026-02-23T00:26:24.851Z" } wheels = [ @@ -9996,17 +10277,17 @@ source = { registry = "https://pypi.org/simple" } resolution-markers = [ "python_full_version >= '3.14' and sys_platform == 'darwin'", "(python_full_version >= '3.14' and sys_platform == 'linux') or (python_full_version >= '3.14' and sys_platform == 'win32')", - "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.13.*' and sys_platform == 'darwin'", - "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", - "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'", + "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", "(python_full_version == '3.12.*' and platform_machine != 'x86_64' and sys_platform == 'linux') or (python_full_version == '3.12.*' and sys_platform == 'win32')", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", ] dependencies = [ - { name = "numpy", version = "2.5.4", source = { registry = "https://pypi.org/simple" } }, + { name = "numpy", version = "2.5.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/7e/74/66de6258867beb2ef08f35f9f2ac017a52cacd5081714d239ff1a442d458/scipy-1.18.1.tar.gz", hash = "sha256:52c4b7422442aba924d03ad4019852b08a92e64ea187b933135687bfe2747307", size = 30781235, upload-time = "2026-08-21T23:28:50.599Z" } wheels = [ @@ -10077,8 +10358,8 @@ name = "secretstorage" version = "3.5.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "cryptography" }, - { name = "jeepney" }, + { name = "cryptography", marker = "sys_platform == 'linux' or sys_platform == 'win32'" }, + { name = "jeepney", marker = "sys_platform == 'linux' or sys_platform == 'win32'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/1c/03/e834bcd866f2f8a49a85eaff47340affa3bfa391ee9912a952a1faa68c7b/secretstorage-3.5.0.tar.gz", hash = "sha256:f04b8e4689cbce351744d5537bf6b1329c6fc68f91fa666f60a380edddcd11be", size = 19884, upload-time = "2025-11-23T19:02:53.191Z" } wheels = [ @@ -10183,21 +10464,21 @@ source = { registry = "https://pypi.org/simple" } resolution-markers = [ "python_full_version >= '3.14' and sys_platform == 'darwin'", "(python_full_version >= '3.14' and sys_platform == 'linux') or (python_full_version >= '3.14' and sys_platform == 'win32')", - "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.13.*' and sys_platform == 'darwin'", - "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", - "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "(python_full_version == '3.12.*' and platform_machine != 'x86_64' and sys_platform == 'linux') or (python_full_version == '3.12.*' and sys_platform == 'win32')", - "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'darwin'", - "(python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'linux') or (python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'win32')", - "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'darwin'", + "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", + "(python_full_version == '3.12.*' and platform_machine != 'x86_64' and sys_platform == 'linux') or (python_full_version == '3.12.*' and sys_platform == 'win32')", + "(python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'linux') or (python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'win32')", "(python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'linux') or (python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'win32')", - "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version < '3.11' and sys_platform == 'darwin'", "(python_full_version < '3.11' and sys_platform == 'linux') or (python_full_version < '3.11' and sys_platform == 'win32')", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version < '3.11' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", ] sdist = { url = "https://files.pythonhosted.org/packages/70/b3/c19426f783614d625699a4b247faf628ea9ab1db228674491767b417f9e1/setuptools-84.2.1.tar.gz", hash = "sha256:3ff8b3b5492a0aa66960f4419365a86b84e013070d4313e4d4a6894f5d64d6bc", size = 1230289, upload-time = "2026-10-20T19:01:37.742Z" } @@ -10215,7 +10496,7 @@ resolution-markers = [ "python_full_version < '3.11' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", ] dependencies = [ - { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" } }, + { 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/4d/bc/0989043118a27cccb4e906a46b7565ce36ca7b57f5a18b78f4f1b0f72d9d/shapely-2.1.2.tar.gz", hash = "sha256:2ed4ecb28320a433db18a5bf029986aa8afcfd740745e78847e330d5d94922a9", size = 315489, upload-time = "2025-09-24T13:51:41.432Z" } wheels = [ @@ -10284,23 +10565,23 @@ source = { registry = "https://pypi.org/simple" } resolution-markers = [ "python_full_version >= '3.14' and sys_platform == 'darwin'", "(python_full_version >= '3.14' and sys_platform == 'linux') or (python_full_version >= '3.14' and sys_platform == 'win32')", - "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.13.*' and sys_platform == 'darwin'", - "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", - "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'darwin'", + "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'", + "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", "(python_full_version == '3.12.*' and platform_machine != 'x86_64' and sys_platform == 'linux') or (python_full_version == '3.12.*' and sys_platform == 'win32')", - "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", - "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'darwin'", "(python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'linux') or (python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'win32')", - "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", - "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'darwin'", "(python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'linux') or (python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'win32')", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", ] dependencies = [ - { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.12'" }, + { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*'" }, { name = "numpy", version = "2.5.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/f3/ab/924b6e202f796d270a3041a230151f7908db5ea48c74effe6f8023e9bd05/shapely-2.2.0.tar.gz", hash = "sha256:e8865e553d874a1ec4a032057ea81fca9def37b188cd8fb550af3b3480b3f88c", size = 380326, upload-time = "2026-10-07T09:18:01.001Z" } @@ -10411,7 +10692,7 @@ name = "sounddevice" version = "0.5.6" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "cffi" }, + { name = "cffi", marker = "sys_platform == 'darwin'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/ec/db/0c890e2d9aab9ba284021efc02e1d3aebfecab1b611762d7434602209bcf/sounddevice-0.5.6.tar.gz", hash = "sha256:8ec9fbfde2e32f020b167e348f3ab3bac6625a5f15af524d790108ac7147a410", size = 1120094, upload-time = "2026-08-17T07:55:05.048Z" } wheels = [ @@ -10449,9 +10730,9 @@ source = { registry = "https://pypi.org/simple" } resolution-markers = [ "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'darwin'", "(python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'linux') or (python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'win32')", - "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version < '3.11' and sys_platform == 'darwin'", "(python_full_version < '3.11' and sys_platform == 'linux') or (python_full_version < '3.11' and sys_platform == 'win32')", + "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version < '3.11' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", ] sdist = { url = "https://files.pythonhosted.org/packages/71/c3/1b817965ac12dc002d7c9cd7dfffdd7d4fbf9b45763ef2ffe7b86ee94670/soupsieve-2.10.tar.gz", hash = "sha256:49e9380d7d2905463583bafe285e818c7366a9ed7b3aee221c1ac79c905d8bc0", size = 124337, upload-time = "2026-09-24T02:36:35.048Z" } @@ -10461,26 +10742,26 @@ wheels = [ [[package]] name = "soupsieve" -version = "3.0.3" +version = "3.0.4" source = { registry = "https://pypi.org/simple" } resolution-markers = [ "python_full_version >= '3.14' and sys_platform == 'darwin'", "(python_full_version >= '3.14' and sys_platform == 'linux') or (python_full_version >= '3.14' and sys_platform == 'win32')", - "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.13.*' and sys_platform == 'darwin'", - "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", - "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'", + "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", "(python_full_version == '3.12.*' and platform_machine != 'x86_64' and sys_platform == 'linux') or (python_full_version == '3.12.*' and sys_platform == 'win32')", - "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", - "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'darwin'", "(python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'linux') or (python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'win32')", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", ] -sdist = { url = "https://files.pythonhosted.org/packages/5e/77/2dcfa996b01702ab8fd0763d84098f6a640d6162a328f1c04c2697579a1a/soupsieve-3.0.3.tar.gz", hash = "sha256:7dcf6022eed0399eb9934a75e020148f7a2024c37b7dfcd3cf2c5505d69c364e", size = 115923, upload-time = "2026-10-12T13:21:17.696Z" } +sdist = { url = "https://files.pythonhosted.org/packages/19/63/0b6bae54546aed98d72f12d09df57b19a287f01c84d22047fa2e23772ab9/soupsieve-3.0.4.tar.gz", hash = "sha256:924fab84ae21604c19e175e1f39815eb6fa83ba23836e09e9de180925e5bc4c0", size = 119017, upload-time = "2026-10-22T00:45:26.362Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/49/ca/f639c80449997b88aba7bc9705d25dd76cc0844f45f187862fd8f8bb18fa/soupsieve-3.0.3-py3-none-any.whl", hash = "sha256:fa30e3ba4809cb81ce1f3209f2fbe3e779fc445f0439bc147a0d7c4601743f21", size = 41705, upload-time = "2026-10-12T13:21:16.474Z" }, + { url = "https://files.pythonhosted.org/packages/07/66/473f7ca0be0b06e38ee8c85ee2db184e3981bd769fac2e7c19c8a8865211/soupsieve-3.0.4-py3-none-any.whl", hash = "sha256:8412826614f9c632227067d0985aeb9f584bd15efc852955430e097a9fe7afbf", size = 42458, upload-time = "2026-10-22T00:45:24.843Z" }, ] [[package]] @@ -10535,8 +10816,8 @@ name = "standard-aifc" version = "3.13.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "audioop-lts" }, - { name = "standard-chunk" }, + { name = "audioop-lts", marker = "python_full_version >= '3.13'" }, + { name = "standard-chunk", marker = "python_full_version >= '3.13'" }, ] 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 = [ @@ -10557,7 +10838,7 @@ name = "standard-sunau" version = "3.13.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "audioop-lts" }, + { name = "audioop-lts", marker = "python_full_version >= '3.13'" }, ] 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 = [ @@ -10574,8 +10855,8 @@ resolution-markers = [ "python_full_version < '3.11' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", ] dependencies = [ - { name = "anyio" }, - { name = "typing-extensions" }, + { name = "anyio", marker = "python_full_version < '3.11'" }, + { name = "typing-extensions", marker = "python_full_version < '3.11'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/7b/2b/3850dc6bf7ef71b088962eba31dafc6cffd2f96e577ebb0bb316df96da3e/starlette-1.7.0.tar.gz", hash = "sha256:c79f74ea63cff761804fbbfb182f1e0b440c2d07b164d24700c5a1bab5d6ff5d", size = 2736246, upload-time = "2026-09-23T07:30:26.35Z" } wheels = [ @@ -10589,24 +10870,24 @@ source = { registry = "https://pypi.org/simple" } resolution-markers = [ "python_full_version >= '3.14' and sys_platform == 'darwin'", "(python_full_version >= '3.14' and sys_platform == 'linux') or (python_full_version >= '3.14' and sys_platform == 'win32')", - "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.13.*' and sys_platform == 'darwin'", - "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", - "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'darwin'", + "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'", + "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", "(python_full_version == '3.12.*' and platform_machine != 'x86_64' and sys_platform == 'linux') or (python_full_version == '3.12.*' and sys_platform == 'win32')", - "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", - "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'darwin'", "(python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'linux') or (python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'win32')", - "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", - "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'darwin'", "(python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'linux') or (python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'win32')", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", ] dependencies = [ - { name = "anyio" }, - { name = "typing-extensions", marker = "python_full_version < '3.13'" }, + { name = "anyio", marker = "python_full_version >= '3.11'" }, + { name = "typing-extensions", marker = "python_full_version >= '3.11' and python_full_version < '3.13'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/ad/eb/4e197bf26b023abafc5e9043ec8710d7de0fcb032d0969045236d72aa0b1/starlette-1.9.0.tar.gz", hash = "sha256:3d931de246ed870e35ce605974440816ef895e592f255d1396cfdf191d4c4318", size = 2732466, upload-time = "2026-10-18T15:50:33.189Z" } wheels = [ @@ -10681,45 +10962,58 @@ wheels = [ [[package]] name = "tesserocr" -version = "2.11.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "cysignals", version = "1.12.5", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.12'" }, - { name = "cysignals", version = "1.12.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.12.*'" }, - { name = "cysignals", version = "1.13.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.13'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/11/33/0d74c9cfc525779bb761a474cd958bbbda057654fec686c05e7a82b8c51b/tesserocr-2.11.0.tar.gz", hash = "sha256:1c1ae89c589fddf3a25dbcc21031aea18bd82259e42ef491c43a44f2bef811b3", size = 76094, upload-time = "2026-08-04T12:26:09.763Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/2e/69/bd17886fbbaae5ebc95b0750cb878afe87716eff1e5b0144bf5e30f7aac4/tesserocr-2.11.0-cp310-cp310-macosx_15_0_arm64.whl", hash = "sha256:c5fbda176fb2b576e8086122b52b3faaad6176a8fe73b6aad9a64ecebc700186", size = 3613052, upload-time = "2026-08-04T12:25:08.002Z" }, - { url = "https://files.pythonhosted.org/packages/c8/3a/115e774c27c3954a5f81af339467de9f147a9e471fd15dcce6091c25885f/tesserocr-2.11.0-cp310-cp310-macosx_15_0_x86_64.whl", hash = "sha256:729b36ac4d75cf9da0ef90cfb0b793f67b56831ae02cf301318d7aeee3ea3e83", size = 4082103, upload-time = "2026-08-04T12:25:10.283Z" }, - { url = "https://files.pythonhosted.org/packages/3c/eb/c83d60ed11bbfbaa7f2cc0cb3dec4036de0669453b8e3a4fc4874332116b/tesserocr-2.11.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:828260fced1b69df2535dd0589c227a1d89e1d1a91c5230b260369c20ed7c0f1", size = 5142145, upload-time = "2026-08-04T12:25:15.58Z" }, - { url = "https://files.pythonhosted.org/packages/f9/fb/1cf59075421a4e7d3f894599c1544190adf8c66e4505c16cba9c5d190b3c/tesserocr-2.11.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b292e496540fca8e1bc8585d63651d77265bc0bd71ecb0e7951d7bc77f18376c", size = 5429252, upload-time = "2026-08-04T12:25:17.755Z" }, - { url = "https://files.pythonhosted.org/packages/ff/be/dac2071f47a11510408f65c252598ed57ea1ddc27e851b8dc5fe7d581e60/tesserocr-2.11.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:d4774a0bbdd2713d958419f92bb47d3d9c91d07aa623da7d9829d15eea5ee960", size = 6822346, upload-time = "2026-08-04T12:25:19.619Z" }, - { url = "https://files.pythonhosted.org/packages/2d/05/4f6698626207e5c2fdf321dccbd182011e26d57836bc83c17d04e968b692/tesserocr-2.11.0-cp311-cp311-macosx_15_0_arm64.whl", hash = "sha256:d0ed565ebad312d3996b0a4de2dc5500d3937d9cebf5a09e59f78b341eed2b3c", size = 3619350, upload-time = "2026-08-04T12:25:21.333Z" }, - { url = "https://files.pythonhosted.org/packages/dd/eb/c81328f6119e969e22b937b22cc9627b715018c4280935931103c6c76dab/tesserocr-2.11.0-cp311-cp311-macosx_15_0_x86_64.whl", hash = "sha256:3fba875b5db629b84a505e99dbdceb81826f709371d20fe8943a48fd8aa5ad93", size = 4089406, upload-time = "2026-08-04T12:25:23.022Z" }, - { url = "https://files.pythonhosted.org/packages/b0/65/42b7131f946629f603ee90bfbe92e7adc8f24ea95d93d033b0fe4ec34c1a/tesserocr-2.11.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:509a1e6292ea136b242d50d536eabb77034415fad60be15c11cea979da2c6a89", size = 5221592, upload-time = "2026-08-04T12:25:24.793Z" }, - { url = "https://files.pythonhosted.org/packages/c0/ab/6406e00beb884401b78596a8c872451c2516f09a00f7fe336cd52813ac77/tesserocr-2.11.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e80d48eeb231a2033afddb52b0dc5ffce769c807308d1915a241a2fd402bf717", size = 5506380, upload-time = "2026-08-04T12:25:26.538Z" }, - { url = "https://files.pythonhosted.org/packages/6d/ac/655e20c529c32c8c03c9df7147fa25b8795badbf466701359619c8465fc7/tesserocr-2.11.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:84c422f830dc6312fce5756e5f8d8182662c5e8542e6529955d79f9b92da4dea", size = 6897007, upload-time = "2026-08-04T12:25:28.308Z" }, - { url = "https://files.pythonhosted.org/packages/6f/02/11474753c38ab2d67d57877925810d5f859fec395a35cb1024942ff5047d/tesserocr-2.11.0-cp312-cp312-macosx_15_0_arm64.whl", hash = "sha256:e35d1bad8e20f2e933548fd4a0e18dad66c47058a10465bb5da059125add5d76", size = 3620278, upload-time = "2026-08-04T12:25:30.411Z" }, - { url = "https://files.pythonhosted.org/packages/d0/5e/81f88f9e2e74c8e25de08c0ea89fc60aba35b08a0c105c54ab49b414b101/tesserocr-2.11.0-cp312-cp312-macosx_15_0_x86_64.whl", hash = "sha256:59ae6fdc30313755301f024584707188ecfe9819dee755cd003d322167c141e3", size = 4089070, upload-time = "2026-08-04T12:25:32.495Z" }, - { url = "https://files.pythonhosted.org/packages/b2/8d/35c434c8dedc16c05a2c549178a7eaaca8b938adc032aea5b6a60f27e335/tesserocr-2.11.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9a32bdb35233c3548a2c44e517a7875e06020e3d8e6ea458749808d268c13628", size = 5202458, upload-time = "2026-08-04T12:25:34.245Z" }, - { url = "https://files.pythonhosted.org/packages/19/bf/cc207b0d2a0d51e280e0f1beb9cbe420e34ba34621247de7ea8266645b3d/tesserocr-2.11.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:184e682bdf33bc8c22d8e9d787160da5fb773b3020062d74bdd5fb86dc03f7fb", size = 5500975, upload-time = "2026-08-04T12:25:36.357Z" }, - { url = "https://files.pythonhosted.org/packages/66/ed/dcca1dc4f3cce562f032148de95c838b023b22c2acb391183ed26512ffa0/tesserocr-2.11.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:8e829151f583cdbab312abdd50d75f66bffaee14bb5ca1f3b53f46f807007703", size = 6875281, upload-time = "2026-08-04T12:25:38.559Z" }, - { url = "https://files.pythonhosted.org/packages/46/e7/ed839a4cd32bbdf1b5eb333836a5751b952e5eda45621c08cd31cf7abbd5/tesserocr-2.11.0-cp313-cp313-macosx_15_0_arm64.whl", hash = "sha256:27b5fecc185d8ecc0e1d97abc726b96df62d8f82984917027b5450d665e3d9ce", size = 3618668, upload-time = "2026-08-04T12:25:41.093Z" }, - { url = "https://files.pythonhosted.org/packages/9e/c5/c47d647effe979a918ea9f70cd6907f52c8f1573f7bc3b42b1dc7e93abdc/tesserocr-2.11.0-cp313-cp313-macosx_15_0_x86_64.whl", hash = "sha256:642bd233f4fd560ff354c55fcab05d982ed29df9d624c4c861f11cbd401603fa", size = 4087861, upload-time = "2026-08-04T12:25:43.277Z" }, - { url = "https://files.pythonhosted.org/packages/f5/10/760c4df94727192bca0b39e456e183720ccdae342537263d56b309c7ca6c/tesserocr-2.11.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2276b8eaf4011ba4be3b1890bd9a0e6a9dc707b31adcdb76586079f75b3bd553", size = 5189952, upload-time = "2026-08-04T12:25:45.071Z" }, - { url = "https://files.pythonhosted.org/packages/70/b7/6b0041a865a42817a63a8667fecd13fd5645bea7444475fe40934b7ddb8b/tesserocr-2.11.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f6d316b371b1bf9fbd6e3bd43de14974650761e8d0f43b0aeb5f0bceb2e729af", size = 5490246, upload-time = "2026-08-04T12:25:46.832Z" }, - { url = "https://files.pythonhosted.org/packages/08/8a/689f4c81cece978f257c48e147b5432119bd424e46da68d6413e2810d93f/tesserocr-2.11.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ed89fde24fc18252efba988a17ec459018174c1deef2efa3f7759a08b7d1b77b", size = 6869246, upload-time = "2026-08-04T12:25:48.574Z" }, - { url = "https://files.pythonhosted.org/packages/11/9b/f944ff386fe58a86810a8331b0e07863ee44c756e04177bdc6d75b641b1b/tesserocr-2.11.0-cp314-cp314-macosx_15_0_arm64.whl", hash = "sha256:0daa527320ce84e89a43ef3c01af1bb9fb958f2f81db2c01e098898e31bbb74f", size = 3619023, upload-time = "2026-08-04T12:25:50.647Z" }, - { url = "https://files.pythonhosted.org/packages/75/92/facf0065827dfad9f35ad2b1b91bd001c50615ed19785901b26cb459f3c4/tesserocr-2.11.0-cp314-cp314-macosx_15_0_x86_64.whl", hash = "sha256:2588a3819103cdb1a6acc7039274e94874ecd51930c1ad3ffdb3dc55b572aa59", size = 4087540, upload-time = "2026-08-04T12:25:52.347Z" }, - { url = "https://files.pythonhosted.org/packages/4e/22/fd020163536126f907530331e69c664c713c443082d521d429ae7c2a0381/tesserocr-2.11.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:66d31c1f092a28dce946cd0d8feb9f313350ff13d837ca4667bf8b9f34454bee", size = 5184333, upload-time = "2026-08-04T12:25:54.158Z" }, - { url = "https://files.pythonhosted.org/packages/51/45/c240342cf623f833e24b524522878a9baff5e69718bd2df758468e83b174/tesserocr-2.11.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f83e4c7ad6beec5f8580237e256cc2232a1d0d1c3125382d332eef80a7d46366", size = 5472008, upload-time = "2026-08-04T12:25:56.478Z" }, - { url = "https://files.pythonhosted.org/packages/c2/3f/981825964338cc2537a86cea474ba8a109be0cfd8c060382007c4e35530c/tesserocr-2.11.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:a88c0f32ea2d932f4d28820c61baa40fcab2fd691c83bce8a94ea9ef8e056d2f", size = 6858594, upload-time = "2026-08-04T12:25:58.68Z" }, - { url = "https://files.pythonhosted.org/packages/76/59/1c7ad5423ff370644b1f1c57b68b4addf941a2e85b15e56c33828ed1d55c/tesserocr-2.11.0-cp314-cp314t-macosx_15_0_arm64.whl", hash = "sha256:cb62569ab0a822728a123fe73fc6b262595a30315d887e2447cff50a96ac3aed", size = 3627682, upload-time = "2026-08-04T12:26:00.348Z" }, - { url = "https://files.pythonhosted.org/packages/9a/cb/9e3c2006271bb21a0c29bbc0c9c0c749e84a406aac635daceec88e0a8815/tesserocr-2.11.0-cp314-cp314t-macosx_15_0_x86_64.whl", hash = "sha256:b910d67457e3d419801035ea0e0af0fd869e087a47da54950d108edcf6a22561", size = 4094755, upload-time = "2026-08-04T12:26:02.077Z" }, - { url = "https://files.pythonhosted.org/packages/2d/1d/c0d687e503849095465dbfe74170e79df5003b44c8e260af7fb1137ede82/tesserocr-2.11.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:15876614a89e035827422b2871dc1f706e5b14a309f8db690fee188c68302f4b", size = 5268279, upload-time = "2026-08-04T12:26:04.173Z" }, - { url = "https://files.pythonhosted.org/packages/48/5b/3e3099ee68c31de0530428acb1df678ff2051eb00f8e53635cca2cc1ac91/tesserocr-2.11.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:045b1663e9b021efaa90919ad8692cbde6103e8f40a7c7b071aaefcd5685cab9", size = 5476593, upload-time = "2026-08-04T12:26:06.308Z" }, - { url = "https://files.pythonhosted.org/packages/98/68/c240876961cb73eddf5e0c612fcb9b2ee585a54f70ff90977fe8c92618a4/tesserocr-2.11.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:c194d31b14d70278f05938762d155f956373347d4cd9b5612d2a425914f20da9", size = 6866315, upload-time = "2026-08-04T12:26:08.093Z" }, +version = "2.12.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d4/7b/0f69766e3b54b9e2cd198afec65735a899878c692a7ee8a68860329070e5/tesserocr-2.12.0.tar.gz", hash = "sha256:362b5f7c2fd5bf3452a719829999f263ebca687bfe5da8c2eb1d77792264a4aa", size = 77288, upload-time = "2026-10-22T19:17:11.131Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/02/5f/24ebc14f1576a8530a15f5b02b52b52ae09a95f679189c2620c76e630c91/tesserocr-2.12.0-cp310-cp310-macosx_15_0_arm64.whl", hash = "sha256:f318bf32dcabbad45e8173534929e59209c164654925a3ac75675dab80134e3a", size = 3622409, upload-time = "2026-10-22T19:14:48.077Z" }, + { url = "https://files.pythonhosted.org/packages/04/bd/266508cd754c1c17afb61abb2fae66e954c24a67e168a89b4d62e47264f2/tesserocr-2.12.0-cp310-cp310-macosx_15_0_x86_64.whl", hash = "sha256:9e75f26d58114b21ba22a7dde413616e850e936329776b657f8248c9cd2bed8a", size = 4090508, upload-time = "2026-10-22T19:14:50.524Z" }, + { url = "https://files.pythonhosted.org/packages/77/cd/a7b8cd84b90f0e5699124522848b9857f50c4e52ecf0f3280c3aae7f335d/tesserocr-2.12.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0676eb33e6f1a028116620a4ad1c47212621bf9687e7ab02521e0d6ba024e143", size = 5247443, upload-time = "2026-10-22T19:14:53.636Z" }, + { url = "https://files.pythonhosted.org/packages/c2/1c/d8536cc00578f2a4c4aabe1261d43d07fdc7863841cf739279e4d56222e2/tesserocr-2.12.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ccbe762a92b92d7c8d6fb3c5b3d7ba4bf501736f47abb894f72fab39c5c910d4", size = 5563489, upload-time = "2026-10-22T19:14:56.484Z" }, + { url = "https://files.pythonhosted.org/packages/64/ee/ed6d44492fcd5d48564b8fe1a212d3ac2a0538bc11e613feaa54ff8ac1b6/tesserocr-2.12.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f5b75bd1d56d27b9376d58c84e3cbaa5b9d7988876f176a3ed21310198f87bab", size = 6936152, upload-time = "2026-10-22T19:14:59.891Z" }, + { url = "https://files.pythonhosted.org/packages/89/79/00bb3fe36a37319accd8cad68d815357edae43f88056c269098a669597f6/tesserocr-2.12.0-cp310-cp310-win_amd64.whl", hash = "sha256:ba484aa456d163bfd1a87fb9438001d5c4f7290d7216bb65530437c95ae2b855", size = 23145322, upload-time = "2026-10-22T19:15:05.577Z" }, + { url = "https://files.pythonhosted.org/packages/e5/5e/06842c37a15582ae5673ed0951bb5949bed690427df258f982c88d2c01a8/tesserocr-2.12.0-cp311-cp311-macosx_15_0_arm64.whl", hash = "sha256:a19f032e56298b5be007fc70ec2775c1bc07ac654196e909955d10cc507ab22a", size = 3625293, upload-time = "2026-10-22T19:15:10.638Z" }, + { url = "https://files.pythonhosted.org/packages/10/aa/75d9303157be885a1fa40896af766e05d6b921ec5b9c3c9de73455064610/tesserocr-2.12.0-cp311-cp311-macosx_15_0_x86_64.whl", hash = "sha256:cc19645ffda3277da532103e3f33182f5c953c6f4319ac7b3d84b35199f9850e", size = 4093353, upload-time = "2026-10-22T19:15:12.625Z" }, + { url = "https://files.pythonhosted.org/packages/cf/88/7c9ead2907a694416d3bc902025c2103ccae21a8f027f44ce87a5c8e0ca1/tesserocr-2.12.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d8cd458d9bdf6d617c43c8d2f2ad1a769a21882722574425ed8bfbae5413c337", size = 5314305, upload-time = "2026-10-22T19:15:15.673Z" }, + { url = "https://files.pythonhosted.org/packages/05/d4/a8f1b6f9f639d50404a8c43b40b60f69660e5edde0c373d781c03d342d15/tesserocr-2.12.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b5d9dd2cf30f15b8d284dfe591e716bc1a340af9a205dae63ca0434539252877", size = 5627554, upload-time = "2026-10-22T19:15:18.496Z" }, + { url = "https://files.pythonhosted.org/packages/de/16/b8f50a7a8d1bf885bc67bcea15555561e771e24f5c859e5a03cb5a911228/tesserocr-2.12.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:06eac3babc1b7df006a2d3e0cf57a0b405bdcbfd8e9c99158144b69c384412cf", size = 6995697, upload-time = "2026-10-22T19:15:22.076Z" }, + { url = "https://files.pythonhosted.org/packages/c4/2a/34402d82dfa4a7661cb8d459ac6c8d98cb7ab2e5e07b68cf46edc40bd0fe/tesserocr-2.12.0-cp311-cp311-win_amd64.whl", hash = "sha256:2fb4ae548c3c8fe1d9d4f86e135c558eb32a439897130ba9c0cf28a6eb4f4eda", size = 23145271, upload-time = "2026-10-22T19:15:29.932Z" }, + { url = "https://files.pythonhosted.org/packages/26/60/696f815adfe9ee587b8f56360d357df37a4d980e8174241ddcd2a4677530/tesserocr-2.12.0-cp312-cp312-macosx_15_0_arm64.whl", hash = "sha256:71faf9b0ea8f3bd08ef621a3dbcb50f570032ae11f56e5fad8fe825e5e5855b6", size = 3620747, upload-time = "2026-10-22T19:15:33.3Z" }, + { url = "https://files.pythonhosted.org/packages/c4/06/92ffd189fce0069eeca3410da6589a0e5718b776afda3b577190b9777b8c/tesserocr-2.12.0-cp312-cp312-macosx_15_0_x86_64.whl", hash = "sha256:db449a05d82189134172ab225b2b4a66347d0b2e48142dbb989ecd6a6ac07c44", size = 4087792, upload-time = "2026-10-22T19:15:35.818Z" }, + { url = "https://files.pythonhosted.org/packages/f2/e6/4c92454b96bed90b6590ba30f5cf547fd572f5da3dffe3ddcd0c1da93dbf/tesserocr-2.12.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:cd5693447e1b35d0826f126270dc8370d018d7c50b4c21ed972bbf5a72d1f9b3", size = 5258148, upload-time = "2026-10-22T19:15:39.979Z" }, + { url = "https://files.pythonhosted.org/packages/05/5c/57b3deee8f1ae0691ba73efffe7f842fbfb7f0b4635252c8e12bdda78f77/tesserocr-2.12.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:03bbae4e8fb8e1083eb05cabdcf191ee1837e0f881c5824ad1912966e7f549c1", size = 5587349, upload-time = "2026-10-22T19:15:43.264Z" }, + { url = "https://files.pythonhosted.org/packages/ad/71/c47b869bc0d0b185c881835c440acea5e4b6d673f11684d4c5a7c0e1e8f6/tesserocr-2.12.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:d92f96230433bd3b558c6fc6eb6abeb3d780277cba1134574362509a6762b025", size = 6939739, upload-time = "2026-10-22T19:15:46.493Z" }, + { url = "https://files.pythonhosted.org/packages/c4/71/fe51d176518e09b89524b964a294f27f6f48885f02a4d579b7f0a9d0a2f2/tesserocr-2.12.0-cp312-cp312-win_amd64.whl", hash = "sha256:e23b800d6030cf9d208dc01c59ace50a89c7a5e06ad2dc9c1634ed18ff1932ec", size = 23142989, upload-time = "2026-10-22T19:15:51.502Z" }, + { url = "https://files.pythonhosted.org/packages/2e/88/c202981f1a526f67366ea9f4571a237208481ea9419dbb387b447647451f/tesserocr-2.12.0-cp313-cp313-macosx_15_0_arm64.whl", hash = "sha256:6c2b5b42ad2070ef2fc71952a425b23d1cbfb0f90c7af15d0fc744f9ed0d37cd", size = 3623075, upload-time = "2026-10-22T19:15:54.428Z" }, + { url = "https://files.pythonhosted.org/packages/8b/37/93c0a8d0bfe7255234716b9d09c8b879396ced474d53b2da6bba1c114aba/tesserocr-2.12.0-cp313-cp313-macosx_15_0_x86_64.whl", hash = "sha256:c9ce10a86e7d263dcae29bc143ad0de1ce7af3509bc3a19816f5deb50d4ebb90", size = 4092905, upload-time = "2026-10-22T19:15:56.882Z" }, + { url = "https://files.pythonhosted.org/packages/55/8d/3607d1279014f4b766a524d0813997f819bc28486cd4eff308f236537047/tesserocr-2.12.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8be128b8b1b90577132538d98341be7cbe4325b9f0dba765f484f036f18fb8a5", size = 5264614, upload-time = "2026-10-22T19:15:59.019Z" }, + { url = "https://files.pythonhosted.org/packages/de/3f/79f9ff25a636ec47019ed2072d56ef977c5c0bf613c29f4555745ef2f31c/tesserocr-2.12.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:76778cf6468c8cac5a0ff4207e960ab4800e3a7e4e9f567969e1b6b0ad0d71c4", size = 5593799, upload-time = "2026-10-22T19:16:01.45Z" }, + { url = "https://files.pythonhosted.org/packages/4c/d9/2be0f17aba308db68db6ba593136c7247c0a1316e6d5c0ac83beea4a60c1/tesserocr-2.12.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:036fd495ba2e9377cb238d9c6b7d2425254898e4cf07076e25feebef9ea4afe4", size = 6948127, upload-time = "2026-10-22T19:16:03.732Z" }, + { url = "https://files.pythonhosted.org/packages/10/0c/393b6a506c91963226a14173f9ef17a52be9287ad2e16da08fd9a3e3c71a/tesserocr-2.12.0-cp313-cp313-win_amd64.whl", hash = "sha256:7ee14f90a09ad75f78010e12e45770ad16569c6d17d5f175f1a948d9cf67976e", size = 23142504, upload-time = "2026-10-22T19:16:07.626Z" }, + { url = "https://files.pythonhosted.org/packages/7b/1d/e849448a61e6aa49ccaa25381bdd8adc948b337e5cdaa5aaf632b085b383/tesserocr-2.12.0-cp314-cp314-macosx_15_0_arm64.whl", hash = "sha256:df540be214ed564a331b8d00f3edef6463a6af085a76a1f7cb9e47778b639a0f", size = 3626407, upload-time = "2026-10-22T19:16:10.826Z" }, + { url = "https://files.pythonhosted.org/packages/3a/d4/cc5082bb75431fdbc89fb45cd71405257bfe1bca8f90e4c81924ca24b7f1/tesserocr-2.12.0-cp314-cp314-macosx_15_0_x86_64.whl", hash = "sha256:cf41cf079a463ee6d31e0fb29de6947db3e708a44c131e19f7f45f2c95225845", size = 4094515, upload-time = "2026-10-22T19:16:12.997Z" }, + { url = "https://files.pythonhosted.org/packages/ae/3e/fc7efe6b217c0019e26dee9f79d5fcf7086d7b4bfb6dd2d8a4816c92f843/tesserocr-2.12.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c84efa54fb5a099eeef604768d59529f74a8fc550a876754b97ae0ddd44f841a", size = 5267476, upload-time = "2026-10-22T19:16:14.931Z" }, + { url = "https://files.pythonhosted.org/packages/a4/89/ad9fbce1a588630e32659023f7ee1d326a5e7c32ffa20f38e2523e208228/tesserocr-2.12.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3d3dffeb30ca50322755af76bee98e37ed6c06a49568d3bc29f68a10cd8f70e1", size = 5586049, upload-time = "2026-10-22T19:16:17.355Z" }, + { url = "https://files.pythonhosted.org/packages/db/32/f114ad9a374874c9d42e4d3474a006ba320f4818ef7c95ad0d2381d779a7/tesserocr-2.12.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:9cd7500f33da8853a8a2b38ca687d2cf9b69146acc2201bff9ed8f3af1f5b58f", size = 6943854, upload-time = "2026-10-22T19:16:19.351Z" }, + { url = "https://files.pythonhosted.org/packages/03/6e/3b8ae20b1688faf39723a286b0934bc1cf1ccab195c777e0ad197209ba13/tesserocr-2.12.0-cp314-cp314-win_amd64.whl", hash = "sha256:f4f38bb89c01f053171aec04030d1c04b3dc583d5d045477fc465fcd4affa55e", size = 24049965, upload-time = "2026-10-22T19:16:22.682Z" }, + { url = "https://files.pythonhosted.org/packages/bc/b1/c804ae36412ed6aae02ac814ee9929ebb3ec6134a4985863ced8daba9842/tesserocr-2.12.0-cp314-cp314t-macosx_15_0_arm64.whl", hash = "sha256:64790e7e5e065040369c2d762b6b10696d93ac9cf636b2fa96029b086928dee2", size = 3635238, upload-time = "2026-10-22T19:16:25.499Z" }, + { url = "https://files.pythonhosted.org/packages/6b/00/850d86d51fda3d0755640ded26a8e04c7e1a13b87e6cb841df18d0d334aa/tesserocr-2.12.0-cp314-cp314t-macosx_15_0_x86_64.whl", hash = "sha256:f2cfbc7a3cc2aae413b74c6be5fefb57b55516f568e9bdbabe57717249c76e92", size = 4099769, upload-time = "2026-10-22T19:16:27.57Z" }, + { url = "https://files.pythonhosted.org/packages/40/55/2fbc22f0c61514c77f15eaff1dbf067af7911980036e6cb0368a078273f4/tesserocr-2.12.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ee53e491f08943df452579fdb7ca36fef787ead3c3b652ccf8a2a043867a7537", size = 5325128, upload-time = "2026-10-22T19:16:29.606Z" }, + { url = "https://files.pythonhosted.org/packages/42/1e/23a573b884cc9334ffab4e66b4186e93e2533c426232d2fcda25089332a2/tesserocr-2.12.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5858300357a2dd01a01c38ac6134f7b3ed26d01ee420dfcfce3e3e2e6db0db85", size = 5581535, upload-time = "2026-10-22T19:16:31.539Z" }, + { url = "https://files.pythonhosted.org/packages/6d/6e/06200aad6176b4c7506b38826646fb3579e924915bb77920814330120cb3/tesserocr-2.12.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:e9a045c0c1eb06ae215b6a5ebb1edba775d22f9749c6d52fce354bfcf56c903e", size = 6943880, upload-time = "2026-10-22T19:16:33.968Z" }, + { url = "https://files.pythonhosted.org/packages/02/de/ef3f46e6dbd10e0c163d8e1c36ea9beac46b68e2ce714408c527dd8f9636/tesserocr-2.12.0-cp314-cp314t-win_amd64.whl", hash = "sha256:5b580cf418a584c90c2d37f58dde9ae0933023accb4ddc80151646fee5dd2d0c", size = 24083833, upload-time = "2026-10-22T19:16:37.342Z" }, + { url = "https://files.pythonhosted.org/packages/17/69/5e43555af9fc37a85ddafa844f6e267cb2a790385bc50cd5fd5e387833fd/tesserocr-2.12.0-cp315-cp315-macosx_15_0_arm64.whl", hash = "sha256:e2a8dadabbef64102566dcde6fbf141de195fd9277048a3ac4b1f60b0f64ba58", size = 3625649, upload-time = "2026-10-22T19:16:40.528Z" }, + { url = "https://files.pythonhosted.org/packages/20/b8/ed52e94f001e477a73492d0c9891bd95617c444ac6fd7faf9b18e6b18f87/tesserocr-2.12.0-cp315-cp315-macosx_15_0_x86_64.whl", hash = "sha256:a5e70f7b3289d47bd2ec18111fe1ee648b3eb623f192d12e2a10699bb40a7c7b", size = 4094129, upload-time = "2026-10-22T19:16:42.429Z" }, + { url = "https://files.pythonhosted.org/packages/da/e2/d61e1e09c392c2804732684025344be8a8148668b301b8ec75da392edfe5/tesserocr-2.12.0-cp315-cp315-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c195a310c75905912361551767733bb60579e9307f22c9251ed50330276c15e7", size = 5265614, upload-time = "2026-10-22T19:16:44.753Z" }, + { url = "https://files.pythonhosted.org/packages/43/09/dc0717a409941a3df9bfdb77ae6b9af967c70aa42f2a08fa1317b9c5fcfb/tesserocr-2.12.0-cp315-cp315-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:39852879451b2b9d609c85bcab2d1ae20087d5cb4c0e8e4d8fa3003b80dbd920", size = 5587368, upload-time = "2026-10-22T19:16:47.022Z" }, + { url = "https://files.pythonhosted.org/packages/34/c0/f1d59301788879f4ce8e6f30756b2f332a2a04d0724bc463ad72f090a0ca/tesserocr-2.12.0-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:52b70341c6c0b9473c665c86783133619d96c4e90c904a22096e6f5ee1c52e27", size = 6942630, upload-time = "2026-10-22T19:16:49.822Z" }, + { url = "https://files.pythonhosted.org/packages/47/d7/6224e7d9857f9e69b28d03efb36cb22194bae1297445f83e44670a5bfedb/tesserocr-2.12.0-cp315-cp315-win_amd64.whl", hash = "sha256:d0cee1b19335d6b71a6a11f0b3f867a4a7e177e9a68d805d251db9c2bf198e6c", size = 24050077, upload-time = "2026-10-22T19:16:53.296Z" }, + { url = "https://files.pythonhosted.org/packages/dc/95/ad72224eeca72f22e4831e2d0a3f60f4bc148d7de5268fae722d919e9965/tesserocr-2.12.0-cp315-cp315t-macosx_15_0_arm64.whl", hash = "sha256:c80d6ddb0df664f6dcb5bbfbc7644bd9c7f7821d14fd2717d7664fbfad995115", size = 3634370, upload-time = "2026-10-22T19:16:56.346Z" }, + { url = "https://files.pythonhosted.org/packages/9d/33/6fa0d677a3aecef208d15125ccdcf9932f2a287dc5a894c97fc29adbb2a0/tesserocr-2.12.0-cp315-cp315t-macosx_15_0_x86_64.whl", hash = "sha256:d9bf18f138d9341c32c1e40d364f85e7e556fd5d4c437b2156f0521bf98931f2", size = 4098668, upload-time = "2026-10-22T19:16:58.546Z" }, + { url = "https://files.pythonhosted.org/packages/33/a0/f3e2313104c312e3e5bfb1e715dc8efd02204d645acedd991a1cdf3c1b3f/tesserocr-2.12.0-cp315-cp315t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:eab5ecbc1eed12b3495ae4e9082d96dfb550e5d151b121260f09312128205375", size = 5316781, upload-time = "2026-10-22T19:17:00.774Z" }, + { url = "https://files.pythonhosted.org/packages/28/07/001d856201359dc92bc23d67be430f2f95ec93ffb1ec1a6b999a24c1954b/tesserocr-2.12.0-cp315-cp315t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:eb8b3549d65272261cae92b30efed89ac5a73eebcee4bbdaf76d3f39bb631e38", size = 5616580, upload-time = "2026-10-22T19:17:02.992Z" }, + { url = "https://files.pythonhosted.org/packages/71/f7/dca24806cb1963e297b275917dae2bf470543f1b3288554c2494c03e9fb1/tesserocr-2.12.0-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:a9b7e61bfac73e853fa409fb34ac0c89bfa78148f9dfdb63a07cb239618b92ac", size = 6965792, upload-time = "2026-10-22T19:17:05.268Z" }, + { url = "https://files.pythonhosted.org/packages/1b/7e/1b23ed037af26a1e5803cf16e0b896364e045ba76e38d0a4341574726214/tesserocr-2.12.0-cp315-cp315t-win_amd64.whl", hash = "sha256:b0d085615a79af0c49ea20722dbce23dd97b391019aab7e201fa88d19a3a468e", size = 24082536, upload-time = "2026-10-22T19:17:08.522Z" }, ] [[package]] @@ -10741,7 +11035,7 @@ resolution-markers = [ "python_full_version < '3.11' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", ] dependencies = [ - { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" } }, + { 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/44/d0/18fed0fc0916578a4463f775b0fbd9c5fed2392152d039df2fb533bfdd5d/tifffile-2025.5.10.tar.gz", hash = "sha256:018335d34283aa3fd8c263bae5c3c2b661ebc45548fde31504016fcae7bf1103", size = 365290, upload-time = "2025-05-10T19:22:34.386Z" } wheels = [ @@ -10754,14 +11048,14 @@ version = "2026.3.3" source = { registry = "https://pypi.org/simple" } resolution-markers = [ "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'darwin'", - "(python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'linux') or (python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'win32')", - "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'darwin'", + "(python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'linux') or (python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'win32')", "(python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'linux') or (python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'win32')", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", ] dependencies = [ - { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" } }, + { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/c5/cb/2f6d79c7576e22c116352a801f4c3c8ace5957e9aced862012430b62e14f/tifffile-2026.3.3.tar.gz", hash = "sha256:d9a1266bed6f2ee1dd0abde2018a38b4f8b2935cb843df381d70ac4eac5458b7", size = 388745, upload-time = "2026-03-03T19:14:38.134Z" } wheels = [ @@ -10775,17 +11069,17 @@ source = { registry = "https://pypi.org/simple" } resolution-markers = [ "python_full_version >= '3.14' and sys_platform == 'darwin'", "(python_full_version >= '3.14' and sys_platform == 'linux') or (python_full_version >= '3.14' and sys_platform == 'win32')", - "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.13.*' and sys_platform == 'darwin'", - "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", - "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'", + "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", "(python_full_version == '3.12.*' and platform_machine != 'x86_64' and sys_platform == 'linux') or (python_full_version == '3.12.*' and sys_platform == 'win32')", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", ] dependencies = [ - { name = "numpy", version = "2.5.4", source = { registry = "https://pypi.org/simple" } }, + { name = "numpy", version = "2.5.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/fd/87/a982ca5b892579397c2b155275cc0119b51feb1701eaefa18acb0245f0a4/tifffile-2026.10.15.tar.gz", hash = "sha256:a5ee666dbd6d62e059830a3450825a2521a981b3f45c07a80ab009484aef56f0", size = 454150, upload-time = "2026-10-16T00:32:10.511Z" } wheels = [ @@ -11031,20 +11325,20 @@ resolution-markers = [ "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'", ] dependencies = [ - { name = "cuda-bindings" }, - { name = "cuda-toolkit", version = "13.0.2", source = { registry = "https://pypi.org/simple" }, extra = ["cublas", "cudart", "cufft", "cufile", "cupti", "curand", "cusolver", "cusparse", "nvjitlink", "nvrtc", "nvtx"] }, - { name = "filelock", version = "4.2.4", source = { registry = "https://pypi.org/simple" } }, - { name = "fsspec" }, - { name = "jinja2" }, - { name = "networkx", version = "3.7", source = { registry = "https://pypi.org/simple" } }, - { name = "nvidia-cudnn-cu13", version = "9.19.0.56", source = { registry = "https://pypi.org/simple" } }, - { name = "nvidia-cusparselt-cu13", version = "0.8.0", source = { registry = "https://pypi.org/simple" } }, - { name = "nvidia-nccl-cu13", version = "2.28.9", source = { registry = "https://pypi.org/simple" } }, - { name = "nvidia-nvshmem-cu13" }, - { name = "setuptools", version = "81.0.0", source = { registry = "https://pypi.org/simple" } }, - { name = "sympy" }, - { name = "triton", version = "3.6.0", source = { registry = "https://pypi.org/simple" } }, - { name = "typing-extensions" }, + { name = "cuda-bindings", marker = "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "cuda-toolkit", version = "13.0.2", source = { registry = "https://pypi.org/simple" }, extra = ["cublas", "cudart", "cufft", "cufile", "cupti", "curand", "cusolver", "cusparse", "nvjitlink", "nvrtc", "nvtx"], marker = "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "filelock", version = "4.2.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "fsspec", marker = "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "jinja2", marker = "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "networkx", version = "3.7", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "nvidia-cudnn-cu13", version = "9.19.0.56", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "nvidia-cusparselt-cu13", version = "0.8.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "nvidia-nccl-cu13", version = "2.28.9", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "nvidia-nvshmem-cu13", marker = "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "setuptools", version = "81.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "sympy", marker = "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "triton", version = "3.6.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "typing-extensions", marker = "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'" }, ] wheels = [ { url = "https://files.pythonhosted.org/packages/f9/1e/18a9b10b4bd34f12d4e561c52b0ae7158707b8193c6cfc0aad2b48167090/torch-2.11.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:1b32ceda909818a03b112006709b02be1877240c31750a8d9c6b7bf5f2d8a6e5", size = 530589207, upload-time = "2026-03-23T18:11:23.756Z" }, @@ -11063,41 +11357,41 @@ source = { registry = "https://pypi.org/simple" } resolution-markers = [ "python_full_version >= '3.14' and sys_platform == 'darwin'", "(python_full_version >= '3.14' and sys_platform == 'linux') or (python_full_version >= '3.14' and sys_platform == 'win32')", - "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.13.*' and sys_platform == 'darwin'", - "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", - "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "(python_full_version == '3.12.*' and platform_machine != 'x86_64' and sys_platform == 'linux') or (python_full_version == '3.12.*' and sys_platform == 'win32')", - "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'darwin'", - "(python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'linux') or (python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'win32')", - "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'darwin'", + "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", + "(python_full_version == '3.12.*' and platform_machine != 'x86_64' and sys_platform == 'linux') or (python_full_version == '3.12.*' and sys_platform == 'win32')", + "(python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'linux') or (python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'win32')", "(python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'linux') or (python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'win32')", - "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version < '3.11' and sys_platform == 'darwin'", "(python_full_version < '3.11' and sys_platform == 'linux') or (python_full_version < '3.11' and sys_platform == 'win32')", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version < '3.11' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", ] dependencies = [ - { name = "cuda-bindings", marker = "python_full_version < '3.15' and sys_platform == 'linux'" }, - { name = "cuda-toolkit", version = "13.0.3.0", source = { registry = "https://pypi.org/simple" }, extra = ["cublas", "cudart", "cufft", "cufile", "cupti", "curand", "cusolver", "cusparse", "nvjitlink", "nvrtc", "nvtx"], marker = "sys_platform == 'linux'" }, + { name = "cuda-bindings", marker = "(python_full_version >= '3.13' and python_full_version < '3.15' and sys_platform == 'linux') or (python_full_version < '3.15' and platform_machine != 'x86_64' and sys_platform == 'linux') or (python_full_version < '3.12' and platform_machine == 'x86_64' and sys_platform == 'linux')" }, + { name = "cuda-toolkit", version = "13.0.3.0", source = { registry = "https://pypi.org/simple" }, extra = ["cublas", "cudart", "cufft", "cufile", "cupti", "curand", "cusolver", "cusparse", "nvjitlink", "nvrtc", "nvtx"], marker = "(python_full_version != '3.12.*' and sys_platform == 'linux') or (platform_machine != 'x86_64' and sys_platform == 'linux')" }, { name = "filelock", version = "4.1.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, - { name = "filelock", version = "4.2.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*' or python_full_version >= '3.13' or (python_full_version == '3.12.*' and platform_machine != 'x86_64') or (python_full_version == '3.12.*' and sys_platform != 'linux')" }, - { name = "fsspec" }, - { name = "jinja2" }, + { name = "filelock", version = "4.2.4", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version >= '3.11' and platform_machine != 'x86_64') or (python_full_version == '3.11.*' and platform_machine == 'x86_64' and sys_platform == 'linux') or (python_full_version >= '3.13' and platform_machine == 'x86_64' and sys_platform == 'linux') or (python_full_version >= '3.11' and sys_platform != 'linux')" }, + { name = "fsspec", marker = "python_full_version != '3.12.*' or platform_machine != 'x86_64' or sys_platform != 'linux'" }, + { name = "jinja2", marker = "python_full_version != '3.12.*' or platform_machine != 'x86_64' or sys_platform != 'linux'" }, { name = "networkx", version = "3.4.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, { name = "networkx", version = "3.6.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*'" }, - { name = "networkx", version = "3.7", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.13' or (python_full_version == '3.12.*' and platform_machine != 'x86_64') or (python_full_version == '3.12.*' and sys_platform != 'linux')" }, - { name = "nvidia-cudnn-cu13", version = "9.24.0.43", source = { registry = "https://pypi.org/simple" }, marker = "sys_platform == 'linux'" }, - { name = "nvidia-cusparselt-cu13", version = "0.8.1", source = { registry = "https://pypi.org/simple" }, marker = "sys_platform == 'linux'" }, - { name = "nvidia-nccl-cu13", version = "2.30.7", source = { registry = "https://pypi.org/simple" }, marker = "sys_platform == 'linux'" }, - { name = "nvidia-nvshmem-cu13", marker = "sys_platform == 'linux'" }, - { name = "setuptools", version = "84.2.1", source = { registry = "https://pypi.org/simple" } }, - { name = "sympy" }, - { name = "triton", version = "3.8.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.15' and sys_platform == 'linux'" }, - { name = "typing-extensions" }, + { name = "networkx", version = "3.7", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version >= '3.12' and platform_machine != 'x86_64') or (python_full_version >= '3.13' and platform_machine == 'x86_64' and sys_platform == 'linux') or (python_full_version >= '3.12' and sys_platform != 'linux')" }, + { name = "nvidia-cudnn-cu13", version = "9.24.0.43", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version != '3.12.*' and sys_platform == 'linux') or (platform_machine != 'x86_64' and sys_platform == 'linux')" }, + { name = "nvidia-cusparselt-cu13", version = "0.8.1", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version != '3.12.*' and sys_platform == 'linux') or (platform_machine != 'x86_64' and sys_platform == 'linux')" }, + { name = "nvidia-nccl-cu13", version = "2.30.7", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version != '3.12.*' and sys_platform == 'linux') or (platform_machine != 'x86_64' and sys_platform == 'linux')" }, + { name = "nvidia-nvshmem-cu13", marker = "(python_full_version != '3.12.*' and sys_platform == 'linux') or (platform_machine != 'x86_64' and sys_platform == 'linux')" }, + { name = "setuptools", version = "84.2.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version != '3.12.*' or platform_machine != 'x86_64' or sys_platform != 'linux'" }, + { name = "sympy", marker = "python_full_version != '3.12.*' or platform_machine != 'x86_64' or sys_platform != 'linux'" }, + { name = "triton", version = "3.8.0", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version >= '3.13' and python_full_version < '3.15' and sys_platform == 'linux') or (python_full_version < '3.15' and platform_machine != 'x86_64' and sys_platform == 'linux') or (python_full_version < '3.12' and platform_machine == 'x86_64' and sys_platform == 'linux')" }, + { name = "typing-extensions", marker = "python_full_version != '3.12.*' or platform_machine != 'x86_64' or sys_platform != 'linux'" }, ] wheels = [ { url = "https://files.pythonhosted.org/packages/7a/45/b0c389051ed02d77227202caf2c2abb1706ca4362781eb79bd6707359970/torch-2.14.1-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:e24b9815001d18e73e76eae1ea25f8ef908c6103e857378ad20f8f6cf5c954f5", size = 127249640, upload-time = "2026-09-30T17:43:48.426Z" }, @@ -11126,6 +11420,41 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/45/05/451a69a4287033d8f106f5c65f92c2c0c37229d81ea101d4b047caf758cc/torch-2.14.1-cp314-cp314t-win_amd64.whl", hash = "sha256:e07306caa1de2a4ac1467e11ecfc92fc44f523dd6a521145039aef46d913963c", size = 124400129, upload-time = "2026-09-30T17:54:12.306Z" }, ] +[[package]] +name = "torchaudio" +version = "2.11.0" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8c/d9/357eb5fe4e19a861e6fa1af4d9f535e8fa8692336e6cf436e8a21262e054/torchaudio-2.11.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6ebb59c694909eccb5d61b7cc199d297692012c43286e36d92983aa7bad7586d", size = 684145, upload-time = "2026-03-23T18:13:46.671Z" }, + { url = "https://files.pythonhosted.org/packages/2a/79/90de77e73f395bba2fe477f8e82e4ae1d14d6452a706838765e850a5e80c/torchaudio-2.11.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:be7ad472acb16d16e98c005f0219b0db06a47dfe8f7b4d177062e1638f871e3b", size = 1626521, upload-time = "2026-03-23T18:13:40.98Z" }, + { url = "https://files.pythonhosted.org/packages/66/dc/5757ed7d8d11a6c14336bcb54e63980979f00005555fec80fb4aa4de5eff/torchaudio-2.11.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:5847fe2022b17c6580aeb39c8797a443411cc09edfd9183cd50ac1a3b8ccf97c", size = 1771929, upload-time = "2026-03-23T18:13:43.432Z" }, + { url = "https://files.pythonhosted.org/packages/cf/f4/8ce2417eac66296e45b7aaa69858403fb6a52b1323f8635ec37b4b0f1fa3/torchaudio-2.11.0-cp310-cp310-win_amd64.whl", hash = "sha256:7e2da1df4f6fe885c46db350a0dc90a0dff4b54541dff8846faa904d255e2bfe", size = 328661, upload-time = "2026-03-23T18:13:45.77Z" }, + { url = "https://files.pythonhosted.org/packages/94/77/0eec7f175d88f312296bd5b11c23bd58da37c1021f53da3db4df449ce3ee/torchaudio-2.11.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:492dd64645e9d0bb843e94f1d9a4d1e31426262ffc594fafecc1697df9df5eb9", size = 684142, upload-time = "2026-03-23T18:13:36.805Z" }, + { url = "https://files.pythonhosted.org/packages/b3/f9/6f7ebe071b44592c85269762b55b63ab0a091b5f479f73544738f7564a1e/torchaudio-2.11.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:73dab4841f94d888bc7c2aed7b5547c643edc974306919fe1adfb65d57cccf4b", size = 1626527, upload-time = "2026-03-23T18:13:39.011Z" }, + { url = "https://files.pythonhosted.org/packages/ac/70/17408e0d154d0c894537a88dcbadc48e8ad3b6e1ef4a1dabda5d40245ee0/torchaudio-2.11.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:1a07ec72fd6f26a588c39b5f029e0130d16bb40bc4221635580bf8fb18fcbc80", size = 1771930, upload-time = "2026-03-23T18:13:37.963Z" }, + { url = "https://files.pythonhosted.org/packages/c9/75/b6d03fc75b409bdaec597274d1bdd4213db716ed16f6801386b31d59c551/torchaudio-2.11.0-cp311-cp311-win_amd64.whl", hash = "sha256:bb59ba4452bbbe95d75ad3ef18df9824955625f36698ce9a5998a4a9f3c1ba1d", size = 328658, upload-time = "2026-03-23T18:13:44.545Z" }, + { url = "https://files.pythonhosted.org/packages/f1/b1/77658817acacd01a72b714440c62f419efc4d90170e704e8e7a2c0918988/torchaudio-2.11.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a1cf1acc883bee9cb906a933572fed6a8a933f86ef34e9ea7d803f72317e8c1b", size = 684226, upload-time = "2026-03-23T18:13:40.023Z" }, + { url = "https://files.pythonhosted.org/packages/78/28/c7adc053039f286c2aca0038b766cbe3294e66fec6b29a820e95128f9ede/torchaudio-2.11.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:bc653defca1c16154398517a1adc98d0fb7f1dd08e58ced217558d213c2c6e29", size = 1626670, upload-time = "2026-03-23T18:13:42.162Z" }, + { url = "https://files.pythonhosted.org/packages/88/d8/d6d0f896e064aa67377484efef4911cdcc07bce2929474e1417cc0af18c2/torchaudio-2.11.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:6503c0bdb29daf2e6281bb70ea2dfe2c3553b782b619eb5d73bdadd8a3f7cecf", size = 1771992, upload-time = "2026-03-23T18:13:33.188Z" }, + { url = "https://files.pythonhosted.org/packages/23/a8/941277ecc39f7a0a169d554302a1f1afd87c1d94a8aec828891916cea59a/torchaudio-2.11.0-cp312-cp312-win_amd64.whl", hash = "sha256:478110f981e5d40a8d82221732c57a56c85a1d5895fb8fe646e86ee15eded3bd", size = 328663, upload-time = "2026-03-23T18:13:19.218Z" }, + { url = "https://files.pythonhosted.org/packages/fb/9e/f76fcd9877c8c78f258ee34e0fb8291fdb91e6218d582d9ca66b1e4bd4ae/torchaudio-2.11.0-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:e3f9696a9ef1d49acc452159b052370c636406d072e9d8f10895fda87b591ea9", size = 679904, upload-time = "2026-03-23T18:13:28.329Z" }, + { url = "https://files.pythonhosted.org/packages/85/70/249c1498ebdad3e7752866635ec0855fc0dcf898beccda5a9d2b9df8e4d0/torchaudio-2.11.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:b034d7672f1c415434f48ef17807f2cce47f29e8795338c751d4e596c9fbe8b5", size = 1618523, upload-time = "2026-03-23T18:13:15.703Z" }, + { url = "https://files.pythonhosted.org/packages/4f/98/be13fe35d9aa5c26381c0e453c828a789d15c007f8f7d08c95341d19974d/torchaudio-2.11.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:1c1101c1243ef0e4063ec63298977e2d3655c15cf88d9eb0a1bd4fe2db9f47ea", size = 1771992, upload-time = "2026-03-23T18:13:35.343Z" }, + { url = "https://files.pythonhosted.org/packages/e2/8b/2bbb3dca6ff28cba0de250874d5ef4fc2822c47a934b59b3974cff3219ef/torchaudio-2.11.0-cp313-cp313-win_amd64.whl", hash = "sha256:986f4df5ed17b003dc52489468601720090e65f964f8bebccf90eb45bba75744", size = 328662, upload-time = "2026-03-23T18:13:18.308Z" }, + { url = "https://files.pythonhosted.org/packages/fe/ce/52c652d30af7d6e96c8f1735d26131e94708e3f38d852b8fa97958804dd8/torchaudio-2.11.0-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:bda09ea630ae7207384fb0f28c35e4f8c0d82dd6eba020b6b335ad0caa9fed49", size = 680814, upload-time = "2026-03-23T18:13:17.08Z" }, + { url = "https://files.pythonhosted.org/packages/06/95/1ad1507482e7263e556709a3f5f87fecd375a0742cdaf238806c8e72eaad/torchaudio-2.11.0-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:9fe3083c62e035646483a14e180d33561bdc2eed436c9ab1259c137fb7120b4a", size = 1618546, upload-time = "2026-03-23T18:13:29.686Z" }, + { url = "https://files.pythonhosted.org/packages/98/4c/480328ba07487eb9890406720304d0d460dd7a6a64098614f5aa53b662ca/torchaudio-2.11.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:13cff988697ccbad539987599f9dc672f40c417bed67570b365e4e5002bbd096", size = 1771991, upload-time = "2026-03-23T18:13:30.843Z" }, + { url = "https://files.pythonhosted.org/packages/3e/98/5d4790e2d6548768999acd34999d5aeefce8bcc23a07afaa5f03e723f557/torchaudio-2.11.0-cp313-cp313t-win_amd64.whl", hash = "sha256:ed404c4399ad7f172c86a47c1b25293d322d1d58e26b10b0456a86cf67d37d84", size = 328661, upload-time = "2026-03-23T18:13:34.359Z" }, + { url = "https://files.pythonhosted.org/packages/39/fe/ffa618b4f0d9732d7df7a2fa2bd48657d896599bc224e5af3c70d46c546b/torchaudio-2.11.0-cp314-cp314-macosx_12_0_arm64.whl", hash = "sha256:cc09cd1f6015b8549e7fe255fb1be5346b57e7fee06541d3f3dbb012d8c4715f", size = 679901, upload-time = "2026-03-23T18:13:25.472Z" }, + { url = "https://files.pythonhosted.org/packages/5c/54/f414d7b92dd0b3094a2409c95a97bd6c49aa0620da722a0e55462f9bd9cb/torchaudio-2.11.0-cp314-cp314-manylinux_2_28_aarch64.whl", hash = "sha256:79fb3cb99169fd41bd9719647261402a164da0d105a4d81f42a3260844ec5e79", size = 1618527, upload-time = "2026-03-23T18:13:26.68Z" }, + { url = "https://files.pythonhosted.org/packages/a8/a8/bf2e1f6ce24c990192400ae49b4acc1a0d0295b6c6a06bceecdc46ce08de/torchaudio-2.11.0-cp314-cp314-manylinux_2_28_x86_64.whl", hash = "sha256:00e9f71ab9c656f0abdb40c515bd65d4658ab0ad380dee27a2efd7d51dabd3d6", size = 1771995, upload-time = "2026-03-23T18:13:23.373Z" }, + { url = "https://files.pythonhosted.org/packages/83/6f/b0efb44e0bfe8dd4d78d76ae3be280354e1fb5c8631c782785d74cd8a7b1/torchaudio-2.11.0-cp314-cp314-win_amd64.whl", hash = "sha256:1424638adb8bb40087bc7b6eb103e8e4fe398210f09076f33b7b5e61501b5d66", size = 328662, upload-time = "2026-03-23T18:13:32.243Z" }, + { url = "https://files.pythonhosted.org/packages/60/84/1c792b0b700eac9a96772cfd9f96c097b17bca3234a2fde3c64b8063660d/torchaudio-2.11.0-cp314-cp314t-macosx_12_0_arm64.whl", hash = "sha256:da2725e250866da42a12934c9a6552f65a18b7187fd7a6221387f0e605fb3b96", size = 679926, upload-time = "2026-03-23T18:13:24.452Z" }, + { url = "https://files.pythonhosted.org/packages/9a/a0/62a5842062f739239691f2e57523e0570dd06704ad987755f7644a3afa23/torchaudio-2.11.0-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:1be3767064364ae82705bdf2b15c1e8b41fea82c4cd04d47428a8684b634b6ed", size = 1618552, upload-time = "2026-03-23T18:13:21.09Z" }, + { url = "https://files.pythonhosted.org/packages/6d/89/c293d818f9f899db93bf291b42401c05ae29acfb2e53d5341c30ea703e62/torchaudio-2.11.0-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:67f6edac29ed004652c11db5c19d9debb5d835695930574f564efc8bdd061bba", size = 1771986, upload-time = "2026-03-23T18:13:22.153Z" }, + { url = "https://files.pythonhosted.org/packages/93/f7/ee5da8c03f1a3c7662c6c6a119f24a4b3e646da94be56dce3201e3a6ee9b/torchaudio-2.11.0-cp314-cp314t-win_amd64.whl", hash = "sha256:88fb5e29f670a33d9bac6aabb1d2734460cf6e461bde5cdc352826035851b16d", size = 328661, upload-time = "2026-03-23T18:13:20.1Z" }, +] + [[package]] name = "torchvision" version = "0.26.0" @@ -11134,9 +11463,9 @@ resolution-markers = [ "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'", ] dependencies = [ - { name = "numpy", version = "2.5.4", source = { registry = "https://pypi.org/simple" } }, - { name = "pillow" }, - { name = "torch", version = "2.11.0", source = { registry = "https://pypi.org/simple" } }, + { name = "numpy", version = "2.5.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "pillow", version = "13.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "torch", version = "2.11.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'" }, ] wheels = [ { url = "https://files.pythonhosted.org/packages/5e/00/24d8c7845c3f270153fb81395a5135b2778e2538e81d14c6aea5106c689c/torchvision-0.26.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:b6f9ad1ecc0eab52647298b379ee9426845f8903703e6127973f8f3d049a798b", size = 7518249, upload-time = "2026-03-23T18:12:51.743Z" }, @@ -11155,29 +11484,30 @@ source = { registry = "https://pypi.org/simple" } resolution-markers = [ "python_full_version >= '3.14' and sys_platform == 'darwin'", "(python_full_version >= '3.14' and sys_platform == 'linux') or (python_full_version >= '3.14' and sys_platform == 'win32')", - "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.13.*' and sys_platform == 'darwin'", - "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", - "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "(python_full_version == '3.12.*' and platform_machine != 'x86_64' and sys_platform == 'linux') or (python_full_version == '3.12.*' and sys_platform == 'win32')", - "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'darwin'", - "(python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'linux') or (python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'win32')", - "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'darwin'", + "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", + "(python_full_version == '3.12.*' and platform_machine != 'x86_64' and sys_platform == 'linux') or (python_full_version == '3.12.*' and sys_platform == 'win32')", + "(python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'linux') or (python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'win32')", "(python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'linux') or (python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'win32')", - "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version < '3.11' and sys_platform == 'darwin'", "(python_full_version < '3.11' and sys_platform == 'linux') or (python_full_version < '3.11' and sys_platform == 'win32')", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version < '3.11' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", ] dependencies = [ { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*'" }, - { name = "numpy", version = "2.5.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.13' or (python_full_version == '3.12.*' and platform_machine != 'x86_64') or (python_full_version == '3.12.*' and sys_platform != 'linux')" }, - { name = "pillow" }, - { name = "torch", version = "2.14.1", source = { registry = "https://pypi.org/simple" } }, + { name = "numpy", version = "2.5.4", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version >= '3.12' and platform_machine != 'x86_64') or (python_full_version >= '3.13' and platform_machine == 'x86_64' and sys_platform == 'linux') or (python_full_version >= '3.12' and sys_platform != 'linux')" }, + { name = "pillow", version = "12.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "pillow", version = "13.0.0", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version >= '3.11' and platform_machine != 'x86_64') or (python_full_version == '3.11.*' and platform_machine == 'x86_64' and sys_platform == 'linux') or (python_full_version >= '3.13' and platform_machine == 'x86_64' and sys_platform == 'linux') or (python_full_version >= '3.11' and sys_platform != 'linux')" }, + { name = "torch", version = "2.14.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version != '3.12.*' or platform_machine != 'x86_64' or sys_platform != 'linux'" }, ] wheels = [ { url = "https://files.pythonhosted.org/packages/5e/cf/3d7e36c7a962692e919de99803005816b7bf45dc3e617198ec28cd7d8000/torchvision-0.29.1-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:9ef8de9b4a47b00dbe0a6a35bba22907f86f091adef57a76f1581502dbfc59f8", size = 1813850, upload-time = "2026-09-30T17:56:58.137Z" }, @@ -11210,6 +11540,11 @@ wheels = [ name = "tornado" version = "6.5.10" source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.11' and sys_platform == 'darwin'", + "(python_full_version < '3.11' and sys_platform == 'linux') or (python_full_version < '3.11' and sys_platform == 'win32')", + "python_full_version < '3.11' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", +] sdist = { url = "https://files.pythonhosted.org/packages/06/61/53d562a57b28c08eda40b258c0f975e360541943ad7c7bef897a40caafda/tornado-6.5.10.tar.gz", hash = "sha256:a6b1ccd08c04b4a06fb5aeb381be99de5ad1e5375c1785e31d78c880feb57687", size = 537910, upload-time = "2026-09-15T13:47:48.73Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/cd/5b/ff5fc58fa2427c30dea74c90053f4fc5eda1e7f3833ed3ecc7147fe2b311/tornado-6.5.10-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:9261783640e23258694a9ff0795df430a5a7b0a651d3dd53dd0969ad6be16da7", size = 465883, upload-time = "2026-09-15T13:47:35.463Z" }, @@ -11223,6 +11558,74 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/f3/1a/fd497f3a7f7b74bb04f4b94536b5c9f80742b5d50501fd27977652ddec16/tornado-6.5.10-cp39-abi3-win_arm64.whl", hash = "sha256:ce045d3c298fddd30e89a2777f97039d1b641eb9518ac7b26a4721903539c694", size = 467847, upload-time = "2026-09-15T13:47:47.283Z" }, ] +[[package]] +name = "tornado" +version = "6.6" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.14' and sys_platform == 'darwin'", + "(python_full_version >= '3.14' and sys_platform == 'linux') or (python_full_version >= '3.14' and sys_platform == 'win32')", + "python_full_version == '3.13.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'darwin'", + "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'", + "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", + "(python_full_version == '3.12.*' and platform_machine != 'x86_64' and sys_platform == 'linux') or (python_full_version == '3.12.*' and sys_platform == 'win32')", + "(python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'linux') or (python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'win32')", + "(python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'linux') or (python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'win32')", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", +] +sdist = { url = "https://files.pythonhosted.org/packages/d0/02/5f549b1ad5da6267ed1e1fac2eef69257b1979cc812497002499b7895ff9/tornado-6.6.tar.gz", hash = "sha256:34c4aa916d7f2b2d5cadee2c6850f5a4a7f3d688cbf58399ea9bd3057af4abd5", size = 617998, upload-time = "2026-10-21T15:31:04.733Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/df/f5/d3e6f76b945f9812842db742d0708a3b6287e850e81be3ca10e290c103c6/tornado-6.6-cp311-abi3-macosx_10_9_universal2.whl", hash = "sha256:01abf15429d64f04ccfafc238b191cc2c177108b7a331f4461707ad77198c8c2", size = 528326, upload-time = "2026-10-21T15:30:05.528Z" }, + { url = "https://files.pythonhosted.org/packages/30/69/b20cf3a8bf641ec792a5a6050aa153e8f120604f9c23471142de535113e5/tornado-6.6-cp311-abi3-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:11bb97c00981eb8254e55bd6a5ad960c983ae343fef8ae3ae5584cd1fb70236a", size = 529544, upload-time = "2026-10-21T15:30:07.126Z" }, + { url = "https://files.pythonhosted.org/packages/0f/f4/d9d8d3ac345aa9df3a132ad03bd443160c2ab24ad4003b4e8d6d5af06371/tornado-6.6-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4e152a3b2d3eae113b836d979823f7bb2320f7e334a84449729964921f374a4c", size = 530523, upload-time = "2026-10-21T15:30:08.478Z" }, + { url = "https://files.pythonhosted.org/packages/ad/82/1296ade1c14dee5a4906e5ca092997622ece7c4dc768c68ed9caaf895d1b/tornado-6.6-cp311-abi3-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:e912d4c4babd04db6f34b25b748174a4a176debe86c8610beedf1815f9af7fdd", size = 530739, upload-time = "2026-10-21T15:30:09.98Z" }, + { url = "https://files.pythonhosted.org/packages/66/30/6ac1eab66c81af46dafd93c9b24bd311f82e199d9d7b8ce2a64a91b6a200/tornado-6.6-cp311-abi3-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:33aabe8a03d426cef4e0fe5669f0643cadd983b54957f1a7ac2789ec326e9644", size = 529738, upload-time = "2026-10-21T15:30:11.498Z" }, + { url = "https://files.pythonhosted.org/packages/24/b4/6c1f6aa1fd148e4d0f500a10cd0c9949e7bf385e161ff497c81de5b3ae4f/tornado-6.6-cp311-abi3-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:9aaf0e1c2fb9f046f30e2036b8d2060666399e8464d0a72769e43c754089567b", size = 527908, upload-time = "2026-10-21T15:30:13.298Z" }, + { url = "https://files.pythonhosted.org/packages/54/5b/67d3d452b1179bc9e265cebd381a56ab4cf2d7b2a54607aedd8d6e1ebc2e/tornado-6.6-cp311-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:61fc5513cea97720ab9bf54b04827ac0f4500c63f0b072b963d6145c798b4661", size = 530367, upload-time = "2026-10-21T15:30:15.183Z" }, + { url = "https://files.pythonhosted.org/packages/74/14/4e8e9a14f77bcafb2408634b2d4c8c676ad7a43bf8dac4ee2d48370698f9/tornado-6.6-cp311-abi3-musllinux_1_2_ppc64le.whl", hash = "sha256:31e1a0d5cd704d2fe8a008c1cc27a0e2b67269ca263630a27985dddc160b5537", size = 530456, upload-time = "2026-10-21T15:30:16.741Z" }, + { url = "https://files.pythonhosted.org/packages/56/12/e3ddef99a2089ccfc86f32bd3f39caaad87bee4868be1bacbf213a0b07a2/tornado-6.6-cp311-abi3-musllinux_1_2_riscv64.whl", hash = "sha256:74416e41e9bdf70fbc2fb242f6fbbc7a58ec11e59d39f15fc5a421ecb6845118", size = 529610, upload-time = "2026-10-21T15:30:18.031Z" }, + { url = "https://files.pythonhosted.org/packages/35/3d/62a692343d46b37e852e5078e0f6513534d925f70a04580072e3c127b129/tornado-6.6-cp311-abi3-musllinux_1_2_s390x.whl", hash = "sha256:8cdd69104ae9d705b3f04d2563aa96e357043e267a455802daae9a1e633a37c8", size = 529803, upload-time = "2026-10-21T15:30:19.326Z" }, + { url = "https://files.pythonhosted.org/packages/49/04/6c59a9413adfe4810f648a4dd9fdf476f13b0495f9cc25ef856b71f9ce1e/tornado-6.6-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:fc7c8a3263501fbe97518cd699101bc3c5f499a7dd4f75fc6cbb3bd9ee1db1f1", size = 529751, upload-time = "2026-10-21T15:30:20.826Z" }, + { url = "https://files.pythonhosted.org/packages/31/36/a1b3b84cd347ae43f982d3bf95628de6c6365668dba2543af47c6a1c888e/tornado-6.6-cp311-abi3-win32.whl", hash = "sha256:b54ca69ff93d0374efb083a12a1e9ec2dd2036e8496d197e0e8ef77b8d9135c3", size = 530643, upload-time = "2026-10-21T15:30:22.428Z" }, + { url = "https://files.pythonhosted.org/packages/b7/50/dc813fe35a672e14ee8bed8b5c634eeb343a05c98eb455318a169de24567/tornado-6.6-cp311-abi3-win_amd64.whl", hash = "sha256:48f26ed9d7beb64e5f06adc864524e581ab6d62ba8ff46eaaa1ac2d0e6d753fd", size = 530886, upload-time = "2026-10-21T15:30:23.975Z" }, + { url = "https://files.pythonhosted.org/packages/0d/71/62a9b9e980026d38874740d0a7c162f53eb0563f6a441e3aff84c48db7e8/tornado-6.6-cp311-abi3-win_arm64.whl", hash = "sha256:29114ffd4e4de869d390393df9e9a0f191065aae1a96f38a58d35e464c04a867", size = 530899, upload-time = "2026-10-21T15:30:25.264Z" }, + { url = "https://files.pythonhosted.org/packages/ac/4c/633e3568eb574df555d6ddd2dac44b7793a5c26cd63b444e653fcfb1d6ec/tornado-6.6-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:63fc8d243b52fd8dd9ed4ad02d0df08f2024f9aea632a433a8a6c91075076d44", size = 528432, upload-time = "2026-10-21T15:30:26.578Z" }, + { url = "https://files.pythonhosted.org/packages/37/eb/b525d1870ad28a56f47b664dd8fd3fab4f7ddd237c87c14e97248bf4762f/tornado-6.6-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:8d4b85cac795bfc6a7f20ba81871abb8c2ae8fba019061b8a9ae1c2f97e29637", size = 532586, upload-time = "2026-10-21T15:30:28.027Z" }, + { url = "https://files.pythonhosted.org/packages/b7/35/909a33c253352346ca081a27ca66b45c1398468adf784b767597ca773c28/tornado-6.6-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e035c065edadfa696529d05eebcbeb25154c129b5aee6dbfb697a6abf5d4f697", size = 533641, upload-time = "2026-10-21T15:30:29.318Z" }, + { url = "https://files.pythonhosted.org/packages/6f/64/100202666d6e3d96288ab184827762415456c139798a15c962547f9fabf9/tornado-6.6-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:5b94e589ab855090c448b5c0937b3a75f1c1a604b7b36207e8236d209f720b9c", size = 533869, upload-time = "2026-10-21T15:30:30.882Z" }, + { url = "https://files.pythonhosted.org/packages/b1/e0/af3ed62bc15830d60328d5b4a1a9076b35ea0ba142cb17b1c1772cb15c59/tornado-6.6-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:1a394c8c9db9137f2a2b42869d9f7b91398fcf19da120d0dde4c4546172710f7", size = 532767, upload-time = "2026-10-21T15:30:32.273Z" }, + { url = "https://files.pythonhosted.org/packages/24/d7/1e2e1a6932eb62d63324b64dba2f62e6eaf79ad883dd209352c297b7848c/tornado-6.6-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:0215d1df6e4b5e736ddad5adf0af4138cf7437fdd39c77c5e69768e37850a632", size = 530956, upload-time = "2026-10-21T15:30:33.746Z" }, + { url = "https://files.pythonhosted.org/packages/70/65/3b9a0e53d7a4c39f2ebe95486540fa8eeb67bfb6e8c437d603c00d35b128/tornado-6.6-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:4d711790e0a9576ad924d942c4607e4e401d697588ea6f30f6662824008a7add", size = 533372, upload-time = "2026-10-21T15:30:35.085Z" }, + { url = "https://files.pythonhosted.org/packages/44/48/90979cbfaa3ff941324a2605eb794af0f087c670cd99f18a69ab40498073/tornado-6.6-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:034a66bae0f55421d007803e2385d2a59707d8829b2f026373d42f08256e9922", size = 533425, upload-time = "2026-10-21T15:30:36.425Z" }, + { url = "https://files.pythonhosted.org/packages/bb/c4/ce743a86d91f85c255b77a4282eb5b2716b61e74430eb9d1df8578a539d2/tornado-6.6-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:5cb38483b077129056a94dd415a71d29ab4e42b46da894fee8b4657003f10b21", size = 532545, upload-time = "2026-10-21T15:30:37.789Z" }, + { url = "https://files.pythonhosted.org/packages/02/5e/a82131e35778540fc19139229d02aa8cf2453a8022e202be50c88f0f8ac3/tornado-6.6-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:46bbbd107efa37777ac4b83601866d19b4dbd5b770a7a9123582633d95959ad3", size = 532700, upload-time = "2026-10-21T15:30:39.336Z" }, + { url = "https://files.pythonhosted.org/packages/3a/09/6dac8c2c677c65d60b3d7dae94176dbfe392f314e7c8e2d709623edd6a26/tornado-6.6-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:b85e9d0263cdbc027b95947c8b873a7bc7fd6a08d16bfb4f5047350b0808e464", size = 532712, upload-time = "2026-10-21T15:30:40.698Z" }, + { url = "https://files.pythonhosted.org/packages/b2/ac/71e5776cbcdc3264e81aa6db28c69717ba50607a9eb8d5b766f11a4b020e/tornado-6.6-cp314-cp314t-win32.whl", hash = "sha256:4276eef0880e5fe4488e6799c2842f59af3b06637e9313ab4fb506f9c9c2d6cb", size = 530491, upload-time = "2026-10-21T15:30:42.115Z" }, + { url = "https://files.pythonhosted.org/packages/d8/0f/0b6a6908a5b5aa8320009dfdb84434b1cf160b577a00456e59ab9e6ea598/tornado-6.6-cp314-cp314t-win_amd64.whl", hash = "sha256:10d4af98c6df09f8429b1340ccaea3a72887b86f695dfb8056bda517c8115a00", size = 530780, upload-time = "2026-10-21T15:30:43.414Z" }, + { url = "https://files.pythonhosted.org/packages/3c/39/c152e1cc5371f75f5f9f0a4f44bf2dc9396be9407d384de7428446fb4651/tornado-6.6-cp314-cp314t-win_arm64.whl", hash = "sha256:b1f0ef20a5278854f5fdac31637bafadb055405df28b7fc945e54add12b172e3", size = 530781, upload-time = "2026-10-21T15:30:44.741Z" }, + { url = "https://files.pythonhosted.org/packages/0c/c5/f96c7d7a8895745bb37dfb6e6107e1ee40ad02a4b162d7d6c143644455ab/tornado-6.6-cp315-cp315t-macosx_10_15_universal2.whl", hash = "sha256:8f8e382da30fe042f27f27a871e21aefc2613870e5a41648de18446c72d6ea59", size = 528446, upload-time = "2026-10-21T15:30:46.112Z" }, + { url = "https://files.pythonhosted.org/packages/c0/dd/ab8f6500d274b9c55b025798eb54e92591bcff27515799bec443bd54e35a/tornado-6.6-cp315-cp315t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:8c7a8a328396c2195454a2ecd9499512441bbce99505544a717e6a87d16ff6f9", size = 532774, upload-time = "2026-10-21T15:30:47.393Z" }, + { url = "https://files.pythonhosted.org/packages/87/23/b78e7d1bf329160b8157284005395421ea941864c16c7f04c3e48c98bcf9/tornado-6.6-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ca025bb0da81c294aef26f27427316df1525220820315f4bf32dc1e84a4d2232", size = 533872, upload-time = "2026-10-21T15:30:48.884Z" }, + { url = "https://files.pythonhosted.org/packages/e0/4f/ab66b614ad0bc9a219484be6bc2c002c8de9916a7b6c7b27fe6273838e5c/tornado-6.6-cp315-cp315t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:59c22ebc905ac2a267f8d9d8a878f86afbcbbde329d75c485f1422fc45a81b83", size = 534027, upload-time = "2026-10-21T15:30:50.157Z" }, + { url = "https://files.pythonhosted.org/packages/da/63/501fa15a36bace2f4b9158228cf922d606403261bf71c960c433ec3ca0a4/tornado-6.6-cp315-cp315t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f89802bc0bcd15f988d9325b4e6d2171bb04ea68d188732556335e10d3fd00bd", size = 532936, upload-time = "2026-10-21T15:30:51.45Z" }, + { url = "https://files.pythonhosted.org/packages/7f/b7/82d643f635f0300bda98613ca2660b4f3134b6fb594c6fddfa4de706806c/tornado-6.6-cp315-cp315t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:70043256d5958f9c655066153d23d60ea3e29bf9854f7fb75850e223c477758a", size = 531254, upload-time = "2026-10-21T15:30:52.865Z" }, + { url = "https://files.pythonhosted.org/packages/d4/53/92c40891a94750bc09257310af964bf25c59e3531d6199736c318baa864f/tornado-6.6-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:82b49495e3849d644b841ef33b35491160055997deaa93720ff647ef019421db", size = 533566, upload-time = "2026-10-21T15:30:54.15Z" }, + { url = "https://files.pythonhosted.org/packages/7e/88/b82f5c5efde731b88d839ad99cb6ace2a521f03bb6d7346d2de089c76da8/tornado-6.6-cp315-cp315t-musllinux_1_2_ppc64le.whl", hash = "sha256:07b2bcaa4bf447bdbfb664e4c28344226540db3f0ebccd74886528338a240765", size = 533567, upload-time = "2026-10-21T15:30:55.451Z" }, + { url = "https://files.pythonhosted.org/packages/02/2c/e9a7f5d0fca0bdbcd48b2d9c7884dd0b32669c9945d98bc6d303a80ecfea/tornado-6.6-cp315-cp315t-musllinux_1_2_riscv64.whl", hash = "sha256:c36b921374c302e54909bae17d9f354061d80e7ae7d8c94f73abbcc217866460", size = 532849, upload-time = "2026-10-21T15:30:56.729Z" }, + { url = "https://files.pythonhosted.org/packages/d0/f5/4ade737340ca6ce9c677ea0c2843591c8ad065d07f0913c28d922c7e078e/tornado-6.6-cp315-cp315t-musllinux_1_2_s390x.whl", hash = "sha256:7412d9e37aa9f7048e4b591f520a95f7a097278ffab15f1ddf3f5c2320cf6648", size = 532873, upload-time = "2026-10-21T15:30:58.067Z" }, + { url = "https://files.pythonhosted.org/packages/8e/04/6acdc937d0bb6189ddb34ceded517d7bd1c7b3bded5d4e1b3442160e6b6f/tornado-6.6-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:15bc95112b2d24b0bfaee9a004e3f974da929e33b4244a7f695a22f45b08a5e5", size = 532883, upload-time = "2026-10-21T15:30:59.395Z" }, + { url = "https://files.pythonhosted.org/packages/ab/27/0a766fac6b1cc629d96346329a0485287fd2857c51a887a3a154f2a69938/tornado-6.6-cp315-cp315t-win32.whl", hash = "sha256:f661c21117b875d612371f3eb243d0c69f56d9bdd6aee38b7c24453419dfe554", size = 530488, upload-time = "2026-10-21T15:31:00.77Z" }, + { url = "https://files.pythonhosted.org/packages/5c/80/3e4142570883da27b3f60ae82c638ac96e60997eac684740613557519c96/tornado-6.6-cp315-cp315t-win_amd64.whl", hash = "sha256:ee8853ab35da510dc952879ebd9995c82bc10ffb7925fd87930dc0d6916f4b39", size = 530777, upload-time = "2026-10-21T15:31:02.087Z" }, + { url = "https://files.pythonhosted.org/packages/17/57/4a85c617b6349962320b4afbe1386d5b05fd57218ee8ad6e82e0110ec9ee/tornado-6.6-cp315-cp315t-win_arm64.whl", hash = "sha256:7de62e2dfdf559fd7154d2b9aa58ff3d9cff8304ae0519341feb082618bc2a33", size = 530780, upload-time = "2026-10-21T15:31:03.425Z" }, +] + [[package]] name = "tqdm" version = "4.70.1" @@ -11253,15 +11656,15 @@ resolution-markers = [ "python_full_version == '3.12.*' and sys_platform == 'darwin'", ] dependencies = [ - { name = "huggingface-hub" }, - { name = "numpy", version = "2.5.4", source = { registry = "https://pypi.org/simple" } }, - { name = "packaging" }, - { name = "pyyaml" }, - { name = "regex" }, - { name = "safetensors" }, - { name = "tokenizers" }, - { name = "tqdm" }, - { name = "typer" }, + { name = "huggingface-hub", marker = "python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform == 'darwin'" }, + { name = "numpy", version = "2.5.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform == 'darwin'" }, + { name = "packaging", marker = "python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform == 'darwin'" }, + { name = "pyyaml", marker = "python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform == 'darwin'" }, + { name = "regex", marker = "python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform == 'darwin'" }, + { name = "safetensors", marker = "python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform == 'darwin'" }, + { name = "tokenizers", marker = "python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform == 'darwin'" }, + { name = "tqdm", marker = "python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform == 'darwin'" }, + { name = "typer", marker = "python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform == 'darwin'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/ad/2e/ba418680ab901dae269360bb8642485eae04f1af91ee2ebb8bd6f3607305/transformers-5.16.1.tar.gz", hash = "sha256:17b0eac726ddc55e84ac58946063e0c6d37fd000c456b581f050ea0f4e822869", size = 9650542, upload-time = "2026-08-26T14:48:58.789Z" } wheels = [ @@ -11275,34 +11678,34 @@ source = { registry = "https://pypi.org/simple" } resolution-markers = [ "python_full_version >= '3.14' and sys_platform == 'darwin'", "(python_full_version >= '3.14' and sys_platform == 'linux') or (python_full_version >= '3.14' and sys_platform == 'win32')", - "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", - "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", - "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'darwin'", + "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'", + "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", "(python_full_version == '3.12.*' and platform_machine != 'x86_64' and sys_platform == 'linux') or (python_full_version == '3.12.*' and sys_platform == 'win32')", - "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", - "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'darwin'", "(python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'linux') or (python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'win32')", - "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", - "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'darwin'", "(python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'linux') or (python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'win32')", - "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version < '3.11' and sys_platform == 'darwin'", "(python_full_version < '3.11' and sys_platform == 'linux') or (python_full_version < '3.11' and sys_platform == 'win32')", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version < '3.11' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", ] dependencies = [ - { name = "huggingface-hub" }, + { name = "huggingface-hub", marker = "python_full_version < '3.12' or python_full_version >= '3.14' or sys_platform != 'darwin'" }, { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*'" }, - { name = "numpy", version = "2.5.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.14' or (python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform != 'darwin')" }, - { name = "packaging" }, - { name = "pyyaml" }, - { name = "regex" }, - { name = "safetensors" }, - { name = "tokenizers" }, - { name = "tqdm" }, - { name = "typer" }, + { name = "numpy", version = "2.5.4", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version >= '3.12' and sys_platform != 'darwin') or (python_full_version >= '3.14' and sys_platform == 'darwin')" }, + { name = "packaging", marker = "python_full_version < '3.12' or python_full_version >= '3.14' or sys_platform != 'darwin'" }, + { name = "pyyaml", marker = "python_full_version < '3.12' or python_full_version >= '3.14' or sys_platform != 'darwin'" }, + { name = "regex", marker = "python_full_version < '3.12' or python_full_version >= '3.14' or sys_platform != 'darwin'" }, + { name = "safetensors", marker = "python_full_version < '3.12' or python_full_version >= '3.14' or sys_platform != 'darwin'" }, + { name = "tokenizers", marker = "python_full_version < '3.12' or python_full_version >= '3.14' or sys_platform != 'darwin'" }, + { name = "tqdm", marker = "python_full_version < '3.12' or python_full_version >= '3.14' or sys_platform != 'darwin'" }, + { name = "typer", marker = "python_full_version < '3.12' or python_full_version >= '3.14' or sys_platform != 'darwin'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/8c/4e/3cd6f08cc84ee612d40f3cdb1649475e7c997f2d5cbd95ade8780708af62/transformers-5.20.2.tar.gz", hash = "sha256:080871e061546d720be57f5846fce426f46b44d61574907cc7404c2cba49d180", size = 10225379, upload-time = "2026-10-19T17:46:03.092Z" } wheels = [ @@ -11443,16 +11846,16 @@ version = "3.8.0" source = { registry = "https://pypi.org/simple" } resolution-markers = [ "(python_full_version >= '3.14' and sys_platform == 'linux') or (python_full_version >= '3.14' and sys_platform == 'win32')", - "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "(python_full_version == '3.13.*' and sys_platform == 'linux') or (python_full_version == '3.13.*' and sys_platform == 'win32')", - "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "(python_full_version == '3.12.*' and platform_machine != 'x86_64' and sys_platform == 'linux') or (python_full_version == '3.12.*' and sys_platform == 'win32')", - "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "(python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'linux') or (python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform == 'win32')", - "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "(python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'linux') or (python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform == 'win32')", - "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "(python_full_version < '3.11' and sys_platform == 'linux') or (python_full_version < '3.11' and sys_platform == 'win32')", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version >= '3.11.5' and python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", + "python_full_version >= '3.11' and python_full_version < '3.11.5' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", "python_full_version < '3.11' and sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32'", ] wheels = [ @@ -11512,7 +11915,8 @@ version = "3.8.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "colorama" }, - { name = "importlib-metadata" }, + { name = "importlib-metadata", version = "9.0.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "importlib-metadata", version = "9.1.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "keyring" }, { name = "pkginfo" }, { name = "readme-renderer" }, @@ -12080,11 +12484,11 @@ wheels = [ [[package]] name = "xlsxwriter" -version = "3.2.9" +version = "3.3.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/46/2c/c06ef49dc36e7954e55b802a8b231770d286a9758b3d936bd1e04ce5ba88/xlsxwriter-3.2.9.tar.gz", hash = "sha256:254b1c37a368c444eac6e2f867405cc9e461b0ed97a3233b2ac1e574efb4140c", size = 215940, upload-time = "2025-09-16T00:16:21.63Z" } +sdist = { url = "https://files.pythonhosted.org/packages/93/f2/98b45e52bc0330256bd4bb039cc44b28f838ad85602ce4f358f355d501bb/xlsxwriter-3.3.0.tar.gz", hash = "sha256:0a6bf2e4dcec8b29dd9b86d1e622132134c48bb6fd10f925fdfb229f0447199a", size = 221380, upload-time = "2026-10-22T00:26:03.317Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/3a/0c/3662f4a66880196a590b202f0db82d919dd2f89e99a27fadef91c4a33d41/xlsxwriter-3.2.9-py3-none-any.whl", hash = "sha256:9a5db42bc5dff014806c58a20b9eae7322a134abb6fce3c92c181bfb275ec5b3", size = 175315, upload-time = "2025-09-16T00:16:20.108Z" }, + { url = "https://files.pythonhosted.org/packages/ce/9d/3d30eaaa7e06bdb6172f938b2661d64f8d899bdca54120384ecf3759488a/xlsxwriter-3.3.0-py3-none-any.whl", hash = "sha256:5f04772d43281da5109af66f39b65153359a203e896847c416476e709b024469", size = 179548, upload-time = "2026-10-22T00:26:02.009Z" }, ] [[package]] @@ -12476,11 +12880,11 @@ wheels = [ [[package]] name = "zipp" -version = "4.1.1" +version = "4.1.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/dc/23/655a1802fe8041302c959774ca7c80b53bc24737ff3ef45cb50ef11bd96c/zipp-4.1.1.tar.gz", hash = "sha256:7ebb7a44c021b29fd8dbd7cce6812d0d7b5b454521f93cc71af6ccd155aaa70b", size = 27649, upload-time = "2026-10-03T17:03:03.452Z" } +sdist = { url = "https://files.pythonhosted.org/packages/18/05/ba1458dee0ac485b2a01071c1b88f5199fe878a485df482e10e1ef2205cc/zipp-4.1.2.tar.gz", hash = "sha256:cf474b90b07ea932637e17c6b9479de2b2882900b0d311bdaf4f5c000a15a97f", size = 27864, upload-time = "2026-10-21T18:57:04.743Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/b5/98/df615823cd9419131ce19fba00de53a663794369e198aade064a244b385d/zipp-4.1.1-py3-none-any.whl", hash = "sha256:8979f52d874162f485ff2981e3891f3a3317b7a3dd43ff1e1775b9304f307a9c", size = 10582, upload-time = "2026-10-03T17:03:02.506Z" }, + { url = "https://files.pythonhosted.org/packages/b8/44/7bd2007260da11cccca29ba2d4c345f1287aa663db38ee7cefeabf6386a5/zipp-4.1.2-py3-none-any.whl", hash = "sha256:b30cb6cd253122169c47de245ca24a86bac2a5d3802ba15bf7ba6414eb9e144d", size = 10581, upload-time = "2026-10-21T18:57:03.79Z" }, ] [[package]]