From b2d10d67308c8e791a691bfef3f2b3091d5426bb Mon Sep 17 00:00:00 2001 From: stephen Date: Thu, 23 Jul 2026 22:34:45 +1000 Subject: [PATCH] uv set all modules loaded --- README.md | 1 + doc/notes.md | 798 +++++++++++++++++++ doc/notes.pdf | Bin 0 -> 329672 bytes pyproject.toml | 45 ++ uv.lock | 1979 ++++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 2823 insertions(+) create mode 100644 README.md create mode 100644 doc/notes.pdf create mode 100644 pyproject.toml create mode 100644 uv.lock diff --git a/README.md b/README.md new file mode 100644 index 0000000..dc96292 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +# 141 Spanish Assistant diff --git a/doc/notes.md b/doc/notes.md index e69de29..567b21f 100644 --- a/doc/notes.md +++ b/doc/notes.md @@ -0,0 +1,798 @@ +- [1. Executive Overview](#1-executive-overview) +- [2. System Architecture \& Data Flow](#2-system-architecture--data-flow) + - [2.1. Input Stage:](#21-input-stage) + - [2.2. Inference Stage:](#22-inference-stage) + - [2.3. Synthesis Stage:](#23-synthesis-stage) + - [2.4. Output \& Evaluation Stage:](#24-output--evaluation-stage) +- [3. Key Tech Stack \& Components](#3-key-tech-stack--components) +- [4. User Interface Layout (PySide6)](#4-user-interface-layout-pyside6) +- [5. Core Advantages of This Design](#5-core-advantages-of-this-design) +- [6. Layout Explanation](#6-layout-explanation) +- [7. Code Structure](#7-code-structure) +- [8. Key Technical Recommendations for app/modules/](#8-key-technical-recommendations-for-appmodules) +- [9. Structure Review \& Observations](#9-structure-review--observations) +- [10. Recommended .gitignore](#10-recommended-gitignore) +- [11. Tree Commands](#11-tree-commands) + - [11.1. Excluding noisy hidden folders](#111-excluding-noisy-hidden-folders) + - [11.2. Setting up Git](#112-setting-up-git) + - [11.3. Step-by-Step Commands](#113-step-by-step-commands) +- [12. Can you help me write the pyproject.toml file for uv including PySide6, mlx-whisper, and Kokoro?](#12-can-you-help-me-write-the-pyprojecttoml-file-for-uv-including-pyside6-mlx-whisper-and-kokoro) +- [13. How to Initialize \& Install using uv](#13-how-to-initialize--install-using-uv) + - [13.0.1. Note on Python Version:](#1301-note-on-python-version) + - [13.1. Errors and Fixes](#131-errors-and-fixes) + - [13.1.1. Step-by-Step Resolution Commands](#1311-step-by-step-resolution-commands) + - [13.1.2. I got the following errors uv sync](#1312-i-got-the-following-errors-uv-sync) +- [Create basic PySide6 boilerplate for main.py, main\_window.py, and the tab modules](#create--basic-pyside6-boilerplate-for-mainpy-main_windowpy-and-the-tab-modules) + + +# 1. Executive Overview + +The project is a 100% offline, privacy-first Spanish speech practice assistant running natively on an Apple MacBook Pro M3. It creates a low-latency conversational feedback loop where you speak in Spanish, receive a generated audio response from a local LLM, and get automated feedback comparing your spoken pronunciation against the expected text. + +# 2. System Architecture & Data Flow + +```zsh +┌────────────────┐ ┌─────────────────────┐ ┌──────────────────────┐ +│ Mic Input │ ──> │ mlx-whisper (STT) │ ──> │ PySide6 GUI │ +└────────────────┘ └─────────────────────┘ └──────────┬───────────┘ + │ + ▼ +┌────────────────┐ ┌─────────────────────┐ ┌──────────────────────┐ +│ Mac Speakers │ <── │ Kokoro-82M (TTS) │ <── │ Gemma 4 (llama.cpp) │ +└────────────────┘ └─────────────────────┘ └──────────┬───────────┘ + │ + ▼ + ┌──────────────────────┐ + │ Feedback & SQLite DB │ + └──────────────────────┘ +``` + +## 2.1. Input Stage: +Your speech is recorded through the MacBook Pro's built-in microphone array and transcribed to Spanish text using mlx-whisper. + +## 2.2. Inference Stage: +Transcribed text (along with recent session history from SQLite) is sent via HTTP to a local llama.cpp server running Gemma 4. + +## 2.3. Synthesis Stage: +Gemma’s response is passed to Kokoro-82M, generating high-quality Spanish speech audio offline. + +## 2.4. Output & Evaluation Stage: +Audio plays directly through your MacBook speakers via sounddevice. Concurrently, a feedback engine compares your spoken text against target phrases to highlight pronunciation accuracy and tracks your progress in SQLite. + +# 3. Key Tech Stack & Components + +|Component|Selected Technology|Role & Key Features| +|---------|-------------------|-------------------| +|Package Management|uv|"Fast Python environment setup, dependency management, and script execution (uv run main.py)."| +|GUI Framework|PySide6|Multi-tab desktop application using QtAsyncio to keep network and audio processes non-blocking.| +|LLM Server|Gemma 4 via llama.cpp|Local LLM inference server hosted on localhost:8080 with Metal GPU acceleration.| +|Speech-to-Text (STT)|mlx-whisper|"Apple Silicon-optimized Whisper engine utilizing the MLX framework for fast, accurate Spanish transcription."| +|Text-to-Speech (TTS)|Kokoro-82M|"Open-weight (Apache 2.0)| 82M parameter offline TTS engine generating 24kHz Spanish audio."| +|Feedback Engine,feedback_engine.py|"Calculates word error rates (WER), sequence similarity, and mispronounced/dropped words."| +|Data Storage|SQLite3|"Local relational database storing chat sessions| transcripts, system logs, and pronunciation scores."| +|Dev Environment|VS Code + Forgejo|Managed locally with self-hosted Git on Forgejo.| + +# 4. User Interface Layout (PySide6) + +The GUI consists of two main tabs: + +* Tab 1: Conversación (Live Chat & Practice) + + * Displays the streaming conversation transcript between you and the Assistant. + + * Shows visual feedback cards after each spoken turn (e.g., Pronunciation Accuracy Score %, highlighted missing words, and accent notes). + +* Tab 2: Control & Logs + + * Displays system status (llama.cpp server state, latency metrics). + + * Includes an embedded SQLite table viewer to inspect past conversation history and track language progress over time. + +# 5. Core Advantages of This Design + +* Zero Cloud Dependencies: Completely offline—no API costs, no network latency, and total privacy for your audio data. + +* Hardware Optimized: Leverages your M3 Mac's Unified Memory, Metal GPU, and Neural Engine for sub-second pipeline processing. + +* Clean Open-Source Licensing: Replaces proprietary components (like edge-tts) with permissive open-weight/open-source alternatives (Apache 2.0 / LGPL / MIT). + + +```zsh ++-------------------------------------------------------------------------------------------------------+ +| SPANISH VOICE PRACTICE AI [PySide6] [ _ ] [ X ] | ++-------------------------------------------------------------------------------------------------------+ +| [ CONVERSACIÓN (Practice) ] [ CONTROL & LOGS (Settings) ] | ++-------------------------------------------------------------------------------------------------------+ +| | +| [TAB 1: CONVERSACIÓN] | +| | +| +-------------------------------------------------------------------------------------------------+ | +| | [CHAT DISPLAY - QTextEdit (Read-Only)] | | +| | | | +| | [User (Whisper)]: Hola Gemma, ¿cómo puedo mejorar mi acento español? | | +| | | | +| | [Assistant (Kokoro)]: ¡Hola! La mejor forma de mejorar es practicar en voz alta todos los días. | | +| | Intenta imitar mi entonación. | | +| | | | +| | [User (Whisper)]: ¿Puedes darme una frase para practica? | | +| | | | +| +-------------------------------------------------------------------------------------------------+ | +| | +| +-------------------------------------------------------------------------------------------------+ | +| | [FEEDBACK PANEL - QFrame (Visible after speaking)] | | +| | | | +| | Pronunciation Score: [ 88% ] [|||||||||| ] (Good) | | +| | -------------------------------------------------- | | +| | Target Text: "¿Puedes darme una frase para practicar?" | | +| | Spoken Text: "¿Puedes darme una frase para practica_?" | | +| | -------------------------------------------------- | | +| | [i] Notes: Watch your word endings (verb infinitives like 'practicar'). | | +| +-------------------------------------------------------------------------------------------------+ | +| | +| +-------------------------------------------------------------------------------------------------+ | +| | [INPUT AREA] | | +| | | | +| | [ HOLD SPACE TO SPEAK / Type your prompt... ] [ RECORD (O) ] [ SEND (->) ] | | +| | | | +| +-------------------------------------------------------------------------------------------------+ | +| | ++-------------------------------------------------------------------------------------------------------+ +| System Status: Assistant Speaking... [DB Session: 104] | ++-------------------------------------------------------------------------------------------------------+ +``` + +# 6. Layout Explanation +1. Main Window Structure + * Frameless/Standard QMainWindow: A clean modern window titled "Spanish Voice Practice AI." + + * QTabWidget: The core navigation anchor. + + * Tab 1 (Conversación): The main interaction zone shown above. + + * Tab 2 (Control & Logs): (Not pictured) Would contain database viewing, LLM parameter sliders (temperature, max tokens), and system performance logs (latency checks). + +2. Chat Display (QTextEdit) + * Displays a scrolling log of the conversation. + + * Uses rich text formatting to differentiate between User, Assistant, and any system alerts. + + * Transcripts from mlx-whisper are inserted here automatically. + +3. Feedback Panel (QFrame) + * This panel appears (or updates) dynamically after the user finishes speaking and Whisper transcribes the audio. + + * It displays the results generated by the PronunciationFeedbackEngine: + + * Visual Score Bar: A colored bar/meter showing accuracy. + + * Diff View: Uses HTML color coding (e.g., Red for omissions, Green for correct words) to visually compare Gemma's target text against the actual spoken transcription. + +4. Input Area (QHBoxLayout) + * Combined Input: Primarily focused on voice, but includes a text fallback. + + * Voice Trigger: A prominent visual button (RECORD (O)) and a keyboard shortcut (e.g., holding Spacebar) to initiate recording via the STTEngine. + + * Send Button: A classic arrow icon for sending text input or manually submitting a recorded chunk. + +5. Status Bar (QStatusBar) + * Provides real-time feedback on what the background systems are doing (e.g., "Whisper Transcribing...", "Gemma Generating...", "Kokoro Speaking...", "Ready"). + + * Displays the current active SQLite database session ID. + +# 7. Code Structure + +1. GUI Framework Alignment: You’ve migrated this project to PySide6 (as noted in your comment), but double-check that your UI imports and sub-classes across main.py, main_window.py, chat_tab.py, and control_tab.py are strictly using PySide6.QtWidgets rather than PyQt6. + +2. Local macOS Optimization Opportunities: Since you are running locally on Apple Silicon (M3), using standard cloud/hybrid pipelines (edge-tts) or baseline CPU bindings might introduce unnecessary network latency or underutilize your Unified Memory. + + ## Tree Structure + +```zsh +spanish-assistant/ +├── pyproject.toml # UV dependency management (PySide6, mlx-whisper, etc.) +├── app/ +│ ├── __init__.py +│ ├── main.py # PySide6 App entrypoint (QApplication) +│ ├── db.py # SQLite3 Context Manager & Repository pattern +│ ├── modules/ +│ │ ├── llm_controller.py # Subprocess / HTTP client for local llama.cpp server +│ │ ├── stt_engine.py # Speech-to-Text (mlx-whisper / PyAudio capture) +│ │ └── tts_engine.py # Text-to-Speech (Local Kokoro-TTS or edge-tts fallback) +│ └── ui/ +│ ├── main_window.py # Main PySide6 QMainWindow / QTabWidget +│ ├── chat_tab.py # Tab 1: Interactive Spanish audio/text interface +│ └── control_tab.py # Tab 2: Logs, DB Inspector, and local LLM parameter controls +└── data/ + └── conversation_history.db # Local SQLite database storage + +``` + +# 8. Key Technical Recommendations for app/modules/ +1. Speech-to-Text (stt_engine.py) + * Apple Silicon Edge: If you are currently using standard openai-whisper or whisper.cpp Python bindings, consider using mlx-whisper. It leverages Apple's MLX framework to run Whisper directly on the M3 Neural Engine/GPU with significantly lower latency and minimal CPU impact. +2. Text-to-Speech (tts_engine.py) + * Offline Native TTS: edge-tts is simple and fast, but it requires an active internet connection to stream Microsoft's cloud endpoints. + * If you want a 100% offline local setup for Spanish voice practice, look into Kokoro-82M (e.g., via kokoro or kokoro-onnx). It supports high-quality, natural Spanish pronunciation locally on macOS without needing cloud requests. +3. Database Layer (db.py) + * Make sure your db.py exposes thread-safe connection handling (or a repository pattern) so background Qt threads (QThread) handling STT/TTS don't crash SQLite when logging conversations while the UI is rendering tables. + +```Plaitext +spanish-assistant/ +├── pyproject.toml # Managed with UV (PySide6, mlx-whisper, kokoro, sounddevice, etc.) +├── app/ +│ ├── __init__.py +│ ├── main.py # Launches Spanish Assistant (QApplication + QtAsyncio) +│ ├── db.py # SQLite3 conversation history & progress tracker +│ ├── modules/ +│ │ ├── llm_controller.py # Background process manager for llama.cpp (Gemma 4) +│ │ ├── stt_engine.py # Speech-to-Text via mlx-whisper +│ │ ├── tts_engine.py # Local 100% offline Spanish TTS via Kokoro-82M +│ │ └── feedback_engine.py # Pronunciation & WER accuracy comparison module +│ └── ui/ +│ ├── main_window.py # Main QMainWindow shell +│ ├── chat_tab.py # Tab 1: Live conversation & real-time feedback card +│ └── control_tab.py # Tab 2: System logs, DB inspector, and LLM controls +└── data/ + └── conversation_history.db # Session logs & speech analytics storage +``` + +```zsh +141_Spanish_Assistant % tree +├── app +│ ├── __init__.py +│ ├── main.py +│ ├── modules +│ │ ├── feedback_engine.py +│ │ ├── llm_controller.py +│ │ ├── stt_engine.py +│ │ └── tts_engine.py +│ └── ui +│ ├── chat_tab.py +│ ├── control_tab.py +│ └── main_window.py +├── data +└── doc + ├── images + └── notes.md +``` +# 9. Structure Review & Observations + * Python Packages: You have app/__init__.py, which turns app into a package. If you plan to import modules within chat_tab.py using absolute imports like from app.modules.llm_controller import LLMController, ensure you run your entry point (main.py) from the repository root (e.g., python -m app.main). Alternatively, consider adding an empty __init__.py inside app/modules and app/ui if you run into any relative import issues down the road. + + * Data Directory: Keeping data/ at the root is ideal for local database storage (like SQLite/PostgreSQL dumps), audio cache files, or user session states. + + * Docs & Assets: Placing screenshots or UI reference mockups in doc/images/ and markdown notes in doc/notes.md keeps the repository root tidy. + + # 10. Recommended .gitignore + + ```zsh + # ========================================== +# macOS System Files +# ========================================== +.DS_Store +.AppleDouble +.LSOverride +Icon? +._* + +# ========================================== +# Python & Bytecode +# ========================================== +__pycache__/ +*.py[cod] +*$py.class +*.so +.Python + +# ========================================== +# Virtual Environments +# ========================================== +.venv/ +venv/ +ENV/ +env/ +env.bak/ +venv.bak/ + +# ========================================== +# Application Data & Cache +# ========================================== +# Keep the data/ directory structure, but ignore dynamic files inside it +data/* +!data/.gitkeep + +# Local log files and audio caches +*.log +*.wav +*.mp3 +*.ogg + +# ========================================== +# Environment & Secrets +# ========================================== +.env +.env.local +*.pem + +# ========================================== +# IDEs & Editors +# ========================================== +.vscode/ +.idea/ +*.swp +*.swo + +``` + +# 11. Tree Commands + +To tell tree to display hidden files, pass the -a (all) flag: + +```zsh +tree -a +``` +## 11.1. Excluding noisy hidden folders + +If you run tree -a, it will also crawl into the .git directory, which prints a massive, messy wall of internal Git objects. + +To see your .gitkeep and .gitignore without cluttering the output with .git/, use the -I (ignore) flag: + +```zsh +tree -a -I '.git' +``` + +```zsh +. +├── .gitignore +├── app +│ ├── __init__.py +│ ├── main.py +│ ├── modules +│ │ ├── feedback_engine.py +│ │ ├── llm_controller.py +│ │ ├── stt_engine.py +│ │ └── tts_engine.py +│ └── ui +│ ├── chat_tab.py +│ ├── control_tab.py +│ └── main_window.py +├── data +│ └── .gitkeep +└── doc + ├── images + └── notes.md +``` + +```zsh +stephenlohning@Scotty 141_Spanish_Assistant % tree -a + +. +├── .git +│ ├── HEAD +│ ├── config +│ ├── description +│ ├── hooks +│ │ ├── applypatch-msg.sample +│ │ ├── commit-msg.sample +│ │ ├── fsmonitor-watchman.sample +│ │ ├── post-update.sample +│ │ ├── pre-applypatch.sample +│ │ ├── pre-commit.sample +│ │ ├── pre-merge-commit.sample +│ │ ├── pre-push.sample +│ │ ├── pre-rebase.sample +│ │ ├── pre-receive.sample +│ │ ├── prepare-commit-msg.sample +│ │ ├── push-to-checkout.sample +│ │ ├── sendemail-validate.sample +│ │ └── update.sample +│ ├── info +│ │ └── exclude +│ ├── objects +│ │ ├── info +│ │ └── pack +│ └── refs +│ ├── heads +│ └── tags +├── app +│ ├── __init__.py +│ ├── main.py +│ ├── modules +│ │ ├── feedback_engine.py +│ │ ├── llm_controller.py +│ │ ├── stt_engine.py +│ │ └── tts_engine.py +│ └── ui +│ ├── chat_tab.py +│ ├── control_tab.py +│ └── main_window.py +├── data +│ └── .gitkeeper +└── doc + ├── images + └── notes.md +16 directories, 29 files +stephenlohning@Scotty 141_Spanish_Assistant % +``` + +## 11.2. Setting up Git + + * Setting __push.followTags = true__ changes default behavior so that whenever you run git push, Git automatically pushes annotated tags that point to commits reachable from the branch you are pushing. + +## 11.3. Step-by-Step Commands +Run these commands in order in your terminal: + +```zsh +# 1. Stage all your initial project files and .gitignore +git add . + +# 2. Make your first commit (this resolves HEAD and creates your branch) +git commit -m "Initial project structure and config" + +# 3. Ensure your active branch is named 'main' +git branch -M main + +# 4. Now create your annotated tag on the new commit +git tag -a v0.1.0 -m "Initial project structure and config" + +# 5. Push your branch and tag up to Forgejo +git push -u origin main +``` +After running git commit, git branch will display * main, and your git tag command will succeed! + +# 12. Can you help me write the pyproject.toml file for uv including PySide6, mlx-whisper, and Kokoro? + +Here is a complete, production-ready pyproject.toml file tailored specifically for 141_Spanish_Assistant using uv. +It includes: + * PySide6 for the GUI. + * mlx-whisper for Apple Silicon GPU/Neural Engine accelerated speech-to-text. + * kokoro-onnx (and soundfile) for fast, local, 100% offline Kokoro-82M TTS. + * sounddevice and numpy for real-time audio capture and playback. + * requests to communicate with your local llama.cpp server hosting Gemma 4. + * editdistance / jiwer for pronunciation accuracy and Word Error Rate (WER) evaluations in feedback_engine.py.pyproject.toml + * + Create or overwrite pyproject.toml in the root of 141_Spanish_Assistant: + + ```zsh + [project] +name = "spanish-assistant" +version = "0.1.0" +description = "Local, offline Spanish speech practice assistant running on Apple Silicon" +readme = "README.md" +requires-python = ">=3.10,<3.13" +authors = [ + { name = "Stephen", email = "stephen.lohning@oxnee.com" } +] +dependencies = [ + # GUI Framework + "pyside6>=6.6.0", + + # Local Speech-to-Text (Apple MLX Engine) + "mlx-whisper>=0.2.0", + + # Local Text-to-Speech (Kokoro 82M via ONNX Runtime) + "kokoro-onnx>=0.5.0", + "soundfile>=0.12.1", + + # Audio Recording & Playback + "sounddevice>=0.4.6", + "numpy>=1.24.0,<2.0.0", + + # HTTP Client for local llama.cpp server + "requests>=2.31.0", + + # Pronunciation Feedback & Text Analytics + "editdistance>=0.8.0", + "jiwer>=3.0.0", +] + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.uv] +# Ensures dependencies stay isolated and locked cleanly on macOS +dev-dependencies = [ + "pytest>=8.0.0", + "black>=24.0.0", +] +``` + +# 13. How to Initialize & Install using uv + +Run these commands in your terminal from the root directory: + +```zsh +# 1. Create a Python 3.12 virtual environment managed by uv +uv venv --python 3.12 + +# 2. Sync and install all dependencies defined in pyproject.toml +uv sync + +# 3. Test that the environment loads cleanly +uv run python -c "import PySide6, mlx_whisper, kokoro_onnx; print('All core modules imported successfully!')" +``` +### 13.0.1. Note on Python Version: +* requires-python is set to <3.13 because several core MLX and ONNX bindings used on Apple Silicon run most reliably on Python 3.10–3.12. +```zsh +stephenlohning@Scotty 141_Spanish_Assistant % uv venv --python 3.12 +warning: The `tool.uv.dev-dependencies` field (used in `pyproject.toml`) is deprecated and will be removed in a future release; use `dependency-groups.dev` instead +Using CPython 3.12.12 interpreter at: /opt/homebrew/opt/python@3.12/bin/python3.12 +Creating virtual environment at: .venv +Activate with: source .venv/bin/activate +stephenlohning@Scotty 141_Spanish_Assistant % uv sync +warning: The `tool.uv.dev-dependencies` field (used in `pyproject.toml`) is deprecated and will be removed in a future release; use `dependency-groups.dev` instead + × No solution found when resolving dependencies: + ╰─▶ Because only kokoro-onnx<=0.5.0 is available and kokoro-onnx==0.5.0 depends on numpy>=2.0.2, we can conclude that kokoro-onnx>=0.5.0 depends on numpy>=2.0.2. + And because your project depends on kokoro-onnx>=0.5.0 and numpy>=1.24.0,<2.0.0, we can conclude that your project's requirements are unsatisfiable. +stephenlohning@Scotty 141_Spanish_Assistant % source .venv/bin/activate +(141_Spanish_Assistant) stephenlohning@Scotty 141_Spanish_Assistant % + +``` + +## 13.1. Errors and Fixes + +```zsh +I got the following comments + +stephenlohning@Scotty 141_Spanish_Assistant % uv venv --python 3.12 + +warning: The `tool.uv.dev-dependencies` field (used in `pyproject.toml`) is deprecated and will be removed in a future release; use `dependency-groups.dev` instead + +Using CPython 3.12.12 interpreter at: /opt/homebrew/opt/python@3.12/bin/python3.12 + +Creating virtual environment at: .venv + +Activate with: source .venv/bin/activate + +stephenlohning@Scotty 141_Spanish_Assistant % uv sync + +warning: The `tool.uv.dev-dependencies` field (used in `pyproject.toml`) is deprecated and will be removed in a future release; use `dependency-groups.dev` instead + + × No solution found when resolving dependencies: + + ╰─▶ Because only kokoro-onnx<=0.5.0 is available and kokoro-onnx==0.5.0 depends on numpy>=2.0.2, we can conclude that kokoro-onnx>=0.5.0 depends on numpy>=2.0.2. + + And because your project depends on kokoro-onnx>=0.5.0 and numpy>=1.24.0,<2.0.0, we can conclude that your project's requirements are unsatisfiable. + +stephenlohning@Scotty 141_Spanish_Assistant % source .venv/bin/activate + +(141_Spanish_Assistant) stephenlohning@Scotty 141_Spanish_Assistant % uv run python -c "import PySide6, mlx_whisper, kokoro_onnx; print('All core modules imported successfully!')" + +warning: The `tool.uv.dev-dependencies` field (used in `pyproject.toml`) is deprecated and will be removed in a future release; use `dependency-groups.dev` instead + + × No solution found when resolving dependencies: + + ╰─▶ Because only kokoro-onnx<=0.5.0 is available and kokoro-onnx==0.5.0 depends on numpy>=2.0.2, we can conclude that kokoro-onnx>=0.5.0 depends on numpy>=2.0.2. + + And because your project depends on kokoro-onnx>=0.5.0 and numpy>=1.24.0,<2.0.0, we can conclude that your project's requirements are unsatisfiable. + +(141_Spanish_Assistant) stephenlohning@Scotty 141_Spanish_Assistant % + +``` +This is a dependency conflict between kokoro-onnx and numpy, combined with an updated syntax rule in modern uv. + +Here is why it failed and how to fix it: + +1. numpy Conflict: kokoro-onnx>=0.5.0 explicitly requires numpy>=2.0.2. The pyproject.toml constrained numpy to <2.0.0, creating an impossible set of rules for uv to resolve. + +2. uv Deprecation Warning: In recent uv versions, dev dependencies belong under [dependency-groups] rather than [tool.uv.dev-dependencies]. + +The Fixed pyproject.toml +Replace your root pyproject.toml with this updated version: + +```zsh +[project] +name = "spanish-assistant" +version = "0.1.0" +description = "Local, offline Spanish speech practice assistant running on Apple Silicon" +readme = "README.md" +requires-python = ">=3.10,<3.13" +authors = [ + { name = "Stephen", email = "stephen.lohning@oxnee.com" } +] +dependencies = [ + # GUI Framework + "pyside6>=6.6.0", + + # Local Speech-to-Text (Apple MLX Engine) + "mlx-whisper>=0.2.0", + + # Local Text-to-Speech (Kokoro 82M via ONNX Runtime) + "kokoro-onnx>=0.5.0", + "soundfile>=0.12.1", + + # Audio Recording & Playback (Compatible with NumPy 2.x) + "sounddevice>=0.4.6", + "numpy>=2.0.2", + + # HTTP Client for local llama.cpp server + "requests>=2.31.0", + + # Pronunciation Feedback & Text Analytics + "editdistance>=0.8.0", + "jiwer>=3.0.0", +] + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +# Updated syntax for dev dependencies in modern uv +[dependency-groups] +dev = [ + "pytest>=8.0.0", + "black>=24.0.0", +] +``` +### 13.1.1. Step-by-Step Resolution Commands +Run these steps in your terminal to clear out the old resolution state and sync cleanly: + +```zsh +# 1. Sync dependencies with the updated pyproject.toml +uv sync + +# 2. Test the core module imports +uv run python -c "import PySide6, mlx_whisper, kokoro_onnx; print('All core modules imported successfully!')" + +``` +Once uv sync finishes, you will see All core modules imported successfully! and your .venv will be ready for development. + +### 13.1.2. I got the following errors uv sync + +```zsh +stephenlohning@Scotty 141_Spanish_Assistant % uv sync + +warning: The `tool.uv.dev-dependencies` field (used in `pyproject.toml`) is deprecated and will be removed in a future release; use `dependency-groups.dev` instead + + × No solution found when resolving dependencies: + + ╰─▶ Because only kokoro-onnx<=0.5.0 is available and kokoro-onnx==0.5.0 depends on numpy>=2.0.2, we can conclude that kokoro-onnx>=0.5.0 depends on numpy>=2.0.2. + + And because your project depends on kokoro-onnx>=0.5.0 and numpy>=1.24.0,<2.0.0, we can conclude that your project's requirements are unsatisfiable. + +stephenlohning@Scotty 141_Spanish_Assistant % source .venv/bin/activate + +(141_Spanish_Assistant) stephenlohning@Scotty 141_Spanish_Assistant % uv run python -c "import PySide6, mlx_whisper, kokoro_onnx; print('All core modules imported successfully!')" + +warning: The `tool.uv.dev-dependencies` field (used in `pyproject.toml`) is deprecated and will be removed in a future release; use `dependency-groups.dev` instead + + × No solution found when resolving dependencies: + + ╰─▶ Because only kokoro-onnx<=0.5.0 is available and kokoro-onnx==0.5.0 depends on numpy>=2.0.2, we can conclude that kokoro-onnx>=0.5.0 depends on numpy>=2.0.2. + + And because your project depends on kokoro-onnx>=0.5.0 and numpy>=1.24.0,<2.0.0, we can conclude that your project's requirements are unsatisfiable. + +(141_Spanish_Assistant) stephenlohning@Scotty 141_Spanish_Assistant % uv sync + +Resolved 109 packages in 1.52s + + × Failed to build `spanish-assistant @ file:///Users/stephenlohning/Documents/01_Projects/141_Spanish_Assistant` + + ├─▶ The build backend returned an error + + ╰─▶ Call to `hatchling.build.build_editable` failed (exit status: 1) + + + + [stderr] + + Traceback (most recent call last): + + File "", line 11, in + + File "/Users/stephenlohning/.cache/uv/builds-v0/.tmpOvMudK/lib/python3.12/site-packages/hatchling/build.py", line 83, in build_editable + + return os.path.basename(next(builder.build(directory=wheel_directory, versions=["editable"]))) + + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + File "/Users/stephenlohning/.cache/uv/builds-v0/.tmpOvMudK/lib/python3.12/site-packages/hatchling/builders/plugin/interface.py", line 92, in build + + self.metadata.validate_fields() + + File "/Users/stephenlohning/.cache/uv/builds-v0/.tmpOvMudK/lib/python3.12/site-packages/hatchling/metadata/core.py", line 266, in validate_fields + + self.core.validate_fields() + + File "/Users/stephenlohning/.cache/uv/builds-v0/.tmpOvMudK/lib/python3.12/site-packages/hatchling/metadata/core.py", line 1437, in validate_fields + + getattr(self, attribute) + + File "/Users/stephenlohning/.cache/uv/builds-v0/.tmpOvMudK/lib/python3.12/site-packages/hatchling/metadata/core.py", line 533, in readme + + raise OSError(message) + + OSError: Readme file does not exist: README.md + + + + + +hint: Build failures usually indicate a problem with the package or the build environment% + +(141_Spanish_Assistant) stephenlohning@Scotty 141_Spanish_Assistant % +``` +There were two independent issues happening in your terminal output: + +Resolution Failure (Fixed): The first run failed because of the numpy constraint conflict. + +Build Failure (README.md Missing): The second run succeeded in resolving all 109 packages, but failed at the build step because pyproject.toml declared readme = "README.md", but no README.md file existed in your project root yet. + +Additionally, because your Python code lives inside an app/ folder rather than a src/ or spanish_assistant/ package folder, Hatchling (the build backend) needs a small configuration hint to know what to include in editable mode (uv sync). + +Step 1: Create a placeholder README.md +Run this in your terminal from the project root: + +``zsh +touch README.md +echo "# 141 Spanish Assistant" > README.md +``` +Step 2: Use the Updated pyproject.tomlUpdate your root pyproject.toml with this version. It configures [tool.hatch.build.targets.wheel] so Hatchling cleanly packages the app/ directory without throwing editable build errors: + +```zsh +[project] +name = "spanish-assistant" +version = "0.1.0" +description = "Local, offline Spanish speech practice assistant running on Apple Silicon" +readme = "README.md" +requires-python = ">=3.10,<3.13" +authors = [ + { name = "Stephen", email = "stephen.lohning@oxnee.com" } +] +dependencies = [ + # GUI Framework + "pyside6>=6.6.0", + + # Local Speech-to-Text (Apple MLX Engine) + "mlx-whisper>=0.2.0", + + # Local Text-to-Speech (Kokoro 82M via ONNX Runtime) + "kokoro-onnx>=0.5.0", + "soundfile>=0.12.1", + + # Audio Recording & Playback + "sounddevice>=0.4.6", + "numpy>=2.0.2", + + # HTTP Client for local llama.cpp server + "requests>=2.31.0", + + # Pronunciation Feedback & Text Analytics + "editdistance>=0.8.0", + "jiwer>=3.0.0", +] + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +# Configures Hatchling to recognise the app/ directory +[tool.hatch.build.targets.wheel] +packages = ["app"] + +[dependency-groups] +dev = [ + "pytest>=8.0.0", + "black>=24.0.0", +] +``` +Step 3: Run uv sync and Test +Now sync and verify: +```zsh +uv sync +``` +```zsh +uv run python -c "import PySide6, mlx_whisper, kokoro_onnx; print('All core modules imported successfully!')" +``` +You should see All core modules imported successfully!, with zero warnings or errors. Which we did + + git tag -a v0.1.1 -m "uv set all modules loaded " + +# Create basic PySide6 boilerplate for main.py, main_window.py, and the tab modules + +Here is a complete set of boilerplate code tailored specifically for 141_Spanish_Assistant. + +It uses PySide6.QtAsyncio for non-blocking execution (allowing STT, TTS, and LLM calls to run seamlessly in the background without freezing the GUI). + +1. Entry Point: app/main.py +This file initializes the PySide6 application, creates the MainWindow, and delegates execution to QtAsyncio. diff --git a/doc/notes.pdf b/doc/notes.pdf new file mode 100644 index 0000000000000000000000000000000000000000..120070a27310f5bed45d8be4e4628cc44fd128f8 GIT binary patch literal 329672 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 Q!m? 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%0A`NA%*=M`QVEb8 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.6.0", + + # Local Speech-to-Text (Apple MLX Engine) + "mlx-whisper>=0.2.0", + + # Local Text-to-Speech (Kokoro 82M via ONNX Runtime) + "kokoro-onnx>=0.5.0", + "soundfile>=0.12.1", + + # Audio Recording & Playback + "sounddevice>=0.4.6", + "numpy>=2.0.2", + + # HTTP Client for local llama.cpp server + "requests>=2.31.0", + + # Pronunciation Feedback & Text Analytics + "editdistance>=0.8.0", + "jiwer>=3.0.0", +] + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +# Configures Hatchling to recognise the app/ directory +[tool.hatch.build.targets.wheel] +packages = ["app"] + +[dependency-groups] +dev = [ + "pytest>=8.0.0", + "black>=24.0.0", +] \ No newline at end of file diff --git a/uv.lock b/uv.lock new file mode 100644 index 0000000..69f34b5 --- /dev/null +++ b/uv.lock @@ -0,0 +1,1979 @@ +version = 1 +revision = 3 +requires-python = ">=3.10, <3.13" +resolution-markers = [ + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", + "python_full_version < '3.11'", +] + +[[package]] +name = "anyio" +version = "4.14.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "exceptiongroup", marker = "python_full_version < '3.11'" }, + { name = "idna" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/61/cc/a381afa6efea9f496eff839d4a6a1aed3bfafc7b3ab4b0d1b243a12573dd/anyio-4.14.2.tar.gz", hash = "sha256:cfa139f3ed1a23ee8f88a145ddb5ac7605b8bbfd8592baacd7ce3d8bb4313c7f", size = 260176, upload-time = "2026-07-12T20:29:07.082Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/da/35/f2287558c17e29fafc8ef3daf819bb9834061cfa43bff8014f7df7f63bdc/anyio-4.14.2-py3-none-any.whl", hash = "sha256:9f505dda5ac9f0c8309b5e8bd445a8c2bf7246f3ce950121e45ea15bc41d1494", size = 125813, upload-time = "2026-07-12T20:29:05.763Z" }, +] + +[[package]] +name = "attrs" +version = "26.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/9a/8e/82a0fe20a541c03148528be8cac2408564a6c9a0cc7e9171802bc1d26985/attrs-26.1.0.tar.gz", hash = "sha256:d03ceb89cb322a8fd706d4fb91940737b6642aa36998fe130a9bc96c985eff32", size = 952055, upload-time = "2026-03-19T14:22:25.026Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/64/b4/17d4b0b2a2dc85a6df63d1157e028ed19f90d4cd97c36717afef2bc2f395/attrs-26.1.0-py3-none-any.whl", hash = "sha256:c647aa4a12dfbad9333ca4e71fe62ddc36f4e63b2d260a37a8b83d2f043ac309", size = 67548, upload-time = "2026-03-19T14:22:23.645Z" }, +] + +[[package]] +name = "babel" +version = "2.18.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7d/b2/51899539b6ceeeb420d40ed3cd4b7a40519404f9baf3d4ac99dc413a834b/babel-2.18.0.tar.gz", hash = "sha256:b80b99a14bd085fcacfa15c9165f651fbb3406e66cc603abf11c5750937c992d", size = 9959554, upload-time = "2026-02-01T12:30:56.078Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/77/f5/21d2de20e8b8b0408f0681956ca2c69f1320a3848ac50e6e7f39c6159675/babel-2.18.0-py3-none-any.whl", hash = "sha256:e2b422b277c2b9a9630c1d7903c2a00d0830c409c59ac8cae9081c92f1aeba35", size = 10196845, upload-time = "2026-02-01T12:30:53.445Z" }, +] + +[[package]] +name = "black" +version = "26.5.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, + { name = "mypy-extensions" }, + { name = "packaging" }, + { name = "pathspec" }, + { name = "platformdirs" }, + { name = "pytokens" }, + { name = "tomli", marker = "python_full_version < '3.11'" }, + { name = "typing-extensions", marker = "python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c0/37/5628dd55bf2b34257fc7603f0fe97c40e3aaf24265f416a9c85c95ca1436/black-26.5.1.tar.gz", hash = "sha256:dd321f668053961824bcc1be1cc1df748b2d7e4fa28086b08331e577b0100a73", size = 679439, upload-time = "2026-05-18T16:53:36.107Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/be/84/b3f55026206a9e8820a91503308075ca48eadc515e436731ca01dbe043b3/black-26.5.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9942db8888e06943c5dde66ca0037dcff82a2a4ec1ad0ada9e0d2ee9d9823893", size = 1987719, upload-time = "2026-05-18T17:05:02.757Z" }, + { url = "https://files.pythonhosted.org/packages/c6/34/7db312c5e5783d6e76cffd9d5ac8972a32badae4c6e3288dac0eed8d3bed/black-26.5.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:89c93167a74d3a75dfaa38a5c7cca015537d5820dd7f17d63267d674a61cae90", size = 1810083, upload-time = "2026-05-18T17:05:04.302Z" }, + { url = "https://files.pythonhosted.org/packages/33/e2/e0101e73c2c8727634e2efcb35e2b34bd23ad70dfa673789f5773a591b21/black-26.5.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:22f2cd76d069cc54c71f10360744ba8983fbb616903b4304a85b734915c8e1b4", size = 1860633, upload-time = "2026-05-18T17:05:06.391Z" }, + { url = "https://files.pythonhosted.org/packages/b0/4c/e15c0c5b23cf3651035fe5addcce90e283af3548a3f91bb03d81b83106ab/black-26.5.1-cp310-cp310-win_amd64.whl", hash = "sha256:87ed5c6f450580a2f6790bc7cbfb016dfc73bc750249762268a3695361315eef", size = 1477886, upload-time = "2026-05-18T17:05:07.96Z" }, + { url = "https://files.pythonhosted.org/packages/9f/3f/59d43ade98d2ce5c8dc34a4e46cbecd177e6d55d7d4092969c6003ccc655/black-26.5.1-cp310-cp310-win_arm64.whl", hash = "sha256:58b4bd92cf88aacf83d88479c8f9caee044b1ec55f2451a337354a7ea2590a22", size = 1277111, upload-time = "2026-05-18T17:05:09.473Z" }, + { url = "https://files.pythonhosted.org/packages/4b/96/3c3e09f09f44a37aac36b178a279cd19aa7001bd796187a7b162a294c81f/black-26.5.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:96ae2c733b2aabdd9986e2c5df628ff3473676cd1c5faded1ff496cf6d74083c", size = 1970639, upload-time = "2026-05-18T17:05:11.461Z" }, + { url = "https://files.pythonhosted.org/packages/83/ea/5ad117b9ee3ecd933c712bcbae610006e5b7cc9f41c526cd7ed3b6c4124c/black-26.5.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:0e48b87e03bf109288e55cfceadcfa15ff5470aca2851a851950ed2926f450d7", size = 1792130, upload-time = "2026-05-18T17:05:12.983Z" }, + { url = "https://files.pythonhosted.org/packages/06/3a/7c448bc623fcdfa96672531beb5a616ea5e64f6975955254d7731ffb0ad9/black-26.5.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5119fa92ae61f786e8c3662fd60aece1d0a2dd5cca5d0c79417a95e7a4272a59", size = 1846134, upload-time = "2026-05-18T17:05:14.506Z" }, + { url = "https://files.pythonhosted.org/packages/a1/5b/0b39b3a5917f0657ac014ad2edb58c139553a478adfe7f817abf1622ff6e/black-26.5.1-cp311-cp311-win_amd64.whl", hash = "sha256:30d3c14661f2792e9142cce3eeeb1cbc175b3eb5f733be0c8eeb99651e52b0c3", size = 1478883, upload-time = "2026-05-18T17:05:16.542Z" }, + { url = "https://files.pythonhosted.org/packages/4c/48/dc222692e0f95030db1bbfb6c857e76858bad09058221ea7aae815255327/black-26.5.1-cp311-cp311-win_arm64.whl", hash = "sha256:1ef92b76f7733f282fd096ea406200b5a286c42947412b0eaff3a74e3616cefe", size = 1277776, upload-time = "2026-05-18T17:05:18.029Z" }, + { url = "https://files.pythonhosted.org/packages/24/99/7744b906703228264ef73bdd534df88ec1ef3de45c4e78f6d31b9e32d0c9/black-26.5.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4ad6fa01f941920f54f2bbb35f3df7673428a0ef98a0b0840c2eaef3b110efa8", size = 2012518, upload-time = "2026-05-18T17:05:20.108Z" }, + { url = "https://files.pythonhosted.org/packages/b7/c0/c5a3b1636dfd09c42534f2b3cf33506814f6d3e066fb0879ffa16c1ae860/black-26.5.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3915f256e75a2d7cf88d8953d37f780455dc586cc72dee059c528fe77f581217", size = 1816016, upload-time = "2026-05-18T17:05:21.84Z" }, + { url = "https://files.pythonhosted.org/packages/1f/0e/36044316b65ca471d3bb6d3703fd06fb50c6b727c3562f6a5a3153634f88/black-26.5.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9d98d4137277c75dfb898ec8d846c4fd68ba1e9cf77f95e2865c203dc18f4c3d", size = 1884150, upload-time = "2026-05-18T17:05:23.546Z" }, + { url = "https://files.pythonhosted.org/packages/b3/33/dafc5808c2af43672912111d7c3354af1615f7e2be3bed7a878461abbe4d/black-26.5.1-cp312-cp312-win_amd64.whl", hash = "sha256:a1dca32d9f1784af512a13410ec204c6f7f0aa9797a111c42e1c03449821c264", size = 1486825, upload-time = "2026-05-18T17:05:25.004Z" }, + { url = "https://files.pythonhosted.org/packages/82/14/b965ee6ad2a311f28bdbf692def3ee9848d2ae289dab28b27657fcee3e78/black-26.5.1-cp312-cp312-win_arm64.whl", hash = "sha256:1037d5ac7b7b310b2632ad867ec8d0e4c4819dcdb0b820f63135da746a24e418", size = 1288646, upload-time = "2026-05-18T17:05:26.477Z" }, + { url = "https://files.pythonhosted.org/packages/94/51/f975cae76d44274cc2868dc9040ac5d58d464784610234455b4e7b19c6ef/black-26.5.1-py3-none-any.whl", hash = "sha256:4ed7f7da04046d2e488437170797d3b4a4ad83906683bcb7dfc68b673bbce5e2", size = 213693, upload-time = "2026-05-18T16:53:33.964Z" }, +] + +[[package]] +name = "certifi" +version = "2026.7.22" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a3/c2/24167ea9858356b47a87a50d39908bfdb72ceeefe0041586e704e5376b3a/certifi-2026.7.22.tar.gz", hash = "sha256:741e2c3b351ddf169a738da9f2c048608ff7f2c5cc02f1ebc6b118bb090d5d55", size = 138112, upload-time = "2026-07-22T03:35:12.644Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0b/a7/71ac2cff56fec219ed242bb11b8efb69fcc4bec75db06fb7bfe35de520e6/certifi-2026.7.22-py3-none-any.whl", hash = "sha256:62f22742b58a1a33014a2b6b706588a8d7e2a88ae7bd1a6ebe8c992928483775", size = 136983, upload-time = "2026-07-22T03:35:11.276Z" }, +] + +[[package]] +name = "cffi" +version = "2.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pycparser", marker = "implementation_name != 'PyPy'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/57/5f/ff100cae70ebe9d8df1c01a00e510e45d9adb5c1fdda84791b199141de97/cffi-2.1.0.tar.gz", hash = "sha256:efc1cdd798b1aaf39b4610bba7aad28c9bea9b910f25c784ccf9ec1fa719d1f9", size = 531036, upload-time = "2026-07-06T21:34:30.382Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c0/e9/6d7724983b3d5a0908dbf74f64038ade77c18646ff6636ec7894fd392ce1/cffi-2.1.0-cp310-cp310-macosx_10_15_x86_64.whl", hash = "sha256:b65f590ef2a44640f9a05dbb548a429b4ade77913ce683ac8b1480777658a6c0", size = 183837, upload-time = "2026-07-06T21:32:09.655Z" }, + { url = "https://files.pythonhosted.org/packages/69/aa/24580a278de21fd7322635556334d9b535f1cbc00b0a3919447cdf464c65/cffi-2.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:164bff1657b2a74f0b6d54e11c9b375bc97b931f2ca9c43fcf875838da1570dd", size = 184226, upload-time = "2026-07-06T21:32:11.196Z" }, + { url = "https://files.pythonhosted.org/packages/88/a9/02cae418ec4beb282ace11958d9d4737793439d561fadc7e6d56f2e2b354/cffi-2.1.0-cp310-cp310-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:c941bb58d5a6e1c3892d86e42927ed6c180302f07e6d395d08c416e594b98b46", size = 211107, upload-time = "2026-07-06T21:32:12.328Z" }, + { url = "https://files.pythonhosted.org/packages/3b/30/c806937ed5e4c2c7ac30d9d6b76b5dc57ff8b75d83800d9bb11a8253cf2a/cffi-2.1.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:a016194dbe13d14ee9556e734b772d8d67b947092b268d757fd4290e3ba2dfc2", size = 218733, upload-time = "2026-07-06T21:32:13.67Z" }, + { url = "https://files.pythonhosted.org/packages/f9/cf/398272b8bbfd58aa314fda5a7f1cdbb26d1d78ae324a11211521315dd1f0/cffi-2.1.0-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:03e9810d18c646077e501f661b682fbf5dee4676048527ca3cffe66faa9960dd", size = 205543, upload-time = "2026-07-06T21:32:15.148Z" }, + { url = "https://files.pythonhosted.org/packages/45/ca/f91641185cdd90c36d317a9dc7f85e88ef8682d8b300977baff5e23c35d8/cffi-2.1.0-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:19c54ac121cad98450b4896fa9a43ee0180d57bc4bc911a33db6cab1efab6cd3", size = 205460, upload-time = "2026-07-06T21:32:16.479Z" }, + { url = "https://files.pythonhosted.org/packages/38/66/04781a77b411f0bb5b234d62c1814754ab75ebe455ccff1b08e8d7aae98f/cffi-2.1.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4d433a51f1870e43a13b6732f92aaf540ff77c2015097c78556f75a2d6c030e0", size = 218760, upload-time = "2026-07-06T21:32:17.98Z" }, + { url = "https://files.pythonhosted.org/packages/d0/9a/bb1d5ed9c3fcae158e9f6391bf309c95d98c2ac37ed56573228471d0af5e/cffi-2.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3d7f118b5adbfdfead90c25822690b02bc8074fba949bb7858bec4ebd55adb43", size = 221230, upload-time = "2026-07-06T21:32:19.407Z" }, + { url = "https://files.pythonhosted.org/packages/41/aa/3c1409cdd26094efacd1c36c66e0a6eb9d4296e4fd4f9901b8b2042f4323/cffi-2.1.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:c5f5df567f6eb216de69be06ce55c8b714090fae02b18a3b40da8163b8c5fa9c", size = 213524, upload-time = "2026-07-06T21:32:20.828Z" }, + { url = "https://files.pythonhosted.org/packages/fa/75/74dfb7c3fc6ebbd408038476bd4c1d7e925c62614e7b9c534ecc34218288/cffi-2.1.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:11b3fb55f4f8ad92274ed26705f65d8f91457de71f5380061eb6d125a768fecd", size = 220341, upload-time = "2026-07-06T21:32:21.9Z" }, + { url = "https://files.pythonhosted.org/packages/70/b6/9003c33a3e7d2c1306f5962e646457dcfe5a8cd8fce6bbe02d7af25db783/cffi-2.1.0-cp310-cp310-win32.whl", hash = "sha256:9d72af0cf10a76a600a9690078fe31c63b9588c8e86bf9fd353f713c84b5db0f", size = 174578, upload-time = "2026-07-06T21:32:23.073Z" }, + { url = "https://files.pythonhosted.org/packages/8a/26/710688310447531c7a22f857c7f79d9855ec18b03e04494ced723fb37e2f/cffi-2.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:fb62edb5bb52cca65fab91a63afa7561607120d26090a7e8fda6fb9f064726da", size = 185071, upload-time = "2026-07-06T21:32:24.671Z" }, + { url = "https://files.pythonhosted.org/packages/d3/67/85c89a59ba36a671e79638f44d466749f08179266a57e4f2ffdf92174072/cffi-2.1.0-cp311-cp311-macosx_10_15_x86_64.whl", hash = "sha256:02cb7ff33ded4f1532476731f89ede53e2e488a8e6205515a82144246ffa7dcc", size = 183845, upload-time = "2026-07-06T21:32:26.32Z" }, + { url = "https://files.pythonhosted.org/packages/ea/dd/e3b0baa2d3d6a857ac72b7efbf18e32e487c9cdafcc13049ad765495b15e/cffi-2.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f5bce581e6b8c235e566a14768a943b172ada3ed73537bb0c0be1edee312d4e7", size = 184186, upload-time = "2026-07-06T21:32:28.025Z" }, + { url = "https://files.pythonhosted.org/packages/65/68/9f3ef890cf3c6ab97bd531c5677f67613d302165d16f8142b2811782a614/cffi-2.1.0-cp311-cp311-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:30b65779d598c370374fefabf138d456fd6f3216bfa7bedfab1ba82025b0cd93", size = 211892, upload-time = "2026-07-06T21:32:29.565Z" }, + { url = "https://files.pythonhosted.org/packages/22/d7/1a74539db16d8bfd839ff1515948948efbb162e574650fd3d846896eea95/cffi-2.1.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:88023dfe18799507b73f1dbb0d14326a17465de1bc9c9c7655c22845e9ddc3a2", size = 218793, upload-time = "2026-07-06T21:32:30.951Z" }, + { url = "https://files.pythonhosted.org/packages/ec/d1/9a5b7169499e8e8d8e636de70b97ac7c9447104d2ff1a2cd94790cea5162/cffi-2.1.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:0a96b74cda968eebbad56d973efe5098974f0a9fb323865bf99ea1fd24e3e64c", size = 205737, upload-time = "2026-07-06T21:32:32.216Z" }, + { url = "https://files.pythonhosted.org/packages/ba/b0/e131a9c41f10607926278453d9596163594fe1c4ebc46efe3b5e5b34eb84/cffi-2.1.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:a5781494d4d400a3f47f8f1da94b324f6e6b440a53387774002890a2a2f4b50f", size = 204909, upload-time = "2026-07-06T21:32:33.655Z" }, + { url = "https://files.pythonhosted.org/packages/fb/d2/4398416cd699b35167947c6e22aca52c47e69ad5695073c9f1f2c52e04aa/cffi-2.1.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:aa7a1b53a2a4452ada2d1b5dade9960b2522f1e61293a811a077439e39029565", size = 217883, upload-time = "2026-07-06T21:32:35.173Z" }, + { url = "https://files.pythonhosted.org/packages/a2/a5/d4fe77b589e5e82d43ebc809bf2e6474afe8e48e32ea050b9357645b6471/cffi-2.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:9d8272c0e483b024e1b9ad029821470ed8ec65631dbd90217469da0e7cd89f1c", size = 221251, upload-time = "2026-07-06T21:32:36.527Z" }, + { url = "https://files.pythonhosted.org/packages/22/f0/a2fc43084c0433caf7f461bccc013e28f848d04ee1c5ed7fce71423cf4d9/cffi-2.1.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:7762faa47e8ff7eb80bd261d9a7d8eea2d8baa69de5e95b70c1f338bbe712f02", size = 214250, upload-time = "2026-07-06T21:32:37.852Z" }, + { url = "https://files.pythonhosted.org/packages/04/8c/b925975448cf20634a9fbd5efceb807219db452653648d2897c0989cab2d/cffi-2.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:89095c1968b4ba8285840e131bf2891b09ae137fe2146905acae0354fbce1b5e", size = 219441, upload-time = "2026-07-06T21:32:39.146Z" }, + { url = "https://files.pythonhosted.org/packages/eb/da/5c4918a2d61d86fa927d716cb3d8e4626ef8dc8f605a599d32f33897f59a/cffi-2.1.0-cp311-cp311-win32.whl", hash = "sha256:64c753a0f87a256020004f37a1c8c02c480e725f910f0b2a0f3f07debd1b2479", size = 174496, upload-time = "2026-07-06T21:32:40.467Z" }, + { url = "https://files.pythonhosted.org/packages/f9/c8/6c2de1d55cf35ef8b92885d5ef280790f0fb9634d87ea1cc315176aecd61/cffi-2.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:4f26194e3d95e06501b942642855aed4f953d55e95d7d01b7c4483db3ecff458", size = 185113, upload-time = "2026-07-06T21:32:41.761Z" }, + { url = "https://files.pythonhosted.org/packages/9e/4e/e8d7cb5783f1841a3c8fb3a7735838d7484d08ec08c9f984b14cac1ac0e9/cffi-2.1.0-cp311-cp311-win_arm64.whl", hash = "sha256:35aaea0c7ee0e58a5cd8c2fd1a48fdf7ece0d2699b7ecdda08194e9ce5dd9b3d", size = 179927, upload-time = "2026-07-06T21:32:42.961Z" }, + { url = "https://files.pythonhosted.org/packages/1e/85/990925db5df586ec90beb97529c853497e7f85ba0234830447faf41c3057/cffi-2.1.0-cp312-cp312-macosx_10_15_x86_64.whl", hash = "sha256:df2b82571a1b30f58a87bf4e5a9e78d2b1eff6c6ce8fd3aa3757221f93f0863f", size = 184829, upload-time = "2026-07-06T21:32:44.324Z" }, + { url = "https://files.pythonhosted.org/packages/4b/92/e7bb136ad6b5352603732cf907ef862ca103f20f2031c1735a46300c20c9/cffi-2.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:78474632761faa0fb96f30b1c928c84ebcf68713cbb80d15bab09dfe61640fde", size = 184728, upload-time = "2026-07-06T21:32:45.683Z" }, + { url = "https://files.pythonhosted.org/packages/c3/c0/d1ec30ffb370f748f2fb54425972bfef9871e0132e82fb589c46b6676049/cffi-2.1.0-cp312-cp312-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:5972433ad71a9e46516584ef60a0fda12d9dc459938d1539c3ddecf9bdc1368d", size = 214815, upload-time = "2026-07-06T21:32:48.557Z" }, + { url = "https://files.pythonhosted.org/packages/1b/dc/5620cf930688be01f2d673804291de757a934c90b946dbdc3d84130c2ea4/cffi-2.1.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:b6422532152adf4e59b110cb2808cee7a033800952f5c036b4af047ee43199e7", size = 222429, upload-time = "2026-07-06T21:32:49.848Z" }, + { url = "https://files.pythonhosted.org/packages/4b/a4/77b53abbf7a1e0beb9637edbef2a94d15f9c822f591e85d439ffd91519a6/cffi-2.1.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:46b1c8db8f6122420f32d02fffb924c2fe9bc772d228c7c711748fff56aabb2b", size = 210315, upload-time = "2026-07-06T21:32:51.221Z" }, + { url = "https://files.pythonhosted.org/packages/58/0c/f528df19cc94b675087324d4760d9e6d5bfae97d6217aa4fac43de4f5fcc/cffi-2.1.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:d9fafc5aa2e2a39aaf7f8cc0c1f044a9b07fca12e558dca53a3cc5c654ad67a7", size = 208859, upload-time = "2026-07-06T21:32:52.512Z" }, + { url = "https://files.pythonhosted.org/packages/62/f2/c9522a81c32132799a1972c39f5c5f8b4c8b9f00488a23feaa6c06f07741/cffi-2.1.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:1e9f50d192a3e525b15a75ab5114e442d83d657b7ec29182a991bc9a88fd3a66", size = 221844, upload-time = "2026-07-06T21:32:53.704Z" }, + { url = "https://files.pythonhosted.org/packages/6e/28/bd53988b9833e8f8ad539d26f4c07a6b3f6bcb1e9e02e7ca038250b3428d/cffi-2.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:98fff996e983a36d3aa2eca83af40c5821202e7e6f32d13ae94e3d2286f10cfe", size = 225287, upload-time = "2026-07-06T21:32:54.907Z" }, + { url = "https://files.pythonhosted.org/packages/79/99/0d0fd37f055224085f42bbb2c022d002e17dde4a97972822327b07d84101/cffi-2.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:379de10ce1ba048b1448599d1b37b24caee16309d1ac98d3982fc997f768700b", size = 223681, upload-time = "2026-07-06T21:32:56.329Z" }, + { url = "https://files.pythonhosted.org/packages/b0/80/c138990aa2a70b1a269f6e06348729836d733d6f970867943f61d367f8cc/cffi-2.1.0-cp312-cp312-win32.whl", hash = "sha256:9b8f0f26ca4e7513c534d351eca551947d053fac438f2a04ac96d882909b0d3a", size = 175269, upload-time = "2026-07-06T21:32:57.777Z" }, + { url = "https://files.pythonhosted.org/packages/a8/eb/f636456ff21a83fc13c032b58cc5dde061691546ac79efa284b2989b7982/cffi-2.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:c97f080ea627e2863524c5af3836e2270b5f5dfff1f104392b959f8df0c5d384", size = 185881, upload-time = "2026-07-06T21:32:59.253Z" }, + { url = "https://files.pythonhosted.org/packages/dd/2c/400ea43e721727dca8a65c4521390e9196757caba4a45643acb2b63271b8/cffi-2.1.0-cp312-cp312-win_arm64.whl", hash = "sha256:6d194185eabd279f1c05ebe3504265ddfc5ad2b58d0714f7db9f01da592e9eb6", size = 180088, upload-time = "2026-07-06T21:33:02.278Z" }, +] + +[[package]] +name = "charset-normalizer" +version = "3.4.9" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/bd/2a/23f34ec9d04624958e137efdc394888716353190e75f25dd22c7a2c7a8aa/charset_normalizer-3.4.9.tar.gz", hash = "sha256:673611bbd43f0810bec0b0f028ddeaaa501190339cac411f347ac76917c3ae7b", size = 152439, upload-time = "2026-07-07T14:34:58.454Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ad/81/8e983840c6e5b93b33c2ba81aa3d52c2e42f0e9a690ce7607a2e61da4a5c/charset_normalizer-3.4.9-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:cd6280cf040f233bd7d3407b743b4b4c74f70e8e1c4199cb112a62c941c0772a", size = 322240, upload-time = "2026-07-07T14:32:36.236Z" }, + { url = "https://files.pythonhosted.org/packages/de/d1/b4319dc3229d8272fba305e206fc0a148e2de8d4087917ce62ae6382f359/charset_normalizer-3.4.9-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:aa99adc8f081b475a12843953db36831eaf83ec33eb46a90629ca6a5de45a616", size = 216475, upload-time = "2026-07-07T14:32:38.142Z" }, + { url = "https://files.pythonhosted.org/packages/80/33/6c99c1b3e6b8bf730e1bc809b9a2608f224145069114c479a2e9e1494346/charset_normalizer-3.4.9-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c1225416b463483160e4af85d5fc3a9690ccb53fd4b1865a6437825f5ede3209", size = 238670, upload-time = "2026-07-07T14:32:39.658Z" }, + { url = "https://files.pythonhosted.org/packages/7f/f4/ffbb83546e1f198ecc70ecd372b65cf2b50f9068b380abd67640f17a8e18/charset_normalizer-3.4.9-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:16d10d789dd9bcca1173c95af82c58433122564b7bc39385124be735a35cbe99", size = 233476, upload-time = "2026-07-07T14:32:41.155Z" }, + { url = "https://files.pythonhosted.org/packages/e8/5f/b98b8da398637b551e427e7be922bdec19177dc54d6811dcdaa503f23aac/charset_normalizer-3.4.9-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9bb41182d93ea91f60b4bc8fbf4c820c69ef8a12ab2d917f3f1834f1acad07e8", size = 223817, upload-time = "2026-07-07T14:32:42.592Z" }, + { url = "https://files.pythonhosted.org/packages/36/31/a276bb2e66243072a3fd06fdcab9cbb61a305b02143d70d2bda21d888fa8/charset_normalizer-3.4.9-cp310-cp310-manylinux_2_31_armv7l.whl", hash = "sha256:bcf74c1df76758a395bf0af608c04c82257523f55c9868b334f06270d0f2112b", size = 207974, upload-time = "2026-07-07T14:32:44.258Z" }, + { url = "https://files.pythonhosted.org/packages/5e/be/7ee4453d7e88dfbc4104ccd34900b9f2c7c17dac22881865fe0e82424a25/charset_normalizer-3.4.9-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:b5314963fce9b0b12743891de876e724997864ee22aa496f903f426c7e2fa5b2", size = 221655, upload-time = "2026-07-07T14:32:45.64Z" }, + { url = "https://files.pythonhosted.org/packages/1d/85/181c652953eb5276d198f375b1dd641047392050098100a3a02d6534f657/charset_normalizer-3.4.9-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e9701d0049d92c16703a42771b98d560b95248949f23f8cf7b4eddd201814fb9", size = 219229, upload-time = "2026-07-07T14:32:47.376Z" }, + { url = "https://files.pythonhosted.org/packages/0c/e7/aaf6da33fc9f4691cda8f7efbc9f69179d3d39ec8a4799baf273ee1d8db0/charset_normalizer-3.4.9-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:65a7ff3f705e57d392f7261b6d0550fe137c3019477431f1c355e0db0a7d3e15", size = 209704, upload-time = "2026-07-07T14:32:48.855Z" }, + { url = "https://files.pythonhosted.org/packages/63/01/f2fb3bd3a73be48b173ee0c6aa8d2497af97d5663a8c4c4b491de4c62f7a/charset_normalizer-3.4.9-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:79580094b00d1789d1f93ea55bc43cb2f611910c72235b7657f3482ddcc1b22d", size = 226243, upload-time = "2026-07-07T14:32:50.239Z" }, + { url = "https://files.pythonhosted.org/packages/c4/02/c57a22739fe05246b0b5783b3bfb6afaac4eebb46f3ececdfb2f048f780e/charset_normalizer-3.4.9-cp310-cp310-win32.whl", hash = "sha256:432786d3561e69aeeae6c7e8648964ce0ad05736120135601f87ac26b9c83381", size = 150935, upload-time = "2026-07-07T14:32:51.676Z" }, + { url = "https://files.pythonhosted.org/packages/37/8d/ca39a7559a4797505530d084fd3a49a2c959efbbbff146302fb7be4e3b35/charset_normalizer-3.4.9-cp310-cp310-win_amd64.whl", hash = "sha256:8c041122946b7ba21bb32c45b1aa57b1be35527690aeb3c5c234521085632eee", size = 162314, upload-time = "2026-07-07T14:32:53.193Z" }, + { url = "https://files.pythonhosted.org/packages/01/da/a44bd7a13d426e69e4894557106cd58669097bfad4a8681123b618fbfc5d/charset_normalizer-3.4.9-cp310-cp310-win_arm64.whl", hash = "sha256:375b83ed0aecfce76c16d198fbc21f3b11b337d68662bea0a995046682a11419", size = 153075, upload-time = "2026-07-07T14:32:54.554Z" }, + { url = "https://files.pythonhosted.org/packages/0b/e3/85ec501f206fb049259288c1f3506e53876937fb00edb47009348e66756b/charset_normalizer-3.4.9-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0e94703ec9684807f20cfb5eed95c70f67f2a8f21ad620146d7b5a13677b93e5", size = 317075, upload-time = "2026-07-07T14:32:56.021Z" }, + { url = "https://files.pythonhosted.org/packages/c3/69/2a5385192e67175f7d8bd5ce4f57c24bc956439adeae5c13a99aa28a53d1/charset_normalizer-3.4.9-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2a441ea71902098ffe78c5abe6c494f44160b4af614ed16c3d9a3b1d17fd8ee2", size = 213837, upload-time = "2026-07-07T14:32:57.78Z" }, + { url = "https://files.pythonhosted.org/packages/b3/46/03ddc7da576d814fe0a36dd1f0fd3258e95404b4b2e3c026b7923d7e133f/charset_normalizer-3.4.9-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:304b13570067b2547562e308af560b3963857b1fa90bd6afd978130130fe2d6a", size = 235503, upload-time = "2026-07-07T14:32:59.205Z" }, + { url = "https://files.pythonhosted.org/packages/4e/6e/de0229a7ef40f6f9d28a837eebf4ec47bdca5dab4e900c84f22919af636a/charset_normalizer-3.4.9-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:4773092f8019072343a7447203308b176e10199920eb02d6195e81bbb3274c29", size = 229944, upload-time = "2026-07-07T14:33:00.803Z" }, + { url = "https://files.pythonhosted.org/packages/a5/34/49b9060e8418b14fb5cba9cf6bfb383111e2538a03a1fb18e66a95aeb3d5/charset_normalizer-3.4.9-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:04ce310cb89c15df659582aee80a0603788732a5e017d5bd5c81158106ce249c", size = 221276, upload-time = "2026-07-07T14:33:02.199Z" }, + { url = "https://files.pythonhosted.org/packages/44/95/80282cce0fae9c3061203d723ee87da996aed79679e65d8935050ee7ca1f/charset_normalizer-3.4.9-cp311-cp311-manylinux_2_31_armv7l.whl", hash = "sha256:c0323c9daef75ef2e5083624b4585018a0c9d5e3b40f607eed81a311270b934b", size = 205260, upload-time = "2026-07-07T14:33:03.698Z" }, + { url = "https://files.pythonhosted.org/packages/0c/74/2f62c8821b969ea3bd67cc2e6976834f48ca5d12664d2559ebcd9bcfbed7/charset_normalizer-3.4.9-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:871ff67ea1aad4dfd91736464934d56b32dac49f9fbe16cddba36198a7b3a0db", size = 217786, upload-time = "2026-07-07T14:33:05.12Z" }, + { url = "https://files.pythonhosted.org/packages/d9/8d/feabb82cb49fcad14515b1d7d1ca4787b0da7fc723a212bf89bc9e0fac52/charset_normalizer-3.4.9-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:67830fc78e67501f47bb950471b2dcb9b35b140084429318e862895a8e89c993", size = 216798, upload-time = "2026-07-07T14:33:06.629Z" }, + { url = "https://files.pythonhosted.org/packages/a5/ff/c946d63bc3786d5b84d960b0f7ab7e25b828486a946b5aa997625bcaf6a6/charset_normalizer-3.4.9-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:3d92613ec25e43b05f042302531ec0f00b8445190e43325880cbd6ab7c2581da", size = 206429, upload-time = "2026-07-07T14:33:08.006Z" }, + { url = "https://files.pythonhosted.org/packages/af/ba/5e5007c370702f85d2ef75791fac7943ed41e080364a673b20142e430e3e/charset_normalizer-3.4.9-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:280081916dc341820640489a66e4696049401ef1cf6dd672f672e70ad915aca3", size = 223066, upload-time = "2026-07-07T14:33:09.783Z" }, + { url = "https://files.pythonhosted.org/packages/83/d5/9096aa3cf532dfad237861544eb47a0f20d5adbf1039760fed8eaae935d9/charset_normalizer-3.4.9-cp311-cp311-win32.whl", hash = "sha256:ac351b3b8014eead140e77e9717e2992c6bbe30b63bc3422422eb84865412e3d", size = 150456, upload-time = "2026-07-07T14:33:11.217Z" }, + { url = "https://files.pythonhosted.org/packages/ed/a1/e29995109e455dc8eff8d0fac6ae509be39561318a7cfeac5d33ad029213/charset_normalizer-3.4.9-cp311-cp311-win_amd64.whl", hash = "sha256:6366a16e1a25018694d6a5d784d09b046edc9eac40ea2b54065c3052672516a1", size = 161410, upload-time = "2026-07-07T14:33:12.743Z" }, + { url = "https://files.pythonhosted.org/packages/4f/8d/1569f4d0032d6ba2a4fe4591c35bf87868c600c41a71eb5c2e1ffa8464c2/charset_normalizer-3.4.9-cp311-cp311-win_arm64.whl", hash = "sha256:1d22856ffbe153a602df38e4a5464f0b748a54002e0d69ac6d2ad0a197cc99ec", size = 152649, upload-time = "2026-07-07T14:33:14.173Z" }, + { url = "https://files.pythonhosted.org/packages/70/4a/ecbd131485c07fcdfad54e28946d513e3da22ef3b4bd854dcafae54ec739/charset_normalizer-3.4.9-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:45b0cc4e3556cd875e09102988d1ab8356c998b596c9fced84547c8138b487a0", size = 319300, upload-time = "2026-07-07T14:33:15.666Z" }, + { url = "https://files.pythonhosted.org/packages/ec/96/5d9364e3342d69f3a045e1777bc47c85c383e6e9466d561b33fdb419d1f9/charset_normalizer-3.4.9-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9b2aff1c7b3884512b9512c3eaadd9bab39fb45042ffaaa1dd08ff2b9f8109d9", size = 215802, upload-time = "2026-07-07T14:33:17.031Z" }, + { url = "https://files.pythonhosted.org/packages/4b/4c/5361f9aa7f2cb58d94f2ab831b3d493f69efb1d239654b4744e3c09527cb/charset_normalizer-3.4.9-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:9104ed0bd76a429d46f9ec0dbc9b08ad1d2dcdf2b00a5a0daa1c145329b35b44", size = 237171, upload-time = "2026-07-07T14:33:18.576Z" }, + { url = "https://files.pythonhosted.org/packages/50/78/ce342ca4ff30b2eb49fe6d9578df85974f90c67d294113e94efdd9664cbd/charset_normalizer-3.4.9-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:7b86a2b16095d250c6f58b3d9b2eee6f4147754344f3dab0922f7c9bf7d226c9", size = 233075, upload-time = "2026-07-07T14:33:20.084Z" }, + { url = "https://files.pythonhosted.org/packages/01/c4/4fa4c8b3097a11f3c5f09a35b72ed6855fb1d332469504962ab7bafcc702/charset_normalizer-3.4.9-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5e226f6218febc71f6c1fc2fafb91c226f75bdc1d8fb12d66823716e891608fd", size = 224256, upload-time = "2026-07-07T14:33:21.747Z" }, + { url = "https://files.pythonhosted.org/packages/87/3a/ad914516df7e358a81aae018caa5e0470ba827fa6d763b1d2e87d920a5f6/charset_normalizer-3.4.9-cp312-cp312-manylinux_2_31_armv7l.whl", hash = "sha256:90c44bc373b7687f6948b693cceaea1348ae0975d7474746559494468e3c1d84", size = 208784, upload-time = "2026-07-07T14:33:23.313Z" }, + { url = "https://files.pythonhosted.org/packages/d7/74/3c12f9755717dfe5c5c87da63f35d765fa0c00382ec26bf23f7fae34f2ba/charset_normalizer-3.4.9-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:9cdef90ae47919cae358d8ab15797a800ed41da7aba5d72419fb510729e2ed4b", size = 219928, upload-time = "2026-07-07T14:33:24.814Z" }, + { url = "https://files.pythonhosted.org/packages/33/9a/895095b83e7907abd6d3d99aad3a38ad0d9686cc186cb0c94c24320fe63e/charset_normalizer-3.4.9-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:60f44ade2cf573dad7a277e6f8ca9a51a21dda572b13bd7d8539bb3cd5dbedde", size = 218489, upload-time = "2026-07-07T14:33:26.42Z" }, + { url = "https://files.pythonhosted.org/packages/a1/34/ef5c05f412f42520d7709b7d3784d19640839eb7366ded1755511585429f/charset_normalizer-3.4.9-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:a1786910334ed46ab1dd73222f2cd1e05c2c3bb39f6dddb4f8b36fc382058a39", size = 210267, upload-time = "2026-07-07T14:33:27.952Z" }, + { url = "https://files.pythonhosted.org/packages/83/dc/9b29fa4412b318bf3bfea985c35d67eb55e04b59a7c3f2237168b0e0be6f/charset_normalizer-3.4.9-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:03d07803992c6c7bbc976327f34b18b6160327fc81cb82c9d504720ac0be3b62", size = 226030, upload-time = "2026-07-07T14:33:29.397Z" }, + { url = "https://files.pythonhosted.org/packages/0e/42/6dbc00b8cd16011691203e33570fa42ed5746599a2e878112d16eab403a3/charset_normalizer-3.4.9-cp312-cp312-win32.whl", hash = "sha256:78841cccf1af7b40f6f716338d50c0902dbe88d9f800b3c973b7a9a0a693a642", size = 151185, upload-time = "2026-07-07T14:33:30.781Z" }, + { url = "https://files.pythonhosted.org/packages/80/cc/f920afd1a23c58ccd53c1d36085a71893a4737ff5e66e0371efab6809850/charset_normalizer-3.4.9-cp312-cp312-win_amd64.whl", hash = "sha256:4b3dac63058cc36820b0dd072f89898604e2d39686fe05321729d00d8ac185a0", size = 162557, upload-time = "2026-07-07T14:33:32.176Z" }, + { url = "https://files.pythonhosted.org/packages/f0/e6/0386d43a261ff4e4b30c5857af7df877254b46bec7b9d1b74b6bf969a90b/charset_normalizer-3.4.9-cp312-cp312-win_arm64.whl", hash = "sha256:78fa18e436a1a0e58dbd7e02fc4473f3f32cceb12df9dfca542d075961c307d2", size = 152665, upload-time = "2026-07-07T14:33:33.711Z" }, + { url = "https://files.pythonhosted.org/packages/98/2b/f97f1c193fb855c345d678f5077d6926034db0722df74c8f057020e05a25/charset_normalizer-3.4.9-py3-none-any.whl", hash = "sha256:68e5f26a1ad57ded6d1cfb85331d1c1a195314756471d97758c48498bb4dcdf5", size = 64538, upload-time = "2026-07-07T14:34:56.993Z" }, +] + +[[package]] +name = "click" +version = "8.4.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/76/d4/81420972a676e8ffea40450d8c8c92943e7218a78fe9b64359836cc9876b/click-8.4.2.tar.gz", hash = "sha256:9a6cea6e60b17ebe0a44c5cc636d94f09bd66142c1cd7d8b4cd731c4917a15f6", size = 338000, upload-time = "2026-06-24T17:45:15.148Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fb/e2/79c688af8b210d232694e31e59da9f6ec747bae31c3f5946e4e9b98860d5/click-8.4.2-py3-none-any.whl", hash = "sha256:e6f9f66136c816745b9d65817da91d61d957fb16e02e4dcd0552553c5a197b76", size = 119243, upload-time = "2026-06-24T17:45:13.73Z" }, +] + +[[package]] +name = "colorama" +version = "0.4.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload-time = "2022-10-25T02:36:22.414Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" }, +] + +[[package]] +name = "csvw" +version = "4.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "babel" }, + { name = "isodate" }, + { name = "jsonschema" }, + { name = "language-tags" }, + { name = "python-dateutil" }, + { name = "rdflib" }, + { name = "rfc3986" }, + { name = "termcolor" }, + { name = "uritemplate" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c5/f1/95a10e22505e84bf346dd8df41d9c6135aea564d83d8e39b79b0851ba4db/csvw-4.1.0.tar.gz", hash = "sha256:bfe2b64442552b392577a8d30edf886510c8d05e665606fa5caa1508365fd700", size = 83167, upload-time = "2026-07-06T08:37:26.378Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fe/7f/9586327961379fd23362eafddac9fc9ba1d6783686d20154d55e93dd8a61/csvw-4.1.0-py2.py3-none-any.whl", hash = "sha256:d432d4cccd8dcdf31ccb2272d6d7ad40a9ebde7de3c7d6ced9033afb23bb76dd", size = 69495, upload-time = "2026-07-06T08:37:24.411Z" }, +] + +[[package]] +name = "cuda-bindings" +version = "13.3.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cuda-pathfinder" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/a9/21/8464d133752951c154feafb3b65c297e7d80f301183d220bec4c830f1441/cuda_bindings-13.3.1-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:120fcc53d57903df529c3486962c56528cba5b7d6c57c99537320ed9922c8b86", size = 6073403, upload-time = "2026-05-29T23:11:36.22Z" }, + { url = "https://files.pythonhosted.org/packages/a8/1f/5ef51f5fbaa5d4d3201bb3d7555af028ec1aa4416275ccbf73c9e34e3d2d/cuda_bindings-13.3.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9851b0caa8bfd3bc6fa054eaf57bea7c8e9c3a62db2d2621224677f49f3c53d0", size = 6675244, upload-time = "2026-05-29T23:11:38.664Z" }, + { url = "https://files.pythonhosted.org/packages/51/6b/457ca12dad3ee9bfcc9a545cfd6b64b359ba49de40f776f6e028e678f262/cuda_bindings-13.3.1-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c5879712accf6e14bb01aa5e67440eb84998b8d104b509cc7a6dc0b8f656a474", size = 6053539, upload-time = "2026-05-29T23:11:43.19Z" }, + { url = "https://files.pythonhosted.org/packages/95/7a/c5e3c34a409b148f5c0f5a4ea374158f95d488862c1dffedf9aa5c639df9/cuda_bindings-13.3.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:04436a9364059c84b8f9636f359eccda1cf814341f5b670c71d80d2f79dbc708", size = 6674166, upload-time = "2026-05-29T23:11:45.478Z" }, + { url = "https://files.pythonhosted.org/packages/ce/67/5e7dba1ba576dd73da5dee894ca076ca5e959450dfff66d6d510a255d1f7/cuda_bindings-13.3.1-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c7855c4868aabc0cfae28abbe83d56734bdfbd08f08fc234ac1912a12858bf49", size = 6025351, upload-time = "2026-05-29T23:11:49.685Z" }, + { url = "https://files.pythonhosted.org/packages/39/2a/6d2e9047d1fb243dbaa364b01e0297534b9ed7fd27dba1c9f361519cf69b/cuda_bindings-13.3.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e32d08f71ebcdf00f0f41eab2eb37e8da94c8ed411cc9f7f7a019ce6b34abe3a", size = 6657965, upload-time = "2026-05-29T23:11:52.227Z" }, +] + +[[package]] +name = "cuda-pathfinder" +version = "1.6.0" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fc/b4/d088047afe39827556df21118cac9ffd20cc3f968c99a7681494d1eb333c/cuda_pathfinder-1.6.0-py3-none-any.whl", hash = "sha256:1503af579d8379c24bdd65528379bc57039b0455be9f5f9686cf8e473a1fce51", size = 54591, upload-time = "2026-07-21T15:03:56.224Z" }, +] + +[[package]] +name = "cuda-toolkit" +version = "13.0.3.0" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/c7/a79086a62c98befcdb8349656c6f114e2db3b8b2422f6e25c97a7f2a9a3c/cuda_toolkit-13.0.3.0-py2.py3-none-any.whl", hash = "sha256:d693caaa261214ddd7dbb60d68e71cbed884e68c2be7509778f3051da0b91c3f", size = 2512, upload-time = "2026-04-14T00:50:08.173Z" }, +] + +[package.optional-dependencies] +cublas = [ + { name = "nvidia-cublas", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'x86_64' and sys_platform == 'linux') or (platform_machine == 'AMD64' and sys_platform == 'win32')" }, + { name = "nvidia-cuda-nvrtc", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'x86_64' and sys_platform == 'linux') or (platform_machine == 'AMD64' and sys_platform == 'win32')" }, +] +cudart = [ + { name = "nvidia-cuda-runtime", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'x86_64' and sys_platform == 'linux') or (platform_machine == 'AMD64' and sys_platform == 'win32')" }, +] +cufft = [ + { name = "nvidia-cufft", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'x86_64' and sys_platform == 'linux') or (platform_machine == 'AMD64' and sys_platform == 'win32')" }, + { name = "nvidia-nvjitlink", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'x86_64' and sys_platform == 'linux') or (platform_machine == 'AMD64' and sys_platform == 'win32')" }, +] +cufile = [ + { name = "nvidia-cufile", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'x86_64' and sys_platform == 'linux')" }, +] +cupti = [ + { name = "nvidia-cuda-cupti", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'x86_64' and sys_platform == 'linux') or (platform_machine == 'AMD64' and sys_platform == 'win32')" }, +] +curand = [ + { name = "nvidia-curand", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'x86_64' and sys_platform == 'linux') or (platform_machine == 'AMD64' and sys_platform == 'win32')" }, +] +cusolver = [ + { name = "nvidia-cublas", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'x86_64' and sys_platform == 'linux') or (platform_machine == 'AMD64' and sys_platform == 'win32')" }, + { name = "nvidia-cusolver", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'x86_64' and sys_platform == 'linux') or (platform_machine == 'AMD64' and sys_platform == 'win32')" }, + { name = "nvidia-cusparse", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'x86_64' and sys_platform == 'linux') or (platform_machine == 'AMD64' and sys_platform == 'win32')" }, + { name = "nvidia-nvjitlink", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'x86_64' and sys_platform == 'linux') or (platform_machine == 'AMD64' and sys_platform == 'win32')" }, +] +cusparse = [ + { name = "nvidia-cusparse", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'x86_64' and sys_platform == 'linux') or (platform_machine == 'AMD64' and sys_platform == 'win32')" }, + { name = "nvidia-nvjitlink", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'x86_64' and sys_platform == 'linux') or (platform_machine == 'AMD64' and sys_platform == 'win32')" }, +] +nvjitlink = [ + { name = "nvidia-nvjitlink", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'x86_64' and sys_platform == 'linux') or (platform_machine == 'AMD64' and sys_platform == 'win32')" }, +] +nvrtc = [ + { name = "nvidia-cuda-nvrtc", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'x86_64' and sys_platform == 'linux') or (platform_machine == 'AMD64' and sys_platform == 'win32')" }, +] +nvtx = [ + { name = "nvidia-nvtx", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'x86_64' and sys_platform == 'linux') or (platform_machine == 'AMD64' and sys_platform == 'win32')" }, +] + +[[package]] +name = "dlinfo" +version = "2.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/85/8e/8f2f94cd40af1b51e8e371a83b385d622170d42f98776441a6118f4dd682/dlinfo-2.0.0.tar.gz", hash = "sha256:88a2bc04f51d01bc604cdc9eb1c3cc0bde89057532ca6a3e71a41f6235433e17", size = 12727, upload-time = "2025-01-16T15:43:10.756Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/da/90/022c79d6e5e6f843268c10b84d4a021ee3afba0621d3c176d3ff2024bfc8/dlinfo-2.0.0-py3-none-any.whl", hash = "sha256:b32cc18e3ea67c0ca9ca409e5b41eed863bd1363dbc9dd3de90fedf11b61e7bc", size = 3654, upload-time = "2025-01-16T15:43:09.474Z" }, +] + +[[package]] +name = "editdistance" +version = "0.8.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d5/18/9f4f975ca87a390832b1c22478f3702fcdf739f83211e24d054b7551270d/editdistance-0.8.1.tar.gz", hash = "sha256:d1cdf80a5d5014b0c9126a69a42ce55a457b457f6986ff69ca98e4fe4d2d8fed", size = 50006, upload-time = "2024-02-10T07:44:53.914Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/09/c9/302658ce7f4c537a4e85cf578d11bbf7af120a712e1d78fedc6cb8823c65/editdistance-0.8.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:adeb705f32b93accc74960d227875abff150ee42d676e428536361fe5f8f5388", size = 106150, upload-time = "2024-02-10T07:43:15.903Z" }, + { url = "https://files.pythonhosted.org/packages/45/80/0b3c7d2c0e183725986fea5dd2df11f0b4b46320e9a64f6077a121ab1f64/editdistance-0.8.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:3de77951b105d0972deec7684a0b3d1a9dee69c9b5d34f6e2acc0d76cd4a1c52", size = 80551, upload-time = "2024-02-10T07:43:17.64Z" }, + { url = "https://files.pythonhosted.org/packages/b5/14/681460965c6a4a48321b07f88de2273d097fdca0491ff55db891aacbd291/editdistance-0.8.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5e88efb052d45e924606c305cb833a80579dca3e8e4ff01309d50ba2c1c0bbd5", size = 79142, upload-time = "2024-02-10T07:43:19.195Z" }, + { url = "https://files.pythonhosted.org/packages/ed/0d/abdbc8e394a9461cf2ae27c16564fadaa65f52bd242dd1582ae5e7736dc3/editdistance-0.8.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0247e7a1e9c66ea75211a97e725366bff19a52aac2c838ed5f90025630e976dd", size = 396768, upload-time = "2024-02-10T07:43:20.912Z" }, + { url = "https://files.pythonhosted.org/packages/c2/fb/2940d26ebda12efd280ae939436f17ac482930d862df9e774cb8b771ab03/editdistance-0.8.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:67d143429a49ab552411505f550a0fb4285a1d4336e096804d233ec495ac20fc", size = 401846, upload-time = "2024-02-10T07:43:23.169Z" }, + { url = "https://files.pythonhosted.org/packages/53/cc/c63d75c7f387d4df0645682c1ab8706c2dfe5c9c0c4999723ce9a3ba0853/editdistance-0.8.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ca9d3be2b10e5d44a950a4bd1e84bca9ebbecd364bce0cf5693bf8224c78eaef", size = 397543, upload-time = "2024-02-10T07:43:24.621Z" }, + { url = "https://files.pythonhosted.org/packages/8e/38/bb0f734a7571e093184606b930734b12da5b6bff2635eba9312fe4536dd9/editdistance-0.8.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:5c72aa1df8535f2e2b3d8773a1a7da091bc1a7e52bb396e7e48d375ba687e7b2", size = 898934, upload-time = "2024-02-10T07:43:26.926Z" }, + { url = "https://files.pythonhosted.org/packages/1c/9f/624fc7a09918f850a057465f02e86f269e139a457f48ff8cabfb12701756/editdistance-0.8.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:9a606c34a2a6cc190e4fffc856b36333cdcf1f1fab5b22bd3088e585c22d6ca0", size = 959637, upload-time = "2024-02-10T07:43:28.997Z" }, + { url = "https://files.pythonhosted.org/packages/5e/5c/7fa6cc277f91c477ee370807d51c1826891dc6dfc307544223ce7f2687de/editdistance-0.8.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:5af173d442ffac33b7c7990132f97f88818a3abf4b21c0c702a7022df37c0c5c", size = 911024, upload-time = "2024-02-10T07:43:30.449Z" }, + { url = "https://files.pythonhosted.org/packages/ad/97/556215f71184291155aee340a6d34f0676e7238fdfd10615b6b775ce25fe/editdistance-0.8.1-cp310-cp310-win32.whl", hash = "sha256:fd64b58f5a7b59afd9d75982aaeeacd2a98498bf472fa0360c122ffe6ea4c871", size = 80834, upload-time = "2024-02-10T07:43:31.634Z" }, + { url = "https://files.pythonhosted.org/packages/c8/d1/7ec5f5cbb95838d0eff7f980a660c81acd1363d658f2f5d4ceba38877c5a/editdistance-0.8.1-cp310-cp310-win_amd64.whl", hash = "sha256:6c7c62c3cae45ca1fa01bb2722b297b9de1e3a244ac44cfba88bdcb488fe6aee", size = 79614, upload-time = "2024-02-10T07:43:33.255Z" }, + { url = "https://files.pythonhosted.org/packages/e2/dc/d0c29fd52d8f9e795653ed2b838a2a48c739cdfff04ac5b79c6c0ecbdf79/editdistance-0.8.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:486105603a273d73d12a54f347dffa70ab281749d7c3879658b377bc49e4b98c", size = 106079, upload-time = "2024-02-10T07:43:34.34Z" }, + { url = "https://files.pythonhosted.org/packages/b4/c6/75fa45d7b78fbea6fd894f4e48895a75bd3c83d4a9a6b57673881d74d3e0/editdistance-0.8.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:fad081f5f86a175c1a09a4e9e45b95c9349e454c21e181e842e01c85f1f536fc", size = 80580, upload-time = "2024-02-10T07:43:35.947Z" }, + { url = "https://files.pythonhosted.org/packages/b7/a3/058d823b6285c3511dc94ed80620c3fb0c18b4aaa708f70ba71f3af28436/editdistance-0.8.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8cb78e125f6759398885a775f5eed07c2bb72b2f86da43e674c6b6a3335b273b", size = 79087, upload-time = "2024-02-10T07:43:36.923Z" }, + { url = "https://files.pythonhosted.org/packages/a0/3a/0b13c7864c93b1e9b9952bd2a33c5ef3c4fd1bf70a5fad6924789e70e5eb/editdistance-0.8.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3778ca60aa89def9144b70e330bcec5330c7da1d69cb28c612e90b84510a1d3d", size = 409296, upload-time = "2024-02-10T07:43:38.52Z" }, + { url = "https://files.pythonhosted.org/packages/96/8a/db0fd79e8ddb9b5f86f274107c5d0a27ec4f2af88877df1f26c2c6d150cc/editdistance-0.8.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fba945eaa0436cf40bc53d7e299dc537c7c71353379a095b7459ff4af910da33", size = 412913, upload-time = "2024-02-10T07:43:39.852Z" }, + { url = "https://files.pythonhosted.org/packages/0d/d2/98be7112750ff17b436dd76f988f1e38570dcec0df8578ee19ef046f22fe/editdistance-0.8.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:877f2a0d801f32bc1a1878901ffb947b974361e849c66e314a7f1d786a446b58", size = 407430, upload-time = "2024-02-10T07:43:41.048Z" }, + { url = "https://files.pythonhosted.org/packages/03/62/1815e3bf164910c47ba1948c8b5e937a40c7f9763b64e98fb6666b01dd06/editdistance-0.8.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e79d351ca40a6ead5f3763253fd7521572ee0d3e5d42538630e56d10f48db481", size = 909217, upload-time = "2024-02-10T07:43:42.916Z" }, + { url = "https://files.pythonhosted.org/packages/0c/d3/a832cea7b507a9be54e4ac3d1340fb66dca5f9c16c70bf38d5039e8fdede/editdistance-0.8.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:70ed382b3052a51161bad0149d4665003bf3b949fce0b01bf1253a4cc1a88239", size = 969407, upload-time = "2024-02-10T07:43:44.912Z" }, + { url = "https://files.pythonhosted.org/packages/a3/b4/db291d2a3845cbf8047b4b5aad3b3e038a8a2994d87027b40e1a1b0f4b74/editdistance-0.8.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:a529bfb384c4000775d76739c4e64f73337f0f5a3784933b1321b577a62bed4e", size = 922112, upload-time = "2024-02-10T07:43:47.047Z" }, + { url = "https://files.pythonhosted.org/packages/c4/26/7ddeacada4982d0b892a28897e21871d0f25bca165e3663e37c3a272808a/editdistance-0.8.1-cp311-cp311-win32.whl", hash = "sha256:b082232429e731f181af7f7d2bcf79da6ca8fadd04e9086c11e2973f7d330c81", size = 80799, upload-time = "2024-02-10T07:43:48.231Z" }, + { url = "https://files.pythonhosted.org/packages/52/a1/778af8590b8b12f03f62eacc3c8744407ade9e3d69be6dabe38d0afbf2dd/editdistance-0.8.1-cp311-cp311-win_amd64.whl", hash = "sha256:cef1a4359252a49f2c4718e64e9d40027d9d951b289d045bdb278656e59f6af8", size = 79698, upload-time = "2024-02-10T07:43:49.234Z" }, + { url = "https://files.pythonhosted.org/packages/cb/4c/7f195588949b4e72436dc7fc902632381f96e586af829685b56daebb38b8/editdistance-0.8.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:b04af61b3fcdd287a07c15b6ae3b02af01c5e3e9c3aca76b8c1d13bd266b6f57", size = 106723, upload-time = "2024-02-10T07:43:50.268Z" }, + { url = "https://files.pythonhosted.org/packages/8d/82/31dc1640d830cd7d36865098329f34e4dad3b77f31cfb9404b347e700196/editdistance-0.8.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:18fc8b6eaae01bfd9cf999af726c1e8dcf667d120e81aa7dbd515bea7427f62f", size = 80998, upload-time = "2024-02-10T07:43:51.259Z" }, + { url = "https://files.pythonhosted.org/packages/ea/2a/6b823e71cef694d6f070a1d82be2842706fa193541aab8856a8f42044cd0/editdistance-0.8.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6a87839450a5987028738d061ffa5ef6a68bac2ddc68c9147a8aae9806629c7f", size = 79248, upload-time = "2024-02-10T07:43:52.873Z" }, + { url = "https://files.pythonhosted.org/packages/e1/31/bfb8e590f922089dc3471ed7828a6da2fc9453eba38c332efa9ee8749fd7/editdistance-0.8.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:24b5f9c9673c823d91b5973d0af8b39f883f414a55ade2b9d097138acd10f31e", size = 415262, upload-time = "2024-02-10T07:43:54.498Z" }, + { url = "https://files.pythonhosted.org/packages/a9/c7/57423942b2f847cdbbb46494568d00cd8a45500904ea026f0aad6ca01bc7/editdistance-0.8.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c59248eabfad603f0fba47b0c263d5dc728fb01c2b6b50fb6ca187cec547fdb3", size = 418905, upload-time = "2024-02-10T07:43:55.779Z" }, + { url = "https://files.pythonhosted.org/packages/1b/05/dfa4cdcce063596cbf0d7a32c46cd0f4fa70980311b7da64d35f33ad02a0/editdistance-0.8.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:84e239d88ff52821cf64023fabd06a1d9a07654f364b64bf1284577fd3a79d0e", size = 412511, upload-time = "2024-02-10T07:43:57.567Z" }, + { url = "https://files.pythonhosted.org/packages/0e/14/39608ff724a9523f187c4e28926d78bc68f2798f74777ac6757981108345/editdistance-0.8.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:2f7f71698f83e8c83839ac0d876a0f4ef996c86c5460aebd26d85568d4afd0db", size = 917293, upload-time = "2024-02-10T07:43:59.559Z" }, + { url = "https://files.pythonhosted.org/packages/df/92/4a1c61d72da40dedfd0ff950fdc71ae83f478330c58a8bccfd776518bd67/editdistance-0.8.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:04e229d6f4ce0c12abc9f4cd4023a5b5fa9620226e0207b119c3c2778b036250", size = 975580, upload-time = "2024-02-10T07:44:01.328Z" }, + { url = "https://files.pythonhosted.org/packages/47/3d/9877566e724c8a37f2228a84ec5cbf66dbfd0673515baf68a0fe07caff40/editdistance-0.8.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:e16721636da6d6b68a2c09eaced35a94f4a4a704ec09f45756d4fd5e128ed18d", size = 929121, upload-time = "2024-02-10T07:44:02.764Z" }, + { url = "https://files.pythonhosted.org/packages/d2/f5/8c50757d198b8ca30ddb91e8b8f0247a8dca04ff2ec30755245f0ab1ff0c/editdistance-0.8.1-cp312-cp312-win32.whl", hash = "sha256:87533cf2ebc3777088d991947274cd7e1014b9c861a8aa65257bcdc0ee492526", size = 81039, upload-time = "2024-02-10T07:44:04.134Z" }, + { url = "https://files.pythonhosted.org/packages/28/f0/65101e51dc7c850e7b7581a5d8fa8721a1d7479a0dca6c08386328e19882/editdistance-0.8.1-cp312-cp312-win_amd64.whl", hash = "sha256:09f01ed51746d90178af7dd7ea4ebb41497ef19f53c7f327e864421743dffb0a", size = 79853, upload-time = "2024-02-10T07:44:05.687Z" }, + { url = "https://files.pythonhosted.org/packages/d4/4c/c9d02eeb47815d35f8d324b52f6704ea7beb032bcb209358cac44047d413/editdistance-0.8.1-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:a4a90c6b03094c07358572027a8d0a13cca7450b1aa6caca98a5f1fa4f0b8961", size = 76455, upload-time = "2024-02-10T07:44:36.838Z" }, + { url = "https://files.pythonhosted.org/packages/af/b0/2818fa6a24595dac069b0bfb9d05658406779a1ded8fd2b0c9066396cf99/editdistance-0.8.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:510a4f9ced348a4fd89ae2e102357d4d801a771e29bb2bc2f130a1692193407f", size = 84104, upload-time = "2024-02-10T07:44:37.928Z" }, + { url = "https://files.pythonhosted.org/packages/1f/d1/3d5e09bcf7fdb7aed705bf74047a8634bd2b8fd92177c25a2547e6dbadfb/editdistance-0.8.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4787fa7228ba6a34b430066d174320f011d605015baa7299c2c4911e6ea6bd46", size = 89058, upload-time = "2024-02-10T07:44:39.113Z" }, + { url = "https://files.pythonhosted.org/packages/cd/88/fca5d7b1a1edf66ce1e5b6b60bff75842e6814b4f5facbdf4585d88c912d/editdistance-0.8.1-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ee02601375073afccd6b4d811129ce1cb696d47db734784d8dbd1fddcea75447", size = 84635, upload-time = "2024-02-10T07:44:40.714Z" }, + { url = "https://files.pythonhosted.org/packages/a9/91/0e6285bbe2358d81fd16313d30306b2d0036387348f7bc11d8c076ca3c72/editdistance-0.8.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:bc7ad9f9a20e6f351523de77c59249f005242e3f317b5de45d02c378d24f6531", size = 77389, upload-time = "2024-02-10T07:44:41.725Z" }, +] + +[[package]] +name = "espeakng-loader" +version = "0.2.4" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f8/92/f44ed7f531143c3c6c97d56e2b0f9be8728dc05e18b96d46eb539230ed46/espeakng_loader-0.2.4-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:b77477ae2ddf62a748e04e49714eabb2f3a24f344166200b00539083bd669904", size = 9938387, upload-time = "2025-01-17T01:22:42.064Z" }, + { url = "https://files.pythonhosted.org/packages/a8/26/258c0cd43b9bc1043301c5f61767d6a6c3b679df82790c9cb43a3277b865/espeakng_loader-0.2.4-py3-none-macosx_11_0_arm64.whl", hash = "sha256:d27cdca31112226e7299d8562e889d3e38a1e48055c9ee381b45d669072ee59f", size = 9892565, upload-time = "2025-01-17T01:22:40.365Z" }, + { url = "https://files.pythonhosted.org/packages/de/1e/25ec5ab07528c0fbb215a61800a38eca05c8a99445515a02d7fa5debcb32/espeakng_loader-0.2.4-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:08721baf27d13d461f6be6eed9a65277e70d68234ff484fd8b9897b222cdcb6d", size = 10078484, upload-time = "2025-01-17T01:22:43.373Z" }, + { url = "https://files.pythonhosted.org/packages/d9/ad/1b768d8daffc2996e07bbcb6f534d8de3202cd75fce1f1c45eced1ce6465/espeakng_loader-0.2.4-py3-none-manylinux_2_28_aarch64.whl", hash = "sha256:d1e798141b46a050cdb75fcf3c17db969bb2c40394f3f4a48910655d547508b9", size = 10037736, upload-time = "2025-01-17T01:22:42.576Z" }, + { url = "https://files.pythonhosted.org/packages/9d/ed/a3d872fbad4f3a3f3db0e8c31768ab14e77cd77306de16b8b20b1e1df7ea/espeakng_loader-0.2.4-py3-none-win_amd64.whl", hash = "sha256:41f1e08ac9deda2efd1ea9de0b81dab9f5ae3c4b24284f76533d0a7b1dd7abd7", size = 9437292, upload-time = "2025-01-17T01:23:27.463Z" }, + { url = "https://files.pythonhosted.org/packages/29/64/0b75bc50ec53b4e000bac913625511215aa96124adf5dba8c4baa17c02cd/espeakng_loader-0.2.4-py3-none-win_arm64.whl", hash = "sha256:d7a2928843eaeb2df82f99a370f44e8a630f59b02f9b0d1f168a03c4eeb76b89", size = 9426841, upload-time = "2025-01-17T01:23:21.766Z" }, +] + +[[package]] +name = "exceptiongroup" +version = "1.3.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { 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 = [ + { url = "https://files.pythonhosted.org/packages/8a/0e/97c33bf5009bdbac74fd2beace167cab3f978feb69cc36f1ef79360d6c4e/exceptiongroup-1.3.1-py3-none-any.whl", hash = "sha256:a7a39a3bd276781e98394987d3a5701d0c4edffb633bb7a5144577f82c773598", size = 16740, upload-time = "2025-11-21T23:01:53.443Z" }, +] + +[[package]] +name = "filelock" +version = "3.32.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c0/80/8232b582c4b318b817cf1274ba74976b07b34d35ef439b3eb948f98645a1/filelock-3.32.0.tar.gz", hash = "sha256:7be2ad23a14607ccc71808e68fe30848aeace7058ace17852f68e2a68e310402", size = 213757, upload-time = "2026-07-21T13:17:42.898Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/06/79/b4c714bef36bc4ec2beeae1e0c124f0223888cd8c6feb1cdc56038116920/filelock-3.32.0-py3-none-any.whl", hash = "sha256:d396bea984af47333ef05e50eae7eff88c84256de6112aea0ec48a233c064fe3", size = 97732, upload-time = "2026-07-21T13:17:41.55Z" }, +] + +[[package]] +name = "flatbuffers" +version = "25.12.19" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e8/2d/d2a548598be01649e2d46231d151a6c56d10b964d94043a335ae56ea2d92/flatbuffers-25.12.19-py2.py3-none-any.whl", hash = "sha256:7634f50c427838bb021c2d66a3d1168e9d199b0607e6329399f04846d42e20b4", size = 26661, upload-time = "2025-12-19T23:16:13.622Z" }, +] + +[[package]] +name = "fsspec" +version = "2026.6.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/10/a1/ae4e3e5003468d6391d2c77b6fa1cd73bd5d13511d81c642d7b28ac90ed4/fsspec-2026.6.0.tar.gz", hash = "sha256:f5bac145310fe30e16e1471bd6840b2d990d609e872251d7e674241822abf01a", size = 313646, upload-time = "2026-06-16T01:57:28.105Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e5/22/4222d7ddf3da30f363edaa98e329c2bce6c65497c9cb2810931c8b2c0fbc/fsspec-2026.6.0-py3-none-any.whl", hash = "sha256:02e0b71817df9b2169dc30a16832045764def1191b43dcff5bb85bdee212d2a1", size = 203949, upload-time = "2026-06-16T01:57:26.358Z" }, +] + +[[package]] +name = "h11" +version = "0.16.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/01/ee/02a2c011bdab74c6fb3c75474d40b3052059d95df7e73351460c8588d963/h11-0.16.0.tar.gz", hash = "sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1", size = 101250, upload-time = "2025-04-24T03:35:25.427Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86", size = 37515, upload-time = "2025-04-24T03:35:24.344Z" }, +] + +[[package]] +name = "hf-xet" +version = "1.5.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/63/39/67be8d71f900d9a55761b6022821d6679fb56c64f1b6063d5af2c2606727/hf_xet-1.5.2.tar.gz", hash = "sha256:73044bd31bae33c984af832d19c752a0dffb67518fee9ddbd91d616e1101cf47", size = 903674, upload-time = "2026-07-16T17:29:56.833Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/de/ba/2b70603c7552db82baeb2623e2336898304a17328845151be4fe1f48d420/hf_xet-1.5.2-cp38-abi3-macosx_10_12_x86_64.whl", hash = "sha256:f922b8f5fb84f1dd3d7ab7a1316354a1bca9b1c73ecfc19c76e51a2a49d29799", size = 4033760, upload-time = "2026-07-16T17:29:43.884Z" }, + { url = "https://files.pythonhosted.org/packages/60/ac/b097a86a1e4a6098f3a79382643ab09d5733d87ccc864877ad1e12b49b70/hf_xet-1.5.2-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:045f84440c55cdeb659cf1a1dd48c77bcd0d2e93632e2fea8f2c3bdee79f38ed", size = 3841438, upload-time = "2026-07-16T17:29:45.539Z" }, + { url = "https://files.pythonhosted.org/packages/d3/35/db860aa3a0780660324a506ad4b3d322ddc6ecbba4b9340aed0942cbf21c/hf_xet-1.5.2-cp38-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:db78c39c83d6279daddc98e2238f373ab8980685556d42472b4ec51abcf03e8c", size = 4428006, upload-time = "2026-07-16T17:29:46.996Z" }, + { url = "https://files.pythonhosted.org/packages/af/6b/832dd980af4b0c3ae0660e309285f2ffcdff2faa38129390dbb47aa4a3f9/hf_xet-1.5.2-cp38-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:7db73c810500c54c6760be8c39d4b2e476974de85424c50063efc22fdda13025", size = 4221099, upload-time = "2026-07-16T17:29:48.525Z" }, + { url = "https://files.pythonhosted.org/packages/9e/05/ae50f0d34e3254e6c3e208beb2519f6b8673016fc4b3643badaf6450d186/hf_xet-1.5.2-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:6395cfe3c9cbead4f16b31808b0e67eac428b66c656f856e99636adaddea878f", size = 4420766, upload-time = "2026-07-16T17:29:50.092Z" }, + { url = "https://files.pythonhosted.org/packages/07/a9/c050bc2743a2bcd68928bfee157b08681667a164a24ec95fbfcfcd717e08/hf_xet-1.5.2-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:cde8cd167126bb6109b2ceb19b844433a4988643e8f3e01dd9dd0e4a34535097", size = 4636716, upload-time = "2026-07-16T17:29:51.62Z" }, + { url = "https://files.pythonhosted.org/packages/e9/f8/68b01c5c2edb56ac9a67b3d076ffddcb90867abaee923923eb34e7a14e76/hf_xet-1.5.2-cp38-abi3-win_amd64.whl", hash = "sha256:ecf63d1cb69a9a7319910f8f83fcf9b46e7a32dfcf4b8f8eeddb55f647306e65", size = 3988373, upload-time = "2026-07-16T17:29:53.395Z" }, + { url = "https://files.pythonhosted.org/packages/39/c6/988383e9dc17294d536fcbcd6fd16eed882e411ad16c954984a53e47b09c/hf_xet-1.5.2-cp38-abi3-win_arm64.whl", hash = "sha256:1da28519496eb7c8094c11e4d25509b4a468457a0302d58136099db2fd9a671d", size = 3816957, upload-time = "2026-07-16T17:29:54.991Z" }, +] + +[[package]] +name = "httpcore" +version = "1.0.9" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "h11" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/06/94/82699a10bca87a5556c9c59b5963f2d039dbd239f25bc2a63907a05a14cb/httpcore-1.0.9.tar.gz", hash = "sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8", size = 85484, upload-time = "2025-04-24T22:06:22.219Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl", hash = "sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55", size = 78784, upload-time = "2025-04-24T22:06:20.566Z" }, +] + +[[package]] +name = "httpx" +version = "0.28.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "certifi" }, + { name = "httpcore" }, + { name = "idna" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b1/df/48c586a5fe32a0f01324ee087459e112ebb7224f646c0b5023f5e79e9956/httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc", size = 141406, upload-time = "2024-12-06T15:37:23.222Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad", size = 73517, upload-time = "2024-12-06T15:37:21.509Z" }, +] + +[[package]] +name = "huggingface-hub" +version = "1.24.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, + { name = "filelock" }, + { name = "fsspec" }, + { name = "hf-xet", marker = "platform_machine == 'AMD64' or platform_machine == 'aarch64' or platform_machine == 'amd64' or platform_machine == 'arm64' or platform_machine == 'x86_64'" }, + { name = "httpx" }, + { name = "packaging" }, + { name = "pyyaml" }, + { name = "tqdm" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/df/9b/d3bb4e7d792835daf34dd7091bbc7d7b4e0437d9388f1ea7239cce49f478/huggingface_hub-1.24.0.tar.gz", hash = "sha256:18431ff4daae0749aa9ba102fc952e314c98e1d30ebdec5319d85ca0a83e1ae5", size = 921848, upload-time = "2026-07-17T09:54:01.022Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5f/c3/aeaaf3911d2529614be18d1c8b5496afc185560e76568063d517283318af/huggingface_hub-1.24.0-py3-none-any.whl", hash = "sha256:6ed4120a84a6beec900640aa7e346bd766a6b7341e41526fef5dc8bd81fb7d59", size = 771904, upload-time = "2026-07-17T09:53:59.106Z" }, +] + +[[package]] +name = "idna" +version = "3.18" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/cd/63/9496c57188a2ee585e0f1db071d75089a11e98aa86eb99d9d7618fc1edce/idna-3.18.tar.gz", hash = "sha256:ffb385a7e039654cef1ab9ef32c6fafe283c0c0467bba1d9029738ce4a14a848", size = 196711, upload-time = "2026-06-02T14:34:07.794Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1e/5e/d4e9f1a599fb8e573b7b87160658329fbf28d19eac2718f51fc3def3aa5a/idna-3.18-py3-none-any.whl", hash = "sha256:7f952cbe720b688055e3f87de14f5c3e5fdaa8bc3928985c4077ca689de849a2", size = 65455, upload-time = "2026-06-02T14:34:06.319Z" }, +] + +[[package]] +name = "iniconfig" +version = "2.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/72/34/14ca021ce8e5dfedc35312d08ba8bf51fdd999c576889fc2c24cb97f4f10/iniconfig-2.3.0.tar.gz", hash = "sha256:c76315c77db068650d49c5b56314774a7804df16fee4402c1f19d6d15d8c4730", size = 20503, upload-time = "2025-10-18T21:55:43.219Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl", hash = "sha256:f631c04d2c48c52b84d0d0549c99ff3859c98df65b3101406327ecc7d53fbf12", size = 7484, upload-time = "2025-10-18T21:55:41.639Z" }, +] + +[[package]] +name = "isodate" +version = "0.7.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/54/4d/e940025e2ce31a8ce1202635910747e5a87cc3a6a6bb2d00973375014749/isodate-0.7.2.tar.gz", hash = "sha256:4cd1aa0f43ca76f4a6c6c0292a85f40b35ec2e43e315b59f06e6d32171a953e6", size = 29705, upload-time = "2024-10-08T23:04:11.5Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/15/aa/0aca39a37d3c7eb941ba736ede56d689e7be91cab5d9ca846bde3999eba6/isodate-0.7.2-py3-none-any.whl", hash = "sha256:28009937d8031054830160fce6d409ed342816b543597cece116d966c6d99e15", size = 22320, upload-time = "2024-10-08T23:04:09.501Z" }, +] + +[[package]] +name = "jinja2" +version = "3.1.6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markupsafe" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/df/bf/f7da0350254c0ed7c72f3e33cef02e048281fec7ecec5f032d4aac52226b/jinja2-3.1.6.tar.gz", hash = "sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d", size = 245115, upload-time = "2025-03-05T20:05:02.478Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67", size = 134899, upload-time = "2025-03-05T20:05:00.369Z" }, +] + +[[package]] +name = "jiwer" +version = "4.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, + { name = "rapidfuzz" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/12/1e/963dfc249d5bbe88079b57a22556e981ddd9208e4b6116e48bdbfc01f26b/jiwer-4.0.0.tar.gz", hash = "sha256:ae9c051469102a61ef0927100baeeb4546f78d180c9b0948281d08eaf44c191e", size = 28074, upload-time = "2025-06-19T16:05:23.004Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/69/c9/172c525330c739a068c01050759a6f855ce16212db10a0359e690a03ac48/jiwer-4.0.0-py3-none-any.whl", hash = "sha256:7efaf0bd336b095d99ddef9dd67e1ee829d75d58aa2a81d9639870b01d6d95ea", size = 23034, upload-time = "2025-06-19T16:05:21.821Z" }, +] + +[[package]] +name = "joblib" +version = "1.5.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/41/f2/d34e8b3a08a9cc79a50b2208a93dce981fe615b64d5a4d4abee421d898df/joblib-1.5.3.tar.gz", hash = "sha256:8561a3269e6801106863fd0d6d84bb737be9e7631e33aaed3fb9ce5953688da3", size = 331603, upload-time = "2025-12-15T08:41:46.427Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7b/91/984aca2ec129e2757d1e4e3c81c3fcda9d0f85b74670a094cc443d9ee949/joblib-1.5.3-py3-none-any.whl", hash = "sha256:5fc3c5039fc5ca8c0276333a188bbd59d6b7ab37fe6632daa76bc7f9ec18e713", size = 309071, upload-time = "2025-12-15T08:41:44.973Z" }, +] + +[[package]] +name = "jsonschema" +version = "4.26.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "jsonschema-specifications" }, + { name = "referencing" }, + { name = "rpds-py", version = "0.30.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "rpds-py", version = "2026.6.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b3/fc/e067678238fa451312d4c62bf6e6cf5ec56375422aee02f9cb5f909b3047/jsonschema-4.26.0.tar.gz", hash = "sha256:0c26707e2efad8aa1bfc5b7ce170f3fccc2e4918ff85989ba9ffa9facb2be326", size = 366583, upload-time = "2026-01-07T13:41:07.246Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/69/90/f63fb5873511e014207a475e2bb4e8b2e570d655b00ac19a9a0ca0a385ee/jsonschema-4.26.0-py3-none-any.whl", hash = "sha256:d489f15263b8d200f8387e64b4c3a75f06629559fb73deb8fdfb525f2dab50ce", size = 90630, upload-time = "2026-01-07T13:41:05.306Z" }, +] + +[[package]] +name = "jsonschema-specifications" +version = "2025.9.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "referencing" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/19/74/a633ee74eb36c44aa6d1095e7cc5569bebf04342ee146178e2d36600708b/jsonschema_specifications-2025.9.1.tar.gz", hash = "sha256:b540987f239e745613c7a9176f3edb72b832a4ac465cf02712288397832b5e8d", size = 32855, upload-time = "2025-09-08T01:34:59.186Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/41/45/1a4ed80516f02155c51f51e8cedb3c1902296743db0bbc66608a0db2814f/jsonschema_specifications-2025.9.1-py3-none-any.whl", hash = "sha256:98802fee3a11ee76ecaca44429fda8a41bff98b00a0f2838151b113f210cc6fe", size = 18437, upload-time = "2025-09-08T01:34:57.871Z" }, +] + +[[package]] +name = "kokoro-onnx" +version = "0.5.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "espeakng-loader" }, + { 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 = "onnxruntime", version = "1.24.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "onnxruntime", version = "1.27.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "phonemizer-fork" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/6b/18/277bd18aeeceaf5c46a51bb50c1cbdccdad8cab7fd1d58f0173bbeeec708/kokoro_onnx-0.5.0.tar.gz", hash = "sha256:5beb15f085e2828ed8d493f792c079af857103ab2dceaa1e112b1760587ac96a", size = 84570, upload-time = "2026-01-30T03:05:45.6Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0d/55/0bfcb4aa50033c89e5ac132af3d07fac0543824ce6eaefd4d1bfdcc3795b/kokoro_onnx-0.5.0-py3-none-any.whl", hash = "sha256:4e1c38a296db5dbc1f722f69f5e3c13f2e2877b3e5b145287f56ec057013e357", size = 17448, upload-time = "2026-01-30T03:05:46.931Z" }, +] + +[[package]] +name = "language-tags" +version = "1.3.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/39/d1/b37165bed9016c19e2cdecf4176fbd902a014fb8a87dd44415438e190969/language_tags-1.3.1.tar.gz", hash = "sha256:b15f05505dad3ad296a1782d5a6083fd141309186094d1ab08095348f4203f37", size = 222642, upload-time = "2026-05-08T11:46:24.418Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0a/21/b48b9e8408b3faec9fb7cb2f68352c7724add35a980c948eaceb29ac41e4/language_tags-1.3.1-py3-none-any.whl", hash = "sha256:f7db7ef8879523019603e09644a86d95ba60595ce5e5ea82d46e8971b0f68f7b", size = 216654, upload-time = "2026-05-08T11:46:17.836Z" }, +] + +[[package]] +name = "llvmlite" +version = "0.48.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/dc/a0/acc8ffcd5bdc63df0097e22c719bfcd61b604358343089313a8aebbb24ab/llvmlite-0.48.0.tar.gz", hash = "sha256:543b19f9ef8f3c7c60d1468191e4ee1b1537bf9f8a3d56f64c0ddd98de92edd2", size = 184016, upload-time = "2026-07-02T20:20:05.308Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a2/4e/32543c42568fb321b3bdfcf9106e4116ab8f5a7bbcfd9ecf5569b0c07d83/llvmlite-0.48.0-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:614aad57df707e3172efd5165f2aa7da6a0c6897e40dce590bf756396815ba76", size = 40480650, upload-time = "2026-07-01T18:41:01.945Z" }, + { url = "https://files.pythonhosted.org/packages/a9/0d/6aa48abd423067139a129d1434b77bbcc56080db51d12a88510bb491ca3d/llvmlite-0.48.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:13532f248960ba888ad5ab8150494e2f3a3d20e5f59f264e63741ea5b0ba844c", size = 59890118, upload-time = "2026-07-01T18:41:10.608Z" }, + { url = "https://files.pythonhosted.org/packages/5a/c7/aa917444d871a79608af49149de1b28764e87d2ab41f933c5cd02431d03d/llvmlite-0.48.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3ee0c77685a18f5fca994ae21d0763007fca5c5c64b41de37accc78b69079176", size = 58343459, upload-time = "2026-07-01T18:41:06.21Z" }, + { url = "https://files.pythonhosted.org/packages/c5/2b/ceee1cdc263617109d514ac4d1b31f10a282662740ff7d5777baae25b3b5/llvmlite-0.48.0-cp310-cp310-win_amd64.whl", hash = "sha256:02853fe4214acb3780fc920c3fee10564b61d58a35e1b78afcc8a546c2deaba3", size = 41864734, upload-time = "2026-07-01T18:41:14.746Z" }, + { url = "https://files.pythonhosted.org/packages/9a/55/595981f14fbae9ba966feb12af552b1fe69889e44e64ac883a731ed335e0/llvmlite-0.48.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:56a7e24607d3f02d7b1bae8d29c7e1e423d53143d68b072999777f19678fe77b", size = 40480651, upload-time = "2026-07-01T18:41:18.438Z" }, + { url = "https://files.pythonhosted.org/packages/26/08/0109d1b9cb3f4603f3890e30bc66c65332b79185f12a045343b2ae431f67/llvmlite-0.48.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:6fa532d6bb3fd3f0803567c736401c54aecfe1a396d3ad25d2440d220e09f0e7", size = 59890118, upload-time = "2026-07-01T18:41:28.184Z" }, + { url = "https://files.pythonhosted.org/packages/02/eb/c5281be180c789cdffbf45b671884c57d7e61345ef3b0f643a4965e108e8/llvmlite-0.48.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:979a66a3f28a02565383ff463527dce78e9b856298872a361283132488e83591", size = 58343458, upload-time = "2026-07-01T18:41:23.397Z" }, + { url = "https://files.pythonhosted.org/packages/aa/f7/b3222b13f2d424dae3c9e63fde476af25ebccf1f3faf0b52d1b79fc15c70/llvmlite-0.48.0-cp311-cp311-win_amd64.whl", hash = "sha256:efaee0276e5e17c2b99b92e0c974bd484ef5977cf5dbc9168e82b71578edb47f", size = 41864734, upload-time = "2026-07-01T18:41:31.932Z" }, + { url = "https://files.pythonhosted.org/packages/92/a2/28696a9e61e245d1a79816d29d106692a90a2b6e7d78c98b326db70827af/llvmlite-0.48.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:d66c3beb4209087ddd4cf4ed2a0856b6887e6a913bdcf1aacfec9851cf2cba4e", size = 40480651, upload-time = "2026-07-01T18:41:35.694Z" }, + { url = "https://files.pythonhosted.org/packages/80/f2/72409351db66d0a317ec5087e076f31fb7b773a640db8a90ce6b5cac9edd/llvmlite-0.48.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:416fa4c2c66c2c6dc6d0a402648c19206e548efa0aa1eff01ad5cdad0af8217d", size = 59890118, upload-time = "2026-07-01T18:41:44.886Z" }, + { url = "https://files.pythonhosted.org/packages/3a/27/5ae2f3722606360480707adb47f001ad89df8251d06b14ee80336e660b66/llvmlite-0.48.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f5e5a5131045b72345c71062ea1a91910dde913792b6c9b28ebb2c1c0a712e98", size = 58343459, upload-time = "2026-07-01T18:41:40.306Z" }, + { url = "https://files.pythonhosted.org/packages/16/78/d824ffff7521cd140dc2006e44ce2bc82e64b48d1b32e90e956308c85a74/llvmlite-0.48.0-cp312-cp312-win_amd64.whl", hash = "sha256:d45c7541a80934ec6d8ab0defe67439494ecd2193cbf852a44ba827808976ac1", size = 41865022, upload-time = "2026-07-01T18:41:48.663Z" }, +] + +[[package]] +name = "markupsafe" +version = "3.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7e/99/7690b6d4034fffd95959cbe0c02de8deb3098cc577c67bb6a24fe5d7caa7/markupsafe-3.0.3.tar.gz", hash = "sha256:722695808f4b6457b320fdc131280796bdceb04ab50fe1795cd540799ebe1698", size = 80313, upload-time = "2025-09-27T18:37:40.426Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e8/4b/3541d44f3937ba468b75da9eebcae497dcf67adb65caa16760b0a6807ebb/markupsafe-3.0.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2f981d352f04553a7171b8e44369f2af4055f888dfb147d55e42d29e29e74559", size = 11631, upload-time = "2025-09-27T18:36:05.558Z" }, + { url = "https://files.pythonhosted.org/packages/98/1b/fbd8eed11021cabd9226c37342fa6ca4e8a98d8188a8d9b66740494960e4/markupsafe-3.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e1c1493fb6e50ab01d20a22826e57520f1284df32f2d8601fdd90b6304601419", size = 12057, upload-time = "2025-09-27T18:36:07.165Z" }, + { url = "https://files.pythonhosted.org/packages/40/01/e560d658dc0bb8ab762670ece35281dec7b6c1b33f5fbc09ebb57a185519/markupsafe-3.0.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1ba88449deb3de88bd40044603fafffb7bc2b055d626a330323a9ed736661695", size = 22050, upload-time = "2025-09-27T18:36:08.005Z" }, + { url = "https://files.pythonhosted.org/packages/af/cd/ce6e848bbf2c32314c9b237839119c5a564a59725b53157c856e90937b7a/markupsafe-3.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f42d0984e947b8adf7dd6dde396e720934d12c506ce84eea8476409563607591", size = 20681, upload-time = "2025-09-27T18:36:08.881Z" }, + { url = "https://files.pythonhosted.org/packages/c9/2a/b5c12c809f1c3045c4d580b035a743d12fcde53cf685dbc44660826308da/markupsafe-3.0.3-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c0c0b3ade1c0b13b936d7970b1d37a57acde9199dc2aecc4c336773e1d86049c", size = 20705, upload-time = "2025-09-27T18:36:10.131Z" }, + { url = "https://files.pythonhosted.org/packages/cf/e3/9427a68c82728d0a88c50f890d0fc072a1484de2f3ac1ad0bfc1a7214fd5/markupsafe-3.0.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:0303439a41979d9e74d18ff5e2dd8c43ed6c6001fd40e5bf2e43f7bd9bbc523f", size = 21524, upload-time = "2025-09-27T18:36:11.324Z" }, + { url = "https://files.pythonhosted.org/packages/bc/36/23578f29e9e582a4d0278e009b38081dbe363c5e7165113fad546918a232/markupsafe-3.0.3-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:d2ee202e79d8ed691ceebae8e0486bd9a2cd4794cec4824e1c99b6f5009502f6", size = 20282, upload-time = "2025-09-27T18:36:12.573Z" }, + { url = "https://files.pythonhosted.org/packages/56/21/dca11354e756ebd03e036bd8ad58d6d7168c80ce1fe5e75218e4945cbab7/markupsafe-3.0.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:177b5253b2834fe3678cb4a5f0059808258584c559193998be2601324fdeafb1", size = 20745, upload-time = "2025-09-27T18:36:13.504Z" }, + { url = "https://files.pythonhosted.org/packages/87/99/faba9369a7ad6e4d10b6a5fbf71fa2a188fe4a593b15f0963b73859a1bbd/markupsafe-3.0.3-cp310-cp310-win32.whl", hash = "sha256:2a15a08b17dd94c53a1da0438822d70ebcd13f8c3a95abe3a9ef9f11a94830aa", size = 14571, upload-time = "2025-09-27T18:36:14.779Z" }, + { url = "https://files.pythonhosted.org/packages/d6/25/55dc3ab959917602c96985cb1253efaa4ff42f71194bddeb61eb7278b8be/markupsafe-3.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:c4ffb7ebf07cfe8931028e3e4c85f0357459a3f9f9490886198848f4fa002ec8", size = 15056, upload-time = "2025-09-27T18:36:16.125Z" }, + { url = "https://files.pythonhosted.org/packages/d0/9e/0a02226640c255d1da0b8d12e24ac2aa6734da68bff14c05dd53b94a0fc3/markupsafe-3.0.3-cp310-cp310-win_arm64.whl", hash = "sha256:e2103a929dfa2fcaf9bb4e7c091983a49c9ac3b19c9061b6d5427dd7d14d81a1", size = 13932, upload-time = "2025-09-27T18:36:17.311Z" }, + { url = "https://files.pythonhosted.org/packages/08/db/fefacb2136439fc8dd20e797950e749aa1f4997ed584c62cfb8ef7c2be0e/markupsafe-3.0.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1cc7ea17a6824959616c525620e387f6dd30fec8cb44f649e31712db02123dad", size = 11631, upload-time = "2025-09-27T18:36:18.185Z" }, + { url = "https://files.pythonhosted.org/packages/e1/2e/5898933336b61975ce9dc04decbc0a7f2fee78c30353c5efba7f2d6ff27a/markupsafe-3.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4bd4cd07944443f5a265608cc6aab442e4f74dff8088b0dfc8238647b8f6ae9a", size = 12058, upload-time = "2025-09-27T18:36:19.444Z" }, + { url = "https://files.pythonhosted.org/packages/1d/09/adf2df3699d87d1d8184038df46a9c80d78c0148492323f4693df54e17bb/markupsafe-3.0.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b5420a1d9450023228968e7e6a9ce57f65d148ab56d2313fcd589eee96a7a50", size = 24287, upload-time = "2025-09-27T18:36:20.768Z" }, + { url = "https://files.pythonhosted.org/packages/30/ac/0273f6fcb5f42e314c6d8cd99effae6a5354604d461b8d392b5ec9530a54/markupsafe-3.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0bf2a864d67e76e5c9a34dc26ec616a66b9888e25e7b9460e1c76d3293bd9dbf", size = 22940, upload-time = "2025-09-27T18:36:22.249Z" }, + { url = "https://files.pythonhosted.org/packages/19/ae/31c1be199ef767124c042c6c3e904da327a2f7f0cd63a0337e1eca2967a8/markupsafe-3.0.3-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:bc51efed119bc9cfdf792cdeaa4d67e8f6fcccab66ed4bfdd6bde3e59bfcbb2f", size = 21887, upload-time = "2025-09-27T18:36:23.535Z" }, + { url = "https://files.pythonhosted.org/packages/b2/76/7edcab99d5349a4532a459e1fe64f0b0467a3365056ae550d3bcf3f79e1e/markupsafe-3.0.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:068f375c472b3e7acbe2d5318dea141359e6900156b5b2ba06a30b169086b91a", size = 23692, upload-time = "2025-09-27T18:36:24.823Z" }, + { url = "https://files.pythonhosted.org/packages/a4/28/6e74cdd26d7514849143d69f0bf2399f929c37dc2b31e6829fd2045b2765/markupsafe-3.0.3-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:7be7b61bb172e1ed687f1754f8e7484f1c8019780f6f6b0786e76bb01c2ae115", size = 21471, upload-time = "2025-09-27T18:36:25.95Z" }, + { url = "https://files.pythonhosted.org/packages/62/7e/a145f36a5c2945673e590850a6f8014318d5577ed7e5920a4b3448e0865d/markupsafe-3.0.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f9e130248f4462aaa8e2552d547f36ddadbeaa573879158d721bbd33dfe4743a", size = 22923, upload-time = "2025-09-27T18:36:27.109Z" }, + { url = "https://files.pythonhosted.org/packages/0f/62/d9c46a7f5c9adbeeeda52f5b8d802e1094e9717705a645efc71b0913a0a8/markupsafe-3.0.3-cp311-cp311-win32.whl", hash = "sha256:0db14f5dafddbb6d9208827849fad01f1a2609380add406671a26386cdf15a19", size = 14572, upload-time = "2025-09-27T18:36:28.045Z" }, + { url = "https://files.pythonhosted.org/packages/83/8a/4414c03d3f891739326e1783338e48fb49781cc915b2e0ee052aa490d586/markupsafe-3.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:de8a88e63464af587c950061a5e6a67d3632e36df62b986892331d4620a35c01", size = 15077, upload-time = "2025-09-27T18:36:29.025Z" }, + { url = "https://files.pythonhosted.org/packages/35/73/893072b42e6862f319b5207adc9ae06070f095b358655f077f69a35601f0/markupsafe-3.0.3-cp311-cp311-win_arm64.whl", hash = "sha256:3b562dd9e9ea93f13d53989d23a7e775fdfd1066c33494ff43f5418bc8c58a5c", size = 13876, upload-time = "2025-09-27T18:36:29.954Z" }, + { url = "https://files.pythonhosted.org/packages/5a/72/147da192e38635ada20e0a2e1a51cf8823d2119ce8883f7053879c2199b5/markupsafe-3.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d53197da72cc091b024dd97249dfc7794d6a56530370992a5e1a08983ad9230e", size = 11615, upload-time = "2025-09-27T18:36:30.854Z" }, + { url = "https://files.pythonhosted.org/packages/9a/81/7e4e08678a1f98521201c3079f77db69fb552acd56067661f8c2f534a718/markupsafe-3.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1872df69a4de6aead3491198eaf13810b565bdbeec3ae2dc8780f14458ec73ce", size = 12020, upload-time = "2025-09-27T18:36:31.971Z" }, + { url = "https://files.pythonhosted.org/packages/1e/2c/799f4742efc39633a1b54a92eec4082e4f815314869865d876824c257c1e/markupsafe-3.0.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3a7e8ae81ae39e62a41ec302f972ba6ae23a5c5396c8e60113e9066ef893da0d", size = 24332, upload-time = "2025-09-27T18:36:32.813Z" }, + { url = "https://files.pythonhosted.org/packages/3c/2e/8d0c2ab90a8c1d9a24f0399058ab8519a3279d1bd4289511d74e909f060e/markupsafe-3.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d6dd0be5b5b189d31db7cda48b91d7e0a9795f31430b7f271219ab30f1d3ac9d", size = 22947, upload-time = "2025-09-27T18:36:33.86Z" }, + { url = "https://files.pythonhosted.org/packages/2c/54/887f3092a85238093a0b2154bd629c89444f395618842e8b0c41783898ea/markupsafe-3.0.3-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:94c6f0bb423f739146aec64595853541634bde58b2135f27f61c1ffd1cd4d16a", size = 21962, upload-time = "2025-09-27T18:36:35.099Z" }, + { url = "https://files.pythonhosted.org/packages/c9/2f/336b8c7b6f4a4d95e91119dc8521402461b74a485558d8f238a68312f11c/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:be8813b57049a7dc738189df53d69395eba14fb99345e0a5994914a3864c8a4b", size = 23760, upload-time = "2025-09-27T18:36:36.001Z" }, + { url = "https://files.pythonhosted.org/packages/32/43/67935f2b7e4982ffb50a4d169b724d74b62a3964bc1a9a527f5ac4f1ee2b/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:83891d0e9fb81a825d9a6d61e3f07550ca70a076484292a70fde82c4b807286f", size = 21529, upload-time = "2025-09-27T18:36:36.906Z" }, + { url = "https://files.pythonhosted.org/packages/89/e0/4486f11e51bbba8b0c041098859e869e304d1c261e59244baa3d295d47b7/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:77f0643abe7495da77fb436f50f8dab76dbc6e5fd25d39589a0f1fe6548bfa2b", size = 23015, upload-time = "2025-09-27T18:36:37.868Z" }, + { url = "https://files.pythonhosted.org/packages/2f/e1/78ee7a023dac597a5825441ebd17170785a9dab23de95d2c7508ade94e0e/markupsafe-3.0.3-cp312-cp312-win32.whl", hash = "sha256:d88b440e37a16e651bda4c7c2b930eb586fd15ca7406cb39e211fcff3bf3017d", size = 14540, upload-time = "2025-09-27T18:36:38.761Z" }, + { url = "https://files.pythonhosted.org/packages/aa/5b/bec5aa9bbbb2c946ca2733ef9c4ca91c91b6a24580193e891b5f7dbe8e1e/markupsafe-3.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:26a5784ded40c9e318cfc2bdb30fe164bdb8665ded9cd64d500a34fb42067b1c", size = 15105, upload-time = "2025-09-27T18:36:39.701Z" }, + { url = "https://files.pythonhosted.org/packages/e5/f1/216fc1bbfd74011693a4fd837e7026152e89c4bcf3e77b6692fba9923123/markupsafe-3.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:35add3b638a5d900e807944a078b51922212fb3dedb01633a8defc4b01a3c85f", size = 13906, upload-time = "2025-09-27T18:36:40.689Z" }, +] + +[[package]] +name = "mlx" +version = "0.32.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mlx-metal", marker = "sys_platform == 'darwin'" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/df/38/a034159df4d21ef7b5721225a2c46092e20a2c627724f57be3e89fa7dbce/mlx-0.32.0-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:c6feb17e32160b70c7634aab925cf3f8c5c7bebbf99f227c48450478e1008af2", size = 562899, upload-time = "2026-07-07T17:55:25.157Z" }, + { url = "https://files.pythonhosted.org/packages/b7/8c/054d26695279155b590a95330440b592bd9c2dfe9cf450812b18ac598962/mlx-0.32.0-cp310-cp310-macosx_15_0_arm64.whl", hash = "sha256:73303259f2bda7fb4a0c782a7299e0e28a2890b9b6fbfc4b635fb8032208ec7e", size = 562898, upload-time = "2026-07-07T17:55:26.995Z" }, + { url = "https://files.pythonhosted.org/packages/16/06/9f74a23e8d3931a87e0fa24044fe178656d69852ca20493b50e7da2326c3/mlx-0.32.0-cp310-cp310-macosx_26_0_arm64.whl", hash = "sha256:8637003c6eb089443d149fdb483f5d7a7846d6cc43d112148d7aa07cf1356c04", size = 562871, upload-time = "2026-07-07T17:55:28.668Z" }, + { url = "https://files.pythonhosted.org/packages/17/d6/f3bca845e3c71d665899e33fb7731e627f009d78cfb21973c5ec05c68918/mlx-0.32.0-cp310-cp310-manylinux_2_35_aarch64.whl", hash = "sha256:e51e0a000e35998e2a1ea69b3ff5f68cd9a2ff9f58d60bef73bc29b5e3af4a55", size = 648277, upload-time = "2026-07-07T17:55:30.528Z" }, + { url = "https://files.pythonhosted.org/packages/42/d4/e23cb8f22ecc03b66f1cad6096ae16f0eb3de1f42a456567925b4c60463f/mlx-0.32.0-cp310-cp310-manylinux_2_35_x86_64.whl", hash = "sha256:316106a764da928f057b40838315a64713040600a4596a806a9cbb5f5a1b8e26", size = 682974, upload-time = "2026-07-07T17:55:32.332Z" }, + { url = "https://files.pythonhosted.org/packages/94/41/20a424c74915dd8a6d46d41be7b56ae5bdb0bd56da47aa1f669cffc3ec21/mlx-0.32.0-cp310-cp310-win_amd64.whl", hash = "sha256:fea003b4e471976f55b40b7bb7943c7b054e1edb011d5b15b1b964905ab7785a", size = 558519, upload-time = "2026-07-07T17:55:33.601Z" }, + { url = "https://files.pythonhosted.org/packages/3e/c7/cb62301b01dbccd66b256cab0c98fc29e7533dd76aa599fe44c1bb1f4168/mlx-0.32.0-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:72c605368d145c756877057d7e3c54f169c9899fe1f83232bfb3a6342561e234", size = 562792, upload-time = "2026-07-07T17:55:35.24Z" }, + { url = "https://files.pythonhosted.org/packages/1a/b1/c2eba5bb18c94a9fe1b5d6599f18ba2ef5de2d8b42439716d9241ab196c4/mlx-0.32.0-cp311-cp311-macosx_15_0_arm64.whl", hash = "sha256:0a0e38a409b9cae29647ec9e75ce9747b224ce7e5d91adbfad7eac37b6118ffd", size = 562792, upload-time = "2026-07-07T17:55:36.876Z" }, + { url = "https://files.pythonhosted.org/packages/1f/43/5b481bfb8f1234153fd8fef9dcacfe34860b0934eb507c0eb811ba599afe/mlx-0.32.0-cp311-cp311-macosx_26_0_arm64.whl", hash = "sha256:2a180cd39ac68b397b85cc4658d0b8e0ab58166c2549fc9ab2ca5f99d15ef0c3", size = 562776, upload-time = "2026-07-07T17:55:38.314Z" }, + { url = "https://files.pythonhosted.org/packages/17/9d/6b424d7a457baf5da788d881f9c3e908e44473e89544acee77962868d8f6/mlx-0.32.0-cp311-cp311-manylinux_2_35_aarch64.whl", hash = "sha256:4c8925d9d22d57b26885cb0858d2d4463d7526b17363c166820db5ea949731ad", size = 647901, upload-time = "2026-07-07T17:55:39.774Z" }, + { url = "https://files.pythonhosted.org/packages/10/0e/6e264023c3432b83b32fbf9f2a1365f8f0a9c5e67ed1684330ecbd5faf63/mlx-0.32.0-cp311-cp311-manylinux_2_35_x86_64.whl", hash = "sha256:5d5041205173e44f176d00b8119e7db7802c298a0f845486f0281c45122646ed", size = 682331, upload-time = "2026-07-07T17:55:41.101Z" }, + { url = "https://files.pythonhosted.org/packages/3d/1b/51094ba6fb0e77bc41c5edeb581d1bac115cf98621590b4965fe2b1bc77d/mlx-0.32.0-cp311-cp311-win_amd64.whl", hash = "sha256:2f41445eb4b5c5bfe44f6635d0be3564485bd983de405772f7e4f17fbd6e3a9b", size = 558359, upload-time = "2026-07-07T17:55:42.542Z" }, + { url = "https://files.pythonhosted.org/packages/89/f3/4e2c03db1185ff2e1bc755ca1c6a25ec38c65f5f7239e6542a4ca525e42f/mlx-0.32.0-cp311-cp311-win_arm64.whl", hash = "sha256:b0fdec519890dd3aa295920940356295012dea3a0390f229cd08d72890888427", size = 542720, upload-time = "2026-07-07T17:55:43.89Z" }, + { url = "https://files.pythonhosted.org/packages/aa/a6/489176d8a2a06137a299910057cc44dc3fccfb73151f7562fea2b75894d9/mlx-0.32.0-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:ea5a594355c89c0095eaba413fd39d4caa8642fa13432dfb0c9354d141046467", size = 558889, upload-time = "2026-07-07T17:55:45.268Z" }, + { url = "https://files.pythonhosted.org/packages/85/2a/5d1f1cb1b073c39c822e0c0be1e68f4ced6fd32ab15cf8bb1f448028842c/mlx-0.32.0-cp312-cp312-macosx_15_0_arm64.whl", hash = "sha256:e5f778001562ccce26cf6e5be1050d2afc78e2902bad206201ab9f5a6d0f886a", size = 558890, upload-time = "2026-07-07T17:55:46.701Z" }, + { url = "https://files.pythonhosted.org/packages/0f/01/02110ceacf4efd00ec172f60b4cd42c8b1509ac50ffa65a6a77d723133aa/mlx-0.32.0-cp312-cp312-macosx_26_0_arm64.whl", hash = "sha256:8dfb577faa4dc413cfd0d6eb78f230d3b3b6169df4473e84408abdeb21346e9d", size = 558856, upload-time = "2026-07-07T17:55:48.09Z" }, + { url = "https://files.pythonhosted.org/packages/5e/af/b16b7ab2670edf0f8f2cdeb2b6b3d5ab27a749b31ed74cb6825958ca0892/mlx-0.32.0-cp312-cp312-manylinux_2_35_aarch64.whl", hash = "sha256:50bc29bfaf31dff5138a472b56963bd6ece0fa67800c6c382745aaa41126d01f", size = 617769, upload-time = "2026-07-07T17:55:49.596Z" }, + { url = "https://files.pythonhosted.org/packages/40/ef/c326e05070f35c43a9775ce9dceaf155c8a9b2706a4c52d64e8999d4929a/mlx-0.32.0-cp312-cp312-manylinux_2_35_x86_64.whl", hash = "sha256:78804098c9f64978b6048ffdfd78689b9e06efa2a530c541d0bd73ce44d2f589", size = 675402, upload-time = "2026-07-07T17:55:51.148Z" }, + { url = "https://files.pythonhosted.org/packages/a2/e9/04cd133d18b4da1c00515c595c1cb6de7e2534938d2c3de2f3f2301c3466/mlx-0.32.0-cp312-cp312-win_amd64.whl", hash = "sha256:13ac6469479cda4bfd6954e0b574b92930b87073f7c79be121a68b31a3a6c596", size = 558048, upload-time = "2026-07-07T17:55:52.471Z" }, + { url = "https://files.pythonhosted.org/packages/60/f6/f27397f44c84138bcae00592a377fc5b1fc79d1dbfa820c1af20042f4c33/mlx-0.32.0-cp312-cp312-win_arm64.whl", hash = "sha256:7c8d3a7b506ab45b3f7976495126c16830d988ec53289134b2bb64dae1efb835", size = 543631, upload-time = "2026-07-07T17:55:53.681Z" }, +] + +[[package]] +name = "mlx-metal" +version = "0.32.0" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d6/ef/d74ae99cfe9ddb59fd08abd14f47754c3d199291a93756903fa595b31b8a/mlx_metal-0.32.0-py3-none-macosx_14_0_arm64.whl", hash = "sha256:5b64b20ac24b0c401f489de01e8209edc4d372125201f19314e6f39e385322aa", size = 40824649, upload-time = "2026-07-07T17:55:20.7Z" }, + { url = "https://files.pythonhosted.org/packages/d5/38/b96a3de98cfbb009592b3870af46ff63657b192f8d1e06c6c1faea5fbef3/mlx_metal-0.32.0-py3-none-macosx_15_0_arm64.whl", hash = "sha256:1bd94a1ce5b03a0c898771a3e759f0124300c6ab5155127906a1d50b1f3fcf19", size = 40818869, upload-time = "2026-07-07T17:55:25.059Z" }, + { url = "https://files.pythonhosted.org/packages/dc/59/65d32520175379df33f107749193aa94ea9db069167a36a1a100ff689f62/mlx_metal-0.32.0-py3-none-macosx_26_0_arm64.whl", hash = "sha256:3af76a498d84804f66119800499f9d143d7dffb0878a0dd0d7c2846e58565fd7", size = 56511379, upload-time = "2026-07-07T17:55:36.045Z" }, +] + +[[package]] +name = "mlx-whisper" +version = "0.4.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "huggingface-hub" }, + { name = "mlx" }, + { name = "more-itertools" }, + { 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 = "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.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, + { name = "tiktoken" }, + { name = "torch" }, + { name = "tqdm" }, +] +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" }, +] + +[[package]] +name = "more-itertools" +version = "11.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/de/1d/f4da6f02cdffe04d6362210b807146a26044c88d839208aec273bb0d9184/more_itertools-11.1.0.tar.gz", hash = "sha256:48e8f4d9e7e5878571ecf6f2b4e57634f93cd474cc8cfbd2376f2d11b396e30d", size = 145772, upload-time = "2026-05-22T14:14:29.909Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e8/3d/1087453384dbde46a8c7f9356eead2c58be8a7bf156bca40243377c85715/more_itertools-11.1.0-py3-none-any.whl", hash = "sha256:4b65538ae22f6fed0ce4874efd317463a7489796a0939fa66824dd542125a192", size = 72226, upload-time = "2026-05-22T14:14:28.824Z" }, +] + +[[package]] +name = "mpmath" +version = "1.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e0/47/dd32fa426cc72114383ac549964eecb20ecfd886d1e5ccf5340b55b02f57/mpmath-1.3.0.tar.gz", hash = "sha256:7a28eb2a9774d00c7bc92411c19a89209d5da7c4c9a9e227be8330a23a25b91f", size = 508106, upload-time = "2023-03-07T16:47:11.061Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/43/e3/7d92a15f894aa0c9c4b49b8ee9ac9850d6e63b03c9c32c0367a13ae62209/mpmath-1.3.0-py3-none-any.whl", hash = "sha256:a0b2b9fe80bbcd81a6647ff13108738cfb482d481d826cc0e02f5b35e5c88d2c", size = 536198, upload-time = "2023-03-07T16:47:09.197Z" }, +] + +[[package]] +name = "mypy-extensions" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a2/6e/371856a3fb9d31ca8dac321cda606860fa4548858c0cc45d9d1d4ca2628b/mypy_extensions-1.1.0.tar.gz", hash = "sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558", size = 6343, upload-time = "2025-04-22T14:54:24.164Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/79/7b/2c79738432f5c924bef5071f933bcc9efd0473bac3b4aa584a6f7c1c8df8/mypy_extensions-1.1.0-py3-none-any.whl", hash = "sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505", size = 4963, upload-time = "2025-04-22T14:54:22.983Z" }, +] + +[[package]] +name = "networkx" +version = "3.4.2" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.11'", +] +sdist = { url = "https://files.pythonhosted.org/packages/fd/1d/06475e1cd5264c0b870ea2cc6fdb3e37177c1e565c43f56ff17a10e3937f/networkx-3.4.2.tar.gz", hash = "sha256:307c3669428c5362aab27c8a1260aa8f47c4e91d3891f48be0141738d8d053e1", size = 2151368, upload-time = "2024-10-21T12:39:38.695Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b9/54/dd730b32ea14ea797530a4479b2ed46a6fb250f682a9cfb997e968bf0261/networkx-3.4.2-py3-none-any.whl", hash = "sha256:df5d4365b724cf81b8c6a7312509d0c22386097011ad1abe274afd5e9d3bbc5f", size = 1723263, upload-time = "2024-10-21T12:39:36.247Z" }, +] + +[[package]] +name = "networkx" +version = "3.6.1" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", +] +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" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9e/c9/b2622292ea83fbb4ec318f5b9ab867d0a28ab43c5717bb85b0a5f6b3b0a4/networkx-3.6.1-py3-none-any.whl", hash = "sha256:d47fbf302e7d9cbbb9e2555a0d267983d2aa476bac30e90dfbe5669bd57f3762", size = 2068504, upload-time = "2025-12-08T17:02:38.159Z" }, +] + +[[package]] +name = "numba" +version = "0.66.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "llvmlite" }, + { 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'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ae/a0/570e3dc53e5602b49108f62a13e529f1eec8bfc7ef37d49c825924dcf546/numba-0.66.0.tar.gz", hash = "sha256:b900e63a0e26c05ea9a6d5a3a5a0a177cb64c5011887bf43edb8c3ed2c38d363", size = 2806181, upload-time = "2026-07-01T23:12:46.36Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2b/48/d139bde40f2359351bfe26ee1b261937f458ac177ab810d4f045ae1c9d92/numba-0.66.0-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:27951c47e0def9bf8afe580eb961102902e2fd23cb77924b7d9d7cc0f8b444cb", size = 2727368, upload-time = "2026-07-01T23:12:04.282Z" }, + { url = "https://files.pythonhosted.org/packages/36/e4/b780bfa9191410da50ba249cb3248a75014e17f611e72709cbddcb21f42d/numba-0.66.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:cc408c54b450f41582f4be1608f8981c1dcc44c7f40355cc150dd93015753407", size = 3803554, upload-time = "2026-07-01T23:12:06.379Z" }, + { url = "https://files.pythonhosted.org/packages/1c/b2/a051b96626bdf5c4d8fa6b8d450605c09638d85dc872ab63ef9a67096dca/numba-0.66.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7c14c044c06b453ec3fa7715dfe75425e2ba72c73377a7ffde6d9ec511dfd94c", size = 3510065, upload-time = "2026-07-01T23:12:08.051Z" }, + { url = "https://files.pythonhosted.org/packages/34/01/24dcdc3e919522e2efbd92969c281ff40deb1d5f8a994bcd0057081c158c/numba-0.66.0-cp310-cp310-win_amd64.whl", hash = "sha256:2338cc0d43609fe448930848fd35a5bc688761b986f81b597a6f45cc0f8c9577", size = 2780379, upload-time = "2026-07-01T23:12:09.772Z" }, + { url = "https://files.pythonhosted.org/packages/9e/02/970796b4daa709604cde22e87a7cda9bde473c278ea4a75f59fe38cee47f/numba-0.66.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:bbd531c327557a9004507fa6bff06c53ab51a7a5776b75261bb9cef1efe2b2ea", size = 2727049, upload-time = "2026-07-01T23:12:11.296Z" }, + { url = "https://files.pythonhosted.org/packages/8c/99/33a6ed9c1a0b5e42efa98eb0edf617d61dca576c82625947377b1d4540c9/numba-0.66.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:fc6629becb21a867d85401ec89f426dd24c484a4193ade8a38309debfd1529ca", size = 3808870, upload-time = "2026-07-01T23:12:12.944Z" }, + { url = "https://files.pythonhosted.org/packages/04/20/8c51126025211659235b8de2866dfa226984ae0c8273461a3cf374716741/numba-0.66.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:aac69f3ccb8af100f5913c1241edc9692bad1cdd2508721713f426eb06c9a659", size = 3514498, upload-time = "2026-07-01T23:12:15.307Z" }, + { url = "https://files.pythonhosted.org/packages/5e/c9/9476940bc6d5caf5c0cf2e4c5feecbf01244bbe6f914614082dd7a3e520e/numba-0.66.0-cp311-cp311-win_amd64.whl", hash = "sha256:fb601841d9e02e6237bb6522e36d0741614be3cfe2b482a6f00a41b5ba209443", size = 2780225, upload-time = "2026-07-01T23:12:16.924Z" }, + { url = "https://files.pythonhosted.org/packages/62/a3/70deb7f88461c1cd5d16aa990c2380604102661a427667b8950dcdccc27f/numba-0.66.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:53ca5900b7cab15109796030113a6b28576bae5ad7bb507ad6dd1360ddd81ba4", size = 2727264, upload-time = "2026-07-01T23:12:18.669Z" }, + { url = "https://files.pythonhosted.org/packages/2d/55/25c319845e9a4e08f16611ddbda56a192eb7b6ed13e1a2bff2da272ffb97/numba-0.66.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:0999e3ee1b18c48e1fb51d11af35ef59852c7f4f50569c9550c25faef0616ad1", size = 3866252, upload-time = "2026-07-01T23:12:20.429Z" }, + { url = "https://files.pythonhosted.org/packages/71/ef/a82d6fd6bf1b0fe461651e924d3647eeec9ac17f8eee4896264bf7480930/numba-0.66.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:efe0d2d5099790df945e0cb6e1b3104bd965d7bbfac50d62f1d5d1d6ade0825d", size = 3566974, upload-time = "2026-07-01T23:12:22.116Z" }, + { url = "https://files.pythonhosted.org/packages/fc/eb/9e6171e378822ab191c7abcfd3d8cfc8644516f6c7834c22e210e4acc070/numba-0.66.0-cp312-cp312-win_amd64.whl", hash = "sha256:b075a4e7ebc43dc6294f223e2821659656209fd5e0ce53245877c23d66d6e1a9", size = 2797403, upload-time = "2026-07-01T23:12:23.724Z" }, +] + +[[package]] +name = "numpy" +version = "2.2.6" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.11'", +] +sdist = { url = "https://files.pythonhosted.org/packages/76/21/7d2a95e4bba9dc13d043ee156a356c0a8f0c6309dff6b21b4d71a073b8a8/numpy-2.2.6.tar.gz", hash = "sha256:e29554e2bef54a90aa5cc07da6ce955accb83f21ab5de01a62c8478897b264fd", size = 20276440, upload-time = "2025-05-17T22:38:04.611Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9a/3e/ed6db5be21ce87955c0cbd3009f2803f59fa08df21b5df06862e2d8e2bdd/numpy-2.2.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b412caa66f72040e6d268491a59f2c43bf03eb6c96dd8f0307829feb7fa2b6fb", size = 21165245, upload-time = "2025-05-17T21:27:58.555Z" }, + { url = "https://files.pythonhosted.org/packages/22/c2/4b9221495b2a132cc9d2eb862e21d42a009f5a60e45fc44b00118c174bff/numpy-2.2.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8e41fd67c52b86603a91c1a505ebaef50b3314de0213461c7a6e99c9a3beff90", size = 14360048, upload-time = "2025-05-17T21:28:21.406Z" }, + { url = "https://files.pythonhosted.org/packages/fd/77/dc2fcfc66943c6410e2bf598062f5959372735ffda175b39906d54f02349/numpy-2.2.6-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:37e990a01ae6ec7fe7fa1c26c55ecb672dd98b19c3d0e1d1f326fa13cb38d163", size = 5340542, upload-time = "2025-05-17T21:28:30.931Z" }, + { url = "https://files.pythonhosted.org/packages/7a/4f/1cb5fdc353a5f5cc7feb692db9b8ec2c3d6405453f982435efc52561df58/numpy-2.2.6-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:5a6429d4be8ca66d889b7cf70f536a397dc45ba6faeb5f8c5427935d9592e9cf", size = 6878301, upload-time = "2025-05-17T21:28:41.613Z" }, + { url = "https://files.pythonhosted.org/packages/eb/17/96a3acd228cec142fcb8723bd3cc39c2a474f7dcf0a5d16731980bcafa95/numpy-2.2.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:efd28d4e9cd7d7a8d39074a4d44c63eda73401580c5c76acda2ce969e0a38e83", size = 14297320, upload-time = "2025-05-17T21:29:02.78Z" }, + { url = "https://files.pythonhosted.org/packages/b4/63/3de6a34ad7ad6646ac7d2f55ebc6ad439dbbf9c4370017c50cf403fb19b5/numpy-2.2.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc7b73d02efb0e18c000e9ad8b83480dfcd5dfd11065997ed4c6747470ae8915", size = 16801050, upload-time = "2025-05-17T21:29:27.675Z" }, + { url = "https://files.pythonhosted.org/packages/07/b6/89d837eddef52b3d0cec5c6ba0456c1bf1b9ef6a6672fc2b7873c3ec4e2e/numpy-2.2.6-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:74d4531beb257d2c3f4b261bfb0fc09e0f9ebb8842d82a7b4209415896adc680", size = 15807034, upload-time = "2025-05-17T21:29:51.102Z" }, + { url = "https://files.pythonhosted.org/packages/01/c8/dc6ae86e3c61cfec1f178e5c9f7858584049b6093f843bca541f94120920/numpy-2.2.6-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:8fc377d995680230e83241d8a96def29f204b5782f371c532579b4f20607a289", size = 18614185, upload-time = "2025-05-17T21:30:18.703Z" }, + { url = "https://files.pythonhosted.org/packages/5b/c5/0064b1b7e7c89137b471ccec1fd2282fceaae0ab3a9550f2568782d80357/numpy-2.2.6-cp310-cp310-win32.whl", hash = "sha256:b093dd74e50a8cba3e873868d9e93a85b78e0daf2e98c6797566ad8044e8363d", size = 6527149, upload-time = "2025-05-17T21:30:29.788Z" }, + { url = "https://files.pythonhosted.org/packages/a3/dd/4b822569d6b96c39d1215dbae0582fd99954dcbcf0c1a13c61783feaca3f/numpy-2.2.6-cp310-cp310-win_amd64.whl", hash = "sha256:f0fd6321b839904e15c46e0d257fdd101dd7f530fe03fd6359c1ea63738703f3", size = 12904620, upload-time = "2025-05-17T21:30:48.994Z" }, + { url = "https://files.pythonhosted.org/packages/da/a8/4f83e2aa666a9fbf56d6118faaaf5f1974d456b1823fda0a176eff722839/numpy-2.2.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f9f1adb22318e121c5c69a09142811a201ef17ab257a1e66ca3025065b7f53ae", size = 21176963, upload-time = "2025-05-17T21:31:19.36Z" }, + { url = "https://files.pythonhosted.org/packages/b3/2b/64e1affc7972decb74c9e29e5649fac940514910960ba25cd9af4488b66c/numpy-2.2.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c820a93b0255bc360f53eca31a0e676fd1101f673dda8da93454a12e23fc5f7a", size = 14406743, upload-time = "2025-05-17T21:31:41.087Z" }, + { url = "https://files.pythonhosted.org/packages/4a/9f/0121e375000b5e50ffdd8b25bf78d8e1a5aa4cca3f185d41265198c7b834/numpy-2.2.6-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:3d70692235e759f260c3d837193090014aebdf026dfd167834bcba43e30c2a42", size = 5352616, upload-time = "2025-05-17T21:31:50.072Z" }, + { url = "https://files.pythonhosted.org/packages/31/0d/b48c405c91693635fbe2dcd7bc84a33a602add5f63286e024d3b6741411c/numpy-2.2.6-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:481b49095335f8eed42e39e8041327c05b0f6f4780488f61286ed3c01368d491", size = 6889579, upload-time = "2025-05-17T21:32:01.712Z" }, + { url = "https://files.pythonhosted.org/packages/52/b8/7f0554d49b565d0171eab6e99001846882000883998e7b7d9f0d98b1f934/numpy-2.2.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b64d8d4d17135e00c8e346e0a738deb17e754230d7e0810ac5012750bbd85a5a", size = 14312005, upload-time = "2025-05-17T21:32:23.332Z" }, + { url = "https://files.pythonhosted.org/packages/b3/dd/2238b898e51bd6d389b7389ffb20d7f4c10066d80351187ec8e303a5a475/numpy-2.2.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba10f8411898fc418a521833e014a77d3ca01c15b0c6cdcce6a0d2897e6dbbdf", size = 16821570, upload-time = "2025-05-17T21:32:47.991Z" }, + { url = "https://files.pythonhosted.org/packages/83/6c/44d0325722cf644f191042bf47eedad61c1e6df2432ed65cbe28509d404e/numpy-2.2.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:bd48227a919f1bafbdda0583705e547892342c26fb127219d60a5c36882609d1", size = 15818548, upload-time = "2025-05-17T21:33:11.728Z" }, + { url = "https://files.pythonhosted.org/packages/ae/9d/81e8216030ce66be25279098789b665d49ff19eef08bfa8cb96d4957f422/numpy-2.2.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:9551a499bf125c1d4f9e250377c1ee2eddd02e01eac6644c080162c0c51778ab", size = 18620521, upload-time = "2025-05-17T21:33:39.139Z" }, + { url = "https://files.pythonhosted.org/packages/6a/fd/e19617b9530b031db51b0926eed5345ce8ddc669bb3bc0044b23e275ebe8/numpy-2.2.6-cp311-cp311-win32.whl", hash = "sha256:0678000bb9ac1475cd454c6b8c799206af8107e310843532b04d49649c717a47", size = 6525866, upload-time = "2025-05-17T21:33:50.273Z" }, + { url = "https://files.pythonhosted.org/packages/31/0a/f354fb7176b81747d870f7991dc763e157a934c717b67b58456bc63da3df/numpy-2.2.6-cp311-cp311-win_amd64.whl", hash = "sha256:e8213002e427c69c45a52bbd94163084025f533a55a59d6f9c5b820774ef3303", size = 12907455, upload-time = "2025-05-17T21:34:09.135Z" }, + { url = "https://files.pythonhosted.org/packages/82/5d/c00588b6cf18e1da539b45d3598d3557084990dcc4331960c15ee776ee41/numpy-2.2.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:41c5a21f4a04fa86436124d388f6ed60a9343a6f767fced1a8a71c3fbca038ff", size = 20875348, upload-time = "2025-05-17T21:34:39.648Z" }, + { url = "https://files.pythonhosted.org/packages/66/ee/560deadcdde6c2f90200450d5938f63a34b37e27ebff162810f716f6a230/numpy-2.2.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:de749064336d37e340f640b05f24e9e3dd678c57318c7289d222a8a2f543e90c", size = 14119362, upload-time = "2025-05-17T21:35:01.241Z" }, + { url = "https://files.pythonhosted.org/packages/3c/65/4baa99f1c53b30adf0acd9a5519078871ddde8d2339dc5a7fde80d9d87da/numpy-2.2.6-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:894b3a42502226a1cac872f840030665f33326fc3dac8e57c607905773cdcde3", size = 5084103, upload-time = "2025-05-17T21:35:10.622Z" }, + { url = "https://files.pythonhosted.org/packages/cc/89/e5a34c071a0570cc40c9a54eb472d113eea6d002e9ae12bb3a8407fb912e/numpy-2.2.6-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:71594f7c51a18e728451bb50cc60a3ce4e6538822731b2933209a1f3614e9282", size = 6625382, upload-time = "2025-05-17T21:35:21.414Z" }, + { url = "https://files.pythonhosted.org/packages/f8/35/8c80729f1ff76b3921d5c9487c7ac3de9b2a103b1cd05e905b3090513510/numpy-2.2.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f2618db89be1b4e05f7a1a847a9c1c0abd63e63a1607d892dd54668dd92faf87", size = 14018462, upload-time = "2025-05-17T21:35:42.174Z" }, + { url = "https://files.pythonhosted.org/packages/8c/3d/1e1db36cfd41f895d266b103df00ca5b3cbe965184df824dec5c08c6b803/numpy-2.2.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd83c01228a688733f1ded5201c678f0c53ecc1006ffbc404db9f7a899ac6249", size = 16527618, upload-time = "2025-05-17T21:36:06.711Z" }, + { url = "https://files.pythonhosted.org/packages/61/c6/03ed30992602c85aa3cd95b9070a514f8b3c33e31124694438d88809ae36/numpy-2.2.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:37c0ca431f82cd5fa716eca9506aefcabc247fb27ba69c5062a6d3ade8cf8f49", size = 15505511, upload-time = "2025-05-17T21:36:29.965Z" }, + { url = "https://files.pythonhosted.org/packages/b7/25/5761d832a81df431e260719ec45de696414266613c9ee268394dd5ad8236/numpy-2.2.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fe27749d33bb772c80dcd84ae7e8df2adc920ae8297400dabec45f0dedb3f6de", size = 18313783, upload-time = "2025-05-17T21:36:56.883Z" }, + { url = "https://files.pythonhosted.org/packages/57/0a/72d5a3527c5ebffcd47bde9162c39fae1f90138c961e5296491ce778e682/numpy-2.2.6-cp312-cp312-win32.whl", hash = "sha256:4eeaae00d789f66c7a25ac5f34b71a7035bb474e679f410e5e1a94deb24cf2d4", size = 6246506, upload-time = "2025-05-17T21:37:07.368Z" }, + { url = "https://files.pythonhosted.org/packages/36/fa/8c9210162ca1b88529ab76b41ba02d433fd54fecaf6feb70ef9f124683f1/numpy-2.2.6-cp312-cp312-win_amd64.whl", hash = "sha256:c1f9540be57940698ed329904db803cf7a402f3fc200bfe599334c9bd84a40b2", size = 12614190, upload-time = "2025-05-17T21:37:26.213Z" }, + { url = "https://files.pythonhosted.org/packages/9e/3b/d94a75f4dbf1ef5d321523ecac21ef23a3cd2ac8b78ae2aac40873590229/numpy-2.2.6-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:0b605b275d7bd0c640cad4e5d30fa701a8d59302e127e5f79138ad62762c3e3d", size = 21040391, upload-time = "2025-05-17T21:44:35.948Z" }, + { url = "https://files.pythonhosted.org/packages/17/f4/09b2fa1b58f0fb4f7c7963a1649c64c4d315752240377ed74d9cd878f7b5/numpy-2.2.6-pp310-pypy310_pp73-macosx_14_0_x86_64.whl", hash = "sha256:7befc596a7dc9da8a337f79802ee8adb30a552a94f792b9c9d18c840055907db", size = 6786754, upload-time = "2025-05-17T21:44:47.446Z" }, + { url = "https://files.pythonhosted.org/packages/af/30/feba75f143bdc868a1cc3f44ccfa6c4b9ec522b36458e738cd00f67b573f/numpy-2.2.6-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce47521a4754c8f4593837384bd3424880629f718d87c5d44f8ed763edd63543", size = 16643476, upload-time = "2025-05-17T21:45:11.871Z" }, + { url = "https://files.pythonhosted.org/packages/37/48/ac2a9584402fb6c0cd5b5d1a91dcf176b15760130dd386bbafdbfe3640bf/numpy-2.2.6-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:d042d24c90c41b54fd506da306759e06e568864df8ec17ccc17e9e884634fd00", size = 12812666, upload-time = "2025-05-17T21:45:31.426Z" }, +] + +[[package]] +name = "numpy" +version = "2.4.6" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", +] +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" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b3/49/ec46835a70be8fa6446c495126ac84fdb28cb2558e1620ffb87a10c8b64c/numpy-2.4.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0280e0356c0829a18d9de1cb7eee50ec22ca639878d7240307ca0943d73cd2c4", size = 16969194, upload-time = "2026-05-18T23:33:13.503Z" }, + { url = "https://files.pythonhosted.org/packages/0e/0d/f5957185c0ee2f3e12f78715aa9e3b353fd83633316c8532b38faa37e3f6/numpy-2.4.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:110f8b71aacb688ec69062bb7f6938a0f8acb01b7c1c4beb453c65b6d234584d", size = 14964111, upload-time = "2026-05-18T23:33:17.795Z" }, + { url = "https://files.pythonhosted.org/packages/ad/40/40a40ee0ddf7ceb782c49af278894b686e586d65d8c1889c8b5da01a3d7d/numpy-2.4.6-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:4cfe66903cc32a9921a6733d96b19bb6abf310397581bbad89c228f5abaf0ee8", size = 5469159, upload-time = "2026-05-18T23:33:20.654Z" }, + { url = "https://files.pythonhosted.org/packages/63/13/f9a8046535cb21deae82f8d03de9617e08882d274fad2539630761888228/numpy-2.4.6-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:8155154c7c691289fe18f510b5d4657c68c67989f293f0535a91360392ff6538", size = 6798936, upload-time = "2026-05-18T23:33:22.987Z" }, + { url = "https://files.pythonhosted.org/packages/33/a8/6fa8c1a345a8c85dbb21932c447bee07c30a2c2a3f31e369c0a84b300147/numpy-2.4.6-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0ab0a9c4ffb1a6d95ef519fe4247dba8eb6b18ad93999f76b7f657039acabd47", size = 15966692, upload-time = "2026-05-18T23:33:26.62Z" }, + { url = "https://files.pythonhosted.org/packages/02/03/74fe2a4cb3817d94d86402f2506554130a2f01414e299b5a843e5a8a957f/numpy-2.4.6-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:89cd468399cfd2504718f0ba50e410dca55a170b61a02ad92bb18c8a65186e93", size = 16918164, upload-time = "2026-05-18T23:33:29.955Z" }, + { url = "https://files.pythonhosted.org/packages/c5/80/3615be3313f7e7696609bc194b9f0101da809df79e859bdb84e0cd043f46/numpy-2.4.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c2d37ab77531417474168eb79d6d80b14f821a966818505d03013d0833edb7a8", size = 17322877, upload-time = "2026-05-18T23:33:34.724Z" }, + { url = "https://files.pythonhosted.org/packages/ca/ac/a691e0fe2675e370d0e08ff905adc49a1c8830e8cae03efe4477e92cd55d/numpy-2.4.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f407cb6b8e9d6d8c626bc73c945db1706035af8fd632295547bf1c9e46d092d6", size = 18651487, upload-time = "2026-05-18T23:33:38.217Z" }, + { url = "https://files.pythonhosted.org/packages/15/a7/9bc1cd626d7bf6869bfedf27b91b6ab5dd607758bf8e959d6fa80c6a59cb/numpy-2.4.6-cp311-cp311-win32.whl", hash = "sha256:ddea102b48f9e339f3948bf22040944184627a30fdf7f858667673b9c5f033c8", size = 6233945, upload-time = "2026-05-18T23:33:41.331Z" }, + { url = "https://files.pythonhosted.org/packages/c5/31/7fc6239c12bce7e931463251cca4426c465e1876ba3cc785402ef4dd8f4e/numpy-2.4.6-cp311-cp311-win_amd64.whl", hash = "sha256:1e254a00cdf42b1e4d5b3d68d33af63268d41340d8885df2ab6470f2e1500147", size = 12608406, upload-time = "2026-05-18T23:33:44.131Z" }, + { url = "https://files.pythonhosted.org/packages/27/83/140f85a466595a16382996a1bf06b2b54bcd597488921b0c9daaeeda72af/numpy-2.4.6-cp311-cp311-win_arm64.whl", hash = "sha256:ed9749eef4cbd126da3dc1d6bcb3a57f5eb7ac6a6484146bdbf743f552dfc577", size = 10479528, upload-time = "2026-05-18T23:33:50.725Z" }, + { url = "https://files.pythonhosted.org/packages/95/2a/3d7b5ac8aac24feaf9ad7ed58f45b0bbc06d37e4338ae84c9f2298b570f9/numpy-2.4.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:001fbb8e08d942dd57599e781f2472269ee7f2755fae407b4f67b2f0b17da3f1", size = 16689119, upload-time = "2026-05-18T23:33:54.065Z" }, + { url = "https://files.pythonhosted.org/packages/ea/12/92c4c131527599e8288d6918e888d88726f84d805d784b771f32408aeaef/numpy-2.4.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ebfb099f8dcf083deef3ac1ca4c1503f387cf76296fcb3816b66f5ecb5f54fdb", size = 14699246, upload-time = "2026-05-18T23:33:57.621Z" }, + { url = "https://files.pythonhosted.org/packages/ad/fe/c0a6b7b2ca128a8fb228575147073b660656734b8ebe4d76c8fd748dcc79/numpy-2.4.6-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:3213d622a0283a39a93d188f3cf72b26862df52fbb4ca3697f51705016523d41", size = 5204410, upload-time = "2026-05-18T23:34:00.302Z" }, + { url = "https://files.pythonhosted.org/packages/f3/d4/9770d14ba719432bb90a421bfd443872ed0f70f7264b64bec12ea363d5fd/numpy-2.4.6-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:357cc07a6d7b0b182ff02249616a03742827ebb1277546b5c7cd7f7620a45698", size = 6551240, upload-time = "2026-05-18T23:34:02.852Z" }, + { url = "https://files.pythonhosted.org/packages/c9/c6/50a46a6205feba2343f1d6d17438107c5dc491ed1c736e6ea68689fd906b/numpy-2.4.6-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5f9fb9157b4ce2971008323afe46053787b526ef624fea915b261468a8421a0f", size = 15671012, upload-time = "2026-05-18T23:34:05.485Z" }, + { url = "https://files.pythonhosted.org/packages/99/60/14115e6364fa676c5397c2ad3004e527e9aa487abf5d0706ec81bbd08529/numpy-2.4.6-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:90f9849678c75fe7afa2d348ac842c168b0a4d3d61919687216dfc547976d853", size = 16645538, upload-time = "2026-05-18T23:34:09.265Z" }, + { url = "https://files.pythonhosted.org/packages/ae/c5/693cbe59e57db94d2231fa519ca3978dc9e19da5a8f088588f5c6e947ff2/numpy-2.4.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:c1a2af6c6ef86344a6b0db6b97834208bf598db514f2b155042439b62605601a", size = 17020706, upload-time = "2026-05-18T23:34:13.053Z" }, + { url = "https://files.pythonhosted.org/packages/ef/fc/85b7c4eff9b4966ade25c2273cf7e7012e92366c032058653934b37de044/numpy-2.4.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e5805d5a22fd19c8ccff10a9561f9df94436b0545619ea579db2d3c35294bce2", size = 18368541, upload-time = "2026-05-18T23:34:17.024Z" }, + { url = "https://files.pythonhosted.org/packages/f6/81/e1b27545deedce7f4a0b348618c6b62d74e36a4dc9ccd42f3eb2f85eee32/numpy-2.4.6-cp312-cp312-win32.whl", hash = "sha256:e3eeb0aabd6bd5ce64faae67e9935203a6991b4bc2a485a767fbafb2c5125f45", size = 5962825, upload-time = "2026-05-18T23:34:20.3Z" }, + { url = "https://files.pythonhosted.org/packages/ab/ca/feab00bd44aa5fe1ad2c18f08b4d3bb92e26484b0b1d1443897809ed528c/numpy-2.4.6-cp312-cp312-win_amd64.whl", hash = "sha256:d8e8286dd7cea7895157318d1b91cdacac64c479f3cbc8dce548331728484751", size = 12321687, upload-time = "2026-05-18T23:34:23.095Z" }, + { url = "https://files.pythonhosted.org/packages/63/cf/5a6d34850a39d1093558564f77ee8e8e0bee5061151b8f05a55711001ec7/numpy-2.4.6-cp312-cp312-win_arm64.whl", hash = "sha256:4081eb135ac24158bd51cdfbef16f1c64df7063b1143f24731387137c092bec8", size = 10221482, upload-time = "2026-05-18T23:34:25.876Z" }, + { url = "https://files.pythonhosted.org/packages/de/12/b422cc84439adc0d00de605bf4a308890ae5c26f2c71fbd73e5d08fbb0dd/numpy-2.4.6-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:55cced7c52e981362f708ad635198e97a752dfba412cc03c23bbf3bd8d5cd662", size = 16847511, upload-time = "2026-05-18T23:36:50.673Z" }, + { url = "https://files.pythonhosted.org/packages/44/53/f481bef68011740f8849418d82db07230e825013f31f4eef5ba5b805316a/numpy-2.4.6-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:d6da64deb6b8ed903e7560180a92f2d804ee1ba5eeb849ac2748b8c1aba1f6d7", size = 14889064, upload-time = "2026-05-18T23:36:53.879Z" }, + { url = "https://files.pythonhosted.org/packages/7f/57/42ed575c10ced8af951d426bc4e1f8aff16fd851db33f067036215a7f860/numpy-2.4.6-pp311-pypy311_pp73-macosx_14_0_arm64.whl", hash = "sha256:68a5124b13fa6cc2086764a20005d30bc0548146f7f5322f02fce212ca14317f", size = 5394157, upload-time = "2026-05-18T23:36:57.194Z" }, + { url = "https://files.pythonhosted.org/packages/6a/ef/f66cc724fcc36c1e364c67f51ae9146090b8b584f27d58b97fdae3edd737/numpy-2.4.6-pp311-pypy311_pp73-macosx_14_0_x86_64.whl", hash = "sha256:948424b06129ce883307e8cff868c31396d8dc7630a59c61d70d98dbe70f222c", size = 6708728, upload-time = "2026-05-18T23:36:59.575Z" }, + { url = "https://files.pythonhosted.org/packages/1a/9c/c531f2293b91265d8b48e9b329f54fdd7ffae73cb4134ea10cca4237e9cc/numpy-2.4.6-pp311-pypy311_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5dbbdb29840ca3d91ee0fece42fc29278886d908280bfec0a5846c6f901a3eb0", size = 15798374, upload-time = "2026-05-18T23:37:02.674Z" }, + { url = "https://files.pythonhosted.org/packages/1a/b0/413077f6b1153ed3cba361401c6783bbad6114804a000cc22eb71c13e190/numpy-2.4.6-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8ad03c0965fb3c692200e74d458ca28c1dbb4ce96f9a479a8aa041ad5fabca02", size = 16747286, upload-time = "2026-05-18T23:37:06.327Z" }, + { url = "https://files.pythonhosted.org/packages/15/ce/e5ec180bc41812edcd8daeb8639d205622c0e8c02259d8ab25a0201b3c2a/numpy-2.4.6-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:2803abfebfc990042cd494d8ce2d5f82e9d847af6d35ec486923aa19dbad5e73", size = 12504263, upload-time = "2026-05-18T23:37:09.715Z" }, +] + +[[package]] +name = "nvidia-cublas" +version = "13.1.1.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "nvidia-cuda-nvrtc" }, +] +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" }, + { url = "https://files.pythonhosted.org/packages/3b/cd/154ca20c38269e05eff77c1464e6c1da89f50a6390b565e9d82e06bc11e1/nvidia_cublas-13.1.1.3-py3-none-manylinux_2_27_x86_64.whl", hash = "sha256:37936a16db8fe4ac1f065c2139360608a543a09275cb1a1af612e08cfa065436", size = 423138758, upload-time = "2026-04-08T18:46:58.655Z" }, +] + +[[package]] +name = "nvidia-cuda-cupti" +version = "13.0.85" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2a/2a/80353b103fc20ce05ef51e928daed4b6015db4aaa9162ed0997090fe2250/nvidia_cuda_cupti-13.0.85-py3-none-manylinux_2_25_aarch64.whl", hash = "sha256:796bd679890ee55fb14a94629b698b6db54bcfd833d391d5e94017dd9d7d3151", size = 10310827, upload-time = "2025-09-04T08:26:42.012Z" }, + { url = "https://files.pythonhosted.org/packages/33/6d/737d164b4837a9bbd202f5ae3078975f0525a55730fe871d8ed4e3b952b0/nvidia_cuda_cupti-13.0.85-py3-none-manylinux_2_25_x86_64.whl", hash = "sha256:4eb01c08e859bf924d222250d2e8f8b8ff6d3db4721288cf35d14252a4d933c8", size = 10715597, upload-time = "2025-09-04T08:26:51.312Z" }, +] + +[[package]] +name = "nvidia-cuda-nvrtc" +version = "13.0.88" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c3/68/483a78f5e8f31b08fb1bb671559968c0ca3a065ac7acabfc7cee55214fd6/nvidia_cuda_nvrtc-13.0.88-py3-none-manylinux2010_x86_64.manylinux_2_12_x86_64.whl", hash = "sha256:ad9b6d2ead2435f11cbb6868809d2adeeee302e9bb94bcf0539c7a40d80e8575", size = 90215200, upload-time = "2025-09-04T08:28:44.204Z" }, + { url = "https://files.pythonhosted.org/packages/b7/dc/6bb80850e0b7edd6588d560758f17e0550893a1feaf436807d64d2da040f/nvidia_cuda_nvrtc-13.0.88-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d27f20a0ca67a4bb34268a5e951033496c5b74870b868bacd046b1b8e0c3267b", size = 43015449, upload-time = "2025-09-04T08:28:20.239Z" }, +] + +[[package]] +name = "nvidia-cuda-runtime" +version = "13.0.96" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/87/4f/17d7b9b8e285199c58ce28e31b5c5bbaa4d8271af06a89b6405258245de2/nvidia_cuda_runtime-13.0.96-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ef9bcbe90493a2b9d810e43d249adb3d02e98dd30200d86607d8d02687c43f55", size = 2261060, upload-time = "2025-10-09T08:55:15.78Z" }, + { url = "https://files.pythonhosted.org/packages/2e/24/d1558f3b68b1d26e706813b1d10aa1d785e4698c425af8db8edc3dced472/nvidia_cuda_runtime-13.0.96-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:7f82250d7782aa23b6cfe765ecc7db554bd3c2870c43f3d1821f1d18aebf0548", size = 2243632, upload-time = "2025-10-09T08:55:36.117Z" }, +] + +[[package]] +name = "nvidia-cudnn-cu13" +version = "9.20.0.48" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "nvidia-cublas" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/56/c5/83384d846b2fd17c44bd499b36c75a45ed4f095fbbb2252294e89cea5c5c/nvidia_cudnn_cu13-9.20.0.48-py3-none-manylinux_2_27_aarch64.whl", hash = "sha256:e31454ae00094b0c55319d9d15b6fa2fc50a9e1c0f5c8c80fb75258234e731e1", size = 444574296, upload-time = "2026-03-09T19:28:27.751Z" }, + { url = "https://files.pythonhosted.org/packages/6e/5e/edb9c0ae051602c3ccaffe424256463636d639e27d7f302dde9975ef9e7a/nvidia_cudnn_cu13-9.20.0.48-py3-none-manylinux_2_27_x86_64.whl", hash = "sha256:0c45dd8eeb50b603f07995b1b300c62ffe6a1980482b82b3bcf94a4ca9d49304", size = 366173588, upload-time = "2026-03-09T19:29:34.474Z" }, +] + +[[package]] +name = "nvidia-cufft" +version = "12.0.0.61" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "nvidia-nvjitlink" }, +] +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" }, + { url = "https://files.pythonhosted.org/packages/a8/2f/7b57e29836ea8714f81e9898409196f47d772d5ddedddf1592eadb8ab743/nvidia_cufft-12.0.0.61-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:6c44f692dce8fd5ffd3e3df134b6cdb9c2f72d99cf40b62c32dde45eea9ddad3", size = 214085489, upload-time = "2025-09-04T08:31:56.044Z" }, +] + +[[package]] +name = "nvidia-cufile" +version = "1.15.1.6" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3f/70/4f193de89a48b71714e74602ee14d04e4019ad36a5a9f20c425776e72cd6/nvidia_cufile-1.15.1.6-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:08a3ecefae5a01c7f5117351c64f17c7c62efa5fffdbe24fc7d298da19cd0b44", size = 1223672, upload-time = "2025-09-04T08:32:22.779Z" }, + { url = "https://files.pythonhosted.org/packages/ab/73/cc4a14c9813a8a0d509417cf5f4bdaba76e924d58beb9864f5a7baceefbf/nvidia_cufile-1.15.1.6-py3-none-manylinux_2_27_aarch64.whl", hash = "sha256:bdc0deedc61f548bddf7733bdc216456c2fdb101d020e1ab4b88d232d5e2f6d1", size = 1136992, upload-time = "2025-09-04T08:32:14.119Z" }, +] + +[[package]] +name = "nvidia-curand" +version = "10.4.0.35" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1e/72/7c2ae24fb6b63a32e6ae5d241cc65263ea18d08802aaae087d9f013335a2/nvidia_curand-10.4.0.35-py3-none-manylinux_2_27_aarch64.whl", hash = "sha256:133df5a7509c3e292aaa2b477afd0194f06ce4ea24d714d616ff36439cee349a", size = 61962106, upload-time = "2025-08-04T10:21:41.128Z" }, + { url = "https://files.pythonhosted.org/packages/a5/9f/be0a41ca4a4917abf5cb9ae0daff1a6060cc5de950aec0396de9f3b52bc5/nvidia_curand-10.4.0.35-py3-none-manylinux_2_27_x86_64.whl", hash = "sha256:1aee33a5da6e1db083fe2b90082def8915f30f3248d5896bcec36a579d941bfc", size = 59544258, upload-time = "2025-08-04T10:22:03.992Z" }, +] + +[[package]] +name = "nvidia-cusolver" +version = "12.0.4.66" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "nvidia-cublas" }, + { name = "nvidia-cusparse" }, + { name = "nvidia-nvjitlink" }, +] +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" }, + { url = "https://files.pythonhosted.org/packages/5f/67/cba3777620cdacb99102da4042883709c41c709f4b6323c10781a9c3aa34/nvidia_cusolver-12.0.4.66-py3-none-manylinux_2_27_x86_64.whl", hash = "sha256:0a759da5dea5c0ea10fd307de75cdeb59e7ea4fcb8add0924859b944babf1112", size = 200941980, upload-time = "2025-09-04T08:33:22.767Z" }, +] + +[[package]] +name = "nvidia-cusparse" +version = "12.6.3.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "nvidia-nvjitlink" }, +] +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" }, + { url = "https://files.pythonhosted.org/packages/fa/18/623c77619c31d62efd55302939756966f3ecc8d724a14dab2b75f1508850/nvidia_cusparse-12.6.3.3-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:2b3c89c88d01ee0e477cb7f82ef60a11a4bcd57b6b87c33f789350b59759360b", size = 145942937, upload-time = "2025-09-04T08:33:58.029Z" }, +] + +[[package]] +name = "nvidia-cusparselt-cu13" +version = "0.8.1" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/46/e1/cdc1797eadf82d3a9a575a19b33fdc871a97edbec42c00b5b5e914f4aff4/nvidia_cusparselt_cu13-0.8.1-py3-none-manylinux2014_aarch64.whl", hash = "sha256:4dca476c50bf4780d46cd0bfbd82e2bc10a08e4fef7950917ce8d7578d22a23f", size = 221051344, upload-time = "2025-09-05T18:49:51.289Z" }, + { url = "https://files.pythonhosted.org/packages/34/7d/2661f2fb3ac4302f3a246f5fc030213ac60c1fe0bce84f9783dbd831dbb7/nvidia_cusparselt_cu13-0.8.1-py3-none-manylinux2014_x86_64.whl", hash = "sha256:786ce87568c303fadb5afcc7102d454cd3040d75f6f8626f5db460d1871f4dd0", size = 170148586, upload-time = "2025-09-05T18:50:50.248Z" }, +] + +[[package]] +name = "nvidia-nccl-cu13" +version = "2.29.7" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/72/0d/daf50d44177ee0cbc7ff0a0c91eb5ff676c82be42f9a970bc7597f440c3a/nvidia_nccl_cu13-2.29.7-py3-none-manylinux_2_18_aarch64.whl", hash = "sha256:674a12383e3c38a1bcccae7d4f3633b37852230b6047883cb2f4c2d1b36d9bf5", size = 206014712, upload-time = "2026-03-03T05:34:20.843Z" }, + { url = "https://files.pythonhosted.org/packages/67/f4/58e4e91b6919367c7aafb8e36fce9aad1a3047e536bf7e2fd560927d3a4c/nvidia_nccl_cu13-2.29.7-py3-none-manylinux_2_18_x86_64.whl", hash = "sha256:edd81538446786ec3b73972543e53bb43bcaf0bfc8ef76cb679fcc390ffe136d", size = 205976000, upload-time = "2026-03-03T05:36:24.472Z" }, +] + +[[package]] +name = "nvidia-nvjitlink" +version = "13.3.33" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f0/ee/580ca6f29dcab0221db8706badca1bbbb084f1975c4d4e83329c3a7e31f0/nvidia_nvjitlink-13.3.33-py3-none-manylinux2010_x86_64.manylinux_2_12_x86_64.whl", hash = "sha256:26a6de7fb4c8fdaa7703d3dad720d6d427ddfea5c48a528fd97c11733ad830e5", size = 40742423, upload-time = "2026-05-26T16:54:51.613Z" }, + { url = "https://files.pythonhosted.org/packages/69/30/45414e35ff2eee7db3da037e5707037ccf9d2b5218ffbdb055ea4d5aa98a/nvidia_nvjitlink-13.3.33-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ce48b37dfeb3cb1eae4cf85adacb47d7a6539ea2272870c9a3628ce275c2037e", size = 39168635, upload-time = "2026-05-26T16:54:13.906Z" }, +] + +[[package]] +name = "nvidia-nvshmem-cu13" +version = "3.4.5" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/dc/0f/05cc9c720236dcd2db9c1ab97fff629e96821be2e63103569da0c9b72f19/nvidia_nvshmem_cu13-3.4.5-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:6dc2a197f38e5d0376ad52cd1a2a3617d3cdc150fd5966f4aee9bcebb1d68fe9", size = 60215947, upload-time = "2025-09-06T00:32:20.022Z" }, + { url = "https://files.pythonhosted.org/packages/3c/35/a9bf80a609e74e3b000fef598933235c908fcefcef9026042b8e6dfde2a9/nvidia_nvshmem_cu13-3.4.5-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:290f0a2ee94c9f3687a02502f3b9299a9f9fe826e6d0287ee18482e78d495b80", size = 60412546, upload-time = "2025-09-06T00:32:41.564Z" }, +] + +[[package]] +name = "nvidia-nvtx" +version = "13.0.85" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c2/f3/d86c845465a2723ad7e1e5c36dcd75ddb82898b3f53be47ebd429fb2fa5d/nvidia_nvtx-13.0.85-py3-none-manylinux1_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:4936d1d6780fbe68db454f5e72a42ff64d1fd6397df9f363ae786930fd5c1cd4", size = 148047, upload-time = "2025-09-04T08:29:01.761Z" }, + { url = "https://files.pythonhosted.org/packages/a8/64/3708a90d1ebe202ffdeb7185f878a3c84d15c2b2c31858da2ce0583e2def/nvidia_nvtx-13.0.85-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:cb7780edb6b14107373c835bf8b72e7a178bac7367e23da7acb108f973f157a6", size = 148878, upload-time = "2025-09-04T08:28:53.627Z" }, +] + +[[package]] +name = "onnxruntime" +version = "1.24.3" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.11'", +] +dependencies = [ + { 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/15/41/3253db975a90c3ce1d475e2a230773a21cd7998537f0657947df6fb79861/onnxruntime-1.24.3-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:3e6456801c66b095c5cd68e690ca25db970ea5202bd0c5b84a2c3ef7731c5a3c", size = 17332766, upload-time = "2026-03-05T17:18:59.714Z" }, + { url = "https://files.pythonhosted.org/packages/7e/c5/3af6b325f1492d691b23844d88ed26844c1164620860c5efe95c0e22782d/onnxruntime-1.24.3-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8b2ebc54c6d8281dccff78d4b06e47d4cf07535937584ab759448390a70f4978", size = 15130330, upload-time = "2026-03-05T16:34:53.831Z" }, + { url = "https://files.pythonhosted.org/packages/03/4b/f96b46c1866a293ed23ca2cf5e5a63d413ad3a951da60dd877e3c56cbbca/onnxruntime-1.24.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fb56575d7794bf0781156955610c9e651c9504c64d42ec880784b6106244882d", size = 17213247, upload-time = "2026-03-05T17:17:59.812Z" }, + { url = "https://files.pythonhosted.org/packages/36/13/27cf4d8df2578747584e8758aeb0b673b60274048510257f1f084b15e80e/onnxruntime-1.24.3-cp311-cp311-win_amd64.whl", hash = "sha256:c958222ef9eff54018332beecd32d5d94a3ab079d8821937b333811bf4da0d39", size = 12595530, upload-time = "2026-03-05T17:18:49.356Z" }, + { url = "https://files.pythonhosted.org/packages/19/8c/6d9f31e6bae72a8079be12ed8ba36c4126a571fad38ded0a1b96f60f6896/onnxruntime-1.24.3-cp311-cp311-win_arm64.whl", hash = "sha256:a8f761857ebaf58a85b9e42422d03207f1d39e6bb8fecfdbf613bac5b9710723", size = 12261715, upload-time = "2026-03-05T17:18:39.699Z" }, + { url = "https://files.pythonhosted.org/packages/d0/7f/dfdc4e52600fde4c02d59bfe98c4b057931c1114b701e175aee311a9bc11/onnxruntime-1.24.3-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:0d244227dc5e00a9ae15a7ac1eba4c4460d7876dfecafe73fb00db9f1d914d91", size = 17342578, upload-time = "2026-03-05T17:19:02.403Z" }, + { url = "https://files.pythonhosted.org/packages/1c/dc/1f5489f7b21817d4ad352bf7a92a252bd5b438bcbaa7ad20ea50814edc79/onnxruntime-1.24.3-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0a9847b870b6cb462652b547bc98c49e0efb67553410a082fde1918a38707452", size = 15150105, upload-time = "2026-03-05T16:34:56.897Z" }, + { url = "https://files.pythonhosted.org/packages/28/7c/fd253da53594ab8efbefdc85b3638620ab1a6aab6eb7028a513c853559ce/onnxruntime-1.24.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b354afce3333f2859c7e8706d84b6c552beac39233bcd3141ce7ab77b4cabb5d", size = 17237101, upload-time = "2026-03-05T17:18:02.561Z" }, + { url = "https://files.pythonhosted.org/packages/71/5f/eaabc5699eeed6a9188c5c055ac1948ae50138697a0428d562ac970d7db5/onnxruntime-1.24.3-cp312-cp312-win_amd64.whl", hash = "sha256:44ea708c34965439170d811267c51281d3897ecfc4aa0087fa25d4a4c3eb2e4a", size = 12597638, upload-time = "2026-03-05T17:18:52.141Z" }, + { url = "https://files.pythonhosted.org/packages/cc/5c/d8066c320b90610dbeb489a483b132c3b3879b2f93f949fb5d30cfa9b119/onnxruntime-1.24.3-cp312-cp312-win_arm64.whl", hash = "sha256:48d1092b44ca2ba6f9543892e7c422c15a568481403c10440945685faf27a8d8", size = 12270943, upload-time = "2026-03-05T17:18:42.006Z" }, +] + +[[package]] +name = "onnxruntime" +version = "1.27.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", +] +dependencies = [ + { 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 = "packaging", marker = "python_full_version >= '3.11'" }, + { name = "protobuf", marker = "python_full_version >= '3.11'" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/d4/e4/5353d7e09ced4a8f473f843223fc75d726b2b5519dcefc12f22a6c92852d/onnxruntime-1.27.0-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:8ba14a38c570087f3cdb8cfba33f7a38a1e826c1e5b29e17c28ceda0cc910016", size = 18416484, upload-time = "2026-06-15T22:43:43.894Z" }, + { url = "https://files.pythonhosted.org/packages/ed/1f/a2117aa3f144fce88774efa37440d0ca72d0c9144854dfc0961f2b04c6fc/onnxruntime-1.27.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2eb083321af8a236a84c7c140a7f4cecbfa2a987a18c07c78db471c20cd390ef", size = 16419330, upload-time = "2026-06-15T22:42:37.58Z" }, + { url = "https://files.pythonhosted.org/packages/e0/cd/74bb804170ceb622fda9111df31a07b3024f7491472256d3a90b5391a4d2/onnxruntime-1.27.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e4f7b0e90d2d212e2c2deaa6c8291616183ab815d3ec558ea12d3ac8b26d36f4", size = 18636930, upload-time = "2026-06-15T22:43:01.584Z" }, + { url = "https://files.pythonhosted.org/packages/fe/8f/5b8e2b85e81735696887175dbaf6409f215683f5ca9d4928fbb038211d32/onnxruntime-1.27.0-cp311-cp311-win_amd64.whl", hash = "sha256:ff050e4f6bf7f12918fa14dcb047c0b02e295f35e86d42532552be4b3d54e977", size = 13356110, upload-time = "2026-06-15T22:43:32.172Z" }, + { url = "https://files.pythonhosted.org/packages/b0/3a/4f568de678126b6a371a93862f015a82138359decd97fcac61fc84b5b774/onnxruntime-1.27.0-cp311-cp311-win_arm64.whl", hash = "sha256:75fbc1e1fb43a39a856c8209c544cca7817b5de7ac16b15b1bdf55d1cc67b9df", size = 13098635, upload-time = "2026-06-15T22:43:19.607Z" }, + { url = "https://files.pythonhosted.org/packages/c3/b7/dd3a524ed93a820dff1af902d0412957ab12499953333e9daa01af5bc480/onnxruntime-1.27.0-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:a14c2ce45312def86b77aea651f46565e45960cf5f0721bfdff449165086ab76", size = 18433506, upload-time = "2026-06-15T22:43:47.026Z" }, + { url = "https://files.pythonhosted.org/packages/84/86/c3b6b17745a1997d784dadc9bd88d713d2e6721139a5a0e885b28cfb79b1/onnxruntime-1.27.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c6fddce0539a4898c7bef35b052ffd37935b2190e35488eab99ce91887743ea1", size = 16438140, upload-time = "2026-06-15T22:42:40.666Z" }, + { url = "https://files.pythonhosted.org/packages/26/81/24dd9b31b0fb912ee19ca53ac1c9764bfd79d58a2ccef564eb693be831a5/onnxruntime-1.27.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7c65a7438632d55dfbc8a02ee60bd6cf7dd9d1ba05a43d4b851452f32338e194", size = 18658316, upload-time = "2026-06-15T22:43:04.012Z" }, + { url = "https://files.pythonhosted.org/packages/4f/88/8ec9db1a4d126bb8b758992beb40d1249df171917d75f44a327eb5f20dda/onnxruntime-1.27.0-cp312-cp312-win_amd64.whl", hash = "sha256:20c321cf187ba496e648acf6b4cf90b4d398b0d17c2a77fdaeba365b908cc1c1", size = 13358769, upload-time = "2026-06-15T22:43:34.581Z" }, + { url = "https://files.pythonhosted.org/packages/ae/9f/fdad359dfcba7e7cd8815569b304a596531d4efa77a75d77f8b4981891a2/onnxruntime-1.27.0-cp312-cp312-win_arm64.whl", hash = "sha256:d0d1f68868e2ef30ef70998ba9bbbc5c305e9b17041e3936751c1b8aa6aade06", size = 13104440, upload-time = "2026-06-15T22:43:22.893Z" }, +] + +[[package]] +name = "packaging" +version = "26.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d7/f1/e7a6dd94a8d4a5626c03e4e99c87f241ba9e350cd9e6d75123f992427270/packaging-26.2.tar.gz", hash = "sha256:ff452ff5a3e828ce110190feff1178bb1f2ea2281fa2075aadb987c2fb221661", size = 228134, upload-time = "2026-04-24T20:15:23.917Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/df/b2/87e62e8c3e2f4b32e5fe99e0b86d576da1312593b39f47d8ceef365e95ed/packaging-26.2-py3-none-any.whl", hash = "sha256:5fc45236b9446107ff2415ce77c807cee2862cb6fac22b8a73826d0693b0980e", size = 100195, upload-time = "2026-04-24T20:15:22.081Z" }, +] + +[[package]] +name = "pathspec" +version = "1.1.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/5a/82/42f767fc1c1143d6fd36efb827202a2d997a375e160a71eb2888a925aac1/pathspec-1.1.1.tar.gz", hash = "sha256:17db5ecd524104a120e173814c90367a96a98d07c45b2e10c2f3919fff91bf5a", size = 135180, upload-time = "2026-04-27T01:46:08.907Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f1/d9/7fb5aa316bc299258e68c73ba3bddbc499654a07f151cba08f6153988714/pathspec-1.1.1-py3-none-any.whl", hash = "sha256:a00ce642f577bf7f473932318056212bc4f8bfdf53128c78bbd5af0b9b20b189", size = 57328, upload-time = "2026-04-27T01:46:07.06Z" }, +] + +[[package]] +name = "phonemizer-fork" +version = "3.3.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "dlinfo" }, + { name = "joblib" }, + { name = "segments" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/42/fa/9294d2f11890ca49d0bdac7a4da60cbe5686629bfd4987cae0ad75e051cc/phonemizer_fork-3.3.2.tar.gz", hash = "sha256:10e16e827d0443b087062e21b55e805c00989cf1343b2e81e734cae5f6c0cf69", size = 300989, upload-time = "2025-01-30T13:02:31.201Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/64/f1/0dcce21b0ae16a82df4b6583f8f3ad8e55b35f7e98b6bf536a4dd225fa08/phonemizer_fork-3.3.2-py3-none-any.whl", hash = "sha256:97305c76f4183b3825dae8f4c032265fe78c9946ce58c47d4b62161349264b74", size = 82700, upload-time = "2025-01-30T13:02:28.667Z" }, +] + +[[package]] +name = "platformdirs" +version = "4.11.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/78/9b/560e4be8e26f6fd133a03630a8df0c663b9e8d61b4ade152b72005aec83b/platformdirs-4.11.0.tar.gz", hash = "sha256:0555d18370482847566ffabcaa53ad7c6c1c29f195989ae1ed634a05f76ea1e0", size = 31953, upload-time = "2026-07-21T13:09:36.565Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7d/68/d8d58938dfb1370b266a1a729e6d77a985be23689a0496498ee17b2cbf90/platformdirs-4.11.0-py3-none-any.whl", hash = "sha256:360ccded2b7fce0af0ff80cc8f5942a1c5d99b0e856033acb030bfc634709e74", size = 23247, upload-time = "2026-07-21T13:09:35.422Z" }, +] + +[[package]] +name = "pluggy" +version = "1.6.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f9/e2/3e91f31a7d2b083fe6ef3fa267035b518369d9511ffab804f839851d2779/pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3", size = 69412, upload-time = "2025-05-15T12:30:07.975Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746", size = 20538, upload-time = "2025-05-15T12:30:06.134Z" }, +] + +[[package]] +name = "protobuf" +version = "7.35.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/da/01/9ef0afd7999eb9badb3a768b4aedd78c86d4c65cfaf1958ab276199e76b4/protobuf-7.35.1.tar.gz", hash = "sha256:ce115a26fe0c39a2c29973d914d327e516a6455464489fe3cd1e51a1b354f81a", size = 458717, upload-time = "2026-06-11T21:55:40.257Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/10/03/8aeeb7458d22546bf64b5250ca1daeb5ff757d900e8e4a7476c6f0db843e/protobuf-7.35.1-cp310-abi3-macosx_10_9_universal2.whl", hash = "sha256:24f857477359a85c0c235261b8ba905fd51b2562f4a64ca1df5473f29850cbf6", size = 433226, upload-time = "2026-06-11T21:55:31.719Z" }, + { url = "https://files.pythonhosted.org/packages/37/4b/dfb89eb0e652a1ff073c39a59fb5e3a83cfe9b57a2c83fa6d78270101767/protobuf-7.35.1-cp310-abi3-manylinux2014_aarch64.whl", hash = "sha256:11d6b0ec246892d85215b0a13ca6e0233cf5284b68f0ac02646427f4ff88a799", size = 328847, upload-time = "2026-06-11T21:55:34.035Z" }, + { url = "https://files.pythonhosted.org/packages/0f/58/dc12f2cd484951524af6e3382c785869b9b3fb5e52ee95ae23add53ee8f9/protobuf-7.35.1-cp310-abi3-manylinux2014_s390x.whl", hash = "sha256:b73f9489a4b8b1c9cb1f8ed951c736392592edb24b9d6819f36d2e10b171d5b4", size = 344030, upload-time = "2026-06-11T21:55:34.941Z" }, + { url = "https://files.pythonhosted.org/packages/e4/be/5b3cfe508bfab6761414ff944e3366eb13be4fd71efcd69450f89ba39f43/protobuf-7.35.1-cp310-abi3-manylinux2014_x86_64.whl", hash = "sha256:74758715c53d7158fb76caf4f0cfdacc5329a4b1bb994f865d6cf302d413a1c4", size = 327130, upload-time = "2026-06-11T21:55:35.921Z" }, + { url = "https://files.pythonhosted.org/packages/d8/bc/6d6c7ba8709c85f8f2c390b2b118d6fb08a783676a572271851bf45a7d22/protobuf-7.35.1-cp310-abi3-win32.whl", hash = "sha256:353652e4efd0bca5b5fc2656abf8307ef351f0cf938c9eba09f0e09c20a25c30", size = 428945, upload-time = "2026-06-11T21:55:37.034Z" }, + { url = "https://files.pythonhosted.org/packages/0a/19/8d0cb6f20a1ef7b18f1c8986ad5783f22f84cce39c6ce9a6e645ea55192e/protobuf-7.35.1-cp310-abi3-win_amd64.whl", hash = "sha256:230a75ddfc2de4806e56696ce9640c1cdfdb6543b7cfce98d42a4c0a0e7bdb87", size = 439996, upload-time = "2026-06-11T21:55:38.123Z" }, + { url = "https://files.pythonhosted.org/packages/19/c7/5f7c636ec43e0c545e28d1f1db71990108306f7bdcb89f069ba97e428e7f/protobuf-7.35.1-py3-none-any.whl", hash = "sha256:4bc97768d8fe4ad6743c8a19403e314511ed9f6d13205b687e52421c023ac1b9", size = 171659, upload-time = "2026-06-11T21:55:39.155Z" }, +] + +[[package]] +name = "pycparser" +version = "3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/1b/7d/92392ff7815c21062bea51aa7b87d45576f649f16458d78b7cf94b9ab2e6/pycparser-3.0.tar.gz", hash = "sha256:600f49d217304a5902ac3c37e1281c9fe94e4d0489de643a9504c5cdfdfc6b29", size = 103492, upload-time = "2026-01-21T14:26:51.89Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0c/c3/44f3fbbfa403ea2a7c779186dc20772604442dde72947e7d01069cbe98e3/pycparser-3.0-py3-none-any.whl", hash = "sha256:b727414169a36b7d524c1c3e31839a521725078d7b2ff038656844266160a992", size = 48172, upload-time = "2026-01-21T14:26:50.693Z" }, +] + +[[package]] +name = "pygments" +version = "2.20.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c3/b2/bc9c9196916376152d655522fdcebac55e66de6603a76a02bca1b6414f6c/pygments-2.20.0.tar.gz", hash = "sha256:6757cd03768053ff99f3039c1a36d6c0aa0b263438fcab17520b30a303a82b5f", size = 4955991, upload-time = "2026-03-29T13:29:33.898Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f4/7e/a72dd26f3b0f4f2bf1dd8923c85f7ceb43172af56d63c7383eb62b332364/pygments-2.20.0-py3-none-any.whl", hash = "sha256:81a9e26dd42fd28a23a2d169d86d7ac03b46e2f8b59ed4698fb4785f946d0176", size = 1231151, upload-time = "2026-03-29T13:29:30.038Z" }, +] + +[[package]] +name = "pyparsing" +version = "3.3.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f3/91/9c6ee907786a473bf81c5f53cf703ba0957b23ab84c264080fb5a450416f/pyparsing-3.3.2.tar.gz", hash = "sha256:c777f4d763f140633dcb6d8a3eda953bf7a214dc4eff598413c070bcdc117cbc", size = 6851574, upload-time = "2026-01-21T03:57:59.36Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/10/bd/c038d7cc38edc1aa5bf91ab8068b63d4308c66c4c8bb3cbba7dfbc049f9c/pyparsing-3.3.2-py3-none-any.whl", hash = "sha256:850ba148bd908d7e2411587e247a1e4f0327839c40e2e5e6d05a007ecc69911d", size = 122781, upload-time = "2026-01-21T03:57:55.912Z" }, +] + +[[package]] +name = "pyside6" +version = "6.11.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pyside6-addons" }, + { name = "pyside6-essentials" }, + { name = "shiboken6" }, + { name = "tomli", marker = "python_full_version < '3.11'" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/da/a6/27ba5947ed48918f7b74b7c43a1e280aac069e36f25adeb4c9adfac835c4/pyside6-6.11.1-cp310-abi3-macosx_13_0_universal2.whl", hash = "sha256:537682c3b7530817203e667c1f5a2f00486b37bf52c52eeab438544c7a0917f6", size = 571921, upload-time = "2026-05-13T09:47:36.402Z" }, + { url = "https://files.pythonhosted.org/packages/d8/de/af89d71410c83b10654d86ff9aff2a4f87c30163658f1cc145242e222526/pyside6-6.11.1-cp310-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:b1fc521ba2bb5109425ab8add06bddbdd524abcad06cfa012cc39a22a189feb2", size = 572102, upload-time = "2026-05-13T09:47:38.249Z" }, + { url = "https://files.pythonhosted.org/packages/b6/0e/d583bd3f7bf5046a4497b36f3902cfb64aa29554489a5a25c18e6b4ac0ac/pyside6-6.11.1-cp310-abi3-manylinux_2_39_aarch64.whl", hash = "sha256:75f0005c3eb95c07cfb65522ec50d0815ac007a96482c21dc3cb4b4c04895d84", size = 572098, upload-time = "2026-05-13T09:47:39.44Z" }, + { url = "https://files.pythonhosted.org/packages/57/f2/d9d8ce1373dabb37e5919f63cd18446556079631d3f2eea3ada03c29f6b8/pyside6-6.11.1-cp310-abi3-win_amd64.whl", hash = "sha256:0968877ab1fb4ef3587a284da6fe05e8647ada56a6a3750b6395188e01f4aba6", size = 578377, upload-time = "2026-05-13T09:47:40.76Z" }, + { url = "https://files.pythonhosted.org/packages/96/02/a6057d8bd2bdb1940820fff2d627fdf4013148c9c57adf69fa40d3452ac3/pyside6-6.11.1-cp310-abi3-win_arm64.whl", hash = "sha256:acee467cb5f256cc47ebb9d815a054c1d8416da380c191b247a76d164aa3f805", size = 561765, upload-time = "2026-05-13T09:47:41.9Z" }, +] + +[[package]] +name = "pyside6-addons" +version = "6.11.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pyside6-essentials" }, + { name = "shiboken6" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/3f/6b/8bc94aff48b63f788f2d84e5467c12362d68906ba742c0942f46cb04c879/pyside6_addons-6.11.1-cp310-abi3-macosx_13_0_universal2.whl", hash = "sha256:54733c77f789bef5f03c6aff4ad3bec8b2eff021f0cfcbc53d5e6c250ded24f9", size = 331714589, upload-time = "2026-05-13T09:39:12.36Z" }, + { url = "https://files.pythonhosted.org/packages/dd/62/fb1428a523b2a4541e232aab50d9e789e6b4526f37fd9593452a7ea5b6b3/pyside6_addons-6.11.1-cp310-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:8e6c65fbd73a512d6f72cda8d8277444a85a34dc99dd1dae9c21d35b8671bb1f", size = 175063224, upload-time = "2026-05-13T09:39:34.185Z" }, + { url = "https://files.pythonhosted.org/packages/ee/9b/2ccd52f66db55c06de65d0501170a1935d04d64d0a230c0d892284a02ce3/pyside6_addons-6.11.1-cp310-abi3-manylinux_2_39_aarch64.whl", hash = "sha256:bf1c6c4e954e5eba3d2a7c661ad4b9689e8f09c7f4a16bdf29713371d11af993", size = 170553429, upload-time = "2026-05-13T09:39:54.424Z" }, + { url = "https://files.pythonhosted.org/packages/9a/bd/8adc4d350b3b363f3dfc8fccdcf5bfed25f7e36c2fff30c64e106f4f1572/pyside6_addons-6.11.1-cp310-abi3-win_amd64.whl", hash = "sha256:0d13c4dfd671b050a48e4f8d8ddc724b7248f9c0437e7fc47fdf316278572923", size = 168816308, upload-time = "2026-05-13T09:40:13.541Z" }, + { url = "https://files.pythonhosted.org/packages/65/b7/9a840d97f0f0f04e372a87e205dd30ee285b4e3b021b188459a917c9dc76/pyside6_addons-6.11.1-cp310-abi3-win_arm64.whl", hash = "sha256:3494f480dee92f415be2f2d989c0b3f4755ac332b28045cbf4ba0f5c5a22ba37", size = 35759347, upload-time = "2026-05-13T09:40:21.199Z" }, +] + +[[package]] +name = "pyside6-essentials" +version = "6.11.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "shiboken6" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/b3/da/10d9197e7370eb4fed8df5fc547b7548dec88e5c5949e2d450db4ae96feb/pyside6_essentials-6.11.1-cp310-abi3-macosx_13_0_universal2.whl", hash = "sha256:228de53c2bc26b07e5021fbe3614fc44ca08e4dab9999af08c2b389d2c239957", size = 110352945, upload-time = "2026-05-13T09:43:08.006Z" }, + { url = "https://files.pythonhosted.org/packages/5c/49/0e1237c4400bec7e335d2c4eeb49bc40d9fd88a9ac44ca9083ce1abdc308/pyside6_essentials-6.11.1-cp310-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:e3ef7027b41e4e55fadb56e3b3257dc8ee92154b639fe67fc4c8e05e9d976c60", size = 79908535, upload-time = "2026-05-13T09:43:24.836Z" }, + { url = "https://files.pythonhosted.org/packages/4c/c5/da4c5f23c6540ac5211a1f60177c8dee84b1bf40f2719479587ab8c60731/pyside6_essentials-6.11.1-cp310-abi3-manylinux_2_39_aarch64.whl", hash = "sha256:a039b6da68a3a4b9d243217b2b98d475eed3f617159ef6be925badab53c11b0d", size = 78960051, upload-time = "2026-05-13T09:43:35.423Z" }, + { url = "https://files.pythonhosted.org/packages/64/0e/b663ecc96ca57b5c91b83b6615d6b174380b0faf30338125c26e053d6aa7/pyside6_essentials-6.11.1-cp310-abi3-win_amd64.whl", hash = "sha256:63311bd48e32c584599ab04b9ef7c324082374cd2c9fa533f978fb893bb47e40", size = 77549267, upload-time = "2026-05-13T09:43:44.92Z" }, + { url = "https://files.pythonhosted.org/packages/f1/12/eb6723faf5cb7fa581145da1c15f40d641b96e080f0491af2f1859fdeedb/pyside6_essentials-6.11.1-cp310-abi3-win_arm64.whl", hash = "sha256:11253ea52aabecefe9febddbbe78b43a824129e3af1cec98431028fba7fa954f", size = 57964512, upload-time = "2026-05-13T09:43:52.968Z" }, +] + +[[package]] +name = "pytest" +version = "9.1.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "exceptiongroup", marker = "python_full_version < '3.11'" }, + { name = "iniconfig" }, + { name = "packaging" }, + { name = "pluggy" }, + { name = "pygments" }, + { name = "tomli", marker = "python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e4/47/b9efed96c114afcfa3c9d3fe98a76a1d14c74a9e266d397cf6eb64be5e01/pytest-9.1.1.tar.gz", hash = "sha256:1088fbde8f2b49d95a549a195707afa7a76a3ce9bcadc26b6d71f0ffda5fe313", size = 1636369, upload-time = "2026-06-19T10:58:32.857Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/24/25/1de2678b631f5a49215c6c96fff41ba892b0a34df68d6d80292b1b48aa7f/pytest-9.1.1-py3-none-any.whl", hash = "sha256:37a86b45efb9a47a61a36449063e8e18d0cab3161329fc099eb21783169c4f0c", size = 386536, upload-time = "2026-06-19T10:58:31.347Z" }, +] + +[[package]] +name = "python-dateutil" +version = "2.9.0.post0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "six" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/66/c0/0c8b6ad9f17a802ee498c46e004a0eb49bc148f2fd230864601a86dcf6db/python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 342432, upload-time = "2024-03-01T18:36:20.211Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", size = 229892, upload-time = "2024-03-01T18:36:18.57Z" }, +] + +[[package]] +name = "pytokens" +version = "0.4.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b6/34/b4e015b99031667a7b960f888889c5bd34ef585c85e1cb56a594b92836ac/pytokens-0.4.1.tar.gz", hash = "sha256:292052fe80923aae2260c073f822ceba21f3872ced9a68bb7953b348e561179a", size = 23015, upload-time = "2026-01-30T01:03:45.924Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/42/24/f206113e05cb8ef51b3850e7ef88f20da6f4bf932190ceb48bd3da103e10/pytokens-0.4.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2a44ed93ea23415c54f3face3b65ef2b844d96aeb3455b8a69b3df6beab6acc5", size = 161522, upload-time = "2026-01-30T01:02:50.393Z" }, + { url = "https://files.pythonhosted.org/packages/d4/e9/06a6bf1b90c2ed81a9c7d2544232fe5d2891d1cd480e8a1809ca354a8eb2/pytokens-0.4.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:add8bf86b71a5d9fb5b89f023a80b791e04fba57960aa790cc6125f7f1d39dfe", size = 246945, upload-time = "2026-01-30T01:02:52.399Z" }, + { url = "https://files.pythonhosted.org/packages/69/66/f6fb1007a4c3d8b682d5d65b7c1fb33257587a5f782647091e3408abe0b8/pytokens-0.4.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:670d286910b531c7b7e3c0b453fd8156f250adb140146d234a82219459b9640c", size = 259525, upload-time = "2026-01-30T01:02:53.737Z" }, + { url = "https://files.pythonhosted.org/packages/04/92/086f89b4d622a18418bac74ab5db7f68cf0c21cf7cc92de6c7b919d76c88/pytokens-0.4.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:4e691d7f5186bd2842c14813f79f8884bb03f5995f0575272009982c5ac6c0f7", size = 262693, upload-time = "2026-01-30T01:02:54.871Z" }, + { url = "https://files.pythonhosted.org/packages/b4/7b/8b31c347cf94a3f900bdde750b2e9131575a61fdb620d3d3c75832262137/pytokens-0.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:27b83ad28825978742beef057bfe406ad6ed524b2d28c252c5de7b4a6dd48fa2", size = 103567, upload-time = "2026-01-30T01:02:56.414Z" }, + { url = "https://files.pythonhosted.org/packages/3d/92/790ebe03f07b57e53b10884c329b9a1a308648fc083a6d4a39a10a28c8fc/pytokens-0.4.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d70e77c55ae8380c91c0c18dea05951482e263982911fc7410b1ffd1dadd3440", size = 160864, upload-time = "2026-01-30T01:02:57.882Z" }, + { url = "https://files.pythonhosted.org/packages/13/25/a4f555281d975bfdd1eba731450e2fe3a95870274da73fb12c40aeae7625/pytokens-0.4.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4a58d057208cb9075c144950d789511220b07636dd2e4708d5645d24de666bdc", size = 248565, upload-time = "2026-01-30T01:02:59.912Z" }, + { url = "https://files.pythonhosted.org/packages/17/50/bc0394b4ad5b1601be22fa43652173d47e4c9efbf0044c62e9a59b747c56/pytokens-0.4.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b49750419d300e2b5a3813cf229d4e5a4c728dae470bcc89867a9ad6f25a722d", size = 260824, upload-time = "2026-01-30T01:03:01.471Z" }, + { url = "https://files.pythonhosted.org/packages/4e/54/3e04f9d92a4be4fc6c80016bc396b923d2a6933ae94b5f557c939c460ee0/pytokens-0.4.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:d9907d61f15bf7261d7e775bd5d7ee4d2930e04424bab1972591918497623a16", size = 264075, upload-time = "2026-01-30T01:03:04.143Z" }, + { url = "https://files.pythonhosted.org/packages/d1/1b/44b0326cb5470a4375f37988aea5d61b5cc52407143303015ebee94abfd6/pytokens-0.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:ee44d0f85b803321710f9239f335aafe16553b39106384cef8e6de40cb4ef2f6", size = 103323, upload-time = "2026-01-30T01:03:05.412Z" }, + { url = "https://files.pythonhosted.org/packages/41/5d/e44573011401fb82e9d51e97f1290ceb377800fb4eed650b96f4753b499c/pytokens-0.4.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:140709331e846b728475786df8aeb27d24f48cbcf7bcd449f8de75cae7a45083", size = 160663, upload-time = "2026-01-30T01:03:06.473Z" }, + { url = "https://files.pythonhosted.org/packages/f0/e6/5bbc3019f8e6f21d09c41f8b8654536117e5e211a85d89212d59cbdab381/pytokens-0.4.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6d6c4268598f762bc8e91f5dbf2ab2f61f7b95bdc07953b602db879b3c8c18e1", size = 255626, upload-time = "2026-01-30T01:03:08.177Z" }, + { url = "https://files.pythonhosted.org/packages/bf/3c/2d5297d82286f6f3d92770289fd439956b201c0a4fc7e72efb9b2293758e/pytokens-0.4.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:24afde1f53d95348b5a0eb19488661147285ca4dd7ed752bbc3e1c6242a304d1", size = 269779, upload-time = "2026-01-30T01:03:09.756Z" }, + { url = "https://files.pythonhosted.org/packages/20/01/7436e9ad693cebda0551203e0bf28f7669976c60ad07d6402098208476de/pytokens-0.4.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:5ad948d085ed6c16413eb5fec6b3e02fa00dc29a2534f088d3302c47eb59adf9", size = 268076, upload-time = "2026-01-30T01:03:10.957Z" }, + { url = "https://files.pythonhosted.org/packages/2e/df/533c82a3c752ba13ae7ef238b7f8cdd272cf1475f03c63ac6cf3fcfb00b6/pytokens-0.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:3f901fe783e06e48e8cbdc82d631fca8f118333798193e026a50ce1b3757ea68", size = 103552, upload-time = "2026-01-30T01:03:12.066Z" }, + { url = "https://files.pythonhosted.org/packages/c6/78/397db326746f0a342855b81216ae1f0a32965deccfd7c830a2dbc66d2483/pytokens-0.4.1-py3-none-any.whl", hash = "sha256:26cef14744a8385f35d0e095dc8b3a7583f6c953c2e3d269c7f82484bf5ad2de", size = 13729, upload-time = "2026-01-30T01:03:45.029Z" }, +] + +[[package]] +name = "pyyaml" +version = "6.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/05/8e/961c0007c59b8dd7729d542c61a4d537767a59645b82a0b521206e1e25c2/pyyaml-6.0.3.tar.gz", hash = "sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f", size = 130960, upload-time = "2025-09-25T21:33:16.546Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f4/a0/39350dd17dd6d6c6507025c0e53aef67a9293a6d37d3511f23ea510d5800/pyyaml-6.0.3-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:214ed4befebe12df36bcc8bc2b64b396ca31be9304b8f59e25c11cf94a4c033b", size = 184227, upload-time = "2025-09-25T21:31:46.04Z" }, + { url = "https://files.pythonhosted.org/packages/05/14/52d505b5c59ce73244f59c7a50ecf47093ce4765f116cdb98286a71eeca2/pyyaml-6.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:02ea2dfa234451bbb8772601d7b8e426c2bfa197136796224e50e35a78777956", size = 174019, upload-time = "2025-09-25T21:31:47.706Z" }, + { url = "https://files.pythonhosted.org/packages/43/f7/0e6a5ae5599c838c696adb4e6330a59f463265bfa1e116cfd1fbb0abaaae/pyyaml-6.0.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b30236e45cf30d2b8e7b3e85881719e98507abed1011bf463a8fa23e9c3e98a8", size = 740646, upload-time = "2025-09-25T21:31:49.21Z" }, + { url = "https://files.pythonhosted.org/packages/2f/3a/61b9db1d28f00f8fd0ae760459a5c4bf1b941baf714e207b6eb0657d2578/pyyaml-6.0.3-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:66291b10affd76d76f54fad28e22e51719ef9ba22b29e1d7d03d6777a9174198", size = 840793, upload-time = "2025-09-25T21:31:50.735Z" }, + { url = "https://files.pythonhosted.org/packages/7a/1e/7acc4f0e74c4b3d9531e24739e0ab832a5edf40e64fbae1a9c01941cabd7/pyyaml-6.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9c7708761fccb9397fe64bbc0395abcae8c4bf7b0eac081e12b809bf47700d0b", size = 770293, upload-time = "2025-09-25T21:31:51.828Z" }, + { url = "https://files.pythonhosted.org/packages/8b/ef/abd085f06853af0cd59fa5f913d61a8eab65d7639ff2a658d18a25d6a89d/pyyaml-6.0.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:418cf3f2111bc80e0933b2cd8cd04f286338bb88bdc7bc8e6dd775ebde60b5e0", size = 732872, upload-time = "2025-09-25T21:31:53.282Z" }, + { url = "https://files.pythonhosted.org/packages/1f/15/2bc9c8faf6450a8b3c9fc5448ed869c599c0a74ba2669772b1f3a0040180/pyyaml-6.0.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:5e0b74767e5f8c593e8c9b5912019159ed0533c70051e9cce3e8b6aa699fcd69", size = 758828, upload-time = "2025-09-25T21:31:54.807Z" }, + { url = "https://files.pythonhosted.org/packages/a3/00/531e92e88c00f4333ce359e50c19b8d1de9fe8d581b1534e35ccfbc5f393/pyyaml-6.0.3-cp310-cp310-win32.whl", hash = "sha256:28c8d926f98f432f88adc23edf2e6d4921ac26fb084b028c733d01868d19007e", size = 142415, upload-time = "2025-09-25T21:31:55.885Z" }, + { url = "https://files.pythonhosted.org/packages/2a/fa/926c003379b19fca39dd4634818b00dec6c62d87faf628d1394e137354d4/pyyaml-6.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:bdb2c67c6c1390b63c6ff89f210c8fd09d9a1217a465701eac7316313c915e4c", size = 158561, upload-time = "2025-09-25T21:31:57.406Z" }, + { url = "https://files.pythonhosted.org/packages/6d/16/a95b6757765b7b031c9374925bb718d55e0a9ba8a1b6a12d25962ea44347/pyyaml-6.0.3-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:44edc647873928551a01e7a563d7452ccdebee747728c1080d881d68af7b997e", size = 185826, upload-time = "2025-09-25T21:31:58.655Z" }, + { url = "https://files.pythonhosted.org/packages/16/19/13de8e4377ed53079ee996e1ab0a9c33ec2faf808a4647b7b4c0d46dd239/pyyaml-6.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:652cb6edd41e718550aad172851962662ff2681490a8a711af6a4d288dd96824", size = 175577, upload-time = "2025-09-25T21:32:00.088Z" }, + { url = "https://files.pythonhosted.org/packages/0c/62/d2eb46264d4b157dae1275b573017abec435397aa59cbcdab6fc978a8af4/pyyaml-6.0.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:10892704fc220243f5305762e276552a0395f7beb4dbf9b14ec8fd43b57f126c", size = 775556, upload-time = "2025-09-25T21:32:01.31Z" }, + { url = "https://files.pythonhosted.org/packages/10/cb/16c3f2cf3266edd25aaa00d6c4350381c8b012ed6f5276675b9eba8d9ff4/pyyaml-6.0.3-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:850774a7879607d3a6f50d36d04f00ee69e7fc816450e5f7e58d7f17f1ae5c00", size = 882114, upload-time = "2025-09-25T21:32:03.376Z" }, + { url = "https://files.pythonhosted.org/packages/71/60/917329f640924b18ff085ab889a11c763e0b573da888e8404ff486657602/pyyaml-6.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b8bb0864c5a28024fac8a632c443c87c5aa6f215c0b126c449ae1a150412f31d", size = 806638, upload-time = "2025-09-25T21:32:04.553Z" }, + { url = "https://files.pythonhosted.org/packages/dd/6f/529b0f316a9fd167281a6c3826b5583e6192dba792dd55e3203d3f8e655a/pyyaml-6.0.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1d37d57ad971609cf3c53ba6a7e365e40660e3be0e5175fa9f2365a379d6095a", size = 767463, upload-time = "2025-09-25T21:32:06.152Z" }, + { url = "https://files.pythonhosted.org/packages/f2/6a/b627b4e0c1dd03718543519ffb2f1deea4a1e6d42fbab8021936a4d22589/pyyaml-6.0.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:37503bfbfc9d2c40b344d06b2199cf0e96e97957ab1c1b546fd4f87e53e5d3e4", size = 794986, upload-time = "2025-09-25T21:32:07.367Z" }, + { url = "https://files.pythonhosted.org/packages/45/91/47a6e1c42d9ee337c4839208f30d9f09caa9f720ec7582917b264defc875/pyyaml-6.0.3-cp311-cp311-win32.whl", hash = "sha256:8098f252adfa6c80ab48096053f512f2321f0b998f98150cea9bd23d83e1467b", size = 142543, upload-time = "2025-09-25T21:32:08.95Z" }, + { url = "https://files.pythonhosted.org/packages/da/e3/ea007450a105ae919a72393cb06f122f288ef60bba2dc64b26e2646fa315/pyyaml-6.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:9f3bfb4965eb874431221a3ff3fdcddc7e74e3b07799e0e84ca4a0f867d449bf", size = 158763, upload-time = "2025-09-25T21:32:09.96Z" }, + { url = "https://files.pythonhosted.org/packages/d1/33/422b98d2195232ca1826284a76852ad5a86fe23e31b009c9886b2d0fb8b2/pyyaml-6.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7f047e29dcae44602496db43be01ad42fc6f1cc0d8cd6c83d342306c32270196", size = 182063, upload-time = "2025-09-25T21:32:11.445Z" }, + { url = "https://files.pythonhosted.org/packages/89/a0/6cf41a19a1f2f3feab0e9c0b74134aa2ce6849093d5517a0c550fe37a648/pyyaml-6.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:fc09d0aa354569bc501d4e787133afc08552722d3ab34836a80547331bb5d4a0", size = 173973, upload-time = "2025-09-25T21:32:12.492Z" }, + { url = "https://files.pythonhosted.org/packages/ed/23/7a778b6bd0b9a8039df8b1b1d80e2e2ad78aa04171592c8a5c43a56a6af4/pyyaml-6.0.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9149cad251584d5fb4981be1ecde53a1ca46c891a79788c0df828d2f166bda28", size = 775116, upload-time = "2025-09-25T21:32:13.652Z" }, + { url = "https://files.pythonhosted.org/packages/65/30/d7353c338e12baef4ecc1b09e877c1970bd3382789c159b4f89d6a70dc09/pyyaml-6.0.3-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5fdec68f91a0c6739b380c83b951e2c72ac0197ace422360e6d5a959d8d97b2c", size = 844011, upload-time = "2025-09-25T21:32:15.21Z" }, + { url = "https://files.pythonhosted.org/packages/8b/9d/b3589d3877982d4f2329302ef98a8026e7f4443c765c46cfecc8858c6b4b/pyyaml-6.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ba1cc08a7ccde2d2ec775841541641e4548226580ab850948cbfda66a1befcdc", size = 807870, upload-time = "2025-09-25T21:32:16.431Z" }, + { url = "https://files.pythonhosted.org/packages/05/c0/b3be26a015601b822b97d9149ff8cb5ead58c66f981e04fedf4e762f4bd4/pyyaml-6.0.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8dc52c23056b9ddd46818a57b78404882310fb473d63f17b07d5c40421e47f8e", size = 761089, upload-time = "2025-09-25T21:32:17.56Z" }, + { url = "https://files.pythonhosted.org/packages/be/8e/98435a21d1d4b46590d5459a22d88128103f8da4c2d4cb8f14f2a96504e1/pyyaml-6.0.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:41715c910c881bc081f1e8872880d3c650acf13dfa8214bad49ed4cede7c34ea", size = 790181, upload-time = "2025-09-25T21:32:18.834Z" }, + { url = "https://files.pythonhosted.org/packages/74/93/7baea19427dcfbe1e5a372d81473250b379f04b1bd3c4c5ff825e2327202/pyyaml-6.0.3-cp312-cp312-win32.whl", hash = "sha256:96b533f0e99f6579b3d4d4995707cf36df9100d67e0c8303a0c55b27b5f99bc5", size = 137658, upload-time = "2025-09-25T21:32:20.209Z" }, + { url = "https://files.pythonhosted.org/packages/86/bf/899e81e4cce32febab4fb42bb97dcdf66bc135272882d1987881a4b519e9/pyyaml-6.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:5fcd34e47f6e0b794d17de1b4ff496c00986e1c83f7ab2fb8fcfe9616ff7477b", size = 154003, upload-time = "2025-09-25T21:32:21.167Z" }, + { url = "https://files.pythonhosted.org/packages/1a/08/67bd04656199bbb51dbed1439b7f27601dfb576fb864099c7ef0c3e55531/pyyaml-6.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:64386e5e707d03a7e172c0701abfb7e10f0fb753ee1d773128192742712a98fd", size = 140344, upload-time = "2025-09-25T21:32:22.617Z" }, +] + +[[package]] +name = "rapidfuzz" +version = "3.14.5" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/2c/21/ef6157213316e85790041254259907eb722e00b03480256c0545d98acd33/rapidfuzz-3.14.5.tar.gz", hash = "sha256:ba10ac57884ce82112f7ed910b67e7fb6072d8ef2c06e30dc63c0f604a112e0e", size = 57901753, upload-time = "2026-04-07T11:16:31.931Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4f/b1/d6d6e7737fe3d0eb2ac2ac337686420d538f83f28495acc3cc32201c0dbf/rapidfuzz-3.14.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:071d96b957a33b9296b9284b6350a0fb6d030b154a04efd7c15e56b98b79a517", size = 1953508, upload-time = "2026-04-07T11:13:37.733Z" }, + { url = "https://files.pythonhosted.org/packages/2b/7b/94c1c953ac818bdd88b43213a9d38e4a41e953b786af3c3b2444d4a8f96d/rapidfuzz-3.14.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:667f40fe9c81ad129b198d236881b00dd9e8314d9cc72d03c3e16bdfe5879051", size = 1160895, upload-time = "2026-04-07T11:13:39.278Z" }, + { url = "https://files.pythonhosted.org/packages/7f/60/a67a7ca7c2532c6c1a4b5cd797917780eed43798b82c98b6df734a086c95/rapidfuzz-3.14.5-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f9fff308486bbd2c8c24f25e8e152c7594d3fe8db265a2d6a1ce24d58671127f", size = 1382245, upload-time = "2026-04-07T11:13:41.054Z" }, + { url = "https://files.pythonhosted.org/packages/95/ff/a42c9ce9f9e90ceb5b51136e0b8e8e6e5113ba0b45d986effbd671e7dddf/rapidfuzz-3.14.5-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:dfa552338f51aec280f17b02d28bace1e162d1a84ccd80e3339a57f98aedb56b", size = 3163974, upload-time = "2026-04-07T11:13:42.662Z" }, + { url = "https://files.pythonhosted.org/packages/e3/3c/11e2d41075e6e48b7dad373631b379b7e40491f71d5412c5a98d3c58f60f/rapidfuzz-3.14.5-cp310-cp310-manylinux_2_39_riscv64.whl", hash = "sha256:068b3e965ca9d9ee4debe40001ae7c3938ba646308afd33cf0c66618147db65c", size = 1475540, upload-time = "2026-04-07T11:13:44.687Z" }, + { url = "https://files.pythonhosted.org/packages/29/fa/09be143dcc22c79f09cf90168a574725dbda49f02cbbd55d0447da8bec86/rapidfuzz-3.14.5-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:88b7d31ff1cc5e9bc0e4406e6b1fa00b6d37163d50bb58091e9b976ff1129faa", size = 2404128, upload-time = "2026-04-07T11:13:46.641Z" }, + { url = "https://files.pythonhosted.org/packages/32/f9/1aeb504cdcfde42881825e9c86f48238d4e01ba8a1530491e82eb17e5689/rapidfuzz-3.14.5-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:eacb434410b8d9ca99a8d42352ef085cf423e3c76c1f0b86be2fcba3bff2952c", size = 2508455, upload-time = "2026-04-07T11:13:48.726Z" }, + { url = "https://files.pythonhosted.org/packages/10/8e/b1b5eed8d887a29b0e18fd3222c46ca60fddfb528e7e1c41267ce42d5522/rapidfuzz-3.14.5-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:649712823f3abcdc48427147a5384fac15623ba435d0013959b52e6462521397", size = 4274060, upload-time = "2026-04-07T11:13:50.805Z" }, + { url = "https://files.pythonhosted.org/packages/e3/c4/7e5b0353693d4f47b8b0f96e941efc377cfb2034b67ef92d082ac4441a0f/rapidfuzz-3.14.5-cp310-cp310-win32.whl", hash = "sha256:13cb79c23ef5516e4c4e3830877be8b19aa75203636be1163d690d37803f6504", size = 1727457, upload-time = "2026-04-07T11:13:52.45Z" }, + { url = "https://files.pythonhosted.org/packages/d9/6e/f530a39b946fa71c009bc9c81fdb6b48a77bbc57ee8572ac0302b3bf6308/rapidfuzz-3.14.5-cp310-cp310-win_amd64.whl", hash = "sha256:f2073495a7f9b75e57e600747ac09510d67683fd64d3228e009740b7ef88f9fe", size = 1544657, upload-time = "2026-04-07T11:13:54.952Z" }, + { url = "https://files.pythonhosted.org/packages/bc/01/02fa075f9f59ff766d374fecbd042b3ac9782dcd5abc52d909a54f587eeb/rapidfuzz-3.14.5-cp310-cp310-win_arm64.whl", hash = "sha256:8166efddea49fdbc61185559f47593239e4794fd7c9044dd5a789d1a90af852d", size = 816587, upload-time = "2026-04-07T11:13:56.418Z" }, + { url = "https://files.pythonhosted.org/packages/e1/f9/3c41a7be8855803f4f6c713b472226a98d31d41869d98f64f4ca790510d6/rapidfuzz-3.14.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:e251126d48615e1f02b4a178f2cd0cd4f0332b8a019c01a2e10480f7552554b4", size = 1952372, upload-time = "2026-04-07T11:13:58.32Z" }, + { url = "https://files.pythonhosted.org/packages/9e/89/c2557e37531d03465193bff0ab9de70b468420a807d71a26a65100635459/rapidfuzz-3.14.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5ab449c9abd0d4e1f8145dce0798a4c822a1a1933d613c764a641bea88b8bdab", size = 1159782, upload-time = "2026-04-07T11:14:00.127Z" }, + { url = "https://files.pythonhosted.org/packages/1a/b2/ffeeb7eca1a897d51b998f4c0ef0281696c3b06abcca4f88f9def708ffe1/rapidfuzz-3.14.5-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:cb2829fedd672dd7107267189dabe2bbe07972801d636014417c6861eb89e358", size = 1383677, upload-time = "2026-04-07T11:14:01.696Z" }, + { url = "https://files.pythonhosted.org/packages/6b/d0/4539e42a2d596e068f7738f279638a4a74edd1fbb6f8594e2458058979c6/rapidfuzz-3.14.5-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3d50e5861872935fece391351cbb5ba21d1bced277cf5e1143d207a0a35f1925", size = 3168906, upload-time = "2026-04-07T11:14:03.29Z" }, + { url = "https://files.pythonhosted.org/packages/5e/1c/3ec897eb9d8b05308aa8ef6ae4ed64b088ad521a3f9d8ff469e7e97bc2b0/rapidfuzz-3.14.5-cp311-cp311-manylinux_2_39_riscv64.whl", hash = "sha256:7092a216728f80c960bd6b3807275d1ee318b168986bd5dc523349581d4890b8", size = 1478176, upload-time = "2026-04-07T11:14:04.94Z" }, + { url = "https://files.pythonhosted.org/packages/ab/ba/970c03a12ce20a5399e22afe9f8932fd4cd1265b8a8461d0e63b00eb4eae/rapidfuzz-3.14.5-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:9669753caef7fdc6529f6adcc5883ed98d65976445d9322e7dbdb6b697feee13", size = 2402441, upload-time = "2026-04-07T11:14:07.228Z" }, + { url = "https://files.pythonhosted.org/packages/81/93/61d351cae60c1d0e21ba5ff1a1015ad045539ed215da9d6e302204ed887a/rapidfuzz-3.14.5-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:823b1b9d9230809d8edcc18872770764bfe8ef4357995e16744047c8ccf0e489", size = 2511628, upload-time = "2026-04-07T11:14:09.234Z" }, + { url = "https://files.pythonhosted.org/packages/87/52/374d2d4f60fd98155142a869323aa221e30868cfa1f15171a0f64070c247/rapidfuzz-3.14.5-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f0b2af76b7e7060c09e1a0dfa9410eb19369cbe6164509bff2ef94094b54d2b6", size = 4275480, upload-time = "2026-04-07T11:14:11.332Z" }, + { url = "https://files.pythonhosted.org/packages/d8/04/82e7989bc9ec20a15b720a335c5cb6b0724bf6582013898f90a3280cfccd/rapidfuzz-3.14.5-cp311-cp311-win32.whl", hash = "sha256:c5801a89604c65ab4cc9e91b23bc4076d0ca80efd8c976fb63843d7879a85d7f", size = 1725627, upload-time = "2026-04-07T11:14:13.217Z" }, + { url = "https://files.pythonhosted.org/packages/b9/b5/eca8ac5609bc9bcb02bb6ff87fa5983cc92b8772d66a431556ab8a8c178f/rapidfuzz-3.14.5-cp311-cp311-win_amd64.whl", hash = "sha256:d7ca16637c0ede8243f84074044bd0b2335a0341421f8227c85756de2d18c819", size = 1545977, upload-time = "2026-04-07T11:14:14.766Z" }, + { url = "https://files.pythonhosted.org/packages/ca/e1/dbf318de28f65fa2cdd0a9dfbdee380f8199eb83b19259bc4f8592551b4e/rapidfuzz-3.14.5-cp311-cp311-win_arm64.whl", hash = "sha256:8c90cdf8516d9057e502aa6003cea71cf5ec27cc44699ca52412b502a04761bb", size = 816827, upload-time = "2026-04-07T11:14:16.788Z" }, + { url = "https://files.pythonhosted.org/packages/d3/e3/574435c6aafb80254c191ef40d7aca2cb2bb97a095ec9395e9fa59ac307a/rapidfuzz-3.14.5-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:0d3378f471ef440473a396ce2f8e97ee12f89a78b495540e0a5617bbfe895638", size = 1944601, upload-time = "2026-04-07T11:14:18.771Z" }, + { url = "https://files.pythonhosted.org/packages/d0/1f/fbad3102a255ecc112ce9a7e779bacab7fd14398217be8868dc9082ba363/rapidfuzz-3.14.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1e910eebca9fd0eba245c0555e764597e8a0cccb673a92da2dc2397050725f48", size = 1164293, upload-time = "2026-04-07T11:14:20.534Z" }, + { url = "https://files.pythonhosted.org/packages/88/37/a3eb7ff6121ed3a5f199a8c38cc86c8e481816f879cb0e0b738b078c9a7e/rapidfuzz-3.14.5-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:01550fe5f60fd176aa66b7611289d46dc4aa4b1b904874c7b6d1d54e581c5ec1", size = 1371999, upload-time = "2026-04-07T11:14:22.63Z" }, + { url = "https://files.pythonhosted.org/packages/79/72/97a9728c711c7c1b06e107d3f0623880fb4ef90e147ed13c551a1730e7cc/rapidfuzz-3.14.5-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:48bee0b91bebfaec41e1081e351000659ab7570cc4598d617aa04d5bf827f9e6", size = 3145715, upload-time = "2026-04-07T11:14:24.508Z" }, + { url = "https://files.pythonhosted.org/packages/ed/54/d5caabbea233ac90c286c87c260e49d7641467e87438a18d858e41c82e91/rapidfuzz-3.14.5-cp312-cp312-manylinux_2_39_riscv64.whl", hash = "sha256:7e580cb04ad849ae9b786fa21383c6b994b6e6c1444ad1cb9f22392759d72741", size = 1456304, upload-time = "2026-04-07T11:14:26.515Z" }, + { url = "https://files.pythonhosted.org/packages/fc/a7/2d1a81250ac8c01a0100c026018e76f0e7a097ff63e4c553e02a6938c6fb/rapidfuzz-3.14.5-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:09d6c9ba091854f07817055d795d604179c12a8f308ba4c7d56f3719dfea1646", size = 2389089, upload-time = "2026-04-07T11:14:28.635Z" }, + { url = "https://files.pythonhosted.org/packages/65/0d/c47c3872203ae88e6506997c0b576ad731f5261daa25d559be09c9756658/rapidfuzz-3.14.5-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:1e989f86113be66574113b9c7bdf4793f3f863d248e47d911b355e05ca6b6b10", size = 2493404, upload-time = "2026-04-07T11:14:30.577Z" }, + { url = "https://files.pythonhosted.org/packages/8f/2f/71e0a5a3130792146c8a200a2dd1e52aa16f7c1074012e17f2601eea9a90/rapidfuzz-3.14.5-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0ebd1a18e2e47bc0b292a07e6ed9c3642f8aaa672d12253885f599b50807a4f9", size = 4251709, upload-time = "2026-04-07T11:14:32.451Z" }, + { url = "https://files.pythonhosted.org/packages/86/45/d39874901abacef325adb5b34ae416817c8486dfb4fb87c7a9b74ec5b072/rapidfuzz-3.14.5-cp312-cp312-win32.whl", hash = "sha256:9981d38a703b86f0e315a3cd229fd1906fe1d91c989ed121fb975b3c849f89f5", size = 1710069, upload-time = "2026-04-07T11:14:34.37Z" }, + { url = "https://files.pythonhosted.org/packages/85/0b/f65572c53de8a1c704bda707f63a447b67bdbe95d7cdc70d18885e191df5/rapidfuzz-3.14.5-cp312-cp312-win_amd64.whl", hash = "sha256:d8375e3da319593389727c3187ccaf3e0e84199accc530866b8e0f2b79af05e9", size = 1540630, upload-time = "2026-04-07T11:14:36.287Z" }, + { url = "https://files.pythonhosted.org/packages/5e/c3/143be3a578f989758cae516f3270d5cbb49783a7bfdf57cc27a670e00456/rapidfuzz-3.14.5-cp312-cp312-win_arm64.whl", hash = "sha256:478b59bb018a6780d73f33e38d0b3ec5e968a6c1ed42876b993dd456b7aa20e8", size = 813137, upload-time = "2026-04-07T11:14:38.289Z" }, + { url = "https://files.pythonhosted.org/packages/d9/ee/e71853bf82846c5c2174b924b71d8e8099fb05ff87c958a720380b434ba3/rapidfuzz-3.14.5-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:578e6051f6d5e6200c259b47a103cf06bb875ab5814d17333fc0b5c290b22f4c", size = 1888603, upload-time = "2026-04-07T11:16:18.223Z" }, + { url = "https://files.pythonhosted.org/packages/36/82/40f67b730f32be2ebad9f62add1571c754f52249254b2e88af094b907eee/rapidfuzz-3.14.5-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:fbf1b8bb2695415b347f3727da1addca2acb82c9b97ac86bebf8b1bead1eb12d", size = 1120599, upload-time = "2026-04-07T11:16:20.682Z" }, + { url = "https://files.pythonhosted.org/packages/ef/9f/a3635cc4ec8fc6e14b46e7db1f7f8763d8c4bef33dcc124eea2e6cb2c8f3/rapidfuzz-3.14.5-pp311-pypy311_pp73-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8f4a8f5cc84c7ad6bffa0e9947b33eb343ad66e6b53e94fe54378a5508c5ed53", size = 1348524, upload-time = "2026-04-07T11:16:23.451Z" }, + { url = "https://files.pythonhosted.org/packages/cc/1b/2b229520f0b48464cfcd7aa758f74551d12c9bc4ab544022a60210aab064/rapidfuzz-3.14.5-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:97c6d85283629646fa87acc22c66b30ea9d4de7f6fdf887daa2e30fa041829b5", size = 3099302, upload-time = "2026-04-07T11:16:25.858Z" }, + { url = "https://files.pythonhosted.org/packages/aa/b5/363906b1064fc6fe611783a61764927bbd91919aaaabe8cba82151ca93ef/rapidfuzz-3.14.5-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:dfef96543ced67d9513a422755db422ae1dc34dade0a1485e0b43e7342ed3ebf", size = 1509889, upload-time = "2026-04-07T11:16:28.487Z" }, +] + +[[package]] +name = "rdflib" +version = "7.6.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "isodate", marker = "python_full_version < '3.11'" }, + { name = "pyparsing" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/98/f5/18bb77b7af9526add0c727a3b2048959847dc5fb030913e2918bf384fec3/rdflib-7.6.0.tar.gz", hash = "sha256:6c831288d5e4a5a7ece85d0ccde9877d512a3d0f02d7c06455d00d6d0ea379df", size = 4943826, upload-time = "2026-02-13T07:15:55.938Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/10/c2/6604a71269e0c1bd75656d5a001432d16f2cc5b8c057140ec797155c295e/rdflib-7.6.0-py3-none-any.whl", hash = "sha256:30c0a3ebf4c0e09215f066be7246794b6492e054e782d7ac2a34c9f70a15e0dd", size = 615416, upload-time = "2026-02-13T07:15:46.487Z" }, +] + +[[package]] +name = "referencing" +version = "0.37.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "rpds-py", version = "0.30.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "rpds-py", version = "2026.6.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/22/f5/df4e9027acead3ecc63e50fe1e36aca1523e1719559c499951bb4b53188f/referencing-0.37.0.tar.gz", hash = "sha256:44aefc3142c5b842538163acb373e24cce6632bd54bdb01b21ad5863489f50d8", size = 78036, upload-time = "2025-10-13T15:30:48.871Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2c/58/ca301544e1fa93ed4f80d724bf5b194f6e4b945841c5bfd555878eea9fcb/referencing-0.37.0-py3-none-any.whl", hash = "sha256:381329a9f99628c9069361716891d34ad94af76e461dcb0335825aecc7692231", size = 26766, upload-time = "2025-10-13T15:30:47.625Z" }, +] + +[[package]] +name = "regex" +version = "2026.7.19" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/20/98/04b13f1ddfb63158025291c02e03eb42fbb7acb51d091d541050eb4e35e8/regex-2026.7.19.tar.gz", hash = "sha256:7e77b324909c1617cbb4c668677e2c6ae13f44d7c1de0d4f15f2e3c10f3315b5", size = 416440, upload-time = "2026-07-19T00:19:48.923Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/24/13/bbf7d9d1887fe4a3693527c6caa232c197ea9da91f1212e9672eff60329d/regex-2026.7.19-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:555497390743af1a65045fa4527782d10ff5b88970359412baa4a1e628fe393b", size = 494009, upload-time = "2026-07-19T00:16:13.602Z" }, + { url = "https://files.pythonhosted.org/packages/a3/19/783688e75a2bec15d50aec0d5e7e317d363808bc82a6eb6750b897bfcd7b/regex-2026.7.19-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:343a4504e3fb688c47cad451221ca5d4814f42b1e16c0065bde9cbf7f473bd52", size = 295287, upload-time = "2026-07-19T00:16:15.702Z" }, + { url = "https://files.pythonhosted.org/packages/16/01/cefe4f051302ca298d3f3e79ed6dbd933ac84485b9515acdd6a52d70cef7/regex-2026.7.19-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5ebee1ee89c39c953baac6924fcde08c5bb427c4057510862f9d7c7bdb3d8665", size = 290633, upload-time = "2026-07-19T00:16:17.182Z" }, + { url = "https://files.pythonhosted.org/packages/ae/1e/1045ca2cabb12e8ec41ad0d138e9f3ff1eb079d30a6f51ccf7d709b44aad/regex-2026.7.19-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:062f8cb7a9739c4835d22bd96f370c59aba89f257adcfa53be3cc209e08d3ae0", size = 785300, upload-time = "2026-07-19T00:16:18.505Z" }, + { url = "https://files.pythonhosted.org/packages/d5/4a/20e5bca184e90bf1bd187efdb53363f4a7b7b34f01d54ced5740caf104bd/regex-2026.7.19-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:1123ef4211d763ee771d47916a1596e2f4915794f7aabdc1adcb20e4249a6951", size = 854079, upload-time = "2026-07-19T00:16:19.909Z" }, + { url = "https://files.pythonhosted.org/packages/09/9b/5a2e59678be3b24aa6a42b2c6d66a48daa212593e9f4096fe7ba577fa9b1/regex-2026.7.19-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:6e44c0e7c5664be20aee92085153150c0a7967310a73a43c0f832b7cd35d0dd3", size = 899496, upload-time = "2026-07-19T00:16:21.453Z" }, + { url = "https://files.pythonhosted.org/packages/48/9a/7317f14ed8ed9fd998d1978b4802b07bc4d79216353c435dbcc1ddd1301f/regex-2026.7.19-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:98c6ac18480fcdb33f35439183f1d2e79760ab41930309c6d951cb1f8e46694c", size = 793541, upload-time = "2026-07-19T00:16:22.991Z" }, + { url = "https://files.pythonhosted.org/packages/6f/53/833c2db3e274d3c191f4c42fe5bfa358e4c8b617d5d7312d31334965fc46/regex-2026.7.19-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4458124d71339f505bf1fb94f69fd1bb8fa9d2481eebfef27c10ef4f2b9e12f6", size = 785515, upload-time = "2026-07-19T00:16:24.654Z" }, + { url = "https://files.pythonhosted.org/packages/8d/b9/efb2f9fa151d71db09d4015e1fb92fee47416f01c12164836bbd23e2f3c2/regex-2026.7.19-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:fbf300e2070bb35038660b3be1be4b91b0024edb41517e6996320b49b92b4175", size = 769556, upload-time = "2026-07-19T00:16:26.207Z" }, + { url = "https://files.pythonhosted.org/packages/81/4d/45610c263f8eadb84e4a1fabd904d81d5176226faa9104ef498bf8a8b285/regex-2026.7.19-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:b2b506b1788df5fecd270a10d5e70a95fe77b87ea2b370a318043f6f5f817ee6", size = 774130, upload-time = "2026-07-19T00:16:27.786Z" }, + { url = "https://files.pythonhosted.org/packages/40/95/1b40d87c7a9e5480bec7a87bce9fd67fc3f14b5f106c8ee66d660249072f/regex-2026.7.19-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:52579c60a6078be70a0e49c81d6e56d677f34cd439af281a0083b8c7bc75c095", size = 848694, upload-time = "2026-07-19T00:16:29.412Z" }, + { url = "https://files.pythonhosted.org/packages/17/8b/bb45968addd5b394ef9cd9184bd9c65ade1a819dbb2b92b71ad52a0c7907/regex-2026.7.19-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:2955907b7157a6660f27079edf7e0229e9c9c5325c77a2ef6a890cba91efa6f0", size = 758505, upload-time = "2026-07-19T00:16:31.006Z" }, + { url = "https://files.pythonhosted.org/packages/bf/6f/33386c672fbf43e21602135a0f29a97ee251a483f007fe51d10e9b2dbc93/regex-2026.7.19-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:89dfee3319f5ae3f75ebd5c2445a809bb320252ba5529ffdafea4ef25d79cf1a", size = 836985, upload-time = "2026-07-19T00:16:32.459Z" }, + { url = "https://files.pythonhosted.org/packages/22/f1/9112b86e9bb075619862e8e42b604794389f1958faa68fb69bde505dd90e/regex-2026.7.19-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:3d3143f159261b1ce5b24c261c590e5913370c3200c5e9ebbb92b5aa5e111902", size = 782610, upload-time = "2026-07-19T00:16:33.857Z" }, + { url = "https://files.pythonhosted.org/packages/3a/f9/13d460d8a385ca0b0be9e6be80a90968b9293b3e30895543ad2d1d1653e4/regex-2026.7.19-cp310-cp310-win32.whl", hash = "sha256:64729333167c2dcaaa56a331d40ee097bd9c5617ffd51dabb09eaddafb1b532e", size = 266772, upload-time = "2026-07-19T00:16:35.194Z" }, + { url = "https://files.pythonhosted.org/packages/9f/90/29addd7a03e1aea402c1f31467e25c80caabc8c3735b88a23cf73b0aa9c2/regex-2026.7.19-cp310-cp310-win_amd64.whl", hash = "sha256:1c398716054621aa300b3d411f467dda903806c5da0df6945ab73982b8d115db", size = 277967, upload-time = "2026-07-19T00:16:36.847Z" }, + { url = "https://files.pythonhosted.org/packages/8c/ba/ecfce06fe66c122bc6f77ae284887a9282e4411fe1e6268c5266611ca054/regex-2026.7.19-cp310-cp310-win_arm64.whl", hash = "sha256:064f1760a5a4ade65c5419be23e782f29147528e8a66e0c42dd4cedb8d4e9fc6", size = 276963, upload-time = "2026-07-19T00:16:38.315Z" }, + { url = "https://files.pythonhosted.org/packages/05/e5/cef4de2bac939280b68d32adc659478845238a8274f2f79c465063f590ad/regex-2026.7.19-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ac777001cdfc28b72477d93c8564bb7583081ea8fb45cdca3d568e0a4f87183c", size = 494012, upload-time = "2026-07-19T00:16:39.927Z" }, + { url = "https://files.pythonhosted.org/packages/ff/87/e86f51eb117457bb7803132ffe5cb6e2841e2b5bea4cc85d397f3c6e257d/regex-2026.7.19-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:59787bd5f8c70aa339084e961d2996b53fbdeab4d5393bba5c1fe1fc32e02bae", size = 295281, upload-time = "2026-07-19T00:16:41.433Z" }, + { url = "https://files.pythonhosted.org/packages/41/2e/2360c41d8080a3d9ec7e5c90fad6eab3b50192869d10e9a5609e48c8177b/regex-2026.7.19-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:90c633e7e8d6bf4e992b8b36ce69e018f834b641dd6de8cea6d78c06ffa119c5", size = 290615, upload-time = "2026-07-19T00:16:43.058Z" }, + { url = "https://files.pythonhosted.org/packages/cf/69/b65ba4344efbc771b28fe5dde84cbbb6c8f9551165952fe78def5b9dde6a/regex-2026.7.19-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:87ccab0db8d5f4fbb0272642113c1adb2ffc698c16d3a0944580222331fa7a20", size = 791804, upload-time = "2026-07-19T00:16:44.662Z" }, + { url = "https://files.pythonhosted.org/packages/81/b6/a40dfa0dc6224b36f620c00296eacc830489cbf8c2837b6750dfe6170375/regex-2026.7.19-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:9e50d748a32da622f256e8d505867f5d3c43a837c6a9f0efb149655fadd1042a", size = 861723, upload-time = "2026-07-19T00:16:46.412Z" }, + { url = "https://files.pythonhosted.org/packages/e3/02/735991dee71abd83196a7962f7ed8bf5aa05720ff06e2d3ff896a85e2bbb/regex-2026.7.19-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:bf1516fe58fc104f39b2d1dbe2d5e27d0cd45c4be2e42ba6ee0cc763701ec3c7", size = 905932, upload-time = "2026-07-19T00:16:47.956Z" }, + { url = "https://files.pythonhosted.org/packages/45/6c/e7098d8b846ccdbf431d8c081b61e496526a27a28094ed09e0dce21b3f54/regex-2026.7.19-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:09f3e5287f94f17b709dc9a9e70865855feee835c861613be144218ce4ca82cc", size = 801407, upload-time = "2026-07-19T00:16:49.43Z" }, + { url = "https://files.pythonhosted.org/packages/8a/18/34b69274e2649bcc7d9b089c2b2983fb2632d8ecf667e359593be9072e79/regex-2026.7.19-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:6383cd2ed53a646c659ba1fe65727db76437fdaa069e697a0b44a51d5843d864", size = 774448, upload-time = "2026-07-19T00:16:51.352Z" }, + { url = "https://files.pythonhosted.org/packages/bb/e6/0a72247d025585fd3800b98e040b84d562a88af6303347100484849f4f01/regex-2026.7.19-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:09d3007fc76249a83cdd33de160d50e6cb77f54e09d8fa9e7148e10607ce24af", size = 783297, upload-time = "2026-07-19T00:16:53.071Z" }, + { url = "https://files.pythonhosted.org/packages/b1/aa/c4f65ae7dd02a36b323a70c4cff326e1f3442361aaebc9311100a130d54f/regex-2026.7.19-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:6f8c6e7a1cfa3dc9d0ee2de0e65e834537fa29992cc3976ffec914afc35c5dd5", size = 854736, upload-time = "2026-07-19T00:16:54.607Z" }, + { url = "https://files.pythonhosted.org/packages/62/c3/668082bcc817b9e694189b84997aeba7385b7779faa6711788679c482e35/regex-2026.7.19-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:b2ea4a3e8357be8849e833beeae757ac3c7a6b3fc055c03c808a53c91ad30d82", size = 763298, upload-time = "2026-07-19T00:16:56.289Z" }, + { url = "https://files.pythonhosted.org/packages/4b/fb/2d07ad555e7af88aa5f867fdafa47a8d945ee237c20af3ebceb46a820835/regex-2026.7.19-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:80115dd39481fd3a4b4080220799dbcacb921a844de4b827264ececacbe17c78", size = 844430, upload-time = "2026-07-19T00:16:57.933Z" }, + { url = "https://files.pythonhosted.org/packages/51/15/c82a471fe3dce56f03745635b43aa456c40dc0db089e07ef148b331507d1/regex-2026.7.19-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:d6ce43a0269d68cee79a7d1ade7def53c20f8f2a047b92d7b5d5bcc73ae88327", size = 789683, upload-time = "2026-07-19T00:16:59.583Z" }, + { url = "https://files.pythonhosted.org/packages/b5/f4/7532a2c59d56f5398902c20de60f0c9a5d1cd364e42a051b48e1b210be7b/regex-2026.7.19-cp311-cp311-win32.whl", hash = "sha256:9be2a6647740dd3cca6acb24e87f03d7632cd280dbce9bbe40c26353a215a45d", size = 266778, upload-time = "2026-07-19T00:17:01.032Z" }, + { url = "https://files.pythonhosted.org/packages/83/2b/cf1bc631db154eb95520d9d5dbc2371ff77a0f014bbf7d748fed8496aa63/regex-2026.7.19-cp311-cp311-win_amd64.whl", hash = "sha256:8d3469c91dd92ee41b7c95280edbd975ef1ba9195086686623a1c6e8935ce965", size = 277983, upload-time = "2026-07-19T00:17:02.571Z" }, + { url = "https://files.pythonhosted.org/packages/8d/bd/56ceaf170e875d5a6761bf2bfd0d040f1cacc896850d5e40cb29b11bbd06/regex-2026.7.19-cp311-cp311-win_arm64.whl", hash = "sha256:36aacfb15faaff3ced55afbf35ec72f50d4aee22082c4f7fe0573a33e2fca92e", size = 276961, upload-time = "2026-07-19T00:17:04.135Z" }, + { url = "https://files.pythonhosted.org/packages/3b/b9/d11d7e501ac8fd7d617684423ebb9561e0b998481c1e4cbc0cb212c5d74a/regex-2026.7.19-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:2cc3460cedf7579948486eab03bc9ad7089df4d7281c0f47f4afe03e8d13f02d", size = 496778, upload-time = "2026-07-19T00:17:05.677Z" }, + { url = "https://files.pythonhosted.org/packages/3f/a9/a5ab6f312f24318019170dc485d5421fe4f89e43a98640da50d95a8a7041/regex-2026.7.19-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:0e9554c8785eac5cffe6300f69a91f58ba72bc88a5f8d661235ad7c6aa5b8ccd", size = 297122, upload-time = "2026-07-19T00:17:07.59Z" }, + { url = "https://files.pythonhosted.org/packages/b3/63/4cab4d7f2d384a144d420b763d97674cb70619c878ea6fcd7640d0e62143/regex-2026.7.19-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:d7da47a0f248977f08e2cb659ff3c17ddc13a4d39b3a7baa0a81bf5b415430f6", size = 292009, upload-time = "2026-07-19T00:17:09.648Z" }, + { url = "https://files.pythonhosted.org/packages/22/85/102a81b218298957d4ea7d2f084fae537a71add9d6ff93c8e67284c5f45e/regex-2026.7.19-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:93db40c8de0815baab96a06e08a984bac71f989d13bab789e382158c5d426797", size = 796708, upload-time = "2026-07-19T00:17:11.542Z" }, + { url = "https://files.pythonhosted.org/packages/78/b5/dc136af5629938a037cd2b304c12240e132ec92f38be8ff9cc89af2a1f2d/regex-2026.7.19-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:66bd62c59a5427746e8c44becae1d9b99d22fb13f30f492083dfb9ad7c45cc18", size = 865651, upload-time = "2026-07-19T00:17:13.312Z" }, + { url = "https://files.pythonhosted.org/packages/e0/75/67402ae3cd9c8c988a4c805d15ee3eef015e7ca4cb112cf3e640fc1f4153/regex-2026.7.19-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:1649eb39fcc9ea80c4d2f110fde2b8ab2aef3877b98f02ab9b14e961f418c511", size = 911756, upload-time = "2026-07-19T00:17:15.015Z" }, + { url = "https://files.pythonhosted.org/packages/2a/8e/096d00c7c480ef2ff4265349b14e2261d4ab787ba1f74e2e80d1c58079c3/regex-2026.7.19-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9dce8ec9695f531a1b8a6f314fd4b393adcccf2ea861db480cdf97a301d01a68", size = 801798, upload-time = "2026-07-19T00:17:17.208Z" }, + { url = "https://files.pythonhosted.org/packages/f0/41/e7ecac6edb5722417f85cc67eaf386322fbe8acf6918ec2fdc37c20dd9d0/regex-2026.7.19-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:3080a7fd38ef049bd489e01c970c97dd84ff446a885b0f1f6b26d9b1ad13ce11", size = 776933, upload-time = "2026-07-19T00:17:19.347Z" }, + { url = "https://files.pythonhosted.org/packages/6f/69/03c9b3f058d66403e0ca2c938696e81d51cd4c6d47ec5265f02f96948d9a/regex-2026.7.19-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1d793a7988e04fcb1e2e135567443d82173225d657419ec09414a9b5a145b986", size = 784338, upload-time = "2026-07-19T00:17:21.057Z" }, + { url = "https://files.pythonhosted.org/packages/f6/f7/b38ab3d43f284afbb618fcd15d0e77eb786ae461ce1f6bc7494619ddc0f2/regex-2026.7.19-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:e8b0abe7d870f53ca5143895fef7d1041a0c831a140d3dc2c760dd7ba25d4a8b", size = 860452, upload-time = "2026-07-19T00:17:23.119Z" }, + { url = "https://files.pythonhosted.org/packages/15/5c/ff60ef0571121714f3cf9920bc183071e384a10b556d042e0fdb06cc07a5/regex-2026.7.19-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:4e5413bd5f13d3a4e3539ca98f70f75e7fca92518dd7f117f030ebedd10b60cb", size = 765958, upload-time = "2026-07-19T00:17:24.81Z" }, + { url = "https://files.pythonhosted.org/packages/aa/0f/bd34021162c0ab47f9a315bd56cd5642e920c8e5668a75ef6c6a6fca590d/regex-2026.7.19-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:73b133a9e6fb512858e7f065e96f1180aa46646bc74a83aea62f1d314f3dd035", size = 851765, upload-time = "2026-07-19T00:17:26.993Z" }, + { url = "https://files.pythonhosted.org/packages/2a/20/a2ca43edade0595cccfdc98636739f536d9e26898e7dbddc2b9e98898953/regex-2026.7.19-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:dbe6493fbd27321b1d1f2dd4f5c7e5bd4d8b1d7cab7f32fd67db3d0b2ed8248a", size = 789714, upload-time = "2026-07-19T00:17:28.699Z" }, + { url = "https://files.pythonhosted.org/packages/5d/47/e02db4015d424fc83c00ea0ac8c5e5ec14397943de9abf909d5ce3a25931/regex-2026.7.19-cp312-cp312-win32.whl", hash = "sha256:ddd67571c10869f65a5d7dde536d1e066e306cc90de57d7de4d5f34802428bb5", size = 267157, upload-time = "2026-07-19T00:17:31.051Z" }, + { url = "https://files.pythonhosted.org/packages/08/8e/c780c131f79b42ed22d1bd7da4096c2c35f813e835acd02ef0f018bd892c/regex-2026.7.19-cp312-cp312-win_amd64.whl", hash = "sha256:e30d40268a28d54ce0437031750497004c22602b8e3ab891f759b795a003b312", size = 277777, upload-time = "2026-07-19T00:17:32.848Z" }, + { url = "https://files.pythonhosted.org/packages/3e/4c/e4d7e086449bdf379d89774bf1f89dc4a41943f3c5a6125a03905b34b5fb/regex-2026.7.19-cp312-cp312-win_arm64.whl", hash = "sha256:de9208bb427130c82a5dbfd104f92c8876fc9559278c880b3002755bbbe9c83d", size = 277136, upload-time = "2026-07-19T00:17:34.803Z" }, +] + +[[package]] +name = "requests" +version = "2.34.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "charset-normalizer" }, + { name = "idna" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ac/c3/e2a2b89f2d3e2179abd6d00ebd70bff6273f37fb3e0cc209f48b39d00cbf/requests-2.34.2.tar.gz", hash = "sha256:f288924cae4e29463698d6d60bc6a4da69c89185ad1e0bcc4104f584e960b9ed", size = 142856, upload-time = "2026-05-14T19:25:27.735Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a0/f4/c67b0b3f1b9245e8d266f0f112c500d50e5b4e83cb6f3b71b6528104182a/requests-2.34.2-py3-none-any.whl", hash = "sha256:2a0d60c172f83ac6ab31e4554906c0f3b3588d37b5cb939b1c061f4907e278e0", size = 73075, upload-time = "2026-05-14T19:25:26.443Z" }, +] + +[[package]] +name = "rfc3986" +version = "1.5.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/79/30/5b1b6c28c105629cc12b33bdcbb0b11b5bb1880c6cfbd955f9e792921aa8/rfc3986-1.5.0.tar.gz", hash = "sha256:270aaf10d87d0d4e095063c65bf3ddbc6ee3d0b226328ce21e036f946e421835", size = 49378, upload-time = "2021-05-07T23:29:27.183Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c4/e5/63ca2c4edf4e00657584608bee1001302bbf8c5f569340b78304f2f446cb/rfc3986-1.5.0-py2.py3-none-any.whl", hash = "sha256:a86d6e1f5b1dc238b218b012df0aa79409667bb209e58da56d0b94704e712a97", size = 31976, upload-time = "2021-05-07T23:29:25.611Z" }, +] + +[[package]] +name = "rpds-py" +version = "0.30.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.11'", +] +sdist = { url = "https://files.pythonhosted.org/packages/20/af/3f2f423103f1113b36230496629986e0ef7e199d2aa8392452b484b38ced/rpds_py-0.30.0.tar.gz", hash = "sha256:dd8ff7cf90014af0c0f787eea34794ebf6415242ee1d6fa91eaba725cc441e84", size = 69469, upload-time = "2025-11-30T20:24:38.837Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/06/0c/0c411a0ec64ccb6d104dcabe0e713e05e153a9a2c3c2bd2b32ce412166fe/rpds_py-0.30.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:679ae98e00c0e8d68a7fda324e16b90fd5260945b45d3b824c892cec9eea3288", size = 370490, upload-time = "2025-11-30T20:21:33.256Z" }, + { url = "https://files.pythonhosted.org/packages/19/6a/4ba3d0fb7297ebae71171822554abe48d7cab29c28b8f9f2c04b79988c05/rpds_py-0.30.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:4cc2206b76b4f576934f0ed374b10d7ca5f457858b157ca52064bdfc26b9fc00", size = 359751, upload-time = "2025-11-30T20:21:34.591Z" }, + { url = "https://files.pythonhosted.org/packages/cd/7c/e4933565ef7f7a0818985d87c15d9d273f1a649afa6a52ea35ad011195ea/rpds_py-0.30.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:389a2d49eded1896c3d48b0136ead37c48e221b391c052fba3f4055c367f60a6", size = 389696, upload-time = "2025-11-30T20:21:36.122Z" }, + { url = "https://files.pythonhosted.org/packages/5e/01/6271a2511ad0815f00f7ed4390cf2567bec1d4b1da39e2c27a41e6e3b4de/rpds_py-0.30.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:32c8528634e1bf7121f3de08fa85b138f4e0dc47657866630611b03967f041d7", size = 403136, upload-time = "2025-11-30T20:21:37.728Z" }, + { url = "https://files.pythonhosted.org/packages/55/64/c857eb7cd7541e9b4eee9d49c196e833128a55b89a9850a9c9ac33ccf897/rpds_py-0.30.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f207f69853edd6f6700b86efb84999651baf3789e78a466431df1331608e5324", size = 524699, upload-time = "2025-11-30T20:21:38.92Z" }, + { url = "https://files.pythonhosted.org/packages/9c/ed/94816543404078af9ab26159c44f9e98e20fe47e2126d5d32c9d9948d10a/rpds_py-0.30.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:67b02ec25ba7a9e8fa74c63b6ca44cf5707f2fbfadae3ee8e7494297d56aa9df", size = 412022, upload-time = "2025-11-30T20:21:40.407Z" }, + { url = "https://files.pythonhosted.org/packages/61/b5/707f6cf0066a6412aacc11d17920ea2e19e5b2f04081c64526eb35b5c6e7/rpds_py-0.30.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0c0e95f6819a19965ff420f65578bacb0b00f251fefe2c8b23347c37174271f3", size = 390522, upload-time = "2025-11-30T20:21:42.17Z" }, + { url = "https://files.pythonhosted.org/packages/13/4e/57a85fda37a229ff4226f8cbcf09f2a455d1ed20e802ce5b2b4a7f5ed053/rpds_py-0.30.0-cp310-cp310-manylinux_2_31_riscv64.whl", hash = "sha256:a452763cc5198f2f98898eb98f7569649fe5da666c2dc6b5ddb10fde5a574221", size = 404579, upload-time = "2025-11-30T20:21:43.769Z" }, + { url = "https://files.pythonhosted.org/packages/f9/da/c9339293513ec680a721e0e16bf2bac3db6e5d7e922488de471308349bba/rpds_py-0.30.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e0b65193a413ccc930671c55153a03ee57cecb49e6227204b04fae512eb657a7", size = 421305, upload-time = "2025-11-30T20:21:44.994Z" }, + { url = "https://files.pythonhosted.org/packages/f9/be/522cb84751114f4ad9d822ff5a1aa3c98006341895d5f084779b99596e5c/rpds_py-0.30.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:858738e9c32147f78b3ac24dc0edb6610000e56dc0f700fd5f651d0a0f0eb9ff", size = 572503, upload-time = "2025-11-30T20:21:46.91Z" }, + { url = "https://files.pythonhosted.org/packages/a2/9b/de879f7e7ceddc973ea6e4629e9b380213a6938a249e94b0cdbcc325bb66/rpds_py-0.30.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:da279aa314f00acbb803da1e76fa18666778e8a8f83484fba94526da5de2cba7", size = 598322, upload-time = "2025-11-30T20:21:48.709Z" }, + { url = "https://files.pythonhosted.org/packages/48/ac/f01fc22efec3f37d8a914fc1b2fb9bcafd56a299edbe96406f3053edea5a/rpds_py-0.30.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:7c64d38fb49b6cdeda16ab49e35fe0da2e1e9b34bc38bd78386530f218b37139", size = 560792, upload-time = "2025-11-30T20:21:50.024Z" }, + { url = "https://files.pythonhosted.org/packages/e2/da/4e2b19d0f131f35b6146425f846563d0ce036763e38913d917187307a671/rpds_py-0.30.0-cp310-cp310-win32.whl", hash = "sha256:6de2a32a1665b93233cde140ff8b3467bdb9e2af2b91079f0333a0974d12d464", size = 221901, upload-time = "2025-11-30T20:21:51.32Z" }, + { url = "https://files.pythonhosted.org/packages/96/cb/156d7a5cf4f78a7cc571465d8aec7a3c447c94f6749c5123f08438bcf7bc/rpds_py-0.30.0-cp310-cp310-win_amd64.whl", hash = "sha256:1726859cd0de969f88dc8673bdd954185b9104e05806be64bcd87badbe313169", size = 235823, upload-time = "2025-11-30T20:21:52.505Z" }, + { url = "https://files.pythonhosted.org/packages/4d/6e/f964e88b3d2abee2a82c1ac8366da848fce1c6d834dc2132c3fda3970290/rpds_py-0.30.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:a2bffea6a4ca9f01b3f8e548302470306689684e61602aa3d141e34da06cf425", size = 370157, upload-time = "2025-11-30T20:21:53.789Z" }, + { url = "https://files.pythonhosted.org/packages/94/ba/24e5ebb7c1c82e74c4e4f33b2112a5573ddc703915b13a073737b59b86e0/rpds_py-0.30.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:dc4f992dfe1e2bc3ebc7444f6c7051b4bc13cd8e33e43511e8ffd13bf407010d", size = 359676, upload-time = "2025-11-30T20:21:55.475Z" }, + { url = "https://files.pythonhosted.org/packages/84/86/04dbba1b087227747d64d80c3b74df946b986c57af0a9f0c98726d4d7a3b/rpds_py-0.30.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:422c3cb9856d80b09d30d2eb255d0754b23e090034e1deb4083f8004bd0761e4", size = 389938, upload-time = "2025-11-30T20:21:57.079Z" }, + { url = "https://files.pythonhosted.org/packages/42/bb/1463f0b1722b7f45431bdd468301991d1328b16cffe0b1c2918eba2c4eee/rpds_py-0.30.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:07ae8a593e1c3c6b82ca3292efbe73c30b61332fd612e05abee07c79359f292f", size = 402932, upload-time = "2025-11-30T20:21:58.47Z" }, + { url = "https://files.pythonhosted.org/packages/99/ee/2520700a5c1f2d76631f948b0736cdf9b0acb25abd0ca8e889b5c62ac2e3/rpds_py-0.30.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:12f90dd7557b6bd57f40abe7747e81e0c0b119bef015ea7726e69fe550e394a4", size = 525830, upload-time = "2025-11-30T20:21:59.699Z" }, + { url = "https://files.pythonhosted.org/packages/e0/ad/bd0331f740f5705cc555a5e17fdf334671262160270962e69a2bdef3bf76/rpds_py-0.30.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:99b47d6ad9a6da00bec6aabe5a6279ecd3c06a329d4aa4771034a21e335c3a97", size = 412033, upload-time = "2025-11-30T20:22:00.991Z" }, + { url = "https://files.pythonhosted.org/packages/f8/1e/372195d326549bb51f0ba0f2ecb9874579906b97e08880e7a65c3bef1a99/rpds_py-0.30.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:33f559f3104504506a44bb666b93a33f5d33133765b0c216a5bf2f1e1503af89", size = 390828, upload-time = "2025-11-30T20:22:02.723Z" }, + { url = "https://files.pythonhosted.org/packages/ab/2b/d88bb33294e3e0c76bc8f351a3721212713629ffca1700fa94979cb3eae8/rpds_py-0.30.0-cp311-cp311-manylinux_2_31_riscv64.whl", hash = "sha256:946fe926af6e44f3697abbc305ea168c2c31d3e3ef1058cf68f379bf0335a78d", size = 404683, upload-time = "2025-11-30T20:22:04.367Z" }, + { url = "https://files.pythonhosted.org/packages/50/32/c759a8d42bcb5289c1fac697cd92f6fe01a018dd937e62ae77e0e7f15702/rpds_py-0.30.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:495aeca4b93d465efde585977365187149e75383ad2684f81519f504f5c13038", size = 421583, upload-time = "2025-11-30T20:22:05.814Z" }, + { url = "https://files.pythonhosted.org/packages/2b/81/e729761dbd55ddf5d84ec4ff1f47857f4374b0f19bdabfcf929164da3e24/rpds_py-0.30.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d9a0ca5da0386dee0655b4ccdf46119df60e0f10da268d04fe7cc87886872ba7", size = 572496, upload-time = "2025-11-30T20:22:07.713Z" }, + { url = "https://files.pythonhosted.org/packages/14/f6/69066a924c3557c9c30baa6ec3a0aa07526305684c6f86c696b08860726c/rpds_py-0.30.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:8d6d1cc13664ec13c1b84241204ff3b12f9bb82464b8ad6e7a5d3486975c2eed", size = 598669, upload-time = "2025-11-30T20:22:09.312Z" }, + { url = "https://files.pythonhosted.org/packages/5f/48/905896b1eb8a05630d20333d1d8ffd162394127b74ce0b0784ae04498d32/rpds_py-0.30.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3896fa1be39912cf0757753826bc8bdc8ca331a28a7c4ae46b7a21280b06bb85", size = 561011, upload-time = "2025-11-30T20:22:11.309Z" }, + { url = "https://files.pythonhosted.org/packages/22/16/cd3027c7e279d22e5eb431dd3c0fbc677bed58797fe7581e148f3f68818b/rpds_py-0.30.0-cp311-cp311-win32.whl", hash = "sha256:55f66022632205940f1827effeff17c4fa7ae1953d2b74a8581baaefb7d16f8c", size = 221406, upload-time = "2025-11-30T20:22:13.101Z" }, + { url = "https://files.pythonhosted.org/packages/fa/5b/e7b7aa136f28462b344e652ee010d4de26ee9fd16f1bfd5811f5153ccf89/rpds_py-0.30.0-cp311-cp311-win_amd64.whl", hash = "sha256:a51033ff701fca756439d641c0ad09a41d9242fa69121c7d8769604a0a629825", size = 236024, upload-time = "2025-11-30T20:22:14.853Z" }, + { url = "https://files.pythonhosted.org/packages/14/a6/364bba985e4c13658edb156640608f2c9e1d3ea3c81b27aa9d889fff0e31/rpds_py-0.30.0-cp311-cp311-win_arm64.whl", hash = "sha256:47b0ef6231c58f506ef0b74d44e330405caa8428e770fec25329ed2cb971a229", size = 229069, upload-time = "2025-11-30T20:22:16.577Z" }, + { url = "https://files.pythonhosted.org/packages/03/e7/98a2f4ac921d82f33e03f3835f5bf3a4a40aa1bfdc57975e74a97b2b4bdd/rpds_py-0.30.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:a161f20d9a43006833cd7068375a94d035714d73a172b681d8881820600abfad", size = 375086, upload-time = "2025-11-30T20:22:17.93Z" }, + { url = "https://files.pythonhosted.org/packages/4d/a1/bca7fd3d452b272e13335db8d6b0b3ecde0f90ad6f16f3328c6fb150c889/rpds_py-0.30.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6abc8880d9d036ecaafe709079969f56e876fcf107f7a8e9920ba6d5a3878d05", size = 359053, upload-time = "2025-11-30T20:22:19.297Z" }, + { url = "https://files.pythonhosted.org/packages/65/1c/ae157e83a6357eceff62ba7e52113e3ec4834a84cfe07fa4b0757a7d105f/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca28829ae5f5d569bb62a79512c842a03a12576375d5ece7d2cadf8abe96ec28", size = 390763, upload-time = "2025-11-30T20:22:21.661Z" }, + { url = "https://files.pythonhosted.org/packages/d4/36/eb2eb8515e2ad24c0bd43c3ee9cd74c33f7ca6430755ccdb240fd3144c44/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a1010ed9524c73b94d15919ca4d41d8780980e1765babf85f9a2f90d247153dd", size = 408951, upload-time = "2025-11-30T20:22:23.408Z" }, + { url = "https://files.pythonhosted.org/packages/d6/65/ad8dc1784a331fabbd740ef6f71ce2198c7ed0890dab595adb9ea2d775a1/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f8d1736cfb49381ba528cd5baa46f82fdc65c06e843dab24dd70b63d09121b3f", size = 514622, upload-time = "2025-11-30T20:22:25.16Z" }, + { url = "https://files.pythonhosted.org/packages/63/8e/0cfa7ae158e15e143fe03993b5bcd743a59f541f5952e1546b1ac1b5fd45/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d948b135c4693daff7bc2dcfc4ec57237a29bd37e60c2fabf5aff2bbacf3e2f1", size = 414492, upload-time = "2025-11-30T20:22:26.505Z" }, + { url = "https://files.pythonhosted.org/packages/60/1b/6f8f29f3f995c7ffdde46a626ddccd7c63aefc0efae881dc13b6e5d5bb16/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47f236970bccb2233267d89173d3ad2703cd36a0e2a6e92d0560d333871a3d23", size = 394080, upload-time = "2025-11-30T20:22:27.934Z" }, + { url = "https://files.pythonhosted.org/packages/6d/d5/a266341051a7a3ca2f4b750a3aa4abc986378431fc2da508c5034d081b70/rpds_py-0.30.0-cp312-cp312-manylinux_2_31_riscv64.whl", hash = "sha256:2e6ecb5a5bcacf59c3f912155044479af1d0b6681280048b338b28e364aca1f6", size = 408680, upload-time = "2025-11-30T20:22:29.341Z" }, + { url = "https://files.pythonhosted.org/packages/10/3b/71b725851df9ab7a7a4e33cf36d241933da66040d195a84781f49c50490c/rpds_py-0.30.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a8fa71a2e078c527c3e9dc9fc5a98c9db40bcc8a92b4e8858e36d329f8684b51", size = 423589, upload-time = "2025-11-30T20:22:31.469Z" }, + { url = "https://files.pythonhosted.org/packages/00/2b/e59e58c544dc9bd8bd8384ecdb8ea91f6727f0e37a7131baeff8d6f51661/rpds_py-0.30.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:73c67f2db7bc334e518d097c6d1e6fed021bbc9b7d678d6cc433478365d1d5f5", size = 573289, upload-time = "2025-11-30T20:22:32.997Z" }, + { url = "https://files.pythonhosted.org/packages/da/3e/a18e6f5b460893172a7d6a680e86d3b6bc87a54c1f0b03446a3c8c7b588f/rpds_py-0.30.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:5ba103fb455be00f3b1c2076c9d4264bfcb037c976167a6047ed82f23153f02e", size = 599737, upload-time = "2025-11-30T20:22:34.419Z" }, + { url = "https://files.pythonhosted.org/packages/5c/e2/714694e4b87b85a18e2c243614974413c60aa107fd815b8cbc42b873d1d7/rpds_py-0.30.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:7cee9c752c0364588353e627da8a7e808a66873672bcb5f52890c33fd965b394", size = 563120, upload-time = "2025-11-30T20:22:35.903Z" }, + { url = "https://files.pythonhosted.org/packages/6f/ab/d5d5e3bcedb0a77f4f613706b750e50a5a3ba1c15ccd3665ecc636c968fd/rpds_py-0.30.0-cp312-cp312-win32.whl", hash = "sha256:1ab5b83dbcf55acc8b08fc62b796ef672c457b17dbd7820a11d6c52c06839bdf", size = 223782, upload-time = "2025-11-30T20:22:37.271Z" }, + { url = "https://files.pythonhosted.org/packages/39/3b/f786af9957306fdc38a74cef405b7b93180f481fb48453a114bb6465744a/rpds_py-0.30.0-cp312-cp312-win_amd64.whl", hash = "sha256:a090322ca841abd453d43456ac34db46e8b05fd9b3b4ac0c78bcde8b089f959b", size = 240463, upload-time = "2025-11-30T20:22:39.021Z" }, + { url = "https://files.pythonhosted.org/packages/f3/d2/b91dc748126c1559042cfe41990deb92c4ee3e2b415f6b5234969ffaf0cc/rpds_py-0.30.0-cp312-cp312-win_arm64.whl", hash = "sha256:669b1805bd639dd2989b281be2cfd951c6121b65e729d9b843e9639ef1fd555e", size = 230868, upload-time = "2025-11-30T20:22:40.493Z" }, + { url = "https://files.pythonhosted.org/packages/69/71/3f34339ee70521864411f8b6992e7ab13ac30d8e4e3309e07c7361767d91/rpds_py-0.30.0-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:c2262bdba0ad4fc6fb5545660673925c2d2a5d9e2e0fb603aad545427be0fc58", size = 372292, upload-time = "2025-11-30T20:24:16.537Z" }, + { url = "https://files.pythonhosted.org/packages/57/09/f183df9b8f2d66720d2ef71075c59f7e1b336bec7ee4c48f0a2b06857653/rpds_py-0.30.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:ee6af14263f25eedc3bb918a3c04245106a42dfd4f5c2285ea6f997b1fc3f89a", size = 362128, upload-time = "2025-11-30T20:24:18.086Z" }, + { url = "https://files.pythonhosted.org/packages/7a/68/5c2594e937253457342e078f0cc1ded3dd7b2ad59afdbf2d354869110a02/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3adbb8179ce342d235c31ab8ec511e66c73faa27a47e076ccc92421add53e2bb", size = 391542, upload-time = "2025-11-30T20:24:20.092Z" }, + { url = "https://files.pythonhosted.org/packages/49/5c/31ef1afd70b4b4fbdb2800249f34c57c64beb687495b10aec0365f53dfc4/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:250fa00e9543ac9b97ac258bd37367ff5256666122c2d0f2bc97577c60a1818c", size = 404004, upload-time = "2025-11-30T20:24:22.231Z" }, + { url = "https://files.pythonhosted.org/packages/e3/63/0cfbea38d05756f3440ce6534d51a491d26176ac045e2707adc99bb6e60a/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9854cf4f488b3d57b9aaeb105f06d78e5529d3145b1e4a41750167e8c213c6d3", size = 527063, upload-time = "2025-11-30T20:24:24.302Z" }, + { url = "https://files.pythonhosted.org/packages/42/e6/01e1f72a2456678b0f618fc9a1a13f882061690893c192fcad9f2926553a/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:993914b8e560023bc0a8bf742c5f303551992dcb85e247b1e5c7f4a7d145bda5", size = 413099, upload-time = "2025-11-30T20:24:25.916Z" }, + { url = "https://files.pythonhosted.org/packages/b8/25/8df56677f209003dcbb180765520c544525e3ef21ea72279c98b9aa7c7fb/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58edca431fb9b29950807e301826586e5bbf24163677732429770a697ffe6738", size = 392177, upload-time = "2025-11-30T20:24:27.834Z" }, + { url = "https://files.pythonhosted.org/packages/4a/b4/0a771378c5f16f8115f796d1f437950158679bcd2a7c68cf251cfb00ed5b/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_31_riscv64.whl", hash = "sha256:dea5b552272a944763b34394d04577cf0f9bd013207bc32323b5a89a53cf9c2f", size = 406015, upload-time = "2025-11-30T20:24:29.457Z" }, + { url = "https://files.pythonhosted.org/packages/36/d8/456dbba0af75049dc6f63ff295a2f92766b9d521fa00de67a2bd6427d57a/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ba3af48635eb83d03f6c9735dfb21785303e73d22ad03d489e88adae6eab8877", size = 423736, upload-time = "2025-11-30T20:24:31.22Z" }, + { url = "https://files.pythonhosted.org/packages/13/64/b4d76f227d5c45a7e0b796c674fd81b0a6c4fbd48dc29271857d8219571c/rpds_py-0.30.0-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:dff13836529b921e22f15cb099751209a60009731a68519630a24d61f0b1b30a", size = 573981, upload-time = "2025-11-30T20:24:32.934Z" }, + { url = "https://files.pythonhosted.org/packages/20/91/092bacadeda3edf92bf743cc96a7be133e13a39cdbfd7b5082e7ab638406/rpds_py-0.30.0-pp311-pypy311_pp73-musllinux_1_2_i686.whl", hash = "sha256:1b151685b23929ab7beec71080a8889d4d6d9fa9a983d213f07121205d48e2c4", size = 599782, upload-time = "2025-11-30T20:24:35.169Z" }, + { url = "https://files.pythonhosted.org/packages/d1/b7/b95708304cd49b7b6f82fdd039f1748b66ec2b21d6a45180910802f1abf1/rpds_py-0.30.0-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:ac37f9f516c51e5753f27dfdef11a88330f04de2d564be3991384b2f3535d02e", size = 562191, upload-time = "2025-11-30T20:24:36.853Z" }, +] + +[[package]] +name = "rpds-py" +version = "2026.6.3" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", +] +sdist = { url = "https://files.pythonhosted.org/packages/aa/2a/9618a122aeb2a169a28b03889a2995fe297588964333d4a7d67bdf46e147/rpds_py-2026.6.3.tar.gz", hash = "sha256:1cebd1337c242e4ec2293e541f712b2da849b29f48f0c293684b71c0632625d4", size = 64051, upload-time = "2026-06-30T07:17:53.009Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/94/1f/a2dca5ffdbf1d475ffc4e80e4d5d720ff3a00f691795910116960ee12511/rpds_py-2026.6.3-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:7b689145a1485c335569bd056464f3243a29af7ed3871c7be31ad624ba239bc7", size = 342174, upload-time = "2026-06-30T07:14:54.821Z" }, + { url = "https://files.pythonhosted.org/packages/4d/dc/323d08583c0832911768663d1944f0107fcd4088704858d84b5e06d105a0/rpds_py-2026.6.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:db08f45aecde626498fb3df07bcf6d2ec040af42e859a4f5040d79c200342911", size = 345513, upload-time = "2026-06-30T07:14:56.515Z" }, + { url = "https://files.pythonhosted.org/packages/0b/2a/e31989834d18d2f26ec1d2774c5b1eb3331df4ea8ada525175294c94b48a/rpds_py-2026.6.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:acc992ab27b15f852c76755eb2ab7dce86585ddadba6fa5946e58556088845b4", size = 373783, upload-time = "2026-06-30T07:14:57.736Z" }, + { url = "https://files.pythonhosted.org/packages/87/fe/e80107ee3639585c9941c17d6a42cd65325022f656c023191fce78c324c8/rpds_py-2026.6.3-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7f88d653e7b3b779d71ae7454e20dcc9b6bae903f33c269db9f2be41bda3f261", size = 378316, upload-time = "2026-06-30T07:14:59.077Z" }, + { url = "https://files.pythonhosted.org/packages/22/6f/81e3adf81acfb6fa694de2a6e4e7d8863121e3e0799e0a7725e6cf5679c4/rpds_py-2026.6.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e52655eaf81e32593abedaa4bfe33170c8cfedf3365ed9be6e11e07f148f0278", size = 499423, upload-time = "2026-06-30T07:15:00.488Z" }, + { url = "https://files.pythonhosted.org/packages/2d/9a/41263969df0ce3d9af2a96d5005a288200af1989aed3354bfceb5fc0b21f/rpds_py-2026.6.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dfcc8b909769d19db55c7cc9541eb64b9b774b1057ffffb4f1048070475bb9f9", size = 386077, upload-time = "2026-06-30T07:15:01.911Z" }, + { url = "https://files.pythonhosted.org/packages/5e/19/7e98f468bd50346faff5b10e5297374b443bfdddacc8e9fbc65984539597/rpds_py-2026.6.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c1255b302953c86a486b81d330d5ee1d5bd937691ce271b6be0ef0e299eaab7", size = 371315, upload-time = "2026-06-30T07:15:03.317Z" }, + { url = "https://files.pythonhosted.org/packages/99/3c/2b973b4d371906a134b03decfea7f5d9835a2c6d263454392e15b64b5b18/rpds_py-2026.6.3-cp311-cp311-manylinux_2_31_riscv64.whl", hash = "sha256:8d2294a31386bfa251d8c8a39472beee17db67d4f1a6eabea665d35c9a4461c3", size = 383502, upload-time = "2026-06-30T07:15:04.627Z" }, + { url = "https://files.pythonhosted.org/packages/98/2a/12e2799500af0a307bca76b63361c51f9fe479223561489c29eea1f2ee41/rpds_py-2026.6.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f8f23ead891a3b762f35ab3b04623da7056545b48aa60d59957e6789914545da", size = 402673, upload-time = "2026-06-30T07:15:05.856Z" }, + { url = "https://files.pythonhosted.org/packages/2d/e3/21e5872d165fe08be4f229e3d5ee9d90019c0bf0e5538de60dbd54009450/rpds_py-2026.6.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:421aba32367055614287a4292b6a17f1939c9452299f7a0209c117e990b646d4", size = 549964, upload-time = "2026-06-30T07:15:07.159Z" }, + { url = "https://files.pythonhosted.org/packages/1a/d0/5ee0fe36844297de8123bee27bc12078c1a7416ad9f1b8a8ca18d6b0c0ac/rpds_py-2026.6.3-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:1e5822dfc2f0d4ab7e745eaa6d85945069329beeccef965af3f3bb26058fcab6", size = 615446, upload-time = "2026-06-30T07:15:08.531Z" }, + { url = "https://files.pythonhosted.org/packages/b1/80/1ea5873cb683f2fbe5f21b23ea1f6d179ead19f3c5b249b7eb5dca568ef2/rpds_py-2026.6.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:83e35b57523816c8613fd0776b40cd8bb9f596b37ddd2692eb4a6bb5ab2f8c93", size = 576975, upload-time = "2026-06-30T07:15:09.97Z" }, + { url = "https://files.pythonhosted.org/packages/c9/e1/90ef639217a5ddb15b7f4f61b1c33911fd044ad03c311bafdd2bcab85582/rpds_py-2026.6.3-cp311-cp311-win32.whl", hash = "sha256:de3eceba0b683bcbb1ab93da016d0270df1f9ae7be716b40214c5dafac6ea45a", size = 204453, upload-time = "2026-06-30T07:15:11.324Z" }, + { url = "https://files.pythonhosted.org/packages/f2/b7/b7a1695d7af36f521fb11e80d6d3adbd744f73b921859bd3c2a2c0dc706f/rpds_py-2026.6.3-cp311-cp311-win_amd64.whl", hash = "sha256:2c54a076ca4d370980ab57bc0e31df57bbe8d41340436a90ef8b1219a3cbb127", size = 223219, upload-time = "2026-06-30T07:15:12.476Z" }, + { url = "https://files.pythonhosted.org/packages/d7/a2/145afacf796e4506062825941176ad9445c2dcf2b3b6a1f13d3030a15e19/rpds_py-2026.6.3-cp311-cp311-win_arm64.whl", hash = "sha256:168c733a7112e071bb7a66460e667edfcff06c017a3c523f7a8a8e08d0140804", size = 219137, upload-time = "2026-06-30T07:15:13.631Z" }, + { url = "https://files.pythonhosted.org/packages/5c/be/2e8974163072e7bab7df1a5acd54c4498e75e35d6d18b864d3a9d5dadc92/rpds_py-2026.6.3-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:a0811d33247c3d6128a3001d763f2aa056bb3425204335400ac54f89eec3a0d0", size = 343691, upload-time = "2026-06-30T07:15:14.96Z" }, + { url = "https://files.pythonhosted.org/packages/a4/73/319dfa745dd668efe89309141ded489126461fcecd2b8f3a3cda185129b6/rpds_py-2026.6.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:538949e262e46caa31ac01bdb3c1e8f642622922cacbabbae6a8445d9dc33eaf", size = 338542, upload-time = "2026-06-30T07:15:16.267Z" }, + { url = "https://files.pythonhosted.org/packages/21/63/4239893be1c4d09b709b1a8f6be4188f0870084ff547f46606b8a75f1b03/rpds_py-2026.6.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:55927d532399c2c646100ff7feb48eaa940ad70f42cd68e1328f3ded9f81ca24", size = 368180, upload-time = "2026-06-30T07:15:17.62Z" }, + { url = "https://files.pythonhosted.org/packages/1c/ca/9c5de382225234ceb37b1844ebdb140db12b2a278bb9efe2fcd19f6c82ce/rpds_py-2026.6.3-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f56f1695bc5c0871cbc33dc0130fcf503aab0c57dcc5a6700a4f49eba4f2652e", size = 375067, upload-time = "2026-06-30T07:15:18.952Z" }, + { url = "https://files.pythonhosted.org/packages/87/dc/863f69d1bf04ade34b7fe0d59b9fdf6f0135fe2d7cbca74f1d665589559d/rpds_py-2026.6.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:270b293dae9058fc9fcedab50f13cebf46fb8ed1d1d54e0521a9da5d6b211975", size = 490509, upload-time = "2026-06-30T07:15:20.434Z" }, + { url = "https://files.pythonhosted.org/packages/ce/ef/eac16a12048b45ec7c7fa94f2be3438a5f26bf9cc8580b18a1cfd609b7f6/rpds_py-2026.6.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:127565fead0a10943b282957bd5447804ff3160ad79f2ad2635e6d249e380680", size = 382754, upload-time = "2026-06-30T07:15:21.831Z" }, + { url = "https://files.pythonhosted.org/packages/04/8f/d2f3f532616be4d06c316ef119683e832bd3d41e112bf3a88f4151c95b17/rpds_py-2026.6.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ecabd69db66de867690f9797f2f8fa27ba501bbc24540cbdbdc649cd15888ba6", size = 366189, upload-time = "2026-06-30T07:15:23.371Z" }, + { url = "https://files.pythonhosted.org/packages/e3/29/41a7b0e98a4b44cd676ab7598419623373eb43b20be68c084935c1a8cf88/rpds_py-2026.6.3-cp312-cp312-manylinux_2_31_riscv64.whl", hash = "sha256:58eadac9cd119677b60e1cf8ac4052f35949d71b8a9e5556efccbe82533cf22a", size = 377750, upload-time = "2026-06-30T07:15:24.659Z" }, + { url = "https://files.pythonhosted.org/packages/2e/05/ecda0bec46f9a1565090bcdc941d023f6a25aff85fda28f89f8d19878152/rpds_py-2026.6.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:7491ee23305ac3eb59e492b6945881f5cd77a6f731061a3f25b77fd40f9e99a4", size = 395576, upload-time = "2026-06-30T07:15:25.987Z" }, + { url = "https://files.pythonhosted.org/packages/68/a8/6ed52f03ee6cb854ce78785cc9a9a672eb880e83fd7224d471f667d151f1/rpds_py-2026.6.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2c99f7e8ccb3dd6e3e4bfeac657a7b208c9bac8075f4b078c02d7404c34107fa", size = 543807, upload-time = "2026-06-30T07:15:27.356Z" }, + { url = "https://files.pythonhosted.org/packages/8f/d6/156c0d3eea27ba09b92562ba2364ba124c0a061b199e17eac637cd25a5e2/rpds_py-2026.6.3-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:62698275682bf121181861295c9181e789030a2d516071f5b8f3c23c170cd0fc", size = 611187, upload-time = "2026-06-30T07:15:28.931Z" }, + { url = "https://files.pythonhosted.org/packages/f1/31/774212ed989c62f7f310220089f9b0a3fb8f40f5443d1727abd5d9f52bc9/rpds_py-2026.6.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a214c993455f99a89aaeadc9b21241900037adc9d97203e374d75513c5911822", size = 573030, upload-time = "2026-06-30T07:15:30.553Z" }, + { url = "https://files.pythonhosted.org/packages/c9/50/22f73127a41f1ce4f87fe39aadfb9a126345801c274aa93ae88456249327/rpds_py-2026.6.3-cp312-cp312-win32.whl", hash = "sha256:501f9f04a588d6a09179368c57071301445191767c64e4b52a6aa9871f1ef5ed", size = 202185, upload-time = "2026-06-30T07:15:32.027Z" }, + { url = "https://files.pythonhosted.org/packages/04/3a/f0ee4d4dde9d3b69dedf1b5f74e7a40017046d55052d173e418c6a94f960/rpds_py-2026.6.3-cp312-cp312-win_amd64.whl", hash = "sha256:2c958bf94822e9290a40aaf2a822d4bc5c88099093e3948ad6c571eca9272e5f", size = 220394, upload-time = "2026-06-30T07:15:33.359Z" }, + { url = "https://files.pythonhosted.org/packages/f3/83/3382fe37f809b59f02aac04dbc4e765b480b46ee0227ed516e3bdc4d3dfc/rpds_py-2026.6.3-cp312-cp312-win_arm64.whl", hash = "sha256:22bffe6042b9bcb0822bcd1955ec00e245daf17b4344e4ed8e9551b976b63e96", size = 215753, upload-time = "2026-06-30T07:15:34.778Z" }, + { url = "https://files.pythonhosted.org/packages/b4/9c/f0d19ac587fd0e4ab6b72cda355e9c5a6166b01ef7e064e437aef8eb9fef/rpds_py-2026.6.3-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:4cf2d36a2357e4d07bb5a4f98801265327b48256867816cfd2ceb001e9754a8f", size = 349791, upload-time = "2026-06-30T07:17:33.315Z" }, + { url = "https://files.pythonhosted.org/packages/38/c7/1d49d204c9fd2ee6c537601dc4c1ba921e03363ca576bfab94a00254ac9a/rpds_py-2026.6.3-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:30c6dc199b24a5e3e81d50da0f00858c5bbdb2617a750395687f4339c5818171", size = 352842, upload-time = "2026-06-30T07:17:34.897Z" }, + { url = "https://files.pythonhosted.org/packages/ac/e5/c0b5dc93cd0d4c06ce1f438907649514e2ea077bcd911e3154a51e96c38e/rpds_py-2026.6.3-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9891e594296ab9dada6551c8e7b387b2721f27a67eecd528412e8906247a7b90", size = 382094, upload-time = "2026-06-30T07:17:36.514Z" }, + { url = "https://files.pythonhosted.org/packages/0d/54/ec0e907b4ca8d541112db352409bd15f871c9b243e0c92c9b5a46ae96f01/rpds_py-2026.6.3-pp311-pypy311_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b5c2dc92304aa48a4a60443b548bb12f12e119d4b72f314015e67b9e1be97fca", size = 388662, upload-time = "2026-06-30T07:17:38.235Z" }, + { url = "https://files.pythonhosted.org/packages/d3/f4/921c22a4fd0f1c1ac13a3996ffbf0aa67951e2c8ad0d1d9574938a2932e8/rpds_py-2026.6.3-pp311-pypy311_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:127e08c0642d880cf32ca47ec2a4a77b901f7e2dd1ad9762adb13955d72ffcc9", size = 504896, upload-time = "2026-06-30T07:17:39.689Z" }, + { url = "https://files.pythonhosted.org/packages/0b/1b/a114b972cefa1ab1cdb3c7bb177cd3844a12826c507c722d3a73516dbbaf/rpds_py-2026.6.3-pp311-pypy311_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8bb68f03f395eb793220b45c097bd4d8c32944393da0fad8b999efac0868fc8c", size = 391545, upload-time = "2026-06-30T07:17:41.336Z" }, + { url = "https://files.pythonhosted.org/packages/4e/98/af9b3db77d47fcbe6c8c1f36e2c2147ec70292819e99c325f871584a1c11/rpds_py-2026.6.3-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a3450b693fde92133e9f51060568a4c31fcca76d5e53bbd611e689ca446517e9", size = 380059, upload-time = "2026-06-30T07:17:42.857Z" }, + { url = "https://files.pythonhosted.org/packages/c9/ba/0efd8668b97c1d26a61566386c636a7a7a09829e474fdf807caa15a2c844/rpds_py-2026.6.3-pp311-pypy311_pp73-manylinux_2_31_riscv64.whl", hash = "sha256:5e8d07bddee435a2ff6f1920e18feff28d0bc4533e42f4bf6927fbd073312c41", size = 393235, upload-time = "2026-06-30T07:17:44.637Z" }, + { url = "https://files.pythonhosted.org/packages/62/90/8c139ee9690f73b0829f32647de6f40d826f8f443af6fa72644f96351aac/rpds_py-2026.6.3-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3a83ae6c67b7676b9878378547ca8e93ed77a580037bcbcd1d32f739e1e6089c", size = 413008, upload-time = "2026-06-30T07:17:46.225Z" }, + { url = "https://files.pythonhosted.org/packages/9c/97/0043896fdd7828ce09a1d9a8b06433714d0960fc4ff3fc4aa72b666b764e/rpds_py-2026.6.3-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:2bfd04c19ddbd6640de0b51894d764bd2758854d5b75bd102d2ef10cb9c293a9", size = 558118, upload-time = "2026-06-30T07:17:47.759Z" }, + { url = "https://files.pythonhosted.org/packages/f6/40/02355f0e134f783a8f9814c4680a1bd311d37671577a5964ea838573ff37/rpds_py-2026.6.3-pp311-pypy311_pp73-musllinux_1_2_i686.whl", hash = "sha256:ca6546b66be9dc4738b1b043d5ebd5488c66c578c5ff0fd0e8065313fe3afb76", size = 623138, upload-time = "2026-06-30T07:17:49.355Z" }, + { url = "https://files.pythonhosted.org/packages/10/85/48f0abdcef5cce4e034c7a5b0ceeceba0b01bf0d942824f4bb720afe2dec/rpds_py-2026.6.3-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:8e65860d238379ed982fd9ba690579b5e95af2f4840f99c772816dbe573cb826", size = 586486, upload-time = "2026-06-30T07:17:51.141Z" }, +] + +[[package]] +name = "scipy" +version = "1.15.3" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.11'", +] +dependencies = [ + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/0f/37/6964b830433e654ec7485e45a00fc9a27cf868d622838f6b6d9c5ec0d532/scipy-1.15.3.tar.gz", hash = "sha256:eae3cf522bc7df64b42cad3925c876e1b0b6c35c1337c93e12c0f366f55b0eaf", size = 59419214, upload-time = "2025-05-08T16:13:05.955Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/78/2f/4966032c5f8cc7e6a60f1b2e0ad686293b9474b65246b0c642e3ef3badd0/scipy-1.15.3-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:a345928c86d535060c9c2b25e71e87c39ab2f22fc96e9636bd74d1dbf9de448c", size = 38702770, upload-time = "2025-05-08T16:04:20.849Z" }, + { url = "https://files.pythonhosted.org/packages/a0/6e/0c3bf90fae0e910c274db43304ebe25a6b391327f3f10b5dcc638c090795/scipy-1.15.3-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:ad3432cb0f9ed87477a8d97f03b763fd1d57709f1bbde3c9369b1dff5503b253", size = 30094511, upload-time = "2025-05-08T16:04:27.103Z" }, + { url = "https://files.pythonhosted.org/packages/ea/b1/4deb37252311c1acff7f101f6453f0440794f51b6eacb1aad4459a134081/scipy-1.15.3-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:aef683a9ae6eb00728a542b796f52a5477b78252edede72b8327a886ab63293f", size = 22368151, upload-time = "2025-05-08T16:04:31.731Z" }, + { url = "https://files.pythonhosted.org/packages/38/7d/f457626e3cd3c29b3a49ca115a304cebb8cc6f31b04678f03b216899d3c6/scipy-1.15.3-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:1c832e1bd78dea67d5c16f786681b28dd695a8cb1fb90af2e27580d3d0967e92", size = 25121732, upload-time = "2025-05-08T16:04:36.596Z" }, + { url = "https://files.pythonhosted.org/packages/db/0a/92b1de4a7adc7a15dcf5bddc6e191f6f29ee663b30511ce20467ef9b82e4/scipy-1.15.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:263961f658ce2165bbd7b99fa5135195c3a12d9bef045345016b8b50c315cb82", size = 35547617, upload-time = "2025-05-08T16:04:43.546Z" }, + { url = "https://files.pythonhosted.org/packages/8e/6d/41991e503e51fc1134502694c5fa7a1671501a17ffa12716a4a9151af3df/scipy-1.15.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9e2abc762b0811e09a0d3258abee2d98e0c703eee49464ce0069590846f31d40", size = 37662964, upload-time = "2025-05-08T16:04:49.431Z" }, + { url = "https://files.pythonhosted.org/packages/25/e1/3df8f83cb15f3500478c889be8fb18700813b95e9e087328230b98d547ff/scipy-1.15.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ed7284b21a7a0c8f1b6e5977ac05396c0d008b89e05498c8b7e8f4a1423bba0e", size = 37238749, upload-time = "2025-05-08T16:04:55.215Z" }, + { url = "https://files.pythonhosted.org/packages/93/3e/b3257cf446f2a3533ed7809757039016b74cd6f38271de91682aa844cfc5/scipy-1.15.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:5380741e53df2c566f4d234b100a484b420af85deb39ea35a1cc1be84ff53a5c", size = 40022383, upload-time = "2025-05-08T16:05:01.914Z" }, + { url = "https://files.pythonhosted.org/packages/d1/84/55bc4881973d3f79b479a5a2e2df61c8c9a04fcb986a213ac9c02cfb659b/scipy-1.15.3-cp310-cp310-win_amd64.whl", hash = "sha256:9d61e97b186a57350f6d6fd72640f9e99d5a4a2b8fbf4b9ee9a841eab327dc13", size = 41259201, upload-time = "2025-05-08T16:05:08.166Z" }, + { url = "https://files.pythonhosted.org/packages/96/ab/5cc9f80f28f6a7dff646c5756e559823614a42b1939d86dd0ed550470210/scipy-1.15.3-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:993439ce220d25e3696d1b23b233dd010169b62f6456488567e830654ee37a6b", size = 38714255, upload-time = "2025-05-08T16:05:14.596Z" }, + { url = "https://files.pythonhosted.org/packages/4a/4a/66ba30abe5ad1a3ad15bfb0b59d22174012e8056ff448cb1644deccbfed2/scipy-1.15.3-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:34716e281f181a02341ddeaad584205bd2fd3c242063bd3423d61ac259ca7eba", size = 30111035, upload-time = "2025-05-08T16:05:20.152Z" }, + { url = "https://files.pythonhosted.org/packages/4b/fa/a7e5b95afd80d24313307f03624acc65801846fa75599034f8ceb9e2cbf6/scipy-1.15.3-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:3b0334816afb8b91dab859281b1b9786934392aa3d527cd847e41bb6f45bee65", size = 22384499, upload-time = "2025-05-08T16:05:24.494Z" }, + { url = "https://files.pythonhosted.org/packages/17/99/f3aaddccf3588bb4aea70ba35328c204cadd89517a1612ecfda5b2dd9d7a/scipy-1.15.3-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:6db907c7368e3092e24919b5e31c76998b0ce1684d51a90943cb0ed1b4ffd6c1", size = 25152602, upload-time = "2025-05-08T16:05:29.313Z" }, + { url = "https://files.pythonhosted.org/packages/56/c5/1032cdb565f146109212153339f9cb8b993701e9fe56b1c97699eee12586/scipy-1.15.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:721d6b4ef5dc82ca8968c25b111e307083d7ca9091bc38163fb89243e85e3889", size = 35503415, upload-time = "2025-05-08T16:05:34.699Z" }, + { url = "https://files.pythonhosted.org/packages/bd/37/89f19c8c05505d0601ed5650156e50eb881ae3918786c8fd7262b4ee66d3/scipy-1.15.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:39cb9c62e471b1bb3750066ecc3a3f3052b37751c7c3dfd0fd7e48900ed52982", size = 37652622, upload-time = "2025-05-08T16:05:40.762Z" }, + { url = "https://files.pythonhosted.org/packages/7e/31/be59513aa9695519b18e1851bb9e487de66f2d31f835201f1b42f5d4d475/scipy-1.15.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:795c46999bae845966368a3c013e0e00947932d68e235702b5c3f6ea799aa8c9", size = 37244796, upload-time = "2025-05-08T16:05:48.119Z" }, + { url = "https://files.pythonhosted.org/packages/10/c0/4f5f3eeccc235632aab79b27a74a9130c6c35df358129f7ac8b29f562ac7/scipy-1.15.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:18aaacb735ab38b38db42cb01f6b92a2d0d4b6aabefeb07f02849e47f8fb3594", size = 40047684, upload-time = "2025-05-08T16:05:54.22Z" }, + { url = "https://files.pythonhosted.org/packages/ab/a7/0ddaf514ce8a8714f6ed243a2b391b41dbb65251affe21ee3077ec45ea9a/scipy-1.15.3-cp311-cp311-win_amd64.whl", hash = "sha256:ae48a786a28412d744c62fd7816a4118ef97e5be0bee968ce8f0a2fba7acf3bb", size = 41246504, upload-time = "2025-05-08T16:06:00.437Z" }, + { url = "https://files.pythonhosted.org/packages/37/4b/683aa044c4162e10ed7a7ea30527f2cbd92e6999c10a8ed8edb253836e9c/scipy-1.15.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:6ac6310fdbfb7aa6612408bd2f07295bcbd3fda00d2d702178434751fe48e019", size = 38766735, upload-time = "2025-05-08T16:06:06.471Z" }, + { url = "https://files.pythonhosted.org/packages/7b/7e/f30be3d03de07f25dc0ec926d1681fed5c732d759ac8f51079708c79e680/scipy-1.15.3-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:185cd3d6d05ca4b44a8f1595af87f9c372bb6acf9c808e99aa3e9aa03bd98cf6", size = 30173284, upload-time = "2025-05-08T16:06:11.686Z" }, + { url = "https://files.pythonhosted.org/packages/07/9c/0ddb0d0abdabe0d181c1793db51f02cd59e4901da6f9f7848e1f96759f0d/scipy-1.15.3-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:05dc6abcd105e1a29f95eada46d4a3f251743cfd7d3ae8ddb4088047f24ea477", size = 22446958, upload-time = "2025-05-08T16:06:15.97Z" }, + { url = "https://files.pythonhosted.org/packages/af/43/0bce905a965f36c58ff80d8bea33f1f9351b05fad4beaad4eae34699b7a1/scipy-1.15.3-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:06efcba926324df1696931a57a176c80848ccd67ce6ad020c810736bfd58eb1c", size = 25242454, upload-time = "2025-05-08T16:06:20.394Z" }, + { url = "https://files.pythonhosted.org/packages/56/30/a6f08f84ee5b7b28b4c597aca4cbe545535c39fe911845a96414700b64ba/scipy-1.15.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c05045d8b9bfd807ee1b9f38761993297b10b245f012b11b13b91ba8945f7e45", size = 35210199, upload-time = "2025-05-08T16:06:26.159Z" }, + { url = "https://files.pythonhosted.org/packages/0b/1f/03f52c282437a168ee2c7c14a1a0d0781a9a4a8962d84ac05c06b4c5b555/scipy-1.15.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:271e3713e645149ea5ea3e97b57fdab61ce61333f97cfae392c28ba786f9bb49", size = 37309455, upload-time = "2025-05-08T16:06:32.778Z" }, + { url = "https://files.pythonhosted.org/packages/89/b1/fbb53137f42c4bf630b1ffdfc2151a62d1d1b903b249f030d2b1c0280af8/scipy-1.15.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6cfd56fc1a8e53f6e89ba3a7a7251f7396412d655bca2aa5611c8ec9a6784a1e", size = 36885140, upload-time = "2025-05-08T16:06:39.249Z" }, + { url = "https://files.pythonhosted.org/packages/2e/2e/025e39e339f5090df1ff266d021892694dbb7e63568edcfe43f892fa381d/scipy-1.15.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0ff17c0bb1cb32952c09217d8d1eed9b53d1463e5f1dd6052c7857f83127d539", size = 39710549, upload-time = "2025-05-08T16:06:45.729Z" }, + { url = "https://files.pythonhosted.org/packages/e6/eb/3bf6ea8ab7f1503dca3a10df2e4b9c3f6b3316df07f6c0ded94b281c7101/scipy-1.15.3-cp312-cp312-win_amd64.whl", hash = "sha256:52092bc0472cfd17df49ff17e70624345efece4e1a12b23783a1ac59a1b728ed", size = 40966184, upload-time = "2025-05-08T16:06:52.623Z" }, +] + +[[package]] +name = "scipy" +version = "1.17.1" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version == '3.11.*'", +] +dependencies = [ + { 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 = [ + { url = "https://files.pythonhosted.org/packages/df/75/b4ce781849931fef6fd529afa6b63711d5a733065722d0c3e2724af9e40a/scipy-1.17.1-cp311-cp311-macosx_10_14_x86_64.whl", hash = "sha256:1f95b894f13729334fb990162e911c9e5dc1ab390c58aa6cbecb389c5b5e28ec", size = 31613675, upload-time = "2026-02-23T00:16:00.13Z" }, + { url = "https://files.pythonhosted.org/packages/f7/58/bccc2861b305abdd1b8663d6130c0b3d7cc22e8d86663edbc8401bfd40d4/scipy-1.17.1-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:e18f12c6b0bc5a592ed23d3f7b891f68fd7f8241d69b7883769eb5d5dfb52696", size = 28162057, upload-time = "2026-02-23T00:16:09.456Z" }, + { url = "https://files.pythonhosted.org/packages/6d/ee/18146b7757ed4976276b9c9819108adbc73c5aad636e5353e20746b73069/scipy-1.17.1-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:a3472cfbca0a54177d0faa68f697d8ba4c80bbdc19908c3465556d9f7efce9ee", size = 20334032, upload-time = "2026-02-23T00:16:17.358Z" }, + { url = "https://files.pythonhosted.org/packages/ec/e6/cef1cf3557f0c54954198554a10016b6a03b2ec9e22a4e1df734936bd99c/scipy-1.17.1-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:766e0dc5a616d026a3a1cffa379af959671729083882f50307e18175797b3dfd", size = 22709533, upload-time = "2026-02-23T00:16:25.791Z" }, + { url = "https://files.pythonhosted.org/packages/4d/60/8804678875fc59362b0fb759ab3ecce1f09c10a735680318ac30da8cd76b/scipy-1.17.1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:744b2bf3640d907b79f3fd7874efe432d1cf171ee721243e350f55234b4cec4c", size = 33062057, upload-time = "2026-02-23T00:16:36.931Z" }, + { url = "https://files.pythonhosted.org/packages/09/7d/af933f0f6e0767995b4e2d705a0665e454d1c19402aa7e895de3951ebb04/scipy-1.17.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:43af8d1f3bea642559019edfe64e9b11192a8978efbd1539d7bc2aaa23d92de4", size = 35349300, upload-time = "2026-02-23T00:16:49.108Z" }, + { url = "https://files.pythonhosted.org/packages/b4/3d/7ccbbdcbb54c8fdc20d3b6930137c782a163fa626f0aef920349873421ba/scipy-1.17.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:cd96a1898c0a47be4520327e01f874acfd61fb48a9420f8aa9f6483412ffa444", size = 35127333, upload-time = "2026-02-23T00:17:01.293Z" }, + { url = "https://files.pythonhosted.org/packages/e8/19/f926cb11c42b15ba08e3a71e376d816ac08614f769b4f47e06c3580c836a/scipy-1.17.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:4eb6c25dd62ee8d5edf68a8e1c171dd71c292fdae95d8aeb3dd7d7de4c364082", size = 37741314, upload-time = "2026-02-23T00:17:12.576Z" }, + { url = "https://files.pythonhosted.org/packages/95/da/0d1df507cf574b3f224ccc3d45244c9a1d732c81dcb26b1e8a766ae271a8/scipy-1.17.1-cp311-cp311-win_amd64.whl", hash = "sha256:d30e57c72013c2a4fe441c2fcb8e77b14e152ad48b5464858e07e2ad9fbfceff", size = 36607512, upload-time = "2026-02-23T00:17:23.424Z" }, + { url = "https://files.pythonhosted.org/packages/68/7f/bdd79ceaad24b671543ffe0ef61ed8e659440eb683b66f033454dcee90eb/scipy-1.17.1-cp311-cp311-win_arm64.whl", hash = "sha256:9ecb4efb1cd6e8c4afea0daa91a87fbddbce1b99d2895d151596716c0b2e859d", size = 24599248, upload-time = "2026-02-23T00:17:34.561Z" }, + { url = "https://files.pythonhosted.org/packages/35/48/b992b488d6f299dbe3f11a20b24d3dda3d46f1a635ede1c46b5b17a7b163/scipy-1.17.1-cp312-cp312-macosx_10_14_x86_64.whl", hash = "sha256:35c3a56d2ef83efc372eaec584314bd0ef2e2f0d2adb21c55e6ad5b344c0dcb8", size = 31610954, upload-time = "2026-02-23T00:17:49.855Z" }, + { url = "https://files.pythonhosted.org/packages/b2/02/cf107b01494c19dc100f1d0b7ac3cc08666e96ba2d64db7626066cee895e/scipy-1.17.1-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:fcb310ddb270a06114bb64bbe53c94926b943f5b7f0842194d585c65eb4edd76", size = 28172662, upload-time = "2026-02-23T00:18:01.64Z" }, + { url = "https://files.pythonhosted.org/packages/cf/a9/599c28631bad314d219cf9ffd40e985b24d603fc8a2f4ccc5ae8419a535b/scipy-1.17.1-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:cc90d2e9c7e5c7f1a482c9875007c095c3194b1cfedca3c2f3291cdc2bc7c086", size = 20344366, upload-time = "2026-02-23T00:18:12.015Z" }, + { url = "https://files.pythonhosted.org/packages/35/f5/906eda513271c8deb5af284e5ef0206d17a96239af79f9fa0aebfe0e36b4/scipy-1.17.1-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:c80be5ede8f3f8eded4eff73cc99a25c388ce98e555b17d31da05287015ffa5b", size = 22704017, upload-time = "2026-02-23T00:18:21.502Z" }, + { url = "https://files.pythonhosted.org/packages/da/34/16f10e3042d2f1d6b66e0428308ab52224b6a23049cb2f5c1756f713815f/scipy-1.17.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e19ebea31758fac5893a2ac360fedd00116cbb7628e650842a6691ba7ca28a21", size = 32927842, upload-time = "2026-02-23T00:18:35.367Z" }, + { url = "https://files.pythonhosted.org/packages/01/8e/1e35281b8ab6d5d72ebe9911edcdffa3f36b04ed9d51dec6dd140396e220/scipy-1.17.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:02ae3b274fde71c5e92ac4d54bc06c42d80e399fec704383dcd99b301df37458", size = 35235890, upload-time = "2026-02-23T00:18:49.188Z" }, + { url = "https://files.pythonhosted.org/packages/c5/5c/9d7f4c88bea6e0d5a4f1bc0506a53a00e9fcb198de372bfe4d3652cef482/scipy-1.17.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8a604bae87c6195d8b1045eddece0514d041604b14f2727bbc2b3020172045eb", size = 35003557, upload-time = "2026-02-23T00:18:54.74Z" }, + { url = "https://files.pythonhosted.org/packages/65/94/7698add8f276dbab7a9de9fb6b0e02fc13ee61d51c7c3f85ac28b65e1239/scipy-1.17.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:f590cd684941912d10becc07325a3eeb77886fe981415660d9265c4c418d0bea", size = 37625856, upload-time = "2026-02-23T00:19:00.307Z" }, + { url = "https://files.pythonhosted.org/packages/a2/84/dc08d77fbf3d87d3ee27f6a0c6dcce1de5829a64f2eae85a0ecc1f0daa73/scipy-1.17.1-cp312-cp312-win_amd64.whl", hash = "sha256:41b71f4a3a4cab9d366cd9065b288efc4d4f3c0b37a91a8e0947fb5bd7f31d87", size = 36549682, upload-time = "2026-02-23T00:19:07.67Z" }, + { url = "https://files.pythonhosted.org/packages/bc/98/fe9ae9ffb3b54b62559f52dedaebe204b408db8109a8c66fdd04869e6424/scipy-1.17.1-cp312-cp312-win_arm64.whl", hash = "sha256:f4115102802df98b2b0db3cce5cb9b92572633a1197c77b7553e5203f284a5b3", size = 24547340, upload-time = "2026-02-23T00:19:12.024Z" }, +] + +[[package]] +name = "scipy" +version = "1.18.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.12'", +] +dependencies = [ + { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a7/25/c2700dfaf6442b4effaa91af24ebce5dc9d31bb4a69706313aae70d72cd0/scipy-1.18.0.tar.gz", hash = "sha256:67b2ad2ad54c72ca6d04975a9b2df8c3638c34ddd5b28738e94fc2b57929d378", size = 30774447, upload-time = "2026-06-19T15:01:43.456Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6a/19/ca10ead60b0acc80b2b833c2c4a4f2ff753d0f58b811f70d911c7e94a25c/scipy-1.18.0-cp312-cp312-macosx_10_15_x86_64.whl", hash = "sha256:7bd21faaf5a1a3b2eff922d02db5f191b99a6518db9078a8fb23169f6d22259a", size = 31056519, upload-time = "2026-06-19T14:59:45.203Z" }, + { url = "https://files.pythonhosted.org/packages/96/72/1e6442a00cd2924d361aa1b642ab6373ec35c6fabf311a760be9f76e0f13/scipy-1.18.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:265915e79107de9f946b855e50d7470d5893ec3f54b342e1aa6201cbdcd8bb6b", size = 28681889, upload-time = "2026-06-19T14:59:48.103Z" }, + { url = "https://files.pythonhosted.org/packages/9b/2d/11dd93d21e147a73ba22bd75c0b9208d3a2e0ec76d53170ce7d9029b1015/scipy-1.18.0-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:9ab7b758be6940954a713ee466e2043e9f6e2ed965c1fce5c91039f4be3d90a9", size = 20423580, upload-time = "2026-06-19T14:59:50.665Z" }, + { url = "https://files.pythonhosted.org/packages/9c/01/93552f75e0d2a7dd115a45e59209c51e8d514daff02fc887d2623be06fe1/scipy-1.18.0-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:97b6cddaaee0a779ef6b5ca83c9604b27cc16b2b8fc22c142652df8793319fb8", size = 23054441, upload-time = "2026-06-19T14:59:53.564Z" }, + { url = "https://files.pythonhosted.org/packages/3c/23/21f5e703643d66f21faa6b4c73195bfcad70c55efcb4f1ab327cd7c4101a/scipy-1.18.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:52a96e21517c7292375c0e27dd796a811f03fcea5fd4d108fdfea8145dcf17ab", size = 33968720, upload-time = "2026-06-19T14:59:56.415Z" }, + { url = "https://files.pythonhosted.org/packages/dd/aa/1b939f6c67ed68635bb538e6752d3dacc02f66535182e939a89581a44e9c/scipy-1.18.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1f55797419e16e7f30cf88ffb3113ce0467f00cfe3f70d5c281730b21769bfc2", size = 35287115, upload-time = "2026-06-19T14:59:59.411Z" }, + { url = "https://files.pythonhosted.org/packages/b6/ff/eec46be7e9234208f801062b53e1983085eddebd693f6c9bfb03b459830d/scipy-1.18.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ad033410e2e0672ffdc1042110cef20e1c46f8fd0616cee1d44d8d58fad8fc11", size = 35577989, upload-time = "2026-06-19T15:00:02.235Z" }, + { url = "https://files.pythonhosted.org/packages/84/ca/210d4759c7210bb7d269437421959b39a33434e2776b60c5cb8a763bb30a/scipy-1.18.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:4a55985d54c769c872e64b7f4c8a81cc30ef700cc04296abbbf3705439c126de", size = 37421717, upload-time = "2026-06-19T15:00:05.102Z" }, + { url = "https://files.pythonhosted.org/packages/2b/54/9a9edb45345bd6744da5ddfb6628e5d5185920494c6a67ec45b6381004cb/scipy-1.18.0-cp312-cp312-win_amd64.whl", hash = "sha256:71ccc8faa2dd16ac310233203474a8b5cb67f10dedd54a3116d34943f4b19132", size = 36597428, upload-time = "2026-06-19T15:00:08.112Z" }, + { url = "https://files.pythonhosted.org/packages/99/0e/33f32a2a58987e26aec0f7df252cbbad1e90ae77bdbc76f40dd4ed0cf0ea/scipy-1.18.0-cp312-cp312-win_arm64.whl", hash = "sha256:d88363fd9d8fbd3511bd273f1a49efb2a540773ddf92a91d57498ce7dd7f3e76", size = 24351481, upload-time = "2026-06-19T15:00:11.103Z" }, +] + +[[package]] +name = "segments" +version = "2.4.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "csvw" }, + { name = "regex" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8b/57/85cac3a8e32370e88fa5fa92812edb6025db7fcbed51452bd56ee1524957/segments-2.4.0.tar.gz", hash = "sha256:bba71f5520ddd54c8aa2f4d765a60618c6862162d6e7356a4a097f2223166f5b", size = 18662, upload-time = "2026-03-07T10:01:28.925Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/be/60/eef9acce946177f92c9aabf432224d87ab908bafafac516a36ab924199f3/segments-2.4.0-py2.py3-none-any.whl", hash = "sha256:4021dc67f201cc03c864c74c618bdb163b1af629da3040babbaa37d8813f3db0", size = 16321, upload-time = "2026-03-07T10:01:27.885Z" }, +] + +[[package]] +name = "setuptools" +version = "83.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/34/26/f5d29e25ffdb535afef2d35cdb55b325298f96debd670da4c325e08d70f4/setuptools-83.0.0.tar.gz", hash = "sha256:025bccbbf0fa05b6192bc64ae1e7b16e001fd6d6d4d5de03c97b1c1ade523bef", size = 1154254, upload-time = "2026-07-04T15:31:22.699Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5d/40/e1e72872c6354b306daef1703549e8e83b4d43cfea356311bf722a043752/setuptools-83.0.0-py3-none-any.whl", hash = "sha256:29b23c360f22f414dc7336bb39178cc7bcbf6021ed2733cde173f09dba19abb3", size = 1008090, upload-time = "2026-07-04T15:31:20.885Z" }, +] + +[[package]] +name = "shiboken6" +version = "6.11.1" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/17/f3/f2b63df0251e7cd3172ea28e32ede52739de9566bcefcd0178681538ac81/shiboken6-6.11.1-cp310-abi3-macosx_13_0_universal2.whl", hash = "sha256:1a16867f103ef1c662a5f09dfed03273a9f81688b174555162c58e83650a3f02", size = 476874, upload-time = "2026-05-13T09:47:01.091Z" }, + { url = "https://files.pythonhosted.org/packages/c7/9b/e0355d8897b5c150770f1d95718aad17d432fcc9c035c04f3f58427d4693/shiboken6-6.11.1-cp310-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:9a8bccfafc8805254cabcfa1edfaf55cd52889f4998c91ad0d9a4433fb1bcdbe", size = 272222, upload-time = "2026-05-13T09:47:02.653Z" }, + { url = "https://files.pythonhosted.org/packages/57/d5/dd4f1defed400be03340f2ede34b61f846776650b4e7ed9ebaf4c71979a2/shiboken6-6.11.1-cp310-abi3-manylinux_2_39_aarch64.whl", hash = "sha256:1bd2f4314414df2d122d9f646e03b731bc6d6b5f77a5f53f99a4fe4e97d84e6f", size = 270350, upload-time = "2026-05-13T09:47:04.02Z" }, + { url = "https://files.pythonhosted.org/packages/52/b5/3f6fb2ee65b534193fb4ef713dd619dc31dadff5d12c16979a7699ad58be/shiboken6-6.11.1-cp310-abi3-win_amd64.whl", hash = "sha256:c2c6863aa80ec18c0f82cea3417837b279cdc60024ac17123461dc9042577df7", size = 1223647, upload-time = "2026-05-13T09:47:05.924Z" }, + { url = "https://files.pythonhosted.org/packages/98/d1/f15ca0e1666faae02c945f48e745ea35f8fcd8243b176109b4e2c4251f47/shiboken6-6.11.1-cp310-abi3-win_arm64.whl", hash = "sha256:7c8d9af17db4495d4fa5b1c393f218311c4855546b9dfa6a0bd21bcd66b55e9d", size = 1784170, upload-time = "2026-05-13T09:47:07.617Z" }, +] + +[[package]] +name = "six" +version = "1.17.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81", size = 34031, upload-time = "2024-12-04T17:35:28.174Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050, upload-time = "2024-12-04T17:35:26.475Z" }, +] + +[[package]] +name = "sounddevice" +version = "0.5.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cffi" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/2a/f9/2592608737553638fca98e21e54bfec40bf577bb98a61b2770c912aab25e/sounddevice-0.5.5.tar.gz", hash = "sha256:22487b65198cb5bf2208755105b524f78ad173e5ab6b445bdab1c989f6698df3", size = 143191, upload-time = "2026-01-23T18:36:43.529Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1e/0a/478e441fd049002cf308520c0d62dd8333e7c6cc8d997f0dda07b9fbcc46/sounddevice-0.5.5-py3-none-any.whl", hash = "sha256:30ff99f6c107f49d25ad16a45cacd8d91c25a1bcdd3e81a206b921a3a6405b1f", size = 32807, upload-time = "2026-01-23T18:36:35.649Z" }, + { url = "https://files.pythonhosted.org/packages/56/f9/c037c35f6d0b6bc3bc7bfb314f1d6f1f9a341328ef47cd63fc4f850a7b27/sounddevice-0.5.5-py3-none-macosx_10_6_x86_64.macosx_10_6_universal2.whl", hash = "sha256:05eb9fd6c54c38d67741441c19164c0dae8ce80453af2d8c4ad2e7823d15b722", size = 108557, upload-time = "2026-01-23T18:36:37.41Z" }, + { url = "https://files.pythonhosted.org/packages/88/a1/d19dd9889cd4bce2e233c4fac007cd8daaf5b9fe6e6a5d432cf17be0b807/sounddevice-0.5.5-py3-none-win32.whl", hash = "sha256:1234cc9b4c9df97b6cbe748146ae0ec64dd7d6e44739e8e42eaa5b595313a103", size = 317765, upload-time = "2026-01-23T18:36:39.047Z" }, + { url = "https://files.pythonhosted.org/packages/c3/0e/002ed7c4c1c2ab69031f78989d3b789fee3a7fba9e586eb2b81688bf4961/sounddevice-0.5.5-py3-none-win_amd64.whl", hash = "sha256:cfc6b2c49fb7f555591c78cb8ecf48d6a637fd5b6e1db5fec6ed9365d64b3519", size = 365324, upload-time = "2026-01-23T18:36:40.496Z" }, + { url = "https://files.pythonhosted.org/packages/4e/39/a61d4b83a7746b70d23d9173be688c0c6bfc7173772344b7442c2c155497/sounddevice-0.5.5-py3-none-win_arm64.whl", hash = "sha256:3861901ddd8230d2e0e8ae62ac320cdd4c688d81df89da036dcb812f757bb3e6", size = 317115, upload-time = "2026-01-23T18:36:42.235Z" }, +] + +[[package]] +name = "soundfile" +version = "0.14.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cffi" }, + { 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 = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/d2/db/949331952a6fb1c5b12e9de80fd08747966c2039d1a61db4764fbd3981c2/soundfile-0.14.0.tar.gz", hash = "sha256:ba1c1a2d618bca5c406647c83b89f07cc8810fa506a50622a6993ba130c1de11", size = 47842, upload-time = "2026-06-06T08:58:47.869Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b1/d1/5e338af9ca6ed0786cd5bb03f6d60de1c325728c1189014f3b59aae7403c/soundfile-0.14.0-py2.py3-none-any.whl", hash = "sha256:8ba81ae3a89fd5ab3bef8a8eb481fbbe794e806309675a89b4df48b8d31908a8", size = 26799, upload-time = "2026-06-06T08:58:33.269Z" }, + { url = "https://files.pythonhosted.org/packages/7e/72/c6b21e58d3113596e7e8de0a08d6f1d95173492cfbca0a4db14148cbba2a/soundfile-0.14.0-py2.py3-none-macosx_10_9_x86_64.whl", hash = "sha256:19be05428da76ed61a4cad29b8e4bcf43a3e5c100089d2ec81dc961eed1b0dd4", size = 1144568, upload-time = "2026-06-06T08:58:35.231Z" }, + { url = "https://files.pythonhosted.org/packages/63/7a/dfdd6f8c748988427119f75eb860a3cedd858d1aea1fe28f39ad8559ef22/soundfile-0.14.0-py2.py3-none-macosx_11_0_arm64.whl", hash = "sha256:d828d35a059626da52f1415b5faee610aeab393319cb3fc4a9aef47b619fc14c", size = 1103726, upload-time = "2026-06-06T08:58:37.948Z" }, + { url = "https://files.pythonhosted.org/packages/4a/f8/fc39fad6f879633461d27394cd1ddaf1f769ffa0597dca35872f51b16461/soundfile-0.14.0-py2.py3-none-manylinux_2_28_aarch64.whl", hash = "sha256:e85724a90bc99a6e8062c0b4ddf725f53b2a3b70afd4da875e9d2cfc4e92f377", size = 1238050, upload-time = "2026-06-06T08:58:39.932Z" }, + { url = "https://files.pythonhosted.org/packages/7b/a2/70fd4432b924684c372df8b0a45708c36c057ef3596c9eb53e0a806b980b/soundfile-0.14.0-py2.py3-none-manylinux_2_28_x86_64.whl", hash = "sha256:1e38bac1853412871318e82a1ba69a8be677619b56025bbfcccdb41b6cafe82d", size = 1315963, upload-time = "2026-06-06T08:58:41.716Z" }, + { url = "https://files.pythonhosted.org/packages/d9/34/c9e80783d83eab739a9531fdee03675d53e0bf1b2ccb4bb3af5844675046/soundfile-0.14.0-py2.py3-none-win32.whl", hash = "sha256:0a6ae43c50c71b4e020cc55382925cb89451c1ed1a0c3d0f5d802da269226849", size = 902199, upload-time = "2026-06-06T08:58:43.289Z" }, + { url = "https://files.pythonhosted.org/packages/ed/97/b39c18ac1df45e755ca22b8b00e872929da5d107998a207a5e4ac831bfda/soundfile-0.14.0-py2.py3-none-win_amd64.whl", hash = "sha256:299491d3499460fb1b74bb4bd78b57ffc2d243a5fafa7b6ec1b264875c78453e", size = 1021480, upload-time = "2026-06-06T08:58:45.016Z" }, + { url = "https://files.pythonhosted.org/packages/f4/83/55c65e61cf457805ce2ec157c1c6ae17715d0851aa2374422de0538838ca/soundfile-0.14.0-py2.py3-none-win_arm64.whl", hash = "sha256:e090704718e124e7c844695236f1fce8d18a5e761eaf7c82dfcd124620805f98", size = 888858, upload-time = "2026-06-06T08:58:46.593Z" }, +] + +[[package]] +name = "spanish-assistant" +version = "0.1.0" +source = { editable = "." } +dependencies = [ + { name = "editdistance" }, + { name = "jiwer" }, + { name = "kokoro-onnx" }, + { name = "mlx-whisper" }, + { 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 = "pyside6" }, + { name = "requests" }, + { name = "sounddevice" }, + { name = "soundfile" }, +] + +[package.dev-dependencies] +dev = [ + { name = "black" }, + { name = "pytest" }, +] + +[package.metadata] +requires-dist = [ + { name = "editdistance", specifier = ">=0.8.0" }, + { name = "jiwer", specifier = ">=3.0.0" }, + { name = "kokoro-onnx", specifier = ">=0.5.0" }, + { name = "mlx-whisper", specifier = ">=0.2.0" }, + { name = "numpy", specifier = ">=2.0.2" }, + { name = "pyside6", specifier = ">=6.6.0" }, + { name = "requests", specifier = ">=2.31.0" }, + { name = "sounddevice", specifier = ">=0.4.6" }, + { name = "soundfile", specifier = ">=0.12.1" }, +] + +[package.metadata.requires-dev] +dev = [ + { name = "black", specifier = ">=24.0.0" }, + { name = "pytest", specifier = ">=8.0.0" }, +] + +[[package]] +name = "sympy" +version = "1.14.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mpmath" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/83/d3/803453b36afefb7c2bb238361cd4ae6125a569b4db67cd9e79846ba2d68c/sympy-1.14.0.tar.gz", hash = "sha256:d3d3fe8df1e5a0b42f0e7bdf50541697dbe7d23746e894990c030e2b05e72517", size = 7793921, upload-time = "2025-04-27T18:05:01.611Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a2/09/77d55d46fd61b4a135c444fc97158ef34a095e5681d0a6c10b75bf356191/sympy-1.14.0-py3-none-any.whl", hash = "sha256:e091cc3e99d2141a0ba2847328f5479b05d94a6635cb96148ccb3f34671bd8f5", size = 6299353, upload-time = "2025-04-27T18:04:59.103Z" }, +] + +[[package]] +name = "termcolor" +version = "3.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/46/79/cf31d7a93a8fdc6aa0fbb665be84426a8c5a557d9240b6239e9e11e35fc5/termcolor-3.3.0.tar.gz", hash = "sha256:348871ca648ec6a9a983a13ab626c0acce02f515b9e1983332b17af7979521c5", size = 14434, upload-time = "2025-12-29T12:55:21.882Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/33/d1/8bb87d21e9aeb323cc03034f5eaf2c8f69841e40e4853c2627edf8111ed3/termcolor-3.3.0-py3-none-any.whl", hash = "sha256:cf642efadaf0a8ebbbf4bc7a31cec2f9b5f21a9f726f4ccbb08192c9c26f43a5", size = 7734, upload-time = "2025-12-29T12:55:20.718Z" }, +] + +[[package]] +name = "tiktoken" +version = "0.13.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "regex" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e4/e5/5f3cb2159769d0f4324c0e9e87f9de3c4b1cd45848a96b2eb3566ad5ca77/tiktoken-0.13.0.tar.gz", hash = "sha256:c9435714c3a84c2319499de9a300c0e604449dd0799ff246458b3bb6a7f433c1", size = 38986, upload-time = "2026-05-15T04:51:27.153Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/38/e3/03c90dadcf5b3f82b83cee9adee60ef666b329c654f58c066af44eae0287/tiktoken-0.13.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:47b1df8d73390a24f94980c75158cdd5c56d256f16d55f30cb49c230caba9ba4", size = 1036627, upload-time = "2026-05-15T04:50:11.229Z" }, + { url = "https://files.pythonhosted.org/packages/5e/30/760463e5b2e8ad2bc229ae0a17ecb06727b6cbc094f08d8f65844315632e/tiktoken-0.13.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:7d40c6c5aab171dcd6eb8455bc567bde404bb9def60cdb8c1299cc782b242bb9", size = 984699, upload-time = "2026-05-15T04:50:12.874Z" }, + { url = "https://files.pythonhosted.org/packages/de/8a/8895f342a6b6aabd1a358e672f6f077b3ae51d0c63ca605d142db3bcd8ab/tiktoken-0.13.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:9b842981fa91accdffd48ff6408a977b7a91c3fbda55d353c3c68114d5c9d69e", size = 1118690, upload-time = "2026-05-15T04:50:14.234Z" }, + { url = "https://files.pythonhosted.org/packages/51/e0/92557768fb0801f0d9dd9243cb9b6d342900b05e4b1006d4771f49ce233e/tiktoken-0.13.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:ed5a30027cb4d8c7ca8b273d4766f3db3cf58fad9e9f3b1a68a351ffb54873d5", size = 1138423, upload-time = "2026-05-15T04:50:15.668Z" }, + { url = "https://files.pythonhosted.org/packages/8f/b9/a3d99feeedb032ffd09cd6652077f86bdee9a70dd0b990b2b272b445d4c3/tiktoken-0.13.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:7ab10f4a21c2999846940113f6dbd72e0fa06a24119feddd74cc47e85818e06d", size = 1185077, upload-time = "2026-05-15T04:50:17.19Z" }, + { url = "https://files.pythonhosted.org/packages/cc/93/bab868277d475dc6d2aaacd34cdd239c282f4908dcc8702e0a3311a8e032/tiktoken-0.13.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:a2937ad042d49d50eac6e1ba07c5661d4bd3942a5b1e0c0d08475c4df83676e1", size = 1241702, upload-time = "2026-05-15T04:50:18.772Z" }, + { url = "https://files.pythonhosted.org/packages/c3/16/27e9f7e0ed76e501cfefc9fb2112df4c7bf70ca96945b15ecb7615aac860/tiktoken-0.13.0-cp310-cp310-win_amd64.whl", hash = "sha256:44733b99bfd72b590cd0936b1c01b3b4dd73122db2d544bc1ceeb18a7678c910", size = 876565, upload-time = "2026-05-15T04:50:20.268Z" }, + { url = "https://files.pythonhosted.org/packages/1a/4c/1bc81f4cd53e827c4ee67ca951b5935724716049452d8dfa09b8b82372bb/tiktoken-0.13.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:7bfe1849caa65d1e1d9871817170ec497bbb7984e182012e1bdce72f66608cdb", size = 1036353, upload-time = "2026-05-15T04:50:21.757Z" }, + { url = "https://files.pythonhosted.org/packages/75/91/10b9c7076bc02c246c853201fdbbe300a4b8c5ed7b84c25f7403f4e32655/tiktoken-0.13.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:91c180fe255bd5a86d8316210d2833a1d4d33d026cd86a67812f4773743c8d26", size = 984644, upload-time = "2026-05-15T04:50:23.256Z" }, + { url = "https://files.pythonhosted.org/packages/4e/e4/fceae98015fab47fcd49b8bd7f46145bcd187a47e0add1e5378ed67ef980/tiktoken-0.13.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:059c8ecf554eb5b41e6e054ba467b871b03277d267dee7244380aca4359747d4", size = 1119261, upload-time = "2026-05-15T04:50:24.348Z" }, + { url = "https://files.pythonhosted.org/packages/f9/39/fe42ad00de01a8c4a49ad8649a2c8a316835a9cad5961b11d21eac0020a5/tiktoken-0.13.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:36217497eaffc158607a3b26f065300db2aefd43b115263f3b9688ce38146173", size = 1138253, upload-time = "2026-05-15T04:50:25.505Z" }, + { url = "https://files.pythonhosted.org/packages/03/c4/ccee1ecccca107e9a16efcecdeeb964c325305038554d466ece65b42338f/tiktoken-0.13.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:303f7d91b4fce3baddbcde05c139091d4caa5026ac7214c1dc7ff7a71ee429ff", size = 1185747, upload-time = "2026-05-15T04:50:27.02Z" }, + { url = "https://files.pythonhosted.org/packages/9d/03/cd0cba295522b91eb55c6b2704f1df895f8226cfe60ab10d4d51d0cc9e69/tiktoken-0.13.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:5d48843bee149630eb735a99e1f4a85b47308d21868ea63163f6e87768d3cfed", size = 1241265, upload-time = "2026-05-15T04:50:28.815Z" }, + { url = "https://files.pythonhosted.org/packages/7e/25/a10efd564402d82c2ff50d12057353ace447aa8007deceaa48641f63d35c/tiktoken-0.13.0-cp311-cp311-win_amd64.whl", hash = "sha256:fc1c44cd37b43fc46bae593129164f4f281e82ea116b57a85aa81bda57eafc94", size = 876509, upload-time = "2026-05-15T04:50:30.026Z" }, + { url = "https://files.pythonhosted.org/packages/85/8e/144bde4e01df66b34bb865557c7cd754ed08b036217ebd79c9db5e9048a9/tiktoken-0.13.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:32ac870a806cfb260a02d0cb70426aef02e038297f8ad50df5040bb5af360791", size = 1034888, upload-time = "2026-05-15T04:50:31.579Z" }, + { url = "https://files.pythonhosted.org/packages/36/18/d4ac9d20956cdebca04841316660ed584c2fecdc2b81722a28bc7ad3b1e4/tiktoken-0.13.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4d9980f11429ed2d737c463bb1fb78cf330caa026adf002f714aced7849a687b", size = 982970, upload-time = "2026-05-15T04:50:32.961Z" }, + { url = "https://files.pythonhosted.org/packages/74/ed/6bb8d05b9f731f749fee5c6f5ca63e981143c826a5985877330507bd13b7/tiktoken-0.13.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:3f277ebea5edd7b8bf03c6f9431e1d67d517530115572b2dc1d465326e8f88c7", size = 1115741, upload-time = "2026-05-15T04:50:34.475Z" }, + { url = "https://files.pythonhosted.org/packages/34/de/2ca96b07a82d972b74fe4b46de055b79c904e45c7eab699354a0bfa697dc/tiktoken-0.13.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:a116178fa7e1b4065bff05214360373a65cac22f965be7b3f73d00a0dbfe7649", size = 1136523, upload-time = "2026-05-15T04:50:35.782Z" }, + { url = "https://files.pythonhosted.org/packages/ee/dc/9dafec002c2d4424378563cf4cf5c7fb93631d2a55013c8b87554ee4012c/tiktoken-0.13.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2c397ddda233208345b01bd30f2fca79ff730e55731d0108a603f9bc57f6af3b", size = 1181954, upload-time = "2026-05-15T04:50:36.99Z" }, + { url = "https://files.pythonhosted.org/packages/a1/d0/1f8578c45b2f24759b46f0b50d31878c63c73e6bf0f2227e10ec5c5408dc/tiktoken-0.13.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:95097e4f89b06403976e498abf61a0ee73a7497e73fb599cb211d8197a054d91", size = 1240069, upload-time = "2026-05-15T04:50:38.221Z" }, + { url = "https://files.pythonhosted.org/packages/aa/90/28d7f154888610aa9237e541986beb62b479df29d193a5a0617dbb1514d0/tiktoken-0.13.0-cp312-cp312-win_amd64.whl", hash = "sha256:8f2d16e7a7c783ad81f36e457d046d1f1c8af70b22aec8a13238efe531977c41", size = 874748, upload-time = "2026-05-15T04:50:39.587Z" }, +] + +[[package]] +name = "tomli" +version = "2.4.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/22/de/48c59722572767841493b26183a0d1cc411d54fd759c5607c4590b6563a6/tomli-2.4.1.tar.gz", hash = "sha256:7c7e1a961a0b2f2472c1ac5b69affa0ae1132c39adcb67aba98568702b9cc23f", size = 17543, upload-time = "2026-03-25T20:22:03.828Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f4/11/db3d5885d8528263d8adc260bb2d28ebf1270b96e98f0e0268d32b8d9900/tomli-2.4.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f8f0fc26ec2cc2b965b7a3b87cd19c5c6b8c5e5f436b984e85f486d652285c30", size = 154704, upload-time = "2026-03-25T20:21:10.473Z" }, + { url = "https://files.pythonhosted.org/packages/6d/f7/675db52c7e46064a9aa928885a9b20f4124ecb9bc2e1ce74c9106648d202/tomli-2.4.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4ab97e64ccda8756376892c53a72bd1f964e519c77236368527f758fbc36a53a", size = 149454, upload-time = "2026-03-25T20:21:12.036Z" }, + { url = "https://files.pythonhosted.org/packages/61/71/81c50943cf953efa35bce7646caab3cf457a7d8c030b27cfb40d7235f9ee/tomli-2.4.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:96481a5786729fd470164b47cdb3e0e58062a496f455ee41b4403be77cb5a076", size = 237561, upload-time = "2026-03-25T20:21:13.098Z" }, + { url = "https://files.pythonhosted.org/packages/48/c1/f41d9cb618acccca7df82aaf682f9b49013c9397212cb9f53219e3abac37/tomli-2.4.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5a881ab208c0baf688221f8cecc5401bd291d67e38a1ac884d6736cbcd8247e9", size = 243824, upload-time = "2026-03-25T20:21:14.569Z" }, + { url = "https://files.pythonhosted.org/packages/22/e4/5a816ecdd1f8ca51fb756ef684b90f2780afc52fc67f987e3c61d800a46d/tomli-2.4.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:47149d5bd38761ac8be13a84864bf0b7b70bc051806bc3669ab1cbc56216b23c", size = 242227, upload-time = "2026-03-25T20:21:15.712Z" }, + { url = "https://files.pythonhosted.org/packages/6b/49/2b2a0ef529aa6eec245d25f0c703e020a73955ad7edf73e7f54ddc608aa5/tomli-2.4.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ec9bfaf3ad2df51ace80688143a6a4ebc09a248f6ff781a9945e51937008fcbc", size = 247859, upload-time = "2026-03-25T20:21:17.001Z" }, + { url = "https://files.pythonhosted.org/packages/83/bd/6c1a630eaca337e1e78c5903104f831bda934c426f9231429396ce3c3467/tomli-2.4.1-cp311-cp311-win32.whl", hash = "sha256:ff2983983d34813c1aeb0fa89091e76c3a22889ee83ab27c5eeb45100560c049", size = 97204, upload-time = "2026-03-25T20:21:18.079Z" }, + { url = "https://files.pythonhosted.org/packages/42/59/71461df1a885647e10b6bb7802d0b8e66480c61f3f43079e0dcd315b3954/tomli-2.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:5ee18d9ebdb417e384b58fe414e8d6af9f4e7a0ae761519fb50f721de398dd4e", size = 108084, upload-time = "2026-03-25T20:21:18.978Z" }, + { url = "https://files.pythonhosted.org/packages/b8/83/dceca96142499c069475b790e7913b1044c1a4337e700751f48ed723f883/tomli-2.4.1-cp311-cp311-win_arm64.whl", hash = "sha256:c2541745709bad0264b7d4705ad453b76ccd191e64aa6f0fc66b69a293a45ece", size = 95285, upload-time = "2026-03-25T20:21:20.309Z" }, + { url = "https://files.pythonhosted.org/packages/c1/ba/42f134a3fe2b370f555f44b1d72feebb94debcab01676bf918d0cb70e9aa/tomli-2.4.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:c742f741d58a28940ce01d58f0ab2ea3ced8b12402f162f4d534dfe18ba1cd6a", size = 155924, upload-time = "2026-03-25T20:21:21.626Z" }, + { url = "https://files.pythonhosted.org/packages/dc/c7/62d7a17c26487ade21c5422b646110f2162f1fcc95980ef7f63e73c68f14/tomli-2.4.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7f86fd587c4ed9dd76f318225e7d9b29cfc5a9d43de44e5754db8d1128487085", size = 150018, upload-time = "2026-03-25T20:21:23.002Z" }, + { url = "https://files.pythonhosted.org/packages/5c/05/79d13d7c15f13bdef410bdd49a6485b1c37d28968314eabee452c22a7fda/tomli-2.4.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ff18e6a727ee0ab0388507b89d1bc6a22b138d1e2fa56d1ad494586d61d2eae9", size = 244948, upload-time = "2026-03-25T20:21:24.04Z" }, + { url = "https://files.pythonhosted.org/packages/10/90/d62ce007a1c80d0b2c93e02cab211224756240884751b94ca72df8a875ca/tomli-2.4.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:136443dbd7e1dee43c68ac2694fde36b2849865fa258d39bf822c10e8068eac5", size = 253341, upload-time = "2026-03-25T20:21:25.177Z" }, + { url = "https://files.pythonhosted.org/packages/1a/7e/caf6496d60152ad4ed09282c1885cca4eea150bfd007da84aea07bcc0a3e/tomli-2.4.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5e262d41726bc187e69af7825504c933b6794dc3fbd5945e41a79bb14c31f585", size = 248159, upload-time = "2026-03-25T20:21:26.364Z" }, + { url = "https://files.pythonhosted.org/packages/99/e7/c6f69c3120de34bbd882c6fba7975f3d7a746e9218e56ab46a1bc4b42552/tomli-2.4.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:5cb41aa38891e073ee49d55fbc7839cfdb2bc0e600add13874d048c94aadddd1", size = 253290, upload-time = "2026-03-25T20:21:27.46Z" }, + { url = "https://files.pythonhosted.org/packages/d6/2f/4a3c322f22c5c66c4b836ec58211641a4067364f5dcdd7b974b4c5da300c/tomli-2.4.1-cp312-cp312-win32.whl", hash = "sha256:da25dc3563bff5965356133435b757a795a17b17d01dbc0f42fb32447ddfd917", size = 98141, upload-time = "2026-03-25T20:21:28.492Z" }, + { url = "https://files.pythonhosted.org/packages/24/22/4daacd05391b92c55759d55eaee21e1dfaea86ce5c571f10083360adf534/tomli-2.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:52c8ef851d9a240f11a88c003eacb03c31fc1c9c4ec64a99a0f922b93874fda9", size = 108847, upload-time = "2026-03-25T20:21:29.386Z" }, + { url = "https://files.pythonhosted.org/packages/68/fd/70e768887666ddd9e9f5d85129e84910f2db2796f9096aa02b721a53098d/tomli-2.4.1-cp312-cp312-win_arm64.whl", hash = "sha256:f758f1b9299d059cc3f6546ae2af89670cb1c4d48ea29c3cacc4fe7de3058257", size = 95088, upload-time = "2026-03-25T20:21:30.677Z" }, + { url = "https://files.pythonhosted.org/packages/7b/61/cceae43728b7de99d9b847560c262873a1f6c98202171fd5ed62640b494b/tomli-2.4.1-py3-none-any.whl", hash = "sha256:0d85819802132122da43cb86656f8d1f8c6587d54ae7dcaf30e90533028b49fe", size = 14583, upload-time = "2026-03-25T20:22:03.012Z" }, +] + +[[package]] +name = "torch" +version = "2.13.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cuda-bindings", marker = "sys_platform == 'linux'" }, + { name = "cuda-toolkit", extra = ["cublas", "cudart", "cufft", "cufile", "cupti", "curand", "cusolver", "cusparse", "nvjitlink", "nvrtc", "nvtx"], marker = "sys_platform == 'linux'" }, + { name = "filelock" }, + { name = "fsspec" }, + { name = "jinja2" }, + { 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 = "nvidia-cudnn-cu13", marker = "sys_platform == 'linux'" }, + { name = "nvidia-cusparselt-cu13", marker = "sys_platform == 'linux'" }, + { name = "nvidia-nccl-cu13", marker = "sys_platform == 'linux'" }, + { name = "nvidia-nvshmem-cu13", marker = "sys_platform == 'linux'" }, + { name = "setuptools" }, + { name = "sympy" }, + { name = "triton", marker = "sys_platform == 'linux'" }, + { name = "typing-extensions" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/7f/e7/19894fdb51c7dbaf94f5a79bb0871da0992e8e4241e579cb006da46d2e58/torch-2.13.0-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:94f0de129916f77b8dc2c7a8eff644cfeddfe59e39c9f55e9f6e17543410281d", size = 111178962, upload-time = "2026-07-08T16:05:49.855Z" }, + { url = "https://files.pythonhosted.org/packages/d1/5c/b1d5de470c54e339b30a92d96683a71bcebd78f5f2a7fc714cd6dc6bbd68/torch-2.13.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:0ab4b69f3ee03a62a002cfbf77b1ca5e88aceb4ea64cb4388bb28f638ddbb045", size = 427198333, upload-time = "2026-07-08T16:05:36.847Z" }, + { url = "https://files.pythonhosted.org/packages/50/c0/68a84105e1fcb8970144b388ff3d3e5dc15a3be28c1e247841f7d7247e41/torch-2.13.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:c78b7b4d04461855a764cf01bae9a462bb88bc93defcfa11235cbc8fdf3e12c4", size = 526555154, upload-time = "2026-07-08T16:05:06.507Z" }, + { url = "https://files.pythonhosted.org/packages/2e/c9/0bb9d097b03cbaf96bb75b15e867347b8e41bfcdfe0539452d17d9e63993/torch-2.13.0-cp310-cp310-win_amd64.whl", hash = "sha256:2bd30b6b730d987fa386ce3898933762c5cb8cc82eb0535211d787cc3ce2dfeb", size = 122015602, upload-time = "2026-07-08T16:05:45.25Z" }, + { url = "https://files.pythonhosted.org/packages/5b/fe/cba54dc58523434919b66f13a667e36e436deddd77ca519e96553617d4ec/torch-2.13.0-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:e76f9bcecc52b8ff711239a2f7547d5353df95878ab232f0773c1d95928b92f8", size = 111187938, upload-time = "2026-07-08T16:05:17.065Z" }, + { url = "https://files.pythonhosted.org/packages/c2/59/1e3160e18e12aa3038390efab3ce02b36a9d4d6a527ecdd8520dca2e68d8/torch-2.13.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:092790c696a760c729fd5722835f50b9d81fd7c8f141571f3f3cf4081a8f664c", size = 427199369, upload-time = "2026-07-08T16:04:51.054Z" }, + { url = "https://files.pythonhosted.org/packages/01/79/1f2d34ad7034ee1c7ffc1cf8bf0f8213af2a81df6ecdb3997ecec107c09d/torch-2.13.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:60fcdcb2f3876e21146cb4524ef06397d727ca9ad5f020818547e25075fe3cb7", size = 526574961, upload-time = "2026-07-08T16:04:07.075Z" }, + { url = "https://files.pythonhosted.org/packages/6c/fd/0f2ce40f58aefbdb3392f9acce3c8171940943ae2d661f70558bfa73befb/torch-2.13.0-cp311-cp311-win_amd64.whl", hash = "sha256:a0d8b11f16a48d60e2015d8213aa0390744cbebb98e58b62b3514dddc656e330", size = 122015870, upload-time = "2026-07-08T16:05:27.59Z" }, + { url = "https://files.pythonhosted.org/packages/c4/3a/ed0f4d4d1dcde03bced7aac9a28e800abcdc0cbd06b6775044c9fbd877b7/torch-2.13.0-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:2fe228aba290d14b9f31b049be550dbd469c3fd3013d7a19705b30454da97027", size = 111213045, upload-time = "2026-07-08T16:05:22.997Z" }, + { url = "https://files.pythonhosted.org/packages/df/a9/f6a2a4d763ff1df02e9a64c477029db614295bc9367f4131223791ccc243/torch-2.13.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:572df8be8ffb4599c88cbd6a0726f1f854f4da65d2e3c09f0e2c2283333cd6d4", size = 427210998, upload-time = "2026-07-08T16:04:37.708Z" }, + { url = "https://files.pythonhosted.org/packages/f3/82/fea946351658e6534db52d2cc12bc53087cbf87f9440c5f180f367c1950b/torch-2.13.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:796633c4cdf0fe2cdced72d8f88f22e73dbcfce83132763162f6d4bff13b820b", size = 526605292, upload-time = "2026-07-08T16:04:22.81Z" }, + { url = "https://files.pythonhosted.org/packages/21/d6/e8f3c6f7e01f626f77259de9860d2a78bc84c40539e28e79b7e98b0bb659/torch-2.13.0-cp312-cp312-win_amd64.whl", hash = "sha256:024c6cc0c1b085f2f91f20a3dc27b0471d021c31ce84b81be3afdc39f791fd9d", size = 122057313, upload-time = "2026-07-08T16:03:53.43Z" }, +] + +[[package]] +name = "tqdm" +version = "4.69.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8c/69/40407dfc835517f058b603dbf37a6df094d8582b015a51eddc988febbcb7/tqdm-4.69.0.tar.gz", hash = "sha256:700c5e85dcd5f009dd6222588a29180a193a748247a5d855b4d67db93d79a53b", size = 792569, upload-time = "2026-07-17T18:09:06.2Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fe/21/99a0cdaf54eb35e77623c41b5a2c9472ee4404bba687052791fe2aba6773/tqdm-4.69.0-py3-none-any.whl", hash = "sha256:9979978912be667a6ef21fd5d8abf54e324e63d82f7f43c360792ebc2bc4e622", size = 676680, upload-time = "2026-07-17T18:09:04.172Z" }, +] + +[[package]] +name = "triton" +version = "3.7.1" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ec/ea/629cc37436ca5df93ce98956d09cd2ca1498bfee8ef4972d2fe48b9f958c/triton-3.7.1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3daf64305d6cea88d3334c65ebc9bcd0c64c9564a977084366aa768d57cbcf64", size = 184551013, upload-time = "2026-06-17T20:03:37.551Z" }, + { url = "https://files.pythonhosted.org/packages/15/76/c79c34311625227a288df3e483fc5cdf3d596624cbd4b4758c4cbdc14af3/triton-3.7.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ee89fbf782ec2ad50391dd1cf26cbea4f4467154c37f4773026da8fc31c0f58e", size = 197596267, upload-time = "2026-06-17T19:53:06.898Z" }, + { url = "https://files.pythonhosted.org/packages/7b/f9/19d842d06a08559534fa1eaab6ca551b1bcf40f06620bddec1babaa2772d/triton-3.7.1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d4a0e1cd4c4a76370ed74a8432a53cea28716827d19e40ffc732233e35ceb3f6", size = 184664887, upload-time = "2026-06-17T20:03:42.913Z" }, + { url = "https://files.pythonhosted.org/packages/cd/5e/fce69606f7f240297f163e25539906732b199530d486ce67ae319877e821/triton-3.7.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6744957e9fd610a29680ec2346057d0c86948ed3812468670719f391e94b44a5", size = 197701306, upload-time = "2026-06-17T19:53:13.673Z" }, + { url = "https://files.pythonhosted.org/packages/94/fa/f856e24deb462d5f18bd4b5a746957862ab9b6ee5834bda60605ec348366/triton-3.7.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9497f2e696ee368862a181a90b2dcc03ca978cc4f602abd67c7d81022a6988e1", size = 184692359, upload-time = "2026-06-17T20:03:48.288Z" }, + { url = "https://files.pythonhosted.org/packages/c4/6f/fb96d15db6f36d6eae4cafb998c2e0353bf59d7c4ea1662d7497f269134a/triton-3.7.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7e40869937a68206ec70d7f25bb7ec6433cb083f9135e1f36dbd318dc449a728", size = 197719725, upload-time = "2026-06-17T19:53:20.419Z" }, +] + +[[package]] +name = "typing-extensions" +version = "4.16.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f6/cc/6253133b5bb138fc3306cebfbda2c520f545d36b5be2c7255cc528bb45d6/typing_extensions-4.16.0.tar.gz", hash = "sha256:dc983d19a509c94dba722ee6abd33940f7c05a89e243c47e907eb4db6f1a43e5", size = 113555, upload-time = "2026-07-02T08:40:05.92Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/49/d3/b8441a820a491ddfc024b0b0cf0393375b75ea13866d9c66727e54c2fc80/typing_extensions-4.16.0-py3-none-any.whl", hash = "sha256:481caa481374e813c1b176ada14e97f1f67a4539ce9cfeb3f350d78d6370c2e8", size = 45571, upload-time = "2026-07-02T08:40:04.659Z" }, +] + +[[package]] +name = "uritemplate" +version = "4.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/98/60/f174043244c5306c9988380d2cb10009f91563fc4b31293d27e17201af56/uritemplate-4.2.0.tar.gz", hash = "sha256:480c2ed180878955863323eea31b0ede668795de182617fef9c6ca09e6ec9d0e", size = 33267, upload-time = "2025-06-02T15:12:06.318Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a9/99/3ae339466c9183ea5b8ae87b34c0b897eda475d2aec2307cae60e5cd4f29/uritemplate-4.2.0-py3-none-any.whl", hash = "sha256:962201ba1c4edcab02e60f9a0d3821e82dfc5d2d6662a21abd533879bdb8a686", size = 11488, upload-time = "2025-06-02T15:12:03.405Z" }, +] + +[[package]] +name = "urllib3" +version = "2.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/53/0c/06f8b233b8fd13b9e5ee11424ef85419ba0d8ba0b3138bf360be2ff56953/urllib3-2.7.0.tar.gz", hash = "sha256:231e0ec3b63ceb14667c67be60f2f2c40a518cb38b03af60abc813da26505f4c", size = 433602, upload-time = "2026-05-07T16:13:18.596Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7f/3e/5db95bcf282c52709639744ca2a8b149baccf648e39c8cc87553df9eae0c/urllib3-2.7.0-py3-none-any.whl", hash = "sha256:9fb4c81ebbb1ce9531cce37674bbc6f1360472bc18ca9a553ede278ef7276897", size = 131087, upload-time = "2026-05-07T16:13:17.151Z" }, +]