From 583e80ae1ac6fbb7406de3b6fb23652b14ad4004 Mon Sep 17 00:00:00 2001 From: Scott Frasso Date: Thu, 2 Apr 2026 17:10:54 +0200 Subject: [PATCH 1/3] Refactor: modular Python project with uv, Typer CLI, Streamlit, and Pydantic Break the monolithic 767-line pipeline.py into a proper Python package with modular architecture, modern tooling, and an interactive Streamlit dashboard for data exploration. - Set up uv with pyproject.toml (replaces zero-dep stdlib approach) - Add Typer CLI with run, explore, serve, and cache-clear commands - Add Pydantic models for data validation (CleanedRecord, DashboardStats) - Add pydantic-ai as dependency for future AI agent work - Add Streamlit app with folium heatmap and plotly charts - Add python-dateutil for robust datetime parsing - Add caching layer in tmp/ to avoid slow CKAN API re-fetches - Configure ruff + mypy (strict) for linting and type checking - Set up lefthook for pre-commit hooks - Split CI: parallel jobs with all-checks-pass gate - Update README with new setup and usage instructions - Add CLAUDE.md project guide - Extract HTML template to templates/dashboard.html Co-Authored-By: Claude Opus 4.6 (1M context) --- .github/workflows/pr.yml | 70 +- .github/workflows/update.yml | 21 +- .gitignore | 9 + CLAUDE.md | 45 + README.md | 172 +- docs/streamlit-screenshot.png | Bin 0 -> 519858 bytes lefthook.yml | 12 + pipeline.py | 767 +----- pyproject.toml | 67 + src/boston_needle_map/__init__.py | 3 + src/boston_needle_map/analytics.py | 100 + src/boston_needle_map/app.py | 148 ++ src/boston_needle_map/cache.py | 62 + src/boston_needle_map/cleaner.py | 64 + src/boston_needle_map/cli.py | 137 + src/boston_needle_map/config.py | 34 + src/boston_needle_map/fetcher.py | 75 + src/boston_needle_map/models.py | 66 + src/boston_needle_map/renderer.py | 35 + templates/dashboard.html | 395 +++ tests/__init__.py | 0 tmp/.gitkeep | 0 uv.lock | 3735 ++++++++++++++++++++++++++++ 23 files changed, 5162 insertions(+), 855 deletions(-) create mode 100644 CLAUDE.md create mode 100644 docs/streamlit-screenshot.png create mode 100644 lefthook.yml create mode 100644 pyproject.toml create mode 100644 src/boston_needle_map/__init__.py create mode 100644 src/boston_needle_map/analytics.py create mode 100644 src/boston_needle_map/app.py create mode 100644 src/boston_needle_map/cache.py create mode 100644 src/boston_needle_map/cleaner.py create mode 100644 src/boston_needle_map/cli.py create mode 100644 src/boston_needle_map/config.py create mode 100644 src/boston_needle_map/fetcher.py create mode 100644 src/boston_needle_map/models.py create mode 100644 src/boston_needle_map/renderer.py create mode 100644 templates/dashboard.html create mode 100644 tests/__init__.py create mode 100644 tmp/.gitkeep create mode 100644 uv.lock diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index b590a40..fa6e4ee 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -5,28 +5,63 @@ on: branches: [main] jobs: - lint: - name: Lint + ruff-lint: + name: Ruff Lint runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Install uv + uses: astral-sh/setup-uv@v4 + - name: Install dependencies + run: uv sync --dev + - name: Ruff check + run: uv run ruff check src/ tests/ + ruff-format: + name: Ruff Format + runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 + - name: Install uv + uses: astral-sh/setup-uv@v4 + - name: Install dependencies + run: uv sync --dev + - name: Ruff format check + run: uv run ruff format --check src/ tests/ - - name: Lint with ruff - run: pip install ruff && ruff check pipeline.py + mypy: + name: Mypy + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Install uv + uses: astral-sh/setup-uv@v4 + - name: Install dependencies + run: uv sync --dev + - name: Mypy + run: uv run mypy src/ + + test: + name: Test + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Install uv + uses: astral-sh/setup-uv@v4 + - name: Install dependencies + run: uv sync --dev + - name: Run tests + run: uv run pytest secret-scanning: name: Scan for secrets runs-on: ubuntu-latest - steps: - uses: actions/checkout@v4 with: - fetch-depth: 0 # Full history for comprehensive scan - + fetch-depth: 0 - name: Pull trufflehog Docker image run: docker pull ghcr.io/trufflesecurity/trufflehog:latest - - name: Run trufflehog scan run: docker run --rm -v "$PWD:/repo" ghcr.io/trufflesecurity/trufflehog:latest git file:///repo --fail --no-update @@ -35,7 +70,6 @@ jobs: runs-on: ubuntu-latest needs: [secret-scanning] if: failure() - steps: - name: Send email alert uses: dawidd6/action-send-mail@v3 @@ -55,3 +89,21 @@ jobs: Link: ${{ github.event.pull_request.html_url }} Rotate any exposed credentials immediately, then close or fix the PR. + + all-checks-pass: + name: All Checks Pass + runs-on: ubuntu-latest + if: always() + needs: [ruff-lint, ruff-format, mypy, test, secret-scanning] + steps: + - name: Verify all checks passed + run: | + if [[ "${{ needs.ruff-lint.result }}" != "success" || + "${{ needs.ruff-format.result }}" != "success" || + "${{ needs.mypy.result }}" != "success" || + "${{ needs.test.result }}" != "success" || + "${{ needs.secret-scanning.result }}" != "success" ]]; then + echo "One or more checks failed." + exit 1 + fi + echo "All checks passed." diff --git a/.github/workflows/update.yml b/.github/workflows/update.yml index e0d7eba..a46c361 100644 --- a/.github/workflows/update.yml +++ b/.github/workflows/update.yml @@ -13,10 +13,10 @@ on: required: false default: '' - # Also run on pushes to main (for initial setup) + # Also run on pushes to main push: branches: [main] - paths: [pipeline.py] + paths: ['src/**', 'templates/**', 'pyproject.toml'] permissions: contents: write @@ -30,26 +30,27 @@ jobs: - name: Checkout uses: actions/checkout@v4 - - name: Set up Python - uses: actions/setup-python@v5 - with: - python-version: '3.12' + - name: Install uv + uses: astral-sh/setup-uv@v4 + + - name: Install dependencies + run: uv sync - name: Run pipeline run: | if [ -n "${{ github.event.inputs.years }}" ]; then - python pipeline.py ${{ github.event.inputs.years }} + uv run boston-needle-map run ${{ github.event.inputs.years }} else - python pipeline.py + uv run boston-needle-map run fi - name: Verify output run: | if [ ! -f docs/index.html ]; then - echo "❌ Pipeline did not produce docs/index.html" + echo "Pipeline did not produce docs/index.html" exit 1 fi - echo "✅ docs/index.html exists ($(wc -c < docs/index.html) bytes)" + echo "docs/index.html exists ($(wc -c < docs/index.html) bytes)" ls -la docs/ - name: Commit and push updated map diff --git a/.gitignore b/.gitignore index c18dd8d..e1c272c 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,10 @@ __pycache__/ +*.pyc +.venv/ +tmp/ +!tmp/.gitkeep +dist/ +*.egg-info/ +.mypy_cache/ +.ruff_cache/ +.pytest_cache/ diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..09b057f --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,45 @@ +# Boston Needle Map - Project Guide + +## Quick Reference +- **Package manager:** uv (not pip/poetry) +- **CLI framework:** Typer +- **Data validation:** Pydantic v2 +- **AI agents:** pydantic-ai (available, not yet actively used) +- **Linting:** ruff + mypy (strict mode) +- **Git hooks:** lefthook (runs ruff + mypy on pre-commit) +- **Python version:** 3.12+ +- **UI exploration:** Streamlit (with folium + plotly) + +## Commands +- `uv run boston-needle-map run` -- run the full pipeline (generates docs/index.html) +- `uv run boston-needle-map run 2023 2024 2025` -- specific years +- `uv run boston-needle-map run --no-cache` -- skip cache +- `uv run boston-needle-map explore` -- launch Streamlit dashboard +- `uv run boston-needle-map cache-clear` -- clear tmp/ cache +- `uv run boston-needle-map serve` -- preview at localhost:8000 +- `uv run ruff check src/` -- lint +- `uv run ruff format src/` -- format +- `uv run mypy src/` -- type check +- `uv run pytest` -- run tests + +## Architecture +- `src/boston_needle_map/` -- main package + - `cli.py` -- Typer CLI entrypoint + - `config.py` -- constants (CKAN URLs, resource IDs, bounding box) + - `models.py` -- Pydantic models (CleanedRecord, DashboardStats, etc.) + - `fetcher.py` -- CKAN API data fetching + - `cleaner.py` -- raw record normalization and validation + - `analytics.py` -- stats computation (heatmap bins, neighborhoods, hourly) + - `renderer.py` -- HTML dashboard generation (for GitHub Pages) + - `cache.py` -- tmp/ directory caching for fetched data + - `app.py` -- Streamlit interactive dashboard +- `templates/dashboard.html` -- HTML template with $PLACEHOLDER tokens +- `docs/` -- generated output for GitHub Pages (do not edit manually) +- `tmp/` -- cached API responses (gitignored) + +## Conventions +- All data flows through Pydantic models (CleanedRecord, DashboardStats) +- Never commit secrets or API keys +- Generated files go to docs/; never edit docs/ manually +- Cache files go to tmp/; this directory is gitignored +- Use `python-dateutil` for datetime parsing diff --git a/README.md b/README.md index 6fdabf7..b7d2d0e 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Boston 311 Needle Hotspot Map -Fully automated pipeline that pulls needle cleanup requests from Boston's 311 open data portal and publishes an interactive heatmap to GitHub Pages — no manual steps, no Tableau, no paid services. +Automated pipeline that pulls needle cleanup requests from Boston's 311 open data portal and publishes an interactive heatmap. Includes a Streamlit dashboard for local data exploration and a static HTML dashboard for GitHub Pages. **Live site:** https://coffeethencode.github.io/boston-needle-map/ @@ -13,86 +13,144 @@ Fully automated pipeline that pulls needle cleanup requests from Boston's 311 op ## How it works ``` -┌─────────────────────┐ ┌──────────────┐ ┌─────────────────┐ -│ data.boston.gov │────▶│ pipeline.py │────▶│ docs/index.html│ -│ CKAN Datastore API │ │ Python 3.12 │ │ Leaflet.js map │ -│ 311 Service Reqs │ │ No deps! │ │ Static HTML │ -└─────────────────────┘ └──────────────┘ └────────┬────────┘ - │ - ┌──────────────┐ │ - │ GitHub Pages │◀─────────────┘ - │ Free hosting │ gh-pages branch - └──────────────┘ +┌─────────────────────┐ ┌──────────────────────┐ ┌─────────────────┐ +│ data.boston.gov │────>│ boston-needle-map │────>│ docs/index.html│ +│ CKAN Datastore API │ │ Python 3.12 + uv │ │ Leaflet.js map │ +│ 311 Service Reqs │ │ Pydantic + Typer │ │ GitHub Pages │ +└─────────────────────┘ └──────────────────────┘ └─────────────────┘ + │ + ┌────────┴────────┐ + │ Streamlit App │ + │ Local explore │ + └─────────────────┘ ``` **Key details:** - **Data source:** [Analyze Boston](https://data.boston.gov/dataset/311-service-requests) — 311 Service Requests dataset - **Filter:** `TYPE = "Needle Pickup"` or `"Needle Clean-up"` - **API:** Uses CKAN Datastore SQL API (fetches only needle rows, not the full 200MB+ CSV) -- **Output:** Self-contained HTML with embedded data, Leaflet.js heatmap, and CARTO dark tiles +- **Output:** Self-contained HTML with embedded data, Leaflet.js heatmap, and CARTO tiles - **Schedule:** GitHub Actions cron runs at 2 AM EST on the 1st of each month -- **Zero dependencies:** Python standard library only (no pip install needed) +- **Caching:** Fetched data is cached in `tmp/` to avoid re-fetching during development --- -## Setup (5 minutes) +## Setup -### 1. Create the repo +### Prerequisites +- Python 3.12+ +- [uv](https://docs.astral.sh/uv/) (Python package manager) +- [lefthook](https://github.com/evilmartians/lefthook) (git hooks) + +### Install ```bash -# Clone or fork this repo +# Clone the repo git clone https://github.com//boston-needle-map.git cd boston-needle-map + +# Install dependencies +uv sync + +# Install git hooks +lefthook install ``` -### 2. Test locally +--- + +## Usage + +### Run the pipeline (generates static HTML for GitHub Pages) ```bash -# Fetch last 3 years of data and generate the map -python pipeline.py +# Fetch last 3 years + current, generate docs/index.html +uv run boston-needle-map run -# Or specify exact years -python pipeline.py 2022 2023 2024 2025 2026 +# Specific years +uv run boston-needle-map run 2022 2023 2024 2025 -# Preview it -cd docs && python -m http.server 8000 -# Open http://localhost:8000 +# Skip cache (always fetch fresh data) +uv run boston-needle-map run --no-cache ``` -### 3. Enable GitHub Pages +### Explore data with Streamlit -1. Push to GitHub: `git add . && git commit -m "init" && git push` -2. Go to **Settings → Pages** -3. Under "Source", select **GitHub Actions** (or `gh-pages` branch if using the deploy action) -4. The Actions workflow will run automatically on push +```bash +uv run boston-needle-map explore +``` -### 4. Done +This launches an interactive dashboard at `http://localhost:8501` with: +- Folium heatmap with year/month filters +- Plotly trend charts and hourly distribution +- Neighborhood and zip code rankings -Your map is live at `https://.github.io/boston-needle-map/` +### Other commands -It auto-updates on the 1st of every month. You can also trigger it manually: -**Actions tab → "Update Needle Hotspot Map" → Run workflow** +```bash +# Preview the static HTML dashboard +uv run boston-needle-map serve + +# Clear cached data +uv run boston-needle-map cache-clear +``` --- -## What's on the dashboard +## Development -| Tab | What it shows | -|---|---| -| **Heat Map** | Leaflet.js heatmap with dark CARTO tiles. Zoom in past level 15 to see individual markers with popups. | -| **Monthly Trend** | Bar chart of requests per month across all years | -| **Neighborhoods** | Table ranked by request count with % of total, top street, avg response time | -| **By Hour** | 24-hour distribution showing peak request times | +### Linting & Type Checking + +```bash +# Lint +uv run ruff check src/ tests/ + +# Auto-format +uv run ruff format src/ tests/ + +# Type check +uv run mypy src/ + +# Run tests +uv run pytest +``` + +Git hooks (via lefthook) run ruff and mypy automatically on commit. + +--- + +## Project Structure + +``` +boston-needle-map/ +├── src/boston_needle_map/ # Main package +│ ├── cli.py # Typer CLI (run, explore, serve, cache-clear) +│ ├── config.py # Constants (CKAN URLs, resource IDs) +│ ├── models.py # Pydantic models (CleanedRecord, DashboardStats) +│ ├── fetcher.py # CKAN API data fetching +│ ├── cleaner.py # Record normalization & validation +│ ├── analytics.py # Stats computation +│ ├── renderer.py # Static HTML generation +│ ├── cache.py # tmp/ caching layer +│ └── app.py # Streamlit interactive dashboard +├── templates/ +│ └── dashboard.html # HTML template for static site +├── tests/ # Test suite +├── docs/ # Generated output (GitHub Pages) +├── tmp/ # Cached API data (gitignored) +├── pyproject.toml # Project config (deps, ruff, mypy) +├── lefthook.yml # Git hook config +└── CLAUDE.md # AI assistant instructions +``` --- ## Configuration -Edit the top of `pipeline.py` to adjust: +Edit `src/boston_needle_map/config.py` to adjust: | Variable | What it does | |---|---| -| `RESOURCE_IDS` | Map of year → CKAN resource ID. Add new years as Boston publishes them. | +| `RESOURCE_IDS` | Map of year to CKAN resource ID. Add new years as Boston publishes them. | | `NEEDLE_TYPES` | Set of TYPE values to filter on. | | `BOSTON_BBOX` | Bounding box for coordinate validation. | @@ -103,36 +161,6 @@ To find a new year's resource ID: --- -## Migrating from Tableau Public - -If you were previously publishing to Tableau Public: - -| | Tableau Public | This pipeline | -|---|---|---| -| **Automation** | ❌ Manual publish only | ✅ Fully automated (GitHub Actions cron) | -| **Cost** | Free | Free | -| **Hosting** | tableau.com | GitHub Pages (your domain) | -| **Customization** | Limited by Tableau | Full control (HTML/CSS/JS) | -| **Data freshness** | Whenever you remember | Monthly, automatic | -| **Embed** | iframe/Tableau API | Direct link or iframe | -| **Dependencies** | Tableau Desktop | Python 3 (standard library) | - ---- - -## Files - -``` -boston-needle-map/ -├── pipeline.py # The pipeline (fetch → process → generate HTML) -├── .github/workflows/update.yml # GitHub Actions monthly cron + deploy -├── docs/ # Output directory (served by GitHub Pages) -│ ├── index.html # The dashboard (generated) -│ └── needle_data.json # Raw processed data (generated) -└── README.md -``` - ---- - ## Data source All data comes from the City of Boston's [Analyze Boston](https://data.boston.gov/) open data portal under the [Open Data Commons PDDL license](http://www.opendefinition.org/licenses/odc-pddl). diff --git a/docs/streamlit-screenshot.png b/docs/streamlit-screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..6d74c11bdc31be7281b970976a1f6356e2890ef4 GIT binary patch literal 519858 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

I-v<)1!k0UCdX=I}Ly8J2Lx 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 z z^Ze>wg|6m+1>WwVq*RLly^coifUdmzGW=2AP`WAIOxR!Ml?5RwGzLvmeZt zgYvf4Bf2;8QfIkg`qQb6>@y?OjjzYW-GBANXLo(tM032koUIw6EmNYLVnwyUCnYy1 zbTqy!`e7=X<1k;Dm!vTaBh^UF=g~D^60++y#CM|Of=pl6ln&X3=!em^z3$_1?R0tK zbf&(zIP)M(`!d!#c9*2672m{k3y-?{9X~0=-&jbH1~_GteMOpg_ilCX?}Sv^gLx$J zhZW!Md!OQac8XtB0=o6OP~2|L78w99NswP@HSf0ZrR_w$&(SP-*Yrp$fE$`Ew5MtR zk4yjcG!LBdPf zR7cf%+_?KbJp~7V?nrMerWS~R*N^t$p=0Gd&ldiVy*{gHkh^$DTl`1s@VxBS`DX92 zxBq8FzvEueR`2Z%DHjvk`^F4t`E)ri?rHI_{^PBks=6X<+f8}xP({BK=n&#PP|53U z4|?0WrSW?&z3(vG1_OJ+<&bAo1O8vW{@(l6JCqXB!ou;u_ijky2A;IVKG(9M}S zetxsao8Jscxt+=k>uc1C4b?##=ugTNhG~i@g>sP(t8y;ZbmiD<5?7&Uz%KhFu=e#K zhZYJes>-gt4UQ8Py^*<6f70W7<6?C1<@1$`ZwjttKwOWzUQWA8*PHZ7YfTxCAl5sJ4}wB~H+)@1LCzN){~hL0~z+Xv)S6&0+Z?$$7fSlcf04g+H{fBrO* zsH&R@o7exq^PS7-Kua^y0^~EBHQ5s3E=ZLozwZ)#YtTJWil2K`PPtyT z@sBMgLH2wC=bE@HKk*ZF`05Ux7-}2TJ<|%|ITnRjj9#DQwRuIrlmhp_6@5WP#4OJK z9nr6Tcud%p1;h=V$|NQntIuXQs+9eek^-uBM zij1WlUci+3%Wv--wP=F{MK7Eyz& zL!VKTs+7*5QsoAa`BBz5R06tgj#{VUq&`*oTA1P3(}815tnKqYCdX zx7bDax4dnR0F#gUBYRX>c+XTj|4z{+GG2ShUF_l~=jnR_l?KPmw`Lqg&Tr9nIhOAA zcX|#C+Wlzvs0=d4S;*Oj)6{aBHKi`xznm88MjG(kne3Q$83GutE^_m}&Rd}K1B#ty zf6@Xgog8W_8S(9Xyu8d;{_!nTd$2jnNO0%V6$CW%BI=9TwYvO% z$D+pmadvM2C`;%V|Aj*K4({(yu0I>}?x3do%}46ciKyca4z#`1i41p4vf= z*Up>h-uu4`_Mks3K6I=cBtFl1ZyZn||7jWn2k+h=J3o&jDj@wDA6RU~HdyCL!iAN!V|q|`S9?koVxd5~iR5E|)I zy+5+Rbs*_84Ne1$G^lc!r{(sSIoY&N{2Y;7JSC!5F+=(HLja8{Y%Fmog*)=k`?`$`aL!tl2JKa?%E>EM1VsCbjA+a#ElC57x zfHR4+$v1#u;AX2^wBm0Ht^)h|d-as?Y4F5;^jGxXBz)A0I1&GdwcoykK$WXZ#jDi@U4e5Gxz;s=2a&N z;Tfar5(o<@Ke^KId-+gVZ2h-;-`oLg-M1!yqi>~kDn5_kk4YkJ`AdT^X!B#gKQV0& zx(@d{K|E!8;T+T;?Qpyae~|LO2Xrk6^mI=o=R)3(GfR2ETNa?|@_O9s2bT9d(#J)E zq|?zX9($qp>)2Kh$R17nb;TrpKLZE>ld6wJ5gj2)IX(MA4)R!QdjsPG?O#$i@?ugV zK7=1|gWuWSE4W$_L<9gW04gnjI=z?MJy*XUOoU%qz^4FE;KzL7{=c{~o@@LtsN2R0 z`u9lqQo^tk3G1kb>9?nNB{7T!Q4Dh&UfdslF8TkuEh!l3sA(9hxUhZgGyanW4|8$W zkv)aZP4u(sTua6MJ6uz+7Qm5big`7oZEh#;JDcNZMzEy=Ev(@MgK;D>FMiTq*bK>8p91S;UfUC2 zvP?%*|89hSol-s+@MSIdtgOMIXDlWccKf2*f&RBcct(Gy02=kv=N+|8n@eSpP%P#+ z(^;}vxuziN+p@lzFLH#MrTsBg>{A|htVa{NOAFkQI_1~DiKPK`yXCF*1Gl2r zM00V3M+peA=kke+6v6tEhhs|>rcIbs)`vLTw`(q(kMNZ_gv`*NlQ`QeKd)e<8>wJt zdf&tKiNthY|H#5-m}!~hSexotMWSpm_U9^5pJ%6WZ!$ldiHJ-HnaI3gp+asA=r%^7 zLZ;nghVIYbdW|xU0v>+?*(78Wev89sDX`?Xcnj4G5oTb;L{MX9&*M%HG*3)rl z%@N&n{pN?L<5LhD3U9lf6`r$NrXC2++HrirhSOn9&>=uQzd@KaN;@ZoD*oVA$yT9D zMx|cPo*SLz1jeLj#%GoNeYGZtFYZ*6v)dv_RRY6?x<@tZl3+I_9>3oZG&)(J33G7k~YWj&7;M&31SOYAa01*jtT8_eFUs z^~4+x!6$XEhrJh8bqO^W(#7%|o(Gb&zlQ-m9J>+ba)rO}1?8;9k2f%Fzk?*z^TzV!FL@CcLm zH`m|sNMY@}`+CJzeJHpid5tte!H`=}J`6Ynw)BYYBAXJps>a8=TIwvE_c%F&l zcu(SyaNiZgEYPza;Qz{(1y0+W_F@qWYmK8a!Z`+~_+2;*)ZZ?RBpFYSjWJf5ZPgY< zyBmbpTx?rc8@T?ZRiJSv|9M@VwC85%E0#^Ocd6zBAg04iRCpOiTk5R`ie$|6pa@c%Qq;)HjAl{&tNU3B~CTNsA!L%#by$#mUqR=_{lXbPk*!PE9Wm@hEO z{?x(&Ygo`;@|Q29#U$iEEBp+f5W`k&Gc2}F-YYDzx@9STG#(5P!p6-}cW zHc$|RiNpRHPaM#5$6)F_CJNB|)+vPMa$vL-3nf|Yi<4T+Z&OfRa{W$iVv-hRSXoq3 zuz?#~5fx82$*RP(yx%=Vz}+OPN8Oi7H|1KO{mEQ;C-3VxhFIaxn2WK-OUTC;BYtey zXlHthW6z0q8E2U6z#Tf!6H ok|V0oHas9%|6NG4m0F%MbAkHl@!+O=$ut;b2?u6 z1LsXDc-s;&h~P9tl{dUH#i?$>u;}L>m1L4zxI!Dk47CADlxhigL#Zw+Ikr>542yw% z<7w2o?gM{9YD|ebOI~u1C$iXD2^ktOeJ$GIWPD3`??~BibF#)koMWojdu_5=IVZ^} zIm)KkK^6Nh(lUz?-~1G{niF^*8)V6m_foQ{BPFm zNi4p8QhKPGe>rvHi)s`k9)~8rrt*>s*E)ZTSn@h*hzdS!BZwP;9_y<6S3g=*3~o>S zBV7_F20~}=N!G6`EgZHM3IbN|o-SMjdXYHNMp(w=B*1rC2hCe=p^%cE6A2bUVc}IY zI?yf4TR4xMAg3>?v4ht;Ea3WEt?Rd_X1nbk4xzgNJmKvw{n3SOw0DWO|CS5m*T|o* zNJ0B7gS`OA7t&Wp(zmo+g(DQp`S_QW-f|i3fNuNe5&Mx|z@yYQa(2-~Oy1mzP)0Af zLZkQ3i&&U&H?aIS&N^f~?_Cji%M5%b^%Ep|`LKsRw{&_6_KrVG89dLozIXQ?ODlpe z75z{DlQ4k7cYUs&{YkZ`HOZptpC&^X6vw+hN}ODtYVNN6-fRAURzocm5iVq5r963V z*<0H(t63`Z?yWJ>Uw)DWF|a|l>sKe35Jp?>^G$<{K=TLJWq85(idshNU+_h$_RZP` z-EPF#%FC^`ojFW+m#H{(9$i-bajPrE-!;`?mJ6DOm91>S&PU2oP}t!g<&vLs2%HTs zZ$1;wA=t~OLnqa(&eq0i`p#3Huy<;HBeOPwrP4!0jg zs^A}rXr{w9Vuuv`O%h4x?2s$NhzPY{@>`B&EHv9Gq*mtLh&DO0LszO?5lu8&-z7I( z5ybvzUM-nx(^VuHIh0ue?8EkY!~%oRx@%QOn3?i}l+UWLKgy=D?KHXr(Tb}nL>1cR zGXNW79M6dPi?XRP9^VL%OC#66d`)(vG=bOobgzq3TptmxH$o!~Uiz|!-o(=J``Oqi z2)*wXZBDgGUb>TbwhvYHSn~rqAst?+{2mg^$p51WSqX~RcVTJOEH7E9vQK0FX{V!=PydILPV8gb(THB%HofGc zq`KpyTJ)M+4dHjM)MO`JI;`@(jY?Kc%Ic-oLuHB(wL zMb)7o*qI>Ca_WlE_QNu*W|>HpkNCBLicW-g^RYT&%`=K?hk|-m!RfP#;w)jO8mjSz zy8!(>=I3(!Y5vbUl$7uirF3U9=4m*NXYl6~Rke(vKP+65H*i`!u58?bnv-5zn^aIL zeJ0vYOE2Dt(*zypS#f?12NP=FZETG#So``6 zHv0@+bI~5BVFH#Lme-jpv<2h&eoK|=s*(eNG(6%LX3{5$_=TnSR0ptI>vw-ocD2 zNY}pYnQZn;zjpr=8207g)8+Of8kq@Xs?~q_exVkG2f0nt2QwHvV;H>t%U`BJ`&?k~ z#sz^p-aYTR%A)qWm4a->Lp~G=S%U{PgZmG!1KW&gc5b$OJdM-yS;}AF4GFMfz2oRlX-t;wpIMb)(1q4Y{7q!JMKUz)8k*oqWunA)6)-yMF_ooLo7)jl25| zZo}YNedV*;(M{8hm2gl;*BW7nh~Bj5;W3?$E&HXn${L^ozwfi6ijn~=>1W{QD*DtQ zw0~mU&A1pU?Xa%41!PZ~YK}#Y=y2p4@BP}ZIu>W`ro%PUO3L(-S3a>!V)j>;=Opae)Rt&jHJ_>Nx`=7Q*kcIJE;FQX`-`rVU$L^`;oEzXg1r_wizEehy<3Mc1%Bl$ESQDfeb*|JD+u z%qzUcq9y;7f>=bmS@tGA#JZcYoBeE$iDxdgxh&w;{ODds`An$-9!>#0z zbBy$Ti`HVS#!zTiR8_kk2IUx*rRhh+sqGNlTr# zP$((7Z9p2CSeV2_=_|i~fIX@+ReF~0zRdGa0rX!}S2i_7O_-g7;HTzlmXe8c*DlCg zH{7+Hr-Vr7hn?{$!=;Xgq=O6@a>xU2{F@e^`+AOuC=QIjFl-la2W~#2ZQ$ykf1dmK zkkz&Gaj4^tg@AL4koCN0Hc}8?&)v4)wub)$5AE&y$FVK-e>?{NU569^4E-t{Jv^?{ z0B1A)|H*}YNs#+WaA<{X|DNBdyU)z1&%FWXjOqIt1IzuqhTD%dz(XLg@;6S=iNRYh zK(crY-~S>W{N>Jzc)3O|hopB8r`Bg)(f?4x&(*7H?No1L?V%SWUidM=3;f>+ewX-c z#aM&Hr{EVQEA6WvFF?p3ila^#BiZ}>C`UF8No8hw2HHKZsX``Q>K>jx&TGer)g74I zr04!Hf%AUIFCdUJlSST6MqT2<@vC!TRB@h2PuY*Fv8wxKSnW5lD3#izC0Ci=mFL~8 z;nn>k=JVK&QbsB44f|;YLX4w^2KoWLOpB^O*cWcHD?zpVA}ilWljQ)SK36MM=5+EW%Q{Zj~OBpN*bs|Aqxp!Mzg2K$@o zF;!I14z>elW|qlBE`LgoQHulu#lFY!s3pKm?dJ=yT!#}>uarm!$Tho0vr#u0;nNz% ze6)p6BV#7ofWm#G7y?q-@j$H%qT**Xul zpBX|n;vu#6Oos7>{DykpbbZjvn6Amx7oD7(LV&;Za&C`9iv9FFJRG&H+{u%9CB0En zTu+B4i}QHK*wH?NPsy4fZOs{|dyr%d)3XcT&oq!Qz#4H>$fkmKT}>sn<}iC{4-~mC z59QCQAdU8Ex6!sy6>_j7qM4UUfSNC zKhkk94dAi(_csg>2PvoTIz}!0%U5E(HsDr|uf>_wOQ^x~aB0u;DRAVf%@4F@@Qw-@ zed~Ji?mF-VHwoXV03Pyi8WfmvdSBO+ja(+pr{21O-k``QpXJ_rrM&BH|6Q}Nk{-ZI z3>ky)oWBDN`J?=QF3SB@@6Of?x%7ajhjDlCH=x7me8Pu_V7*+U+wP>*y#0}w^*3(T zX2N|@-R|HPcD}mc>W)9A{&(YY7PA^ z&{ZYSW$`%BM1z5u{@mbDx3tjm>&mjbL!apG#l7hhOA@+QkDb8J2FaZ`^gdOn%9hQ0 zUk&cimZExRY%1U7v?)0h>GCQqlv3OmO zPuXs!eto43Ss)C(<9q$q^dY-4!gm5=p z)2EEThpS1G7{3_5I>Jc*uorh?#Gi>=#!izsA?m8*(`{#ie<%>$y=j{LWiYgVN8-0aWlOQ z8=}4>(dbK=uV1BW%ZuUkf`-4up6C%WnQ2bIivJRdNp$uTEY@S$bJ$4e$rUW*=8HMr zvni{rW5dHJ;eyHW6HrM|PN1*dKjCzK8omfd1CL?;kvBEWiT#f^@JMXxAflQ^OzNcw^i~rfSPxk*O()T_CNi6Nz7h7hr zT=Bng-FEp%Kdi=GDvo)&3xYO1K3vtpSG7JATP|MxySuypO!!U{bKf?yDefB5K$w1J zUXI&OdC$^$=-g`6q^xHh!e8eeoNjcUto-(S-V>O|&Of5|q}otyf{m+9^v#*H$#-|o zmydh`0Ze&BBH_5c_zw0oQ;lAnk%-aEbLRJmrCfA5 z7YuW}b0gzXJhlpsXiJ5hA<2@JFX+WY$y!l8HTTVxqTAfa-fBz6rtAz+o?qqQ$Wd!% z_B2u@v_7o|VjEv(OrvyZ%es^P96#Cf7%E60vRcMw3~%xy~x9r!6mM3>If=*TIos9 zJ(HTkAT5_&H9$zKuRLcNRU+{m^-h{;_(Z$u#j^!AVwl%4Rlh&xgACEHkK#9yL2e2|a}nB09OjL#Vabd4?H^XnJ3_7; zvYb|_%crZz8s!jNbX4?63a#_+c^!Yb=VQ|)b-x^|x33<3Z!f~j6_O99?o16Zoffg? z+mo&zl;@`knj=2iLKn{x#0|^1u(^w|ol2rjI{ponuK&ILi)x|SeQDfWVPZ&3Qp+y( zp?K0u!l*bA^{H{SX<8KO*N9klZ8t9nBM2t~e}r+>*y1w34&&gDLT$z&HpTYKXGDte zayr#idWT@NZebP~pYiH`=^cuws4ma+d#t6;+9bw#Urdyf&QK*vF9r{)1->*ce7_vw zEw9p80iniJP(oJBeH_IV&k~8}heuH9qgJhS9o|%D&uDG&ygLmePMP{EGrPQO7_aG{ z7dyu}SonqVc36dKf7pkpap#ddZeo67v|Kc%YA^Ezn>OCkS*R+Ia-Q)fRl0~fFYI^e z_eIxOTQ%V})+hf82!*YyAgZ!+*hQ#xuIYl=;>x_k*C-I+80@mEkr122GFf*!7UO3- zN>r#a)k)LGsQKUs1XzNupt!g1Az+T|j!F$?NRA?;sP`=+uXF|ytN6aYg8=DU z?|HZxKlKMI0!At8lNLUtJ^!WOX1)i(!Y97H4?4XI5tXyyek)SotyYh_DYv&MjrTQc z-%g&S4UG>qfp|OC|D#}4WprT!?S1O?K=I`hYvG4G0ers>3T*ZK+vwBiu{WR0IPck5an&<1&{It`4)Xo*6X~p=SAPoWc29&}E?PCq)?0n>wW|!Rr%ozS zN}@a|tycQ3W=%&@HF}OeW0I3zSGcO^8{3`1F*9L4bfac1O$X@;r48U}-Y3HG*p%yV zIrkj9sc3|!7+}js+9R-*7~&OMM~^7Y!S?bgl2^et!BXnbu=XVWIa}>Lv$0A#I)_q{ zQe?nWVJ|I;s7X-Hc43&Ejw2k2;$S#8dzHOu#Vi{L((AFsaV+%eYzcja!I9v)3y8FK zb`}_NJ5jDL;aq5d5pKMKFCRSriIPV5L#p_z@E2@QK>Vr(ohOM|f{GYbHv;fSvF&da zc>bt>Rp>pt(D+4beu86qfp8WM?unzpmD%ZGy^0sqEu4)K6BRZFk4&Tl${3|$JkEXG0zAo-$w9P{G-!w5Q~-8)u?)8&QcwFeD8;}bD>L{T;?wpP>?uQ z#iXzL*BNzlaWoOh_%0l}tWb3$r#-)s2`br17d+fN+m0_-&cHWG(HBLY=|z}Mb_sEQ zp>1`0dje(=y$dOgBpMc_x zEWrNOz)csHbEUaCNV(OuQ2tZ3R=?exk}o#nx~Nco{8tLDR$d!5`AgZU3#+pm>;aZQ zZW3agCBIcS+=v`;#lq^W-E~NF#TiU(kO39Eo`>#kBXlJ>Nf+<+8S$xZw`^*2!qH-k zMz?2CUu%(=C#ezt>k{_yyG_4bp&#X#+57|COX{}?-=V7mRH3?>Kf^&`mOgzYiy;qO zT4o%anS;Z&a+W9Dsr1x0yuC4vW}K*1Cph9aPhrCMpot9Y(42SgjvTX$?W()GR-OP> zgIj$dSZMn#I7~ji_py5W(H?LRyuDqw@X&1{m-ny=5ixlD*x>`I%Y7C#d^f{Es~GCN z#qqCW7?AS3*O>)HoNpk>{etisdHYf^=-h_p&H$Owk8}m&nlXV!9&|S!TQ>jJargEe zliy6%sR?Vg!A*(*2k7KK@o@iq=EI*5P7XnXHCI{Tj{N|G#Qqn1SP+a2g!P;U|Bp2~ z+FiAuzeca~mEd+Cv2iyFP6l>TTUPgTWRT z{N}zxQa&dxxv>t7lI*VFYk~KEn$<7BQAmsl%crgQkMJi?-%qt`PTaqIKQzY2kn%Ng z-l24N))!yAg!5pBU??7aA(Y$HfmKyuVZw>=rq`!Gmt%(vkd#hy)PZ)BbOZ_t9aE{H zeiIQ&hy~w%(cKCw|F0I1F(<(hXf{RuS$T|0v_rq)Gy*%bJz>D86TUzd*G|})xwwvX zmyjt|6HYx;U?5K!_g_&qg%Sb&V1?y*8#K17QF=o2iG_KYd@HN3$w56aeP{K)CtLO^ zSkT3n)z{)iQLSGLEQ2*uzzSOyKVLZXDWyoA`LC5atVy>0(s?6}`jv{&gz+3_h{84UeoO$GM0c}M&rM}Wxj2Dzen_U+Xe`;$03SyhCgET)DBL9Wr)1akWI zxX3@ZQ1^d?6f&~bWQaEFcZ4LqTd%q#=c`M4G5fl}M2W;|h(F7enfGcr3N{!g4PHiG zxn#p&JaVBbAmMNoA9g82)&&o3;PA=fa&TafpQrt_a2u8XmB#d3MDvz>o-kFyquU)YE(DCf0c3HdBoM8`X)v}RzUyfMXoQqA@?J6 zK~)&SVb#CMDt$pZq$Lh$-g|K zRNHPcA!~Y6kIy%Wxh^j6UhZSZRt@Tec;arwfAL0jE^OSEvm<4Wl2=}@TtqQzAG<5| z0yPYTiarpIt2!f*e5`{u3gflP`V3w>JS>x_6ORZIUG6H5GT-fe@#0N6@g zXN|E36787Yc4V2&8PpGo4Ic5;d&7Cdlj)W44D?b6?Hw8<=+hd!%)GZqJ`kPQO7R}e;0Y)H!p#7d^6{7d zxqZ)4>)Ss?(0M08k)amkKHR4-4V2{ntZtvuC>M?B{?NJ+E1MSA^FjEzZv0Rm`uneX zpd8Nk0at&7?|@*y0t(B?g8g&Hhkp3?YEuAwp!gb63p(>}U~pO@hTZshdZg0uul$sb z@m7a1QX5>n;d?&gd0N{0;YxbU|M>NEqlfz@!$-!4WuG{Vbhs;3y^(C7nTmy|-tHJ;8X+yh4HE$Dr5mkn8}a8B6u(YfV3HERvH(4?4eni8p}h7nPzf~-H} z*eU6f$n|B+*h%gMsP&7HlH`!$gD~jVSw8hUn6x0)SE>L6T&sBesXCTF9jOI-nqiUT zgz!8xtP&_hkDL$fX+9IWtUSd&M$(~W02U>UB$^_ zVqaVZ1S$m*z+dPM;iJr>W5WDJiu*&cAEnn*Ipz>LmvE7XUD#Z5?64is;>@(}f@}yy z{tvf}IC4v8B<}|gCoW%~UQ)|sQyW}aqSMn|VV}`nNSfTlC9^kXh&g9xh4R2%^i9TP z`lfbienk0zHf;K0W3I=iNgwH$3bew1ZovF}TKOr-I$XtRW|1}GV1A|~ZN<&dkd$bc zZv0)R7ZJGK%wI!PMcJVOj`93xD^Hy!LufxD@y;m|?5l0I53q#KYMlEfCxv#p58TVf zzNfFqXX5XKs0G}Sq^ap8mp&@xKN&5&i5H>Box`>}2Dvdu1$?{r>cSl9Y?Q1esJ^dV zTZPOEdm1ON8b?jf=cdKdYOI+B;}NkQM$u%x_9wk-TOQmno<1g-*1nn*A27WYJ5okd zOm5ijsd+Cv>x^5Yo|}vW8w>GZ;GD{j*Jk3W-!S>MCcCLnNQ=lUHy}ebRRQJZZWn^< zHHhWX0EHTDS+Sba~!!3lrK2x_}a-NRBrAY+>_uS^QrZ zuE`#e|z4qrr8FyD-)$I}dj8+h68a#`bi>cLur#PfjfkpQ7j5d4hQ zYPYG+c=R99$UkW;ulCi#;7PIPB9GwvFyI=r&7UC(nvPvqXf*I&tbD5({qP!~<^mGt z6^VHR&sg90@On?QR_Z|>OC$RDUH?(X?bE-6om55xR{F}Yf-8RFHiKVYaQ&UEZfiE} zT4Lks4@9}NKGU-fg~^o=cnimxUP)7!s;jHla4y$=&2#5`m}}5i?Z-Zx9v%tHs=~Li z)VUVus~l*s%a}?`O^r+$-FRu^Zh4A{rCaCjAe1Bi?8MPTMITmJ;%;0-{(+R#8&rH1 z&QDB=W3@@TuRcGuZL}Ty`Ni}%X(4zvgc-L?hlp*RSdzbkhP+Ewy*wKO67BMF+z9P{uF-Q7mquH$U=1^>lbDVj9mNm*T-`n<7=dnFX?|MZKd8>ozui3^8 zLxnEh_j62fSo=MAR0G2dBb*bvji21|fwteEi>#08()lokY4vTLgDWp}=R$r{8mi%p zuhGhaKbtwTJT?+?%2=YeT^p{dp`3iV)9Km97NYoxc0!?{4Z{t?Y-MJ77?QVq1^rY@&#^SZ3_n#N~}MJZ^W^xWkogqa+voZVBZxaU*kFpg!@(_#6u;z z`pFdzs5e`I*==pj;~F9ypuxhfuxcQ)!hM;3)U1#O8$lTT^_xX0KOlh2flP_; zRMCMEg)$ryS_!Hk5$-1)&SLUUOpzco&8o?m7!P1esk6Ja+n{~5eO7zko4%>3q~yjJ z?MfPr;`774on6b+)qH=HK|nTB!b` zSntN8inUq)>du+qqS13k-22 zZ=hXd>;b%ckPTeqn9CdQhV43!d>e9B3BY_cR^A)uuKRQKfICv_>;e3_DAm60jMLDJ6oe~)|Wi{!MM7Je!Pe^ z13!wokSc6Tx^P^+?i-zl|9?Dv17jWFvTbbJwr#tyc5K_W8z+rzbH_Fs+fHNK=YF z4KJHpmBo1(Hil@Yb;4<;%0&iU12q`4d=-VRiwB>5uC6B-!i7ZVpjHVy2| zs1w1(hWt$N$t;?UUjgICR3T{|jTi?mt{J@x>-cVa)x^m!is#hn^trY=a(D4`{_ygk zF1|~0l8LZYTIv)Xw*Ix)L>oB_3rS9ltUbPrZUcZO^rEG-&E=i^tA1yAiyobi`!Roy zI~yf8nJ@Xlu&jm2p-U-zkV)LaWTxk3V0m7k(9XYCC3ppN8Hu4O$VCo3jA3;Y2t4jyc*g&(L8yRzMjPDd%z#FI1xp+ zpkUn;xj>AC7LYDB$j;ZI*lN6zblmgVtH#R_l%;oFi`w1xq`z=~q5ls2{Sf||{eB31 z*%f>W|K9#P|97sYWd*wuv$3vaMW-)sgJav6FYjk#fX43wlBFXDPtwDogT=*|&CQ!$ z3!Kr($rv2^1Dn~JXa+zQoL(H&7EH|B8B^cZp(|(;6>84Z5cG@@1$9Lgf+d2a4lPC-?{i|7aJwHFK zXYeeY^ldau_v6Zo48S?Lpytw--J!ADG%Ajgr}8nrEPKpxUywx_VfoOtvmn4Rw8QlL zHp8QSkOS5atRzIYVSJTR7$G?*MB#+=8eO#k_MR$}Y!}1ZmJoX1J4?H{Y*2rUnHzME zl*CUeLb9wrKt_#57v7ClOKw(Kc(KX{4=T$L_VA+7X)*HzGVuvXRqSD5yo9?sga<+y zqJjxq1MZ}*VgN0yYT0o`ptzRf6WwnaW_M%I3X1|=f%2)px=wJ26y8X=N?~7+?f>Tp z7$=lZxrdsHv?u7vYwqD99|}CZ4|`;&qMy~dVWd#FxraDBfWi|x;WB#&WX ze@g91ufY<)lhY^eyv~_6WV82`hU=*B@u4!@6^Z+5y;8dYyvDvnPT>KIFf=Uh8E z^(<*~nkuJQzSYC&7FmDho%hiQALz!b3KQpc%d~N_mB0KV%8)9#+I4vm+NVF5NF{!~ z=b!0@JMtV-yB)0A!FS6PYS@0HF%*|}Ac8&#Xlix|SL%33yk zyN3Gv!aqOCe=D{xwfg&P_!4LIMbnbdth8D*OvKup9_8o41^qNW=h9@+jjo*f?i9K9aT^STh1m5(2R}uhEqN0c4ayY8`_xbUJev-kOYU zvNdpM+bm>O+u|lsCN5~0Y-B^n5XLi@1_EWhC`E%qokg10}JKfA)_YyxLzHU#v zuFgA>7_1(?A6(3K83K9^qz&Gd=bKj0=*DAab&lO9Cu#F$PD~Yk*%`@wYP;{SwyDhL zu;bt~lV&wP*@u6{kizm0sxwLGPRQsAxP&w%pTzi>_FC41uzNnGWcosgSDPyN;G^^&w=_tnC2pLCMs|BZibxDIH87G=}-o+I*N_Z%ioQu1? zV?$$$OYiBVUQkh~I%qMI+b-)iJsgQ%B0gctq8d4)E!T`o{PkU(IM4!Be@MqH%zOM8 zQl!5w0%6N(m<1NltdzPPrGb1BIRN_5UakP_6+u_CM1f>#7Vc|EQDkx=Vw)4D@0~Vf z0DqMy1_RXJBB0MP+%7i;FT!#KM1NNeAeGp)8Q`19Rfu$CxieyvUT&_aq&m_Yus%sFiK^%qP^2IIhPKeRhD zez#4SrCoux@^#GceCJEqy}w%!9snOFHiBRh4$;&Nu0ae4GeoTY#8S6A%zu?f4hOPY zGE`p^j?kv+9gT!Sw&?BC_gb)#x18Ug6+@o!8Raj+c(at?!I?m}HogD*&g*mG-Hm2R zFY>8c^)Hwmzd}!hM*nX7{S(-FSoW_!{5ux-e{Et$R=8MOrr?+dN%$2s%jWuq*r2-? zaR9zBdMdk^g*K?mA32&+Q>TD$umX7Hgu}#S5co`{hC2bem&ooHL$3 zozH+ypA9U&s~rtOpx`7 z!zEbMOZVz@!q!IdaNv1%+hyaXSzCwmmbhC%4YvJp$EG=E>D0udS+1dCI<$-#(ro;U zoRQp={&G5qX56s(y^8su*pPK@l-_>;xR|=Z%?LJpvz^Uy?1uzRKe9{z6fg3&_cPLK z*&c5B`AX&Hwqd+mZefQPXMKZ>#o^$01O!coUhXTd{SNsCyoPCm=3fc!zs#hzN$iHq z5<7PS6^v#5jpKjqfspzvTSPHfEpl+XSSKWl^wlP_FAFFn7bNnZ1R5nS(Mbo4nU@<( zWU?%SmJRw=&brTv#$vXij0`e*8fcl%wuGV^EVlwWB#=;7M5QVfg8;!T&v`hd=4wZY zup0Dd)PLnglpxgo?{(!d=ZH4}HzuV3Mtf~+M+2zCnNCAjDMpPYn`%ub*U?6%YN&JY zt;C+G*?YMLI46(fh)J%UfhRoU0XU(j8Or;bpM7p%48)*(xnV$ui!3+R@f(igP{IcD;bs-UTlMvSr4WdJ8XGotW0BX#5D69$N$Vo=1Cm`6KTL zACC6ghmLYJeLc#+#4TW;TC9%AtHnM_6WqwAKa@<);?!JHnx3Sdj|JCPb-nr}iHN#S ztQKrZtP`M7>(XeMxXi+ax0_Fk)*dgDfp(dNhaN9cby>$km9_+Py_i&!Kkuu`K^fuGK}Yh%-}kCNZx{BN)WWx6>`I69W-1wx{+QSr+aH zdN+HR5g%zsD=NY3{hq(d~k!-W^je3 z`8kP^bj;+9hn|G=Bt9|o_GsP?t*lS5;vrs+0D=u6!tneI1JgtZb>g7_Bp_vjJSDu)&@Lbe!iv(*3D zG(T-D(lDLz@miMSh0Rr{-;45Y?HJ5+k-=Ms6L2b1TQ*RmQACD?QS)%7nTQ@_w(K9# z%><}k|k2J#kGzQC^Y$HEML>t@9dXSY>klO_!!sOx4QhSTqAa{ZUxTCWH3!v zUvZ}qZ94MVFaS7yQV(1!3`XraCI9bql0K}tW^V(ah}1ru%cX*3Lb zJy2@;(ulda>X`RYX;8gV6EQ(rKy6al*WI;QssvV;G&Yz4V-xJQ?Hd+uM|IDQGs2m+ z9<0G`PoRBA)leXqeYJK9K>7fI?=Z|%n7AQ4+9%tp|1^eHFyG8R=tej)J_4k^r($9}9idAPeoh-Y&REd? z)K44K5_Hc5Ijxx1QUf`>Z;A|IG;orPCE!qRwZq zuZHh|LHSoTh-=rpc`7hkbD^wh^75Ws77woGUsfxblS_k;wD9ksuw+f+CGSevoJ$xC zMYl;L13HO8gC<(kuXo^j2{NeoFNu>qQ(KU1`ta)GXDi(JD4pwrXKiyu8jQbK+7zMf z>O&wnBQl}kD!gRIhAv47mS52y$6LXA7(yaKa>MMS)e@Z4rqWZr?5q>3oMxPN7={xN z&VPdyxlrk-fNh$KC9q--UlklG(+LH?{E?u-VXqgSA zImVLhBIQFs(eDyryxu~kOZ?7Tdm7F56|>z2fPTJA-5GT&^zt2m9yRR6!K-mBzlbrd zq;OcO?*!Q2=k2$hs^k_qSq^GVn#e^jqGVwo=G@fwvHoyG%()nL%RH_tSX9UqE?`rJ?1p#Se zh2k6Pj|rj~fS=b>g;qhNsr%x6a;tiBVzRHoeGTCd8gaMM*uvfB!?tXp`8KSif+f3v zqc2{auT=$khuQ{Fa_?gy_)u_ckGo^rd{z~Sq5j=LypS;+d5VXK!Y5e2%g^84uuv7O zwYq-8+iBFdOXd|^pBH~hhy1+PxbLn`0nqdY%exN8I_M3y6e0@!)#p>{ zfwyZzmOK}})In>5Wg5nYO$NcO_th5HzYTr=4>~IN?;ZeWmisr)vG8kA)W`9n_~NT5a`$0z12= z6**;M3|s(QhPsU?B#BSy>QdW}pr6^~+(WKZ)A_&bmaR1T@vC(cvXsZ`;Eb#ojm}Zy zJB(s)=2xq7J8^>R<$Y4*!dL*`v^;zL$U$)DsS3eh|CFYOMusTtV>Xa} zfbt(qQMInT9N9cX;`C!GQ2R5T+b9QWVg;~zl}?3l%b5vh@{>B3=!BV^MN;dlk{vAQ zK~{p4XDzosA%9UL{p#b;Px2q!5hQyU2OV%(40Y+ivXFcAb+cFQtLBk{h^9j$CxD8y z|5_OAv}!HH70L}^FE2XdMW%J^xNn9Lp5I^kuP#7CrOh2NU@~M;Qb@8%Bew};hH+#N z7fIKLmT6BJn|~q2kL*{kE<(?7JHceHhI?u2X<(gzO$kmrfaBtLEZ+sHaPkagf_-S8 z66s`}UDwm+9-(Vub=)K}^_TY{0GkoxA}`PE{sDJnVkfvxwWi_DSGi_-ha}t`Bch4J z9sstQA2ADYTaD(hKoK{JN0`+ru_j!GMe0)Mq zG3n{+?oR1Ad^>pTpKUHH` zk%YcMK>-^ZL}?Ze2T~39cSX7`AST8qF`TBuZ>nFnSKFg(3_hZw@+~`-v0Tlk>o>kg zdP$Ib0jPXE!N{|oxfHL@ZWT85IH&i-PeNmUu)GFD{_Y>d`V_SAVq=sKeaVf^fkdZ# zh%aGg@M1@qb?3rICZJDVMSdluQ8KGA#i~HPc9$<0WlX4qsr5-|$en0wq+RG!x}T{| z@{7eLco02RAPSFm5#6UGX%b+&FR$$h-+RYuh67U&VSe(I%7HkDp7g>+(0&S}4F>4=Dcb??@gGY z507rm)~hVwunI%^Y)15RV(e!^=u%80o^zb6sEFn*BK7ok(7P}}euhqmh_zb>ormir zEVA~qoM5S^wCL8WP;BJG%Ju{cvnWY#3!1@OMze79`16DnGagG=m=GZ0vh6`ZLu&Yu zQHaObVa*V5=@wk%(j6*6?`&jUqIK&Xx!9j;-)2)G&JX2QTE*DK-x>{unOxTb_Nw&j zrH)!g1(N5PkpJCPgv~PQh=n&Ahpv-!b-;wO4XC*Uf>_6_=9}+8toNWC_0P5Nx8>oH zors`<0Gfhkocjz`C)$fOLLCsajAydv&lFx> z;u)Rhqkx0QxuQwW5k~zQ_z}Jgt`y?-`&8wcy6)TiC5UKDuT%`%103rn5`eo=ktR?e z?Lh4^x)2eM6Y{mQLf7pmGODJ(+KaMRRb(wmS#nlLSL;X5d9r-XOjL<&WraJbwHz0` zjkzgMzodU9E8iHo?;k2u`{Zg9USnI^vQl3wc6(4WAjeAlJD_V5;cKl`e|6%~Uw{B9 z=6C3A!w^el4-jm%%sSz>ip4)A)4ch2-6j!|(!DN~R*315LKU3Q=d1m?0lbn_Zgw2Y z`M@JRXSoqn8PCL{llapi$zy^0kMf&W%kQ~1`OQ5a`GI|zI>e%M2L&vXoxCH#h5L|p(*s%KJBV@XQyO= z>)DnNj#Ov7MXWQn2eOTOjw0g2G~deik!3hx9M0@(wDX0K3&M;{rt+Zqj;&m`S;OXz zMS735ENP~W3s~_(rh5%{Vx*894bec_hpa_{3YBSNA}2sS#ZHtibNg+abW7yL{MKw z#AHy+oqZ!G(vH#9nTw*U*&cv8l2mms-$1L!`p1t=y#d$*Iw?0|TVFvG|6377ZT6vh z(CBI@RVA7J7>;o|@d43%-(a8-hhg|(6Rr1DxA+?80s#Jl)9XMaHj%GDPi_PX6L>Z^cm+0IGA!Qi?&~8ON zT@IEgT_Hp>Ebo5|TbEhOe^vcCY}D~+s;(dr$Lv6-OJhsmaG^xEZh?fj5XiJ-n_-`Z zpr#c3krsjvdy=#s}40*>30ornbc19&1OEe6@N{&ab$I;Y#; zu5%S@4``^0kT`uRdqUaVh*E*v0e2~--P3CLCCs=>D$`-iw~Jl@F7g$dM1FBNsnDex}zO;5yZQTzQl)*)B#n zqlB=7ai__mj(LPt9|}WW9~q16NhL_F;Cl}&CMRajVRynNagmZND1X$O(12+?5a4Lt zRTVxj{0qaHEq*01MtTWN6$6Qfg_HP8@^A@|yFN?%Y4SG$N*hb?syX%k)3ja@sW8@Ju%5T%Qfj0-WFFnhB3V{gMWVaASxACHc5=;mS{E{!i!uc{Y8_>~K zr}3v{M0Y&_YPiPbE!y-^P<#X8Ln62`_ShLxD64VWLRbVC>&i}HlWUUt@!GTK^TLX! z3D;Csb2%D#uw{aBKja_*_XQ9guzW3q5qQ)M#RIDOGHnwkO3F@<9W6*@fWbL|17UC} z%0l*(>1H+1WZYuPFQ!W$nN}&3@v@LIV3M}ly8Zi<;A_oitm!YYY$t0^EXAcb^8|_& zB(qZ|H#%Re4ZXFU@{*rtNhqmYh7*61s?Ev@1=e2A$y@xEt^V4W+W4|NzPztSD%#?z z%dn~*iP7^DTJW5^Z_Peq^(@Z%YGB9mQJ>}*nwo1sii_5=EK4vDkC8fVcZJbk&9wVI zH}*1rOEietG~69Yi#34NKU2;z@jQ-5)`83suhG{=?+#aks&L=0q5swysrEp!S}xPL z0%?(Hh>4#ts3D@?FTl zz=QQ)3QKbO|RPDh^8RMq*yar9blrpi8s3{+YEcg-YF6m|v zkyhE+&W?^Ji}_^V4y+Sri81W?trkh?IW_~`XN_{~&+@YA!XFB& z@RdFU-$SkT=Bu09;OlH8WlfI6b7WdlP+3{`sMB_1KYN@TwI5hKI~`K26oMdiMLU-M zJb{Tu_h2(1`sUsnv>$_5a5)~h1*0r^U=)bnP>SQtJ@Bmy54}eJ&0}}a!aIyVG@XO~iX5a^R6v)5-^t{u% zV}eeAfv{N%mpzJ~>zd<&1XWVn@Jqyzwji!zo4uKk8J#w5I$wz=_Oo_YgVZwMinhQ{ zL@JWrZoXM!>+xI&Gn^WEv^Lfl8|eP}-Nv=cOAQapZwaYBRwsm^#Z--%{MlP%w8j>o zfzn1`F^*c+h4objPb{}Y=X-rWwY-}$Tte_cnu_?L1F1XF9q85(#W9&`OsrbTSP7*l zhrUPCoGHEyL!uFiy_QE4Hl}u0)x7{OSkLzyHFXYhS$j8FQOPHEp!~VM_I4d?h?wi}qvJ0N1-$ntl2V9m&!m1+YE4GtUGXFNAr#<@~71n^ufQr5n^IL zVHm2<(xeq0?2i7}-(M|$7qfj;TQ|I9=1|B+fS>z~+H zN1)b3kQsY_?=KEbPq)as5fKw_wjOk&*Y7X%c8^@W{M^1aX=pdA1{eiaf^0Bk!-)bj z_@C8MU>`qT&Ys;JgN@WmR?VAf`>kXGOnysgII2n)wJcGn76R0S;H1L$rUi_U7kg7_ z%Q8*y^ib~YC^$*kPiqU*dd;0AL2L}yW!`rs9yF|K%y#*jilf`pe^_tYMVtvnPSrVP z-ED9l@aRD>|LiOAJO^@QaGp?yRUQwB9SLL-mKMF-&+lwcSUjc9=>2Y_Ci$7EHkJQq z{yNO22bL%PMl(elWV;Gu@Aa!pPPZq$Ko3v`gW)FS6j^JBxfgfqo&bYQ>8ru=tC=NK5> z{7l;&TPQX}#!?zB%hl)=*zh8wGW{9R%=iABt4pq=B~^_D$=dRa5+1#-YvHyJZoz8j z?3vKHI5$UJ9uF0&mbz0gps5u4f-CWR13w#5UGIp4prD#@ME{RPEr3cnHx&VCg>ZAxGGcL{gP% z1~)g6T9it(P!)5V3KT3bePu_F?7jAP1lfg51s^CSmvp>Ka+~ za>}wj5du1l3o3PB)tb`LaAC-hjYD%YV)luNPT**-2Ot{ZgVN=nU~6rVUROv^o>K+W z@p2$ve4YUwWL~4-I*xO;UGE7hJD;^vc(PEtw3t3}WM=jEmJ*0gV7#Qh^~|%zFPluk ziiCe*@S`~yYtcq;6!8*Lq1ufGA|y<1+7Wy_FSMI46b~(dPx^N^5cOd6h8^t1Mx|QW zzyBm0>iAxhcWFVUaM|fT!5R8f>K8&=Fxf7Hi!-aJXH`3>2WZ#ddIYEMJyaempyZ0I z!#B~R0K@4_qQjc_P;+9#F)NQ>@N&-z zYhU9y`Y#q>?fMg(hZ{7j3*OCINC?iOXL*$&O-=#7%wLZT0=gY$=9__B~ZTgLvZJ9IkW-rR; z`L<@Z(eDO?gB9`z3l#-J?RH+30eWJM2-PG(Aw09{9r2PESa9;w+O5O;gq}@YoEj4s zIAwdE%wSI=+s(KZY)XU4%M}hnABIKuygZXm`%gx4-MQ+@_{#NTR!D6H8cfK6XxPRd z!@lZ@HyP%0EPeUMrx;vHA)X`q>sh$q)+|m%oaG?+#!=?+9~6(v9Of>QV>8ple9QO5w zT4-I0nvS3UMA7c1OSaO9XoDsewxy;jh(N;ESdwLO>jltCE+6Ff3wg- z!~t`79kfuYzgs}+XJ`q1C(WWUZ6*=vLrtkyp0?4+KXQ0dPNq&zj6BEWeg&dvJ0}~2 zIAg42`cUcqXG#G^PXU>YHlEHNhc?)0Nzuy9V@RcCs~AE&XoLP~W^TXK2)UYAa;sh!>Zt!f9;67*g2D->C6s5DVY?Qj5A;>&rEVIFpyB`6~ zSdP?WR0}5Eq`KGW$-7ZGhLS{gKAf|LX8Uovf~PzbjU z6ARK+4)Q+ZOH?u5r3j3hV20Z{A*QLJ;fnmmM{xa^ObT-#nz=wUpyhrY0N)O4Pu4tE z|L**Mn#O-tc$@@?}ZTQarBqnsS z76;948i~td4;9+$k{-#g8i3T63n=OiXooBYd0#>w)I-pr5pKhK$f9THYmLMBW>Q_0 zOP#KO8fP9`8`;`gLQ#d&8N)BV%f_#fg-g~3ZRCtP`;ANe_Mc(4`}NCc$oNSYY&plK z3?{?!36$;B`3dOJ;2r4_?_z8OMdpxpo0!B8CvAC2ntg3ltB&iAXw?H!Gg6gjYM-hP$WixNu z1@s`88`-F4=zIi~E@O#~hn6bUH0GYgyrSl6zN?U*>EQ)JyW@=bmE>QE(s~QHSKzZP zzZV%^w*PdW-dL(tIZ>fe*@QPj>~|xXY>aM0?#o`ajrOH8|8jvd@jpzU=Qg0x09n z{gmPbI(Kv{aIPcOHuKF!t3I%4mL9_v*H-!@)h)BwNdJQ%wR|J|2S<%r@eI}a$59#> z#2!#QoiEFIAAf(}9UpH9{H{JZtooMfwwYQC%S11Cm~K$otVIv<;gQ#{+MK+Il1UwS z!7>mDQQ^<-lx?7Ln+rCr&Ao{|t+NR$(H&=NW5RNrlM>i~uM_|{ZkU@00WTSe|D<|3%&-mC zz8uqAbY!ujF{g#Boaj)rLUd1H8&Uj0^(mOr_J*2QRj1I9znE}sh5i6;7Mk{tIe8Vp z=q3#B6$cBkKaV;3^Z;X7L#s@-!qxt)Pq&1q;aiSJV`U>BS<*OznA5BzWt(+Z4K#cL z@o;k(L=)+qaPEhnQ|IXdwFG1`Q4nnC!P^BR?$0XV65A;ov!LVwi$O^%wD3r_*igIE z%=6;<<@Te^-^jv(t`+ooaMt58$LuVhUq@9Td(clc)~>L$6c7HaK_Zq<3-TCL7ez?P z95Sp*2sS#&h7a6O=2%?h;qEx(S`h9-M~PlO+8-s2GllG=G(kGrBfqz7oR4PtJ#=JW zTPD6DXqo)wgzy3vN{-BuLxf=sA?Z-Am|!rH?HZWo<9(9C2T~tDx>@Or{?PHzC2d=w z&Ek*qYKxE9iE!v{+QsC$R-_u=zkGQcn1M46uWXlP z9ss|I^On60{>JL753u@7)tq z5&<8j+ENaAElo_sRjB;`gPZCE?)-O7vK^vPVdQ~)Di$D5e)`%6ZeEF5eHf?w_5FH3 z3ej|*4v139=qj&4s~xUG>Xj8QEH`J5l~k_2Fx?2!Bb1g2DGxhdHfR?h0|Zxk0VyXp z;Lhk`50V>e>>&IZ-e_)ZCW!qKaW^(I@?1ojE2bFjJ9Kh_qweB449-o2<{~ZBtO`qv z00~QA?nMwv6MpriHa$-B`RU`i6LOE0o9?aXNxn|ej^le;qW zcJy9Jrk9q}1#6%xV{8kXTBefG88mXI${WMu?RTd41;Lp*4jw2c42-2FKBPEb{AF+b(D zAWbd>0=gNb`xR0`?l}z^kKYs5; zLXJFr9wJ{*#gDK3wtz=*@B8oT#pR=;g9C%tHL1woLamJLg^)FQ@S#uAR0@kAZFrg5 z@KRU4nb%#_+``?v$cvFoD?IC!fPj`^M11X|mv9Aan?8;Knzi2Y(lLGzO%9|G=iG&# z4o#xR3IZ@5shRE(YKyu3f;Ut!Cm_p*0~9FEY={HrJ-0Su4S0O-c=C|G!L0mV(5BCx z3b?rizhe;QZ;%VD5lPEgp221h%|qR>k1-&d$;*AR7sZ2#xWL&r;HifbP~xsNro-gj zS^hZsS%3*ch>-EyjGm6}CyCjLvev_kY1Ba^Z*+t!yiq3j5qvgfj`xg(iWnfi!}0nn zC}+}zWB!v%W{x`0B4Wyjc;ceS4hIl^#-Q@7FUQa8Fz0+F)9PccSza;5dXV2$QQbXm zHBg=SO2@0i&}pmOioUi|u~K_biTUT%WkHqLGP%HBlKf$qr=yM?eBPhI}u1IdN9PWyy(<62Wvs)do0!!_QR~%hG4}?pxZI*WP-~uzw7Bs7_ zOla!F%>XsovxDq1b#=ZfI7WNh}$xI*ZlQhg+i8YoU8T%D2M~Dz5Yi z_jERsb~cNwX5B63HVD!?1mSpCL31P-=>#P+OS$v-eZx z*2W7i5kfc%2;CRWv$DgHhe2<>Tt?~vNH@~#2?=-p2fhMKlHDo;E|?7asFO>Mviogr z;{?TPAGH?X+gPZj^G_tBFnPS0s%J=MV`8J-Pv|3C4XZc}2t)tZoCEw%S@2Er_iftm z_I$kldDfs=Ik@}h7mC4VUSmytRyuVi{4KLd)hD8nnY~Ps$6XA3(km)zoe4IKNkyY8MaOS+mG{avYLb02}pKJ zA^yLMH*x*PR0N~O(!VW4$+|g%3;&A+G`861TZ|&d3w!m$sG*emn?Gczz$&)UB`HXD zSkc)3&?738YUKtM&=T)Qd60DSU02dM4j@|yJ#JMWrumI-N*9N%b9unCO>$-7%*CeU zQz`)!QQS2y3g-{1kPpjBr7184^AlbJ&@> z@5J^-CiqUozaHUcMJ%G0s^2q5$M;?l9L0TJUac5vk|9oK1Y9x@%ucoYwx6O+qIF`z zfl=B~Y?mPo5F`NV{Oh=pWHcxlF8p?7(QIrl1pE0OMf`El{dX5ByuZK_O;UJ63L|)Z zYrJ4i;*S$l5u~|vqcsls${(10poMV|DEGgAA<3T{o`4!nE>|gkv(+fYYut@MuRWM=xXlgO`;3Lv#7nb~etDKg)qx(L~rx%_-~h z?G;DbU)6NcQQk3?nbquP=RxX(*fmxgVK43II=O#O5E$!w{+Cr|R;D-8|2HP}TKRvz zo{hw8y4JPa{G?S}T@_CJG5b4#xW2y59quS`mbS_7R*JOUI8r5pfJWwPu)eA#>1E}^ zqp#043;ykdM}*(Y?`6Da<8T}_(0MNnrRkE(=tRJid?K8wjZ|wb zL-i}nimR)zsui53|H6@hhM;{m@sF=)kzz(Ue6(g;n0U0x`dDWG!*tqu1d2~*Cjx8YzMgggp{s_H3oJ97?Fi4QYpQ$z)B;*yUcI{HFyP;XkSx`;pc z=F&Vy^CJ^6v+#K0WW+UeA?yvIno;4N@iV$ras22kJ;PYk)*QDeE~U~Em|VdSrL^lZ zek_K^xzzF)`uu?~Aa2xw)>JbzRs5>1t;uVjfMWJ?N9{su57})Yg6V#Gr@p~&C$>NN z5$^Z+XR`#7(8a`yxqyYe=<*WBjzbUo{eePDwgOV9b3QwVm-2gDGc*n6x1^!WK zTr#ZL42CF|W71@Q(LVzv$ALN93m-I4$Y57RRB1W}JRpS6snjegaNZrzkw4uYIp1$$@vPcD`x+s}=hPAl;2O;Rs%nMa;Rl zx?c#=D3mD`xkCQ7Y-+8i0z4n9finE^BAlZ|VdxW}SN)1z_%w)kSXa;=*C>wLj#1B; z6oJ#|$YD>eBgki;EM+&o^%S1mxCspSpWWc%8%*>^Q3Fs$fr)t~C`fa~{Snf_5HY(S%ouRw&!J4_%l8k%>@DV*Yv?c#W zPUvacJbpf6-Lz(S8&uj%!bA5=o33Uth{gufhJ^RS=+2sgP9}!Dp?IjoDRld*tfgVa zIXMTJiBxW%Rku;ruW&Mq+^miRSIRvTt;Z6U(>5O9Fc)q)nq$0n0gB?P3!(0@X@|fnM}9^dEod3Z-mC4R-RsYX{T z3mHFknerZ)$>Dr%CnfC850yxUEB_wy)?r>TRU}n`;1-J;0^A`fCR$#J z;5k@!SCsKnlkmm+{))V)fwWaKe@L0lHxBoZM>TI_<827E_RcD*aCqwOsu?K;Xy4^2 zBtUUczMY2(0|er2Ls>jbPU!rv0)|i+Eafej+J+58dQZsLBb1auNCU#AU5IUxR+N^9 z*47RzO3n4hSmBoC(Pxa`HnAHF>*v40k?r@E%g{2sL?z8hqOTOS3_CoMk>jp;J0~rt zJ};}3*-IF&EWx|TA=}}`h6TCs$7~WD4vzD5A88M0MLT{qsFI^rS_HtE5S!tj)*qpP zG^5Jl*T$>jQSFBDy$Wy;qmCzMGKDhAuUE~p{zS3T7AcE$55)vwpk%PGh^UaCdvXxs z@cs@MEK&!~#;e2csJKdVTodTsLhD7(q58!zX}pYwy>x2`H z($l{yD=4&->1kF_^=pLwB@SWMfVJ=$qSl~QIe0)(K~Bhx=cx|_`Y`(J`9M~!*Hg83 zE>g|t04`djQpNp6c@LCliR)$lS6319Ut&$iamVlL`m3wWk=|ze=9iC;w>M<;(_*gC z>UkZ8l7(Dm&P>3rIR8JlTFOVjU~^yyotAR{K8v8xvwasK)Wai3toZs>R;Bd;D_kuf z7jK)82X9M=jzV|NosAb7kWRQ%;P8IU?mF2!eR?}Z2nS^31K+R?VJa9R+`Vqh!bp1< zmH>y#1ur4>s-^<-NAe{_N}oUFFv?QaGngYox<*;Hm?oJ8NB{jeO-RdDNO!}K1tOq5 zb-2rzEl%Ep_-zg4lC}ce`(PWgiwXY9ZjYiQ&a6ym=RWvc-JBeZm5a60nnS^B`*oYg z-p10Xl8DRs+CpH^7iZ3nV;tV)&Q5d+1R=TwfmMoHAg?l*B3Y+X_3|8)Wsgj*?tIJN zlO28VUEXbdfRcByrdJWK(Mc=9&*C4g{y?<& z^iGQ>?EBjtq|{29uhav$HVDpvtR^<4p5P|lPs{90*3{h4REZ{^{8?t!$v3V7(?DOa zk(H@7;$V6s^2SEHHbu^^Swm3>SBv-{Nxv_2yuq8PfanYhTpC}RhU1IdD8UrMBJpOVAYBw!fVINzm#17Q5vo*0oF*BOcSG& z7DV8e$6}YVT~sjwy71R{6nsghcU@>ztmDdqY1-3?;~{Wnv1}UYT5gF?Xi%Jh?kZ`- zXI)*bFWMZa46J*v4r?W}O_#HTpoq~a9cRp*;&I%oyk*a<;{~l>?LT#};FWHoeSf+E zUeFc$pQU;&JXW?M?pIN)!2_OJ_Lgrk!hT|=aSC7sGKjXXkT+@B+XGUGCqWE_UuyCS zS5#e<0}DszZ&cv3(QkZq&fYIa*xNae5Gua~R6YOq)1TG)@6a=Dcl=acztj8me0O*D z{(kZa?vJX#VHShsMd<{pVuxZINWa?vBB4 ztLq!lk?p^SrtA6%wS;XR?Hp>^<#PCKsaAk)x=%WqmB*F$@;O2IV`O+g{cBU7?k7c< z@yR*6qlbqj@4ZNR%{pF7^x=i9BE9Uy3c17BQ71Pb<20j!k&faml28F9=V&?-FO87| z{81UCMKPw_zk}BndR)9)JCx$aY$pw?p|HiHfnt>u*2Y|Cb;vdlq7F`|H3h

_)n6*-5jX+PYnT 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

xKsN^(D*=hE@1910|N&?>beD48KP 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 -z2?9swdl_3!NZbap{dUhu)VTs4zHi%I^Dwwv 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 literal 0 HcmV?d00001 diff --git a/lefthook.yml b/lefthook.yml new file mode 100644 index 0000000..4d5632f --- /dev/null +++ b/lefthook.yml @@ -0,0 +1,12 @@ +pre-commit: + parallel: true + commands: + ruff-check: + run: uv run ruff check src/ tests/ + glob: "*.py" + ruff-format: + run: uv run ruff format --check src/ tests/ + glob: "*.py" + mypy: + run: uv run mypy src/ + glob: "*.py" diff --git a/pipeline.py b/pipeline.py index 9303820..c563169 100644 --- a/pipeline.py +++ b/pipeline.py @@ -1,767 +1,6 @@ #!/usr/bin/env python3 -""" -Boston 311 Needle Hotspot Pipeline -==================================== -Fetches needle-related 311 requests from Boston's open data portal, -processes them, and generates a self-contained static HTML dashboard -with a Leaflet.js heatmap. - -Output: docs/index.html (served by GitHub Pages) - -Run manually: python pipeline.py -Run multi-year: python pipeline.py 2023 2024 2025 2026 -Automated: GitHub Actions cron (see .github/workflows/update.yml) -""" - -import csv -import io -import json -import math -import os -import sys -import urllib.parse -import urllib.request -import urllib.error -from collections import Counter, defaultdict -from datetime import datetime -from pathlib import Path -from string import Template - -# ── Config ────────────────────────────────────────────────────────────────── - -CKAN_BASE = "https://data.boston.gov/api/3/action" - -# Resource IDs for each year's 311 dataset on data.boston.gov -RESOURCE_IDS = { - 2015: "c9509ab4-6f6d-4b97-979a-0cf2a10c922b", - 2016: "b7ea6b1b-3ca4-4c5b-9713-6dc1db52379a", - 2017: "30022137-709d-465e-baae-ca155b51927d", - 2018: "2be28d90-3a90-4af1-a3f6-f28c1e25880a", - 2019: "ea2e4696-4a2d-429c-9807-d02eb92e0222", - 2020: "6ff6a6fd-3141-4440-a880-6f60a37fe789", - 2021: "f53ebccd-bc61-49f9-83db-625f209c95f5", - 2022: "81a7b022-f8fc-4da5-80e4-b160058ca207", - 2023: "e6013a93-1321-4f2a-bf91-8d8a02f1e62f", - 2024: "dff4d804-5031-443a-8409-8344efd0e5c8", - 2025: "9d7c2214-4709-478a-a2e8-fb2020a5bb94", - 2026: "1a0b420d-99f1-4887-9851-990b2a5a6e17", -} - -NEEDLE_TYPES = {"Needle Pickup", "Needle Clean-up", "Needle Cleanup"} - -BOSTON_BBOX = { - "lat_min": 42.2279, "lat_max": 42.3969, - "lon_min": -71.1912, "lon_max": -70.9235, -} - -OUTPUT_DIR = Path("docs") -UA = "Boston311NeedlePipeline/2.0 (github-actions; public-health-research)" - -# ── Data fetching ─────────────────────────────────────────────────────────── - -def _api_get(url: str) -> dict | None: - """GET a CKAN API endpoint, return parsed JSON or None.""" - try: - req = urllib.request.Request(url, headers={"User-Agent": UA}) - with urllib.request.urlopen(req, timeout=120) as resp: - return json.loads(resp.read().decode("utf-8")) - except (urllib.error.URLError, json.JSONDecodeError, TimeoutError) as e: - print(f" ✗ API error: {e}") - return None - - -def fetch_needle_records_sql(resource_id: str) -> list[dict]: - """Use CKAN datastore_search_sql to pull only needle rows (fast).""" - type_clauses = " OR ".join(f"\"type\" = '{t}'" for t in NEEDLE_TYPES) - sql = ( - f'SELECT * FROM "{resource_id}" ' - f'WHERE ({type_clauses}) ' - f'OR LOWER("type") LIKE \'%needle%\'' - ) - url = f"{CKAN_BASE}/datastore_search_sql?sql={urllib.parse.quote(sql)}" - data = _api_get(url) - if data and data.get("success"): - return data["result"]["records"] - return [] - - -def fetch_needle_records_paged(resource_id: str) -> list[dict]: - """Fallback: page through datastore_search with a TYPE filter.""" - all_records = [] - for needle_type in NEEDLE_TYPES: - offset = 0 - limit = 5000 - while True: - filters = json.dumps({"type": needle_type}) - url = ( - f"{CKAN_BASE}/datastore_search" - f"?resource_id={resource_id}" - f"&filters={urllib.parse.quote(filters)}" - f"&limit={limit}&offset={offset}" - ) - data = _api_get(url) - if not data or not data.get("success"): - break - records = data["result"]["records"] - all_records.extend(records) - if len(records) < limit: - break - offset += limit - return all_records - - -def fetch_year(year: int) -> list[dict]: - """Fetch needle records for a given year.""" - rid = RESOURCE_IDS.get(year) - if not rid: - print(f" ⚠ No resource ID for {year}, skipping") - return [] - - print(f" → {year}: trying SQL API...", end=" ", flush=True) - records = fetch_needle_records_sql(rid) - if records: - print(f"got {len(records)} records") - return records - - print(f"retrying with paged search...", end=" ", flush=True) - records = fetch_needle_records_paged(rid) - print(f"got {len(records)} records") - return records - - -# ── Cleaning ──────────────────────────────────────────────────────────────── - -def clean(row: dict) -> dict | None: - """Normalize a raw API record. Returns None if invalid.""" - try: - lat = float(row.get("latitude") or row.get("LATITUDE") or 0) - lon = float(row.get("longitude") or row.get("LONGITUDE") or 0) - except (ValueError, TypeError): - return None - - if not (BOSTON_BBOX["lat_min"] <= lat <= BOSTON_BBOX["lat_max"]): - return None - if not (BOSTON_BBOX["lon_min"] <= lon <= BOSTON_BBOX["lon_max"]): - return None - - dt_str = row.get("open_dt") or row.get("OPEN_DT") or "" - for fmt in ("%Y-%m-%dT%H:%M:%S", "%Y-%m-%d %H:%M:%S", "%Y-%m-%d"): - try: - dt = datetime.strptime(dt_str[:19], fmt) - break - except ValueError: - continue - else: - return None - - closed_str = row.get("closed_dt") or row.get("CLOSED_DT") or "" - closed = None - for fmt in ("%Y-%m-%dT%H:%M:%S", "%Y-%m-%d %H:%M:%S", "%Y-%m-%d"): - try: - closed = datetime.strptime(closed_str[:19], fmt) - break - except ValueError: - continue - - hood = ( - row.get("neighborhood") - or row.get("NEIGHBORHOOD") - or row.get("neighborhood_services_district") - or "" - ).strip() - - street = ( - row.get("location_street_name") - or row.get("LOCATION_STREET_NAME") - or "" - ).strip() - - return { - "lat": lat, - "lng": lon, - "dt": dt.isoformat(), - "year": dt.year, - "month": dt.month, - "hour": dt.hour, - "dow": dt.strftime("%A"), - "hood": hood, - "street": street, - "zipcode": (row.get("location_zipcode") or row.get("LOCATION_ZIPCODE") or "").strip()[:5], - "resp_hrs": ( - round((closed - dt).total_seconds() / 3600, 1) if closed else None - ), - } - - -# ── Analytics ─────────────────────────────────────────────────────────────── - -def compute_stats(records: list[dict]) -> dict: - """Compute all the stats the HTML template needs.""" - - years = sorted(set(r["year"] for r in records)) - - def bin_records(recs): - grid = defaultdict(int) - bs = 0.0008 - for r in recs: - key = (round(r["lat"] / bs) * bs, round(r["lng"] / bs) * bs) - grid[key] += 1 - return [[round(la, 6), round(lo, 6), c] for (la, lo), c in grid.items()] - - # Pre-bin heat for every filter combo so the browser just looks up data - heat_keys = {"all": bin_records(records)} - for y in sorted(set(r["year"] for r in records)): - yr_recs = [r for r in records if r["year"] == y] - heat_keys[str(y)] = bin_records(yr_recs) - for m in range(1, 13): - mo_recs = [r for r in yr_recs if r["month"] == m] - if mo_recs: - heat_keys[f"{y}-{m:02d}"] = bin_records(mo_recs) - for m in range(1, 13): - mo_recs = [r for r in records if r["month"] == m] - if mo_recs: - heat_keys[f"all-{m:02d}"] = bin_records(mo_recs) - - # Compact point array for client-side filtering: [lat, lng, year, month] - points = [[r["lat"], r["lng"], r["year"], r["month"]] for r in records] - - # Neighborhood breakdown - by_hood = defaultdict(list) - for r in records: - by_hood[r["hood"] or "Unknown"].append(r) - - hood_stats = [] - for name, recs in sorted(by_hood.items(), key=lambda x: -len(x[1])): - streets = Counter(r["street"] for r in recs if r["street"]) - resp = [r["resp_hrs"] for r in recs if r["resp_hrs"] is not None] - hood_stats.append({ - "name": name, - "count": len(recs), - "pct": round(len(recs) / len(records) * 100, 1), - "top_street": streets.most_common(1)[0][0] if streets else "—", - "avg_resp": round(sum(resp) / max(len(resp), 1), 1), - }) - - # Hourly distribution - hourly = Counter(r["hour"] for r in records) - hourly_data = [hourly.get(h, 0) for h in range(24)] - - # Monthly counts by year for Chart.js trend line - year_monthly = { - str(y): [sum(1 for r in records if r["year"] == y and r["month"] == m) - for m in range(1, 13)] - for y in years - } - - # Top zip codes - zip_counts = Counter(r["zipcode"] for r in records if r["zipcode"]) - zip_stats = [{"zip": z, "count": c} for z, c in zip_counts.most_common(10)] - - # Individual markers for zoom-in layer (cap at 3000 most recent) - recent = sorted(records, key=lambda r: r["dt"], reverse=True)[:3000] - markers = [ - {"lat": r["lat"], "lng": r["lng"], "dt": r["dt"][:10], - "hood": r["hood"], "street": r["street"], "zip": r["zipcode"]} - for r in recent - ] - - dow = Counter(r["dow"] for r in records) - - return { - "total": len(records), - "years": years, - "heat_keys": heat_keys, - "points": points, - "hoods": hood_stats[:15], - "hourly": hourly_data, - "year_monthly": year_monthly, - "zip_stats": zip_stats, - "markers": markers, - "generated": datetime.now().strftime("%B %d, %Y at %I:%M %p"), - "peak_hood": hood_stats[0]["name"] if hood_stats else "—", - "peak_hour": max(range(24), key=lambda h: hourly.get(h, 0)), - "peak_dow": dow.most_common(1)[0][0] if dow else "—", - "avg_monthly": round(len(records) / max(len(set( - f"{r['year']}-{r['month']}" for r in records)), 1), 1), - } - - -# ── HTML Generation ───────────────────────────────────────────────────────── - -HTML_TEMPLATE = r""" - - - - -Boston 311 Needle Requests - - - - - - - - - - - -
- - -
-
- - -
-
-
Year
- - -
-
-
Month
- - - - - - - - - - - - - -
-
- - -
Showing $TOTAL requests
-
- - -
- -
-
Requests by Year
- -
- Low -
- High -
-
- -
-
Top Neighborhoods
-
-
- -
-
Requests by Hour
- -
- -
-
Top Zip Codes
-
-
- -
-
- - - - - -""" - - -def generate_html(stats: dict) -> str: - """Inject computed stats into the HTML template.""" - html = HTML_TEMPLATE - html = html.replace("$GENERATED", stats["generated"]) - html = html.replace("$TOTAL", f"{stats['total']:,}") - html = html.replace("$PEAK_HOOD", stats["peak_hood"]) - html = html.replace("${PEAK_HOUR}", str(stats["peak_hour"])) - html = html.replace("$PEAK_DOW", stats["peak_dow"]) - html = html.replace("$AVG_MONTHLY", str(stats["avg_monthly"])) - html = html.replace("$YEARS_JSON", json.dumps(stats["years"])) - html = html.replace("$YEAR_MONTHLY_JSON", json.dumps(stats["year_monthly"])) - html = html.replace("$YEARS", ", ".join(str(y) for y in stats["years"])) - html = html.replace("$HEAT_KEYS_JSON", json.dumps(stats["heat_keys"])) - html = html.replace("$MARKERS_JSON", json.dumps(stats["markers"])) - html = html.replace("$HOODS_JSON", json.dumps(stats["hoods"])) - html = html.replace("$HOURLY_JSON", json.dumps(stats["hourly"])) - html = html.replace("$ZIP_STATS_JSON", json.dumps(stats["zip_stats"])) - return html - - -# ── Main ──────────────────────────────────────────────────────────────────── - -def main(): - if len(sys.argv) > 1: - years = sorted(int(y) for y in sys.argv[1:]) - else: - # Default: last 3 years + current - now = datetime.now().year - years = [y for y in range(now - 2, now + 1) if y in RESOURCE_IDS] - - print(f"╔══════════════════════════════════════════════╗") - print(f"║ Boston 311 Needle Hotspot Pipeline ║") - print(f"║ Years: {', '.join(str(y) for y in years):<37s} ║") - print(f"╚══════════════════════════════════════════════╝") - - all_records = [] - for year in years: - raw = fetch_year(year) - cleaned = [r for r in (clean(row) for row in raw) if r is not None] - print(f" ✓ {year}: {len(raw)} raw → {len(cleaned)} valid") - all_records.extend(cleaned) - - if not all_records: - print("\n⚠ No records retrieved. Writing placeholder page.") - OUTPUT_DIR.mkdir(parents=True, exist_ok=True) - (OUTPUT_DIR / "index.html").write_text( - "

No data available

" - "

The pipeline could not retrieve data from data.boston.gov. " - "Check the CKAN API or resource IDs.

" - ) - return - - print(f"\n Total valid records: {len(all_records):,}") - print(f" Computing stats...") - - stats = compute_stats(all_records) - html = generate_html(stats) - - OUTPUT_DIR.mkdir(parents=True, exist_ok=True) - out_path = OUTPUT_DIR / "index.html" - out_path.write_text(html, encoding="utf-8") - print(f" ✓ Wrote {out_path} ({len(html):,} bytes)") - - # Also dump raw data as JSON for anyone who wants it - data_path = OUTPUT_DIR / "needle_data.json" - data_path.write_text(json.dumps({ - "generated": stats["generated"], - "total": stats["total"], - "years": stats["years"], - "records": all_records, - }), encoding="utf-8") - print(f" ✓ Wrote {data_path}") - - print(f"\n Done. Serve with: cd docs && python -m http.server 8000") - +"""Backward-compatibility wrapper. Use `uv run boston-needle-map run` instead.""" +from boston_needle_map.cli import app if __name__ == "__main__": - main() + app() diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..1fa96be --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,67 @@ +[project] +name = "boston-needle-map" +version = "3.0.0" +description = "Automated pipeline for Boston 311 needle cleanup request heatmaps" +readme = "README.md" +license = {text = "MIT"} +requires-python = ">=3.12" +dependencies = [ + "typer>=0.15.0", + "pydantic>=2.10.0", + "pydantic-ai>=0.1.0", + "streamlit>=1.40.0", + "folium>=0.18.0", + "streamlit-folium>=0.23.0", + "plotly>=6.0.0", + "python-dateutil>=2.9.0.post0", +] + +[project.scripts] +boston-needle-map = "boston_needle_map.cli:app" + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.hatch.build.targets.wheel] +packages = ["src/boston_needle_map"] + +[tool.ruff] +target-version = "py312" +line-length = 120 +src = ["src", "tests"] + +[tool.ruff.lint] +select = ["E", "F", "W", "I", "UP", "B", "SIM"] + +[tool.ruff.lint.isort] +known-first-party = ["boston_needle_map"] + +[tool.mypy] +python_version = "3.12" +strict = true +warn_return_any = true +warn_unused_configs = true +plugins = ["pydantic.mypy"] + +[[tool.mypy.overrides]] +module = [ + "folium.*", + "streamlit_folium.*", + "streamlit.*", + "plotly.*", + "pandas.*", + "dateutil.*", +] +ignore_missing_imports = true +disallow_untyped_calls = false + +[tool.pytest.ini_options] +testpaths = ["tests"] + +[dependency-groups] +dev = [ + "ruff>=0.9.0", + "mypy>=1.14.0", + "pytest>=8.3.0", +] diff --git a/src/boston_needle_map/__init__.py b/src/boston_needle_map/__init__.py new file mode 100644 index 0000000..faf46af --- /dev/null +++ b/src/boston_needle_map/__init__.py @@ -0,0 +1,3 @@ +"""Boston 311 Needle Hotspot Pipeline.""" + +__version__ = "3.0.0" diff --git a/src/boston_needle_map/analytics.py b/src/boston_needle_map/analytics.py new file mode 100644 index 0000000..a0d7152 --- /dev/null +++ b/src/boston_needle_map/analytics.py @@ -0,0 +1,100 @@ +"""Stats computation for the dashboard.""" + +from collections import Counter, defaultdict +from datetime import datetime + +from boston_needle_map.models import ( + CleanedRecord, + DashboardStats, + MarkerData, + NeighborhoodStat, + ZipStat, +) + + +def _bin_records(recs: list[CleanedRecord], bin_size: float = 0.0008) -> list[list[float]]: + """Bin records into spatial grid cells for heatmap display.""" + grid: dict[tuple[float, float], int] = defaultdict(int) + for r in recs: + key = (round(r.lat / bin_size) * bin_size, round(r.lng / bin_size) * bin_size) + grid[key] += 1 + return [[round(la, 6), round(lo, 6), float(c)] for (la, lo), c in grid.items()] + + +def compute_stats(records: list[CleanedRecord]) -> DashboardStats: + """Compute all the stats the dashboard needs.""" + years = sorted({r.year for r in records}) + + # Pre-bin heat for every filter combo + heat_keys: dict[str, list[list[float]]] = {"all": _bin_records(records)} + for y in years: + yr_recs = [r for r in records if r.year == y] + heat_keys[str(y)] = _bin_records(yr_recs) + for m in range(1, 13): + mo_recs = [r for r in yr_recs if r.month == m] + if mo_recs: + heat_keys[f"{y}-{m:02d}"] = _bin_records(mo_recs) + for m in range(1, 13): + mo_recs = [r for r in records if r.month == m] + if mo_recs: + heat_keys[f"all-{m:02d}"] = _bin_records(mo_recs) + + # Compact point array: [lat, lng, year, month] + points: list[list[float | int]] = [[r.lat, r.lng, r.year, r.month] for r in records] + + # Neighborhood breakdown + by_hood: dict[str, list[CleanedRecord]] = defaultdict(list) + for r in records: + by_hood[r.hood or "Unknown"].append(r) + + hood_stats: list[NeighborhoodStat] = [] + for name, recs in sorted(by_hood.items(), key=lambda x: -len(x[1])): + streets = Counter(r.street for r in recs if r.street) + resp = [r.resp_hrs for r in recs if r.resp_hrs is not None] + hood_stats.append( + NeighborhoodStat( + name=name, + count=len(recs), + pct=round(len(recs) / len(records) * 100, 1), + top_street=streets.most_common(1)[0][0] if streets else "\u2014", + avg_resp=round(sum(resp) / max(len(resp), 1), 1), + ) + ) + + # Hourly distribution + hourly_counter = Counter(r.hour for r in records) + hourly_data = [hourly_counter.get(h, 0) for h in range(24)] + + # Monthly counts by year + year_monthly = { + str(y): [sum(1 for r in records if r.year == y and r.month == m) for m in range(1, 13)] for y in years + } + + # Top zip codes + zip_counts = Counter(r.zipcode for r in records if r.zipcode) + zip_stats = [ZipStat(zip=z, count=c) for z, c in zip_counts.most_common(10)] + + # Individual markers (cap at 3000 most recent) + recent = sorted(records, key=lambda r: r.dt, reverse=True)[:3000] + markers = [ + MarkerData(lat=r.lat, lng=r.lng, dt=r.dt[:10], hood=r.hood, street=r.street, zip=r.zipcode) for r in recent + ] + + dow = Counter(r.dow for r in records) + + return DashboardStats( + total=len(records), + years=years, + heat_keys=heat_keys, + points=points, + hoods=hood_stats[:15], + hourly=hourly_data, + year_monthly=year_monthly, + zip_stats=zip_stats, + markers=markers, + generated=datetime.now().strftime("%B %d, %Y at %I:%M %p"), + peak_hood=hood_stats[0].name if hood_stats else "\u2014", + peak_hour=max(range(24), key=lambda h: hourly_counter.get(h, 0)), + peak_dow=dow.most_common(1)[0][0] if dow else "\u2014", + avg_monthly=round(len(records) / max(len({f"{r.year}-{r.month}" for r in records}), 1), 1), + ) diff --git a/src/boston_needle_map/app.py b/src/boston_needle_map/app.py new file mode 100644 index 0000000..b586625 --- /dev/null +++ b/src/boston_needle_map/app.py @@ -0,0 +1,148 @@ +"""Streamlit app for interactive data exploration.""" + +import pandas as pd +import plotly.express as px +import plotly.graph_objects as go +import streamlit as st +from folium import Map, TileLayer +from folium.plugins import HeatMap +from streamlit_folium import st_folium + +from boston_needle_map.cache import load_cached, save_cache +from boston_needle_map.cleaner import clean +from boston_needle_map.config import RESOURCE_IDS +from boston_needle_map.fetcher import fetch_year +from boston_needle_map.models import CleanedRecord + +st.set_page_config(page_title="Boston 311 Needle Requests", layout="wide") +st.title("Boston 311 Needle Requests") + + +@st.cache_data(ttl=3600, show_spinner="Fetching data...") +def load_data(years: tuple[int, ...]) -> list[dict[str, object]]: + """Fetch and clean records for the given years, using cache when available.""" + all_records: list[CleanedRecord] = [] + for year in years: + # Try cache first + cached = load_cached(year) + if cached is not None: + raw = cached + else: + raw = fetch_year(year) + if raw: + save_cache(year, raw) + + cleaned = [r for r in (clean(row) for row in raw) if r is not None] + all_records.extend(cleaned) + + return [r.model_dump() for r in all_records] + + +# -- Sidebar filters -- +st.sidebar.header("Filters") + +available_years = sorted(RESOURCE_IDS.keys(), reverse=True) +default_years = [y for y in available_years if y >= max(available_years) - 2] +selected_years = st.sidebar.multiselect("Years", available_years, default=default_years) + +if not selected_years: + st.warning("Select at least one year.") + st.stop() + +records = load_data(tuple(sorted(selected_years))) +if not records: + st.error("No records found for the selected years.") + st.stop() + +df = pd.DataFrame(records) +df["dt"] = pd.to_datetime(df["dt"], format="mixed") + +months = [ + "All", + "January", + "February", + "March", + "April", + "May", + "June", + "July", + "August", + "September", + "October", + "November", + "December", +] +selected_month = st.sidebar.selectbox("Month", months, index=0) +if selected_month != "All": + month_num = months.index(selected_month) + df = df[df["month"] == month_num] + +st.sidebar.metric("Total Requests", f"{len(df):,}") + +# -- Layout -- +col_map, col_charts = st.columns([2, 1]) + +# -- Heatmap -- +with col_map: + st.subheader("Heatmap") + m = Map(location=[42.332, -71.078], zoom_start=13, tiles=None) + TileLayer( + tiles="https://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}{r}.png", + attr="CARTO", + subdomains="abcd", + max_zoom=19, + ).add_to(m) + + heat_data = df[["lat", "lng"]].values.tolist() + if heat_data: + HeatMap(heat_data, radius=20, blur=15, max_zoom=16, min_opacity=0.4).add_to(m) # type: ignore[no-untyped-call] + st_folium(m, use_container_width=True, height=550) + +with col_charts: + # -- Monthly trend -- + st.subheader("Monthly Trend") + monthly = ( + df.groupby([df["dt"].dt.year.rename("year"), df["dt"].dt.month.rename("mo")]).size().reset_index(name="count") + ) + if not monthly.empty: + month_names = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"] + monthly["month_name"] = monthly["mo"].apply(lambda x: month_names[x - 1]) + fig_trend = px.line( + monthly, + x="month_name", + y="count", + color="year", + markers=True, + labels={"month_name": "Month", "count": "Requests", "year": "Year"}, + ) + fig_trend.update_layout(height=250, margin=dict(l=0, r=0, t=10, b=0)) + st.plotly_chart(fig_trend, use_container_width=True) + + # -- Hourly distribution -- + st.subheader("Requests by Hour") + hourly = df["hour"].value_counts().sort_index() + hour_labels = [f"{h % 12 or 12}{'a' if h < 12 else 'p'}" for h in range(24)] + fig_hour = go.Figure( + go.Bar( + x=hour_labels, + y=[hourly.get(h, 0) for h in range(24)], + marker_color=["#cc0000" if hourly.get(h, 0) > hourly.quantile(0.7) else "#4e79a7" for h in range(24)], + ) + ) + fig_hour.update_layout(height=200, margin=dict(l=0, r=0, t=10, b=0), xaxis_title="Hour", yaxis_title="Requests") + st.plotly_chart(fig_hour, use_container_width=True) + +# -- Bottom row -- +col_hoods, col_zips = st.columns(2) + +with col_hoods: + st.subheader("Top Neighborhoods") + hood_counts = df["hood"].value_counts().head(15).reset_index() + hood_counts.columns = ["Neighborhood", "Count"] + st.dataframe(hood_counts, use_container_width=True, hide_index=True) + +with col_zips: + st.subheader("Top Zip Codes") + zip_counts = df[df["zipcode"] != ""]["zipcode"].value_counts().head(10).reset_index() + zip_counts.columns = ["Zip Code", "Count"] + st.dataframe(zip_counts, use_container_width=True, hide_index=True) diff --git a/src/boston_needle_map/cache.py b/src/boston_needle_map/cache.py new file mode 100644 index 0000000..f0085fd --- /dev/null +++ b/src/boston_needle_map/cache.py @@ -0,0 +1,62 @@ +"""Caching layer for fetched API data in tmp/.""" + +import json +import time +from pathlib import Path +from typing import Any + +from boston_needle_map.config import CACHE_DIR + +# Default max age: 24 hours +DEFAULT_MAX_AGE_SECONDS = 86400 + + +def _ensure_cache_dir() -> None: + """Create the cache directory if it doesn't exist.""" + CACHE_DIR.mkdir(parents=True, exist_ok=True) + + +def get_cache_path(year: int) -> Path: + """Return the cache file path for a given year.""" + return CACHE_DIR / f"year_{year}.json" + + +def load_cached(year: int, max_age: int = DEFAULT_MAX_AGE_SECONDS) -> list[dict[str, Any]] | None: + """Load cached records for a year. Returns None if missing or stale.""" + path = get_cache_path(year) + if not path.exists(): + return None + + age = time.time() - path.stat().st_mtime + if age > max_age: + print(f" ⏳ Cache for {year} is stale ({age / 3600:.1f}h old), re-fetching") + return None + + try: + data = json.loads(path.read_text(encoding="utf-8")) + print(f" ✓ Loaded {len(data)} cached records for {year}") + return data # type: ignore[no-any-return] + except (json.JSONDecodeError, OSError) as e: + print(f" ⚠ Cache read error for {year}: {e}") + return None + + +def save_cache(year: int, records: list[dict[str, Any]]) -> None: + """Save raw API records to cache.""" + _ensure_cache_dir() + path = get_cache_path(year) + path.write_text(json.dumps(records), encoding="utf-8") + print(f" 💾 Cached {len(records)} records for {year}") + + +def clear_cache() -> None: + """Remove all cached files.""" + if not CACHE_DIR.exists(): + print(" No cache directory found.") + return + + count = 0 + for f in CACHE_DIR.glob("year_*.json"): + f.unlink() + count += 1 + print(f" Cleared {count} cached file(s) from {CACHE_DIR}/") diff --git a/src/boston_needle_map/cleaner.py b/src/boston_needle_map/cleaner.py new file mode 100644 index 0000000..7edebad --- /dev/null +++ b/src/boston_needle_map/cleaner.py @@ -0,0 +1,64 @@ +"""Raw record normalization and validation.""" + +from datetime import datetime +from typing import Any + +from dateutil import parser as dateutil_parser + +from boston_needle_map.config import BOSTON_BBOX +from boston_needle_map.models import CleanedRecord + + +def _parse_datetime(dt_str: str) -> datetime | None: + """Parse a datetime string using dateutil for robust format handling.""" + if not dt_str or not dt_str.strip(): + return None + try: + result: datetime = dateutil_parser.parse(dt_str) + return result + except (ValueError, OverflowError): + return None + + +def clean(row: dict[str, Any]) -> CleanedRecord | None: + """Normalize a raw API record. Returns None if invalid.""" + try: + lat = float(row.get("latitude") or row.get("LATITUDE") or 0) + lon = float(row.get("longitude") or row.get("LONGITUDE") or 0) + except (ValueError, TypeError): + return None + + if not (BOSTON_BBOX["lat_min"] <= lat <= BOSTON_BBOX["lat_max"]): + return None + if not (BOSTON_BBOX["lon_min"] <= lon <= BOSTON_BBOX["lon_max"]): + return None + + dt_str = row.get("open_dt") or row.get("OPEN_DT") or "" + dt = _parse_datetime(dt_str) + if dt is None: + return None + + closed_str = row.get("closed_dt") or row.get("CLOSED_DT") or "" + closed = _parse_datetime(closed_str) + + hood = ( + row.get("neighborhood") or row.get("NEIGHBORHOOD") or row.get("neighborhood_services_district") or "" + ).strip() + street = (row.get("location_street_name") or row.get("LOCATION_STREET_NAME") or "").strip() + zipcode = (row.get("location_zipcode") or row.get("LOCATION_ZIPCODE") or "").strip()[:5] + + resp_hrs = round((closed - dt).total_seconds() / 3600, 1) if closed else None + + return CleanedRecord( + lat=lat, + lng=lon, + dt=dt.isoformat(), + year=dt.year, + month=dt.month, + hour=dt.hour, + dow=dt.strftime("%A"), + hood=hood, + street=street, + zipcode=zipcode, + resp_hrs=resp_hrs, + ) diff --git a/src/boston_needle_map/cli.py b/src/boston_needle_map/cli.py new file mode 100644 index 0000000..bab6d50 --- /dev/null +++ b/src/boston_needle_map/cli.py @@ -0,0 +1,137 @@ +"""Typer CLI for the Boston 311 Needle Hotspot Pipeline.""" + +import json +import subprocess +import sys +from datetime import datetime +from pathlib import Path +from typing import Annotated + +import typer + +from boston_needle_map.cache import clear_cache, load_cached, save_cache +from boston_needle_map.cleaner import clean +from boston_needle_map.config import RESOURCE_IDS +from boston_needle_map.fetcher import fetch_year +from boston_needle_map.models import CleanedRecord + +app = typer.Typer( + name="boston-needle-map", + help="Boston 311 Needle Hotspot Pipeline", +) + + +@app.command() +def run( + years: Annotated[list[int] | None, typer.Argument(help="Years to fetch (defaults to last 3 + current)")] = None, + output_dir: Annotated[str, typer.Option("--output-dir", "-o", help="Output directory")] = "docs", + use_cache: Annotated[bool, typer.Option("--cache/--no-cache", help="Use tmp/ cache for fetched data")] = True, +) -> None: + """Fetch needle records, compute stats, and generate the HTML dashboard.""" + from boston_needle_map.analytics import compute_stats + from boston_needle_map.renderer import generate_html + + if years is None: + now = datetime.now().year + years = [y for y in range(now - 2, now + 1) if y in RESOURCE_IDS] + + out = Path(output_dir) + + typer.echo(f"\u2554{'=' * 46}\u2557") + typer.echo("\u2551 Boston 311 Needle Hotspot Pipeline \u2551") + typer.echo(f"\u2551 Years: {', '.join(str(y) for y in years):<37s} \u2551") + typer.echo(f"\u255a{'=' * 46}\u255d") + + all_records: list[CleanedRecord] = [] + for year in years: + raw: list[dict[str, object]] + if use_cache: + cached = load_cached(year) + if cached is not None: + raw = cached + else: + raw = fetch_year(year) + if raw: + save_cache(year, raw) + else: + raw = fetch_year(year) + + cleaned = [r for r in (clean(row) for row in raw) if r is not None] + typer.echo(f" \u2713 {year}: {len(raw)} raw \u2192 {len(cleaned)} valid") + all_records.extend(cleaned) + + if not all_records: + typer.echo("\n\u26a0 No records retrieved. Writing placeholder page.") + out.mkdir(parents=True, exist_ok=True) + (out / "index.html").write_text( + "

No data available

" + "

The pipeline could not retrieve data from data.boston.gov. " + "Check the CKAN API or resource IDs.

" + ) + return + + typer.echo(f"\n Total valid records: {len(all_records):,}") + typer.echo(" Computing stats...") + + stats = compute_stats(all_records) + html = generate_html(stats) + + out.mkdir(parents=True, exist_ok=True) + out_path = out / "index.html" + out_path.write_text(html, encoding="utf-8") + typer.echo(f" \u2713 Wrote {out_path} ({len(html):,} bytes)") + + # Also dump raw data as JSON + data_path = out / "needle_data.json" + data_path.write_text( + json.dumps( + { + "generated": stats.generated, + "total": stats.total, + "years": stats.years, + "records": [r.model_dump() for r in all_records], + } + ), + encoding="utf-8", + ) + typer.echo(f" \u2713 Wrote {data_path}") + typer.echo("\n Done. Preview with: boston-needle-map serve") + + +@app.command() +def explore() -> None: + """Launch the Streamlit dashboard for interactive data exploration.""" + app_path = Path(__file__).parent / "app.py" + typer.echo("Launching Streamlit app...") + subprocess.run([sys.executable, "-m", "streamlit", "run", str(app_path)], check=False) + + +@app.command(name="cache-clear") +def cache_clear_cmd() -> None: + """Clear all cached data in tmp/.""" + clear_cache() + typer.echo("Cache cleared.") + + +@app.command() +def serve( + port: Annotated[int, typer.Option("--port", "-p", help="Port to serve on")] = 8000, + directory: Annotated[str, typer.Option("--dir", "-d", help="Directory to serve")] = "docs", +) -> None: + """Serve the output directory locally for preview.""" + import functools + import http.server + + d = Path(directory) + if not d.exists(): + typer.echo(f"Directory {d} does not exist. Run 'boston-needle-map run' first.") + raise typer.Exit(1) + + handler = functools.partial(http.server.SimpleHTTPRequestHandler, directory=str(d)) + typer.echo(f"Serving {d}/ at http://localhost:{port}") + with http.server.HTTPServer(("", port), handler) as httpd: + httpd.serve_forever() + + +if __name__ == "__main__": + app() diff --git a/src/boston_needle_map/config.py b/src/boston_needle_map/config.py new file mode 100644 index 0000000..a6cf3f3 --- /dev/null +++ b/src/boston_needle_map/config.py @@ -0,0 +1,34 @@ +"""Pipeline configuration and constants.""" + +from pathlib import Path + +CKAN_BASE = "https://data.boston.gov/api/3/action" + +# Resource IDs for each year's 311 dataset on data.boston.gov +RESOURCE_IDS: dict[int, str] = { + 2015: "c9509ab4-6f6d-4b97-979a-0cf2a10c922b", + 2016: "b7ea6b1b-3ca4-4c5b-9713-6dc1db52379a", + 2017: "30022137-709d-465e-baae-ca155b51927d", + 2018: "2be28d90-3a90-4af1-a3f6-f28c1e25880a", + 2019: "ea2e4696-4a2d-429c-9807-d02eb92e0222", + 2020: "6ff6a6fd-3141-4440-a880-6f60a37fe789", + 2021: "f53ebccd-bc61-49f9-83db-625f209c95f5", + 2022: "81a7b022-f8fc-4da5-80e4-b160058ca207", + 2023: "e6013a93-1321-4f2a-bf91-8d8a02f1e62f", + 2024: "dff4d804-5031-443a-8409-8344efd0e5c8", + 2025: "9d7c2214-4709-478a-a2e8-fb2020a5bb94", + 2026: "1a0b420d-99f1-4887-9851-990b2a5a6e17", +} + +NEEDLE_TYPES: set[str] = {"Needle Pickup", "Needle Clean-up", "Needle Cleanup"} + +BOSTON_BBOX = { + "lat_min": 42.2279, + "lat_max": 42.3969, + "lon_min": -71.1912, + "lon_max": -70.9235, +} + +OUTPUT_DIR = Path("docs") +CACHE_DIR = Path("tmp") +UA = "Boston311NeedlePipeline/3.0 (github-actions; public-health-research)" diff --git a/src/boston_needle_map/fetcher.py b/src/boston_needle_map/fetcher.py new file mode 100644 index 0000000..27a3b09 --- /dev/null +++ b/src/boston_needle_map/fetcher.py @@ -0,0 +1,75 @@ +"""CKAN API data fetching for Boston 311 needle records.""" + +import json +import urllib.error +import urllib.parse +import urllib.request +from typing import Any + +from boston_needle_map.config import CKAN_BASE, NEEDLE_TYPES, RESOURCE_IDS, UA + + +def _api_get(url: str) -> dict[str, Any] | None: + """GET a CKAN API endpoint, return parsed JSON or None.""" + try: + req = urllib.request.Request(url, headers={"User-Agent": UA}) + with urllib.request.urlopen(req, timeout=120) as resp: + return json.loads(resp.read().decode("utf-8")) # type: ignore[no-any-return] + except (urllib.error.URLError, json.JSONDecodeError, TimeoutError) as e: + print(f" ✗ API error: {e}") + return None + + +def fetch_needle_records_sql(resource_id: str) -> list[dict[str, Any]]: + """Use CKAN datastore_search_sql to pull only needle rows (fast).""" + type_clauses = " OR ".join(f"\"type\" = '{t}'" for t in NEEDLE_TYPES) + sql = f'SELECT * FROM "{resource_id}" WHERE ({type_clauses}) OR LOWER("type") LIKE \'%needle%\'' + url = f"{CKAN_BASE}/datastore_search_sql?sql={urllib.parse.quote(sql)}" + data = _api_get(url) + if data and data.get("success"): + return data["result"]["records"] # type: ignore[no-any-return] + return [] + + +def fetch_needle_records_paged(resource_id: str) -> list[dict[str, Any]]: + """Fallback: page through datastore_search with a TYPE filter.""" + all_records: list[dict[str, Any]] = [] + for needle_type in NEEDLE_TYPES: + offset = 0 + limit = 5000 + while True: + filters = json.dumps({"type": needle_type}) + url = ( + f"{CKAN_BASE}/datastore_search" + f"?resource_id={resource_id}" + f"&filters={urllib.parse.quote(filters)}" + f"&limit={limit}&offset={offset}" + ) + data = _api_get(url) + if not data or not data.get("success"): + break + records = data["result"]["records"] + all_records.extend(records) + if len(records) < limit: + break + offset += limit + return all_records + + +def fetch_year(year: int) -> list[dict[str, Any]]: + """Fetch needle records for a given year.""" + rid = RESOURCE_IDS.get(year) + if not rid: + print(f" ⚠ No resource ID for {year}, skipping") + return [] + + print(f" → {year}: trying SQL API...", end=" ", flush=True) + records = fetch_needle_records_sql(rid) + if records: + print(f"got {len(records)} records") + return records + + print("retrying with paged search...", end=" ", flush=True) + records = fetch_needle_records_paged(rid) + print(f"got {len(records)} records") + return records diff --git a/src/boston_needle_map/models.py b/src/boston_needle_map/models.py new file mode 100644 index 0000000..d3c79a0 --- /dev/null +++ b/src/boston_needle_map/models.py @@ -0,0 +1,66 @@ +"""Pydantic models for pipeline data.""" + +from pydantic import BaseModel + + +class CleanedRecord(BaseModel): + """A validated, normalized needle record.""" + + lat: float + lng: float + dt: str # ISO format datetime + year: int + month: int + hour: int + dow: str # day of week name + hood: str + street: str + zipcode: str + resp_hrs: float | None = None + + +class NeighborhoodStat(BaseModel): + """Stats for a single neighborhood.""" + + name: str + count: int + pct: float + top_street: str + avg_resp: float + + +class ZipStat(BaseModel): + """Stats for a single zip code.""" + + zip: str + count: int + + +class MarkerData(BaseModel): + """Data for an individual map marker.""" + + lat: float + lng: float + dt: str + hood: str + street: str + zip: str + + +class DashboardStats(BaseModel): + """All computed stats needed by the dashboard.""" + + total: int + years: list[int] + heat_keys: dict[str, list[list[float]]] + points: list[list[float | int]] + hoods: list[NeighborhoodStat] + hourly: list[int] + year_monthly: dict[str, list[int]] + zip_stats: list[ZipStat] + markers: list[MarkerData] + generated: str + peak_hood: str + peak_hour: int + peak_dow: str + avg_monthly: float diff --git a/src/boston_needle_map/renderer.py b/src/boston_needle_map/renderer.py new file mode 100644 index 0000000..65a0bee --- /dev/null +++ b/src/boston_needle_map/renderer.py @@ -0,0 +1,35 @@ +"""Static HTML dashboard generation for GitHub Pages.""" + +import json +from pathlib import Path + +from boston_needle_map.models import DashboardStats + +# Project root: src/boston_needle_map/../../ = project root +_PROJECT_ROOT = Path(__file__).resolve().parent.parent.parent +_TEMPLATE_PATH = _PROJECT_ROOT / "templates" / "dashboard.html" + + +def _load_template() -> str: + """Load the HTML template from the templates directory.""" + return _TEMPLATE_PATH.read_text(encoding="utf-8") + + +def generate_html(stats: DashboardStats) -> str: + """Inject computed stats into the HTML template.""" + html = _load_template() + html = html.replace("$GENERATED", stats.generated) + html = html.replace("$TOTAL", f"{stats.total:,}") + html = html.replace("$PEAK_HOOD", stats.peak_hood) + html = html.replace("${PEAK_HOUR}", str(stats.peak_hour)) + html = html.replace("$PEAK_DOW", stats.peak_dow) + html = html.replace("$AVG_MONTHLY", str(stats.avg_monthly)) + html = html.replace("$YEARS_JSON", json.dumps(stats.years)) + html = html.replace("$YEAR_MONTHLY_JSON", json.dumps(stats.year_monthly)) + html = html.replace("$YEARS", ", ".join(str(y) for y in stats.years)) + html = html.replace("$HEAT_KEYS_JSON", json.dumps({k: v for k, v in stats.heat_keys.items()})) + html = html.replace("$MARKERS_JSON", json.dumps([m.model_dump() for m in stats.markers])) + html = html.replace("$HOODS_JSON", json.dumps([h.model_dump() for h in stats.hoods])) + html = html.replace("$HOURLY_JSON", json.dumps(stats.hourly)) + html = html.replace("$ZIP_STATS_JSON", json.dumps([z.model_dump() for z in stats.zip_stats])) + return html diff --git a/templates/dashboard.html b/templates/dashboard.html new file mode 100644 index 0000000..5a4a19c --- /dev/null +++ b/templates/dashboard.html @@ -0,0 +1,395 @@ + + + + + +Boston 311 Needle Requests + + + + + + + + +
+
+ Boston 311 Needle Requests + Needle Pickup & Needle Clean-up · $YEARS +
+
+ Data: data.boston.gov +  ·  Updated $GENERATED +  ·  Source +
+
+ + +
+ + +
+
+ + +
+
+
Year
+ + +
+
+
Month
+ + + + + + + + + + + + + +
+
+ + +
Showing $TOTAL requests
+
+ + +
+ +
+
Requests by Year
+ +
+ Low +
+ High +
+
+ +
+
Top Neighborhoods
+
+
+ +
+
Requests by Hour
+ +
+ +
+
Top Zip Codes
+
+
+ +
+
+ + + + + + diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tmp/.gitkeep b/tmp/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/uv.lock b/uv.lock new file mode 100644 index 0000000..0383012 --- /dev/null +++ b/uv.lock @@ -0,0 +1,3735 @@ +version = 1 +revision = 1 +requires-python = ">=3.12" +resolution-markers = [ + "python_full_version >= '3.14' and sys_platform == 'win32'", + "python_full_version >= '3.14' and sys_platform == 'emscripten'", + "python_full_version >= '3.14' and sys_platform != 'emscripten' and sys_platform != 'win32'", + "python_full_version < '3.14' and sys_platform == 'win32'", + "python_full_version < '3.14' and sys_platform == 'emscripten'", + "python_full_version < '3.14' and sys_platform != 'emscripten' and sys_platform != 'win32'", +] + +[[package]] +name = "ag-ui-protocol" +version = "0.1.15" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pydantic" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/57/71/96c21ae7e2fb9b610c1a90d38bd2de8b6e5b2900a63001f3882f43e519af/ag_ui_protocol-0.1.15.tar.gz", hash = "sha256:5e23c1042c7d4e364d685e68d2fb74d37c16bc83c66d270102d8eaedce56ad82", size = 6269 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e4/a0/a73398d30bb0f9ad70cd70426151a4a19527a7296e48a3a16a50e1d5db05/ag_ui_protocol-0.1.15-py3-none-any.whl", hash = "sha256:85cde077023ccbc37b5ce2ad953537883c262d210320f201fc2ec4e85408b06a", size = 8661 }, +] + +[[package]] +name = "aiofile" +version = "3.9.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "caio" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/67/e2/d7cb819de8df6b5c1968a2756c3cb4122d4fa2b8fc768b53b7c9e5edb646/aiofile-3.9.0.tar.gz", hash = "sha256:e5ad718bb148b265b6df1b3752c4d1d83024b93da9bd599df74b9d9ffcf7919b", size = 17943 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/50/25/da1f0b4dd970e52bf5a36c204c107e11a0c6d3ed195eba0bfbc664c312b2/aiofile-3.9.0-py3-none-any.whl", hash = "sha256:ce2f6c1571538cbdfa0143b04e16b208ecb0e9cb4148e528af8a640ed51cc8aa", size = 19539 }, +] + +[[package]] +name = "aiohappyeyeballs" +version = "2.6.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/26/30/f84a107a9c4331c14b2b586036f40965c128aa4fee4dda5d3d51cb14ad54/aiohappyeyeballs-2.6.1.tar.gz", hash = "sha256:c3f9d0113123803ccadfdf3f0faa505bc78e6a72d1cc4806cbd719826e943558", size = 22760 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0f/15/5bf3b99495fb160b63f95972b81750f18f7f4e02ad051373b669d17d44f2/aiohappyeyeballs-2.6.1-py3-none-any.whl", hash = "sha256:f349ba8f4b75cb25c99c5c2d84e997e485204d2902a9597802b0371f09331fb8", size = 15265 }, +] + +[[package]] +name = "aiohttp" +version = "3.13.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohappyeyeballs" }, + { name = "aiosignal" }, + { name = "attrs" }, + { name = "frozenlist" }, + { name = "multidict" }, + { name = "propcache" }, + { name = "yarl" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/77/9a/152096d4808df8e4268befa55fba462f440f14beab85e8ad9bf990516918/aiohttp-3.13.5.tar.gz", hash = "sha256:9d98cc980ecc96be6eb4c1994ce35d28d8b1f5e5208a23b421187d1209dbb7d1", size = 7858271 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/be/6f/353954c29e7dcce7cf00280a02c75f30e133c00793c7a2ed3776d7b2f426/aiohttp-3.13.5-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:023ecba036ddd840b0b19bf195bfae970083fd7024ce1ac22e9bba90464620e9", size = 748876 }, + { url = "https://files.pythonhosted.org/packages/f5/1b/428a7c64687b3b2e9cd293186695affc0e1e54a445d0361743b231f11066/aiohttp-3.13.5-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:15c933ad7920b7d9a20de151efcd05a6e38302cbf0e10c9b2acb9a42210a2416", size = 499557 }, + { url = "https://files.pythonhosted.org/packages/29/47/7be41556bfbb6917069d6a6634bb7dd5e163ba445b783a90d40f5ac7e3a7/aiohttp-3.13.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ab2899f9fa2f9f741896ebb6fa07c4c883bfa5c7f2ddd8cf2aafa86fa981b2d2", size = 500258 }, + { url = "https://files.pythonhosted.org/packages/67/84/c9ecc5828cb0b3695856c07c0a6817a99d51e2473400f705275a2b3d9239/aiohttp-3.13.5-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a60eaa2d440cd4707696b52e40ed3e2b0f73f65be07fd0ef23b6b539c9c0b0b4", size = 1749199 }, + { url = "https://files.pythonhosted.org/packages/f0/d3/3c6d610e66b495657622edb6ae7c7fd31b2e9086b4ec50b47897ad6042a9/aiohttp-3.13.5-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:55b3bdd3292283295774ab585160c4004f4f2f203946997f49aac032c84649e9", size = 1721013 }, + { url = "https://files.pythonhosted.org/packages/49/a0/24409c12217456df0bae7babe3b014e460b0b38a8e60753d6cb339f6556d/aiohttp-3.13.5-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c2b2355dc094e5f7d45a7bb262fe7207aa0460b37a0d87027dcf21b5d890e7d5", size = 1781501 }, + { url = "https://files.pythonhosted.org/packages/98/9d/b65ec649adc5bccc008b0957a9a9c691070aeac4e41cea18559fef49958b/aiohttp-3.13.5-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b38765950832f7d728297689ad78f5f2cf79ff82487131c4d26fe6ceecdc5f8e", size = 1878981 }, + { url = "https://files.pythonhosted.org/packages/57/d8/8d44036d7eb7b6a8ec4c5494ea0c8c8b94fbc0ed3991c1a7adf230df03bf/aiohttp-3.13.5-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b18f31b80d5a33661e08c89e202edabf1986e9b49c42b4504371daeaa11b47c1", size = 1767934 }, + { url = "https://files.pythonhosted.org/packages/31/04/d3f8211f273356f158e3464e9e45484d3fb8c4ce5eb2f6fe9405c3273983/aiohttp-3.13.5-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:33add2463dde55c4f2d9635c6ab33ce154e5ecf322bd26d09af95c5f81cfa286", size = 1566671 }, + { url = "https://files.pythonhosted.org/packages/41/db/073e4ebe00b78e2dfcacff734291651729a62953b48933d765dc513bf798/aiohttp-3.13.5-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:327cc432fdf1356fb4fbc6fe833ad4e9f6aacb71a8acaa5f1855e4b25910e4a9", size = 1705219 }, + { url = "https://files.pythonhosted.org/packages/48/45/7dfba71a2f9fd97b15c95c06819de7eb38113d2cdb6319669195a7d64270/aiohttp-3.13.5-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:7c35b0bf0b48a70b4cb4fc5d7bed9b932532728e124874355de1a0af8ec4bc88", size = 1743049 }, + { url = "https://files.pythonhosted.org/packages/18/71/901db0061e0f717d226386a7f471bb59b19566f2cae5f0d93874b017271f/aiohttp-3.13.5-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:df23d57718f24badef8656c49743e11a89fd6f5358fa8a7b96e728fda2abf7d3", size = 1749557 }, + { url = "https://files.pythonhosted.org/packages/08/d5/41eebd16066e59cd43728fe74bce953d7402f2b4ddfdfef2c0e9f17ca274/aiohttp-3.13.5-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:02e048037a6501a5ec1f6fc9736135aec6eb8a004ce48838cb951c515f32c80b", size = 1558931 }, + { url = "https://files.pythonhosted.org/packages/30/e6/4a799798bf05740e66c3a1161079bda7a3dd8e22ca392481d7a7f9af82a6/aiohttp-3.13.5-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:31cebae8b26f8a615d2b546fee45d5ffb76852ae6450e2a03f42c9102260d6fe", size = 1774125 }, + { url = "https://files.pythonhosted.org/packages/84/63/7749337c90f92bc2cb18f9560d67aa6258c7060d1397d21529b8004fcf6f/aiohttp-3.13.5-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:888e78eb5ca55a615d285c3c09a7a91b42e9dd6fc699b166ebd5dee87c9ccf14", size = 1732427 }, + { url = "https://files.pythonhosted.org/packages/98/de/cf2f44ff98d307e72fb97d5f5bbae3bfcb442f0ea9790c0bf5c5c2331404/aiohttp-3.13.5-cp312-cp312-win32.whl", hash = "sha256:8bd3ec6376e68a41f9f95f5ed170e2fcf22d4eb27a1f8cb361d0508f6e0557f3", size = 433534 }, + { url = "https://files.pythonhosted.org/packages/aa/ca/eadf6f9c8fa5e31d40993e3db153fb5ed0b11008ad5d9de98a95045bed84/aiohttp-3.13.5-cp312-cp312-win_amd64.whl", hash = "sha256:110e448e02c729bcebb18c60b9214a87ba33bac4a9fa5e9a5f139938b56c6cb1", size = 460446 }, + { url = "https://files.pythonhosted.org/packages/78/e9/d76bf503005709e390122d34e15256b88f7008e246c4bdbe915cd4f1adce/aiohttp-3.13.5-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a5029cc80718bbd545123cd8fe5d15025eccaaaace5d0eeec6bd556ad6163d61", size = 742930 }, + { url = "https://files.pythonhosted.org/packages/57/00/4b7b70223deaebd9bb85984d01a764b0d7bd6526fcdc73cca83bcbe7243e/aiohttp-3.13.5-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:4bb6bf5811620003614076bdc807ef3b5e38244f9d25ca5fe888eaccea2a9832", size = 496927 }, + { url = "https://files.pythonhosted.org/packages/9c/f5/0fb20fb49f8efdcdce6cd8127604ad2c503e754a8f139f5e02b01626523f/aiohttp-3.13.5-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a84792f8631bf5a94e52d9cc881c0b824ab42717165a5579c760b830d9392ac9", size = 497141 }, + { url = "https://files.pythonhosted.org/packages/3b/86/b7c870053e36a94e8951b803cb5b909bfbc9b90ca941527f5fcafbf6b0fa/aiohttp-3.13.5-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:57653eac22c6a4c13eb22ecf4d673d64a12f266e72785ab1c8b8e5940d0e8090", size = 1732476 }, + { url = "https://files.pythonhosted.org/packages/b5/e5/4e161f84f98d80c03a238671b4136e6530453d65262867d989bbe78244d0/aiohttp-3.13.5-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:e5e5f7debc7a57af53fdf5c5009f9391d9f4c12867049d509bf7bb164a6e295b", size = 1706507 }, + { url = "https://files.pythonhosted.org/packages/d4/56/ea11a9f01518bd5a2a2fcee869d248c4b8a0cfa0bb13401574fa31adf4d4/aiohttp-3.13.5-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c719f65bebcdf6716f10e9eff80d27567f7892d8988c06de12bbbd39307c6e3a", size = 1773465 }, + { url = "https://files.pythonhosted.org/packages/eb/40/333ca27fb74b0383f17c90570c748f7582501507307350a79d9f9f3c6eb1/aiohttp-3.13.5-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d97f93fdae594d886c5a866636397e2bcab146fd7a132fd6bb9ce182224452f8", size = 1873523 }, + { url = "https://files.pythonhosted.org/packages/f0/d2/e2f77eef1acb7111405433c707dc735e63f67a56e176e72e9e7a2cd3f493/aiohttp-3.13.5-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3df334e39d4c2f899a914f1dba283c1aadc311790733f705182998c6f7cae665", size = 1754113 }, + { url = "https://files.pythonhosted.org/packages/fb/56/3f653d7f53c89669301ec9e42c95233e2a0c0a6dd051269e6e678db4fdb0/aiohttp-3.13.5-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:fe6970addfea9e5e081401bcbadf865d2b6da045472f58af08427e108d618540", size = 1562351 }, + { url = "https://files.pythonhosted.org/packages/ec/a6/9b3e91eb8ae791cce4ee736da02211c85c6f835f1bdfac0594a8a3b7018c/aiohttp-3.13.5-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:7becdf835feff2f4f335d7477f121af787e3504b48b449ff737afb35869ba7bb", size = 1693205 }, + { url = "https://files.pythonhosted.org/packages/98/fc/bfb437a99a2fcebd6b6eaec609571954de2ed424f01c352f4b5504371dd3/aiohttp-3.13.5-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:676e5651705ad5d8a70aeb8eb6936c436d8ebbd56e63436cb7dd9bb36d2a9a46", size = 1730618 }, + { url = "https://files.pythonhosted.org/packages/e4/b6/c8534862126191a034f68153194c389addc285a0f1347d85096d349bbc15/aiohttp-3.13.5-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:9b16c653d38eb1a611cc898c41e76859ca27f119d25b53c12875fd0474ae31a8", size = 1745185 }, + { url = "https://files.pythonhosted.org/packages/0b/93/4ca8ee2ef5236e2707e0fd5fecb10ce214aee1ff4ab307af9c558bda3b37/aiohttp-3.13.5-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:999802d5fa0389f58decd24b537c54aa63c01c3219ce17d1214cbda3c2b22d2d", size = 1557311 }, + { url = "https://files.pythonhosted.org/packages/57/ae/76177b15f18c5f5d094f19901d284025db28eccc5ae374d1d254181d33f4/aiohttp-3.13.5-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:ec707059ee75732b1ba130ed5f9580fe10ff75180c812bc267ded039db5128c6", size = 1773147 }, + { url = "https://files.pythonhosted.org/packages/01/a4/62f05a0a98d88af59d93b7fcac564e5f18f513cb7471696ac286db970d6a/aiohttp-3.13.5-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:2d6d44a5b48132053c2f6cd5c8cb14bc67e99a63594e336b0f2af81e94d5530c", size = 1730356 }, + { url = "https://files.pythonhosted.org/packages/e4/85/fc8601f59dfa8c9523808281f2da571f8b4699685f9809a228adcc90838d/aiohttp-3.13.5-cp313-cp313-win32.whl", hash = "sha256:329f292ed14d38a6c4c435e465f48bebb47479fd676a0411936cc371643225cc", size = 432637 }, + { url = "https://files.pythonhosted.org/packages/c0/1b/ac685a8882896acf0f6b31d689e3792199cfe7aba37969fa91da63a7fa27/aiohttp-3.13.5-cp313-cp313-win_amd64.whl", hash = "sha256:69f571de7500e0557801c0b51f4780482c0ec5fe2ac851af5a92cfce1af1cb83", size = 458896 }, + { url = "https://files.pythonhosted.org/packages/5d/ce/46572759afc859e867a5bc8ec3487315869013f59281ce61764f76d879de/aiohttp-3.13.5-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:eb4639f32fd4a9904ab8fb45bf3383ba71137f3d9d4ba25b3b3f3109977c5b8c", size = 745721 }, + { url = "https://files.pythonhosted.org/packages/13/fe/8a2efd7626dbe6049b2ef8ace18ffda8a4dfcbe1bcff3ac30c0c7575c20b/aiohttp-3.13.5-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:7e5dc4311bd5ac493886c63cbf76ab579dbe4641268e7c74e48e774c74b6f2be", size = 497663 }, + { url = "https://files.pythonhosted.org/packages/9b/91/cc8cc78a111826c54743d88651e1687008133c37e5ee615fee9b57990fac/aiohttp-3.13.5-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:756c3c304d394977519824449600adaf2be0ccee76d206ee339c5e76b70ded25", size = 499094 }, + { url = "https://files.pythonhosted.org/packages/0a/33/a8362cb15cf16a3af7e86ed11962d5cd7d59b449202dc576cdc731310bde/aiohttp-3.13.5-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ecc26751323224cf8186efcf7fbcbc30f4e1d8c7970659daf25ad995e4032a56", size = 1726701 }, + { url = "https://files.pythonhosted.org/packages/45/0c/c091ac5c3a17114bd76cbf85d674650969ddf93387876cf67f754204bd77/aiohttp-3.13.5-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:10a75acfcf794edf9d8db50e5a7ec5fc818b2a8d3f591ce93bc7b1210df016d2", size = 1683360 }, + { url = "https://files.pythonhosted.org/packages/23/73/bcee1c2b79bc275e964d1446c55c54441a461938e70267c86afaae6fba27/aiohttp-3.13.5-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:0f7a18f258d124cd678c5fe072fe4432a4d5232b0657fca7c1847f599233c83a", size = 1773023 }, + { url = "https://files.pythonhosted.org/packages/c7/ef/720e639df03004fee2d869f771799d8c23046dec47d5b81e396c7cda583a/aiohttp-3.13.5-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:df6104c009713d3a89621096f3e3e88cc323fd269dbd7c20afe18535094320be", size = 1853795 }, + { url = "https://files.pythonhosted.org/packages/bd/c9/989f4034fb46841208de7aeeac2c6d8300745ab4f28c42f629ba77c2d916/aiohttp-3.13.5-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:241a94f7de7c0c3b616627aaad530fe2cb620084a8b144d3be7b6ecfe95bae3b", size = 1730405 }, + { url = "https://files.pythonhosted.org/packages/ce/75/ee1fd286ca7dc599d824b5651dad7b3be7ff8d9a7e7b3fe9820d9180f7db/aiohttp-3.13.5-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c974fb66180e58709b6fc402846f13791240d180b74de81d23913abe48e96d94", size = 1558082 }, + { url = "https://files.pythonhosted.org/packages/c3/20/1e9e6650dfc436340116b7aa89ff8cb2bbdf0abc11dfaceaad8f74273a10/aiohttp-3.13.5-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:6e27ea05d184afac78aabbac667450c75e54e35f62238d44463131bd3f96753d", size = 1692346 }, + { url = "https://files.pythonhosted.org/packages/d8/40/8ebc6658d48ea630ac7903912fe0dd4e262f0e16825aa4c833c56c9f1f56/aiohttp-3.13.5-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:a79a6d399cef33a11b6f004c67bb07741d91f2be01b8d712d52c75711b1e07c7", size = 1698891 }, + { url = "https://files.pythonhosted.org/packages/d8/78/ea0ae5ec8ba7a5c10bdd6e318f1ba5e76fcde17db8275188772afc7917a4/aiohttp-3.13.5-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:c632ce9c0b534fbe25b52c974515ed674937c5b99f549a92127c85f771a78772", size = 1742113 }, + { url = "https://files.pythonhosted.org/packages/8a/66/9d308ed71e3f2491be1acb8769d96c6f0c47d92099f3bc9119cada27b357/aiohttp-3.13.5-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:fceedde51fbd67ee2bcc8c0b33d0126cc8b51ef3bbde2f86662bd6d5a6f10ec5", size = 1553088 }, + { url = "https://files.pythonhosted.org/packages/da/a6/6cc25ed8dfc6e00c90f5c6d126a98e2cf28957ad06fa1036bd34b6f24a2c/aiohttp-3.13.5-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:f92995dfec9420bb69ae629abf422e516923ba79ba4403bc750d94fb4a6c68c1", size = 1757976 }, + { url = "https://files.pythonhosted.org/packages/c1/2b/cce5b0ffe0de99c83e5e36d8f828e4161e415660a9f3e58339d07cce3006/aiohttp-3.13.5-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:20ae0ff08b1f2c8788d6fb85afcb798654ae6ba0b747575f8562de738078457b", size = 1712444 }, + { url = "https://files.pythonhosted.org/packages/6c/cf/9e1795b4160c58d29421eafd1a69c6ce351e2f7c8d3c6b7e4ca44aea1a5b/aiohttp-3.13.5-cp314-cp314-win32.whl", hash = "sha256:b20df693de16f42b2472a9c485e1c948ee55524786a0a34345511afdd22246f3", size = 438128 }, + { url = "https://files.pythonhosted.org/packages/22/4d/eaedff67fc805aeba4ba746aec891b4b24cebb1a7d078084b6300f79d063/aiohttp-3.13.5-cp314-cp314-win_amd64.whl", hash = "sha256:f85c6f327bf0b8c29da7d93b1cabb6363fb5e4e160a32fa241ed2dce21b73162", size = 464029 }, + { url = "https://files.pythonhosted.org/packages/79/11/c27d9332ee20d68dd164dc12a6ecdef2e2e35ecc97ed6cf0d2442844624b/aiohttp-3.13.5-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:1efb06900858bb618ff5cee184ae2de5828896c448403d51fb633f09e109be0a", size = 778758 }, + { url = "https://files.pythonhosted.org/packages/04/fb/377aead2e0a3ba5f09b7624f702a964bdf4f08b5b6728a9799830c80041e/aiohttp-3.13.5-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:fee86b7c4bd29bdaf0d53d14739b08a106fdda809ca5fe032a15f52fae5fe254", size = 512883 }, + { url = "https://files.pythonhosted.org/packages/bb/a6/aa109a33671f7a5d3bd78b46da9d852797c5e665bfda7d6b373f56bff2ec/aiohttp-3.13.5-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:20058e23909b9e65f9da62b396b77dfa95965cbe840f8def6e572538b1d32e36", size = 516668 }, + { url = "https://files.pythonhosted.org/packages/79/b3/ca078f9f2fa9563c36fb8ef89053ea2bb146d6f792c5104574d49d8acb63/aiohttp-3.13.5-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8cf20a8d6868cb15a73cab329ffc07291ba8c22b1b88176026106ae39aa6df0f", size = 1883461 }, + { url = "https://files.pythonhosted.org/packages/b7/e3/a7ad633ca1ca497b852233a3cce6906a56c3225fb6d9217b5e5e60b7419d/aiohttp-3.13.5-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:330f5da04c987f1d5bdb8ae189137c77139f36bd1cb23779ca1a354a4b027800", size = 1747661 }, + { url = "https://files.pythonhosted.org/packages/33/b9/cd6fe579bed34a906d3d783fe60f2fa297ef55b27bb4538438ee49d4dc41/aiohttp-3.13.5-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:6f1cbf0c7926d315c3c26c2da41fd2b5d2fe01ac0e157b78caefc51a782196cf", size = 1863800 }, + { url = "https://files.pythonhosted.org/packages/c0/3f/2c1e2f5144cefa889c8afd5cf431994c32f3b29da9961698ff4e3811b79a/aiohttp-3.13.5-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:53fc049ed6390d05423ba33103ded7281fe897cf97878f369a527070bd95795b", size = 1958382 }, + { url = "https://files.pythonhosted.org/packages/66/1d/f31ec3f1013723b3babe3609e7f119c2c2fb6ef33da90061a705ef3e1bc8/aiohttp-3.13.5-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:898703aa2667e3c5ca4c54ca36cd73f58b7a38ef87a5606414799ebce4d3fd3a", size = 1803724 }, + { url = "https://files.pythonhosted.org/packages/0e/b4/57712dfc6f1542f067daa81eb61da282fab3e6f1966fca25db06c4fc62d5/aiohttp-3.13.5-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:0494a01ca9584eea1e5fbd6d748e61ecff218c51b576ee1999c23db7066417d8", size = 1640027 }, + { url = "https://files.pythonhosted.org/packages/25/3c/734c878fb43ec083d8e31bf029daae1beafeae582d1b35da234739e82ee7/aiohttp-3.13.5-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:6cf81fe010b8c17b09495cbd15c1d35afbc8fb405c0c9cf4738e5ae3af1d65be", size = 1806644 }, + { url = "https://files.pythonhosted.org/packages/20/a5/f671e5cbec1c21d044ff3078223f949748f3a7f86b14e34a365d74a5d21f/aiohttp-3.13.5-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:c564dd5f09ddc9d8f2c2d0a301cd30a79a2cc1b46dd1a73bef8f0038863d016b", size = 1791630 }, + { url = "https://files.pythonhosted.org/packages/0b/63/fb8d0ad63a0b8a99be97deac8c04dacf0785721c158bdf23d679a87aa99e/aiohttp-3.13.5-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:2994be9f6e51046c4f864598fd9abeb4fba6e88f0b2152422c9666dcd4aea9c6", size = 1809403 }, + { url = "https://files.pythonhosted.org/packages/59/0c/bfed7f30662fcf12206481c2aac57dedee43fe1c49275e85b3a1e1742294/aiohttp-3.13.5-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:157826e2fa245d2ef46c83ea8a5faf77ca19355d278d425c29fda0beb3318037", size = 1634924 }, + { url = "https://files.pythonhosted.org/packages/17/d6/fd518d668a09fd5a3319ae5e984d4d80b9a4b3df4e21c52f02251ef5a32e/aiohttp-3.13.5-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:a8aca50daa9493e9e13c0f566201a9006f080e7c50e5e90d0b06f53146a54500", size = 1836119 }, + { url = "https://files.pythonhosted.org/packages/78/b7/15fb7a9d52e112a25b621c67b69c167805cb1f2ab8f1708a5c490d1b52fe/aiohttp-3.13.5-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:3b13560160d07e047a93f23aaa30718606493036253d5430887514715b67c9d9", size = 1772072 }, + { url = "https://files.pythonhosted.org/packages/7e/df/57ba7f0c4a553fc2bd8b6321df236870ec6fd64a2a473a8a13d4f733214e/aiohttp-3.13.5-cp314-cp314t-win32.whl", hash = "sha256:9a0f4474b6ea6818b41f82172d799e4b3d29e22c2c520ce4357856fced9af2f8", size = 471819 }, + { url = "https://files.pythonhosted.org/packages/62/29/2f8418269e46454a26171bfdd6a055d74febf32234e474930f2f60a17145/aiohttp-3.13.5-cp314-cp314t-win_amd64.whl", hash = "sha256:18a2f6c1182c51baa1d28d68fea51513cb2a76612f038853c0ad3c145423d3d9", size = 505441 }, +] + +[[package]] +name = "aiosignal" +version = "1.4.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "frozenlist" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/61/62/06741b579156360248d1ec624842ad0edf697050bbaf7c3e46394e106ad1/aiosignal-1.4.0.tar.gz", hash = "sha256:f47eecd9468083c2029cc99945502cb7708b082c232f9aca65da147157b251c7", size = 25007 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fb/76/641ae371508676492379f16e2fa48f4e2c11741bd63c48be4b12a6b09cba/aiosignal-1.4.0-py3-none-any.whl", hash = "sha256:053243f8b92b990551949e63930a839ff0cf0b0ebbe0597b0f3fb19e1a0fe82e", size = 7490 }, +] + +[[package]] +name = "altair" +version = "6.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jinja2" }, + { name = "jsonschema" }, + { name = "narwhals" }, + { name = "packaging" }, + { name = "typing-extensions", marker = "python_full_version < '3.15'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f7/c0/184a89bd5feba14ff3c41cfaf1dd8a82c05f5ceedbc92145e17042eb08a4/altair-6.0.0.tar.gz", hash = "sha256:614bf5ecbe2337347b590afb111929aa9c16c9527c4887d96c9bc7f6640756b4", size = 763834 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/db/33/ef2f2409450ef6daa61459d5de5c08128e7d3edb773fefd0a324d1310238/altair-6.0.0-py3-none-any.whl", hash = "sha256:09ae95b53d5fe5b16987dccc785a7af8588f2dca50de1e7a156efa8a461515f8", size = 795410 }, +] + +[[package]] +name = "annotated-doc" +version = "0.0.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/57/ba/046ceea27344560984e26a590f90bc7f4a75b06701f653222458922b558c/annotated_doc-0.0.4.tar.gz", hash = "sha256:fbcda96e87e9c92ad167c2e53839e57503ecfda18804ea28102353485033faa4", size = 7288 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1e/d3/26bf1008eb3d2daa8ef4cacc7f3bfdc11818d111f7e2d0201bc6e3b49d45/annotated_doc-0.0.4-py3-none-any.whl", hash = "sha256:571ac1dc6991c450b25a9c2d84a3705e2ae7a53467b5d111c24fa8baabbed320", size = 5303 }, +] + +[[package]] +name = "annotated-types" +version = "0.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ee/67/531ea369ba64dcff5ec9c3402f9f51bf748cec26dde048a2f973a4eea7f5/annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89", size = 16081 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53", size = 13643 }, +] + +[[package]] +name = "anthropic" +version = "0.88.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "distro" }, + { name = "docstring-parser" }, + { name = "httpx" }, + { name = "jiter" }, + { name = "pydantic" }, + { name = "sniffio" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/86/68/565f13059c0a6a6fd5f96f306f2a0fb478a0e1174ec18a4df16b5fac9379/anthropic-0.88.0.tar.gz", hash = "sha256:f4c7f6863d08c869913516f08d658fe53caaf8bcc4fbea3218df343d2a876c58", size = 596654 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ad/ac/68f646998160c9f2e6f9353a31dd87292ef02b915b455aaf70a52a059a75/anthropic-0.88.0-py3-none-any.whl", hash = "sha256:71898b32332bc75d9739bc10095288d40a29605da6d00da2fe832b1aa036552f", size = 478338 }, +] + +[[package]] +name = "anyio" +version = "4.13.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "idna" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/19/14/2c5dd9f512b66549ae92767a9c7b330ae88e1932ca57876909410251fe13/anyio-4.13.0.tar.gz", hash = "sha256:334b70e641fd2221c1505b3890c69882fe4a2df910cba14d97019b90b24439dc", size = 231622 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/da/42/e921fccf5015463e32a3cf6ee7f980a6ed0f395ceeaa45060b61d86486c2/anyio-4.13.0-py3-none-any.whl", hash = "sha256:08b310f9e24a9594186fd75b4f73f4a4152069e3853f1ed8bfbf58369f4ad708", size = 114353 }, +] + +[[package]] +name = "argcomplete" +version = "3.6.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/38/61/0b9ae6399dd4a58d8c1b1dc5a27d6f2808023d0b5dd3104bb99f45a33ff6/argcomplete-3.6.3.tar.gz", hash = "sha256:62e8ed4fd6a45864acc8235409461b72c9a28ee785a2011cc5eb78318786c89c", size = 73754 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/74/f5/9373290775639cb67a2fce7f629a1c240dce9f12fe927bc32b2736e16dfc/argcomplete-3.6.3-py3-none-any.whl", hash = "sha256:f5007b3a600ccac5d25bbce33089211dfd49eab4a7718da3f10e3082525a92ce", size = 43846 }, +] + +[[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 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/64/b4/17d4b0b2a2dc85a6df63d1157e028ed19f90d4cd97c36717afef2bc2f395/attrs-26.1.0-py3-none-any.whl", hash = "sha256:c647aa4a12dfbad9333ca4e71fe62ddc36f4e63b2d260a37a8b83d2f043ac309", size = 67548 }, +] + +[[package]] +name = "authlib" +version = "1.6.9" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cryptography" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/af/98/00d3dd826d46959ad8e32af2dbb2398868fd9fd0683c26e56d0789bd0e68/authlib-1.6.9.tar.gz", hash = "sha256:d8f2421e7e5980cc1ddb4e32d3f5fa659cfaf60d8eaf3281ebed192e4ab74f04", size = 165134 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/53/23/b65f568ed0c22f1efacb744d2db1a33c8068f384b8c9b482b52ebdbc3ef6/authlib-1.6.9-py2.py3-none-any.whl", hash = "sha256:f08b4c14e08f0861dc18a32357b33fbcfd2ea86cfe3fe149484b4d764c4a0ac3", size = 244197 }, +] + +[[package]] +name = "beartype" +version = "0.22.9" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c7/94/1009e248bbfbab11397abca7193bea6626806be9a327d399810d523a07cb/beartype-0.22.9.tar.gz", hash = "sha256:8f82b54aa723a2848a56008d18875f91c1db02c32ef6a62319a002e3e25a975f", size = 1608866 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/71/cc/18245721fa7747065ab478316c7fea7c74777d07f37ae60db2e84f8172e8/beartype-0.22.9-py3-none-any.whl", hash = "sha256:d16c9bbc61ea14637596c5f6fbff2ee99cbe3573e46a716401734ef50c3060c2", size = 1333658 }, +] + +[[package]] +name = "blinker" +version = "1.9.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/21/28/9b3f50ce0e048515135495f198351908d99540d69bfdc8c1d15b73dc55ce/blinker-1.9.0.tar.gz", hash = "sha256:b4ce2265a7abece45e7cc896e98dbebe6cead56bcf805a3d23136d145f5445bf", size = 22460 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/10/cb/f2ad4230dc2eb1a74edf38f1a38b9b52277f75bef262d8908e60d957e13c/blinker-1.9.0-py3-none-any.whl", hash = "sha256:ba0efaa9080b619ff2f3459d1d500c57bddea4a6b424b60a91141db6fd2f08bc", size = 8458 }, +] + +[[package]] +name = "boston-needle-map" +version = "3.0.0" +source = { editable = "." } +dependencies = [ + { name = "folium" }, + { name = "plotly" }, + { name = "pydantic" }, + { name = "pydantic-ai" }, + { name = "python-dateutil" }, + { name = "streamlit" }, + { name = "streamlit-folium" }, + { name = "typer" }, +] + +[package.dev-dependencies] +dev = [ + { name = "mypy" }, + { name = "pytest" }, + { name = "ruff" }, +] + +[package.metadata] +requires-dist = [ + { name = "folium", specifier = ">=0.18.0" }, + { name = "plotly", specifier = ">=6.0.0" }, + { name = "pydantic", specifier = ">=2.10.0" }, + { name = "pydantic-ai", specifier = ">=0.1.0" }, + { name = "python-dateutil", specifier = ">=2.9.0.post0" }, + { name = "streamlit", specifier = ">=1.40.0" }, + { name = "streamlit-folium", specifier = ">=0.23.0" }, + { name = "typer", specifier = ">=0.15.0" }, +] + +[package.metadata.requires-dev] +dev = [ + { name = "mypy", specifier = ">=1.14.0" }, + { name = "pytest", specifier = ">=8.3.0" }, + { name = "ruff", specifier = ">=0.9.0" }, +] + +[[package]] +name = "boto3" +version = "1.42.81" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "botocore" }, + { name = "jmespath" }, + { name = "s3transfer" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/9d/4d/40029c26b535c41333a0b11573127cfc548fdcb1cbcd1798ea7046c56bab/boto3-1.42.81.tar.gz", hash = "sha256:e5c0d57229763007151be6d388319514a040ccdc922fbb27e37c3100a7fbc01a", size = 112785 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/84/e5/a1a8e8bbaaa258645fe04bb6a39d7d57b6a12650312f880b8e9add638a56/boto3-1.42.81-py3-none-any.whl", hash = "sha256:216f43e308f1f65e69f57784e5042ffcb2eb6a45e370d118ea384510c148fde7", size = 140554 }, +] + +[[package]] +name = "botocore" +version = "1.42.81" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jmespath" }, + { name = "python-dateutil" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/fa/5f/b0bb9a8768398fb131e1fe722c9cc5b18f74d21ca1970efe8576912b2c6e/botocore-1.42.81.tar.gz", hash = "sha256:48e6f6f52de1cc107a34810309b8ca998ea9bb719a3fe4c06f903a604b3138cb", size = 15129980 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d7/33/c7a01649a6cb7219b233d2ed071ab925e52cdb64e15ce935024c0007376f/botocore-1.42.81-py3-none-any.whl", hash = "sha256:bcef8c93c20ebeba95e4f8b9edfbffbc78a0e11235425a92ee32e48fd8e03c37", size = 14807198 }, +] + +[[package]] +name = "branca" +version = "0.8.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jinja2" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/32/14/9d409124bda3f4ab7af3802aba07181d1fd56aa96cc4b999faea6a27a0d2/branca-0.8.2.tar.gz", hash = "sha256:e5040f4c286e973658c27de9225c1a5a7356dd0702a7c8d84c0f0dfbde388fe7", size = 27890 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7e/50/fc9680058e63161f2f63165b84c957a0df1415431104c408e8104a3a18ef/branca-0.8.2-py3-none-any.whl", hash = "sha256:2ebaef3983e3312733c1ae2b793b0a8ba3e1c4edeb7598e10328505280cf2f7c", size = 26193 }, +] + +[[package]] +name = "cachetools" +version = "7.0.5" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/af/dd/57fe3fdb6e65b25a5987fd2cdc7e22db0aef508b91634d2e57d22928d41b/cachetools-7.0.5.tar.gz", hash = "sha256:0cd042c24377200c1dcd225f8b7b12b0ca53cc2c961b43757e774ebe190fd990", size = 37367 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/06/f3/39cf3367b8107baa44f861dc802cbf16263c945b62d8265d36034fc07bea/cachetools-7.0.5-py3-none-any.whl", hash = "sha256:46bc8ebefbe485407621d0a4264b23c080cedd913921bad7ac3ed2f26c183114", size = 13918 }, +] + +[[package]] +name = "caio" +version = "0.9.25" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/92/88/b8527e1b00c1811db339a1df8bd1ae49d146fcea9d6a5c40e3a80aaeb38d/caio-0.9.25.tar.gz", hash = "sha256:16498e7f81d1d0f5a4c0ad3f2540e65fe25691376e0a5bd367f558067113ed10", size = 26781 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d3/25/79c98ebe12df31548ba4eaf44db11b7cad6b3e7b4203718335620939083c/caio-0.9.25-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:fb7ff95af4c31ad3f03179149aab61097a71fd85e05f89b4786de0359dffd044", size = 36983 }, + { url = "https://files.pythonhosted.org/packages/a3/2b/21288691f16d479945968a0a4f2856818c1c5be56881d51d4dac9b255d26/caio-0.9.25-cp312-cp312-manylinux2010_x86_64.manylinux2014_x86_64.manylinux_2_12_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:97084e4e30dfa598449d874c4d8e0c8d5ea17d2f752ef5e48e150ff9d240cd64", size = 82012 }, + { url = "https://files.pythonhosted.org/packages/03/c4/8a1b580875303500a9c12b9e0af58cb82e47f5bcf888c2457742a138273c/caio-0.9.25-cp312-cp312-manylinux_2_34_aarch64.whl", hash = "sha256:4fa69eba47e0f041b9d4f336e2ad40740681c43e686b18b191b6c5f4c5544bfb", size = 81502 }, + { url = "https://files.pythonhosted.org/packages/d1/1c/0fe770b8ffc8362c48134d1592d653a81a3d8748d764bec33864db36319d/caio-0.9.25-cp312-cp312-manylinux_2_34_x86_64.whl", hash = "sha256:6bebf6f079f1341d19f7386db9b8b1f07e8cc15ae13bfdaff573371ba0575d69", size = 80200 }, + { url = "https://files.pythonhosted.org/packages/31/57/5e6ff127e6f62c9f15d989560435c642144aa4210882f9494204bc892305/caio-0.9.25-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:d6c2a3411af97762a2b03840c3cec2f7f728921ff8adda53d7ea2315a8563451", size = 36979 }, + { url = "https://files.pythonhosted.org/packages/a3/9f/f21af50e72117eb528c422d4276cbac11fb941b1b812b182e0a9c70d19c5/caio-0.9.25-cp313-cp313-manylinux2010_x86_64.manylinux2014_x86_64.manylinux_2_12_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:0998210a4d5cd5cb565b32ccfe4e53d67303f868a76f212e002a8554692870e6", size = 81900 }, + { url = "https://files.pythonhosted.org/packages/9c/12/c39ae2a4037cb10ad5eb3578eb4d5f8c1a2575c62bba675f3406b7ef0824/caio-0.9.25-cp313-cp313-manylinux_2_34_aarch64.whl", hash = "sha256:1a177d4777141b96f175fe2c37a3d96dec7911ed9ad5f02bac38aaa1c936611f", size = 81523 }, + { url = "https://files.pythonhosted.org/packages/22/59/f8f2e950eb4f1a5a3883e198dca514b9d475415cb6cd7b78b9213a0dd45a/caio-0.9.25-cp313-cp313-manylinux_2_34_x86_64.whl", hash = "sha256:9ed3cfb28c0e99fec5e208c934e5c157d0866aa9c32aa4dc5e9b6034af6286b7", size = 80243 }, + { url = "https://files.pythonhosted.org/packages/69/ca/a08fdc7efdcc24e6a6131a93c85be1f204d41c58f474c42b0670af8c016b/caio-0.9.25-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:fab6078b9348e883c80a5e14b382e6ad6aabbc4429ca034e76e730cf464269db", size = 36978 }, + { url = "https://files.pythonhosted.org/packages/5e/6c/d4d24f65e690213c097174d26eda6831f45f4734d9d036d81790a27e7b78/caio-0.9.25-cp314-cp314-manylinux2010_x86_64.manylinux2014_x86_64.manylinux_2_12_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:44a6b58e52d488c75cfaa5ecaa404b2b41cc965e6c417e03251e868ecd5b6d77", size = 81832 }, + { url = "https://files.pythonhosted.org/packages/87/a4/e534cf7d2d0e8d880e25dd61e8d921ffcfe15bd696734589826f5a2df727/caio-0.9.25-cp314-cp314-manylinux_2_34_aarch64.whl", hash = "sha256:628a630eb7fb22381dd8e3c8ab7f59e854b9c806639811fc3f4310c6bd711d79", size = 81565 }, + { url = "https://files.pythonhosted.org/packages/3f/ed/bf81aeac1d290017e5e5ac3e880fd56ee15e50a6d0353986799d1bc5cfd5/caio-0.9.25-cp314-cp314-manylinux_2_34_x86_64.whl", hash = "sha256:0ba16aa605ccb174665357fc729cf500679c2d94d5f1458a6f0d5ca48f2060a7", size = 80071 }, + { url = "https://files.pythonhosted.org/packages/86/93/1f76c8d1bafe3b0614e06b2195784a3765bbf7b0a067661af9e2dd47fc33/caio-0.9.25-py3-none-any.whl", hash = "sha256:06c0bb02d6b929119b1cfbe1ca403c768b2013a369e2db46bfa2a5761cf82e40", size = 19087 }, +] + +[[package]] +name = "certifi" +version = "2026.2.25" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/af/2d/7bf41579a8986e348fa033a31cdd0e4121114f6bce2457e8876010b092dd/certifi-2026.2.25.tar.gz", hash = "sha256:e887ab5cee78ea814d3472169153c2d12cd43b14bd03329a39a9c6e2e80bfba7", size = 155029 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9a/3c/c17fb3ca2d9c3acff52e30b309f538586f9f5b9c9cf454f3845fc9af4881/certifi-2026.2.25-py3-none-any.whl", hash = "sha256:027692e4402ad994f1c42e52a4997a9763c646b73e4096e4d5d6db8af1d6f0fa", size = 153684 }, +] + +[[package]] +name = "cffi" +version = "2.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pycparser", marker = "implementation_name != 'PyPy'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/eb/56/b1ba7935a17738ae8453301356628e8147c79dbb825bcbc73dc7401f9846/cffi-2.0.0.tar.gz", hash = "sha256:44d1b5909021139fe36001ae048dbdde8214afa20200eda0f64c068cac5d5529", size = 523588 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ea/47/4f61023ea636104d4f16ab488e268b93008c3d0bb76893b1b31db1f96802/cffi-2.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:6d02d6655b0e54f54c4ef0b94eb6be0607b70853c45ce98bd278dc7de718be5d", size = 185271 }, + { url = "https://files.pythonhosted.org/packages/df/a2/781b623f57358e360d62cdd7a8c681f074a71d445418a776eef0aadb4ab4/cffi-2.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8eca2a813c1cb7ad4fb74d368c2ffbbb4789d377ee5bb8df98373c2cc0dee76c", size = 181048 }, + { url = "https://files.pythonhosted.org/packages/ff/df/a4f0fbd47331ceeba3d37c2e51e9dfc9722498becbeec2bd8bc856c9538a/cffi-2.0.0-cp312-cp312-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:21d1152871b019407d8ac3985f6775c079416c282e431a4da6afe7aefd2bccbe", size = 212529 }, + { url = "https://files.pythonhosted.org/packages/d5/72/12b5f8d3865bf0f87cf1404d8c374e7487dcf097a1c91c436e72e6badd83/cffi-2.0.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:b21e08af67b8a103c71a250401c78d5e0893beff75e28c53c98f4de42f774062", size = 220097 }, + { url = "https://files.pythonhosted.org/packages/c2/95/7a135d52a50dfa7c882ab0ac17e8dc11cec9d55d2c18dda414c051c5e69e/cffi-2.0.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:1e3a615586f05fc4065a8b22b8152f0c1b00cdbc60596d187c2a74f9e3036e4e", size = 207983 }, + { url = "https://files.pythonhosted.org/packages/3a/c8/15cb9ada8895957ea171c62dc78ff3e99159ee7adb13c0123c001a2546c1/cffi-2.0.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:81afed14892743bbe14dacb9e36d9e0e504cd204e0b165062c488942b9718037", size = 206519 }, + { url = "https://files.pythonhosted.org/packages/78/2d/7fa73dfa841b5ac06c7b8855cfc18622132e365f5b81d02230333ff26e9e/cffi-2.0.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3e17ed538242334bf70832644a32a7aae3d83b57567f9fd60a26257e992b79ba", size = 219572 }, + { url = "https://files.pythonhosted.org/packages/07/e0/267e57e387b4ca276b90f0434ff88b2c2241ad72b16d31836adddfd6031b/cffi-2.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3925dd22fa2b7699ed2617149842d2e6adde22b262fcbfada50e3d195e4b3a94", size = 222963 }, + { url = "https://files.pythonhosted.org/packages/b6/75/1f2747525e06f53efbd878f4d03bac5b859cbc11c633d0fb81432d98a795/cffi-2.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:2c8f814d84194c9ea681642fd164267891702542f028a15fc97d4674b6206187", size = 221361 }, + { url = "https://files.pythonhosted.org/packages/7b/2b/2b6435f76bfeb6bbf055596976da087377ede68df465419d192acf00c437/cffi-2.0.0-cp312-cp312-win32.whl", hash = "sha256:da902562c3e9c550df360bfa53c035b2f241fed6d9aef119048073680ace4a18", size = 172932 }, + { url = "https://files.pythonhosted.org/packages/f8/ed/13bd4418627013bec4ed6e54283b1959cf6db888048c7cf4b4c3b5b36002/cffi-2.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:da68248800ad6320861f129cd9c1bf96ca849a2771a59e0344e88681905916f5", size = 183557 }, + { url = "https://files.pythonhosted.org/packages/95/31/9f7f93ad2f8eff1dbc1c3656d7ca5bfd8fb52c9d786b4dcf19b2d02217fa/cffi-2.0.0-cp312-cp312-win_arm64.whl", hash = "sha256:4671d9dd5ec934cb9a73e7ee9676f9362aba54f7f34910956b84d727b0d73fb6", size = 177762 }, + { url = "https://files.pythonhosted.org/packages/4b/8d/a0a47a0c9e413a658623d014e91e74a50cdd2c423f7ccfd44086ef767f90/cffi-2.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:00bdf7acc5f795150faa6957054fbbca2439db2f775ce831222b66f192f03beb", size = 185230 }, + { url = "https://files.pythonhosted.org/packages/4a/d2/a6c0296814556c68ee32009d9c2ad4f85f2707cdecfd7727951ec228005d/cffi-2.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:45d5e886156860dc35862657e1494b9bae8dfa63bf56796f2fb56e1679fc0bca", size = 181043 }, + { url = "https://files.pythonhosted.org/packages/b0/1e/d22cc63332bd59b06481ceaac49d6c507598642e2230f201649058a7e704/cffi-2.0.0-cp313-cp313-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:07b271772c100085dd28b74fa0cd81c8fb1a3ba18b21e03d7c27f3436a10606b", size = 212446 }, + { url = "https://files.pythonhosted.org/packages/a9/f5/a2c23eb03b61a0b8747f211eb716446c826ad66818ddc7810cc2cc19b3f2/cffi-2.0.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d48a880098c96020b02d5a1f7d9251308510ce8858940e6fa99ece33f610838b", size = 220101 }, + { url = "https://files.pythonhosted.org/packages/f2/7f/e6647792fc5850d634695bc0e6ab4111ae88e89981d35ac269956605feba/cffi-2.0.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:f93fd8e5c8c0a4aa1f424d6173f14a892044054871c771f8566e4008eaa359d2", size = 207948 }, + { url = "https://files.pythonhosted.org/packages/cb/1e/a5a1bd6f1fb30f22573f76533de12a00bf274abcdc55c8edab639078abb6/cffi-2.0.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:dd4f05f54a52fb558f1ba9f528228066954fee3ebe629fc1660d874d040ae5a3", size = 206422 }, + { url = "https://files.pythonhosted.org/packages/98/df/0a1755e750013a2081e863e7cd37e0cdd02664372c754e5560099eb7aa44/cffi-2.0.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c8d3b5532fc71b7a77c09192b4a5a200ea992702734a2e9279a37f2478236f26", size = 219499 }, + { url = "https://files.pythonhosted.org/packages/50/e1/a969e687fcf9ea58e6e2a928ad5e2dd88cc12f6f0ab477e9971f2309b57c/cffi-2.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:d9b29c1f0ae438d5ee9acb31cadee00a58c46cc9c0b2f9038c6b0b3470877a8c", size = 222928 }, + { url = "https://files.pythonhosted.org/packages/36/54/0362578dd2c9e557a28ac77698ed67323ed5b9775ca9d3fe73fe191bb5d8/cffi-2.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6d50360be4546678fc1b79ffe7a66265e28667840010348dd69a314145807a1b", size = 221302 }, + { url = "https://files.pythonhosted.org/packages/eb/6d/bf9bda840d5f1dfdbf0feca87fbdb64a918a69bca42cfa0ba7b137c48cb8/cffi-2.0.0-cp313-cp313-win32.whl", hash = "sha256:74a03b9698e198d47562765773b4a8309919089150a0bb17d829ad7b44b60d27", size = 172909 }, + { url = "https://files.pythonhosted.org/packages/37/18/6519e1ee6f5a1e579e04b9ddb6f1676c17368a7aba48299c3759bbc3c8b3/cffi-2.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:19f705ada2530c1167abacb171925dd886168931e0a7b78f5bffcae5c6b5be75", size = 183402 }, + { url = "https://files.pythonhosted.org/packages/cb/0e/02ceeec9a7d6ee63bb596121c2c8e9b3a9e150936f4fbef6ca1943e6137c/cffi-2.0.0-cp313-cp313-win_arm64.whl", hash = "sha256:256f80b80ca3853f90c21b23ee78cd008713787b1b1e93eae9f3d6a7134abd91", size = 177780 }, + { url = "https://files.pythonhosted.org/packages/92/c4/3ce07396253a83250ee98564f8d7e9789fab8e58858f35d07a9a2c78de9f/cffi-2.0.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:fc33c5141b55ed366cfaad382df24fe7dcbc686de5be719b207bb248e3053dc5", size = 185320 }, + { url = "https://files.pythonhosted.org/packages/59/dd/27e9fa567a23931c838c6b02d0764611c62290062a6d4e8ff7863daf9730/cffi-2.0.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c654de545946e0db659b3400168c9ad31b5d29593291482c43e3564effbcee13", size = 181487 }, + { url = "https://files.pythonhosted.org/packages/d6/43/0e822876f87ea8a4ef95442c3d766a06a51fc5298823f884ef87aaad168c/cffi-2.0.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:24b6f81f1983e6df8db3adc38562c83f7d4a0c36162885ec7f7b77c7dcbec97b", size = 220049 }, + { url = "https://files.pythonhosted.org/packages/b4/89/76799151d9c2d2d1ead63c2429da9ea9d7aac304603de0c6e8764e6e8e70/cffi-2.0.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:12873ca6cb9b0f0d3a0da705d6086fe911591737a59f28b7936bdfed27c0d47c", size = 207793 }, + { url = "https://files.pythonhosted.org/packages/bb/dd/3465b14bb9e24ee24cb88c9e3730f6de63111fffe513492bf8c808a3547e/cffi-2.0.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:d9b97165e8aed9272a6bb17c01e3cc5871a594a446ebedc996e2397a1c1ea8ef", size = 206300 }, + { url = "https://files.pythonhosted.org/packages/47/d9/d83e293854571c877a92da46fdec39158f8d7e68da75bf73581225d28e90/cffi-2.0.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:afb8db5439b81cf9c9d0c80404b60c3cc9c3add93e114dcae767f1477cb53775", size = 219244 }, + { url = "https://files.pythonhosted.org/packages/2b/0f/1f177e3683aead2bb00f7679a16451d302c436b5cbf2505f0ea8146ef59e/cffi-2.0.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:737fe7d37e1a1bffe70bd5754ea763a62a066dc5913ca57e957824b72a85e205", size = 222828 }, + { url = "https://files.pythonhosted.org/packages/c6/0f/cafacebd4b040e3119dcb32fed8bdef8dfe94da653155f9d0b9dc660166e/cffi-2.0.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:38100abb9d1b1435bc4cc340bb4489635dc2f0da7456590877030c9b3d40b0c1", size = 220926 }, + { url = "https://files.pythonhosted.org/packages/3e/aa/df335faa45b395396fcbc03de2dfcab242cd61a9900e914fe682a59170b1/cffi-2.0.0-cp314-cp314-win32.whl", hash = "sha256:087067fa8953339c723661eda6b54bc98c5625757ea62e95eb4898ad5e776e9f", size = 175328 }, + { url = "https://files.pythonhosted.org/packages/bb/92/882c2d30831744296ce713f0feb4c1cd30f346ef747b530b5318715cc367/cffi-2.0.0-cp314-cp314-win_amd64.whl", hash = "sha256:203a48d1fb583fc7d78a4c6655692963b860a417c0528492a6bc21f1aaefab25", size = 185650 }, + { url = "https://files.pythonhosted.org/packages/9f/2c/98ece204b9d35a7366b5b2c6539c350313ca13932143e79dc133ba757104/cffi-2.0.0-cp314-cp314-win_arm64.whl", hash = "sha256:dbd5c7a25a7cb98f5ca55d258b103a2054f859a46ae11aaf23134f9cc0d356ad", size = 180687 }, + { url = "https://files.pythonhosted.org/packages/3e/61/c768e4d548bfa607abcda77423448df8c471f25dbe64fb2ef6d555eae006/cffi-2.0.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:9a67fc9e8eb39039280526379fb3a70023d77caec1852002b4da7e8b270c4dd9", size = 188773 }, + { url = "https://files.pythonhosted.org/packages/2c/ea/5f76bce7cf6fcd0ab1a1058b5af899bfbef198bea4d5686da88471ea0336/cffi-2.0.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:7a66c7204d8869299919db4d5069a82f1561581af12b11b3c9f48c584eb8743d", size = 185013 }, + { url = "https://files.pythonhosted.org/packages/be/b4/c56878d0d1755cf9caa54ba71e5d049479c52f9e4afc230f06822162ab2f/cffi-2.0.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7cc09976e8b56f8cebd752f7113ad07752461f48a58cbba644139015ac24954c", size = 221593 }, + { url = "https://files.pythonhosted.org/packages/e0/0d/eb704606dfe8033e7128df5e90fee946bbcb64a04fcdaa97321309004000/cffi-2.0.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:92b68146a71df78564e4ef48af17551a5ddd142e5190cdf2c5624d0c3ff5b2e8", size = 209354 }, + { url = "https://files.pythonhosted.org/packages/d8/19/3c435d727b368ca475fb8742ab97c9cb13a0de600ce86f62eab7fa3eea60/cffi-2.0.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:b1e74d11748e7e98e2f426ab176d4ed720a64412b6a15054378afdb71e0f37dc", size = 208480 }, + { url = "https://files.pythonhosted.org/packages/d0/44/681604464ed9541673e486521497406fadcc15b5217c3e326b061696899a/cffi-2.0.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:28a3a209b96630bca57cce802da70c266eb08c6e97e5afd61a75611ee6c64592", size = 221584 }, + { url = "https://files.pythonhosted.org/packages/25/8e/342a504ff018a2825d395d44d63a767dd8ebc927ebda557fecdaca3ac33a/cffi-2.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:7553fb2090d71822f02c629afe6042c299edf91ba1bf94951165613553984512", size = 224443 }, + { url = "https://files.pythonhosted.org/packages/e1/5e/b666bacbbc60fbf415ba9988324a132c9a7a0448a9a8f125074671c0f2c3/cffi-2.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:6c6c373cfc5c83a975506110d17457138c8c63016b563cc9ed6e056a82f13ce4", size = 223437 }, + { url = "https://files.pythonhosted.org/packages/a0/1d/ec1a60bd1a10daa292d3cd6bb0b359a81607154fb8165f3ec95fe003b85c/cffi-2.0.0-cp314-cp314t-win32.whl", hash = "sha256:1fc9ea04857caf665289b7a75923f2c6ed559b8298a1b8c49e59f7dd95c8481e", size = 180487 }, + { url = "https://files.pythonhosted.org/packages/bf/41/4c1168c74fac325c0c8156f04b6749c8b6a8f405bbf91413ba088359f60d/cffi-2.0.0-cp314-cp314t-win_amd64.whl", hash = "sha256:d68b6cef7827e8641e8ef16f4494edda8b36104d79773a334beaa1e3521430f6", size = 191726 }, + { url = "https://files.pythonhosted.org/packages/ae/3a/dbeec9d1ee0844c679f6bb5d6ad4e9f198b1224f4e7a32825f47f6192b0c/cffi-2.0.0-cp314-cp314t-win_arm64.whl", hash = "sha256:0a1527a803f0a659de1af2e1fd700213caba79377e27e4693648c2923da066f9", size = 184195 }, +] + +[[package]] +name = "charset-normalizer" +version = "3.4.7" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e7/a1/67fe25fac3c7642725500a3f6cfe5821ad557c3abb11c9d20d12c7008d3e/charset_normalizer-3.4.7.tar.gz", hash = "sha256:ae89db9e5f98a11a4bf50407d4363e7b09b31e55bc117b4f7d80aab97ba009e5", size = 144271 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0c/eb/4fc8d0a7110eb5fc9cc161723a34a8a6c200ce3b4fbf681bc86feee22308/charset_normalizer-3.4.7-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:eca9705049ad3c7345d574e3510665cb2cf844c2f2dcfe675332677f081cbd46", size = 311328 }, + { url = "https://files.pythonhosted.org/packages/f8/e3/0fadc706008ac9d7b9b5be6dc767c05f9d3e5df51744ce4cc9605de7b9f4/charset_normalizer-3.4.7-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6178f72c5508bfc5fd446a5905e698c6212932f25bcdd4b47a757a50605a90e2", size = 208061 }, + { url = "https://files.pythonhosted.org/packages/42/f0/3dd1045c47f4a4604df85ec18ad093912ae1344ac706993aff91d38773a2/charset_normalizer-3.4.7-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:e1421b502d83040e6d7fb2fb18dff63957f720da3d77b2fbd3187ceb63755d7b", size = 229031 }, + { url = "https://files.pythonhosted.org/packages/dc/67/675a46eb016118a2fbde5a277a5d15f4f69d5f3f5f338e5ee2f8948fcf43/charset_normalizer-3.4.7-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:edac0f1ab77644605be2cbba52e6b7f630731fc42b34cb0f634be1a6eface56a", size = 225239 }, + { url = "https://files.pythonhosted.org/packages/4b/f8/d0118a2f5f23b02cd166fa385c60f9b0d4f9194f574e2b31cef350ad7223/charset_normalizer-3.4.7-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5649fd1c7bade02f320a462fdefd0b4bd3ce036065836d4f42e0de958038e116", size = 216589 }, + { url = "https://files.pythonhosted.org/packages/b1/f1/6d2b0b261b6c4ceef0fcb0d17a01cc5bc53586c2d4796fa04b5c540bc13d/charset_normalizer-3.4.7-cp312-cp312-manylinux_2_31_armv7l.whl", hash = "sha256:203104ed3e428044fd943bc4bf45fa73c0730391f9621e37fe39ecf477b128cb", size = 202733 }, + { url = "https://files.pythonhosted.org/packages/6f/c0/7b1f943f7e87cc3db9626ba17807d042c38645f0a1d4415c7a14afb5591f/charset_normalizer-3.4.7-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:298930cec56029e05497a76988377cbd7457ba864beeea92ad7e844fe74cd1f1", size = 212652 }, + { url = "https://files.pythonhosted.org/packages/38/dd/5a9ab159fe45c6e72079398f277b7d2b523e7f716acc489726115a910097/charset_normalizer-3.4.7-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:708838739abf24b2ceb208d0e22403dd018faeef86ddac04319a62ae884c4f15", size = 211229 }, + { url = "https://files.pythonhosted.org/packages/d5/ff/531a1cad5ca855d1c1a8b69cb71abfd6d85c0291580146fda7c82857caa1/charset_normalizer-3.4.7-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:0f7eb884681e3938906ed0434f20c63046eacd0111c4ba96f27b76084cd679f5", size = 203552 }, + { url = "https://files.pythonhosted.org/packages/c1/4c/a5fb52d528a8ca41f7598cb619409ece30a169fbdf9cdce592e53b46c3a6/charset_normalizer-3.4.7-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:4dc1e73c36828f982bfe79fadf5919923f8a6f4df2860804db9a98c48824ce8d", size = 230806 }, + { url = "https://files.pythonhosted.org/packages/59/7a/071feed8124111a32b316b33ae4de83d36923039ef8cf48120266844285b/charset_normalizer-3.4.7-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:aed52fea0513bac0ccde438c188c8a471c4e0f457c2dd20cdbf6ea7a450046c7", size = 212316 }, + { url = "https://files.pythonhosted.org/packages/fd/35/f7dba3994312d7ba508e041eaac39a36b120f32d4c8662b8814dab876431/charset_normalizer-3.4.7-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:fea24543955a6a729c45a73fe90e08c743f0b3334bbf3201e6c4bc1b0c7fa464", size = 227274 }, + { url = "https://files.pythonhosted.org/packages/8a/2d/a572df5c9204ab7688ec1edc895a73ebded3b023bb07364710b05dd1c9be/charset_normalizer-3.4.7-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:bb6d88045545b26da47aa879dd4a89a71d1dce0f0e549b1abcb31dfe4a8eac49", size = 218468 }, + { url = "https://files.pythonhosted.org/packages/86/eb/890922a8b03a568ca2f336c36585a4713c55d4d67bf0f0c78924be6315ca/charset_normalizer-3.4.7-cp312-cp312-win32.whl", hash = "sha256:2257141f39fe65a3fdf38aeccae4b953e5f3b3324f4ff0daf9f15b8518666a2c", size = 148460 }, + { url = "https://files.pythonhosted.org/packages/35/d9/0e7dffa06c5ab081f75b1b786f0aefc88365825dfcd0ac544bdb7b2b6853/charset_normalizer-3.4.7-cp312-cp312-win_amd64.whl", hash = "sha256:5ed6ab538499c8644b8a3e18debabcd7ce684f3fa91cf867521a7a0279cab2d6", size = 159330 }, + { url = "https://files.pythonhosted.org/packages/9e/5d/481bcc2a7c88ea6b0878c299547843b2521ccbc40980cb406267088bc701/charset_normalizer-3.4.7-cp312-cp312-win_arm64.whl", hash = "sha256:56be790f86bfb2c98fb742ce566dfb4816e5a83384616ab59c49e0604d49c51d", size = 147828 }, + { url = "https://files.pythonhosted.org/packages/c1/3b/66777e39d3ae1ddc77ee606be4ec6d8cbd4c801f65e5a1b6f2b11b8346dd/charset_normalizer-3.4.7-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:f496c9c3cc02230093d8330875c4c3cdfc3b73612a5fd921c65d39cbcef08063", size = 309627 }, + { url = "https://files.pythonhosted.org/packages/2e/4e/b7f84e617b4854ade48a1b7915c8ccfadeba444d2a18c291f696e37f0d3b/charset_normalizer-3.4.7-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0ea948db76d31190bf08bd371623927ee1339d5f2a0b4b1b4a4439a65298703c", size = 207008 }, + { url = "https://files.pythonhosted.org/packages/c4/bb/ec73c0257c9e11b268f018f068f5d00aa0ef8c8b09f7753ebd5f2880e248/charset_normalizer-3.4.7-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a277ab8928b9f299723bc1a2dabb1265911b1a76341f90a510368ca44ad9ab66", size = 228303 }, + { url = "https://files.pythonhosted.org/packages/85/fb/32d1f5033484494619f701e719429c69b766bfc4dbc61aa9e9c8c166528b/charset_normalizer-3.4.7-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:3bec022aec2c514d9cf199522a802bd007cd588ab17ab2525f20f9c34d067c18", size = 224282 }, + { url = "https://files.pythonhosted.org/packages/fa/07/330e3a0dda4c404d6da83b327270906e9654a24f6c546dc886a0eb0ffb23/charset_normalizer-3.4.7-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e044c39e41b92c845bc815e5ae4230804e8e7bc29e399b0437d64222d92809dd", size = 215595 }, + { url = "https://files.pythonhosted.org/packages/e3/7c/fc890655786e423f02556e0216d4b8c6bcb6bdfa890160dc66bf52dee468/charset_normalizer-3.4.7-cp313-cp313-manylinux_2_31_armv7l.whl", hash = "sha256:f495a1652cf3fbab2eb0639776dad966c2fb874d79d87ca07f9d5f059b8bd215", size = 201986 }, + { url = "https://files.pythonhosted.org/packages/d8/97/bfb18b3db2aed3b90cf54dc292ad79fdd5ad65c4eae454099475cbeadd0d/charset_normalizer-3.4.7-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e712b419df8ba5e42b226c510472b37bd57b38e897d3eca5e8cfd410a29fa859", size = 211711 }, + { url = "https://files.pythonhosted.org/packages/6f/a5/a581c13798546a7fd557c82614a5c65a13df2157e9ad6373166d2a3e645d/charset_normalizer-3.4.7-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:7804338df6fcc08105c7745f1502ba68d900f45fd770d5bdd5288ddccb8a42d8", size = 210036 }, + { url = "https://files.pythonhosted.org/packages/8c/bf/b3ab5bcb478e4193d517644b0fb2bf5497fbceeaa7a1bc0f4d5b50953861/charset_normalizer-3.4.7-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:481551899c856c704d58119b5025793fa6730adda3571971af568f66d2424bb5", size = 202998 }, + { url = "https://files.pythonhosted.org/packages/e7/4e/23efd79b65d314fa320ec6017b4b5834d5c12a58ba4610aa353af2e2f577/charset_normalizer-3.4.7-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:f59099f9b66f0d7145115e6f80dd8b1d847176df89b234a5a6b3f00437aa0832", size = 230056 }, + { url = "https://files.pythonhosted.org/packages/b9/9f/1e1941bc3f0e01df116e68dc37a55c4d249df5e6fa77f008841aef68264f/charset_normalizer-3.4.7-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:f59ad4c0e8f6bba240a9bb85504faa1ab438237199d4cce5f622761507b8f6a6", size = 211537 }, + { url = "https://files.pythonhosted.org/packages/80/0f/088cbb3020d44428964a6c97fe1edfb1b9550396bf6d278330281e8b709c/charset_normalizer-3.4.7-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:3dedcc22d73ec993f42055eff4fcfed9318d1eeb9a6606c55892a26964964e48", size = 226176 }, + { url = "https://files.pythonhosted.org/packages/6a/9f/130394f9bbe06f4f63e22641d32fc9b202b7e251c9aef4db044324dac493/charset_normalizer-3.4.7-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:64f02c6841d7d83f832cd97ccf8eb8a906d06eb95d5276069175c696b024b60a", size = 217723 }, + { url = "https://files.pythonhosted.org/packages/73/55/c469897448a06e49f8fa03f6caae97074fde823f432a98f979cc42b90e69/charset_normalizer-3.4.7-cp313-cp313-win32.whl", hash = "sha256:4042d5c8f957e15221d423ba781e85d553722fc4113f523f2feb7b188cc34c5e", size = 148085 }, + { url = "https://files.pythonhosted.org/packages/5d/78/1b74c5bbb3f99b77a1715c91b3e0b5bdb6fe302d95ace4f5b1bec37b0167/charset_normalizer-3.4.7-cp313-cp313-win_amd64.whl", hash = "sha256:3946fa46a0cf3e4c8cb1cc52f56bb536310d34f25f01ca9b6c16afa767dab110", size = 158819 }, + { url = "https://files.pythonhosted.org/packages/68/86/46bd42279d323deb8687c4a5a811fd548cb7d1de10cf6535d099877a9a9f/charset_normalizer-3.4.7-cp313-cp313-win_arm64.whl", hash = "sha256:80d04837f55fc81da168b98de4f4b797ef007fc8a79ab71c6ec9bc4dd662b15b", size = 147915 }, + { url = "https://files.pythonhosted.org/packages/97/c8/c67cb8c70e19ef1960b97b22ed2a1567711de46c4ddf19799923adc836c2/charset_normalizer-3.4.7-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:c36c333c39be2dbca264d7803333c896ab8fa7d4d6f0ab7edb7dfd7aea6e98c0", size = 309234 }, + { url = "https://files.pythonhosted.org/packages/99/85/c091fdee33f20de70d6c8b522743b6f831a2f1cd3ff86de4c6a827c48a76/charset_normalizer-3.4.7-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1c2aed2e5e41f24ea8ef1590b8e848a79b56f3a5564a65ceec43c9d692dc7d8a", size = 208042 }, + { url = "https://files.pythonhosted.org/packages/87/1c/ab2ce611b984d2fd5d86a5a8a19c1ae26acac6bad967da4967562c75114d/charset_normalizer-3.4.7-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:54523e136b8948060c0fa0bc7b1b50c32c186f2fceee897a495406bb6e311d2b", size = 228706 }, + { url = "https://files.pythonhosted.org/packages/a8/29/2b1d2cb00bf085f59d29eb773ce58ec2d325430f8c216804a0a5cd83cbca/charset_normalizer-3.4.7-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:715479b9a2802ecac752a3b0efa2b0b60285cf962ee38414211abdfccc233b41", size = 224727 }, + { url = "https://files.pythonhosted.org/packages/47/5c/032c2d5a07fe4d4855fea851209cca2b6f03ebeb6d4e3afdb3358386a684/charset_normalizer-3.4.7-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bd6c2a1c7573c64738d716488d2cdd3c00e340e4835707d8fdb8dc1a66ef164e", size = 215882 }, + { url = "https://files.pythonhosted.org/packages/2c/c2/356065d5a8b78ed04499cae5f339f091946a6a74f91e03476c33f0ab7100/charset_normalizer-3.4.7-cp314-cp314-manylinux_2_31_armv7l.whl", hash = "sha256:c45e9440fb78f8ddabcf714b68f936737a121355bf59f3907f4e17721b9d1aae", size = 200860 }, + { url = "https://files.pythonhosted.org/packages/0c/cd/a32a84217ced5039f53b29f460962abb2d4420def55afabe45b1c3c7483d/charset_normalizer-3.4.7-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:3534e7dcbdcf757da6b85a0bbf5b6868786d5982dd959b065e65481644817a18", size = 211564 }, + { url = "https://files.pythonhosted.org/packages/44/86/58e6f13ce26cc3b8f4a36b94a0f22ae2f00a72534520f4ae6857c4b81f89/charset_normalizer-3.4.7-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:e8ac484bf18ce6975760921bb6148041faa8fef0547200386ea0b52b5d27bf7b", size = 211276 }, + { url = "https://files.pythonhosted.org/packages/8f/fe/d17c32dc72e17e155e06883efa84514ca375f8a528ba2546bee73fc4df81/charset_normalizer-3.4.7-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:a5fe03b42827c13cdccd08e6c0247b6a6d4b5e3cdc53fd1749f5896adcdc2356", size = 201238 }, + { url = "https://files.pythonhosted.org/packages/6a/29/f33daa50b06525a237451cdb6c69da366c381a3dadcd833fa5676bc468b3/charset_normalizer-3.4.7-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:2d6eb928e13016cea4f1f21d1e10c1cebd5a421bc57ddf5b1142ae3f86824fab", size = 230189 }, + { url = "https://files.pythonhosted.org/packages/b6/6e/52c84015394a6a0bdcd435210a7e944c5f94ea1055f5cc5d56c5fe368e7b/charset_normalizer-3.4.7-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:e74327fb75de8986940def6e8dee4f127cc9752bee7355bb323cc5b2659b6d46", size = 211352 }, + { url = "https://files.pythonhosted.org/packages/8c/d7/4353be581b373033fb9198bf1da3cf8f09c1082561e8e922aa7b39bf9fe8/charset_normalizer-3.4.7-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:d6038d37043bced98a66e68d3aa2b6a35505dc01328cd65217cefe82f25def44", size = 227024 }, + { url = "https://files.pythonhosted.org/packages/30/45/99d18aa925bd1740098ccd3060e238e21115fffbfdcb8f3ece837d0ace6c/charset_normalizer-3.4.7-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:7579e913a5339fb8fa133f6bbcfd8e6749696206cf05acdbdca71a1b436d8e72", size = 217869 }, + { url = "https://files.pythonhosted.org/packages/5c/05/5ee478aa53f4bb7996482153d4bfe1b89e0f087f0ab6b294fcf92d595873/charset_normalizer-3.4.7-cp314-cp314-win32.whl", hash = "sha256:5b77459df20e08151cd6f8b9ef8ef1f961ef73d85c21a555c7eed5b79410ec10", size = 148541 }, + { url = "https://files.pythonhosted.org/packages/48/77/72dcb0921b2ce86420b2d79d454c7022bf5be40202a2a07906b9f2a35c97/charset_normalizer-3.4.7-cp314-cp314-win_amd64.whl", hash = "sha256:92a0a01ead5e668468e952e4238cccd7c537364eb7d851ab144ab6627dbbe12f", size = 159634 }, + { url = "https://files.pythonhosted.org/packages/c6/a3/c2369911cd72f02386e4e340770f6e158c7980267da16af8f668217abaa0/charset_normalizer-3.4.7-cp314-cp314-win_arm64.whl", hash = "sha256:67f6279d125ca0046a7fd386d01b311c6363844deac3e5b069b514ba3e63c246", size = 148384 }, + { url = "https://files.pythonhosted.org/packages/94/09/7e8a7f73d24dba1f0035fbbf014d2c36828fc1bf9c88f84093e57d315935/charset_normalizer-3.4.7-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:effc3f449787117233702311a1b7d8f59cba9ced946ba727bdc329ec69028e24", size = 330133 }, + { url = "https://files.pythonhosted.org/packages/8d/da/96975ddb11f8e977f706f45cddd8540fd8242f71ecdb5d18a80723dcf62c/charset_normalizer-3.4.7-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:fbccdc05410c9ee21bbf16a35f4c1d16123dcdeb8a1d38f33654fa21d0234f79", size = 216257 }, + { url = "https://files.pythonhosted.org/packages/e5/e8/1d63bf8ef2d388e95c64b2098f45f84758f6d102a087552da1485912637b/charset_normalizer-3.4.7-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:733784b6d6def852c814bce5f318d25da2ee65dd4839a0718641c696e09a2960", size = 234851 }, + { url = "https://files.pythonhosted.org/packages/9b/40/e5ff04233e70da2681fa43969ad6f66ca5611d7e669be0246c4c7aaf6dc8/charset_normalizer-3.4.7-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a89c23ef8d2c6b27fd200a42aa4ac72786e7c60d40efdc76e6011260b6e949c4", size = 233393 }, + { url = "https://files.pythonhosted.org/packages/be/c1/06c6c49d5a5450f76899992f1ee40b41d076aee9279b49cf9974d2f313d5/charset_normalizer-3.4.7-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6c114670c45346afedc0d947faf3c7f701051d2518b943679c8ff88befe14f8e", size = 223251 }, + { url = "https://files.pythonhosted.org/packages/2b/9f/f2ff16fb050946169e3e1f82134d107e5d4ae72647ec8a1b1446c148480f/charset_normalizer-3.4.7-cp314-cp314t-manylinux_2_31_armv7l.whl", hash = "sha256:a180c5e59792af262bf263b21a3c49353f25945d8d9f70628e73de370d55e1e1", size = 206609 }, + { url = "https://files.pythonhosted.org/packages/69/d5/a527c0cd8d64d2eab7459784fb4169a0ac76e5a6fc5237337982fd61347e/charset_normalizer-3.4.7-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:3c9a494bc5ec77d43cea229c4f6db1e4d8fe7e1bbffa8b6f0f0032430ff8ab44", size = 220014 }, + { url = "https://files.pythonhosted.org/packages/7e/80/8a7b8104a3e203074dc9aa2c613d4b726c0e136bad1cc734594b02867972/charset_normalizer-3.4.7-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:8d828b6667a32a728a1ad1d93957cdf37489c57b97ae6c4de2860fa749b8fc1e", size = 218979 }, + { url = "https://files.pythonhosted.org/packages/02/9a/b759b503d507f375b2b5c153e4d2ee0a75aa215b7f2489cf314f4541f2c0/charset_normalizer-3.4.7-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:cf1493cd8607bec4d8a7b9b004e699fcf8f9103a9284cc94962cb73d20f9d4a3", size = 209238 }, + { url = "https://files.pythonhosted.org/packages/c2/4e/0f3f5d47b86bdb79256e7290b26ac847a2832d9a4033f7eb2cd4bcf4bb5b/charset_normalizer-3.4.7-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:0c96c3b819b5c3e9e165495db84d41914d6894d55181d2d108cc1a69bfc9cce0", size = 236110 }, + { url = "https://files.pythonhosted.org/packages/96/23/bce28734eb3ed2c91dcf93abeb8a5cf393a7b2749725030bb630e554fdd8/charset_normalizer-3.4.7-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:752a45dc4a6934060b3b0dab47e04edc3326575f82be64bc4fc293914566503e", size = 219824 }, + { url = "https://files.pythonhosted.org/packages/2c/6f/6e897c6984cc4d41af319b077f2f600fc8214eb2fe2d6bcb79141b882400/charset_normalizer-3.4.7-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:8778f0c7a52e56f75d12dae53ae320fae900a8b9b4164b981b9c5ce059cd1fcb", size = 233103 }, + { url = "https://files.pythonhosted.org/packages/76/22/ef7bd0fe480a0ae9b656189ec00744b60933f68b4f42a7bb06589f6f576a/charset_normalizer-3.4.7-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:ce3412fbe1e31eb81ea42f4169ed94861c56e643189e1e75f0041f3fe7020abe", size = 225194 }, + { url = "https://files.pythonhosted.org/packages/c5/a7/0e0ab3e0b5bc1219bd80a6a0d4d72ca74d9250cb2382b7c699c147e06017/charset_normalizer-3.4.7-cp314-cp314t-win32.whl", hash = "sha256:c03a41a8784091e67a39648f70c5f97b5b6a37f216896d44d2cdcb82615339a0", size = 159827 }, + { url = "https://files.pythonhosted.org/packages/7a/1d/29d32e0fb40864b1f878c7f5a0b343ae676c6e2b271a2d55cc3a152391da/charset_normalizer-3.4.7-cp314-cp314t-win_amd64.whl", hash = "sha256:03853ed82eeebbce3c2abfdbc98c96dc205f32a79627688ac9a27370ea61a49c", size = 174168 }, + { url = "https://files.pythonhosted.org/packages/de/32/d92444ad05c7a6e41fb2036749777c163baf7a0301a040cb672d6b2b1ae9/charset_normalizer-3.4.7-cp314-cp314t-win_arm64.whl", hash = "sha256:c35abb8bfff0185efac5878da64c45dafd2b37fb0383add1be155a763c1f083d", size = 153018 }, + { url = "https://files.pythonhosted.org/packages/db/8f/61959034484a4a7c527811f4721e75d02d653a35afb0b6054474d8185d4c/charset_normalizer-3.4.7-py3-none-any.whl", hash = "sha256:3dce51d0f5e7951f8bb4900c257dad282f49190fdbebecd4ba99bcc41fef404d", size = 61958 }, +] + +[[package]] +name = "click" +version = "8.3.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/3d/fa/656b739db8587d7b5dfa22e22ed02566950fbfbcdc20311993483657a5c0/click-8.3.1.tar.gz", hash = "sha256:12ff4785d337a1bb490bb7e9c2b1ee5da3112e94a8622f26a6c77f5d2fc6842a", size = 295065 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/98/78/01c019cdb5d6498122777c1a43056ebb3ebfeef2076d9d026bfe15583b2b/click-8.3.1-py3-none-any.whl", hash = "sha256:981153a64e25f12d547d3426c367a4857371575ee7ad18df2a6183ab0545b2a6", size = 108274 }, +] + +[[package]] +name = "cohere" +version = "5.21.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "fastavro", marker = "sys_platform != 'emscripten'" }, + { name = "httpx", marker = "sys_platform != 'emscripten'" }, + { name = "pydantic", marker = "sys_platform != 'emscripten'" }, + { name = "pydantic-core", marker = "sys_platform != 'emscripten'" }, + { name = "requests", marker = "sys_platform != 'emscripten'" }, + { name = "tokenizers", marker = "sys_platform != 'emscripten'" }, + { name = "types-requests", marker = "sys_platform != 'emscripten'" }, + { name = "typing-extensions", marker = "sys_platform != 'emscripten'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/d2/75/4c346f6e2322e545f8452692304bd4eca15a2a0209ab9af6a0d1a7810b67/cohere-5.21.1.tar.gz", hash = "sha256:e5ade4423b928b01ff2038980e1b62b2a5bb412c8ab83e30882753b810a5509f", size = 191272 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0a/50/5538f02ec6d10fbb84f29c1b18c68ff2a03d7877926a80275efdf8755a9f/cohere-5.21.1-py3-none-any.whl", hash = "sha256:f15592ec60d8cf12f01563db94ec28c388c61269d9617f23c2d6d910e505344e", size = 334262 }, +] + +[[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 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335 }, +] + +[[package]] +name = "cryptography" +version = "46.0.6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cffi", marker = "platform_python_implementation != 'PyPy'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a4/ba/04b1bd4218cbc58dc90ce967106d51582371b898690f3ae0402876cc4f34/cryptography-46.0.6.tar.gz", hash = "sha256:27550628a518c5c6c903d84f637fbecf287f6cb9ced3804838a1295dc1fd0759", size = 750542 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/47/23/9285e15e3bc57325b0a72e592921983a701efc1ee8f91c06c5f0235d86d9/cryptography-46.0.6-cp311-abi3-macosx_10_9_universal2.whl", hash = "sha256:64235194bad039a10bb6d2d930ab3323baaec67e2ce36215fd0952fad0930ca8", size = 7176401 }, + { url = "https://files.pythonhosted.org/packages/60/f8/e61f8f13950ab6195b31913b42d39f0f9afc7d93f76710f299b5ec286ae6/cryptography-46.0.6-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:26031f1e5ca62fcb9d1fcb34b2b60b390d1aacaa15dc8b895a9ed00968b97b30", size = 4275275 }, + { url = "https://files.pythonhosted.org/packages/19/69/732a736d12c2631e140be2348b4ad3d226302df63ef64d30dfdb8db7ad1c/cryptography-46.0.6-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:9a693028b9cbe51b5a1136232ee8f2bc242e4e19d456ded3fa7c86e43c713b4a", size = 4425320 }, + { url = "https://files.pythonhosted.org/packages/d4/12/123be7292674abf76b21ac1fc0e1af50661f0e5b8f0ec8285faac18eb99e/cryptography-46.0.6-cp311-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:67177e8a9f421aa2d3a170c3e56eca4e0128883cf52a071a7cbf53297f18b175", size = 4278082 }, + { url = "https://files.pythonhosted.org/packages/5b/ba/d5e27f8d68c24951b0a484924a84c7cdaed7502bac9f18601cd357f8b1d2/cryptography-46.0.6-cp311-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:d9528b535a6c4f8ff37847144b8986a9a143585f0540fbcb1a98115b543aa463", size = 4926514 }, + { url = "https://files.pythonhosted.org/packages/34/71/1ea5a7352ae516d5512d17babe7e1b87d9db5150b21f794b1377eac1edc0/cryptography-46.0.6-cp311-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:22259338084d6ae497a19bae5d4c66b7ca1387d3264d1c2c0e72d9e9b6a77b97", size = 4457766 }, + { url = "https://files.pythonhosted.org/packages/01/59/562be1e653accee4fdad92c7a2e88fced26b3fdfce144047519bbebc299e/cryptography-46.0.6-cp311-abi3-manylinux_2_31_armv7l.whl", hash = "sha256:760997a4b950ff00d418398ad73fbc91aa2894b5c1db7ccb45b4f68b42a63b3c", size = 3986535 }, + { url = "https://files.pythonhosted.org/packages/d6/8b/b1ebfeb788bf4624d36e45ed2662b8bd43a05ff62157093c1539c1288a18/cryptography-46.0.6-cp311-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:3dfa6567f2e9e4c5dceb8ccb5a708158a2a871052fa75c8b78cb0977063f1507", size = 4277618 }, + { url = "https://files.pythonhosted.org/packages/dd/52/a005f8eabdb28df57c20f84c44d397a755782d6ff6d455f05baa2785bd91/cryptography-46.0.6-cp311-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:cdcd3edcbc5d55757e5f5f3d330dd00007ae463a7e7aa5bf132d1f22a4b62b19", size = 4890802 }, + { url = "https://files.pythonhosted.org/packages/ec/4d/8e7d7245c79c617d08724e2efa397737715ca0ec830ecb3c91e547302555/cryptography-46.0.6-cp311-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:d4e4aadb7fc1f88687f47ca20bb7227981b03afaae69287029da08096853b738", size = 4457425 }, + { url = "https://files.pythonhosted.org/packages/1d/5c/f6c3596a1430cec6f949085f0e1a970638d76f81c3ea56d93d564d04c340/cryptography-46.0.6-cp311-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:2b417edbe8877cda9022dde3a008e2deb50be9c407eef034aeeb3a8b11d9db3c", size = 4405530 }, + { url = "https://files.pythonhosted.org/packages/7e/c9/9f9cea13ee2dbde070424e0c4f621c091a91ffcc504ffea5e74f0e1daeff/cryptography-46.0.6-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:380343e0653b1c9d7e1f55b52aaa2dbb2fdf2730088d48c43ca1c7c0abb7cc2f", size = 4667896 }, + { url = "https://files.pythonhosted.org/packages/ad/b5/1895bc0821226f129bc74d00eccfc6a5969e2028f8617c09790bf89c185e/cryptography-46.0.6-cp311-abi3-win32.whl", hash = "sha256:bcb87663e1f7b075e48c3be3ecb5f0b46c8fc50b50a97cf264e7f60242dca3f2", size = 3026348 }, + { url = "https://files.pythonhosted.org/packages/c3/f8/c9bcbf0d3e6ad288b9d9aa0b1dee04b063d19e8c4f871855a03ab3a297ab/cryptography-46.0.6-cp311-abi3-win_amd64.whl", hash = "sha256:6739d56300662c468fddb0e5e291f9b4d084bead381667b9e654c7dd81705124", size = 3483896 }, + { url = "https://files.pythonhosted.org/packages/01/41/3a578f7fd5c70611c0aacba52cd13cb364a5dee895a5c1d467208a9380b0/cryptography-46.0.6-cp314-cp314t-macosx_10_9_universal2.whl", hash = "sha256:2ef9e69886cbb137c2aef9772c2e7138dc581fad4fcbcf13cc181eb5a3ab6275", size = 7117147 }, + { url = "https://files.pythonhosted.org/packages/fa/87/887f35a6fca9dde90cad08e0de0c89263a8e59b2d2ff904fd9fcd8025b6f/cryptography-46.0.6-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7f417f034f91dcec1cb6c5c35b07cdbb2ef262557f701b4ecd803ee8cefed4f4", size = 4266221 }, + { url = "https://files.pythonhosted.org/packages/aa/a8/0a90c4f0b0871e0e3d1ed126aed101328a8a57fd9fd17f00fb67e82a51ca/cryptography-46.0.6-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d24c13369e856b94892a89ddf70b332e0b70ad4a5c43cf3e9cb71d6d7ffa1f7b", size = 4408952 }, + { url = "https://files.pythonhosted.org/packages/16/0b/b239701eb946523e4e9f329336e4ff32b1247e109cbab32d1a7b61da8ed7/cryptography-46.0.6-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:aad75154a7ac9039936d50cf431719a2f8d4ed3d3c277ac03f3339ded1a5e707", size = 4270141 }, + { url = "https://files.pythonhosted.org/packages/0f/a8/976acdd4f0f30df7b25605f4b9d3d89295351665c2091d18224f7ad5cdbf/cryptography-46.0.6-cp314-cp314t-manylinux_2_28_ppc64le.whl", hash = "sha256:3c21d92ed15e9cfc6eb64c1f5a0326db22ca9c2566ca46d845119b45b4400361", size = 4904178 }, + { url = "https://files.pythonhosted.org/packages/b1/1b/bf0e01a88efd0e59679b69f42d4afd5bced8700bb5e80617b2d63a3741af/cryptography-46.0.6-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:4668298aef7cddeaf5c6ecc244c2302a2b8e40f384255505c22875eebb47888b", size = 4441812 }, + { url = "https://files.pythonhosted.org/packages/bb/8b/11df86de2ea389c65aa1806f331cae145f2ed18011f30234cc10ca253de8/cryptography-46.0.6-cp314-cp314t-manylinux_2_31_armv7l.whl", hash = "sha256:8ce35b77aaf02f3b59c90b2c8a05c73bac12cea5b4e8f3fbece1f5fddea5f0ca", size = 3963923 }, + { url = "https://files.pythonhosted.org/packages/91/e0/207fb177c3a9ef6a8108f234208c3e9e76a6aa8cf20d51932916bd43bda0/cryptography-46.0.6-cp314-cp314t-manylinux_2_34_aarch64.whl", hash = "sha256:c89eb37fae9216985d8734c1afd172ba4927f5a05cfd9bf0e4863c6d5465b013", size = 4269695 }, + { url = "https://files.pythonhosted.org/packages/21/5e/19f3260ed1e95bced52ace7501fabcd266df67077eeb382b79c81729d2d3/cryptography-46.0.6-cp314-cp314t-manylinux_2_34_ppc64le.whl", hash = "sha256:ed418c37d095aeddf5336898a132fba01091f0ac5844e3e8018506f014b6d2c4", size = 4869785 }, + { url = "https://files.pythonhosted.org/packages/10/38/cd7864d79aa1d92ef6f1a584281433419b955ad5a5ba8d1eb6c872165bcb/cryptography-46.0.6-cp314-cp314t-manylinux_2_34_x86_64.whl", hash = "sha256:69cf0056d6947edc6e6760e5f17afe4bea06b56a9ac8a06de9d2bd6b532d4f3a", size = 4441404 }, + { url = "https://files.pythonhosted.org/packages/09/0a/4fe7a8d25fed74419f91835cf5829ade6408fd1963c9eae9c4bce390ecbb/cryptography-46.0.6-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:8e7304c4f4e9490e11efe56af6713983460ee0780f16c63f219984dab3af9d2d", size = 4397549 }, + { url = "https://files.pythonhosted.org/packages/5f/a0/7d738944eac6513cd60a8da98b65951f4a3b279b93479a7e8926d9cd730b/cryptography-46.0.6-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:b928a3ca837c77a10e81a814a693f2295200adb3352395fad024559b7be7a736", size = 4651874 }, + { url = "https://files.pythonhosted.org/packages/cb/f1/c2326781ca05208845efca38bf714f76939ae446cd492d7613808badedf1/cryptography-46.0.6-cp314-cp314t-win32.whl", hash = "sha256:97c8115b27e19e592a05c45d0dd89c57f81f841cc9880e353e0d3bf25b2139ed", size = 3001511 }, + { url = "https://files.pythonhosted.org/packages/c9/57/fe4a23eb549ac9d903bd4698ffda13383808ef0876cc912bcb2838799ece/cryptography-46.0.6-cp314-cp314t-win_amd64.whl", hash = "sha256:c797e2517cb7880f8297e2c0f43bb910e91381339336f75d2c1c2cbf811b70b4", size = 3471692 }, + { url = "https://files.pythonhosted.org/packages/c4/cc/f330e982852403da79008552de9906804568ae9230da8432f7496ce02b71/cryptography-46.0.6-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:12cae594e9473bca1a7aceb90536060643128bb274fcea0fc459ab90f7d1ae7a", size = 7162776 }, + { url = "https://files.pythonhosted.org/packages/49/b3/dc27efd8dcc4bff583b3f01d4a3943cd8b5821777a58b3a6a5f054d61b79/cryptography-46.0.6-cp38-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:639301950939d844a9e1c4464d7e07f902fe9a7f6b215bb0d4f28584729935d8", size = 4270529 }, + { url = "https://files.pythonhosted.org/packages/e6/05/e8d0e6eb4f0d83365b3cb0e00eb3c484f7348db0266652ccd84632a3d58d/cryptography-46.0.6-cp38-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ed3775295fb91f70b4027aeba878d79b3e55c0b3e97eaa4de71f8f23a9f2eb77", size = 4414827 }, + { url = "https://files.pythonhosted.org/packages/2f/97/daba0f5d2dc6d855e2dcb70733c812558a7977a55dd4a6722756628c44d1/cryptography-46.0.6-cp38-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:8927ccfbe967c7df312ade694f987e7e9e22b2425976ddbf28271d7e58845290", size = 4271265 }, + { url = "https://files.pythonhosted.org/packages/89/06/fe1fce39a37ac452e58d04b43b0855261dac320a2ebf8f5260dd55b201a9/cryptography-46.0.6-cp38-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:b12c6b1e1651e42ab5de8b1e00dc3b6354fdfd778e7fa60541ddacc27cd21410", size = 4916800 }, + { url = "https://files.pythonhosted.org/packages/ff/8a/b14f3101fe9c3592603339eb5d94046c3ce5f7fc76d6512a2d40efd9724e/cryptography-46.0.6-cp38-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:063b67749f338ca9c5a0b7fe438a52c25f9526b851e24e6c9310e7195aad3b4d", size = 4448771 }, + { url = "https://files.pythonhosted.org/packages/01/b3/0796998056a66d1973fd52ee89dc1bb3b6581960a91ad4ac705f182d398f/cryptography-46.0.6-cp38-abi3-manylinux_2_31_armv7l.whl", hash = "sha256:02fad249cb0e090b574e30b276a3da6a149e04ee2f049725b1f69e7b8351ec70", size = 3978333 }, + { url = "https://files.pythonhosted.org/packages/c5/3d/db200af5a4ffd08918cd55c08399dc6c9c50b0bc72c00a3246e099d3a849/cryptography-46.0.6-cp38-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:7e6142674f2a9291463e5e150090b95a8519b2fb6e6aaec8917dd8d094ce750d", size = 4271069 }, + { url = "https://files.pythonhosted.org/packages/d7/18/61acfd5b414309d74ee838be321c636fe71815436f53c9f0334bf19064fa/cryptography-46.0.6-cp38-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:456b3215172aeefb9284550b162801d62f5f264a081049a3e94307fe20792cfa", size = 4878358 }, + { url = "https://files.pythonhosted.org/packages/8b/65/5bf43286d566f8171917cae23ac6add941654ccf085d739195a4eacf1674/cryptography-46.0.6-cp38-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:341359d6c9e68834e204ceaf25936dffeafea3829ab80e9503860dcc4f4dac58", size = 4448061 }, + { url = "https://files.pythonhosted.org/packages/e0/25/7e49c0fa7205cf3597e525d156a6bce5b5c9de1fd7e8cb01120e459f205a/cryptography-46.0.6-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:9a9c42a2723999a710445bc0d974e345c32adfd8d2fac6d8a251fa829ad31cfb", size = 4399103 }, + { url = "https://files.pythonhosted.org/packages/44/46/466269e833f1c4718d6cd496ffe20c56c9c8d013486ff66b4f69c302a68d/cryptography-46.0.6-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:6617f67b1606dfd9fe4dbfa354a9508d4a6d37afe30306fe6c101b7ce3274b72", size = 4659255 }, + { url = "https://files.pythonhosted.org/packages/0a/09/ddc5f630cc32287d2c953fc5d32705e63ec73e37308e5120955316f53827/cryptography-46.0.6-cp38-abi3-win32.whl", hash = "sha256:7f6690b6c55e9c5332c0b59b9c8a3fb232ebf059094c17f9019a51e9827df91c", size = 3010660 }, + { url = "https://files.pythonhosted.org/packages/1b/82/ca4893968aeb2709aacfb57a30dec6fa2ab25b10fa9f064b8882ce33f599/cryptography-46.0.6-cp38-abi3-win_amd64.whl", hash = "sha256:79e865c642cfc5c0b3eb12af83c35c5aeff4fa5c672dc28c43721c2c9fdd2f0f", size = 3471160 }, +] + +[[package]] +name = "cyclopts" +version = "4.10.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "docstring-parser" }, + { name = "rich" }, + { name = "rich-rst" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/6c/c4/2ce2ca1451487dc7d59f09334c3fa1182c46cfcf0a2d5f19f9b26d53ac74/cyclopts-4.10.1.tar.gz", hash = "sha256:ad4e4bb90576412d32276b14a76f55d43353753d16217f2c3cd5bdceba7f15a0", size = 166623 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8a/0b/2261922126b2e50c601fe22d7ff5194e0a4d50e654836260c0665e24d862/cyclopts-4.10.1-py3-none-any.whl", hash = "sha256:35f37257139380a386d9fe4475e1e7c87ca7795765ef4f31abba579fcfcb6ecd", size = 204331 }, +] + +[[package]] +name = "distro" +version = "1.9.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/fc/f8/98eea607f65de6527f8a2e8885fc8015d3e6f5775df186e443e0964a11c3/distro-1.9.0.tar.gz", hash = "sha256:2fa77c6fd8940f116ee1d6b94a2f90b13b5ea8d019b98bc8bafdcabcdd9bdbed", size = 60722 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/12/b3/231ffd4ab1fc9d679809f356cebee130ac7daa00d6d6f3206dd4fd137e9e/distro-1.9.0-py3-none-any.whl", hash = "sha256:7bffd925d65168f85027d8da9af6bddab658135b840670a223589bc0c8ef02b2", size = 20277 }, +] + +[[package]] +name = "dnspython" +version = "2.8.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/8c/8b/57666417c0f90f08bcafa776861060426765fdb422eb10212086fb811d26/dnspython-2.8.0.tar.gz", hash = "sha256:181d3c6996452cb1189c4046c61599b84a5a86e099562ffde77d26984ff26d0f", size = 368251 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ba/5a/18ad964b0086c6e62e2e7500f7edc89e3faa45033c71c1893d34eed2b2de/dnspython-2.8.0-py3-none-any.whl", hash = "sha256:01d9bbc4a2d76bf0db7c1f729812ded6d912bd318d3b1cf81d30c0f845dbf3af", size = 331094 }, +] + +[[package]] +name = "docstring-parser" +version = "0.17.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b2/9d/c3b43da9515bd270df0f80548d9944e389870713cc1fe2b8fb35fe2bcefd/docstring_parser-0.17.0.tar.gz", hash = "sha256:583de4a309722b3315439bb31d64ba3eebada841f2e2cee23b99df001434c912", size = 27442 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/55/e2/2537ebcff11c1ee1ff17d8d0b6f4db75873e3b0fb32c2d4a2ee31ecb310a/docstring_parser-0.17.0-py3-none-any.whl", hash = "sha256:cf2569abd23dce8099b300f9b4fa8191e9582dda731fd533daf54c4551658708", size = 36896 }, +] + +[[package]] +name = "docutils" +version = "0.22.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ae/b6/03bb70946330e88ffec97aefd3ea75ba575cb2e762061e0e62a213befee8/docutils-0.22.4.tar.gz", hash = "sha256:4db53b1fde9abecbb74d91230d32ab626d94f6badfc575d6db9194a49df29968", size = 2291750 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/02/10/5da547df7a391dcde17f59520a231527b8571e6f46fc8efb02ccb370ab12/docutils-0.22.4-py3-none-any.whl", hash = "sha256:d0013f540772d1420576855455d050a2180186c91c15779301ac2ccb3eeb68de", size = 633196 }, +] + +[[package]] +name = "email-validator" +version = "2.3.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "dnspython" }, + { name = "idna" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f5/22/900cb125c76b7aaa450ce02fd727f452243f2e91a61af068b40adba60ea9/email_validator-2.3.0.tar.gz", hash = "sha256:9fc05c37f2f6cf439ff414f8fc46d917929974a82244c20eb10231ba60c54426", size = 51238 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/de/15/545e2b6cf2e3be84bc1ed85613edd75b8aea69807a71c26f4ca6a9258e82/email_validator-2.3.0-py3-none-any.whl", hash = "sha256:80f13f623413e6b197ae73bb10bf4eb0908faf509ad8362c5edeb0be7fd450b4", size = 35604 }, +] + +[[package]] +name = "eval-type-backport" +version = "0.3.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/fb/a3/cafafb4558fd638aadfe4121dc6cefb8d743368c085acb2f521df0f3d9d7/eval_type_backport-0.3.1.tar.gz", hash = "sha256:57e993f7b5b69d271e37482e62f74e76a0276c82490cf8e4f0dffeb6b332d5ed", size = 9445 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cf/22/fdc2e30d43ff853720042fa15baa3e6122722be1a7950a98233ebb55cd71/eval_type_backport-0.3.1-py3-none-any.whl", hash = "sha256:279ab641905e9f11129f56a8a78f493518515b83402b860f6f06dd7c011fdfa8", size = 6063 }, +] + +[[package]] +name = "exceptiongroup" +version = "1.3.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/50/79/66800aadf48771f6b62f7eb014e352e5d06856655206165d775e675a02c9/exceptiongroup-1.3.1.tar.gz", hash = "sha256:8b412432c6055b0b7d14c310000ae93352ed6754f70fa8f7c34141f91c4e3219", size = 30371 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8a/0e/97c33bf5009bdbac74fd2beace167cab3f978feb69cc36f1ef79360d6c4e/exceptiongroup-1.3.1-py3-none-any.whl", hash = "sha256:a7a39a3bd276781e98394987d3a5701d0c4edffb633bb7a5144577f82c773598", size = 16740 }, +] + +[[package]] +name = "executing" +version = "2.2.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/cc/28/c14e053b6762b1044f34a13aab6859bbf40456d37d23aa286ac24cfd9a5d/executing-2.2.1.tar.gz", hash = "sha256:3632cc370565f6648cc328b32435bd120a1e4ebb20c77e3fdde9a13cd1e533c4", size = 1129488 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c1/ea/53f2148663b321f21b5a606bd5f191517cf40b7072c0497d3c92c4a13b1e/executing-2.2.1-py2.py3-none-any.whl", hash = "sha256:760643d3452b4d777d295bb167ccc74c64a81df23fb5e08eff250c425a4b2017", size = 28317 }, +] + +[[package]] +name = "fastavro" +version = "1.12.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/65/8b/fa2d3287fd2267be6261d0177c6809a7fa12c5600ddb33490c8dc29e77b2/fastavro-1.12.1.tar.gz", hash = "sha256:2f285be49e45bc047ab2f6bed040bb349da85db3f3c87880e4b92595ea093b2b", size = 1025661 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7c/f0/10bd1a3d08667fa0739e2b451fe90e06df575ec8b8ba5d3135c70555c9bd/fastavro-1.12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:509818cb24b98a804fc80be9c5fed90f660310ae3d59382fc811bfa187122167", size = 1009057 }, + { url = "https://files.pythonhosted.org/packages/78/ad/0d985bc99e1fa9e74c636658000ba38a5cd7f5ab2708e9c62eaf736ecf1a/fastavro-1.12.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:089e155c0c76e0d418d7e79144ce000524dd345eab3bc1e9c5ae69d500f71b14", size = 3391866 }, + { url = "https://files.pythonhosted.org/packages/0d/9e/b4951dc84ebc34aac69afcbfbb22ea4a91080422ec2bfd2c06076ff1d419/fastavro-1.12.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:44cbff7518901c91a82aab476fcab13d102e4999499df219d481b9e15f61af34", size = 3458005 }, + { url = "https://files.pythonhosted.org/packages/af/f8/5a8df450a9f55ca8441f22ea0351d8c77809fc121498b6970daaaf667a21/fastavro-1.12.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a275e48df0b1701bb764b18a8a21900b24cf882263cb03d35ecdba636bbc830b", size = 3295258 }, + { url = "https://files.pythonhosted.org/packages/99/b2/40f25299111d737e58b85696e91138a66c25b7334f5357e7ac2b0e8966f8/fastavro-1.12.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:2de72d786eb38be6b16d556b27232b1bf1b2797ea09599507938cdb7a9fe3e7c", size = 3430328 }, + { url = "https://files.pythonhosted.org/packages/e0/07/85157a7c57c5f8b95507d7829b5946561e5ee656ff80e9dd9a757f53ddaf/fastavro-1.12.1-cp312-cp312-win_amd64.whl", hash = "sha256:9090f0dee63fe022ee9cc5147483366cc4171c821644c22da020d6b48f576b4f", size = 444140 }, + { url = "https://files.pythonhosted.org/packages/bb/57/26d5efef9182392d5ac9f253953c856ccb66e4c549fd3176a1e94efb05c9/fastavro-1.12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:78df838351e4dff9edd10a1c41d1324131ffecbadefb9c297d612ef5363c049a", size = 1000599 }, + { url = "https://files.pythonhosted.org/packages/33/cb/8ab55b21d018178eb126007a56bde14fd01c0afc11d20b5f2624fe01e698/fastavro-1.12.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:780476c23175d2ae457c52f45b9ffa9d504593499a36cd3c1929662bf5b7b14b", size = 3335933 }, + { url = "https://files.pythonhosted.org/packages/fe/03/9c94ec9bf873eb1ffb0aa694f4e71940154e6e9728ddfdc46046d7e8ced4/fastavro-1.12.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0714b285160fcd515eb0455540f40dd6dac93bdeacdb03f24e8eac3d8aa51f8d", size = 3402066 }, + { url = "https://files.pythonhosted.org/packages/75/c8/cb472347c5a584ccb8777a649ebb28278fccea39d005fc7df19996f41df8/fastavro-1.12.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a8bc2dcec5843d499f2489bfe0747999108f78c5b29295d877379f1972a3d41a", size = 3240038 }, + { url = "https://files.pythonhosted.org/packages/e1/77/569ce9474c40304b3a09e109494e020462b83e405545b78069ddba5f614e/fastavro-1.12.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:3b1921ac35f3d89090a5816b626cf46e67dbecf3f054131f84d56b4e70496f45", size = 3369398 }, + { url = "https://files.pythonhosted.org/packages/4a/1f/9589e35e9ea68035385db7bdbf500d36b8891db474063fb1ccc8215ee37c/fastavro-1.12.1-cp313-cp313-win_amd64.whl", hash = "sha256:5aa777b8ee595b50aa084104cd70670bf25a7bbb9fd8bb5d07524b0785ee1699", size = 444220 }, + { url = "https://files.pythonhosted.org/packages/6c/d2/78435fe737df94bd8db2234b2100f5453737cffd29adee2504a2b013de84/fastavro-1.12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:c3d67c47f177e486640404a56f2f50b165fe892cc343ac3a34673b80cc7f1dd6", size = 1086611 }, + { url = "https://files.pythonhosted.org/packages/b6/be/428f99b10157230ddac77ec8cc167005b29e2bd5cbe228345192bb645f30/fastavro-1.12.1-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5217f773492bac43dae15ff2931432bce2d7a80be7039685a78d3fab7df910bd", size = 3541001 }, + { url = "https://files.pythonhosted.org/packages/16/08/a2eea4f20b85897740efe44887e1ac08f30dfa4bfc3de8962bdcbb21a5a1/fastavro-1.12.1-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:469fecb25cba07f2e1bfa4c8d008477cd6b5b34a59d48715e1b1a73f6160097d", size = 3432217 }, + { url = "https://files.pythonhosted.org/packages/87/bb/b4c620b9eb6e9838c7f7e4b7be0762834443adf9daeb252a214e9ad3178c/fastavro-1.12.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:d71c8aa841ef65cfab709a22bb887955f42934bced3ddb571e98fdbdade4c609", size = 3366742 }, + { url = "https://files.pythonhosted.org/packages/3d/d1/e69534ccdd5368350646fea7d93be39e5f77c614cca825c990bd9ca58f67/fastavro-1.12.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:b81fc04e85dfccf7c028e0580c606e33aa8472370b767ef058aae2c674a90746", size = 3383743 }, + { url = "https://files.pythonhosted.org/packages/58/54/b7b4a0c3fb5fcba38128542da1b26c4e6d69933c923f493548bdfd63ab6a/fastavro-1.12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:9445da127751ba65975d8e4bdabf36bfcfdad70fc35b2d988e3950cce0ec0e7c", size = 1001377 }, + { url = "https://files.pythonhosted.org/packages/1e/4f/0e589089c7df0d8f57d7e5293fdc34efec9a3b758a0d4d0c99a7937e2492/fastavro-1.12.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ed924233272719b5d5a6a0b4d80ef3345fc7e84fc7a382b6232192a9112d38a6", size = 3320401 }, + { url = "https://files.pythonhosted.org/packages/f9/19/260110d56194ae29d7e423a336fccea8bcd103196d00f0b364b732bdb84e/fastavro-1.12.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3616e2f0e1c9265e92954fa099db79c6e7817356d3ff34f4bcc92699ae99697c", size = 3350894 }, + { url = "https://files.pythonhosted.org/packages/d0/96/58b0411e8be9694d5972bee3167d6c1fd1fdfdf7ce253c1a19a327208f4f/fastavro-1.12.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:cb0337b42fd3c047fcf0e9b7597bd6ad25868de719f29da81eabb6343f08d399", size = 3229644 }, + { url = "https://files.pythonhosted.org/packages/5b/db/38660660eac82c30471d9101f45b3acfdcbadfe42d8f7cdb129459a45050/fastavro-1.12.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:64961ab15b74b7c168717bbece5660e0f3d457837c3cc9d9145181d011199fa7", size = 3329704 }, + { url = "https://files.pythonhosted.org/packages/9d/a9/1672910f458ecb30b596c9e59e41b7c00309b602a0494341451e92e62747/fastavro-1.12.1-cp314-cp314-win_amd64.whl", hash = "sha256:792356d320f6e757e89f7ac9c22f481e546c886454a6709247f43c0dd7058004", size = 452911 }, + { url = "https://files.pythonhosted.org/packages/dc/8d/2e15d0938ded1891b33eff252e8500605508b799c2e57188a933f0bd744c/fastavro-1.12.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:120aaf82ac19d60a1016afe410935fe94728752d9c2d684e267e5b7f0e70f6d9", size = 3541999 }, + { url = "https://files.pythonhosted.org/packages/a7/1c/6dfd082a205be4510543221b734b1191299e6a1810c452b6bc76dfa6968e/fastavro-1.12.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b6a3462934b20a74f9ece1daa49c2e4e749bd9a35fa2657b53bf62898fba80f5", size = 3433972 }, + { url = "https://files.pythonhosted.org/packages/24/90/9de694625a1a4b727b1ad0958d220cab25a9b6cf7f16a5c7faa9ea7b2261/fastavro-1.12.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:1f81011d54dd47b12437b51dd93a70a9aa17b61307abf26542fc3c13efbc6c51", size = 3368752 }, + { url = "https://files.pythonhosted.org/packages/fa/93/b44f67589e4d439913dab6720f7e3507b0fa8b8e56d06f6fc875ced26afb/fastavro-1.12.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:43ded16b3f4a9f1a42f5970c2aa618acb23ea59c4fcaa06680bdf470b255e5a8", size = 3386636 }, +] + +[[package]] +name = "fastmcp" +version = "3.2.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "authlib" }, + { name = "cyclopts" }, + { name = "exceptiongroup" }, + { name = "httpx" }, + { name = "jsonref" }, + { name = "jsonschema-path" }, + { name = "mcp" }, + { name = "openapi-pydantic" }, + { name = "opentelemetry-api" }, + { name = "packaging" }, + { name = "platformdirs" }, + { name = "py-key-value-aio", extra = ["filetree", "keyring", "memory"] }, + { name = "pydantic", extra = ["email"] }, + { name = "pyperclip" }, + { name = "python-dotenv" }, + { name = "pyyaml" }, + { name = "rich" }, + { name = "uncalled-for" }, + { name = "uvicorn" }, + { name = "watchfiles" }, + { name = "websockets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/d0/32/4f1b2cfd7b50db89114949f90158b1dcc2c92a1917b9f57c0ff24e47a2f4/fastmcp-3.2.0.tar.gz", hash = "sha256:d4830b8ffc3592d3d9c76dc0f398904cf41f04910e41a0de38cc1004e0903bef", size = 26318581 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4f/67/684fa2d2de1e7504549d4ca457b4f854ccec3cd3be03bd86b33b599fbf58/fastmcp-3.2.0-py3-none-any.whl", hash = "sha256:e71aba3df16f86f546a4a9e513261d3233bcc92bef0dfa647bac3fa33623f681", size = 705550 }, +] + +[[package]] +name = "filelock" +version = "3.25.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/94/b8/00651a0f559862f3bb7d6f7477b192afe3f583cc5e26403b44e59a55ab34/filelock-3.25.2.tar.gz", hash = "sha256:b64ece2b38f4ca29dd3e810287aa8c48182bbecd1ae6e9ae126c9b35f1382694", size = 40480 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a4/a5/842ae8f0c08b61d6484b52f99a03510a3a72d23141942d216ebe81fefbce/filelock-3.25.2-py3-none-any.whl", hash = "sha256:ca8afb0da15f229774c9ad1b455ed96e85a81373065fb10446672f64444ddf70", size = 26759 }, +] + +[[package]] +name = "folium" +version = "0.20.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "branca" }, + { name = "jinja2" }, + { name = "numpy" }, + { name = "requests" }, + { name = "xyzservices" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c7/76/84a1b1b00ce71f9c0c44af7d80f310c02e2e583591fe7d4cb03baecd0d3f/folium-0.20.0.tar.gz", hash = "sha256:a0d78b9d5a36ba7589ca9aedbd433e84e9fcab79cd6ac213adbcff922e454cb9", size = 109932 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b5/a8/5f764f333204db0390362a4356d03a43626997f26818a0e9396f1b3bd8c9/folium-0.20.0-py2.py3-none-any.whl", hash = "sha256:f0bc2a92acde20bca56367aa5c1c376c433f450608d058daebab2fc9bf8198bf", size = 113394 }, +] + +[[package]] +name = "frozenlist" +version = "1.8.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/2d/f5/c831fac6cc817d26fd54c7eaccd04ef7e0288806943f7cc5bbf69f3ac1f0/frozenlist-1.8.0.tar.gz", hash = "sha256:3ede829ed8d842f6cd48fc7081d7a41001a56f1f38603f9d49bf3020d59a31ad", size = 45875 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/69/29/948b9aa87e75820a38650af445d2ef2b6b8a6fab1a23b6bb9e4ef0be2d59/frozenlist-1.8.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:78f7b9e5d6f2fdb88cdde9440dc147259b62b9d3b019924def9f6478be254ac1", size = 87782 }, + { url = "https://files.pythonhosted.org/packages/64/80/4f6e318ee2a7c0750ed724fa33a4bdf1eacdc5a39a7a24e818a773cd91af/frozenlist-1.8.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:229bf37d2e4acdaf808fd3f06e854a4a7a3661e871b10dc1f8f1896a3b05f18b", size = 50594 }, + { url = "https://files.pythonhosted.org/packages/2b/94/5c8a2b50a496b11dd519f4a24cb5496cf125681dd99e94c604ccdea9419a/frozenlist-1.8.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f833670942247a14eafbb675458b4e61c82e002a148f49e68257b79296e865c4", size = 50448 }, + { url = "https://files.pythonhosted.org/packages/6a/bd/d91c5e39f490a49df14320f4e8c80161cfcce09f1e2cde1edd16a551abb3/frozenlist-1.8.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:494a5952b1c597ba44e0e78113a7266e656b9794eec897b19ead706bd7074383", size = 242411 }, + { url = "https://files.pythonhosted.org/packages/8f/83/f61505a05109ef3293dfb1ff594d13d64a2324ac3482be2cedc2be818256/frozenlist-1.8.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:96f423a119f4777a4a056b66ce11527366a8bb92f54e541ade21f2374433f6d4", size = 243014 }, + { url = "https://files.pythonhosted.org/packages/d8/cb/cb6c7b0f7d4023ddda30cf56b8b17494eb3a79e3fda666bf735f63118b35/frozenlist-1.8.0-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3462dd9475af2025c31cc61be6652dfa25cbfb56cbbf52f4ccfe029f38decaf8", size = 234909 }, + { url = "https://files.pythonhosted.org/packages/31/c5/cd7a1f3b8b34af009fb17d4123c5a778b44ae2804e3ad6b86204255f9ec5/frozenlist-1.8.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c4c800524c9cd9bac5166cd6f55285957fcfc907db323e193f2afcd4d9abd69b", size = 250049 }, + { url = "https://files.pythonhosted.org/packages/c0/01/2f95d3b416c584a1e7f0e1d6d31998c4a795f7544069ee2e0962a4b60740/frozenlist-1.8.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d6a5df73acd3399d893dafc71663ad22534b5aa4f94e8a2fabfe856c3c1b6a52", size = 256485 }, + { url = "https://files.pythonhosted.org/packages/ce/03/024bf7720b3abaebcff6d0793d73c154237b85bdf67b7ed55e5e9596dc9a/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:405e8fe955c2280ce66428b3ca55e12b3c4e9c336fb2103a4937e891c69a4a29", size = 237619 }, + { url = "https://files.pythonhosted.org/packages/69/fa/f8abdfe7d76b731f5d8bd217827cf6764d4f1d9763407e42717b4bed50a0/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:908bd3f6439f2fef9e85031b59fd4f1297af54415fb60e4254a95f75b3cab3f3", size = 250320 }, + { url = "https://files.pythonhosted.org/packages/f5/3c/b051329f718b463b22613e269ad72138cc256c540f78a6de89452803a47d/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:294e487f9ec720bd8ffcebc99d575f7eff3568a08a253d1ee1a0378754b74143", size = 246820 }, + { url = "https://files.pythonhosted.org/packages/0f/ae/58282e8f98e444b3f4dd42448ff36fa38bef29e40d40f330b22e7108f565/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:74c51543498289c0c43656701be6b077f4b265868fa7f8a8859c197006efb608", size = 250518 }, + { url = "https://files.pythonhosted.org/packages/8f/96/007e5944694d66123183845a106547a15944fbbb7154788cbf7272789536/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:776f352e8329135506a1d6bf16ac3f87bc25b28e765949282dcc627af36123aa", size = 239096 }, + { url = "https://files.pythonhosted.org/packages/66/bb/852b9d6db2fa40be96f29c0d1205c306288f0684df8fd26ca1951d461a56/frozenlist-1.8.0-cp312-cp312-win32.whl", hash = "sha256:433403ae80709741ce34038da08511d4a77062aa924baf411ef73d1146e74faf", size = 39985 }, + { url = "https://files.pythonhosted.org/packages/b8/af/38e51a553dd66eb064cdf193841f16f077585d4d28394c2fa6235cb41765/frozenlist-1.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:34187385b08f866104f0c0617404c8eb08165ab1272e884abc89c112e9c00746", size = 44591 }, + { url = "https://files.pythonhosted.org/packages/a7/06/1dc65480ab147339fecc70797e9c2f69d9cea9cf38934ce08df070fdb9cb/frozenlist-1.8.0-cp312-cp312-win_arm64.whl", hash = "sha256:fe3c58d2f5db5fbd18c2987cba06d51b0529f52bc3a6cdc33d3f4eab725104bd", size = 40102 }, + { url = "https://files.pythonhosted.org/packages/2d/40/0832c31a37d60f60ed79e9dfb5a92e1e2af4f40a16a29abcc7992af9edff/frozenlist-1.8.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8d92f1a84bb12d9e56f818b3a746f3efba93c1b63c8387a73dde655e1e42282a", size = 85717 }, + { url = "https://files.pythonhosted.org/packages/30/ba/b0b3de23f40bc55a7057bd38434e25c34fa48e17f20ee273bbde5e0650f3/frozenlist-1.8.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:96153e77a591c8adc2ee805756c61f59fef4cf4073a9275ee86fe8cba41241f7", size = 49651 }, + { url = "https://files.pythonhosted.org/packages/0c/ab/6e5080ee374f875296c4243c381bbdef97a9ac39c6e3ce1d5f7d42cb78d6/frozenlist-1.8.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f21f00a91358803399890ab167098c131ec2ddd5f8f5fd5fe9c9f2c6fcd91e40", size = 49417 }, + { url = "https://files.pythonhosted.org/packages/d5/4e/e4691508f9477ce67da2015d8c00acd751e6287739123113a9fca6f1604e/frozenlist-1.8.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:fb30f9626572a76dfe4293c7194a09fb1fe93ba94c7d4f720dfae3b646b45027", size = 234391 }, + { url = "https://files.pythonhosted.org/packages/40/76/c202df58e3acdf12969a7895fd6f3bc016c642e6726aa63bd3025e0fc71c/frozenlist-1.8.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:eaa352d7047a31d87dafcacbabe89df0aa506abb5b1b85a2fb91bc3faa02d822", size = 233048 }, + { url = "https://files.pythonhosted.org/packages/f9/c0/8746afb90f17b73ca5979c7a3958116e105ff796e718575175319b5bb4ce/frozenlist-1.8.0-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:03ae967b4e297f58f8c774c7eabcce57fe3c2434817d4385c50661845a058121", size = 226549 }, + { url = "https://files.pythonhosted.org/packages/7e/eb/4c7eefc718ff72f9b6c4893291abaae5fbc0c82226a32dcd8ef4f7a5dbef/frozenlist-1.8.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f6292f1de555ffcc675941d65fffffb0a5bcd992905015f85d0592201793e0e5", size = 239833 }, + { url = "https://files.pythonhosted.org/packages/c2/4e/e5c02187cf704224f8b21bee886f3d713ca379535f16893233b9d672ea71/frozenlist-1.8.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:29548f9b5b5e3460ce7378144c3010363d8035cea44bc0bf02d57f5a685e084e", size = 245363 }, + { url = "https://files.pythonhosted.org/packages/1f/96/cb85ec608464472e82ad37a17f844889c36100eed57bea094518bf270692/frozenlist-1.8.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ec3cc8c5d4084591b4237c0a272cc4f50a5b03396a47d9caaf76f5d7b38a4f11", size = 229314 }, + { url = "https://files.pythonhosted.org/packages/5d/6f/4ae69c550e4cee66b57887daeebe006fe985917c01d0fff9caab9883f6d0/frozenlist-1.8.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:517279f58009d0b1f2e7c1b130b377a349405da3f7621ed6bfae50b10adf20c1", size = 243365 }, + { url = "https://files.pythonhosted.org/packages/7a/58/afd56de246cf11780a40a2c28dc7cbabbf06337cc8ddb1c780a2d97e88d8/frozenlist-1.8.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:db1e72ede2d0d7ccb213f218df6a078a9c09a7de257c2fe8fcef16d5925230b1", size = 237763 }, + { url = "https://files.pythonhosted.org/packages/cb/36/cdfaf6ed42e2644740d4a10452d8e97fa1c062e2a8006e4b09f1b5fd7d63/frozenlist-1.8.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:b4dec9482a65c54a5044486847b8a66bf10c9cb4926d42927ec4e8fd5db7fed8", size = 240110 }, + { url = "https://files.pythonhosted.org/packages/03/a8/9ea226fbefad669f11b52e864c55f0bd57d3c8d7eb07e9f2e9a0b39502e1/frozenlist-1.8.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:21900c48ae04d13d416f0e1e0c4d81f7931f73a9dfa0b7a8746fb2fe7dd970ed", size = 233717 }, + { url = "https://files.pythonhosted.org/packages/1e/0b/1b5531611e83ba7d13ccc9988967ea1b51186af64c42b7a7af465dcc9568/frozenlist-1.8.0-cp313-cp313-win32.whl", hash = "sha256:8b7b94a067d1c504ee0b16def57ad5738701e4ba10cec90529f13fa03c833496", size = 39628 }, + { url = "https://files.pythonhosted.org/packages/d8/cf/174c91dbc9cc49bc7b7aab74d8b734e974d1faa8f191c74af9b7e80848e6/frozenlist-1.8.0-cp313-cp313-win_amd64.whl", hash = "sha256:878be833caa6a3821caf85eb39c5ba92d28e85df26d57afb06b35b2efd937231", size = 43882 }, + { url = "https://files.pythonhosted.org/packages/c1/17/502cd212cbfa96eb1388614fe39a3fc9ab87dbbe042b66f97acb57474834/frozenlist-1.8.0-cp313-cp313-win_arm64.whl", hash = "sha256:44389d135b3ff43ba8cc89ff7f51f5a0bb6b63d829c8300f79a2fe4fe61bcc62", size = 39676 }, + { url = "https://files.pythonhosted.org/packages/d2/5c/3bbfaa920dfab09e76946a5d2833a7cbdf7b9b4a91c714666ac4855b88b4/frozenlist-1.8.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:e25ac20a2ef37e91c1b39938b591457666a0fa835c7783c3a8f33ea42870db94", size = 89235 }, + { url = "https://files.pythonhosted.org/packages/d2/d6/f03961ef72166cec1687e84e8925838442b615bd0b8854b54923ce5b7b8a/frozenlist-1.8.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:07cdca25a91a4386d2e76ad992916a85038a9b97561bf7a3fd12d5d9ce31870c", size = 50742 }, + { url = "https://files.pythonhosted.org/packages/1e/bb/a6d12b7ba4c3337667d0e421f7181c82dda448ce4e7ad7ecd249a16fa806/frozenlist-1.8.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:4e0c11f2cc6717e0a741f84a527c52616140741cd812a50422f83dc31749fb52", size = 51725 }, + { url = "https://files.pythonhosted.org/packages/bc/71/d1fed0ffe2c2ccd70b43714c6cab0f4188f09f8a67a7914a6b46ee30f274/frozenlist-1.8.0-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:b3210649ee28062ea6099cfda39e147fa1bc039583c8ee4481cb7811e2448c51", size = 284533 }, + { url = "https://files.pythonhosted.org/packages/c9/1f/fb1685a7b009d89f9bf78a42d94461bc06581f6e718c39344754a5d9bada/frozenlist-1.8.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:581ef5194c48035a7de2aefc72ac6539823bb71508189e5de01d60c9dcd5fa65", size = 292506 }, + { url = "https://files.pythonhosted.org/packages/e6/3b/b991fe1612703f7e0d05c0cf734c1b77aaf7c7d321df4572e8d36e7048c8/frozenlist-1.8.0-cp313-cp313t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3ef2d026f16a2b1866e1d86fc4e1291e1ed8a387b2c333809419a2f8b3a77b82", size = 274161 }, + { url = "https://files.pythonhosted.org/packages/ca/ec/c5c618767bcdf66e88945ec0157d7f6c4a1322f1473392319b7a2501ded7/frozenlist-1.8.0-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:5500ef82073f599ac84d888e3a8c1f77ac831183244bfd7f11eaa0289fb30714", size = 294676 }, + { url = "https://files.pythonhosted.org/packages/7c/ce/3934758637d8f8a88d11f0585d6495ef54b2044ed6ec84492a91fa3b27aa/frozenlist-1.8.0-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:50066c3997d0091c411a66e710f4e11752251e6d2d73d70d8d5d4c76442a199d", size = 300638 }, + { url = "https://files.pythonhosted.org/packages/fc/4f/a7e4d0d467298f42de4b41cbc7ddaf19d3cfeabaf9ff97c20c6c7ee409f9/frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:5c1c8e78426e59b3f8005e9b19f6ff46e5845895adbde20ece9218319eca6506", size = 283067 }, + { url = "https://files.pythonhosted.org/packages/dc/48/c7b163063d55a83772b268e6d1affb960771b0e203b632cfe09522d67ea5/frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:eefdba20de0d938cec6a89bd4d70f346a03108a19b9df4248d3cf0d88f1b0f51", size = 292101 }, + { url = "https://files.pythonhosted.org/packages/9f/d0/2366d3c4ecdc2fd391e0afa6e11500bfba0ea772764d631bbf82f0136c9d/frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:cf253e0e1c3ceb4aaff6df637ce033ff6535fb8c70a764a8f46aafd3d6ab798e", size = 289901 }, + { url = "https://files.pythonhosted.org/packages/b8/94/daff920e82c1b70e3618a2ac39fbc01ae3e2ff6124e80739ce5d71c9b920/frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:032efa2674356903cd0261c4317a561a6850f3ac864a63fc1583147fb05a79b0", size = 289395 }, + { url = "https://files.pythonhosted.org/packages/e3/20/bba307ab4235a09fdcd3cc5508dbabd17c4634a1af4b96e0f69bfe551ebd/frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:6da155091429aeba16851ecb10a9104a108bcd32f6c1642867eadaee401c1c41", size = 283659 }, + { url = "https://files.pythonhosted.org/packages/fd/00/04ca1c3a7a124b6de4f8a9a17cc2fcad138b4608e7a3fc5877804b8715d7/frozenlist-1.8.0-cp313-cp313t-win32.whl", hash = "sha256:0f96534f8bfebc1a394209427d0f8a63d343c9779cda6fc25e8e121b5fd8555b", size = 43492 }, + { url = "https://files.pythonhosted.org/packages/59/5e/c69f733a86a94ab10f68e496dc6b7e8bc078ebb415281d5698313e3af3a1/frozenlist-1.8.0-cp313-cp313t-win_amd64.whl", hash = "sha256:5d63a068f978fc69421fb0e6eb91a9603187527c86b7cd3f534a5b77a592b888", size = 48034 }, + { url = "https://files.pythonhosted.org/packages/16/6c/be9d79775d8abe79b05fa6d23da99ad6e7763a1d080fbae7290b286093fd/frozenlist-1.8.0-cp313-cp313t-win_arm64.whl", hash = "sha256:bf0a7e10b077bf5fb9380ad3ae8ce20ef919a6ad93b4552896419ac7e1d8e042", size = 41749 }, + { url = "https://files.pythonhosted.org/packages/f1/c8/85da824b7e7b9b6e7f7705b2ecaf9591ba6f79c1177f324c2735e41d36a2/frozenlist-1.8.0-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:cee686f1f4cadeb2136007ddedd0aaf928ab95216e7691c63e50a8ec066336d0", size = 86127 }, + { url = "https://files.pythonhosted.org/packages/8e/e8/a1185e236ec66c20afd72399522f142c3724c785789255202d27ae992818/frozenlist-1.8.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:119fb2a1bd47307e899c2fac7f28e85b9a543864df47aa7ec9d3c1b4545f096f", size = 49698 }, + { url = "https://files.pythonhosted.org/packages/a1/93/72b1736d68f03fda5fdf0f2180fb6caaae3894f1b854d006ac61ecc727ee/frozenlist-1.8.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:4970ece02dbc8c3a92fcc5228e36a3e933a01a999f7094ff7c23fbd2beeaa67c", size = 49749 }, + { url = "https://files.pythonhosted.org/packages/a7/b2/fabede9fafd976b991e9f1b9c8c873ed86f202889b864756f240ce6dd855/frozenlist-1.8.0-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:cba69cb73723c3f329622e34bdbf5ce1f80c21c290ff04256cff1cd3c2036ed2", size = 231298 }, + { url = "https://files.pythonhosted.org/packages/3a/3b/d9b1e0b0eed36e70477ffb8360c49c85c8ca8ef9700a4e6711f39a6e8b45/frozenlist-1.8.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:778a11b15673f6f1df23d9586f83c4846c471a8af693a22e066508b77d201ec8", size = 232015 }, + { url = "https://files.pythonhosted.org/packages/dc/94/be719d2766c1138148564a3960fc2c06eb688da592bdc25adcf856101be7/frozenlist-1.8.0-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:0325024fe97f94c41c08872db482cf8ac4800d80e79222c6b0b7b162d5b13686", size = 225038 }, + { url = "https://files.pythonhosted.org/packages/e4/09/6712b6c5465f083f52f50cf74167b92d4ea2f50e46a9eea0523d658454ae/frozenlist-1.8.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:97260ff46b207a82a7567b581ab4190bd4dfa09f4db8a8b49d1a958f6aa4940e", size = 240130 }, + { url = "https://files.pythonhosted.org/packages/f8/d4/cd065cdcf21550b54f3ce6a22e143ac9e4836ca42a0de1022da8498eac89/frozenlist-1.8.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:54b2077180eb7f83dd52c40b2750d0a9f175e06a42e3213ce047219de902717a", size = 242845 }, + { url = "https://files.pythonhosted.org/packages/62/c3/f57a5c8c70cd1ead3d5d5f776f89d33110b1addae0ab010ad774d9a44fb9/frozenlist-1.8.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:2f05983daecab868a31e1da44462873306d3cbfd76d1f0b5b69c473d21dbb128", size = 229131 }, + { url = "https://files.pythonhosted.org/packages/6c/52/232476fe9cb64f0742f3fde2b7d26c1dac18b6d62071c74d4ded55e0ef94/frozenlist-1.8.0-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:33f48f51a446114bc5d251fb2954ab0164d5be02ad3382abcbfe07e2531d650f", size = 240542 }, + { url = "https://files.pythonhosted.org/packages/5f/85/07bf3f5d0fb5414aee5f47d33c6f5c77bfe49aac680bfece33d4fdf6a246/frozenlist-1.8.0-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:154e55ec0655291b5dd1b8731c637ecdb50975a2ae70c606d100750a540082f7", size = 237308 }, + { url = "https://files.pythonhosted.org/packages/11/99/ae3a33d5befd41ac0ca2cc7fd3aa707c9c324de2e89db0e0f45db9a64c26/frozenlist-1.8.0-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:4314debad13beb564b708b4a496020e5306c7333fa9a3ab90374169a20ffab30", size = 238210 }, + { url = "https://files.pythonhosted.org/packages/b2/60/b1d2da22f4970e7a155f0adde9b1435712ece01b3cd45ba63702aea33938/frozenlist-1.8.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:073f8bf8becba60aa931eb3bc420b217bb7d5b8f4750e6f8b3be7f3da85d38b7", size = 231972 }, + { url = "https://files.pythonhosted.org/packages/3f/ab/945b2f32de889993b9c9133216c068b7fcf257d8595a0ac420ac8677cab0/frozenlist-1.8.0-cp314-cp314-win32.whl", hash = "sha256:bac9c42ba2ac65ddc115d930c78d24ab8d4f465fd3fc473cdedfccadb9429806", size = 40536 }, + { url = "https://files.pythonhosted.org/packages/59/ad/9caa9b9c836d9ad6f067157a531ac48b7d36499f5036d4141ce78c230b1b/frozenlist-1.8.0-cp314-cp314-win_amd64.whl", hash = "sha256:3e0761f4d1a44f1d1a47996511752cf3dcec5bbdd9cc2b4fe595caf97754b7a0", size = 44330 }, + { url = "https://files.pythonhosted.org/packages/82/13/e6950121764f2676f43534c555249f57030150260aee9dcf7d64efda11dd/frozenlist-1.8.0-cp314-cp314-win_arm64.whl", hash = "sha256:d1eaff1d00c7751b7c6662e9c5ba6eb2c17a2306ba5e2a37f24ddf3cc953402b", size = 40627 }, + { url = "https://files.pythonhosted.org/packages/c0/c7/43200656ecc4e02d3f8bc248df68256cd9572b3f0017f0a0c4e93440ae23/frozenlist-1.8.0-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:d3bb933317c52d7ea5004a1c442eef86f426886fba134ef8cf4226ea6ee1821d", size = 89238 }, + { url = "https://files.pythonhosted.org/packages/d1/29/55c5f0689b9c0fb765055629f472c0de484dcaf0acee2f7707266ae3583c/frozenlist-1.8.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:8009897cdef112072f93a0efdce29cd819e717fd2f649ee3016efd3cd885a7ed", size = 50738 }, + { url = "https://files.pythonhosted.org/packages/ba/7d/b7282a445956506fa11da8c2db7d276adcbf2b17d8bb8407a47685263f90/frozenlist-1.8.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:2c5dcbbc55383e5883246d11fd179782a9d07a986c40f49abe89ddf865913930", size = 51739 }, + { url = "https://files.pythonhosted.org/packages/62/1c/3d8622e60d0b767a5510d1d3cf21065b9db874696a51ea6d7a43180a259c/frozenlist-1.8.0-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:39ecbc32f1390387d2aa4f5a995e465e9e2f79ba3adcac92d68e3e0afae6657c", size = 284186 }, + { url = "https://files.pythonhosted.org/packages/2d/14/aa36d5f85a89679a85a1d44cd7a6657e0b1c75f61e7cad987b203d2daca8/frozenlist-1.8.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:92db2bf818d5cc8d9c1f1fc56b897662e24ea5adb36ad1f1d82875bd64e03c24", size = 292196 }, + { url = "https://files.pythonhosted.org/packages/05/23/6bde59eb55abd407d34f77d39a5126fb7b4f109a3f611d3929f14b700c66/frozenlist-1.8.0-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:2dc43a022e555de94c3b68a4ef0b11c4f747d12c024a520c7101709a2144fb37", size = 273830 }, + { url = "https://files.pythonhosted.org/packages/d2/3f/22cff331bfad7a8afa616289000ba793347fcd7bc275f3b28ecea2a27909/frozenlist-1.8.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:cb89a7f2de3602cfed448095bab3f178399646ab7c61454315089787df07733a", size = 294289 }, + { url = "https://files.pythonhosted.org/packages/a4/89/5b057c799de4838b6c69aa82b79705f2027615e01be996d2486a69ca99c4/frozenlist-1.8.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:33139dc858c580ea50e7e60a1b0ea003efa1fd42e6ec7fdbad78fff65fad2fd2", size = 300318 }, + { url = "https://files.pythonhosted.org/packages/30/de/2c22ab3eb2a8af6d69dc799e48455813bab3690c760de58e1bf43b36da3e/frozenlist-1.8.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:168c0969a329b416119507ba30b9ea13688fafffac1b7822802537569a1cb0ef", size = 282814 }, + { url = "https://files.pythonhosted.org/packages/59/f7/970141a6a8dbd7f556d94977858cfb36fa9b66e0892c6dd780d2219d8cd8/frozenlist-1.8.0-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:28bd570e8e189d7f7b001966435f9dac6718324b5be2990ac496cf1ea9ddb7fe", size = 291762 }, + { url = "https://files.pythonhosted.org/packages/c1/15/ca1adae83a719f82df9116d66f5bb28bb95557b3951903d39135620ef157/frozenlist-1.8.0-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:b2a095d45c5d46e5e79ba1e5b9cb787f541a8dee0433836cea4b96a2c439dcd8", size = 289470 }, + { url = "https://files.pythonhosted.org/packages/ac/83/dca6dc53bf657d371fbc88ddeb21b79891e747189c5de990b9dfff2ccba1/frozenlist-1.8.0-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:eab8145831a0d56ec9c4139b6c3e594c7a83c2c8be25d5bcf2d86136a532287a", size = 289042 }, + { url = "https://files.pythonhosted.org/packages/96/52/abddd34ca99be142f354398700536c5bd315880ed0a213812bc491cff5e4/frozenlist-1.8.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:974b28cf63cc99dfb2188d8d222bc6843656188164848c4f679e63dae4b0708e", size = 283148 }, + { url = "https://files.pythonhosted.org/packages/af/d3/76bd4ed4317e7119c2b7f57c3f6934aba26d277acc6309f873341640e21f/frozenlist-1.8.0-cp314-cp314t-win32.whl", hash = "sha256:342c97bf697ac5480c0a7ec73cd700ecfa5a8a40ac923bd035484616efecc2df", size = 44676 }, + { url = "https://files.pythonhosted.org/packages/89/76/c615883b7b521ead2944bb3480398cbb07e12b7b4e4d073d3752eb721558/frozenlist-1.8.0-cp314-cp314t-win_amd64.whl", hash = "sha256:06be8f67f39c8b1dc671f5d83aaefd3358ae5cdcf8314552c57e7ed3e6475bdd", size = 49451 }, + { url = "https://files.pythonhosted.org/packages/e0/a3/5982da14e113d07b325230f95060e2169f5311b1017ea8af2a29b374c289/frozenlist-1.8.0-cp314-cp314t-win_arm64.whl", hash = "sha256:102e6314ca4da683dca92e3b1355490fed5f313b768500084fbe6371fddfdb79", size = 42507 }, + { url = "https://files.pythonhosted.org/packages/9a/9a/e35b4a917281c0b8419d4207f4334c8e8c5dbf4f3f5f9ada73958d937dcc/frozenlist-1.8.0-py3-none-any.whl", hash = "sha256:0c18a16eab41e82c295618a77502e17b195883241c563b00f0aa5106fc4eaa0d", size = 13409 }, +] + +[[package]] +name = "fsspec" +version = "2026.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e1/cf/b50ddf667c15276a9ab15a70ef5f257564de271957933ffea49d2cdbcdfb/fsspec-2026.3.0.tar.gz", hash = "sha256:1ee6a0e28677557f8c2f994e3eea77db6392b4de9cd1f5d7a9e87a0ae9d01b41", size = 313547 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d5/1f/5f4a3cd9e4440e9d9bc78ad0a91a1c8d46b4d429d5239ebe6793c9fe5c41/fsspec-2026.3.0-py3-none-any.whl", hash = "sha256:d2ceafaad1b3457968ed14efa28798162f1638dbb5d2a6868a2db002a5ee39a4", size = 202595 }, +] + +[[package]] +name = "genai-prices" +version = "0.0.56" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "httpx" }, + { name = "pydantic" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/44/6b/94b3018a672c7775edfb485f0fed8f6068fba75e49b067e8a1ac5eb96764/genai_prices-0.0.56.tar.gz", hash = "sha256:ac24b16a84d0ab97539bfa48dfa4649689de8e3ce71c12ebacef29efb1998045", size = 65872 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a3/f6/8ef7e4c286deb2709d11ca96a5237caae3ef4876ab3c48095856cfd2df30/genai_prices-0.0.56-py3-none-any.whl", hash = "sha256:dbe86be8f3f556bed1b72209ed36851fec8b01793b3b220f42921a4e7da945f6", size = 68966 }, +] + +[[package]] +name = "gitdb" +version = "4.0.12" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "smmap" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/72/94/63b0fc47eb32792c7ba1fe1b694daec9a63620db1e313033d18140c2320a/gitdb-4.0.12.tar.gz", hash = "sha256:5ef71f855d191a3326fcfbc0d5da835f26b13fbcba60c32c21091c349ffdb571", size = 394684 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a0/61/5c78b91c3143ed5c14207f463aecfc8f9dbb5092fb2869baf37c273b2705/gitdb-4.0.12-py3-none-any.whl", hash = "sha256:67073e15955400952c6565cc3e707c554a4eea2e428946f7a4c162fab9bd9bcf", size = 62794 }, +] + +[[package]] +name = "gitpython" +version = "3.1.46" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "gitdb" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/df/b5/59d16470a1f0dfe8c793f9ef56fd3826093fc52b3bd96d6b9d6c26c7e27b/gitpython-3.1.46.tar.gz", hash = "sha256:400124c7d0ef4ea03f7310ac2fbf7151e09ff97f2a3288d64a440c584a29c37f", size = 215371 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6a/09/e21df6aef1e1ffc0c816f0522ddc3f6dcded766c3261813131c78a704470/gitpython-3.1.46-py3-none-any.whl", hash = "sha256:79812ed143d9d25b6d176a10bb511de0f9c67b1fa641d82097b0ab90398a2058", size = 208620 }, +] + +[[package]] +name = "google-auth" +version = "2.49.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cryptography" }, + { name = "pyasn1-modules" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ea/80/6a696a07d3d3b0a92488933532f03dbefa4a24ab80fb231395b9a2a1be77/google_auth-2.49.1.tar.gz", hash = "sha256:16d40da1c3c5a0533f57d268fe72e0ebb0ae1cc3b567024122651c045d879b64", size = 333825 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e9/eb/c6c2478d8a8d633460be40e2a8a6f8f429171997a35a96f81d3b680dec83/google_auth-2.49.1-py3-none-any.whl", hash = "sha256:195ebe3dca18eddd1b3db5edc5189b76c13e96f29e73043b923ebcf3f1a860f7", size = 240737 }, +] + +[package.optional-dependencies] +requests = [ + { name = "requests" }, +] + +[[package]] +name = "google-genai" +version = "1.70.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "distro" }, + { name = "google-auth", extra = ["requests"] }, + { name = "httpx" }, + { name = "pydantic" }, + { name = "requests" }, + { name = "sniffio" }, + { name = "tenacity" }, + { name = "typing-extensions" }, + { name = "websockets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/74/dd/28e4682904b183acbfad3fe6409f13a42f69bb8eab6e882d3bcbea1dde01/google_genai-1.70.0.tar.gz", hash = "sha256:36b67b0fc6f319e08d1f1efd808b790107b1809c8743a05d55dfcf9d9fad7719", size = 519550 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/36/a3/d4564c8a9beaf6a3cef8d70fa6354318572cebfee65db4f01af0d41f45ba/google_genai-1.70.0-py3-none-any.whl", hash = "sha256:b74c24549d8b4208f4c736fd11857374788e1ffffc725de45d706e35c97fceee", size = 760584 }, +] + +[[package]] +name = "googleapis-common-protos" +version = "1.73.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "protobuf" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a1/c0/4a54c386282c13449eca8bbe2ddb518181dc113e78d240458a68856b4d69/googleapis_common_protos-1.73.1.tar.gz", hash = "sha256:13114f0e9d2391756a0194c3a8131974ed7bffb06086569ba193364af59163b6", size = 147506 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/dc/82/fcb6520612bec0c39b973a6c0954b6a0d948aadfe8f7e9487f60ceb8bfa6/googleapis_common_protos-1.73.1-py3-none-any.whl", hash = "sha256:e51f09eb0a43a8602f5a915870972e6b4a394088415c79d79605a46d8e826ee8", size = 297556 }, +] + +[[package]] +name = "griffelib" +version = "2.0.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/9d/82/74f4a3310cdabfbb10da554c3a672847f1ed33c6f61dd472681ce7f1fe67/griffelib-2.0.2.tar.gz", hash = "sha256:3cf20b3bc470e83763ffbf236e0076b1211bac1bc67de13daf494640f2de707e", size = 166461 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/11/8c/c9138d881c79aa0ea9ed83cbd58d5ca75624378b38cee225dcf5c42cc91f/griffelib-2.0.2-py3-none-any.whl", hash = "sha256:925c857658fb1ba40c0772c37acbc2ab650bd794d9c1b9726922e36ea4117ea1", size = 142357 }, +] + +[[package]] +name = "groq" +version = "1.1.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "distro" }, + { name = "httpx" }, + { name = "pydantic" }, + { name = "sniffio" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/d3/c7/a2153b639062f59f9bc93a1b5507c0c4a6b654b8a9edbf432ec2f4a62d2d/groq-1.1.2.tar.gz", hash = "sha256:9ec2b5b6a1c4856a8c6c38741353c5ab37472a4e3fded02af783750d849cc988", size = 154033 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/34/b0/83e3892a4597a4b8ebf8a662aeaf314765c4c2340516eb1d049b459b24fc/groq-1.1.2-py3-none-any.whl", hash = "sha256:348cb7a674b6aa7105719b533f6fc48fd32b503bc9256924aaed6dc186f778b5", size = 141700 }, +] + +[[package]] +name = "grpcio" +version = "1.80.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b7/48/af6173dbca4454f4637a4678b67f52ca7e0c1ed7d5894d89d434fecede05/grpcio-1.80.0.tar.gz", hash = "sha256:29aca15edd0688c22ba01d7cc01cb000d72b2033f4a3c72a81a19b56fd143257", size = 12978905 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5c/e8/a2b749265eb3415abc94f2e619bbd9e9707bebdda787e61c593004ec927a/grpcio-1.80.0-cp312-cp312-linux_armv7l.whl", hash = "sha256:c624cc9f1008361014378c9d776de7182b11fe8b2e5a81bc69f23a295f2a1ad0", size = 6015616 }, + { url = "https://files.pythonhosted.org/packages/3e/97/b1282161a15d699d1e90c360df18d19165a045ce1c343c7f313f5e8a0b77/grpcio-1.80.0-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:f49eddcac43c3bf350c0385366a58f36bed8cc2c0ec35ef7b74b49e56552c0c2", size = 12014204 }, + { url = "https://files.pythonhosted.org/packages/6e/5e/d319c6e997b50c155ac5a8cb12f5173d5b42677510e886d250d50264949d/grpcio-1.80.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d334591df610ab94714048e0d5b4f3dd5ad1bee74dfec11eee344220077a79de", size = 6563866 }, + { url = "https://files.pythonhosted.org/packages/ae/f6/fdd975a2cb4d78eb67769a7b3b3830970bfa2e919f1decf724ae4445f42c/grpcio-1.80.0-cp312-cp312-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:0cb517eb1d0d0aaf1d87af7cc5b801d686557c1d88b2619f5e31fab3c2315921", size = 7273060 }, + { url = "https://files.pythonhosted.org/packages/db/f0/a3deb5feba60d9538a962913e37bd2e69a195f1c3376a3dd44fe0427e996/grpcio-1.80.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4e78c4ac0d97dc2e569b2f4bcbbb447491167cb358d1a389fc4af71ab6f70411", size = 6782121 }, + { url = "https://files.pythonhosted.org/packages/ca/84/36c6dcfddc093e108141f757c407902a05085e0c328007cb090d56646cdf/grpcio-1.80.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2ed770b4c06984f3b47eb0517b1c69ad0b84ef3f40128f51448433be904634cd", size = 7383811 }, + { url = "https://files.pythonhosted.org/packages/7c/ef/f3a77e3dc5b471a0ec86c564c98d6adfa3510d38f8ee99010410858d591e/grpcio-1.80.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:256507e2f524092f1473071a05e65a5b10d84b82e3ff24c5b571513cfaa61e2f", size = 8393860 }, + { url = "https://files.pythonhosted.org/packages/9b/8d/9d4d27ed7f33d109c50d6b5ce578a9914aa68edab75d65869a17e630a8d1/grpcio-1.80.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:9a6284a5d907c37db53350645567c522be314bac859a64a7a5ca63b77bb7958f", size = 7830132 }, + { url = "https://files.pythonhosted.org/packages/14/e4/9990b41c6d7a44e1e9dee8ac11d7a9802ba1378b40d77468a7761d1ad288/grpcio-1.80.0-cp312-cp312-win32.whl", hash = "sha256:c71309cfce2f22be26aa4a847357c502db6c621f1a49825ae98aa0907595b193", size = 4140904 }, + { url = "https://files.pythonhosted.org/packages/2f/2c/296f6138caca1f4b92a31ace4ae1b87dab692fc16a7a3417af3bb3c805bf/grpcio-1.80.0-cp312-cp312-win_amd64.whl", hash = "sha256:9fe648599c0e37594c4809d81a9e77bd138cc82eb8baa71b6a86af65426723ff", size = 4880944 }, + { url = "https://files.pythonhosted.org/packages/2f/3a/7c3c25789e3f069e581dc342e03613c5b1cb012c4e8c7d9d5cf960a75856/grpcio-1.80.0-cp313-cp313-linux_armv7l.whl", hash = "sha256:e9e408fc016dffd20661f0126c53d8a31c2821b5c13c5d67a0f5ed5de93319ad", size = 6017243 }, + { url = "https://files.pythonhosted.org/packages/04/19/21a9806eb8240e174fd1ab0cd5b9aa948bb0e05c2f2f55f9d5d7405e6d08/grpcio-1.80.0-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:92d787312e613754d4d8b9ca6d3297e69994a7912a32fa38c4c4e01c272974b0", size = 12010840 }, + { url = "https://files.pythonhosted.org/packages/18/3a/23347d35f76f639e807fb7a36fad3068aed100996849a33809591f26eca6/grpcio-1.80.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:8ac393b58aa16991a2f1144ec578084d544038c12242da3a215966b512904d0f", size = 6567644 }, + { url = "https://files.pythonhosted.org/packages/ff/40/96e07ecb604a6a67ae6ab151e3e35b132875d98bc68ec65f3e5ab3e781d7/grpcio-1.80.0-cp313-cp313-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:68e5851ac4b9afe07e7f84483803ad167852570d65326b34d54ca560bfa53fb6", size = 7277830 }, + { url = "https://files.pythonhosted.org/packages/9b/e2/da1506ecea1f34a5e365964644b35edef53803052b763ca214ba3870c856/grpcio-1.80.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:873ff5d17d68992ef6605330127425d2fc4e77e612fa3c3e0ed4e668685e3140", size = 6783216 }, + { url = "https://files.pythonhosted.org/packages/44/83/3b20ff58d0c3b7f6caaa3af9a4174d4023701df40a3f39f7f1c8e7c48f9d/grpcio-1.80.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:2bea16af2750fd0a899bf1abd9022244418b55d1f37da2202249ba4ba673838d", size = 7385866 }, + { url = "https://files.pythonhosted.org/packages/47/45/55c507599c5520416de5eefecc927d6a0d7af55e91cfffb2e410607e5744/grpcio-1.80.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ba0db34f7e1d803a878284cd70e4c63cb6ae2510ba51937bf8f45ba997cefcf7", size = 8391602 }, + { url = "https://files.pythonhosted.org/packages/10/bb/dd06f4c24c01db9cf11341b547d0a016b2c90ed7dbbb086a5710df7dd1d7/grpcio-1.80.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8eb613f02d34721f1acf3626dfdb3545bd3c8505b0e52bf8b5710a28d02e8aa7", size = 7826752 }, + { url = "https://files.pythonhosted.org/packages/f9/1e/9d67992ba23371fd63d4527096eb8c6b76d74d52b500df992a3343fd7251/grpcio-1.80.0-cp313-cp313-win32.whl", hash = "sha256:93b6f823810720912fd131f561f91f5fed0fda372b6b7028a2681b8194d5d294", size = 4142310 }, + { url = "https://files.pythonhosted.org/packages/cf/e6/283326a27da9e2c3038bc93eeea36fb118ce0b2d03922a9cda6688f53c5b/grpcio-1.80.0-cp313-cp313-win_amd64.whl", hash = "sha256:e172cf795a3ba5246d3529e4d34c53db70e888fa582a8ffebd2e6e48bc0cba50", size = 4882833 }, + { url = "https://files.pythonhosted.org/packages/c5/6d/e65307ce20f5a09244ba9e9d8476e99fb039de7154f37fb85f26978b59c3/grpcio-1.80.0-cp314-cp314-linux_armv7l.whl", hash = "sha256:3d4147a97c8344d065d01bbf8b6acec2cf86fb0400d40696c8bdad34a64ffc0e", size = 6017376 }, + { url = "https://files.pythonhosted.org/packages/69/10/9cef5d9650c72625a699c549940f0abb3c4bfdb5ed45a5ce431f92f31806/grpcio-1.80.0-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:d8e11f167935b3eb089ac9038e1a063e6d7dbe995c0bb4a661e614583352e76f", size = 12018133 }, + { url = "https://files.pythonhosted.org/packages/04/82/983aabaad82ba26113caceeb9091706a0696b25da004fe3defb5b346e15b/grpcio-1.80.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:f14b618fc30de822681ee986cfdcc2d9327229dc4c98aed16896761cacd468b9", size = 6574748 }, + { url = "https://files.pythonhosted.org/packages/07/d7/031666ef155aa0bf399ed7e19439656c38bbd143779ae0861b038ce82abd/grpcio-1.80.0-cp314-cp314-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:4ed39fbdcf9b87370f6e8df4e39ca7b38b3e5e9d1b0013c7b6be9639d6578d14", size = 7277711 }, + { url = "https://files.pythonhosted.org/packages/e8/43/f437a78f7f4f1d311804189e8f11fb311a01049b2e08557c1068d470cb2e/grpcio-1.80.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:2dcc70e9f0ba987526e8e8603a610fb4f460e42899e74e7a518bf3c68fe1bf05", size = 6785372 }, + { url = "https://files.pythonhosted.org/packages/93/3d/f6558e9c6296cb4227faa5c43c54a34c68d32654b829f53288313d16a86e/grpcio-1.80.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:448c884b668b868562b1bda833c5fce6272d26e1926ec46747cda05741d302c1", size = 7395268 }, + { url = "https://files.pythonhosted.org/packages/06/21/0fdd77e84720b08843c371a2efa6f2e19dbebf56adc72df73d891f5506f0/grpcio-1.80.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:a1dc80fe55685b4a543555e6eef975303b36c8db1023b1599b094b92aa77965f", size = 8392000 }, + { url = "https://files.pythonhosted.org/packages/f5/68/67f4947ed55d2e69f2cc199ab9fd85e0a0034d813bbeef84df6d2ba4d4b7/grpcio-1.80.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:31b9ac4ad1aa28ffee5503821fafd09e4da0a261ce1c1281c6c8da0423c83b6e", size = 7828477 }, + { url = "https://files.pythonhosted.org/packages/44/b6/8d4096691b2e385e8271911a0de4f35f0a6c7d05aff7098e296c3de86939/grpcio-1.80.0-cp314-cp314-win32.whl", hash = "sha256:367ce30ba67d05e0592470428f0ec1c31714cab9ef19b8f2e37be1f4c7d32fae", size = 4218563 }, + { url = "https://files.pythonhosted.org/packages/e5/8c/bbe6baf2557262834f2070cf668515fa308b2d38a4bbf771f8f7872a7036/grpcio-1.80.0-cp314-cp314-win_amd64.whl", hash = "sha256:3b01e1f5464c583d2f567b2e46ff0d516ef979978f72091fd81f5ab7fa6e2e7f", size = 5019457 }, +] + +[[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 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86", size = 37515 }, +] + +[[package]] +name = "hf-xet" +version = "1.4.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/53/92/ec9ad04d0b5728dca387a45af7bc98fbb0d73b2118759f5f6038b61a57e8/hf_xet-1.4.3.tar.gz", hash = "sha256:8ddedb73c8c08928c793df2f3401ec26f95be7f7e516a7bee2fbb546f6676113", size = 670477 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/72/43/724d307b34e353da0abd476e02f72f735cdd2bc86082dee1b32ea0bfee1d/hf_xet-1.4.3-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:7551659ba4f1e1074e9623996f28c3873682530aee0a846b7f2f066239228144", size = 3800935 }, + { url = "https://files.pythonhosted.org/packages/2b/d2/8bee5996b699262edb87dbb54118d287c0e1b2fc78af7cdc41857ba5e3c4/hf_xet-1.4.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:bee693ada985e7045997f05f081d0e12c4c08bd7626dc397f8a7c487e6c04f7f", size = 3558942 }, + { url = "https://files.pythonhosted.org/packages/c3/a1/e993d09cbe251196fb60812b09a58901c468127b7259d2bf0f68bf6088eb/hf_xet-1.4.3-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:21644b404bb0100fe3857892f752c4d09642586fd988e61501c95bbf44b393a3", size = 4207657 }, + { url = "https://files.pythonhosted.org/packages/64/44/9eb6d21e5c34c63e5e399803a6932fa983cabdf47c0ecbcfe7ea97684b8c/hf_xet-1.4.3-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:987f09cfe418237812896a6736b81b1af02a3a6dcb4b4944425c4c4fca7a7cf8", size = 3986765 }, + { url = "https://files.pythonhosted.org/packages/ea/7b/8ad6f16fdb82f5f7284a34b5ec48645bd575bdcd2f6f0d1644775909c486/hf_xet-1.4.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:60cf7fc43a99da0a853345cf86d23738c03983ee5249613a6305d3e57a5dca74", size = 4188162 }, + { url = "https://files.pythonhosted.org/packages/1b/c4/39d6e136cbeea9ca5a23aad4b33024319222adbdc059ebcda5fc7d9d5ff4/hf_xet-1.4.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:2815a49a7a59f3e2edf0cf113ae88e8cb2ca2a221bf353fb60c609584f4884d4", size = 4424525 }, + { url = "https://files.pythonhosted.org/packages/46/f2/adc32dae6bdbc367853118b9878139ac869419a4ae7ba07185dc31251b76/hf_xet-1.4.3-cp313-cp313t-win_amd64.whl", hash = "sha256:42ee323265f1e6a81b0e11094564fb7f7e0ec75b5105ffd91ae63f403a11931b", size = 3671610 }, + { url = "https://files.pythonhosted.org/packages/e2/19/25d897dcc3f81953e0c2cde9ec186c7a0fee413eb0c9a7a9130d87d94d3a/hf_xet-1.4.3-cp313-cp313t-win_arm64.whl", hash = "sha256:27c976ba60079fb8217f485b9c5c7fcd21c90b0367753805f87cb9f3cdc4418a", size = 3528529 }, + { url = "https://files.pythonhosted.org/packages/ec/36/3e8f85ca9fe09b8de2b2e10c63b3b3353d7dda88a0b3d426dffbe7b8313b/hf_xet-1.4.3-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:5251d5ece3a81815bae9abab41cf7ddb7bcb8f56411bce0827f4a3071c92fdc6", size = 3801019 }, + { url = "https://files.pythonhosted.org/packages/b5/9c/defb6cb1de28bccb7bd8d95f6e60f72a3d3fa4cb3d0329c26fb9a488bfe7/hf_xet-1.4.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:1feb0f3abeacee143367c326a128a2e2b60868ec12a36c225afb1d6c5a05e6d2", size = 3558746 }, + { url = "https://files.pythonhosted.org/packages/c1/bd/8d001191893178ff8e826e46ad5299446e62b93cd164e17b0ffea08832ec/hf_xet-1.4.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:8b301fc150290ca90b4fccd079829b84bb4786747584ae08b94b4577d82fb791", size = 4207692 }, + { url = "https://files.pythonhosted.org/packages/ce/48/6790b402803250e9936435613d3a78b9aaeee7973439f0918848dde58309/hf_xet-1.4.3-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:d972fbe95ddc0d3c0fc49b31a8a69f47db35c1e3699bf316421705741aab6653", size = 3986281 }, + { url = "https://files.pythonhosted.org/packages/51/56/ea62552fe53db652a9099eda600b032d75554d0e86c12a73824bfedef88b/hf_xet-1.4.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:c5b48db1ee344a805a1b9bd2cda9b6b65fe77ed3787bd6e87ad5521141d317cd", size = 4187414 }, + { url = "https://files.pythonhosted.org/packages/7d/f5/bc1456d4638061bea997e6d2db60a1a613d7b200e0755965ec312dc1ef79/hf_xet-1.4.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:22bdc1f5fb8b15bf2831440b91d1c9bbceeb7e10c81a12e8d75889996a5c9da8", size = 4424368 }, + { url = "https://files.pythonhosted.org/packages/e4/76/ab597bae87e1f06d18d3ecb8ed7f0d3c9a37037fc32ce76233d369273c64/hf_xet-1.4.3-cp314-cp314t-win_amd64.whl", hash = "sha256:0392c79b7cf48418cd61478c1a925246cf10639f4cd9d94368d8ca1e8df9ea07", size = 3672280 }, + { url = "https://files.pythonhosted.org/packages/62/05/2e462d34e23a09a74d73785dbed71cc5dbad82a72eee2ad60a72a554155d/hf_xet-1.4.3-cp314-cp314t-win_arm64.whl", hash = "sha256:681c92a07796325778a79d76c67011764ecc9042a8c3579332b61b63ae512075", size = 3528945 }, + { url = "https://files.pythonhosted.org/packages/ac/9f/9c23e4a447b8f83120798f9279d0297a4d1360bdbf59ef49ebec78fe2545/hf_xet-1.4.3-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:d0da85329eaf196e03e90b84c2d0aca53bd4573d097a75f99609e80775f98025", size = 3805048 }, + { url = "https://files.pythonhosted.org/packages/0b/f8/7aacb8e5f4a7899d39c787b5984e912e6c18b11be136ef13947d7a66d265/hf_xet-1.4.3-cp37-abi3-macosx_11_0_arm64.whl", hash = "sha256:e23717ce4186b265f69afa66e6f0069fe7efbf331546f5c313d00e123dc84583", size = 3562178 }, + { url = "https://files.pythonhosted.org/packages/df/9a/a24b26dc8a65f0ecc0fe5be981a19e61e7ca963b85e062c083f3a9100529/hf_xet-1.4.3-cp37-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:fc360b70c815bf340ed56c7b8c63aacf11762a4b099b2fe2c9bd6d6068668c08", size = 4212320 }, + { url = "https://files.pythonhosted.org/packages/53/60/46d493db155d2ee2801b71fb1b0fd67696359047fdd8caee2c914cc50c79/hf_xet-1.4.3-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:39f2d2e9654cd9b4319885733993807aab6de9dfbd34c42f0b78338d6617421f", size = 3991546 }, + { url = "https://files.pythonhosted.org/packages/bc/f5/067363e1c96c6b17256910830d1b54099d06287e10f4ec6ec4e7e08371fc/hf_xet-1.4.3-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:49ad8a8cead2b56051aa84d7fce3e1335efe68df3cf6c058f22a65513885baac", size = 4193200 }, + { url = "https://files.pythonhosted.org/packages/42/4b/53951592882d9c23080c7644542fda34a3813104e9e11fa1a7d82d419cb8/hf_xet-1.4.3-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:7716d62015477a70ea272d2d68cd7cad140f61c52ee452e133e139abfe2c17ba", size = 4429392 }, + { url = "https://files.pythonhosted.org/packages/8a/21/75a6c175b4e79662ad8e62f46a40ce341d8d6b206b06b4320d07d55b188c/hf_xet-1.4.3-cp37-abi3-win_amd64.whl", hash = "sha256:6b591fcad34e272a5b02607485e4f2a1334aebf1bc6d16ce8eb1eb8978ac2021", size = 3677359 }, + { url = "https://files.pythonhosted.org/packages/8a/7c/44314ecd0e89f8b2b51c9d9e5e7a60a9c1c82024ac471d415860557d3cd8/hf_xet-1.4.3-cp37-abi3-win_arm64.whl", hash = "sha256:7c2c7e20bcfcc946dc67187c203463f5e932e395845d098cc2a93f5b67ca0b47", size = 3533664 }, +] + +[[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 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl", hash = "sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55", size = 78784 }, +] + +[[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 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad", size = 73517 }, +] + +[[package]] +name = "httpx-sse" +version = "0.4.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/0f/4c/751061ffa58615a32c31b2d82e8482be8dd4a89154f003147acee90f2be9/httpx_sse-0.4.3.tar.gz", hash = "sha256:9b1ed0127459a66014aec3c56bebd93da3c1bc8bb6618c8082039a44889a755d", size = 15943 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d2/fd/6668e5aec43ab844de6fc74927e155a3b37bf40d7c3790e49fc0406b6578/httpx_sse-0.4.3-py3-none-any.whl", hash = "sha256:0ac1c9fe3c0afad2e0ebb25a934a59f4c7823b60792691f779fad2c5568830fc", size = 8960 }, +] + +[[package]] +name = "huggingface-hub" +version = "1.8.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { 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 = "typer" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8e/2a/a847fd02261cd051da218baf99f90ee7c7040c109a01833db4f838f25256/huggingface_hub-1.8.0.tar.gz", hash = "sha256:c5627b2fd521e00caf8eff4ac965ba988ea75167fad7ee72e17f9b7183ec63f3", size = 735839 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a9/ae/8a3a16ea4d202cb641b51d2681bdd3d482c1c592d7570b3fa264730829ce/huggingface_hub-1.8.0-py3-none-any.whl", hash = "sha256:d3eb5047bd4e33c987429de6020d4810d38a5bef95b3b40df9b17346b7f353f2", size = 625208 }, +] + +[[package]] +name = "idna" +version = "3.11" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6f/6d/0703ccc57f3a7233505399edb88de3cbd678da106337b9fcde432b65ed60/idna-3.11.tar.gz", hash = "sha256:795dafcc9c04ed0c1fb032c2aa73654d8e8c5023a7df64a53f39190ada629902", size = 194582 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0e/61/66938bbb5fc52dbdf84594873d5b51fb1f7c7794e9c0f5bd885f30bc507b/idna-3.11-py3-none-any.whl", hash = "sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea", size = 71008 }, +] + +[[package]] +name = "importlib-metadata" +version = "8.7.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "zipp" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f3/49/3b30cad09e7771a4982d9975a8cbf64f00d4a1ececb53297f1d9a7be1b10/importlib_metadata-8.7.1.tar.gz", hash = "sha256:49fef1ae6440c182052f407c8d34a68f72efc36db9ca90dc0113398f2fdde8bb", size = 57107 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fa/5e/f8e9a1d23b9c20a551a8a02ea3637b4642e22c2626e3a13a9a29cdea99eb/importlib_metadata-8.7.1-py3-none-any.whl", hash = "sha256:5a1f80bf1daa489495071efbb095d75a634cf28a8bc299581244063b53176151", size = 27865 }, +] + +[[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 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl", hash = "sha256:f631c04d2c48c52b84d0d0549c99ff3859c98df65b3101406327ecc7d53fbf12", size = 7484 }, +] + +[[package]] +name = "jaraco-classes" +version = "3.4.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "more-itertools" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/06/c0/ed4a27bc5571b99e3cff68f8a9fa5b56ff7df1c2251cc715a652ddd26402/jaraco.classes-3.4.0.tar.gz", hash = "sha256:47a024b51d0239c0dd8c8540c6c7f484be3b8fcf0b2d85c13825780d3b3f3acd", size = 11780 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7f/66/b15ce62552d84bbfcec9a4873ab79d993a1dd4edb922cbfccae192bd5b5f/jaraco.classes-3.4.0-py3-none-any.whl", hash = "sha256:f662826b6bed8cace05e7ff873ce0f9283b5c924470fe664fff1c2f00f581790", size = 6777 }, +] + +[[package]] +name = "jaraco-context" +version = "6.1.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/af/50/4763cd07e722bb6285316d390a164bc7e479db9d90daa769f22578f698b4/jaraco_context-6.1.2.tar.gz", hash = "sha256:f1a6c9d391e661cc5b8d39861ff077a7dc24dc23833ccee564b234b81c82dfe3", size = 16801 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f2/58/bc8954bda5fcda97bd7c19be11b85f91973d67a706ed4a3aec33e7de22db/jaraco_context-6.1.2-py3-none-any.whl", hash = "sha256:bf8150b79a2d5d91ae48629d8b427a8f7ba0e1097dd6202a9059f29a36379535", size = 7871 }, +] + +[[package]] +name = "jaraco-functools" +version = "4.4.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "more-itertools" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/0f/27/056e0638a86749374d6f57d0b0db39f29509cce9313cf91bdc0ac4d91084/jaraco_functools-4.4.0.tar.gz", hash = "sha256:da21933b0417b89515562656547a77b4931f98176eb173644c0d35032a33d6bb", size = 19943 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fd/c4/813bb09f0985cb21e959f21f2464169eca882656849adf727ac7bb7e1767/jaraco_functools-4.4.0-py3-none-any.whl", hash = "sha256:9eec1e36f45c818d9bf307c8948eb03b2b56cd44087b3cdc989abca1f20b9176", size = 10481 }, +] + +[[package]] +name = "jeepney" +version = "0.9.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7b/6f/357efd7602486741aa73ffc0617fb310a29b588ed0fd69c2399acbb85b0c/jeepney-0.9.0.tar.gz", hash = "sha256:cf0e9e845622b81e4a28df94c40345400256ec608d0e55bb8a3feaa9163f5732", size = 106758 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b2/a3/e137168c9c44d18eff0376253da9f1e9234d0239e0ee230d2fee6cea8e55/jeepney-0.9.0-py3-none-any.whl", hash = "sha256:97e5714520c16fc0a45695e5365a2e11b81ea79bba796e26f9f1d178cb182683", size = 49010 }, +] + +[[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 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67", size = 134899 }, +] + +[[package]] +name = "jiter" +version = "0.13.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/0d/5e/4ec91646aee381d01cdb9974e30882c9cd3b8c5d1079d6b5ff4af522439a/jiter-0.13.0.tar.gz", hash = "sha256:f2839f9c2c7e2dffc1bc5929a510e14ce0a946be9365fd1219e7ef342dae14f4", size = 164847 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2e/30/7687e4f87086829955013ca12a9233523349767f69653ebc27036313def9/jiter-0.13.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:0a2bd69fc1d902e89925fc34d1da51b2128019423d7b339a45d9e99c894e0663", size = 307958 }, + { url = "https://files.pythonhosted.org/packages/c3/27/e57f9a783246ed95481e6749cc5002a8a767a73177a83c63ea71f0528b90/jiter-0.13.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f917a04240ef31898182f76a332f508f2cc4b57d2b4d7ad2dbfebbfe167eb505", size = 318597 }, + { url = "https://files.pythonhosted.org/packages/cf/52/e5719a60ac5d4d7c5995461a94ad5ef962a37c8bf5b088390e6fad59b2ff/jiter-0.13.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c1e2b199f446d3e82246b4fd9236d7cb502dc2222b18698ba0d986d2fecc6152", size = 348821 }, + { url = "https://files.pythonhosted.org/packages/61/db/c1efc32b8ba4c740ab3fc2d037d8753f67685f475e26b9d6536a4322bcdd/jiter-0.13.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:04670992b576fa65bd056dbac0c39fe8bd67681c380cb2b48efa885711d9d726", size = 364163 }, + { url = "https://files.pythonhosted.org/packages/55/8a/fb75556236047c8806995671a18e4a0ad646ed255276f51a20f32dceaeec/jiter-0.13.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5a1aff1fbdb803a376d4d22a8f63f8e7ccbce0b4890c26cc7af9e501ab339ef0", size = 483709 }, + { url = "https://files.pythonhosted.org/packages/7e/16/43512e6ee863875693a8e6f6d532e19d650779d6ba9a81593ae40a9088ff/jiter-0.13.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3b3fb8c2053acaef8580809ac1d1f7481a0a0bdc012fd7f5d8b18fb696a5a089", size = 370480 }, + { url = "https://files.pythonhosted.org/packages/f8/4c/09b93e30e984a187bc8aaa3510e1ec8dcbdcd71ca05d2f56aac0492453aa/jiter-0.13.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bdaba7d87e66f26a2c45d8cbadcbfc4bf7884182317907baf39cfe9775bb4d93", size = 360735 }, + { url = "https://files.pythonhosted.org/packages/1a/1b/46c5e349019874ec5dfa508c14c37e29864ea108d376ae26d90bee238cd7/jiter-0.13.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:7b88d649135aca526da172e48083da915ec086b54e8e73a425ba50999468cc08", size = 391814 }, + { url = "https://files.pythonhosted.org/packages/15/9e/26184760e85baee7162ad37b7912797d2077718476bf91517641c92b3639/jiter-0.13.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:e404ea551d35438013c64b4f357b0474c7abf9f781c06d44fcaf7a14c69ff9e2", size = 513990 }, + { url = "https://files.pythonhosted.org/packages/e9/34/2c9355247d6debad57a0a15e76ab1566ab799388042743656e566b3b7de1/jiter-0.13.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:1f4748aad1b4a93c8bdd70f604d0f748cdc0e8744c5547798acfa52f10e79228", size = 548021 }, + { url = "https://files.pythonhosted.org/packages/ac/4a/9f2c23255d04a834398b9c2e0e665382116911dc4d06b795710503cdad25/jiter-0.13.0-cp312-cp312-win32.whl", hash = "sha256:0bf670e3b1445fc4d31612199f1744f67f889ee1bbae703c4b54dc097e5dd394", size = 203024 }, + { url = "https://files.pythonhosted.org/packages/09/ee/f0ae675a957ae5a8f160be3e87acea6b11dc7b89f6b7ab057e77b2d2b13a/jiter-0.13.0-cp312-cp312-win_amd64.whl", hash = "sha256:15db60e121e11fe186c0b15236bd5d18381b9ddacdcf4e659feb96fc6c969c92", size = 205424 }, + { url = "https://files.pythonhosted.org/packages/1b/02/ae611edf913d3cbf02c97cdb90374af2082c48d7190d74c1111dde08bcdd/jiter-0.13.0-cp312-cp312-win_arm64.whl", hash = "sha256:41f92313d17989102f3cb5dd533a02787cdb99454d494344b0361355da52fcb9", size = 186818 }, + { url = "https://files.pythonhosted.org/packages/91/9c/7ee5a6ff4b9991e1a45263bfc46731634c4a2bde27dfda6c8251df2d958c/jiter-0.13.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:1f8a55b848cbabf97d861495cd65f1e5c590246fabca8b48e1747c4dfc8f85bf", size = 306897 }, + { url = "https://files.pythonhosted.org/packages/7c/02/be5b870d1d2be5dd6a91bdfb90f248fbb7dcbd21338f092c6b89817c3dbf/jiter-0.13.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f556aa591c00f2c45eb1b89f68f52441a016034d18b65da60e2d2875bbbf344a", size = 317507 }, + { url = "https://files.pythonhosted.org/packages/da/92/b25d2ec333615f5f284f3a4024f7ce68cfa0604c322c6808b2344c7f5d2b/jiter-0.13.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f7e1d61da332ec412350463891923f960c3073cf1aae93b538f0bb4c8cd46efb", size = 350560 }, + { url = "https://files.pythonhosted.org/packages/be/ec/74dcb99fef0aca9fbe56b303bf79f6bd839010cb18ad41000bf6cc71eec0/jiter-0.13.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3097d665a27bc96fd9bbf7f86178037db139f319f785e4757ce7ccbf390db6c2", size = 363232 }, + { url = "https://files.pythonhosted.org/packages/1b/37/f17375e0bb2f6a812d4dd92d7616e41917f740f3e71343627da9db2824ce/jiter-0.13.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9d01ecc3a8cbdb6f25a37bd500510550b64ddf9f7d64a107d92f3ccb25035d0f", size = 483727 }, + { url = "https://files.pythonhosted.org/packages/77/d2/a71160a5ae1a1e66c1395b37ef77da67513b0adba73b993a27fbe47eb048/jiter-0.13.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ed9bbc30f5d60a3bdf63ae76beb3f9db280d7f195dfcfa61af792d6ce912d159", size = 370799 }, + { url = "https://files.pythonhosted.org/packages/01/99/ed5e478ff0eb4e8aa5fd998f9d69603c9fd3f32de3bd16c2b1194f68361c/jiter-0.13.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:98fbafb6e88256f4454de33c1f40203d09fc33ed19162a68b3b257b29ca7f663", size = 359120 }, + { url = "https://files.pythonhosted.org/packages/16/be/7ffd08203277a813f732ba897352797fa9493faf8dc7995b31f3d9cb9488/jiter-0.13.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5467696f6b827f1116556cb0db620440380434591e93ecee7fd14d1a491b6daa", size = 390664 }, + { url = "https://files.pythonhosted.org/packages/d1/84/e0787856196d6d346264d6dcccb01f741e5f0bd014c1d9a2ebe149caf4f3/jiter-0.13.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:2d08c9475d48b92892583df9da592a0e2ac49bcd41fae1fec4f39ba6cf107820", size = 513543 }, + { url = "https://files.pythonhosted.org/packages/65/50/ecbd258181c4313cf79bca6c88fb63207d04d5bf5e4f65174114d072aa55/jiter-0.13.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:aed40e099404721d7fcaf5b89bd3b4568a4666358bcac7b6b15c09fb6252ab68", size = 547262 }, + { url = "https://files.pythonhosted.org/packages/27/da/68f38d12e7111d2016cd198161b36e1f042bd115c169255bcb7ec823a3bf/jiter-0.13.0-cp313-cp313-win32.whl", hash = "sha256:36ebfbcffafb146d0e6ffb3e74d51e03d9c35ce7c625c8066cdbfc7b953bdc72", size = 200630 }, + { url = "https://files.pythonhosted.org/packages/25/65/3bd1a972c9a08ecd22eb3b08a95d1941ebe6938aea620c246cf426ae09c2/jiter-0.13.0-cp313-cp313-win_amd64.whl", hash = "sha256:8d76029f077379374cf0dbc78dbe45b38dec4a2eb78b08b5194ce836b2517afc", size = 202602 }, + { url = "https://files.pythonhosted.org/packages/15/fe/13bd3678a311aa67686bb303654792c48206a112068f8b0b21426eb6851e/jiter-0.13.0-cp313-cp313-win_arm64.whl", hash = "sha256:bb7613e1a427cfcb6ea4544f9ac566b93d5bf67e0d48c787eca673ff9c9dff2b", size = 185939 }, + { url = "https://files.pythonhosted.org/packages/49/19/a929ec002ad3228bc97ca01dbb14f7632fffdc84a95ec92ceaf4145688ae/jiter-0.13.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:fa476ab5dd49f3bf3a168e05f89358c75a17608dbabb080ef65f96b27c19ab10", size = 316616 }, + { url = "https://files.pythonhosted.org/packages/52/56/d19a9a194afa37c1728831e5fb81b7722c3de18a3109e8f282bfc23e587a/jiter-0.13.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ade8cb6ff5632a62b7dbd4757d8c5573f7a2e9ae285d6b5b841707d8363205ef", size = 346850 }, + { url = "https://files.pythonhosted.org/packages/36/4a/94e831c6bf287754a8a019cb966ed39ff8be6ab78cadecf08df3bb02d505/jiter-0.13.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9950290340acc1adaded363edd94baebcee7dabdfa8bee4790794cd5cfad2af6", size = 358551 }, + { url = "https://files.pythonhosted.org/packages/a2/ec/a4c72c822695fa80e55d2b4142b73f0012035d9fcf90eccc56bc060db37c/jiter-0.13.0-cp313-cp313t-win_amd64.whl", hash = "sha256:2b4972c6df33731aac0742b64fd0d18e0a69bc7d6e03108ce7d40c85fd9e3e6d", size = 201950 }, + { url = "https://files.pythonhosted.org/packages/b6/00/393553ec27b824fbc29047e9c7cd4a3951d7fbe4a76743f17e44034fa4e4/jiter-0.13.0-cp313-cp313t-win_arm64.whl", hash = "sha256:701a1e77d1e593c1b435315ff625fd071f0998c5f02792038a5ca98899261b7d", size = 185852 }, + { url = "https://files.pythonhosted.org/packages/6e/f5/f1997e987211f6f9bd71b8083047b316208b4aca0b529bb5f8c96c89ef3e/jiter-0.13.0-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:cc5223ab19fe25e2f0bf2643204ad7318896fe3729bf12fde41b77bfc4fafff0", size = 308804 }, + { url = "https://files.pythonhosted.org/packages/cd/8f/5482a7677731fd44881f0204981ce2d7175db271f82cba2085dd2212e095/jiter-0.13.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:9776ebe51713acf438fd9b4405fcd86893ae5d03487546dae7f34993217f8a91", size = 318787 }, + { url = "https://files.pythonhosted.org/packages/f3/b9/7257ac59778f1cd025b26a23c5520a36a424f7f1b068f2442a5b499b7464/jiter-0.13.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:879e768938e7b49b5e90b7e3fecc0dbec01b8cb89595861fb39a8967c5220d09", size = 353880 }, + { url = "https://files.pythonhosted.org/packages/c3/87/719eec4a3f0841dad99e3d3604ee4cba36af4419a76f3cb0b8e2e691ad67/jiter-0.13.0-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:682161a67adea11e3aae9038c06c8b4a9a71023228767477d683f69903ebc607", size = 366702 }, + { url = "https://files.pythonhosted.org/packages/d2/65/415f0a75cf6921e43365a1bc227c565cb949caca8b7532776e430cbaa530/jiter-0.13.0-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a13b68cd1cd8cc9de8f244ebae18ccb3e4067ad205220ef324c39181e23bbf66", size = 486319 }, + { url = "https://files.pythonhosted.org/packages/54/a2/9e12b48e82c6bbc6081fd81abf915e1443add1b13d8fc586e1d90bb02bb8/jiter-0.13.0-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:87ce0f14c6c08892b610686ae8be350bf368467b6acd5085a5b65441e2bf36d2", size = 372289 }, + { url = "https://files.pythonhosted.org/packages/4e/c1/e4693f107a1789a239c759a432e9afc592366f04e901470c2af89cfd28e1/jiter-0.13.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0c365005b05505a90d1c47856420980d0237adf82f70c4aff7aebd3c1cc143ad", size = 360165 }, + { url = "https://files.pythonhosted.org/packages/17/08/91b9ea976c1c758240614bd88442681a87672eebc3d9a6dde476874e706b/jiter-0.13.0-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1317fdffd16f5873e46ce27d0e0f7f4f90f0cdf1d86bf6abeaea9f63ca2c401d", size = 389634 }, + { url = "https://files.pythonhosted.org/packages/18/23/58325ef99390d6d40427ed6005bf1ad54f2577866594bcf13ce55675f87d/jiter-0.13.0-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:c05b450d37ba0c9e21c77fef1f205f56bcee2330bddca68d344baebfc55ae0df", size = 514933 }, + { url = "https://files.pythonhosted.org/packages/5b/25/69f1120c7c395fd276c3996bb8adefa9c6b84c12bb7111e5c6ccdcd8526d/jiter-0.13.0-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:775e10de3849d0631a97c603f996f518159272db00fdda0a780f81752255ee9d", size = 548842 }, + { url = "https://files.pythonhosted.org/packages/18/05/981c9669d86850c5fbb0d9e62bba144787f9fba84546ba43d624ee27ef29/jiter-0.13.0-cp314-cp314-win32.whl", hash = "sha256:632bf7c1d28421c00dd8bbb8a3bac5663e1f57d5cd5ed962bce3c73bf62608e6", size = 202108 }, + { url = "https://files.pythonhosted.org/packages/8d/96/cdcf54dd0b0341db7d25413229888a346c7130bd20820530905fdb65727b/jiter-0.13.0-cp314-cp314-win_amd64.whl", hash = "sha256:f22ef501c3f87ede88f23f9b11e608581c14f04db59b6a801f354397ae13739f", size = 204027 }, + { url = "https://files.pythonhosted.org/packages/fb/f9/724bcaaab7a3cd727031fe4f6995cb86c4bd344909177c186699c8dec51a/jiter-0.13.0-cp314-cp314-win_arm64.whl", hash = "sha256:07b75fe09a4ee8e0c606200622e571e44943f47254f95e2436c8bdcaceb36d7d", size = 187199 }, + { url = "https://files.pythonhosted.org/packages/62/92/1661d8b9fd6a3d7a2d89831db26fe3c1509a287d83ad7838831c7b7a5c7e/jiter-0.13.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:964538479359059a35fb400e769295d4b315ae61e4105396d355a12f7fef09f0", size = 318423 }, + { url = "https://files.pythonhosted.org/packages/4f/3b/f77d342a54d4ebcd128e520fc58ec2f5b30a423b0fd26acdfc0c6fef8e26/jiter-0.13.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e104da1db1c0991b3eaed391ccd650ae8d947eab1480c733e5a3fb28d4313e40", size = 351438 }, + { url = "https://files.pythonhosted.org/packages/76/b3/ba9a69f0e4209bd3331470c723c2f5509e6f0482e416b612431a5061ed71/jiter-0.13.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0e3a5f0cde8ff433b8e88e41aa40131455420fb3649a3c7abdda6145f8cb7202", size = 364774 }, + { url = "https://files.pythonhosted.org/packages/b3/16/6cdb31fa342932602458dbb631bfbd47f601e03d2e4950740e0b2100b570/jiter-0.13.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:57aab48f40be1db920a582b30b116fe2435d184f77f0e4226f546794cedd9cf0", size = 487238 }, + { url = "https://files.pythonhosted.org/packages/ed/b1/956cc7abaca8d95c13aa8d6c9b3f3797241c246cd6e792934cc4c8b250d2/jiter-0.13.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7772115877c53f62beeb8fd853cab692dbc04374ef623b30f997959a4c0e7e95", size = 372892 }, + { url = "https://files.pythonhosted.org/packages/26/c4/97ecde8b1e74f67b8598c57c6fccf6df86ea7861ed29da84629cdbba76c4/jiter-0.13.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1211427574b17b633cfceba5040de8081e5abf114f7a7602f73d2e16f9fdaa59", size = 360309 }, + { url = "https://files.pythonhosted.org/packages/4b/d7/eabe3cf46715854ccc80be2cd78dd4c36aedeb30751dbf85a1d08c14373c/jiter-0.13.0-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:7beae3a3d3b5212d3a55d2961db3c292e02e302feb43fce6a3f7a31b90ea6dfe", size = 389607 }, + { url = "https://files.pythonhosted.org/packages/df/2d/03963fc0804e6109b82decfb9974eb92df3797fe7222428cae12f8ccaa0c/jiter-0.13.0-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:e5562a0f0e90a6223b704163ea28e831bd3a9faa3512a711f031611e6b06c939", size = 514986 }, + { url = "https://files.pythonhosted.org/packages/f6/6c/8c83b45eb3eb1c1e18d841fe30b4b5bc5619d781267ca9bc03e005d8fd0a/jiter-0.13.0-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:6c26a424569a59140fb51160a56df13f438a2b0967365e987889186d5fc2f6f9", size = 548756 }, + { url = "https://files.pythonhosted.org/packages/47/66/eea81dfff765ed66c68fd2ed8c96245109e13c896c2a5015c7839c92367e/jiter-0.13.0-cp314-cp314t-win32.whl", hash = "sha256:24dc96eca9f84da4131cdf87a95e6ce36765c3b156fc9ae33280873b1c32d5f6", size = 201196 }, + { url = "https://files.pythonhosted.org/packages/ff/32/4ac9c7a76402f8f00d00842a7f6b83b284d0cf7c1e9d4227bc95aa6d17fa/jiter-0.13.0-cp314-cp314t-win_amd64.whl", hash = "sha256:0a8d76c7524087272c8ae913f5d9d608bd839154b62c4322ef65723d2e5bb0b8", size = 204215 }, + { url = "https://files.pythonhosted.org/packages/f9/8e/7def204fea9f9be8b3c21a6f2dd6c020cf56c7d5ff753e0e23ed7f9ea57e/jiter-0.13.0-cp314-cp314t-win_arm64.whl", hash = "sha256:2c26cf47e2cad140fa23b6d58d435a7c0161f5c514284802f25e87fddfe11024", size = 187152 }, + { url = "https://files.pythonhosted.org/packages/80/60/e50fa45dd7e2eae049f0ce964663849e897300433921198aef94b6ffa23a/jiter-0.13.0-graalpy312-graalpy250_312_native-macosx_10_12_x86_64.whl", hash = "sha256:3d744a6061afba08dd7ae375dcde870cffb14429b7477e10f67e9e6d68772a0a", size = 305169 }, + { url = "https://files.pythonhosted.org/packages/d2/73/a009f41c5eed71c49bec53036c4b33555afcdee70682a18c6f66e396c039/jiter-0.13.0-graalpy312-graalpy250_312_native-macosx_11_0_arm64.whl", hash = "sha256:ff732bd0a0e778f43d5009840f20b935e79087b4dc65bd36f1cd0f9b04b8ff7f", size = 303808 }, + { url = "https://files.pythonhosted.org/packages/c4/10/528b439290763bff3d939268085d03382471b442f212dca4ff5f12802d43/jiter-0.13.0-graalpy312-graalpy250_312_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ab44b178f7981fcaea7e0a5df20e773c663d06ffda0198f1a524e91b2fde7e59", size = 337384 }, + { url = "https://files.pythonhosted.org/packages/67/8a/a342b2f0251f3dac4ca17618265d93bf244a2a4d089126e81e4c1056ac50/jiter-0.13.0-graalpy312-graalpy250_312_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7bb00b6d26db67a05fe3e12c76edc75f32077fb51deed13822dc648fa373bc19", size = 343768 }, +] + +[[package]] +name = "jmespath" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d3/59/322338183ecda247fb5d1763a6cbe46eff7222eaeebafd9fa65d4bf5cb11/jmespath-1.1.0.tar.gz", hash = "sha256:472c87d80f36026ae83c6ddd0f1d05d4e510134ed462851fd5f754c8c3cbb88d", size = 27377 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/14/2f/967ba146e6d58cf6a652da73885f52fc68001525b4197effc174321d70b4/jmespath-1.1.0-py3-none-any.whl", hash = "sha256:a5663118de4908c91729bea0acadca56526eb2698e83de10cd116ae0f4e97c64", size = 20419 }, +] + +[[package]] +name = "jsonpath-python" +version = "1.1.5" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/2d/db/2f4ecc24da35c6142b39c353d5b7c16eef955cc94b35a48d3fa47996d7c3/jsonpath_python-1.1.5.tar.gz", hash = "sha256:ceea2efd9e56add09330a2c9631ea3d55297b9619348c1055e5bfb9cb0b8c538", size = 87352 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/28/50/1a313fb700526b134c71eb8a225d8b83be0385dbb0204337b4379c698cef/jsonpath_python-1.1.5-py3-none-any.whl", hash = "sha256:a60315404d70a65e76c9a782c84e50600480221d94a58af47b7b4d437351cb4b", size = 14090 }, +] + +[[package]] +name = "jsonref" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/aa/0d/c1f3277e90ccdb50d33ed5ba1ec5b3f0a242ed8c1b1a85d3afeb68464dca/jsonref-1.1.0.tar.gz", hash = "sha256:32fe8e1d85af0fdefbebce950af85590b22b60f9e95443176adbde4e1ecea552", size = 8814 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0c/ec/e1db9922bceb168197a558a2b8c03a7963f1afe93517ddd3cf99f202f996/jsonref-1.1.0-py3-none-any.whl", hash = "sha256:590dc7773df6c21cbf948b5dac07a72a251db28b0238ceecce0a2abfa8ec30a9", size = 9425 }, +] + +[[package]] +name = "jsonschema" +version = "4.26.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "jsonschema-specifications" }, + { name = "referencing" }, + { name = "rpds-py" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b3/fc/e067678238fa451312d4c62bf6e6cf5ec56375422aee02f9cb5f909b3047/jsonschema-4.26.0.tar.gz", hash = "sha256:0c26707e2efad8aa1bfc5b7ce170f3fccc2e4918ff85989ba9ffa9facb2be326", size = 366583 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/69/90/f63fb5873511e014207a475e2bb4e8b2e570d655b00ac19a9a0ca0a385ee/jsonschema-4.26.0-py3-none-any.whl", hash = "sha256:d489f15263b8d200f8387e64b4c3a75f06629559fb73deb8fdfb525f2dab50ce", size = 90630 }, +] + +[[package]] +name = "jsonschema-path" +version = "0.4.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pathable" }, + { name = "pyyaml" }, + { name = "referencing" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/5b/8a/7e6102f2b8bdc6705a9eb5294f8f6f9ccd3a8420e8e8e19671d1dd773251/jsonschema_path-0.4.5.tar.gz", hash = "sha256:c6cd7d577ae290c7defd4f4029e86fdb248ca1bd41a07557795b3c95e5144918", size = 15113 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/d5/4e96c44f6c1ea3d812cf5391d81a4f5abaa540abf8d04ecd7f66e0ed11df/jsonschema_path-0.4.5-py3-none-any.whl", hash = "sha256:7d77a2c3f3ec569a40efe5c5f942c44c1af2a6f96fe0866794c9ef5b8f87fd65", size = 19368 }, +] + +[[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 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/41/45/1a4ed80516f02155c51f51e8cedb3c1902296743db0bbc66608a0db2814f/jsonschema_specifications-2025.9.1-py3-none-any.whl", hash = "sha256:98802fee3a11ee76ecaca44429fda8a41bff98b00a0f2838151b113f210cc6fe", size = 18437 }, +] + +[[package]] +name = "keyring" +version = "25.7.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jaraco-classes" }, + { name = "jaraco-context" }, + { name = "jaraco-functools" }, + { name = "jeepney", marker = "sys_platform == 'linux'" }, + { name = "pywin32-ctypes", marker = "sys_platform == 'win32'" }, + { name = "secretstorage", marker = "sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/43/4b/674af6ef2f97d56f0ab5153bf0bfa28ccb6c3ed4d1babf4305449668807b/keyring-25.7.0.tar.gz", hash = "sha256:fe01bd85eb3f8fb3dd0405defdeac9a5b4f6f0439edbb3149577f244a2e8245b", size = 63516 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/81/db/e655086b7f3a705df045bf0933bdd9c2f79bb3c97bfef1384598bb79a217/keyring-25.7.0-py3-none-any.whl", hash = "sha256:be4a0b195f149690c166e850609a477c532ddbfbaed96a404d4e43f8d5e2689f", size = 39160 }, +] + +[[package]] +name = "librt" +version = "0.8.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/56/9c/b4b0c54d84da4a94b37bd44151e46d5e583c9534c7e02250b961b1b6d8a8/librt-0.8.1.tar.gz", hash = "sha256:be46a14693955b3bd96014ccbdb8339ee8c9346fbe11c1b78901b55125f14c73", size = 177471 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/95/21/d39b0a87ac52fc98f621fb6f8060efb017a767ebbbac2f99fbcbc9ddc0d7/librt-0.8.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:a28f2612ab566b17f3698b0da021ff9960610301607c9a5e8eaca62f5e1c350a", size = 66516 }, + { url = "https://files.pythonhosted.org/packages/69/f1/46375e71441c43e8ae335905e069f1c54febee63a146278bcee8782c84fd/librt-0.8.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:60a78b694c9aee2a0f1aaeaa7d101cf713e92e8423a941d2897f4fa37908dab9", size = 68634 }, + { url = "https://files.pythonhosted.org/packages/0a/33/c510de7f93bf1fa19e13423a606d8189a02624a800710f6e6a0a0f0784b3/librt-0.8.1-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:758509ea3f1eba2a57558e7e98f4659d0ea7670bff49673b0dde18a3c7e6c0eb", size = 198941 }, + { url = "https://files.pythonhosted.org/packages/dd/36/e725903416409a533d92398e88ce665476f275081d0d7d42f9c4951999e5/librt-0.8.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:039b9f2c506bd0ab0f8725aa5ba339c6f0cd19d3b514b50d134789809c24285d", size = 209991 }, + { url = "https://files.pythonhosted.org/packages/30/7a/8d908a152e1875c9f8eac96c97a480df425e657cdb47854b9efaa4998889/librt-0.8.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5bb54f1205a3a6ab41a6fd71dfcdcbd278670d3a90ca502a30d9da583105b6f7", size = 224476 }, + { url = "https://files.pythonhosted.org/packages/a8/b8/a22c34f2c485b8903a06f3fe3315341fe6876ef3599792344669db98fcff/librt-0.8.1-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:05bd41cdee35b0c59c259f870f6da532a2c5ca57db95b5f23689fcb5c9e42440", size = 217518 }, + { url = "https://files.pythonhosted.org/packages/79/6f/5c6fea00357e4f82ba44f81dbfb027921f1ab10e320d4a64e1c408d035d9/librt-0.8.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:adfab487facf03f0d0857b8710cf82d0704a309d8ffc33b03d9302b4c64e91a9", size = 225116 }, + { url = "https://files.pythonhosted.org/packages/f2/a0/95ced4e7b1267fe1e2720a111685bcddf0e781f7e9e0ce59d751c44dcfe5/librt-0.8.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:153188fe98a72f206042be10a2c6026139852805215ed9539186312d50a8e972", size = 217751 }, + { url = "https://files.pythonhosted.org/packages/93/c2/0517281cb4d4101c27ab59472924e67f55e375bc46bedae94ac6dc6e1902/librt-0.8.1-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:dd3c41254ee98604b08bd5b3af5bf0a89740d4ee0711de95b65166bf44091921", size = 218378 }, + { url = "https://files.pythonhosted.org/packages/43/e8/37b3ac108e8976888e559a7b227d0ceac03c384cfd3e7a1c2ee248dbae79/librt-0.8.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e0d138c7ae532908cbb342162b2611dbd4d90c941cd25ab82084aaf71d2c0bd0", size = 241199 }, + { url = "https://files.pythonhosted.org/packages/4b/5b/35812d041c53967fedf551a39399271bbe4257e681236a2cf1a69c8e7fa1/librt-0.8.1-cp312-cp312-win32.whl", hash = "sha256:43353b943613c5d9c49a25aaffdba46f888ec354e71e3529a00cca3f04d66a7a", size = 54917 }, + { url = "https://files.pythonhosted.org/packages/de/d1/fa5d5331b862b9775aaf2a100f5ef86854e5d4407f71bddf102f4421e034/librt-0.8.1-cp312-cp312-win_amd64.whl", hash = "sha256:ff8baf1f8d3f4b6b7257fcb75a501f2a5499d0dda57645baa09d4d0d34b19444", size = 62017 }, + { url = "https://files.pythonhosted.org/packages/c7/7c/c614252f9acda59b01a66e2ddfd243ed1c7e1deab0293332dfbccf862808/librt-0.8.1-cp312-cp312-win_arm64.whl", hash = "sha256:0f2ae3725904f7377e11cc37722d5d401e8b3d5851fb9273d7f4fe04f6b3d37d", size = 52441 }, + { url = "https://files.pythonhosted.org/packages/c5/3c/f614c8e4eaac7cbf2bbdf9528790b21d89e277ee20d57dc6e559c626105f/librt-0.8.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:7e6bad1cd94f6764e1e21950542f818a09316645337fd5ab9a7acc45d99a8f35", size = 66529 }, + { url = "https://files.pythonhosted.org/packages/ab/96/5836544a45100ae411eda07d29e3d99448e5258b6e9c8059deb92945f5c2/librt-0.8.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cf450f498c30af55551ba4f66b9123b7185362ec8b625a773b3d39aa1a717583", size = 68669 }, + { url = "https://files.pythonhosted.org/packages/06/53/f0b992b57af6d5531bf4677d75c44f095f2366a1741fb695ee462ae04b05/librt-0.8.1-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:eca45e982fa074090057132e30585a7e8674e9e885d402eae85633e9f449ce6c", size = 199279 }, + { url = "https://files.pythonhosted.org/packages/f3/ad/4848cc16e268d14280d8168aee4f31cea92bbd2b79ce33d3e166f2b4e4fc/librt-0.8.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0c3811485fccfda840861905b8c70bba5ec094e02825598bb9d4ca3936857a04", size = 210288 }, + { url = "https://files.pythonhosted.org/packages/52/05/27fdc2e95de26273d83b96742d8d3b7345f2ea2bdbd2405cc504644f2096/librt-0.8.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5e4af413908f77294605e28cfd98063f54b2c790561383971d2f52d113d9c363", size = 224809 }, + { url = "https://files.pythonhosted.org/packages/7a/d0/78200a45ba3240cb042bc597d6f2accba9193a2c57d0356268cbbe2d0925/librt-0.8.1-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:5212a5bd7fae98dae95710032902edcd2ec4dc994e883294f75c857b83f9aba0", size = 218075 }, + { url = "https://files.pythonhosted.org/packages/af/72/a210839fa74c90474897124c064ffca07f8d4b347b6574d309686aae7ca6/librt-0.8.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e692aa2d1d604e6ca12d35e51fdc36f4cda6345e28e36374579f7ef3611b3012", size = 225486 }, + { url = "https://files.pythonhosted.org/packages/a3/c1/a03cc63722339ddbf087485f253493e2b013039f5b707e8e6016141130fa/librt-0.8.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:4be2a5c926b9770c9e08e717f05737a269b9d0ebc5d2f0060f0fe3fe9ce47acb", size = 218219 }, + { url = "https://files.pythonhosted.org/packages/58/f5/fff6108af0acf941c6f274a946aea0e484bd10cd2dc37610287ce49388c5/librt-0.8.1-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:fd1a720332ea335ceb544cf0a03f81df92abd4bb887679fd1e460976b0e6214b", size = 218750 }, + { url = "https://files.pythonhosted.org/packages/71/67/5a387bfef30ec1e4b4f30562c8586566faf87e47d696768c19feb49e3646/librt-0.8.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:93c2af9e01e0ef80d95ae3c720be101227edae5f2fe7e3dc63d8857fadfc5a1d", size = 241624 }, + { url = "https://files.pythonhosted.org/packages/d4/be/24f8502db11d405232ac1162eb98069ca49c3306c1d75c6ccc61d9af8789/librt-0.8.1-cp313-cp313-win32.whl", hash = "sha256:086a32dbb71336627e78cc1d6ee305a68d038ef7d4c39aaff41ae8c9aa46e91a", size = 54969 }, + { url = "https://files.pythonhosted.org/packages/5c/73/c9fdf6cb2a529c1a092ce769a12d88c8cca991194dfe641b6af12fa964d2/librt-0.8.1-cp313-cp313-win_amd64.whl", hash = "sha256:e11769a1dbda4da7b00a76cfffa67aa47cfa66921d2724539eee4b9ede780b79", size = 62000 }, + { url = "https://files.pythonhosted.org/packages/d3/97/68f80ca3ac4924f250cdfa6e20142a803e5e50fca96ef5148c52ee8c10ea/librt-0.8.1-cp313-cp313-win_arm64.whl", hash = "sha256:924817ab3141aca17893386ee13261f1d100d1ef410d70afe4389f2359fea4f0", size = 52495 }, + { url = "https://files.pythonhosted.org/packages/c9/6a/907ef6800f7bca71b525a05f1839b21f708c09043b1c6aa77b6b827b3996/librt-0.8.1-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:6cfa7fe54fd4d1f47130017351a959fe5804bda7a0bc7e07a2cdbc3fdd28d34f", size = 66081 }, + { url = "https://files.pythonhosted.org/packages/1b/18/25e991cd5640c9fb0f8d91b18797b29066b792f17bf8493da183bf5caabe/librt-0.8.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:228c2409c079f8c11fb2e5d7b277077f694cb93443eb760e00b3b83cb8b3176c", size = 68309 }, + { url = "https://files.pythonhosted.org/packages/a4/36/46820d03f058cfb5a9de5940640ba03165ed8aded69e0733c417bb04df34/librt-0.8.1-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:7aae78ab5e3206181780e56912d1b9bb9f90a7249ce12f0e8bf531d0462dd0fc", size = 196804 }, + { url = "https://files.pythonhosted.org/packages/59/18/5dd0d3b87b8ff9c061849fbdb347758d1f724b9a82241aa908e0ec54ccd0/librt-0.8.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:172d57ec04346b047ca6af181e1ea4858086c80bdf455f61994c4aa6fc3f866c", size = 206907 }, + { url = "https://files.pythonhosted.org/packages/d1/96/ef04902aad1424fd7299b62d1890e803e6ab4018c3044dca5922319c4b97/librt-0.8.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6b1977c4ea97ce5eb7755a78fae68d87e4102e4aaf54985e8b56806849cc06a3", size = 221217 }, + { url = "https://files.pythonhosted.org/packages/6d/ff/7e01f2dda84a8f5d280637a2e5827210a8acca9a567a54507ef1c75b342d/librt-0.8.1-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:10c42e1f6fd06733ef65ae7bebce2872bcafd8d6e6b0a08fe0a05a23b044fb14", size = 214622 }, + { url = "https://files.pythonhosted.org/packages/1e/8c/5b093d08a13946034fed57619742f790faf77058558b14ca36a6e331161e/librt-0.8.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:4c8dfa264b9193c4ee19113c985c95f876fae5e51f731494fc4e0cf594990ba7", size = 221987 }, + { url = "https://files.pythonhosted.org/packages/d3/cc/86b0b3b151d40920ad45a94ce0171dec1aebba8a9d72bb3fa00c73ab25dd/librt-0.8.1-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:01170b6729a438f0dedc4a26ed342e3dc4f02d1000b4b19f980e1877f0c297e6", size = 215132 }, + { url = "https://files.pythonhosted.org/packages/fc/be/8588164a46edf1e69858d952654e216a9a91174688eeefb9efbb38a9c799/librt-0.8.1-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:7b02679a0d783bdae30d443025b94465d8c3dc512f32f5b5031f93f57ac32071", size = 215195 }, + { url = "https://files.pythonhosted.org/packages/f5/f2/0b9279bea735c734d69344ecfe056c1ba211694a72df10f568745c899c76/librt-0.8.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:190b109bb69592a3401fe1ffdea41a2e73370ace2ffdc4a0e8e2b39cdea81b78", size = 237946 }, + { url = "https://files.pythonhosted.org/packages/e9/cc/5f2a34fbc8aeb35314a3641f9956fa9051a947424652fad9882be7a97949/librt-0.8.1-cp314-cp314-win32.whl", hash = "sha256:e70a57ecf89a0f64c24e37f38d3fe217a58169d2fe6ed6d70554964042474023", size = 50689 }, + { url = "https://files.pythonhosted.org/packages/a0/76/cd4d010ab2147339ca2b93e959c3686e964edc6de66ddacc935c325883d7/librt-0.8.1-cp314-cp314-win_amd64.whl", hash = "sha256:7e2f3edca35664499fbb36e4770650c4bd4a08abc1f4458eab9df4ec56389730", size = 57875 }, + { url = "https://files.pythonhosted.org/packages/84/0f/2143cb3c3ca48bd3379dcd11817163ca50781927c4537345d608b5045998/librt-0.8.1-cp314-cp314-win_arm64.whl", hash = "sha256:0d2f82168e55ddefd27c01c654ce52379c0750ddc31ee86b4b266bcf4d65f2a3", size = 48058 }, + { url = "https://files.pythonhosted.org/packages/d2/0e/9b23a87e37baf00311c3efe6b48d6b6c168c29902dfc3f04c338372fd7db/librt-0.8.1-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:2c74a2da57a094bd48d03fa5d196da83d2815678385d2978657499063709abe1", size = 68313 }, + { url = "https://files.pythonhosted.org/packages/db/9a/859c41e5a4f1c84200a7d2b92f586aa27133c8243b6cac9926f6e54d01b9/librt-0.8.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:a355d99c4c0d8e5b770313b8b247411ed40949ca44e33e46a4789b9293a907ee", size = 70994 }, + { url = "https://files.pythonhosted.org/packages/4c/28/10605366ee599ed34223ac2bf66404c6fb59399f47108215d16d5ad751a8/librt-0.8.1-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:2eb345e8b33fb748227409c9f1233d4df354d6e54091f0e8fc53acdb2ffedeb7", size = 220770 }, + { url = "https://files.pythonhosted.org/packages/af/8d/16ed8fd452dafae9c48d17a6bc1ee3e818fd40ef718d149a8eff2c9f4ea2/librt-0.8.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9be2f15e53ce4e83cc08adc29b26fb5978db62ef2a366fbdf716c8a6c8901040", size = 235409 }, + { url = "https://files.pythonhosted.org/packages/89/1b/7bdf3e49349c134b25db816e4a3db6b94a47ac69d7d46b1e682c2c4949be/librt-0.8.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:785ae29c1f5c6e7c2cde2c7c0e148147f4503da3abc5d44d482068da5322fd9e", size = 246473 }, + { url = "https://files.pythonhosted.org/packages/4e/8a/91fab8e4fd2a24930a17188c7af5380eb27b203d72101c9cc000dbdfd95a/librt-0.8.1-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:1d3a7da44baf692f0c6aeb5b2a09c5e6fc7a703bca9ffa337ddd2e2da53f7732", size = 238866 }, + { url = "https://files.pythonhosted.org/packages/b9/e0/c45a098843fc7c07e18a7f8a24ca8496aecbf7bdcd54980c6ca1aaa79a8e/librt-0.8.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:5fc48998000cbc39ec0d5311312dda93ecf92b39aaf184c5e817d5d440b29624", size = 250248 }, + { url = "https://files.pythonhosted.org/packages/82/30/07627de23036640c952cce0c1fe78972e77d7d2f8fd54fa5ef4554ff4a56/librt-0.8.1-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:e96baa6820280077a78244b2e06e416480ed859bbd8e5d641cf5742919d8beb4", size = 240629 }, + { url = "https://files.pythonhosted.org/packages/fb/c1/55bfe1ee3542eba055616f9098eaf6eddb966efb0ca0f44eaa4aba327307/librt-0.8.1-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:31362dbfe297b23590530007062c32c6f6176f6099646bb2c95ab1b00a57c382", size = 239615 }, + { url = "https://files.pythonhosted.org/packages/2b/39/191d3d28abc26c9099b19852e6c99f7f6d400b82fa5a4e80291bd3803e19/librt-0.8.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:cc3656283d11540ab0ea01978378e73e10002145117055e03722417aeab30994", size = 263001 }, + { url = "https://files.pythonhosted.org/packages/b9/eb/7697f60fbe7042ab4e88f4ee6af496b7f222fffb0a4e3593ef1f29f81652/librt-0.8.1-cp314-cp314t-win32.whl", hash = "sha256:738f08021b3142c2918c03692608baed43bc51144c29e35807682f8070ee2a3a", size = 51328 }, + { url = "https://files.pythonhosted.org/packages/7c/72/34bf2eb7a15414a23e5e70ecb9440c1d3179f393d9349338a91e2781c0fb/librt-0.8.1-cp314-cp314t-win_amd64.whl", hash = "sha256:89815a22daf9c51884fb5dbe4f1ef65ee6a146e0b6a8df05f753e2e4a9359bf4", size = 58722 }, + { url = "https://files.pythonhosted.org/packages/b2/c8/d148e041732d631fc76036f8b30fae4e77b027a1e95b7a84bb522481a940/librt-0.8.1-cp314-cp314t-win_arm64.whl", hash = "sha256:bf512a71a23504ed08103a13c941f763db13fb11177beb3d9244c98c29fb4a61", size = 48755 }, +] + +[[package]] +name = "logfire" +version = "4.31.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "executing" }, + { name = "opentelemetry-exporter-otlp-proto-http" }, + { name = "opentelemetry-instrumentation" }, + { name = "opentelemetry-sdk" }, + { name = "protobuf" }, + { name = "rich" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/61/fc/21f923243d8c3ca2ebfa97de46970ced734e66ac634c1c35b6abb41300f1/logfire-4.31.0.tar.gz", hash = "sha256:361bfda17c9d70ada5d220211033bae06b871ddac9d5b06978bc0ceca6b8e658", size = 1080609 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/49/1a/8c860e35bf847ac0d647d94bad89dccbb66cbcafdd61d8334f8cc7cfdd58/logfire-4.31.0-py3-none-any.whl", hash = "sha256:49fad38b5e6f199a98e9c8814e860c8a42595bb81479b52a20413e53ee475b72", size = 308896 }, +] + +[package.optional-dependencies] +httpx = [ + { name = "opentelemetry-instrumentation-httpx" }, +] + +[[package]] +name = "logfire-api" +version = "4.31.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/08/a2/8d5a3c1c282d5f2bd9f5e9ddd5288d1414a53301ce389af9016b6d82bd50/logfire_api-4.31.0.tar.gz", hash = "sha256:fc4b01257ebd4ce297ad374ed201eb1a9213b999f6ae6df45cfca5bd0ef378f8", size = 77838 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/26/27/9372b7492b3e146908d520f8599909311cd930175801ad219171fafc6f3e/logfire_api-4.31.0-py3-none-any.whl", hash = "sha256:3c1f502fd4eb8ef0996427a5cf275fd8f327f38600650a1f53071a8171c812db", size = 123402 }, +] + +[[package]] +name = "markdown-it-py" +version = "4.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mdurl" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/5b/f5/4ec618ed16cc4f8fb3b701563655a69816155e79e24a17b651541804721d/markdown_it_py-4.0.0.tar.gz", hash = "sha256:cb0a2b4aa34f932c007117b194e945bd74e0ec24133ceb5bac59009cda1cb9f3", size = 73070 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/94/54/e7d793b573f298e1c9013b8c4dade17d481164aa517d1d7148619c2cedbf/markdown_it_py-4.0.0-py3-none-any.whl", hash = "sha256:87327c59b172c5011896038353a81343b6754500a08cd7a4973bb48c6d578147", size = 87321 }, +] + +[[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 } +wheels = [ + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { url = "https://files.pythonhosted.org/packages/2f/e1/78ee7a023dac597a5825441ebd17170785a9dab23de95d2c7508ade94e0e/markupsafe-3.0.3-cp312-cp312-win32.whl", hash = "sha256:d88b440e37a16e651bda4c7c2b930eb586fd15ca7406cb39e211fcff3bf3017d", size = 14540 }, + { url = "https://files.pythonhosted.org/packages/aa/5b/bec5aa9bbbb2c946ca2733ef9c4ca91c91b6a24580193e891b5f7dbe8e1e/markupsafe-3.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:26a5784ded40c9e318cfc2bdb30fe164bdb8665ded9cd64d500a34fb42067b1c", size = 15105 }, + { url = "https://files.pythonhosted.org/packages/e5/f1/216fc1bbfd74011693a4fd837e7026152e89c4bcf3e77b6692fba9923123/markupsafe-3.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:35add3b638a5d900e807944a078b51922212fb3dedb01633a8defc4b01a3c85f", size = 13906 }, + { url = "https://files.pythonhosted.org/packages/38/2f/907b9c7bbba283e68f20259574b13d005c121a0fa4c175f9bed27c4597ff/markupsafe-3.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e1cf1972137e83c5d4c136c43ced9ac51d0e124706ee1c8aa8532c1287fa8795", size = 11622 }, + { url = "https://files.pythonhosted.org/packages/9c/d9/5f7756922cdd676869eca1c4e3c0cd0df60ed30199ffd775e319089cb3ed/markupsafe-3.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:116bb52f642a37c115f517494ea5feb03889e04df47eeff5b130b1808ce7c219", size = 12029 }, + { url = "https://files.pythonhosted.org/packages/00/07/575a68c754943058c78f30db02ee03a64b3c638586fba6a6dd56830b30a3/markupsafe-3.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:133a43e73a802c5562be9bbcd03d090aa5a1fe899db609c29e8c8d815c5f6de6", size = 24374 }, + { url = "https://files.pythonhosted.org/packages/a9/21/9b05698b46f218fc0e118e1f8168395c65c8a2c750ae2bab54fc4bd4e0e8/markupsafe-3.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ccfcd093f13f0f0b7fdd0f198b90053bf7b2f02a3927a30e63f3ccc9df56b676", size = 22980 }, + { url = "https://files.pythonhosted.org/packages/7f/71/544260864f893f18b6827315b988c146b559391e6e7e8f7252839b1b846a/markupsafe-3.0.3-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:509fa21c6deb7a7a273d629cf5ec029bc209d1a51178615ddf718f5918992ab9", size = 21990 }, + { url = "https://files.pythonhosted.org/packages/c2/28/b50fc2f74d1ad761af2f5dcce7492648b983d00a65b8c0e0cb457c82ebbe/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a4afe79fb3de0b7097d81da19090f4df4f8d3a2b3adaa8764138aac2e44f3af1", size = 23784 }, + { url = "https://files.pythonhosted.org/packages/ed/76/104b2aa106a208da8b17a2fb72e033a5a9d7073c68f7e508b94916ed47a9/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:795e7751525cae078558e679d646ae45574b47ed6e7771863fcc079a6171a0fc", size = 21588 }, + { url = "https://files.pythonhosted.org/packages/b5/99/16a5eb2d140087ebd97180d95249b00a03aa87e29cc224056274f2e45fd6/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8485f406a96febb5140bfeca44a73e3ce5116b2501ac54fe953e488fb1d03b12", size = 23041 }, + { url = "https://files.pythonhosted.org/packages/19/bc/e7140ed90c5d61d77cea142eed9f9c303f4c4806f60a1044c13e3f1471d0/markupsafe-3.0.3-cp313-cp313-win32.whl", hash = "sha256:bdd37121970bfd8be76c5fb069c7751683bdf373db1ed6c010162b2a130248ed", size = 14543 }, + { url = "https://files.pythonhosted.org/packages/05/73/c4abe620b841b6b791f2edc248f556900667a5a1cf023a6646967ae98335/markupsafe-3.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:9a1abfdc021a164803f4d485104931fb8f8c1efd55bc6b748d2f5774e78b62c5", size = 15113 }, + { url = "https://files.pythonhosted.org/packages/f0/3a/fa34a0f7cfef23cf9500d68cb7c32dd64ffd58a12b09225fb03dd37d5b80/markupsafe-3.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:7e68f88e5b8799aa49c85cd116c932a1ac15caaa3f5db09087854d218359e485", size = 13911 }, + { url = "https://files.pythonhosted.org/packages/e4/d7/e05cd7efe43a88a17a37b3ae96e79a19e846f3f456fe79c57ca61356ef01/markupsafe-3.0.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:218551f6df4868a8d527e3062d0fb968682fe92054e89978594c28e642c43a73", size = 11658 }, + { url = "https://files.pythonhosted.org/packages/99/9e/e412117548182ce2148bdeacdda3bb494260c0b0184360fe0d56389b523b/markupsafe-3.0.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:3524b778fe5cfb3452a09d31e7b5adefeea8c5be1d43c4f810ba09f2ceb29d37", size = 12066 }, + { url = "https://files.pythonhosted.org/packages/bc/e6/fa0ffcda717ef64a5108eaa7b4f5ed28d56122c9a6d70ab8b72f9f715c80/markupsafe-3.0.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4e885a3d1efa2eadc93c894a21770e4bc67899e3543680313b09f139e149ab19", size = 25639 }, + { url = "https://files.pythonhosted.org/packages/96/ec/2102e881fe9d25fc16cb4b25d5f5cde50970967ffa5dddafdb771237062d/markupsafe-3.0.3-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8709b08f4a89aa7586de0aadc8da56180242ee0ada3999749b183aa23df95025", size = 23569 }, + { url = "https://files.pythonhosted.org/packages/4b/30/6f2fce1f1f205fc9323255b216ca8a235b15860c34b6798f810f05828e32/markupsafe-3.0.3-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:b8512a91625c9b3da6f127803b166b629725e68af71f8184ae7e7d54686a56d6", size = 23284 }, + { url = "https://files.pythonhosted.org/packages/58/47/4a0ccea4ab9f5dcb6f79c0236d954acb382202721e704223a8aafa38b5c8/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9b79b7a16f7fedff2495d684f2b59b0457c3b493778c9eed31111be64d58279f", size = 24801 }, + { url = "https://files.pythonhosted.org/packages/6a/70/3780e9b72180b6fecb83a4814d84c3bf4b4ae4bf0b19c27196104149734c/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:12c63dfb4a98206f045aa9563db46507995f7ef6d83b2f68eda65c307c6829eb", size = 22769 }, + { url = "https://files.pythonhosted.org/packages/98/c5/c03c7f4125180fc215220c035beac6b9cb684bc7a067c84fc69414d315f5/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:8f71bc33915be5186016f675cd83a1e08523649b0e33efdb898db577ef5bb009", size = 23642 }, + { url = "https://files.pythonhosted.org/packages/80/d6/2d1b89f6ca4bff1036499b1e29a1d02d282259f3681540e16563f27ebc23/markupsafe-3.0.3-cp313-cp313t-win32.whl", hash = "sha256:69c0b73548bc525c8cb9a251cddf1931d1db4d2258e9599c28c07ef3580ef354", size = 14612 }, + { url = "https://files.pythonhosted.org/packages/2b/98/e48a4bfba0a0ffcf9925fe2d69240bfaa19c6f7507b8cd09c70684a53c1e/markupsafe-3.0.3-cp313-cp313t-win_amd64.whl", hash = "sha256:1b4b79e8ebf6b55351f0d91fe80f893b4743f104bff22e90697db1590e47a218", size = 15200 }, + { url = "https://files.pythonhosted.org/packages/0e/72/e3cc540f351f316e9ed0f092757459afbc595824ca724cbc5a5d4263713f/markupsafe-3.0.3-cp313-cp313t-win_arm64.whl", hash = "sha256:ad2cf8aa28b8c020ab2fc8287b0f823d0a7d8630784c31e9ee5edea20f406287", size = 13973 }, + { url = "https://files.pythonhosted.org/packages/33/8a/8e42d4838cd89b7dde187011e97fe6c3af66d8c044997d2183fbd6d31352/markupsafe-3.0.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:eaa9599de571d72e2daf60164784109f19978b327a3910d3e9de8c97b5b70cfe", size = 11619 }, + { url = "https://files.pythonhosted.org/packages/b5/64/7660f8a4a8e53c924d0fa05dc3a55c9cee10bbd82b11c5afb27d44b096ce/markupsafe-3.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c47a551199eb8eb2121d4f0f15ae0f923d31350ab9280078d1e5f12b249e0026", size = 12029 }, + { url = "https://files.pythonhosted.org/packages/da/ef/e648bfd021127bef5fa12e1720ffed0c6cbb8310c8d9bea7266337ff06de/markupsafe-3.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f34c41761022dd093b4b6896d4810782ffbabe30f2d443ff5f083e0cbbb8c737", size = 24408 }, + { url = "https://files.pythonhosted.org/packages/41/3c/a36c2450754618e62008bf7435ccb0f88053e07592e6028a34776213d877/markupsafe-3.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:457a69a9577064c05a97c41f4e65148652db078a3a509039e64d3467b9e7ef97", size = 23005 }, + { url = "https://files.pythonhosted.org/packages/bc/20/b7fdf89a8456b099837cd1dc21974632a02a999ec9bf7ca3e490aacd98e7/markupsafe-3.0.3-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e8afc3f2ccfa24215f8cb28dcf43f0113ac3c37c2f0f0806d8c70e4228c5cf4d", size = 22048 }, + { url = "https://files.pythonhosted.org/packages/9a/a7/591f592afdc734f47db08a75793a55d7fbcc6902a723ae4cfbab61010cc5/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:ec15a59cf5af7be74194f7ab02d0f59a62bdcf1a537677ce67a2537c9b87fcda", size = 23821 }, + { url = "https://files.pythonhosted.org/packages/7d/33/45b24e4f44195b26521bc6f1a82197118f74df348556594bd2262bda1038/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:0eb9ff8191e8498cca014656ae6b8d61f39da5f95b488805da4bb029cccbfbaf", size = 21606 }, + { url = "https://files.pythonhosted.org/packages/ff/0e/53dfaca23a69fbfbbf17a4b64072090e70717344c52eaaaa9c5ddff1e5f0/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:2713baf880df847f2bece4230d4d094280f4e67b1e813eec43b4c0e144a34ffe", size = 23043 }, + { url = "https://files.pythonhosted.org/packages/46/11/f333a06fc16236d5238bfe74daccbca41459dcd8d1fa952e8fbd5dccfb70/markupsafe-3.0.3-cp314-cp314-win32.whl", hash = "sha256:729586769a26dbceff69f7a7dbbf59ab6572b99d94576a5592625d5b411576b9", size = 14747 }, + { url = "https://files.pythonhosted.org/packages/28/52/182836104b33b444e400b14f797212f720cbc9ed6ba34c800639d154e821/markupsafe-3.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:bdc919ead48f234740ad807933cdf545180bfbe9342c2bb451556db2ed958581", size = 15341 }, + { url = "https://files.pythonhosted.org/packages/6f/18/acf23e91bd94fd7b3031558b1f013adfa21a8e407a3fdb32745538730382/markupsafe-3.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:5a7d5dc5140555cf21a6fefbdbf8723f06fcd2f63ef108f2854de715e4422cb4", size = 14073 }, + { url = "https://files.pythonhosted.org/packages/3c/f0/57689aa4076e1b43b15fdfa646b04653969d50cf30c32a102762be2485da/markupsafe-3.0.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:1353ef0c1b138e1907ae78e2f6c63ff67501122006b0f9abad68fda5f4ffc6ab", size = 11661 }, + { url = "https://files.pythonhosted.org/packages/89/c3/2e67a7ca217c6912985ec766c6393b636fb0c2344443ff9d91404dc4c79f/markupsafe-3.0.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:1085e7fbddd3be5f89cc898938f42c0b3c711fdcb37d75221de2666af647c175", size = 12069 }, + { url = "https://files.pythonhosted.org/packages/f0/00/be561dce4e6ca66b15276e184ce4b8aec61fe83662cce2f7d72bd3249d28/markupsafe-3.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1b52b4fb9df4eb9ae465f8d0c228a00624de2334f216f178a995ccdcf82c4634", size = 25670 }, + { url = "https://files.pythonhosted.org/packages/50/09/c419f6f5a92e5fadde27efd190eca90f05e1261b10dbd8cbcb39cd8ea1dc/markupsafe-3.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50", size = 23598 }, + { url = "https://files.pythonhosted.org/packages/22/44/a0681611106e0b2921b3033fc19bc53323e0b50bc70cffdd19f7d679bb66/markupsafe-3.0.3-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f190daf01f13c72eac4efd5c430a8de82489d9cff23c364c3ea822545032993e", size = 23261 }, + { url = "https://files.pythonhosted.org/packages/5f/57/1b0b3f100259dc9fffe780cfb60d4be71375510e435efec3d116b6436d43/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e56b7d45a839a697b5eb268c82a71bd8c7f6c94d6fd50c3d577fa39a9f1409f5", size = 24835 }, + { url = "https://files.pythonhosted.org/packages/26/6a/4bf6d0c97c4920f1597cc14dd720705eca0bf7c787aebc6bb4d1bead5388/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:f3e98bb3798ead92273dc0e5fd0f31ade220f59a266ffd8a4f6065e0a3ce0523", size = 22733 }, + { url = "https://files.pythonhosted.org/packages/14/c7/ca723101509b518797fedc2fdf79ba57f886b4aca8a7d31857ba3ee8281f/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:5678211cb9333a6468fb8d8be0305520aa073f50d17f089b5b4b477ea6e67fdc", size = 23672 }, + { url = "https://files.pythonhosted.org/packages/fb/df/5bd7a48c256faecd1d36edc13133e51397e41b73bb77e1a69deab746ebac/markupsafe-3.0.3-cp314-cp314t-win32.whl", hash = "sha256:915c04ba3851909ce68ccc2b8e2cd691618c4dc4c4232fb7982bca3f41fd8c3d", size = 14819 }, + { url = "https://files.pythonhosted.org/packages/1a/8a/0402ba61a2f16038b48b39bccca271134be00c5c9f0f623208399333c448/markupsafe-3.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4faffd047e07c38848ce017e8725090413cd80cbc23d86e55c587bf979e579c9", size = 15426 }, + { url = "https://files.pythonhosted.org/packages/70/bc/6f1c2f612465f5fa89b95bead1f44dcb607670fd42891d8fdcd5d039f4f4/markupsafe-3.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:32001d6a8fc98c8cb5c947787c5d08b0a50663d139f1305bac5885d98d9b40fa", size = 14146 }, +] + +[[package]] +name = "mcp" +version = "1.27.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "httpx" }, + { name = "httpx-sse" }, + { name = "jsonschema" }, + { name = "pydantic" }, + { name = "pydantic-settings" }, + { name = "pyjwt", extra = ["crypto"] }, + { name = "python-multipart" }, + { name = "pywin32", marker = "sys_platform == 'win32'" }, + { name = "sse-starlette" }, + { name = "starlette" }, + { name = "typing-extensions" }, + { name = "typing-inspection" }, + { name = "uvicorn", marker = "sys_platform != 'emscripten'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8b/eb/c0cfc62075dc6e1ec1c64d352ae09ac051d9334311ed226f1f425312848a/mcp-1.27.0.tar.gz", hash = "sha256:d3dc35a7eec0d458c1da4976a48f982097ddaab87e278c5511d5a4a56e852b83", size = 607509 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9c/46/f6b4ad632c67ef35209a66127e4bddc95759649dd595f71f13fba11bdf9a/mcp-1.27.0-py3-none-any.whl", hash = "sha256:5ce1fa81614958e267b21fb2aa34e0aea8e2c6ede60d52aba45fd47246b4d741", size = 215967 }, +] + +[[package]] +name = "mdurl" +version = "0.1.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d6/54/cfe61301667036ec958cb99bd3efefba235e65cdeb9c84d24a8293ba1d90/mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba", size = 8729 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", size = 9979 }, +] + +[[package]] +name = "mistralai" +version = "2.2.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "eval-type-backport" }, + { name = "httpx" }, + { name = "jsonpath-python" }, + { name = "opentelemetry-api" }, + { name = "opentelemetry-semantic-conventions" }, + { name = "pydantic" }, + { name = "python-dateutil" }, + { name = "typing-inspection" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/fc/d0/229ac07a67a9f4488d13f7a0080471d82f22dc1cdad7bf6b748d27a00d1a/mistralai-2.2.0.tar.gz", hash = "sha256:48abfa247ea5a888400ee294a5c1e090ae7e1445cc8cd008c120ae1e3b8eb9eb", size = 385567 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/db/96/91c8225e1517b728543fcad7bc789391aa22452beb8d88edfaf4111cc9eb/mistralai-2.2.0-py3-none-any.whl", hash = "sha256:9e0cea19eb5281428010c9a220f186e5db0993cfe88f8855ef9d69291956f40b", size = 924713 }, +] + +[[package]] +name = "more-itertools" +version = "10.8.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ea/5d/38b681d3fce7a266dd9ab73c66959406d565b3e85f21d5e66e1181d93721/more_itertools-10.8.0.tar.gz", hash = "sha256:f638ddf8a1a0d134181275fb5d58b086ead7c6a72429ad725c67503f13ba30bd", size = 137431 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a4/8e/469e5a4a2f5855992e425f3cb33804cc07bf18d48f2db061aec61ce50270/more_itertools-10.8.0-py3-none-any.whl", hash = "sha256:52d4362373dcf7c52546bc4af9a86ee7c4579df9a8dc268be0a2f949d376cc9b", size = 69667 }, +] + +[[package]] +name = "multidict" +version = "6.7.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/1a/c2/c2d94cbe6ac1753f3fc980da97b3d930efe1da3af3c9f5125354436c073d/multidict-6.7.1.tar.gz", hash = "sha256:ec6652a1bee61c53a3e5776b6049172c53b6aaba34f18c9ad04f82712bac623d", size = 102010 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8d/9c/f20e0e2cf80e4b2e4b1c365bf5fe104ee633c751a724246262db8f1a0b13/multidict-6.7.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:a90f75c956e32891a4eda3639ce6dd86e87105271f43d43442a3aedf3cddf172", size = 76893 }, + { url = "https://files.pythonhosted.org/packages/fe/cf/18ef143a81610136d3da8193da9d80bfe1cb548a1e2d1c775f26b23d024a/multidict-6.7.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:3fccb473e87eaa1382689053e4a4618e7ba7b9b9b8d6adf2027ee474597128cd", size = 45456 }, + { url = "https://files.pythonhosted.org/packages/a9/65/1caac9d4cd32e8433908683446eebc953e82d22b03d10d41a5f0fefe991b/multidict-6.7.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b0fa96985700739c4c7853a43c0b3e169360d6855780021bfc6d0f1ce7c123e7", size = 43872 }, + { url = "https://files.pythonhosted.org/packages/cf/3b/d6bd75dc4f3ff7c73766e04e705b00ed6dbbaccf670d9e05a12b006f5a21/multidict-6.7.1-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:cb2a55f408c3043e42b40cc8eecd575afa27b7e0b956dfb190de0f8499a57a53", size = 251018 }, + { url = "https://files.pythonhosted.org/packages/fd/80/c959c5933adedb9ac15152e4067c702a808ea183a8b64cf8f31af8ad3155/multidict-6.7.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:eb0ce7b2a32d09892b3dd6cc44877a0d02a33241fafca5f25c8b6b62374f8b75", size = 258883 }, + { url = "https://files.pythonhosted.org/packages/86/85/7ed40adafea3d4f1c8b916e3b5cc3a8e07dfcdcb9cd72800f4ed3ca1b387/multidict-6.7.1-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:c3a32d23520ee37bf327d1e1a656fec76a2edd5c038bf43eddfa0572ec49c60b", size = 242413 }, + { url = "https://files.pythonhosted.org/packages/d2/57/b8565ff533e48595503c785f8361ff9a4fde4d67de25c207cd0ba3befd03/multidict-6.7.1-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:9c90fed18bffc0189ba814749fdcc102b536e83a9f738a9003e569acd540a733", size = 268404 }, + { url = "https://files.pythonhosted.org/packages/e0/50/9810c5c29350f7258180dfdcb2e52783a0632862eb334c4896ac717cebcb/multidict-6.7.1-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:da62917e6076f512daccfbbde27f46fed1c98fee202f0559adec8ee0de67f71a", size = 269456 }, + { url = "https://files.pythonhosted.org/packages/f3/8d/5e5be3ced1d12966fefb5c4ea3b2a5b480afcea36406559442c6e31d4a48/multidict-6.7.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bfde23ef6ed9db7eaee6c37dcec08524cb43903c60b285b172b6c094711b3961", size = 256322 }, + { url = "https://files.pythonhosted.org/packages/31/6e/d8a26d81ac166a5592782d208dd90dfdc0a7a218adaa52b45a672b46c122/multidict-6.7.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3758692429e4e32f1ba0df23219cd0b4fc0a52f476726fff9337d1a57676a582", size = 253955 }, + { url = "https://files.pythonhosted.org/packages/59/4c/7c672c8aad41534ba619bcd4ade7a0dc87ed6b8b5c06149b85d3dd03f0cd/multidict-6.7.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:398c1478926eca669f2fd6a5856b6de9c0acf23a2cb59a14c0ba5844fa38077e", size = 251254 }, + { url = "https://files.pythonhosted.org/packages/7b/bd/84c24de512cbafbdbc39439f74e967f19570ce7924e3007174a29c348916/multidict-6.7.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:c102791b1c4f3ab36ce4101154549105a53dc828f016356b3e3bcae2e3a039d3", size = 252059 }, + { url = "https://files.pythonhosted.org/packages/fa/ba/f5449385510825b73d01c2d4087bf6d2fccc20a2d42ac34df93191d3dd03/multidict-6.7.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:a088b62bd733e2ad12c50dad01b7d0166c30287c166e137433d3b410add807a6", size = 263588 }, + { url = "https://files.pythonhosted.org/packages/d7/11/afc7c677f68f75c84a69fe37184f0f82fce13ce4b92f49f3db280b7e92b3/multidict-6.7.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:3d51ff4785d58d3f6c91bdbffcb5e1f7ddfda557727043aa20d20ec4f65e324a", size = 259642 }, + { url = "https://files.pythonhosted.org/packages/2b/17/ebb9644da78c4ab36403739e0e6e0e30ebb135b9caf3440825001a0bddcb/multidict-6.7.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fc5907494fccf3e7d3f94f95c91d6336b092b5fc83811720fae5e2765890dfba", size = 251377 }, + { url = "https://files.pythonhosted.org/packages/ca/a4/840f5b97339e27846c46307f2530a2805d9d537d8b8bd416af031cad7fa0/multidict-6.7.1-cp312-cp312-win32.whl", hash = "sha256:28ca5ce2fd9716631133d0e9a9b9a745ad7f60bac2bccafb56aa380fc0b6c511", size = 41887 }, + { url = "https://files.pythonhosted.org/packages/80/31/0b2517913687895f5904325c2069d6a3b78f66cc641a86a2baf75a05dcbb/multidict-6.7.1-cp312-cp312-win_amd64.whl", hash = "sha256:fcee94dfbd638784645b066074b338bc9cc155d4b4bffa4adce1615c5a426c19", size = 46053 }, + { url = "https://files.pythonhosted.org/packages/0c/5b/aba28e4ee4006ae4c7df8d327d31025d760ffa992ea23812a601d226e682/multidict-6.7.1-cp312-cp312-win_arm64.whl", hash = "sha256:ba0a9fb644d0c1a2194cf7ffb043bd852cea63a57f66fbd33959f7dae18517bf", size = 43307 }, + { url = "https://files.pythonhosted.org/packages/f2/22/929c141d6c0dba87d3e1d38fbdf1ba8baba86b7776469f2bc2d3227a1e67/multidict-6.7.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:2b41f5fed0ed563624f1c17630cb9941cf2309d4df00e494b551b5f3e3d67a23", size = 76174 }, + { url = "https://files.pythonhosted.org/packages/c7/75/bc704ae15fee974f8fccd871305e254754167dce5f9e42d88a2def741a1d/multidict-6.7.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:84e61e3af5463c19b67ced91f6c634effb89ef8bfc5ca0267f954451ed4bb6a2", size = 45116 }, + { url = "https://files.pythonhosted.org/packages/79/76/55cd7186f498ed080a18440c9013011eb548f77ae1b297206d030eb1180a/multidict-6.7.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:935434b9853c7c112eee7ac891bc4cb86455aa631269ae35442cb316790c1445", size = 43524 }, + { url = "https://files.pythonhosted.org/packages/e9/3c/414842ef8d5a1628d68edee29ba0e5bcf235dbfb3ccd3ea303a7fe8c72ff/multidict-6.7.1-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:432feb25a1cb67fe82a9680b4d65fb542e4635cb3166cd9c01560651ad60f177", size = 249368 }, + { url = "https://files.pythonhosted.org/packages/f6/32/befed7f74c458b4a525e60519fe8d87eef72bb1e99924fa2b0f9d97a221e/multidict-6.7.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e82d14e3c948952a1a85503817e038cba5905a3352de76b9a465075d072fba23", size = 256952 }, + { url = "https://files.pythonhosted.org/packages/03/d6/c878a44ba877f366630c860fdf74bfb203c33778f12b6ac274936853c451/multidict-6.7.1-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:4cfb48c6ea66c83bcaaf7e4dfa7ec1b6bbcf751b7db85a328902796dfde4c060", size = 240317 }, + { url = "https://files.pythonhosted.org/packages/68/49/57421b4d7ad2e9e60e25922b08ceb37e077b90444bde6ead629095327a6f/multidict-6.7.1-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:1d540e51b7e8e170174555edecddbd5538105443754539193e3e1061864d444d", size = 267132 }, + { url = "https://files.pythonhosted.org/packages/b7/fe/ec0edd52ddbcea2a2e89e174f0206444a61440b40f39704e64dc807a70bd/multidict-6.7.1-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:273d23f4b40f3dce4d6c8a821c741a86dec62cded82e1175ba3d99be128147ed", size = 268140 }, + { url = "https://files.pythonhosted.org/packages/b0/73/6e1b01cbeb458807aa0831742232dbdd1fa92bfa33f52a3f176b4ff3dc11/multidict-6.7.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9d624335fd4fa1c08a53f8b4be7676ebde19cd092b3895c421045ca87895b429", size = 254277 }, + { url = "https://files.pythonhosted.org/packages/6a/b2/5fb8c124d7561a4974c342bc8c778b471ebbeb3cc17df696f034a7e9afe7/multidict-6.7.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:12fad252f8b267cc75b66e8fc51b3079604e8d43a75428ffe193cd9e2195dfd6", size = 252291 }, + { url = "https://files.pythonhosted.org/packages/5a/96/51d4e4e06bcce92577fcd488e22600bd38e4fd59c20cb49434d054903bd2/multidict-6.7.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:03ede2a6ffbe8ef936b92cb4529f27f42be7f56afcdab5ab739cd5f27fb1cbf9", size = 250156 }, + { url = "https://files.pythonhosted.org/packages/db/6b/420e173eec5fba721a50e2a9f89eda89d9c98fded1124f8d5c675f7a0c0f/multidict-6.7.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:90efbcf47dbe33dcf643a1e400d67d59abeac5db07dc3f27d6bdeae497a2198c", size = 249742 }, + { url = "https://files.pythonhosted.org/packages/44/a3/ec5b5bd98f306bc2aa297b8c6f11a46714a56b1e6ef5ebda50a4f5d7c5fb/multidict-6.7.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:5c4b9bfc148f5a91be9244d6264c53035c8a0dcd2f51f1c3c6e30e30ebaa1c84", size = 262221 }, + { url = "https://files.pythonhosted.org/packages/cd/f7/e8c0d0da0cd1e28d10e624604e1a36bcc3353aaebdfdc3a43c72bc683a12/multidict-6.7.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:401c5a650f3add2472d1d288c26deebc540f99e2fb83e9525007a74cd2116f1d", size = 258664 }, + { url = "https://files.pythonhosted.org/packages/52/da/151a44e8016dd33feed44f730bd856a66257c1ee7aed4f44b649fb7edeb3/multidict-6.7.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:97891f3b1b3ffbded884e2916cacf3c6fc87b66bb0dde46f7357404750559f33", size = 249490 }, + { url = "https://files.pythonhosted.org/packages/87/af/a3b86bf9630b732897f6fc3f4c4714b90aa4361983ccbdcd6c0339b21b0c/multidict-6.7.1-cp313-cp313-win32.whl", hash = "sha256:e1c5988359516095535c4301af38d8a8838534158f649c05dd1050222321bcb3", size = 41695 }, + { url = "https://files.pythonhosted.org/packages/b2/35/e994121b0e90e46134673422dd564623f93304614f5d11886b1b3e06f503/multidict-6.7.1-cp313-cp313-win_amd64.whl", hash = "sha256:960c83bf01a95b12b08fd54324a4eb1d5b52c88932b5cba5d6e712bb3ed12eb5", size = 45884 }, + { url = "https://files.pythonhosted.org/packages/ca/61/42d3e5dbf661242a69c97ea363f2d7b46c567da8eadef8890022be6e2ab0/multidict-6.7.1-cp313-cp313-win_arm64.whl", hash = "sha256:563fe25c678aaba333d5399408f5ec3c383ca5b663e7f774dd179a520b8144df", size = 43122 }, + { url = "https://files.pythonhosted.org/packages/6d/b3/e6b21c6c4f314bb956016b0b3ef2162590a529b84cb831c257519e7fde44/multidict-6.7.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:c76c4bec1538375dad9d452d246ca5368ad6e1c9039dadcf007ae59c70619ea1", size = 83175 }, + { url = "https://files.pythonhosted.org/packages/fb/76/23ecd2abfe0957b234f6c960f4ade497f55f2c16aeb684d4ecdbf1c95791/multidict-6.7.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:57b46b24b5d5ebcc978da4ec23a819a9402b4228b8a90d9c656422b4bdd8a963", size = 48460 }, + { url = "https://files.pythonhosted.org/packages/c4/57/a0ed92b23f3a042c36bc4227b72b97eca803f5f1801c1ab77c8a212d455e/multidict-6.7.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:e954b24433c768ce78ab7929e84ccf3422e46deb45a4dc9f93438f8217fa2d34", size = 46930 }, + { url = "https://files.pythonhosted.org/packages/b5/66/02ec7ace29162e447f6382c495dc95826bf931d3818799bbef11e8f7df1a/multidict-6.7.1-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:3bd231490fa7217cc832528e1cd8752a96f0125ddd2b5749390f7c3ec8721b65", size = 242582 }, + { url = "https://files.pythonhosted.org/packages/58/18/64f5a795e7677670e872673aca234162514696274597b3708b2c0d276cce/multidict-6.7.1-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:253282d70d67885a15c8a7716f3a73edf2d635793ceda8173b9ecc21f2fb8292", size = 250031 }, + { url = "https://files.pythonhosted.org/packages/c8/ed/e192291dbbe51a8290c5686f482084d31bcd9d09af24f63358c3d42fd284/multidict-6.7.1-cp313-cp313t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:0b4c48648d7649c9335cf1927a8b87fa692de3dcb15faa676c6a6f1f1aabda43", size = 228596 }, + { url = "https://files.pythonhosted.org/packages/1e/7e/3562a15a60cf747397e7f2180b0a11dc0c38d9175a650e75fa1b4d325e15/multidict-6.7.1-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:98bc624954ec4d2c7cb074b8eefc2b5d0ce7d482e410df446414355d158fe4ca", size = 257492 }, + { url = "https://files.pythonhosted.org/packages/24/02/7d0f9eae92b5249bb50ac1595b295f10e263dd0078ebb55115c31e0eaccd/multidict-6.7.1-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:1b99af4d9eec0b49927b4402bcbb58dea89d3e0db8806a4086117019939ad3dd", size = 255899 }, + { url = "https://files.pythonhosted.org/packages/00/e3/9b60ed9e23e64c73a5cde95269ef1330678e9c6e34dd4eb6b431b85b5a10/multidict-6.7.1-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6aac4f16b472d5b7dc6f66a0d49dd57b0e0902090be16594dc9ebfd3d17c47e7", size = 247970 }, + { url = "https://files.pythonhosted.org/packages/3e/06/538e58a63ed5cfb0bd4517e346b91da32fde409d839720f664e9a4ae4f9d/multidict-6.7.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:21f830fe223215dffd51f538e78c172ed7c7f60c9b96a2bf05c4848ad49921c3", size = 245060 }, + { url = "https://files.pythonhosted.org/packages/b2/2f/d743a3045a97c895d401e9bd29aaa09b94f5cbdf1bd561609e5a6c431c70/multidict-6.7.1-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:f5dd81c45b05518b9aa4da4aa74e1c93d715efa234fd3e8a179df611cc85e5f4", size = 235888 }, + { url = "https://files.pythonhosted.org/packages/38/83/5a325cac191ab28b63c52f14f1131f3b0a55ba3b9aa65a6d0bf2a9b921a0/multidict-6.7.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:eb304767bca2bb92fb9c5bd33cedc95baee5bb5f6c88e63706533a1c06ad08c8", size = 243554 }, + { url = "https://files.pythonhosted.org/packages/20/1f/9d2327086bd15da2725ef6aae624208e2ef828ed99892b17f60c344e57ed/multidict-6.7.1-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:c9035dde0f916702850ef66460bc4239d89d08df4d02023a5926e7446724212c", size = 252341 }, + { url = "https://files.pythonhosted.org/packages/e8/2c/2a1aa0280cf579d0f6eed8ee5211c4f1730bd7e06c636ba2ee6aafda302e/multidict-6.7.1-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:af959b9beeb66c822380f222f0e0a1889331597e81f1ded7f374f3ecb0fd6c52", size = 246391 }, + { url = "https://files.pythonhosted.org/packages/e5/03/7ca022ffc36c5a3f6e03b179a5ceb829be9da5783e6fe395f347c0794680/multidict-6.7.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:41f2952231456154ee479651491e94118229844dd7226541788be783be2b5108", size = 243422 }, + { url = "https://files.pythonhosted.org/packages/dc/1d/b31650eab6c5778aceed46ba735bd97f7c7d2f54b319fa916c0f96e7805b/multidict-6.7.1-cp313-cp313t-win32.whl", hash = "sha256:df9f19c28adcb40b6aae30bbaa1478c389efd50c28d541d76760199fc1037c32", size = 47770 }, + { url = "https://files.pythonhosted.org/packages/ac/5b/2d2d1d522e51285bd61b1e20df8f47ae1a9d80839db0b24ea783b3832832/multidict-6.7.1-cp313-cp313t-win_amd64.whl", hash = "sha256:d54ecf9f301853f2c5e802da559604b3e95bb7a3b01a9c295c6ee591b9882de8", size = 53109 }, + { url = "https://files.pythonhosted.org/packages/3d/a3/cc409ba012c83ca024a308516703cf339bdc4b696195644a7215a5164a24/multidict-6.7.1-cp313-cp313t-win_arm64.whl", hash = "sha256:5a37ca18e360377cfda1d62f5f382ff41f2b8c4ccb329ed974cc2e1643440118", size = 45573 }, + { url = "https://files.pythonhosted.org/packages/91/cc/db74228a8be41884a567e88a62fd589a913708fcf180d029898c17a9a371/multidict-6.7.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:8f333ec9c5eb1b7105e3b84b53141e66ca05a19a605368c55450b6ba208cb9ee", size = 75190 }, + { url = "https://files.pythonhosted.org/packages/d5/22/492f2246bb5b534abd44804292e81eeaf835388901f0c574bac4eeec73c5/multidict-6.7.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:a407f13c188f804c759fc6a9f88286a565c242a76b27626594c133b82883b5c2", size = 44486 }, + { url = "https://files.pythonhosted.org/packages/f1/4f/733c48f270565d78b4544f2baddc2fb2a245e5a8640254b12c36ac7ac68e/multidict-6.7.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:0e161ddf326db5577c3a4cc2d8648f81456e8a20d40415541587a71620d7a7d1", size = 43219 }, + { url = "https://files.pythonhosted.org/packages/24/bb/2c0c2287963f4259c85e8bcbba9182ced8d7fca65c780c38e99e61629d11/multidict-6.7.1-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:1e3a8bb24342a8201d178c3b4984c26ba81a577c80d4d525727427460a50c22d", size = 245132 }, + { url = "https://files.pythonhosted.org/packages/a7/f9/44d4b3064c65079d2467888794dea218d1601898ac50222ab8a9a8094460/multidict-6.7.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:97231140a50f5d447d3164f994b86a0bed7cd016e2682f8650d6a9158e14fd31", size = 252420 }, + { url = "https://files.pythonhosted.org/packages/8b/13/78f7275e73fa17b24c9a51b0bd9d73ba64bb32d0ed51b02a746eb876abe7/multidict-6.7.1-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:6b10359683bd8806a200fd2909e7c8ca3a7b24ec1d8132e483d58e791d881048", size = 233510 }, + { url = "https://files.pythonhosted.org/packages/4b/25/8167187f62ae3cbd52da7893f58cb036b47ea3fb67138787c76800158982/multidict-6.7.1-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:283ddac99f7ac25a4acadbf004cb5ae34480bbeb063520f70ce397b281859362", size = 264094 }, + { url = "https://files.pythonhosted.org/packages/a1/e7/69a3a83b7b030cf283fb06ce074a05a02322359783424d7edf0f15fe5022/multidict-6.7.1-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:538cec1e18c067d0e6103aa9a74f9e832904c957adc260e61cd9d8cf0c3b3d37", size = 260786 }, + { url = "https://files.pythonhosted.org/packages/fe/3b/8ec5074bcfc450fe84273713b4b0a0dd47c0249358f5d82eb8104ffe2520/multidict-6.7.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7eee46ccb30ff48a1e35bb818cc90846c6be2b68240e42a78599166722cea709", size = 248483 }, + { url = "https://files.pythonhosted.org/packages/48/5a/d5a99e3acbca0e29c5d9cba8f92ceb15dce78bab963b308ae692981e3a5d/multidict-6.7.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:fa263a02f4f2dd2d11a7b1bb4362aa7cb1049f84a9235d31adf63f30143469a0", size = 248403 }, + { url = "https://files.pythonhosted.org/packages/35/48/e58cd31f6c7d5102f2a4bf89f96b9cf7e00b6c6f3d04ecc44417c00a5a3c/multidict-6.7.1-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:2e1425e2f99ec5bd36c15a01b690a1a2456209c5deed58f95469ffb46039ccbb", size = 240315 }, + { url = "https://files.pythonhosted.org/packages/94/33/1cd210229559cb90b6786c30676bb0c58249ff42f942765f88793b41fdce/multidict-6.7.1-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:497394b3239fc6f0e13a78a3e1b61296e72bf1c5f94b4c4eb80b265c37a131cd", size = 245528 }, + { url = "https://files.pythonhosted.org/packages/64/f2/6e1107d226278c876c783056b7db43d800bb64c6131cec9c8dfb6903698e/multidict-6.7.1-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:233b398c29d3f1b9676b4b6f75c518a06fcb2ea0b925119fb2c1bc35c05e1601", size = 258784 }, + { url = "https://files.pythonhosted.org/packages/4d/c1/11f664f14d525e4a1b5327a82d4de61a1db604ab34c6603bb3c2cc63ad34/multidict-6.7.1-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:93b1818e4a6e0930454f0f2af7dfce69307ca03cdcfb3739bf4d91241967b6c1", size = 251980 }, + { url = "https://files.pythonhosted.org/packages/e1/9f/75a9ac888121d0c5bbd4ecf4eead45668b1766f6baabfb3b7f66a410e231/multidict-6.7.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:f33dc2a3abe9249ea5d8360f969ec7f4142e7ac45ee7014d8f8d5acddf178b7b", size = 243602 }, + { url = "https://files.pythonhosted.org/packages/9a/e7/50bf7b004cc8525d80dbbbedfdc7aed3e4c323810890be4413e589074032/multidict-6.7.1-cp314-cp314-win32.whl", hash = "sha256:3ab8b9d8b75aef9df299595d5388b14530839f6422333357af1339443cff777d", size = 40930 }, + { url = "https://files.pythonhosted.org/packages/e0/bf/52f25716bbe93745595800f36fb17b73711f14da59ed0bb2eba141bc9f0f/multidict-6.7.1-cp314-cp314-win_amd64.whl", hash = "sha256:5e01429a929600e7dab7b166062d9bb54a5eed752384c7384c968c2afab8f50f", size = 45074 }, + { url = "https://files.pythonhosted.org/packages/97/ab/22803b03285fa3a525f48217963da3a65ae40f6a1b6f6cf2768879e208f9/multidict-6.7.1-cp314-cp314-win_arm64.whl", hash = "sha256:4885cb0e817aef5d00a2e8451d4665c1808378dc27c2705f1bf4ef8505c0d2e5", size = 42471 }, + { url = "https://files.pythonhosted.org/packages/e0/6d/f9293baa6146ba9507e360ea0292b6422b016907c393e2f63fc40ab7b7b5/multidict-6.7.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:0458c978acd8e6ea53c81eefaddbbee9c6c5e591f41b3f5e8e194780fe026581", size = 82401 }, + { url = "https://files.pythonhosted.org/packages/7a/68/53b5494738d83558d87c3c71a486504d8373421c3e0dbb6d0db48ad42ee0/multidict-6.7.1-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:c0abd12629b0af3cf590982c0b413b1e7395cd4ec026f30986818ab95bfaa94a", size = 48143 }, + { url = "https://files.pythonhosted.org/packages/37/e8/5284c53310dcdc99ce5d66563f6e5773531a9b9fe9ec7a615e9bc306b05f/multidict-6.7.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:14525a5f61d7d0c94b368a42cff4c9a4e7ba2d52e2672a7b23d84dc86fb02b0c", size = 46507 }, + { url = "https://files.pythonhosted.org/packages/e4/fc/6800d0e5b3875568b4083ecf5f310dcf91d86d52573160834fb4bfcf5e4f/multidict-6.7.1-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:17307b22c217b4cf05033dabefe68255a534d637c6c9b0cc8382718f87be4262", size = 239358 }, + { url = "https://files.pythonhosted.org/packages/41/75/4ad0973179361cdf3a113905e6e088173198349131be2b390f9fa4da5fc6/multidict-6.7.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7a7e590ff876a3eaf1c02a4dfe0724b6e69a9e9de6d8f556816f29c496046e59", size = 246884 }, + { url = "https://files.pythonhosted.org/packages/c3/9c/095bb28b5da139bd41fb9a5d5caff412584f377914bd8787c2aa98717130/multidict-6.7.1-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:5fa6a95dfee63893d80a34758cd0e0c118a30b8dcb46372bf75106c591b77889", size = 225878 }, + { url = "https://files.pythonhosted.org/packages/07/d0/c0a72000243756e8f5a277b6b514fa005f2c73d481b7d9e47cd4568aa2e4/multidict-6.7.1-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a0543217a6a017692aa6ae5cc39adb75e587af0f3a82288b1492eb73dd6cc2a4", size = 253542 }, + { url = "https://files.pythonhosted.org/packages/c0/6b/f69da15289e384ecf2a68837ec8b5ad8c33e973aa18b266f50fe55f24b8c/multidict-6.7.1-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f99fe611c312b3c1c0ace793f92464d8cd263cc3b26b5721950d977b006b6c4d", size = 252403 }, + { url = "https://files.pythonhosted.org/packages/a2/76/b9669547afa5a1a25cd93eaca91c0da1c095b06b6d2d8ec25b713588d3a1/multidict-6.7.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9004d8386d133b7e6135679424c91b0b854d2d164af6ea3f289f8f2761064609", size = 244889 }, + { url = "https://files.pythonhosted.org/packages/7e/a9/a50d2669e506dad33cfc45b5d574a205587b7b8a5f426f2fbb2e90882588/multidict-6.7.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e628ef0e6859ffd8273c69412a2465c4be4a9517d07261b33334b5ec6f3c7489", size = 241982 }, + { url = "https://files.pythonhosted.org/packages/c5/bb/1609558ad8b456b4827d3c5a5b775c93b87878fd3117ed3db3423dfbce1b/multidict-6.7.1-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:841189848ba629c3552035a6a7f5bf3b02eb304e9fea7492ca220a8eda6b0e5c", size = 232415 }, + { url = "https://files.pythonhosted.org/packages/d8/59/6f61039d2aa9261871e03ab9dc058a550d240f25859b05b67fd70f80d4b3/multidict-6.7.1-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:ce1bbd7d780bb5a0da032e095c951f7014d6b0a205f8318308140f1a6aba159e", size = 240337 }, + { url = "https://files.pythonhosted.org/packages/a1/29/fdc6a43c203890dc2ae9249971ecd0c41deaedfe00d25cb6564b2edd99eb/multidict-6.7.1-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:b26684587228afed0d50cf804cc71062cc9c1cdf55051c4c6345d372947b268c", size = 248788 }, + { url = "https://files.pythonhosted.org/packages/a9/14/a153a06101323e4cf086ecee3faadba52ff71633d471f9685c42e3736163/multidict-6.7.1-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:9f9af11306994335398293f9958071019e3ab95e9a707dc1383a35613f6abcb9", size = 242842 }, + { url = "https://files.pythonhosted.org/packages/41/5f/604ae839e64a4a6efc80db94465348d3b328ee955e37acb24badbcd24d83/multidict-6.7.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:b4938326284c4f1224178a560987b6cf8b4d38458b113d9b8c1db1a836e640a2", size = 240237 }, + { url = "https://files.pythonhosted.org/packages/5f/60/c3a5187bf66f6fb546ff4ab8fb5a077cbdd832d7b1908d4365c7f74a1917/multidict-6.7.1-cp314-cp314t-win32.whl", hash = "sha256:98655c737850c064a65e006a3df7c997cd3b220be4ec8fe26215760b9697d4d7", size = 48008 }, + { url = "https://files.pythonhosted.org/packages/0c/f7/addf1087b860ac60e6f382240f64fb99f8bfb532bb06f7c542b83c29ca61/multidict-6.7.1-cp314-cp314t-win_amd64.whl", hash = "sha256:497bde6223c212ba11d462853cfa4f0ae6ef97465033e7dc9940cdb3ab5b48e5", size = 53542 }, + { url = "https://files.pythonhosted.org/packages/4c/81/4629d0aa32302ef7b2ec65c75a728cc5ff4fa410c50096174c1632e70b3e/multidict-6.7.1-cp314-cp314t-win_arm64.whl", hash = "sha256:2bbd113e0d4af5db41d5ebfe9ccaff89de2120578164f86a5d17d5a576d1e5b2", size = 44719 }, + { url = "https://files.pythonhosted.org/packages/81/08/7036c080d7117f28a4af526d794aab6a84463126db031b007717c1a6676e/multidict-6.7.1-py3-none-any.whl", hash = "sha256:55d97cc6dae627efa6a6e548885712d4864b81110ac76fa4e534c03819fa4a56", size = 12319 }, +] + +[[package]] +name = "mypy" +version = "1.20.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "librt", marker = "platform_python_implementation != 'PyPy'" }, + { name = "mypy-extensions" }, + { name = "pathspec" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f8/5c/b0089fe7fef0a994ae5ee07029ced0526082c6cfaaa4c10d40a10e33b097/mypy-1.20.0.tar.gz", hash = "sha256:eb96c84efcc33f0b5e0e04beacf00129dd963b67226b01c00b9dfc8affb464c3", size = 3815028 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/be/dd/3afa29b58c2e57c79116ed55d700721c3c3b15955e2b6251dd165d377c0e/mypy-1.20.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:002b613ae19f4ac7d18b7e168ffe1cb9013b37c57f7411984abbd3b817b0a214", size = 14509525 }, + { url = "https://files.pythonhosted.org/packages/54/eb/227b516ab8cad9f2a13c5e7a98d28cd6aa75e9c83e82776ae6c1c4c046c7/mypy-1.20.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a9336b5e6712f4adaf5afc3203a99a40b379049104349d747eb3e5a3aa23ac2e", size = 13326469 }, + { url = "https://files.pythonhosted.org/packages/57/d4/1ddb799860c1b5ac6117ec307b965f65deeb47044395ff01ab793248a591/mypy-1.20.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f13b3e41bce9d257eded794c0f12878af3129d80aacd8a3ee0dee51f3a978651", size = 13705953 }, + { url = "https://files.pythonhosted.org/packages/c5/b7/54a720f565a87b893182a2a393370289ae7149e4715859e10e1c05e49154/mypy-1.20.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9804c3ad27f78e54e58b32e7cb532d128b43dbfb9f3f9f06262b821a0f6bd3f5", size = 14710363 }, + { url = "https://files.pythonhosted.org/packages/b2/2a/74810274848d061f8a8ea4ac23aaad43bd3d8c1882457999c2e568341c57/mypy-1.20.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:697f102c5c1d526bdd761a69f17c6070f9892eebcb94b1a5963d679288c09e78", size = 14947005 }, + { url = "https://files.pythonhosted.org/packages/77/91/21b8ba75f958bcda75690951ce6fa6b7138b03471618959529d74b8544e2/mypy-1.20.0-cp312-cp312-win_amd64.whl", hash = "sha256:0ecd63f75fdd30327e4ad8b5704bd6d91fc6c1b2e029f8ee14705e1207212489", size = 10880616 }, + { url = "https://files.pythonhosted.org/packages/8a/15/3d8198ef97c1ca03aea010cce4f1d4f3bc5d9849e8c0140111ca2ead9fdd/mypy-1.20.0-cp312-cp312-win_arm64.whl", hash = "sha256:f194db59657c58593a3c47c6dfd7bad4ef4ac12dbc94d01b3a95521f78177e33", size = 9813091 }, + { url = "https://files.pythonhosted.org/packages/d6/a7/f64ea7bd592fa431cb597418b6dec4a47f7d0c36325fec7ac67bc8402b94/mypy-1.20.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:b20c8b0fd5877abdf402e79a3af987053de07e6fb208c18df6659f708b535134", size = 14485344 }, + { url = "https://files.pythonhosted.org/packages/bb/72/8927d84cfc90c6abea6e96663576e2e417589347eb538749a464c4c218a0/mypy-1.20.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:367e5c993ba34d5054d11937d0485ad6dfc60ba760fa326c01090fc256adf15c", size = 13327400 }, + { url = "https://files.pythonhosted.org/packages/ab/4a/11ab99f9afa41aa350178d24a7d2da17043228ea10f6456523f64b5a6cf6/mypy-1.20.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f799d9db89fc00446f03281f84a221e50018fc40113a3ba9864b132895619ebe", size = 13706384 }, + { url = "https://files.pythonhosted.org/packages/42/79/694ca73979cfb3535ebfe78733844cd5aff2e63304f59bf90585110d975a/mypy-1.20.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:555658c611099455b2da507582ea20d2043dfdfe7f5ad0add472b1c6238b433f", size = 14700378 }, + { url = "https://files.pythonhosted.org/packages/84/24/a022ccab3a46e3d2cdf2e0e260648633640eb396c7e75d5a42818a8d3971/mypy-1.20.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:efe8d70949c3023698c3fca1e94527e7e790a361ab8116f90d11221421cd8726", size = 14932170 }, + { url = "https://files.pythonhosted.org/packages/d8/9b/549228d88f574d04117e736f55958bd4908f980f9f5700a07aeb85df005b/mypy-1.20.0-cp313-cp313-win_amd64.whl", hash = "sha256:f49590891d2c2f8a9de15614e32e459a794bcba84693c2394291a2038bbaaa69", size = 10888526 }, + { url = "https://files.pythonhosted.org/packages/91/17/15095c0e54a8bc04d22d4ff06b2139d5f142c2e87520b4e39010c4862771/mypy-1.20.0-cp313-cp313-win_arm64.whl", hash = "sha256:76a70bf840495729be47510856b978f1b0ec7d08f257ca38c9d932720bf6b43e", size = 9816456 }, + { url = "https://files.pythonhosted.org/packages/4e/0e/6ca4a84cbed9e62384bc0b2974c90395ece5ed672393e553996501625fc5/mypy-1.20.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:0f42dfaab7ec1baff3b383ad7af562ab0de573c5f6edb44b2dab016082b89948", size = 14483331 }, + { url = "https://files.pythonhosted.org/packages/7d/c5/5fe9d8a729dd9605064691816243ae6c49fde0bd28f6e5e17f6a24203c43/mypy-1.20.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:31b5dbb55293c1bd27c0fc813a0d2bb5ceef9d65ac5afa2e58f829dab7921fd5", size = 13342047 }, + { url = "https://files.pythonhosted.org/packages/4c/33/e18bcfa338ca4e6b2771c85d4c5203e627d0c69d9de5c1a2cf2ba13320ba/mypy-1.20.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:49d11c6f573a5a08f77fad13faff2139f6d0730ebed2cfa9b3d2702671dd7188", size = 13719585 }, + { url = "https://files.pythonhosted.org/packages/6b/8d/93491ff7b79419edc7eabf95cb3b3f7490e2e574b2855c7c7e7394ff933f/mypy-1.20.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7d3243c406773185144527f83be0e0aefc7bf4601b0b2b956665608bf7c98a83", size = 14685075 }, + { url = "https://files.pythonhosted.org/packages/b5/9d/d924b38a4923f8d164bf2b4ec98bf13beaf6e10a5348b4b137eadae40a6e/mypy-1.20.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:a79c1eba7ac4209f2d850f0edd0a2f8bba88cbfdfefe6fb76a19e9d4fe5e71a2", size = 14919141 }, + { url = "https://files.pythonhosted.org/packages/59/98/1da9977016678c0b99d43afe52ed00bb3c1a0c4c995d3e6acca1a6ebb9b4/mypy-1.20.0-cp314-cp314-win_amd64.whl", hash = "sha256:00e047c74d3ec6e71a2eb88e9ea551a2edb90c21f993aefa9e0d2a898e0bb732", size = 11050925 }, + { url = "https://files.pythonhosted.org/packages/5e/e3/ba0b7a3143e49a9c4f5967dde6ea4bf8e0b10ecbbcca69af84027160ee89/mypy-1.20.0-cp314-cp314-win_arm64.whl", hash = "sha256:931a7630bba591593dcf6e97224a21ff80fb357e7982628d25e3c618e7f598ef", size = 10001089 }, + { url = "https://files.pythonhosted.org/packages/12/28/e617e67b3be9d213cda7277913269c874eb26472489f95d09d89765ce2d8/mypy-1.20.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:26c8b52627b6552f47ff11adb4e1509605f094e29815323e487fc0053ebe93d1", size = 15534710 }, + { url = "https://files.pythonhosted.org/packages/6e/0c/3b5f2d3e45dc7169b811adce8451679d9430399d03b168f9b0489f43adaa/mypy-1.20.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:39362cdb4ba5f916e7976fccecaab1ba3a83e35f60fa68b64e9a70e221bb2436", size = 14393013 }, + { url = "https://files.pythonhosted.org/packages/a3/49/edc8b0aa145cc09c1c74f7ce2858eead9329931dcbbb26e2ad40906daa4e/mypy-1.20.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:34506397dbf40c15dc567635d18a21d33827e9ab29014fb83d292a8f4f8953b6", size = 15047240 }, + { url = "https://files.pythonhosted.org/packages/42/37/a946bb416e37a57fa752b3100fd5ede0e28df94f92366d1716555d47c454/mypy-1.20.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:555493c44a4f5a1b58d611a43333e71a9981c6dbe26270377b6f8174126a0526", size = 15858565 }, + { url = "https://files.pythonhosted.org/packages/2f/99/7690b5b5b552db1bd4ff362e4c0eb3107b98d680835e65823fbe888c8b78/mypy-1.20.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:2721f0ce49cb74a38f00c50da67cb7d36317b5eda38877a49614dc018e91c787", size = 16087874 }, + { url = "https://files.pythonhosted.org/packages/aa/76/53e893a498138066acd28192b77495c9357e5a58cc4be753182846b43315/mypy-1.20.0-cp314-cp314t-win_amd64.whl", hash = "sha256:47781555a7aa5fedcc2d16bcd72e0dc83eb272c10dd657f9fb3f9cc08e2e6abb", size = 12572380 }, + { url = "https://files.pythonhosted.org/packages/76/9c/6dbdae21f01b7aacddc2c0bbf3c5557aa547827fdf271770fe1e521e7093/mypy-1.20.0-cp314-cp314t-win_arm64.whl", hash = "sha256:c70380fe5d64010f79fb863b9081c7004dd65225d2277333c219d93a10dad4dd", size = 10381174 }, + { url = "https://files.pythonhosted.org/packages/21/66/4d734961ce167f0fd8380769b3b7c06dbdd6ff54c2190f3f2ecd22528158/mypy-1.20.0-py3-none-any.whl", hash = "sha256:a6e0641147cbfa7e4e94efdb95c2dab1aff8cfc159ded13e07f308ddccc8c48e", size = 2636365 }, +] + +[[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 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/79/7b/2c79738432f5c924bef5071f933bcc9efd0473bac3b4aa584a6f7c1c8df8/mypy_extensions-1.1.0-py3-none-any.whl", hash = "sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505", size = 4963 }, +] + +[[package]] +name = "narwhals" +version = "2.18.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/59/96/45218c2fdec4c9f22178f905086e85ef1a6d63862dcc3cd68eb60f1867f5/narwhals-2.18.1.tar.gz", hash = "sha256:652a1fcc9d432bbf114846688884c215f17eb118aa640b7419295d2f910d2a8b", size = 620578 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3f/c3/06490e98393dcb4d6ce2bf331a39335375c300afaef526897881fbeae6ab/narwhals-2.18.1-py3-none-any.whl", hash = "sha256:a0a8bb80205323851338888ba3a12b4f65d352362c8a94be591244faf36504ad", size = 444952 }, +] + +[[package]] +name = "nexus-rpc" +version = "1.4.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/35/d5/cd1ffb202b76ebc1b33c1332a3416e55a39929006982adc2b1eb069aaa9b/nexus_rpc-1.4.0.tar.gz", hash = "sha256:3b8b373d4865671789cc43623e3dc0bcbf192562e40e13727e17f1c149050fba", size = 82367 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/11/52/6327a5f4fda01207205038a106a99848a41c83e933cd23ea2cab3d2ebc6c/nexus_rpc-1.4.0-py3-none-any.whl", hash = "sha256:14c953d3519113f8ccec533a9efdb6b10c28afef75d11cdd6d422640c40b3a49", size = 29645 }, +] + +[[package]] +name = "numpy" +version = "2.4.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d7/9f/b8cef5bffa569759033adda9481211426f12f53299629b410340795c2514/numpy-2.4.4.tar.gz", hash = "sha256:2d390634c5182175533585cc89f3608a4682ccb173cc9bb940b2881c8d6f8fa0", size = 20731587 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/28/05/32396bec30fb2263770ee910142f49c1476d08e8ad41abf8403806b520ce/numpy-2.4.4-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:15716cfef24d3a9762e3acdf87e27f58dc823d1348f765bbea6bef8c639bfa1b", size = 16689272 }, + { url = "https://files.pythonhosted.org/packages/c5/f3/a983d28637bfcd763a9c7aafdb6d5c0ebf3d487d1e1459ffdb57e2f01117/numpy-2.4.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:23cbfd4c17357c81021f21540da84ee282b9c8fba38a03b7b9d09ba6b951421e", size = 14699573 }, + { url = "https://files.pythonhosted.org/packages/9b/fd/e5ecca1e78c05106d98028114f5c00d3eddb41207686b2b7de3e477b0e22/numpy-2.4.4-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:8b3b60bb7cba2c8c81837661c488637eee696f59a877788a396d33150c35d842", size = 5204782 }, + { url = "https://files.pythonhosted.org/packages/de/2f/702a4594413c1a8632092beae8aba00f1d67947389369b3777aed783fdca/numpy-2.4.4-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:e4a010c27ff6f210ff4c6ef34394cd61470d01014439b192ec22552ee867f2a8", size = 6552038 }, + { url = "https://files.pythonhosted.org/packages/7f/37/eed308a8f56cba4d1fdf467a4fc67ef4ff4bf1c888f5fc980481890104b1/numpy-2.4.4-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f9e75681b59ddaa5e659898085ae0eaea229d054f2ac0c7e563a62205a700121", size = 15670666 }, + { url = "https://files.pythonhosted.org/packages/0a/0d/0e3ecece05b7a7e87ab9fb587855548da437a061326fff64a223b6dcb78a/numpy-2.4.4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:81f4a14bee47aec54f883e0cad2d73986640c1590eb9bfaaba7ad17394481e6e", size = 16645480 }, + { url = "https://files.pythonhosted.org/packages/34/49/f2312c154b82a286758ee2f1743336d50651f8b5195db18cdb63675ff649/numpy-2.4.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:62d6b0f03b694173f9fcb1fb317f7222fd0b0b103e784c6549f5e53a27718c44", size = 17020036 }, + { url = "https://files.pythonhosted.org/packages/7b/e9/736d17bd77f1b0ec4f9901aaec129c00d59f5d84d5e79bba540ef12c2330/numpy-2.4.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fbc356aae7adf9e6336d336b9c8111d390a05df88f1805573ebb0807bd06fd1d", size = 18368643 }, + { url = "https://files.pythonhosted.org/packages/63/f6/d417977c5f519b17c8a5c3bc9e8304b0908b0e21136fe43bf628a1343914/numpy-2.4.4-cp312-cp312-win32.whl", hash = "sha256:0d35aea54ad1d420c812bfa0385c71cd7cc5bcf7c65fed95fc2cd02fe8c79827", size = 5961117 }, + { url = "https://files.pythonhosted.org/packages/2d/5b/e1deebf88ff431b01b7406ca3583ab2bbb90972bbe1c568732e49c844f7e/numpy-2.4.4-cp312-cp312-win_amd64.whl", hash = "sha256:b5f0362dc928a6ecd9db58868fca5e48485205e3855957bdedea308f8672ea4a", size = 12320584 }, + { url = "https://files.pythonhosted.org/packages/58/89/e4e856ac82a68c3ed64486a544977d0e7bdd18b8da75b78a577ca31c4395/numpy-2.4.4-cp312-cp312-win_arm64.whl", hash = "sha256:846300f379b5b12cc769334464656bc882e0735d27d9726568bc932fdc49d5ec", size = 10221450 }, + { url = "https://files.pythonhosted.org/packages/14/1d/d0a583ce4fefcc3308806a749a536c201ed6b5ad6e1322e227ee4848979d/numpy-2.4.4-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:08f2e31ed5e6f04b118e49821397f12767934cfdd12a1ce86a058f91e004ee50", size = 16684933 }, + { url = "https://files.pythonhosted.org/packages/c1/62/2b7a48fbb745d344742c0277f01286dead15f3f68e4f359fbfcf7b48f70f/numpy-2.4.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e823b8b6edc81e747526f70f71a9c0a07ac4e7ad13020aa736bb7c9d67196115", size = 14694532 }, + { url = "https://files.pythonhosted.org/packages/e5/87/499737bfba066b4a3bebff24a8f1c5b2dee410b209bc6668c9be692580f0/numpy-2.4.4-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:4a19d9dba1a76618dd86b164d608566f393f8ec6ac7c44f0cc879011c45e65af", size = 5199661 }, + { url = "https://files.pythonhosted.org/packages/cd/da/464d551604320d1491bc345efed99b4b7034143a85787aab78d5691d5a0e/numpy-2.4.4-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:d2a8490669bfe99a233298348acc2d824d496dee0e66e31b66a6022c2ad74a5c", size = 6547539 }, + { url = "https://files.pythonhosted.org/packages/7d/90/8d23e3b0dafd024bf31bdec225b3bb5c2dbfa6912f8a53b8659f21216cbf/numpy-2.4.4-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:45dbed2ab436a9e826e302fcdcbe9133f9b0006e5af7168afb8963a6520da103", size = 15668806 }, + { url = "https://files.pythonhosted.org/packages/d1/73/a9d864e42a01896bb5974475438f16086be9ba1f0d19d0bb7a07427c4a8b/numpy-2.4.4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c901b15172510173f5cb310eae652908340f8dede90fff9e3bf6c0d8dfd92f83", size = 16632682 }, + { url = "https://files.pythonhosted.org/packages/34/fb/14570d65c3bde4e202a031210475ae9cde9b7686a2e7dc97ee67d2833b35/numpy-2.4.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:99d838547ace2c4aace6c4f76e879ddfe02bb58a80c1549928477862b7a6d6ed", size = 17019810 }, + { url = "https://files.pythonhosted.org/packages/8a/77/2ba9d87081fd41f6d640c83f26fb7351e536b7ce6dd9061b6af5904e8e46/numpy-2.4.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:0aec54fd785890ecca25a6003fd9a5aed47ad607bbac5cd64f836ad8666f4959", size = 18357394 }, + { url = "https://files.pythonhosted.org/packages/a2/23/52666c9a41708b0853fa3b1a12c90da38c507a3074883823126d4e9d5b30/numpy-2.4.4-cp313-cp313-win32.whl", hash = "sha256:07077278157d02f65c43b1b26a3886bce886f95d20aabd11f87932750dfb14ed", size = 5959556 }, + { url = "https://files.pythonhosted.org/packages/57/fb/48649b4971cde70d817cf97a2a2fdc0b4d8308569f1dd2f2611959d2e0cf/numpy-2.4.4-cp313-cp313-win_amd64.whl", hash = "sha256:5c70f1cc1c4efbe316a572e2d8b9b9cc44e89b95f79ca3331553fbb63716e2bf", size = 12317311 }, + { url = "https://files.pythonhosted.org/packages/ba/d8/11490cddd564eb4de97b4579ef6bfe6a736cc07e94c1598590ae25415e01/numpy-2.4.4-cp313-cp313-win_arm64.whl", hash = "sha256:ef4059d6e5152fa1a39f888e344c73fdc926e1b2dd58c771d67b0acfbf2aa67d", size = 10222060 }, + { url = "https://files.pythonhosted.org/packages/99/5d/dab4339177a905aad3e2221c915b35202f1ec30d750dd2e5e9d9a72b804b/numpy-2.4.4-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:4bbc7f303d125971f60ec0aaad5e12c62d0d2c925f0ab1273debd0e4ba37aba5", size = 14822302 }, + { url = "https://files.pythonhosted.org/packages/eb/e4/0564a65e7d3d97562ed6f9b0fd0fb0a6f559ee444092f105938b50043876/numpy-2.4.4-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:4d6d57903571f86180eb98f8f0c839fa9ebbfb031356d87f1361be91e433f5b7", size = 5327407 }, + { url = "https://files.pythonhosted.org/packages/29/8d/35a3a6ce5ad371afa58b4700f1c820f8f279948cca32524e0a695b0ded83/numpy-2.4.4-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:4636de7fd195197b7535f231b5de9e4b36d2c440b6e566d2e4e4746e6af0ca93", size = 6647631 }, + { url = "https://files.pythonhosted.org/packages/f4/da/477731acbd5a58a946c736edfdabb2ac5b34c3d08d1ba1a7b437fa0884df/numpy-2.4.4-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ad2e2ef14e0b04e544ea2fa0a36463f847f113d314aa02e5b402fdf910ef309e", size = 15727691 }, + { url = "https://files.pythonhosted.org/packages/e6/db/338535d9b152beabeb511579598418ba0212ce77cf9718edd70262cc4370/numpy-2.4.4-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5a285b3b96f951841799528cd1f4f01cd70e7e0204b4abebac9463eecfcf2a40", size = 16681241 }, + { url = "https://files.pythonhosted.org/packages/e2/a9/ad248e8f58beb7a0219b413c9c7d8151c5d285f7f946c3e26695bdbbe2df/numpy-2.4.4-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:f8474c4241bc18b750be2abea9d7a9ec84f46ef861dbacf86a4f6e043401f79e", size = 17085767 }, + { url = "https://files.pythonhosted.org/packages/b5/1a/3b88ccd3694681356f70da841630e4725a7264d6a885c8d442a697e1146b/numpy-2.4.4-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:4e874c976154687c1f71715b034739b45c7711bec81db01914770373d125e392", size = 18403169 }, + { url = "https://files.pythonhosted.org/packages/c2/c9/fcfd5d0639222c6eac7f304829b04892ef51c96a75d479214d77e3ce6e33/numpy-2.4.4-cp313-cp313t-win32.whl", hash = "sha256:9c585a1790d5436a5374bac930dad6ed244c046ed91b2b2a3634eb2971d21008", size = 6083477 }, + { url = "https://files.pythonhosted.org/packages/d5/e3/3938a61d1c538aaec8ed6fd6323f57b0c2d2d2219512434c5c878db76553/numpy-2.4.4-cp313-cp313t-win_amd64.whl", hash = "sha256:93e15038125dc1e5345d9b5b68aa7f996ec33b98118d18c6ca0d0b7d6198b7e8", size = 12457487 }, + { url = "https://files.pythonhosted.org/packages/97/6a/7e345032cc60501721ef94e0e30b60f6b0bd601f9174ebd36389a2b86d40/numpy-2.4.4-cp313-cp313t-win_arm64.whl", hash = "sha256:0dfd3f9d3adbe2920b68b5cd3d51444e13a10792ec7154cd0a2f6e74d4ab3233", size = 10292002 }, + { url = "https://files.pythonhosted.org/packages/6e/06/c54062f85f673dd5c04cbe2f14c3acb8c8b95e3384869bb8cc9bff8cb9df/numpy-2.4.4-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:f169b9a863d34f5d11b8698ead99febeaa17a13ca044961aa8e2662a6c7766a0", size = 16684353 }, + { url = "https://files.pythonhosted.org/packages/4c/39/8a320264a84404c74cc7e79715de85d6130fa07a0898f67fb5cd5bd79908/numpy-2.4.4-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:2483e4584a1cb3092da4470b38866634bafb223cbcd551ee047633fd2584599a", size = 14704914 }, + { url = "https://files.pythonhosted.org/packages/91/fb/287076b2614e1d1044235f50f03748f31fa287e3dbe6abeb35cdfa351eca/numpy-2.4.4-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:2d19e6e2095506d1736b7d80595e0f252d76b89f5e715c35e06e937679ea7d7a", size = 5210005 }, + { url = "https://files.pythonhosted.org/packages/63/eb/fcc338595309910de6ecabfcef2419a9ce24399680bfb149421fa2df1280/numpy-2.4.4-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:6a246d5914aa1c820c9443ddcee9c02bec3e203b0c080349533fae17727dfd1b", size = 6544974 }, + { url = "https://files.pythonhosted.org/packages/44/5d/e7e9044032a716cdfaa3fba27a8e874bf1c5f1912a1ddd4ed071bf8a14a6/numpy-2.4.4-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:989824e9faf85f96ec9c7761cd8d29c531ad857bfa1daa930cba85baaecf1a9a", size = 15684591 }, + { url = "https://files.pythonhosted.org/packages/98/7c/21252050676612625449b4807d6b695b9ce8a7c9e1c197ee6216c8a65c7c/numpy-2.4.4-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:27a8d92cd10f1382a67d7cf4db7ce18341b66438bdd9f691d7b0e48d104c2a9d", size = 16637700 }, + { url = "https://files.pythonhosted.org/packages/b1/29/56d2bbef9465db24ef25393383d761a1af4f446a1df9b8cded4fe3a5a5d7/numpy-2.4.4-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:e44319a2953c738205bf3354537979eaa3998ed673395b964c1176083dd46252", size = 17035781 }, + { url = "https://files.pythonhosted.org/packages/e3/2b/a35a6d7589d21f44cea7d0a98de5ddcbb3d421b2622a5c96b1edf18707c3/numpy-2.4.4-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:e892aff75639bbef0d2a2cfd55535510df26ff92f63c92cd84ef8d4ba5a5557f", size = 18362959 }, + { url = "https://files.pythonhosted.org/packages/64/c9/d52ec581f2390e0f5f85cbfd80fb83d965fc15e9f0e1aec2195faa142cde/numpy-2.4.4-cp314-cp314-win32.whl", hash = "sha256:1378871da56ca8943c2ba674530924bb8ca40cd228358a3b5f302ad60cf875fc", size = 6008768 }, + { url = "https://files.pythonhosted.org/packages/fa/22/4cc31a62a6c7b74a8730e31a4274c5dc80e005751e277a2ce38e675e4923/numpy-2.4.4-cp314-cp314-win_amd64.whl", hash = "sha256:715d1c092715954784bc79e1174fc2a90093dc4dc84ea15eb14dad8abdcdeb74", size = 12449181 }, + { url = "https://files.pythonhosted.org/packages/70/2e/14cda6f4d8e396c612d1bf97f22958e92148801d7e4f110cabebdc0eef4b/numpy-2.4.4-cp314-cp314-win_arm64.whl", hash = "sha256:2c194dd721e54ecad9ad387c1d35e63dce5c4450c6dc7dd5611283dda239aabb", size = 10496035 }, + { url = "https://files.pythonhosted.org/packages/b1/e8/8fed8c8d848d7ecea092dc3469643f9d10bc3a134a815a3b033da1d2039b/numpy-2.4.4-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:2aa0613a5177c264ff5921051a5719d20095ea586ca88cc802c5c218d1c67d3e", size = 14824958 }, + { url = "https://files.pythonhosted.org/packages/05/1a/d8007a5138c179c2bf33ef44503e83d70434d2642877ee8fbb230e7c0548/numpy-2.4.4-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:42c16925aa5a02362f986765f9ebabf20de75cdefdca827d14315c568dcab113", size = 5330020 }, + { url = "https://files.pythonhosted.org/packages/99/64/ffb99ac6ae93faf117bcbd5c7ba48a7f45364a33e8e458545d3633615dda/numpy-2.4.4-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:874f200b2a981c647340f841730fc3a2b54c9d940566a3c4149099591e2c4c3d", size = 6650758 }, + { url = "https://files.pythonhosted.org/packages/6e/6e/795cc078b78a384052e73b2f6281ff7a700e9bf53bcce2ee579d4f6dd879/numpy-2.4.4-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c9b39d38a9bd2ae1becd7eac1303d031c5c110ad31f2b319c6e7d98b135c934d", size = 15729948 }, + { url = "https://files.pythonhosted.org/packages/5f/86/2acbda8cc2af5f3d7bfc791192863b9e3e19674da7b5e533fded124d1299/numpy-2.4.4-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b268594bccac7d7cf5844c7732e3f20c50921d94e36d7ec9b79e9857694b1b2f", size = 16679325 }, + { url = "https://files.pythonhosted.org/packages/bc/59/cafd83018f4aa55e0ac6fa92aa066c0a1877b77a615ceff1711c260ffae8/numpy-2.4.4-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:ac6b31e35612a26483e20750126d30d0941f949426974cace8e6b5c58a3657b0", size = 17084883 }, + { url = "https://files.pythonhosted.org/packages/f0/85/a42548db84e65ece46ab2caea3d3f78b416a47af387fcbb47ec28e660dc2/numpy-2.4.4-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:8e3ed142f2728df44263aaf5fb1f5b0b99f4070c553a0d7f033be65338329150", size = 18403474 }, + { url = "https://files.pythonhosted.org/packages/ed/ad/483d9e262f4b831000062e5d8a45e342166ec8aaa1195264982bca267e62/numpy-2.4.4-cp314-cp314t-win32.whl", hash = "sha256:dddbbd259598d7240b18c9d87c56a9d2fb3b02fe266f49a7c101532e78c1d871", size = 6155500 }, + { url = "https://files.pythonhosted.org/packages/c7/03/2fc4e14c7bd4ff2964b74ba90ecb8552540b6315f201df70f137faa5c589/numpy-2.4.4-cp314-cp314t-win_amd64.whl", hash = "sha256:a7164afb23be6e37ad90b2f10426149fd75aee07ca55653d2aa41e66c4ef697e", size = 12637755 }, + { url = "https://files.pythonhosted.org/packages/58/78/548fb8e07b1a341746bfbecb32f2c268470f45fa028aacdbd10d9bc73aab/numpy-2.4.4-cp314-cp314t-win_arm64.whl", hash = "sha256:ba203255017337d39f89bdd58417f03c4426f12beed0440cfd933cb15f8669c7", size = 10566643 }, +] + +[[package]] +name = "openai" +version = "2.30.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "distro" }, + { name = "httpx" }, + { name = "jiter" }, + { name = "pydantic" }, + { name = "sniffio" }, + { name = "tqdm" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/88/15/52580c8fbc16d0675d516e8749806eda679b16de1e4434ea06fb6feaa610/openai-2.30.0.tar.gz", hash = "sha256:92f7661c990bda4b22a941806c83eabe4896c3094465030dd882a71abe80c885", size = 676084 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2a/9e/5bfa2270f902d5b92ab7d41ce0475b8630572e71e349b2a4996d14bdda93/openai-2.30.0-py3-none-any.whl", hash = "sha256:9a5ae616888eb2748ec5e0c5b955a51592e0b201a11f4262db920f2a78c5231d", size = 1146656 }, +] + +[[package]] +name = "openapi-pydantic" +version = "0.5.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pydantic" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/02/2e/58d83848dd1a79cb92ed8e63f6ba901ca282c5f09d04af9423ec26c56fd7/openapi_pydantic-0.5.1.tar.gz", hash = "sha256:ff6835af6bde7a459fb93eb93bb92b8749b754fc6e51b2f1590a19dc3005ee0d", size = 60892 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/12/cf/03675d8bd8ecbf4445504d8071adab19f5f993676795708e36402ab38263/openapi_pydantic-0.5.1-py3-none-any.whl", hash = "sha256:a3a09ef4586f5bd760a8df7f43028b60cafb6d9f61de2acba9574766255ab146", size = 96381 }, +] + +[[package]] +name = "opentelemetry-api" +version = "1.39.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "importlib-metadata" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/97/b9/3161be15bb8e3ad01be8be5a968a9237c3027c5be504362ff800fca3e442/opentelemetry_api-1.39.1.tar.gz", hash = "sha256:fbde8c80e1b937a2c61f20347e91c0c18a1940cecf012d62e65a7caf08967c9c", size = 65767 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cf/df/d3f1ddf4bb4cb50ed9b1139cc7b1c54c34a1e7ce8fd1b9a37c0d1551a6bd/opentelemetry_api-1.39.1-py3-none-any.whl", hash = "sha256:2edd8463432a7f8443edce90972169b195e7d6a05500cd29e6d13898187c9950", size = 66356 }, +] + +[[package]] +name = "opentelemetry-exporter-otlp-proto-common" +version = "1.39.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "opentelemetry-proto" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e9/9d/22d241b66f7bbde88a3bfa6847a351d2c46b84de23e71222c6aae25c7050/opentelemetry_exporter_otlp_proto_common-1.39.1.tar.gz", hash = "sha256:763370d4737a59741c89a67b50f9e39271639ee4afc999dadfe768541c027464", size = 20409 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8c/02/ffc3e143d89a27ac21fd557365b98bd0653b98de8a101151d5805b5d4c33/opentelemetry_exporter_otlp_proto_common-1.39.1-py3-none-any.whl", hash = "sha256:08f8a5862d64cc3435105686d0216c1365dc5701f86844a8cd56597d0c764fde", size = 18366 }, +] + +[[package]] +name = "opentelemetry-exporter-otlp-proto-http" +version = "1.39.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "googleapis-common-protos" }, + { name = "opentelemetry-api" }, + { name = "opentelemetry-exporter-otlp-proto-common" }, + { name = "opentelemetry-proto" }, + { name = "opentelemetry-sdk" }, + { name = "requests" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/80/04/2a08fa9c0214ae38880df01e8bfae12b067ec0793446578575e5080d6545/opentelemetry_exporter_otlp_proto_http-1.39.1.tar.gz", hash = "sha256:31bdab9745c709ce90a49a0624c2bd445d31a28ba34275951a6a362d16a0b9cb", size = 17288 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/95/f1/b27d3e2e003cd9a3592c43d099d2ed8d0a947c15281bf8463a256db0b46c/opentelemetry_exporter_otlp_proto_http-1.39.1-py3-none-any.whl", hash = "sha256:d9f5207183dd752a412c4cd564ca8875ececba13be6e9c6c370ffb752fd59985", size = 19641 }, +] + +[[package]] +name = "opentelemetry-instrumentation" +version = "0.60b1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "opentelemetry-api" }, + { name = "opentelemetry-semantic-conventions" }, + { name = "packaging" }, + { name = "wrapt" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/41/0f/7e6b713ac117c1f5e4e3300748af699b9902a2e5e34c9cf443dde25a01fa/opentelemetry_instrumentation-0.60b1.tar.gz", hash = "sha256:57ddc7974c6eb35865af0426d1a17132b88b2ed8586897fee187fd5b8944bd6a", size = 31706 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/77/d2/6788e83c5c86a2690101681aeef27eeb2a6bf22df52d3f263a22cee20915/opentelemetry_instrumentation-0.60b1-py3-none-any.whl", hash = "sha256:04480db952b48fb1ed0073f822f0ee26012b7be7c3eac1a3793122737c78632d", size = 33096 }, +] + +[[package]] +name = "opentelemetry-instrumentation-httpx" +version = "0.60b1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "opentelemetry-api" }, + { name = "opentelemetry-instrumentation" }, + { name = "opentelemetry-semantic-conventions" }, + { name = "opentelemetry-util-http" }, + { name = "wrapt" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/86/08/11208bcfcab4fc2023252c3f322aa397fd9ad948355fea60f5fc98648603/opentelemetry_instrumentation_httpx-0.60b1.tar.gz", hash = "sha256:a506ebaf28c60112cbe70ad4f0338f8603f148938cb7b6794ce1051cd2b270ae", size = 20611 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/43/59/b98e84eebf745ffc75397eaad4763795bff8a30cbf2373a50ed4e70646c5/opentelemetry_instrumentation_httpx-0.60b1-py3-none-any.whl", hash = "sha256:f37636dd742ad2af83d896ba69601ed28da51fa4e25d1ab62fde89ce413e275b", size = 15701 }, +] + +[[package]] +name = "opentelemetry-proto" +version = "1.39.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "protobuf" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/49/1d/f25d76d8260c156c40c97c9ed4511ec0f9ce353f8108ca6e7561f82a06b2/opentelemetry_proto-1.39.1.tar.gz", hash = "sha256:6c8e05144fc0d3ed4d22c2289c6b126e03bcd0e6a7da0f16cedd2e1c2772e2c8", size = 46152 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/51/95/b40c96a7b5203005a0b03d8ce8cd212ff23f1793d5ba289c87a097571b18/opentelemetry_proto-1.39.1-py3-none-any.whl", hash = "sha256:22cdc78efd3b3765d09e68bfbd010d4fc254c9818afd0b6b423387d9dee46007", size = 72535 }, +] + +[[package]] +name = "opentelemetry-sdk" +version = "1.39.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "opentelemetry-api" }, + { name = "opentelemetry-semantic-conventions" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/eb/fb/c76080c9ba07e1e8235d24cdcc4d125ef7aa3edf23eb4e497c2e50889adc/opentelemetry_sdk-1.39.1.tar.gz", hash = "sha256:cf4d4563caf7bff906c9f7967e2be22d0d6b349b908be0d90fb21c8e9c995cc6", size = 171460 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7c/98/e91cf858f203d86f4eccdf763dcf01cf03f1dae80c3750f7e635bfa206b6/opentelemetry_sdk-1.39.1-py3-none-any.whl", hash = "sha256:4d5482c478513ecb0a5d938dcc61394e647066e0cc2676bee9f3af3f3f45f01c", size = 132565 }, +] + +[[package]] +name = "opentelemetry-semantic-conventions" +version = "0.60b1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "opentelemetry-api" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/91/df/553f93ed38bf22f4b999d9be9c185adb558982214f33eae539d3b5cd0858/opentelemetry_semantic_conventions-0.60b1.tar.gz", hash = "sha256:87c228b5a0669b748c76d76df6c364c369c28f1c465e50f661e39737e84bc953", size = 137935 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7a/5e/5958555e09635d09b75de3c4f8b9cae7335ca545d77392ffe7331534c402/opentelemetry_semantic_conventions-0.60b1-py3-none-any.whl", hash = "sha256:9fa8c8b0c110da289809292b0591220d3a7b53c1526a23021e977d68597893fb", size = 219982 }, +] + +[[package]] +name = "opentelemetry-util-http" +version = "0.60b1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/50/fc/c47bb04a1d8a941a4061307e1eddfa331ed4d0ab13d8a9781e6db256940a/opentelemetry_util_http-0.60b1.tar.gz", hash = "sha256:0d97152ca8c8a41ced7172d29d3622a219317f74ae6bb3027cfbdcf22c3cc0d6", size = 11053 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/16/5c/d3f1733665f7cd582ef0842fb1d2ed0bc1fba10875160593342d22bba375/opentelemetry_util_http-0.60b1-py3-none-any.whl", hash = "sha256:66381ba28550c91bee14dcba8979ace443444af1ed609226634596b4b0faf199", size = 8947 }, +] + +[[package]] +name = "packaging" +version = "25.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a1/d4/1fc4078c65507b51b96ca8f8c3ba19e6a61c8253c72794544580a7b6c24d/packaging-25.0.tar.gz", hash = "sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f", size = 165727 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/20/12/38679034af332785aac8774540895e234f4d07f7545804097de4b666afd8/packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484", size = 66469 }, +] + +[[package]] +name = "pandas" +version = "3.0.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, + { name = "python-dateutil" }, + { name = "tzdata", marker = "sys_platform == 'emscripten' or sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/da/99/b342345300f13440fe9fe385c3c481e2d9a595ee3bab4d3219247ac94e9a/pandas-3.0.2.tar.gz", hash = "sha256:f4753e73e34c8d83221ba58f232433fca2748be8b18dbca02d242ed153945043", size = 4645855 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f3/b0/c20bd4d6d3f736e6bd6b55794e9cd0a617b858eaad27c8f410ea05d953b7/pandas-3.0.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:232a70ebb568c0c4d2db4584f338c1577d81e3af63292208d615907b698a0f18", size = 10347921 }, + { url = "https://files.pythonhosted.org/packages/35/d0/4831af68ce30cc2d03c697bea8450e3225a835ef497d0d70f31b8cdde965/pandas-3.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:970762605cff1ca0d3f71ed4f3a769ea8f85fc8e6348f6e110b8fea7e6eb5a14", size = 9888127 }, + { url = "https://files.pythonhosted.org/packages/61/a9/16ea9346e1fc4a96e2896242d9bc674764fb9049b0044c0132502f7a771e/pandas-3.0.2-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:aff4e6f4d722e0652707d7bcb190c445fe58428500c6d16005b02401764b1b3d", size = 10399577 }, + { url = "https://files.pythonhosted.org/packages/c4/a8/3a61a721472959ab0ce865ef05d10b0d6bfe27ce8801c99f33d4fa996e65/pandas-3.0.2-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ef8b27695c3d3dc78403c9a7d5e59a62d5464a7e1123b4e0042763f7104dc74f", size = 10880030 }, + { url = "https://files.pythonhosted.org/packages/da/65/7225c0ea4d6ce9cb2160a7fb7f39804871049f016e74782e5dade4d14109/pandas-3.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:f8d68083e49e16b84734eb1a4dcae4259a75c90fb6e2251ab9a00b61120c06ab", size = 11409468 }, + { url = "https://files.pythonhosted.org/packages/fa/5b/46e7c76032639f2132359b5cf4c785dd8cf9aea5ea64699eac752f02b9db/pandas-3.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:32cc41f310ebd4a296d93515fcac312216adfedb1894e879303987b8f1e2b97d", size = 11936381 }, + { url = "https://files.pythonhosted.org/packages/7b/8b/721a9cff6fa6a91b162eb51019c6243b82b3226c71bb6c8ef4a9bd65cbc6/pandas-3.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:a4785e1d6547d8427c5208b748ae2efb64659a21bd82bf440d4262d02bfa02a4", size = 9744993 }, + { url = "https://files.pythonhosted.org/packages/d5/18/7f0bd34ae27b28159aa80f2a6799f47fda34f7fb938a76e20c7b7fe3b200/pandas-3.0.2-cp312-cp312-win_arm64.whl", hash = "sha256:08504503f7101300107ecdc8df73658e4347586db5cfdadabc1592e9d7e7a0fd", size = 9056118 }, + { url = "https://files.pythonhosted.org/packages/bf/ca/3e639a1ea6fcd0617ca4e8ca45f62a74de33a56ae6cd552735470b22c8d3/pandas-3.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:b5918ba197c951dec132b0c5929a00c0bf05d5942f590d3c10a807f6e15a57d3", size = 10321105 }, + { url = "https://files.pythonhosted.org/packages/0b/77/dbc82ff2fb0e63c6564356682bf201edff0ba16c98630d21a1fb312a8182/pandas-3.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d606a041c89c0a474a4702d532ab7e73a14fe35c8d427b972a625c8e46373668", size = 9864088 }, + { url = "https://files.pythonhosted.org/packages/5c/2b/341f1b04bbca2e17e13cd3f08c215b70ef2c60c5356ef1e8c6857449edc7/pandas-3.0.2-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:710246ba0616e86891b58ab95f2495143bb2bc83ab6b06747c74216f583a6ac9", size = 10369066 }, + { url = "https://files.pythonhosted.org/packages/12/c5/cbb1ffefb20a93d3f0e1fdcda699fb84976210d411b008f97f48bf6ce27e/pandas-3.0.2-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5d3cfe227c725b1f3dff4278b43d8c784656a42a9325b63af6b1492a8232209e", size = 10876780 }, + { url = "https://files.pythonhosted.org/packages/98/fe/2249ae5e0a69bd0ddf17353d0a5d26611d70970111f5b3600cdc8be883e7/pandas-3.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c3b723df9087a9a9a840e263ebd9f88b64a12075d1bf2ea401a5a42f254f084d", size = 11375181 }, + { url = "https://files.pythonhosted.org/packages/de/64/77a38b09e70b6464883b8d7584ab543e748e42c1b5d337a2ee088e0df741/pandas-3.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a3096110bf9eac0070b7208465f2740e2d8a670d5cb6530b5bb884eca495fd39", size = 11928899 }, + { url = "https://files.pythonhosted.org/packages/5e/52/42855bf626868413f761addd574acc6195880ae247a5346477a4361c3acb/pandas-3.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:07a10f5c36512eead51bc578eb3354ad17578b22c013d89a796ab5eee90cd991", size = 9746574 }, + { url = "https://files.pythonhosted.org/packages/88/39/21304ae06a25e8bf9fc820d69b29b2c495b2ae580d1e143146c309941760/pandas-3.0.2-cp313-cp313-win_arm64.whl", hash = "sha256:5fdbfa05931071aba28b408e59226186b01eb5e92bea2ab78b65863ca3228d84", size = 9047156 }, + { url = "https://files.pythonhosted.org/packages/72/20/7defa8b27d4f330a903bb68eea33be07d839c5ea6bdda54174efcec0e1d2/pandas-3.0.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:dbc20dea3b9e27d0e66d74c42b2d0c1bed9c2ffe92adea33633e3bedeb5ac235", size = 10756238 }, + { url = "https://files.pythonhosted.org/packages/e9/95/49433c14862c636afc0e9b2db83ff16b3ad92959364e52b2955e44c8e94c/pandas-3.0.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:b75c347eff42497452116ce05ef461822d97ce5b9ff8df6edacb8076092c855d", size = 10408520 }, + { url = "https://files.pythonhosted.org/packages/3b/f8/462ad2b5881d6b8ec8e5f7ed2ea1893faa02290d13870a1600fe72ad8efc/pandas-3.0.2-cp313-cp313t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d1478075142e83a5571782ad007fb201ed074bdeac7ebcc8890c71442e96adf7", size = 10324154 }, + { url = "https://files.pythonhosted.org/packages/0a/65/d1e69b649cbcddda23ad6e4c40ef935340f6f652a006e5cbc3555ac8adb3/pandas-3.0.2-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5880314e69e763d4c8b27937090de570f1fb8d027059a7ada3f7f8e98bdcb677", size = 10714449 }, + { url = "https://files.pythonhosted.org/packages/47/a4/85b59bc65b8190ea3689882db6cdf32a5003c0ccd5a586c30fdcc3ffc4fc/pandas-3.0.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:b5329e26898896f06035241a626d7c335daa479b9bbc82be7c2742d048e41172", size = 11338475 }, + { url = "https://files.pythonhosted.org/packages/1e/c4/bc6966c6e38e5d9478b935272d124d80a589511ed1612a5d21d36f664c68/pandas-3.0.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:81526c4afd31971f8b62671442a4b2b51e0aa9acc3819c9f0f12a28b6fcf85f1", size = 11786568 }, + { url = "https://files.pythonhosted.org/packages/e8/74/09298ca9740beed1d3504e073d67e128aa07e5ca5ca2824b0c674c0b8676/pandas-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:7cadd7e9a44ec13b621aec60f9150e744cfc7a3dd32924a7e2f45edff31823b0", size = 10488652 }, + { url = "https://files.pythonhosted.org/packages/bb/40/c6ea527147c73b24fc15c891c3fcffe9c019793119c5742b8784a062c7db/pandas-3.0.2-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:db0dbfd2a6cdf3770aa60464d50333d8f3d9165b2f2671bcc299b72de5a6677b", size = 10326084 }, + { url = "https://files.pythonhosted.org/packages/95/25/bdb9326c3b5455f8d4d3549fce7abcf967259de146fe2cf7a82368141948/pandas-3.0.2-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:0555c5882688a39317179ab4a0ed41d3ebc8812ab14c69364bbee8fb7a3f6288", size = 9914146 }, + { url = "https://files.pythonhosted.org/packages/8d/77/3a227ff3337aa376c60d288e1d61c5d097131d0ac71f954d90a8f369e422/pandas-3.0.2-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:01f31a546acd5574ef77fe199bc90b55527c225c20ccda6601cf6b0fd5ed597c", size = 10444081 }, + { url = "https://files.pythonhosted.org/packages/15/88/3cdd54fa279341afa10acf8d2b503556b1375245dccc9315659f795dd2e9/pandas-3.0.2-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:deeca1b5a931fdf0c2212c8a659ade6d3b1edc21f0914ce71ef24456ca7a6535", size = 10897535 }, + { url = "https://files.pythonhosted.org/packages/06/9d/98cc7a7624f7932e40f434299260e2917b090a579d75937cb8a57b9d2de3/pandas-3.0.2-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:0f48afd9bb13300ffb5a3316973324c787054ba6665cda0da3fbd67f451995db", size = 11446992 }, + { url = "https://files.pythonhosted.org/packages/9a/cd/19ff605cc3760e80602e6826ddef2824d8e7050ed80f2e11c4b079741dc3/pandas-3.0.2-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:6c4d8458b97a35717b62469a4ea0e85abd5ed8687277f5ccfc67f8a5126f8c53", size = 11968257 }, + { url = "https://files.pythonhosted.org/packages/db/60/aba6a38de456e7341285102bede27514795c1eaa353bc0e7638b6b785356/pandas-3.0.2-cp314-cp314-win_amd64.whl", hash = "sha256:b35d14bb5d8285d9494fe93815a9e9307c0876e10f1e8e89ac5b88f728ec8dcf", size = 9865893 }, + { url = "https://files.pythonhosted.org/packages/08/71/e5ec979dd2e8a093dacb8864598c0ff59a0cee0bbcdc0bfec16a51684d4f/pandas-3.0.2-cp314-cp314-win_arm64.whl", hash = "sha256:63d141b56ef686f7f0d714cfb8de4e320475b86bf4b620aa0b7da89af8cbdbbb", size = 9188644 }, + { url = "https://files.pythonhosted.org/packages/f1/6c/7b45d85db19cae1eb524f2418ceaa9d85965dcf7b764ed151386b7c540f0/pandas-3.0.2-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:140f0cffb1fa2524e874dde5b477d9defe10780d8e9e220d259b2c0874c89d9d", size = 10776246 }, + { url = "https://files.pythonhosted.org/packages/a8/3e/7b00648b086c106e81766f25322b48aa8dfa95b55e621dbdf2fdd413a117/pandas-3.0.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:ae37e833ff4fed0ba352f6bdd8b73ba3ab3256a85e54edfd1ab51ae40cca0af8", size = 10424801 }, + { url = "https://files.pythonhosted.org/packages/da/6e/558dd09a71b53b4008e7fc8a98ec6d447e9bfb63cdaeea10e5eb9b2dabe8/pandas-3.0.2-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4d888a5c678a419a5bb41a2a93818e8ed9fd3172246555c0b37b7cc27027effd", size = 10345643 }, + { url = "https://files.pythonhosted.org/packages/be/e3/921c93b4d9a280409451dc8d07b062b503bbec0531d2627e73a756e99a82/pandas-3.0.2-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b444dc64c079e84df91baa8bf613d58405645461cabca929d9178f2cd392398d", size = 10743641 }, + { url = "https://files.pythonhosted.org/packages/56/ca/fd17286f24fa3b4d067965d8d5d7e14fe557dd4f979a0b068ac0deaf8228/pandas-3.0.2-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:4544c7a54920de8eeacaa1466a6b7268ecfbc9bc64ab4dbb89c6bbe94d5e0660", size = 11361993 }, + { url = "https://files.pythonhosted.org/packages/e4/a5/2f6ed612056819de445a433ca1f2821ac3dab7f150d569a59e9cc105de1d/pandas-3.0.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:734be7551687c00fbd760dc0522ed974f82ad230d4a10f54bf51b80d44a08702", size = 11815274 }, + { url = "https://files.pythonhosted.org/packages/00/2f/b622683e99ec3ce00b0854bac9e80868592c5b051733f2cf3a868e5fea26/pandas-3.0.2-cp314-cp314t-win_amd64.whl", hash = "sha256:57a07209bebcbcf768d2d13c9b78b852f9a15978dac41b9e6421a81ad4cdd276", size = 10888530 }, + { url = "https://files.pythonhosted.org/packages/cb/2b/f8434233fab2bd66a02ec014febe4e5adced20e2693e0e90a07d118ed30e/pandas-3.0.2-cp314-cp314t-win_arm64.whl", hash = "sha256:5371b72c2d4d415d08765f32d689217a43227484e81b2305b52076e328f6f482", size = 9455341 }, +] + +[[package]] +name = "pathable" +version = "0.5.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/72/55/b748445cb4ea6b125626f15379be7c96d1035d4fa3e8fee362fa92298abf/pathable-0.5.0.tar.gz", hash = "sha256:d81938348a1cacb525e7c75166270644782c0fb9c8cecc16be033e71427e0ef1", size = 16655 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/52/96/5a770e5c461462575474468e5af931cff9de036e7c2b4fea23c1c58d2cbe/pathable-0.5.0-py3-none-any.whl", hash = "sha256:646e3d09491a6351a0c82632a09c02cdf70a252e73196b36d8a15ba0a114f0a6", size = 16867 }, +] + +[[package]] +name = "pathspec" +version = "1.0.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/fa/36/e27608899f9b8d4dff0617b2d9ab17ca5608956ca44461ac14ac48b44015/pathspec-1.0.4.tar.gz", hash = "sha256:0210e2ae8a21a9137c0d470578cb0e595af87edaa6ebf12ff176f14a02e0e645", size = 131200 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ef/3c/2c197d226f9ea224a9ab8d197933f9da0ae0aac5b6e0f884e2b8d9c8e9f7/pathspec-1.0.4-py3-none-any.whl", hash = "sha256:fb6ae2fd4e7c921a165808a552060e722767cfa526f99ca5156ed2ce45a5c723", size = 55206 }, +] + +[[package]] +name = "pillow" +version = "12.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/8c/21/c2bcdd5906101a30244eaffc1b6e6ce71a31bd0742a01eb89e660ebfac2d/pillow-12.2.0.tar.gz", hash = "sha256:a830b1a40919539d07806aa58e1b114df53ddd43213d9c8b75847eee6c0182b5", size = 46987819 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/58/be/7482c8a5ebebbc6470b3eb791812fff7d5e0216c2be3827b30b8bb6603ed/pillow-12.2.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:2d192a155bbcec180f8564f693e6fd9bccff5a7af9b32e2e4bf8c9c69dbad6b5", size = 5308279 }, + { url = "https://files.pythonhosted.org/packages/d8/95/0a351b9289c2b5cbde0bacd4a83ebc44023e835490a727b2a3bd60ddc0f4/pillow-12.2.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f3f40b3c5a968281fd507d519e444c35f0ff171237f4fdde090dd60699458421", size = 4695490 }, + { url = "https://files.pythonhosted.org/packages/de/af/4e8e6869cbed569d43c416fad3dc4ecb944cb5d9492defaed89ddd6fe871/pillow-12.2.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:03e7e372d5240cc23e9f07deca4d775c0817bffc641b01e9c3af208dbd300987", size = 6284462 }, + { url = "https://files.pythonhosted.org/packages/e9/9e/c05e19657fd57841e476be1ab46c4d501bffbadbafdc31a6d665f8b737b6/pillow-12.2.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:b86024e52a1b269467a802258c25521e6d742349d760728092e1bc2d135b4d76", size = 8094744 }, + { url = "https://files.pythonhosted.org/packages/2b/54/1789c455ed10176066b6e7e6da1b01e50e36f94ba584dc68d9eebfe9156d/pillow-12.2.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7371b48c4fa448d20d2714c9a1f775a81155050d383333e0a6c15b1123dda005", size = 6398371 }, + { url = "https://files.pythonhosted.org/packages/43/e3/fdc657359e919462369869f1c9f0e973f353f9a9ee295a39b1fea8ee1a77/pillow-12.2.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:62f5409336adb0663b7caa0da5c7d9e7bdbaae9ce761d34669420c2a801b2780", size = 7087215 }, + { url = "https://files.pythonhosted.org/packages/8b/f8/2f6825e441d5b1959d2ca5adec984210f1ec086435b0ed5f52c19b3b8a6e/pillow-12.2.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:01afa7cf67f74f09523699b4e88c73fb55c13346d212a59a2db1f86b0a63e8c5", size = 6509783 }, + { url = "https://files.pythonhosted.org/packages/67/f9/029a27095ad20f854f9dba026b3ea6428548316e057e6fc3545409e86651/pillow-12.2.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fc3d34d4a8fbec3e88a79b92e5465e0f9b842b628675850d860b8bd300b159f5", size = 7212112 }, + { url = "https://files.pythonhosted.org/packages/be/42/025cfe05d1be22dbfdb4f264fe9de1ccda83f66e4fc3aac94748e784af04/pillow-12.2.0-cp312-cp312-win32.whl", hash = "sha256:58f62cc0f00fd29e64b29f4fd923ffdb3859c9f9e6105bfc37ba1d08994e8940", size = 6378489 }, + { url = "https://files.pythonhosted.org/packages/5d/7b/25a221d2c761c6a8ae21bfa3874988ff2583e19cf8a27bf2fee358df7942/pillow-12.2.0-cp312-cp312-win_amd64.whl", hash = "sha256:7f84204dee22a783350679a0333981df803dac21a0190d706a50475e361c93f5", size = 7084129 }, + { url = "https://files.pythonhosted.org/packages/10/e1/542a474affab20fd4a0f1836cb234e8493519da6b76899e30bcc5d990b8b/pillow-12.2.0-cp312-cp312-win_arm64.whl", hash = "sha256:af73337013e0b3b46f175e79492d96845b16126ddf79c438d7ea7ff27783a414", size = 2463612 }, + { url = "https://files.pythonhosted.org/packages/4a/01/53d10cf0dbad820a8db274d259a37ba50b88b24768ddccec07355382d5ad/pillow-12.2.0-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:8297651f5b5679c19968abefd6bb84d95fe30ef712eb1b2d9b2d31ca61267f4c", size = 4100837 }, + { url = "https://files.pythonhosted.org/packages/0f/98/f3a6657ecb698c937f6c76ee564882945f29b79bad496abcba0e84659ec5/pillow-12.2.0-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:50d8520da2a6ce0af445fa6d648c4273c3eeefbc32d7ce049f22e8b5c3daecc2", size = 4176528 }, + { url = "https://files.pythonhosted.org/packages/69/bc/8986948f05e3ea490b8442ea1c1d4d990b24a7e43d8a51b2c7d8b1dced36/pillow-12.2.0-cp313-cp313-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:766cef22385fa1091258ad7e6216792b156dc16d8d3fa607e7545b2b72061f1c", size = 3640401 }, + { url = "https://files.pythonhosted.org/packages/34/46/6c717baadcd62bc8ed51d238d521ab651eaa74838291bda1f86fe1f864c9/pillow-12.2.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:5d2fd0fa6b5d9d1de415060363433f28da8b1526c1c129020435e186794b3795", size = 5308094 }, + { url = "https://files.pythonhosted.org/packages/71/43/905a14a8b17fdb1ccb58d282454490662d2cb89a6bfec26af6d3520da5ec/pillow-12.2.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:56b25336f502b6ed02e889f4ece894a72612fe885889a6e8c4c80239ff6e5f5f", size = 4695402 }, + { url = "https://files.pythonhosted.org/packages/73/dd/42107efcb777b16fa0393317eac58f5b5cf30e8392e266e76e51cff28c3d/pillow-12.2.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:f1c943e96e85df3d3478f7b691f229887e143f81fedab9b20205349ab04d73ed", size = 6280005 }, + { url = "https://files.pythonhosted.org/packages/a8/68/b93e09e5e8549019e61acf49f65b1a8530765a7f812c77a7461bca7e4494/pillow-12.2.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:03f6fab9219220f041c74aeaa2939ff0062bd5c364ba9ce037197f4c6d498cd9", size = 8090669 }, + { url = "https://files.pythonhosted.org/packages/4b/6e/3ccb54ce8ec4ddd1accd2d89004308b7b0b21c4ac3d20fa70af4760a4330/pillow-12.2.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5cdfebd752ec52bf5bb4e35d9c64b40826bc5b40a13df7c3cda20a2c03a0f5ed", size = 6395194 }, + { url = "https://files.pythonhosted.org/packages/67/ee/21d4e8536afd1a328f01b359b4d3997b291ffd35a237c877b331c1c3b71c/pillow-12.2.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:eedf4b74eda2b5a4b2b2fb4c006d6295df3bf29e459e198c90ea48e130dc75c3", size = 7082423 }, + { url = "https://files.pythonhosted.org/packages/78/5f/e9f86ab0146464e8c133fe85df987ed9e77e08b29d8d35f9f9f4d6f917ba/pillow-12.2.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:00a2865911330191c0b818c59103b58a5e697cae67042366970a6b6f1b20b7f9", size = 6505667 }, + { url = "https://files.pythonhosted.org/packages/ed/1e/409007f56a2fdce61584fd3acbc2bbc259857d555196cedcadc68c015c82/pillow-12.2.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:1e1757442ed87f4912397c6d35a0db6a7b52592156014706f17658ff58bbf795", size = 7208580 }, + { url = "https://files.pythonhosted.org/packages/23/c4/7349421080b12fb35414607b8871e9534546c128a11965fd4a7002ccfbee/pillow-12.2.0-cp313-cp313-win32.whl", hash = "sha256:144748b3af2d1b358d41286056d0003f47cb339b8c43a9ea42f5fea4d8c66b6e", size = 6375896 }, + { url = "https://files.pythonhosted.org/packages/3f/82/8a3739a5e470b3c6cbb1d21d315800d8e16bff503d1f16b03a4ec3212786/pillow-12.2.0-cp313-cp313-win_amd64.whl", hash = "sha256:390ede346628ccc626e5730107cde16c42d3836b89662a115a921f28440e6a3b", size = 7081266 }, + { url = "https://files.pythonhosted.org/packages/c3/25/f968f618a062574294592f668218f8af564830ccebdd1fa6200f598e65c5/pillow-12.2.0-cp313-cp313-win_arm64.whl", hash = "sha256:8023abc91fba39036dbce14a7d6535632f99c0b857807cbbbf21ecc9f4717f06", size = 2463508 }, + { url = "https://files.pythonhosted.org/packages/4d/a4/b342930964e3cb4dce5038ae34b0eab4653334995336cd486c5a8c25a00c/pillow-12.2.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:042db20a421b9bafecc4b84a8b6e444686bd9d836c7fd24542db3e7df7baad9b", size = 5309927 }, + { url = "https://files.pythonhosted.org/packages/9f/de/23198e0a65a9cf06123f5435a5d95cea62a635697f8f03d134d3f3a96151/pillow-12.2.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:dd025009355c926a84a612fecf58bb315a3f6814b17ead51a8e48d3823d9087f", size = 4698624 }, + { url = "https://files.pythonhosted.org/packages/01/a6/1265e977f17d93ea37aa28aa81bad4fa597933879fac2520d24e021c8da3/pillow-12.2.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:88ddbc66737e277852913bd1e07c150cc7bb124539f94c4e2df5344494e0a612", size = 6321252 }, + { url = "https://files.pythonhosted.org/packages/3c/83/5982eb4a285967baa70340320be9f88e57665a387e3a53a7f0db8231a0cd/pillow-12.2.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d362d1878f00c142b7e1a16e6e5e780f02be8195123f164edf7eddd911eefe7c", size = 8126550 }, + { url = "https://files.pythonhosted.org/packages/4e/48/6ffc514adce69f6050d0753b1a18fd920fce8cac87620d5a31231b04bfc5/pillow-12.2.0-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2c727a6d53cb0018aadd8018c2b938376af27914a68a492f59dfcaca650d5eea", size = 6433114 }, + { url = "https://files.pythonhosted.org/packages/36/a3/f9a77144231fb8d40ee27107b4463e205fa4677e2ca2548e14da5cf18dce/pillow-12.2.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:efd8c21c98c5cc60653bcb311bef2ce0401642b7ce9d09e03a7da87c878289d4", size = 7115667 }, + { url = "https://files.pythonhosted.org/packages/c1/fc/ac4ee3041e7d5a565e1c4fd72a113f03b6394cc72ab7089d27608f8aaccb/pillow-12.2.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9f08483a632889536b8139663db60f6724bfcb443c96f1b18855860d7d5c0fd4", size = 6538966 }, + { url = "https://files.pythonhosted.org/packages/c0/a8/27fb307055087f3668f6d0a8ccb636e7431d56ed0750e07a60547b1e083e/pillow-12.2.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:dac8d77255a37e81a2efcbd1fc05f1c15ee82200e6c240d7e127e25e365c39ea", size = 7238241 }, + { url = "https://files.pythonhosted.org/packages/ad/4b/926ab182c07fccae9fcb120043464e1ff1564775ec8864f21a0ebce6ac25/pillow-12.2.0-cp313-cp313t-win32.whl", hash = "sha256:ee3120ae9dff32f121610bb08e4313be87e03efeadfc6c0d18f89127e24d0c24", size = 6379592 }, + { url = "https://files.pythonhosted.org/packages/c2/c4/f9e476451a098181b30050cc4c9a3556b64c02cf6497ea421ac047e89e4b/pillow-12.2.0-cp313-cp313t-win_amd64.whl", hash = "sha256:325ca0528c6788d2a6c3d40e3568639398137346c3d6e66bb61db96b96511c98", size = 7085542 }, + { url = "https://files.pythonhosted.org/packages/00/a4/285f12aeacbe2d6dc36c407dfbbe9e96d4a80b0fb710a337f6d2ad978c75/pillow-12.2.0-cp313-cp313t-win_arm64.whl", hash = "sha256:2e5a76d03a6c6dcef67edabda7a52494afa4035021a79c8558e14af25313d453", size = 2465765 }, + { url = "https://files.pythonhosted.org/packages/bf/98/4595daa2365416a86cb0d495248a393dfc84e96d62ad080c8546256cb9c0/pillow-12.2.0-cp314-cp314-ios_13_0_arm64_iphoneos.whl", hash = "sha256:3adc9215e8be0448ed6e814966ecf3d9952f0ea40eb14e89a102b87f450660d8", size = 4100848 }, + { url = "https://files.pythonhosted.org/packages/0b/79/40184d464cf89f6663e18dfcf7ca21aae2491fff1a16127681bf1fa9b8cf/pillow-12.2.0-cp314-cp314-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:6a9adfc6d24b10f89588096364cc726174118c62130c817c2837c60cf08a392b", size = 4176515 }, + { url = "https://files.pythonhosted.org/packages/b0/63/703f86fd4c422a9cf722833670f4f71418fb116b2853ff7da722ea43f184/pillow-12.2.0-cp314-cp314-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:6a6e67ea2e6feda684ed370f9a1c52e7a243631c025ba42149a2cc5934dec295", size = 3640159 }, + { url = "https://files.pythonhosted.org/packages/71/e0/fb22f797187d0be2270f83500aab851536101b254bfa1eae10795709d283/pillow-12.2.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:2bb4a8d594eacdfc59d9e5ad972aa8afdd48d584ffd5f13a937a664c3e7db0ed", size = 5312185 }, + { url = "https://files.pythonhosted.org/packages/ba/8c/1a9e46228571de18f8e28f16fabdfc20212a5d019f3e3303452b3f0a580d/pillow-12.2.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:80b2da48193b2f33ed0c32c38140f9d3186583ce7d516526d462645fd98660ae", size = 4695386 }, + { url = "https://files.pythonhosted.org/packages/70/62/98f6b7f0c88b9addd0e87c217ded307b36be024d4ff8869a812b241d1345/pillow-12.2.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:22db17c68434de69d8ecfc2fe821569195c0c373b25cccb9cbdacf2c6e53c601", size = 6280384 }, + { url = "https://files.pythonhosted.org/packages/5e/03/688747d2e91cfbe0e64f316cd2e8005698f76ada3130d0194664174fa5de/pillow-12.2.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:7b14cc0106cd9aecda615dd6903840a058b4700fcb817687d0ee4fc8b6e389be", size = 8091599 }, + { url = "https://files.pythonhosted.org/packages/f6/35/577e22b936fcdd66537329b33af0b4ccfefaeabd8aec04b266528cddb33c/pillow-12.2.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8cbeb542b2ebc6fcdacabf8aca8c1a97c9b3ad3927d46b8723f9d4f033288a0f", size = 6396021 }, + { url = "https://files.pythonhosted.org/packages/11/8d/d2532ad2a603ca2b93ad9f5135732124e57811d0168155852f37fbce2458/pillow-12.2.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4bfd07bc812fbd20395212969e41931001fd59eb55a60658b0e5710872e95286", size = 7083360 }, + { url = "https://files.pythonhosted.org/packages/5e/26/d325f9f56c7e039034897e7380e9cc202b1e368bfd04d4cbe6a441f02885/pillow-12.2.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:9aba9a17b623ef750a4d11b742cbafffeb48a869821252b30ee21b5e91392c50", size = 6507628 }, + { url = "https://files.pythonhosted.org/packages/5f/f7/769d5632ffb0988f1c5e7660b3e731e30f7f8ec4318e94d0a5d674eb65a4/pillow-12.2.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:deede7c263feb25dba4e82ea23058a235dcc2fe1f6021025dc71f2b618e26104", size = 7209321 }, + { url = "https://files.pythonhosted.org/packages/6a/7a/c253e3c645cd47f1aceea6a8bacdba9991bf45bb7dfe927f7c893e89c93c/pillow-12.2.0-cp314-cp314-win32.whl", hash = "sha256:632ff19b2778e43162304d50da0181ce24ac5bb8180122cbe1bf4673428328c7", size = 6479723 }, + { url = "https://files.pythonhosted.org/packages/cd/8b/601e6566b957ca50e28725cb6c355c59c2c8609751efbecd980db44e0349/pillow-12.2.0-cp314-cp314-win_amd64.whl", hash = "sha256:4e6c62e9d237e9b65fac06857d511e90d8461a32adcc1b9065ea0c0fa3a28150", size = 7217400 }, + { url = "https://files.pythonhosted.org/packages/d6/94/220e46c73065c3e2951bb91c11a1fb636c8c9ad427ac3ce7d7f3359b9b2f/pillow-12.2.0-cp314-cp314-win_arm64.whl", hash = "sha256:b1c1fbd8a5a1af3412a0810d060a78b5136ec0836c8a4ef9aa11807f2a22f4e1", size = 2554835 }, + { url = "https://files.pythonhosted.org/packages/b6/ab/1b426a3974cb0e7da5c29ccff4807871d48110933a57207b5a676cccc155/pillow-12.2.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:57850958fe9c751670e49b2cecf6294acc99e562531f4bd317fa5ddee2068463", size = 5314225 }, + { url = "https://files.pythonhosted.org/packages/19/1e/dce46f371be2438eecfee2a1960ee2a243bbe5e961890146d2dee1ff0f12/pillow-12.2.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:d5d38f1411c0ed9f97bcb49b7bd59b6b7c314e0e27420e34d99d844b9ce3b6f3", size = 4698541 }, + { url = "https://files.pythonhosted.org/packages/55/c3/7fbecf70adb3a0c33b77a300dc52e424dc22ad8cdc06557a2e49523b703d/pillow-12.2.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:5c0a9f29ca8e79f09de89293f82fc9b0270bb4af1d58bc98f540cc4aedf03166", size = 6322251 }, + { url = "https://files.pythonhosted.org/packages/1c/3c/7fbc17cfb7e4fe0ef1642e0abc17fc6c94c9f7a16be41498e12e2ba60408/pillow-12.2.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:1610dd6c61621ae1cf811bef44d77e149ce3f7b95afe66a4512f8c59f25d9ebe", size = 8127807 }, + { url = "https://files.pythonhosted.org/packages/ff/c3/a8ae14d6defd2e448493ff512fae903b1e9bd40b72efb6ec55ce0048c8ce/pillow-12.2.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0a34329707af4f73cf1782a36cd2289c0368880654a2c11f027bcee9052d35dd", size = 6433935 }, + { url = "https://files.pythonhosted.org/packages/6e/32/2880fb3a074847ac159d8f902cb43278a61e85f681661e7419e6596803ed/pillow-12.2.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8e9c4f5b3c546fa3458a29ab22646c1c6c787ea8f5ef51300e5a60300736905e", size = 7116720 }, + { url = "https://files.pythonhosted.org/packages/46/87/495cc9c30e0129501643f24d320076f4cc54f718341df18cc70ec94c44e1/pillow-12.2.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:fb043ee2f06b41473269765c2feae53fc2e2fbf96e5e22ca94fb5ad677856f06", size = 6540498 }, + { url = "https://files.pythonhosted.org/packages/18/53/773f5edca692009d883a72211b60fdaf8871cbef075eaa9d577f0a2f989e/pillow-12.2.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:f278f034eb75b4e8a13a54a876cc4a5ab39173d2cdd93a638e1b467fc545ac43", size = 7239413 }, + { url = "https://files.pythonhosted.org/packages/c9/e4/4b64a97d71b2a83158134abbb2f5bd3f8a2ea691361282f010998f339ec7/pillow-12.2.0-cp314-cp314t-win32.whl", hash = "sha256:6bb77b2dcb06b20f9f4b4a8454caa581cd4dd0643a08bacf821216a16d9c8354", size = 6482084 }, + { url = "https://files.pythonhosted.org/packages/ba/13/306d275efd3a3453f72114b7431c877d10b1154014c1ebbedd067770d629/pillow-12.2.0-cp314-cp314t-win_amd64.whl", hash = "sha256:6562ace0d3fb5f20ed7290f1f929cae41b25ae29528f2af1722966a0a02e2aa1", size = 7225152 }, + { url = "https://files.pythonhosted.org/packages/ff/6e/cf826fae916b8658848d7b9f38d88da6396895c676e8086fc0988073aaf8/pillow-12.2.0-cp314-cp314t-win_arm64.whl", hash = "sha256:aa88ccfe4e32d362816319ed727a004423aab09c5cea43c01a4b435643fa34eb", size = 2556579 }, +] + +[[package]] +name = "platformdirs" +version = "4.9.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/19/56/8d4c30c8a1d07013911a8fdbd8f89440ef9f08d07a1b50ab8ca8be5a20f9/platformdirs-4.9.4.tar.gz", hash = "sha256:1ec356301b7dc906d83f371c8f487070e99d3ccf9e501686456394622a01a934", size = 28737 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/63/d7/97f7e3a6abb67d8080dd406fd4df842c2be0efaf712d1c899c32a075027c/platformdirs-4.9.4-py3-none-any.whl", hash = "sha256:68a9a4619a666ea6439f2ff250c12a853cd1cbd5158d258bd824a7df6be2f868", size = 21216 }, +] + +[[package]] +name = "plotly" +version = "6.6.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "narwhals" }, + { name = "packaging" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/24/fb/41efe84970cfddefd4ccf025e2cbfafe780004555f583e93dba3dac2cdef/plotly-6.6.0.tar.gz", hash = "sha256:b897f15f3b02028d69f755f236be890ba950d0a42d7dfc619b44e2d8cea8748c", size = 7027956 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/52/d2/c6e44dba74f17c6216ce1b56044a9b93a929f1c2d5bdaff892512b260f5e/plotly-6.6.0-py3-none-any.whl", hash = "sha256:8d6daf0f87412e0c0bfe72e809d615217ab57cc715899a1e5145135a7800d1d0", size = 9910315 }, +] + +[[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 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746", size = 20538 }, +] + +[[package]] +name = "prompt-toolkit" +version = "3.0.52" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "wcwidth" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a1/96/06e01a7b38dce6fe1db213e061a4602dd6032a8a97ef6c1a862537732421/prompt_toolkit-3.0.52.tar.gz", hash = "sha256:28cde192929c8e7321de85de1ddbe736f1375148b02f2e17edd840042b1be855", size = 434198 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/84/03/0d3ce49e2505ae70cf43bc5bb3033955d2fc9f932163e84dc0779cc47f48/prompt_toolkit-3.0.52-py3-none-any.whl", hash = "sha256:9aac639a3bbd33284347de5ad8d68ecc044b91a762dc39b7c21095fcd6a19955", size = 391431 }, +] + +[[package]] +name = "propcache" +version = "0.4.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/9e/da/e9fc233cf63743258bff22b3dfa7ea5baef7b5bc324af47a0ad89b8ffc6f/propcache-0.4.1.tar.gz", hash = "sha256:f48107a8c637e80362555f37ecf49abe20370e557cc4ab374f04ec4423c97c3d", size = 46442 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a2/0f/f17b1b2b221d5ca28b4b876e8bb046ac40466513960646bda8e1853cdfa2/propcache-0.4.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e153e9cd40cc8945138822807139367f256f89c6810c2634a4f6902b52d3b4e2", size = 80061 }, + { url = "https://files.pythonhosted.org/packages/76/47/8ccf75935f51448ba9a16a71b783eb7ef6b9ee60f5d14c7f8a8a79fbeed7/propcache-0.4.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:cd547953428f7abb73c5ad82cbb32109566204260d98e41e5dfdc682eb7f8403", size = 46037 }, + { url = "https://files.pythonhosted.org/packages/0a/b6/5c9a0e42df4d00bfb4a3cbbe5cf9f54260300c88a0e9af1f47ca5ce17ac0/propcache-0.4.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f048da1b4f243fc44f205dfd320933a951b8d89e0afd4c7cacc762a8b9165207", size = 47324 }, + { url = "https://files.pythonhosted.org/packages/9e/d3/6c7ee328b39a81ee877c962469f1e795f9db87f925251efeb0545e0020d0/propcache-0.4.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ec17c65562a827bba85e3872ead335f95405ea1674860d96483a02f5c698fa72", size = 225505 }, + { url = "https://files.pythonhosted.org/packages/01/5d/1c53f4563490b1d06a684742cc6076ef944bc6457df6051b7d1a877c057b/propcache-0.4.1-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:405aac25c6394ef275dee4c709be43745d36674b223ba4eb7144bf4d691b7367", size = 230242 }, + { url = "https://files.pythonhosted.org/packages/20/e1/ce4620633b0e2422207c3cb774a0ee61cac13abc6217763a7b9e2e3f4a12/propcache-0.4.1-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:0013cb6f8dde4b2a2f66903b8ba740bdfe378c943c4377a200551ceb27f379e4", size = 238474 }, + { url = "https://files.pythonhosted.org/packages/46/4b/3aae6835b8e5f44ea6a68348ad90f78134047b503765087be2f9912140ea/propcache-0.4.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:15932ab57837c3368b024473a525e25d316d8353016e7cc0e5ba9eb343fbb1cf", size = 221575 }, + { url = "https://files.pythonhosted.org/packages/6e/a5/8a5e8678bcc9d3a1a15b9a29165640d64762d424a16af543f00629c87338/propcache-0.4.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:031dce78b9dc099f4c29785d9cf5577a3faf9ebf74ecbd3c856a7b92768c3df3", size = 216736 }, + { url = "https://files.pythonhosted.org/packages/f1/63/b7b215eddeac83ca1c6b934f89d09a625aa9ee4ba158338854c87210cc36/propcache-0.4.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:ab08df6c9a035bee56e31af99be621526bd237bea9f32def431c656b29e41778", size = 213019 }, + { url = "https://files.pythonhosted.org/packages/57/74/f580099a58c8af587cac7ba19ee7cb418506342fbbe2d4a4401661cca886/propcache-0.4.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:4d7af63f9f93fe593afbf104c21b3b15868efb2c21d07d8732c0c4287e66b6a6", size = 220376 }, + { url = "https://files.pythonhosted.org/packages/c4/ee/542f1313aff7eaf19c2bb758c5d0560d2683dac001a1c96d0774af799843/propcache-0.4.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:cfc27c945f422e8b5071b6e93169679e4eb5bf73bbcbf1ba3ae3a83d2f78ebd9", size = 226988 }, + { url = "https://files.pythonhosted.org/packages/8f/18/9c6b015dd9c6930f6ce2229e1f02fb35298b847f2087ea2b436a5bfa7287/propcache-0.4.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:35c3277624a080cc6ec6f847cbbbb5b49affa3598c4535a0a4682a697aaa5c75", size = 215615 }, + { url = "https://files.pythonhosted.org/packages/80/9e/e7b85720b98c45a45e1fca6a177024934dc9bc5f4d5dd04207f216fc33ed/propcache-0.4.1-cp312-cp312-win32.whl", hash = "sha256:671538c2262dadb5ba6395e26c1731e1d52534bfe9ae56d0b5573ce539266aa8", size = 38066 }, + { url = "https://files.pythonhosted.org/packages/54/09/d19cff2a5aaac632ec8fc03737b223597b1e347416934c1b3a7df079784c/propcache-0.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:cb2d222e72399fcf5890d1d5cc1060857b9b236adff2792ff48ca2dfd46c81db", size = 41655 }, + { url = "https://files.pythonhosted.org/packages/68/ab/6b5c191bb5de08036a8c697b265d4ca76148efb10fa162f14af14fb5f076/propcache-0.4.1-cp312-cp312-win_arm64.whl", hash = "sha256:204483131fb222bdaaeeea9f9e6c6ed0cac32731f75dfc1d4a567fc1926477c1", size = 37789 }, + { url = "https://files.pythonhosted.org/packages/bf/df/6d9c1b6ac12b003837dde8a10231a7344512186e87b36e855bef32241942/propcache-0.4.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:43eedf29202c08550aac1d14e0ee619b0430aaef78f85864c1a892294fbc28cf", size = 77750 }, + { url = "https://files.pythonhosted.org/packages/8b/e8/677a0025e8a2acf07d3418a2e7ba529c9c33caf09d3c1f25513023c1db56/propcache-0.4.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:d62cdfcfd89ccb8de04e0eda998535c406bf5e060ffd56be6c586cbcc05b3311", size = 44780 }, + { url = "https://files.pythonhosted.org/packages/89/a4/92380f7ca60f99ebae761936bc48a72a639e8a47b29050615eef757cb2a7/propcache-0.4.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cae65ad55793da34db5f54e4029b89d3b9b9490d8abe1b4c7ab5d4b8ec7ebf74", size = 46308 }, + { url = "https://files.pythonhosted.org/packages/2d/48/c5ac64dee5262044348d1d78a5f85dd1a57464a60d30daee946699963eb3/propcache-0.4.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:333ddb9031d2704a301ee3e506dc46b1fe5f294ec198ed6435ad5b6a085facfe", size = 208182 }, + { url = "https://files.pythonhosted.org/packages/c6/0c/cd762dd011a9287389a6a3eb43aa30207bde253610cca06824aeabfe9653/propcache-0.4.1-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:fd0858c20f078a32cf55f7e81473d96dcf3b93fd2ccdb3d40fdf54b8573df3af", size = 211215 }, + { url = "https://files.pythonhosted.org/packages/30/3e/49861e90233ba36890ae0ca4c660e95df565b2cd15d4a68556ab5865974e/propcache-0.4.1-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:678ae89ebc632c5c204c794f8dab2837c5f159aeb59e6ed0539500400577298c", size = 218112 }, + { url = "https://files.pythonhosted.org/packages/f1/8b/544bc867e24e1bd48f3118cecd3b05c694e160a168478fa28770f22fd094/propcache-0.4.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d472aeb4fbf9865e0c6d622d7f4d54a4e101a89715d8904282bb5f9a2f476c3f", size = 204442 }, + { url = "https://files.pythonhosted.org/packages/50/a6/4282772fd016a76d3e5c0df58380a5ea64900afd836cec2c2f662d1b9bb3/propcache-0.4.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:4d3df5fa7e36b3225954fba85589da77a0fe6a53e3976de39caf04a0db4c36f1", size = 199398 }, + { url = "https://files.pythonhosted.org/packages/3e/ec/d8a7cd406ee1ddb705db2139f8a10a8a427100347bd698e7014351c7af09/propcache-0.4.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:ee17f18d2498f2673e432faaa71698032b0127ebf23ae5974eeaf806c279df24", size = 196920 }, + { url = "https://files.pythonhosted.org/packages/f6/6c/f38ab64af3764f431e359f8baf9e0a21013e24329e8b85d2da32e8ed07ca/propcache-0.4.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:580e97762b950f993ae618e167e7be9256b8353c2dcd8b99ec100eb50f5286aa", size = 203748 }, + { url = "https://files.pythonhosted.org/packages/d6/e3/fa846bd70f6534d647886621388f0a265254d30e3ce47e5c8e6e27dbf153/propcache-0.4.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:501d20b891688eb8e7aa903021f0b72d5a55db40ffaab27edefd1027caaafa61", size = 205877 }, + { url = "https://files.pythonhosted.org/packages/e2/39/8163fc6f3133fea7b5f2827e8eba2029a0277ab2c5beee6c1db7b10fc23d/propcache-0.4.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9a0bd56e5b100aef69bd8562b74b46254e7c8812918d3baa700c8a8009b0af66", size = 199437 }, + { url = "https://files.pythonhosted.org/packages/93/89/caa9089970ca49c7c01662bd0eeedfe85494e863e8043565aeb6472ce8fe/propcache-0.4.1-cp313-cp313-win32.whl", hash = "sha256:bcc9aaa5d80322bc2fb24bb7accb4a30f81e90ab8d6ba187aec0744bc302ad81", size = 37586 }, + { url = "https://files.pythonhosted.org/packages/f5/ab/f76ec3c3627c883215b5c8080debb4394ef5a7a29be811f786415fc1e6fd/propcache-0.4.1-cp313-cp313-win_amd64.whl", hash = "sha256:381914df18634f5494334d201e98245c0596067504b9372d8cf93f4bb23e025e", size = 40790 }, + { url = "https://files.pythonhosted.org/packages/59/1b/e71ae98235f8e2ba5004d8cb19765a74877abf189bc53fc0c80d799e56c3/propcache-0.4.1-cp313-cp313-win_arm64.whl", hash = "sha256:8873eb4460fd55333ea49b7d189749ecf6e55bf85080f11b1c4530ed3034cba1", size = 37158 }, + { url = "https://files.pythonhosted.org/packages/83/ce/a31bbdfc24ee0dcbba458c8175ed26089cf109a55bbe7b7640ed2470cfe9/propcache-0.4.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:92d1935ee1f8d7442da9c0c4fa7ac20d07e94064184811b685f5c4fada64553b", size = 81451 }, + { url = "https://files.pythonhosted.org/packages/25/9c/442a45a470a68456e710d96cacd3573ef26a1d0a60067e6a7d5e655621ed/propcache-0.4.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:473c61b39e1460d386479b9b2f337da492042447c9b685f28be4f74d3529e566", size = 46374 }, + { url = "https://files.pythonhosted.org/packages/f4/bf/b1d5e21dbc3b2e889ea4327044fb16312a736d97640fb8b6aa3f9c7b3b65/propcache-0.4.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:c0ef0aaafc66fbd87842a3fe3902fd889825646bc21149eafe47be6072725835", size = 48396 }, + { url = "https://files.pythonhosted.org/packages/f4/04/5b4c54a103d480e978d3c8a76073502b18db0c4bc17ab91b3cb5092ad949/propcache-0.4.1-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f95393b4d66bfae908c3ca8d169d5f79cd65636ae15b5e7a4f6e67af675adb0e", size = 275950 }, + { url = "https://files.pythonhosted.org/packages/b4/c1/86f846827fb969c4b78b0af79bba1d1ea2156492e1b83dea8b8a6ae27395/propcache-0.4.1-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c07fda85708bc48578467e85099645167a955ba093be0a2dcba962195676e859", size = 273856 }, + { url = "https://files.pythonhosted.org/packages/36/1d/fc272a63c8d3bbad6878c336c7a7dea15e8f2d23a544bda43205dfa83ada/propcache-0.4.1-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:af223b406d6d000830c6f65f1e6431783fc3f713ba3e6cc8c024d5ee96170a4b", size = 280420 }, + { url = "https://files.pythonhosted.org/packages/07/0c/01f2219d39f7e53d52e5173bcb09c976609ba30209912a0680adfb8c593a/propcache-0.4.1-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a78372c932c90ee474559c5ddfffd718238e8673c340dc21fe45c5b8b54559a0", size = 263254 }, + { url = "https://files.pythonhosted.org/packages/2d/18/cd28081658ce597898f0c4d174d4d0f3c5b6d4dc27ffafeef835c95eb359/propcache-0.4.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:564d9f0d4d9509e1a870c920a89b2fec951b44bf5ba7d537a9e7c1ccec2c18af", size = 261205 }, + { url = "https://files.pythonhosted.org/packages/7a/71/1f9e22eb8b8316701c2a19fa1f388c8a3185082607da8e406a803c9b954e/propcache-0.4.1-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:17612831fda0138059cc5546f4d12a2aacfb9e47068c06af35c400ba58ba7393", size = 247873 }, + { url = "https://files.pythonhosted.org/packages/4a/65/3d4b61f36af2b4eddba9def857959f1016a51066b4f1ce348e0cf7881f58/propcache-0.4.1-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:41a89040cb10bd345b3c1a873b2bf36413d48da1def52f268a055f7398514874", size = 262739 }, + { url = "https://files.pythonhosted.org/packages/2a/42/26746ab087faa77c1c68079b228810436ccd9a5ce9ac85e2b7307195fd06/propcache-0.4.1-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:e35b88984e7fa64aacecea39236cee32dd9bd8c55f57ba8a75cf2399553f9bd7", size = 263514 }, + { url = "https://files.pythonhosted.org/packages/94/13/630690fe201f5502d2403dd3cfd451ed8858fe3c738ee88d095ad2ff407b/propcache-0.4.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:6f8b465489f927b0df505cbe26ffbeed4d6d8a2bbc61ce90eb074ff129ef0ab1", size = 257781 }, + { url = "https://files.pythonhosted.org/packages/92/f7/1d4ec5841505f423469efbfc381d64b7b467438cd5a4bbcbb063f3b73d27/propcache-0.4.1-cp313-cp313t-win32.whl", hash = "sha256:2ad890caa1d928c7c2965b48f3a3815c853180831d0e5503d35cf00c472f4717", size = 41396 }, + { url = "https://files.pythonhosted.org/packages/48/f0/615c30622316496d2cbbc29f5985f7777d3ada70f23370608c1d3e081c1f/propcache-0.4.1-cp313-cp313t-win_amd64.whl", hash = "sha256:f7ee0e597f495cf415bcbd3da3caa3bd7e816b74d0d52b8145954c5e6fd3ff37", size = 44897 }, + { url = "https://files.pythonhosted.org/packages/fd/ca/6002e46eccbe0e33dcd4069ef32f7f1c9e243736e07adca37ae8c4830ec3/propcache-0.4.1-cp313-cp313t-win_arm64.whl", hash = "sha256:929d7cbe1f01bb7baffb33dc14eb5691c95831450a26354cd210a8155170c93a", size = 39789 }, + { url = "https://files.pythonhosted.org/packages/8e/5c/bca52d654a896f831b8256683457ceddd490ec18d9ec50e97dfd8fc726a8/propcache-0.4.1-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:3f7124c9d820ba5548d431afb4632301acf965db49e666aa21c305cbe8c6de12", size = 78152 }, + { url = "https://files.pythonhosted.org/packages/65/9b/03b04e7d82a5f54fb16113d839f5ea1ede58a61e90edf515f6577c66fa8f/propcache-0.4.1-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:c0d4b719b7da33599dfe3b22d3db1ef789210a0597bc650b7cee9c77c2be8c5c", size = 44869 }, + { url = "https://files.pythonhosted.org/packages/b2/fa/89a8ef0468d5833a23fff277b143d0573897cf75bd56670a6d28126c7d68/propcache-0.4.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:9f302f4783709a78240ebc311b793f123328716a60911d667e0c036bc5dcbded", size = 46596 }, + { url = "https://files.pythonhosted.org/packages/86/bd/47816020d337f4a746edc42fe8d53669965138f39ee117414c7d7a340cfe/propcache-0.4.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c80ee5802e3fb9ea37938e7eecc307fb984837091d5fd262bb37238b1ae97641", size = 206981 }, + { url = "https://files.pythonhosted.org/packages/df/f6/c5fa1357cc9748510ee55f37173eb31bfde6d94e98ccd9e6f033f2fc06e1/propcache-0.4.1-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ed5a841e8bb29a55fb8159ed526b26adc5bdd7e8bd7bf793ce647cb08656cdf4", size = 211490 }, + { url = "https://files.pythonhosted.org/packages/80/1e/e5889652a7c4a3846683401a48f0f2e5083ce0ec1a8a5221d8058fbd1adf/propcache-0.4.1-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:55c72fd6ea2da4c318e74ffdf93c4fe4e926051133657459131a95c846d16d44", size = 215371 }, + { url = "https://files.pythonhosted.org/packages/b2/f2/889ad4b2408f72fe1a4f6a19491177b30ea7bf1a0fd5f17050ca08cfc882/propcache-0.4.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8326e144341460402713f91df60ade3c999d601e7eb5ff8f6f7862d54de0610d", size = 201424 }, + { url = "https://files.pythonhosted.org/packages/27/73/033d63069b57b0812c8bd19f311faebeceb6ba31b8f32b73432d12a0b826/propcache-0.4.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:060b16ae65bc098da7f6d25bf359f1f31f688384858204fe5d652979e0015e5b", size = 197566 }, + { url = "https://files.pythonhosted.org/packages/dc/89/ce24f3dc182630b4e07aa6d15f0ff4b14ed4b9955fae95a0b54c58d66c05/propcache-0.4.1-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:89eb3fa9524f7bec9de6e83cf3faed9d79bffa560672c118a96a171a6f55831e", size = 193130 }, + { url = "https://files.pythonhosted.org/packages/a9/24/ef0d5fd1a811fb5c609278d0209c9f10c35f20581fcc16f818da959fc5b4/propcache-0.4.1-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:dee69d7015dc235f526fe80a9c90d65eb0039103fe565776250881731f06349f", size = 202625 }, + { url = "https://files.pythonhosted.org/packages/f5/02/98ec20ff5546f68d673df2f7a69e8c0d076b5abd05ca882dc7ee3a83653d/propcache-0.4.1-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:5558992a00dfd54ccbc64a32726a3357ec93825a418a401f5cc67df0ac5d9e49", size = 204209 }, + { url = "https://files.pythonhosted.org/packages/a0/87/492694f76759b15f0467a2a93ab68d32859672b646aa8a04ce4864e7932d/propcache-0.4.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:c9b822a577f560fbd9554812526831712c1436d2c046cedee4c3796d3543b144", size = 197797 }, + { url = "https://files.pythonhosted.org/packages/ee/36/66367de3575db1d2d3f3d177432bd14ee577a39d3f5d1b3d5df8afe3b6e2/propcache-0.4.1-cp314-cp314-win32.whl", hash = "sha256:ab4c29b49d560fe48b696cdcb127dd36e0bc2472548f3bf56cc5cb3da2b2984f", size = 38140 }, + { url = "https://files.pythonhosted.org/packages/0c/2a/a758b47de253636e1b8aef181c0b4f4f204bf0dd964914fb2af90a95b49b/propcache-0.4.1-cp314-cp314-win_amd64.whl", hash = "sha256:5a103c3eb905fcea0ab98be99c3a9a5ab2de60228aa5aceedc614c0281cf6153", size = 41257 }, + { url = "https://files.pythonhosted.org/packages/34/5e/63bd5896c3fec12edcbd6f12508d4890d23c265df28c74b175e1ef9f4f3b/propcache-0.4.1-cp314-cp314-win_arm64.whl", hash = "sha256:74c1fb26515153e482e00177a1ad654721bf9207da8a494a0c05e797ad27b992", size = 38097 }, + { url = "https://files.pythonhosted.org/packages/99/85/9ff785d787ccf9bbb3f3106f79884a130951436f58392000231b4c737c80/propcache-0.4.1-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:824e908bce90fb2743bd6b59db36eb4f45cd350a39637c9f73b1c1ea66f5b75f", size = 81455 }, + { url = "https://files.pythonhosted.org/packages/90/85/2431c10c8e7ddb1445c1f7c4b54d886e8ad20e3c6307e7218f05922cad67/propcache-0.4.1-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:c2b5e7db5328427c57c8e8831abda175421b709672f6cfc3d630c3b7e2146393", size = 46372 }, + { url = "https://files.pythonhosted.org/packages/01/20/b0972d902472da9bcb683fa595099911f4d2e86e5683bcc45de60dd05dc3/propcache-0.4.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:6f6ff873ed40292cd4969ef5310179afd5db59fdf055897e282485043fc80ad0", size = 48411 }, + { url = "https://files.pythonhosted.org/packages/e2/e3/7dc89f4f21e8f99bad3d5ddb3a3389afcf9da4ac69e3deb2dcdc96e74169/propcache-0.4.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:49a2dc67c154db2c1463013594c458881a069fcf98940e61a0569016a583020a", size = 275712 }, + { url = "https://files.pythonhosted.org/packages/20/67/89800c8352489b21a8047c773067644e3897f02ecbbd610f4d46b7f08612/propcache-0.4.1-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:005f08e6a0529984491e37d8dbc3dd86f84bd78a8ceb5fa9a021f4c48d4984be", size = 273557 }, + { url = "https://files.pythonhosted.org/packages/e2/a1/b52b055c766a54ce6d9c16d9aca0cad8059acd9637cdf8aa0222f4a026ef/propcache-0.4.1-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5c3310452e0d31390da9035c348633b43d7e7feb2e37be252be6da45abd1abcc", size = 280015 }, + { url = "https://files.pythonhosted.org/packages/48/c8/33cee30bd890672c63743049f3c9e4be087e6780906bfc3ec58528be59c1/propcache-0.4.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4c3c70630930447f9ef1caac7728c8ad1c56bc5015338b20fed0d08ea2480b3a", size = 262880 }, + { url = "https://files.pythonhosted.org/packages/0c/b1/8f08a143b204b418285c88b83d00edbd61afbc2c6415ffafc8905da7038b/propcache-0.4.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:8e57061305815dfc910a3634dcf584f08168a8836e6999983569f51a8544cd89", size = 260938 }, + { url = "https://files.pythonhosted.org/packages/cf/12/96e4664c82ca2f31e1c8dff86afb867348979eb78d3cb8546a680287a1e9/propcache-0.4.1-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:521a463429ef54143092c11a77e04056dd00636f72e8c45b70aaa3140d639726", size = 247641 }, + { url = "https://files.pythonhosted.org/packages/18/ed/e7a9cfca28133386ba52278136d42209d3125db08d0a6395f0cba0c0285c/propcache-0.4.1-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:120c964da3fdc75e3731aa392527136d4ad35868cc556fd09bb6d09172d9a367", size = 262510 }, + { url = "https://files.pythonhosted.org/packages/f5/76/16d8bf65e8845dd62b4e2b57444ab81f07f40caa5652b8969b87ddcf2ef6/propcache-0.4.1-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:d8f353eb14ee3441ee844ade4277d560cdd68288838673273b978e3d6d2c8f36", size = 263161 }, + { url = "https://files.pythonhosted.org/packages/e7/70/c99e9edb5d91d5ad8a49fa3c1e8285ba64f1476782fed10ab251ff413ba1/propcache-0.4.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:ab2943be7c652f09638800905ee1bab2c544e537edb57d527997a24c13dc1455", size = 257393 }, + { url = "https://files.pythonhosted.org/packages/08/02/87b25304249a35c0915d236575bc3574a323f60b47939a2262b77632a3ee/propcache-0.4.1-cp314-cp314t-win32.whl", hash = "sha256:05674a162469f31358c30bcaa8883cb7829fa3110bf9c0991fe27d7896c42d85", size = 42546 }, + { url = "https://files.pythonhosted.org/packages/cb/ef/3c6ecf8b317aa982f309835e8f96987466123c6e596646d4e6a1dfcd080f/propcache-0.4.1-cp314-cp314t-win_amd64.whl", hash = "sha256:990f6b3e2a27d683cb7602ed6c86f15ee6b43b1194736f9baaeb93d0016633b1", size = 46259 }, + { url = "https://files.pythonhosted.org/packages/c4/2d/346e946d4951f37eca1e4f55be0f0174c52cd70720f84029b02f296f4a38/propcache-0.4.1-cp314-cp314t-win_arm64.whl", hash = "sha256:ecef2343af4cc68e05131e45024ba34f6095821988a9d0a02aa7c73fcc448aa9", size = 40428 }, + { url = "https://files.pythonhosted.org/packages/5b/5a/bc7b4a4ef808fa59a816c17b20c4bef6884daebbdf627ff2a161da67da19/propcache-0.4.1-py3-none-any.whl", hash = "sha256:af2a6052aeb6cf17d3e46ee169099044fd8224cbaf75c76a2ef596e8163e2237", size = 13305 }, +] + +[[package]] +name = "protobuf" +version = "6.33.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/66/70/e908e9c5e52ef7c3a6c7902c9dfbb34c7e29c25d2f81ade3856445fd5c94/protobuf-6.33.6.tar.gz", hash = "sha256:a6768d25248312c297558af96a9f9c929e8c4cee0659cb07e780731095f38135", size = 444531 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fc/9f/2f509339e89cfa6f6a4c4ff50438db9ca488dec341f7e454adad60150b00/protobuf-6.33.6-cp310-abi3-win32.whl", hash = "sha256:7d29d9b65f8afef196f8334e80d6bc1d5d4adedb449971fefd3723824e6e77d3", size = 425739 }, + { url = "https://files.pythonhosted.org/packages/76/5d/683efcd4798e0030c1bab27374fd13a89f7c2515fb1f3123efdfaa5eab57/protobuf-6.33.6-cp310-abi3-win_amd64.whl", hash = "sha256:0cd27b587afca21b7cfa59a74dcbd48a50f0a6400cfb59391340ad729d91d326", size = 437089 }, + { url = "https://files.pythonhosted.org/packages/5c/01/a3c3ed5cd186f39e7880f8303cc51385a198a81469d53d0fdecf1f64d929/protobuf-6.33.6-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:9720e6961b251bde64edfdab7d500725a2af5280f3f4c87e57c0208376aa8c3a", size = 427737 }, + { url = "https://files.pythonhosted.org/packages/ee/90/b3c01fdec7d2f627b3a6884243ba328c1217ed2d978def5c12dc50d328a3/protobuf-6.33.6-cp39-abi3-manylinux2014_aarch64.whl", hash = "sha256:e2afbae9b8e1825e3529f88d514754e094278bb95eadc0e199751cdd9a2e82a2", size = 324610 }, + { url = "https://files.pythonhosted.org/packages/9b/ca/25afc144934014700c52e05103c2421997482d561f3101ff352e1292fb81/protobuf-6.33.6-cp39-abi3-manylinux2014_s390x.whl", hash = "sha256:c96c37eec15086b79762ed265d59ab204dabc53056e3443e702d2681f4b39ce3", size = 339381 }, + { url = "https://files.pythonhosted.org/packages/16/92/d1e32e3e0d894fe00b15ce28ad4944ab692713f2e7f0a99787405e43533a/protobuf-6.33.6-cp39-abi3-manylinux2014_x86_64.whl", hash = "sha256:e9db7e292e0ab79dd108d7f1a94fe31601ce1ee3f7b79e0692043423020b0593", size = 323436 }, + { url = "https://files.pythonhosted.org/packages/c4/72/02445137af02769918a93807b2b7890047c32bfb9f90371cbc12688819eb/protobuf-6.33.6-py3-none-any.whl", hash = "sha256:77179e006c476e69bf8e8ce866640091ec42e1beb80b213c3900006ecfba6901", size = 170656 }, +] + +[[package]] +name = "py-key-value-aio" +version = "0.4.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "beartype" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/04/3c/0397c072a38d4bc580994b42e0c90c5f44f679303489e4376289534735e5/py_key_value_aio-0.4.4.tar.gz", hash = "sha256:e3012e6243ed7cc09bb05457bd4d03b1ba5c2b1ca8700096b3927db79ffbbe55", size = 92300 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/32/69/f1b537ee70b7def42d63124a539ed3026a11a3ffc3086947a1ca6e861868/py_key_value_aio-0.4.4-py3-none-any.whl", hash = "sha256:18e17564ecae61b987f909fc2cd41ee2012c84b4b1dcb8c055cf8b4bc1bf3f5d", size = 152291 }, +] + +[package.optional-dependencies] +filetree = [ + { name = "aiofile" }, + { name = "anyio" }, +] +keyring = [ + { name = "keyring" }, +] +memory = [ + { name = "cachetools" }, +] + +[[package]] +name = "pyarrow" +version = "23.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/88/22/134986a4cc224d593c1afde5494d18ff629393d74cc2eddb176669f234a4/pyarrow-23.0.1.tar.gz", hash = "sha256:b8c5873e33440b2bc2f4a79d2b47017a89c5a24116c055625e6f2ee50523f019", size = 1167336 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9a/4b/4166bb5abbfe6f750fc60ad337c43ecf61340fa52ab386da6e8dbf9e63c4/pyarrow-23.0.1-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:f4b0dbfa124c0bb161f8b5ebb40f1a680b70279aa0c9901d44a2b5a20806039f", size = 34214575 }, + { url = "https://files.pythonhosted.org/packages/e1/da/3f941e3734ac8088ea588b53e860baeddac8323ea40ce22e3d0baa865cc9/pyarrow-23.0.1-cp312-cp312-macosx_12_0_x86_64.whl", hash = "sha256:7707d2b6673f7de054e2e83d59f9e805939038eebe1763fe811ee8fa5c0cd1a7", size = 35832540 }, + { url = "https://files.pythonhosted.org/packages/88/7c/3d841c366620e906d54430817531b877ba646310296df42ef697308c2705/pyarrow-23.0.1-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:86ff03fb9f1a320266e0de855dee4b17da6794c595d207f89bba40d16b5c78b9", size = 44470940 }, + { url = "https://files.pythonhosted.org/packages/2c/a5/da83046273d990f256cb79796a190bbf7ec999269705ddc609403f8c6b06/pyarrow-23.0.1-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:813d99f31275919c383aab17f0f455a04f5a429c261cc411b1e9a8f5e4aaaa05", size = 47586063 }, + { url = "https://files.pythonhosted.org/packages/5b/3c/b7d2ebcff47a514f47f9da1e74b7949138c58cfeb108cdd4ee62f43f0cf3/pyarrow-23.0.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:bf5842f960cddd2ef757d486041d57c96483efc295a8c4a0e20e704cbbf39c67", size = 48173045 }, + { url = "https://files.pythonhosted.org/packages/43/b2/b40961262213beaba6acfc88698eb773dfce32ecdf34d19291db94c2bd73/pyarrow-23.0.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:564baf97c858ecc03ec01a41062e8f4698abc3e6e2acd79c01c2e97880a19730", size = 50621741 }, + { url = "https://files.pythonhosted.org/packages/f6/70/1fdda42d65b28b078e93d75d371b2185a61da89dda4def8ba6ba41ebdeb4/pyarrow-23.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:07deae7783782ac7250989a7b2ecde9b3c343a643f82e8a4df03d93b633006f0", size = 27620678 }, + { url = "https://files.pythonhosted.org/packages/47/10/2cbe4c6f0fb83d2de37249567373d64327a5e4d8db72f486db42875b08f6/pyarrow-23.0.1-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:6b8fda694640b00e8af3c824f99f789e836720aa8c9379fb435d4c4953a756b8", size = 34210066 }, + { url = "https://files.pythonhosted.org/packages/cb/4f/679fa7e84dadbaca7a65f7cdba8d6c83febbd93ca12fa4adf40ba3b6362b/pyarrow-23.0.1-cp313-cp313-macosx_12_0_x86_64.whl", hash = "sha256:8ff51b1addc469b9444b7c6f3548e19dc931b172ab234e995a60aea9f6e6025f", size = 35825526 }, + { url = "https://files.pythonhosted.org/packages/f9/63/d2747d930882c9d661e9398eefc54f15696547b8983aaaf11d4a2e8b5426/pyarrow-23.0.1-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:71c5be5cbf1e1cb6169d2a0980850bccb558ddc9b747b6206435313c47c37677", size = 44473279 }, + { url = "https://files.pythonhosted.org/packages/b3/93/10a48b5e238de6d562a411af6467e71e7aedbc9b87f8d3a35f1560ae30fb/pyarrow-23.0.1-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:9b6f4f17b43bc39d56fec96e53fe89d94bac3eb134137964371b45352d40d0c2", size = 47585798 }, + { url = "https://files.pythonhosted.org/packages/5c/20/476943001c54ef078dbf9542280e22741219a184a0632862bca4feccd666/pyarrow-23.0.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:9fc13fc6c403d1337acab46a2c4346ca6c9dec5780c3c697cf8abfd5e19b6b37", size = 48179446 }, + { url = "https://files.pythonhosted.org/packages/4b/b6/5dd0c47b335fcd8edba9bfab78ad961bd0fd55ebe53468cc393f45e0be60/pyarrow-23.0.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5c16ed4f53247fa3ffb12a14d236de4213a4415d127fe9cebed33d51671113e2", size = 50623972 }, + { url = "https://files.pythonhosted.org/packages/d5/09/a532297c9591a727d67760e2e756b83905dd89adb365a7f6e9c72578bcc1/pyarrow-23.0.1-cp313-cp313-win_amd64.whl", hash = "sha256:cecfb12ef629cf6be0b1887f9f86463b0dd3dc3195ae6224e74006be4736035a", size = 27540749 }, + { url = "https://files.pythonhosted.org/packages/a5/8e/38749c4b1303e6ae76b3c80618f84861ae0c55dd3c2273842ea6f8258233/pyarrow-23.0.1-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:29f7f7419a0e30264ea261fdc0e5fe63ce5a6095003db2945d7cd78df391a7e1", size = 34471544 }, + { url = "https://files.pythonhosted.org/packages/a3/73/f237b2bc8c669212f842bcfd842b04fc8d936bfc9d471630569132dc920d/pyarrow-23.0.1-cp313-cp313t-macosx_12_0_x86_64.whl", hash = "sha256:33d648dc25b51fd8055c19e4261e813dfc4d2427f068bcecc8b53d01b81b0500", size = 35949911 }, + { url = "https://files.pythonhosted.org/packages/0c/86/b912195eee0903b5611bf596833def7d146ab2d301afeb4b722c57ffc966/pyarrow-23.0.1-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:cd395abf8f91c673dd3589cadc8cc1ee4e8674fa61b2e923c8dd215d9c7d1f41", size = 44520337 }, + { url = "https://files.pythonhosted.org/packages/69/c2/f2a717fb824f62d0be952ea724b4f6f9372a17eed6f704b5c9526f12f2f1/pyarrow-23.0.1-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:00be9576d970c31defb5c32eb72ef585bf600ef6d0a82d5eccaae96639cf9d07", size = 47548944 }, + { url = "https://files.pythonhosted.org/packages/84/a7/90007d476b9f0dc308e3bc57b832d004f848fd6c0da601375d20d92d1519/pyarrow-23.0.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:c2139549494445609f35a5cda4eb94e2c9e4d704ce60a095b342f82460c73a83", size = 48236269 }, + { url = "https://files.pythonhosted.org/packages/b0/3f/b16fab3e77709856eb6ac328ce35f57a6d4a18462c7ca5186ef31b45e0e0/pyarrow-23.0.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:7044b442f184d84e2351e5084600f0d7343d6117aabcbc1ac78eb1ae11eb4125", size = 50604794 }, + { url = "https://files.pythonhosted.org/packages/e9/a1/22df0620a9fac31d68397a75465c344e83c3dfe521f7612aea33e27ab6c0/pyarrow-23.0.1-cp313-cp313t-win_amd64.whl", hash = "sha256:a35581e856a2fafa12f3f54fce4331862b1cfb0bef5758347a858a4aa9d6bae8", size = 27660642 }, + { url = "https://files.pythonhosted.org/packages/8d/1b/6da9a89583ce7b23ac611f183ae4843cd3a6cf54f079549b0e8c14031e73/pyarrow-23.0.1-cp314-cp314-macosx_12_0_arm64.whl", hash = "sha256:5df1161da23636a70838099d4aaa65142777185cc0cdba4037a18cee7d8db9ca", size = 34238755 }, + { url = "https://files.pythonhosted.org/packages/ae/b5/d58a241fbe324dbaeb8df07be6af8752c846192d78d2272e551098f74e88/pyarrow-23.0.1-cp314-cp314-macosx_12_0_x86_64.whl", hash = "sha256:fa8e51cb04b9f8c9c5ace6bab63af9a1f88d35c0d6cbf53e8c17c098552285e1", size = 35847826 }, + { url = "https://files.pythonhosted.org/packages/54/a5/8cbc83f04aba433ca7b331b38f39e000efd9f0c7ce47128670e737542996/pyarrow-23.0.1-cp314-cp314-manylinux_2_28_aarch64.whl", hash = "sha256:0b95a3994f015be13c63148fef8832e8a23938128c185ee951c98908a696e0eb", size = 44536859 }, + { url = "https://files.pythonhosted.org/packages/36/2e/c0f017c405fcdc252dbccafbe05e36b0d0eb1ea9a958f081e01c6972927f/pyarrow-23.0.1-cp314-cp314-manylinux_2_28_x86_64.whl", hash = "sha256:4982d71350b1a6e5cfe1af742c53dfb759b11ce14141870d05d9e540d13bc5d1", size = 47614443 }, + { url = "https://files.pythonhosted.org/packages/af/6b/2314a78057912f5627afa13ba43809d9d653e6630859618b0fd81a4e0759/pyarrow-23.0.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:c250248f1fe266db627921c89b47b7c06fee0489ad95b04d50353537d74d6886", size = 48232991 }, + { url = "https://files.pythonhosted.org/packages/40/f2/1bcb1d3be3460832ef3370d621142216e15a2c7c62602a4ea19ec240dd64/pyarrow-23.0.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:5f4763b83c11c16e5f4c15601ba6dfa849e20723b46aa2617cb4bffe8768479f", size = 50645077 }, + { url = "https://files.pythonhosted.org/packages/eb/3f/b1da7b61cd66566a4d4c8383d376c606d1c34a906c3f1cb35c479f59d1aa/pyarrow-23.0.1-cp314-cp314-win_amd64.whl", hash = "sha256:3a4c85ef66c134161987c17b147d6bffdca4566f9a4c1d81a0a01cdf08414ea5", size = 28234271 }, + { url = "https://files.pythonhosted.org/packages/b5/78/07f67434e910a0f7323269be7bfbf58699bd0c1d080b18a1ab49ba943fe8/pyarrow-23.0.1-cp314-cp314t-macosx_12_0_arm64.whl", hash = "sha256:17cd28e906c18af486a499422740298c52d7c6795344ea5002a7720b4eadf16d", size = 34488692 }, + { url = "https://files.pythonhosted.org/packages/50/76/34cf7ae93ece1f740a04910d9f7e80ba166b9b4ab9596a953e9e62b90fe1/pyarrow-23.0.1-cp314-cp314t-macosx_12_0_x86_64.whl", hash = "sha256:76e823d0e86b4fb5e1cf4a58d293036e678b5a4b03539be933d3b31f9406859f", size = 35964383 }, + { url = "https://files.pythonhosted.org/packages/46/90/459b827238936d4244214be7c684e1b366a63f8c78c380807ae25ed92199/pyarrow-23.0.1-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:a62e1899e3078bf65943078b3ad2a6ddcacf2373bc06379aac61b1e548a75814", size = 44538119 }, + { url = "https://files.pythonhosted.org/packages/28/a1/93a71ae5881e99d1f9de1d4554a87be37da11cd6b152239fb5bd924fdc64/pyarrow-23.0.1-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:df088e8f640c9fae3b1f495b3c64755c4e719091caf250f3a74d095ddf3c836d", size = 47571199 }, + { url = "https://files.pythonhosted.org/packages/88/a3/d2c462d4ef313521eaf2eff04d204ac60775263f1fb08c374b543f79f610/pyarrow-23.0.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:46718a220d64677c93bc243af1d44b55998255427588e400677d7192671845c7", size = 48259435 }, + { url = "https://files.pythonhosted.org/packages/cc/f1/11a544b8c3d38a759eb3fbb022039117fd633e9a7b19e4841cc3da091915/pyarrow-23.0.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:a09f3876e87f48bc2f13583ab551f0379e5dfb83210391e68ace404181a20690", size = 50629149 }, + { url = "https://files.pythonhosted.org/packages/50/f2/c0e76a0b451ffdf0cf788932e182758eb7558953f4f27f1aff8e2518b653/pyarrow-23.0.1-cp314-cp314t-win_amd64.whl", hash = "sha256:527e8d899f14bd15b740cd5a54ad56b7f98044955373a17179d5956ddb93d9ce", size = 28365807 }, +] + +[[package]] +name = "pyasn1" +version = "0.6.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/5c/5f/6583902b6f79b399c9c40674ac384fd9cd77805f9e6205075f828ef11fb2/pyasn1-0.6.3.tar.gz", hash = "sha256:697a8ecd6d98891189184ca1fa05d1bb00e2f84b5977c481452050549c8a72cf", size = 148685 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5d/a0/7d793dce3fa811fe047d6ae2431c672364b462850c6235ae306c0efd025f/pyasn1-0.6.3-py3-none-any.whl", hash = "sha256:a80184d120f0864a52a073acc6fc642847d0be408e7c7252f31390c0f4eadcde", size = 83997 }, +] + +[[package]] +name = "pyasn1-modules" +version = "0.4.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pyasn1" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e9/e6/78ebbb10a8c8e4b61a59249394a4a594c1a7af95593dc933a349c8d00964/pyasn1_modules-0.4.2.tar.gz", hash = "sha256:677091de870a80aae844b1ca6134f54652fa2c8c5a52aa396440ac3106e941e6", size = 307892 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/47/8d/d529b5d697919ba8c11ad626e835d4039be708a35b0d22de83a269a6682c/pyasn1_modules-0.4.2-py3-none-any.whl", hash = "sha256:29253a9207ce32b64c3ac6600edc75368f98473906e8fd1043bd6b5b1de2c14a", size = 181259 }, +] + +[[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 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0c/c3/44f3fbbfa403ea2a7c779186dc20772604442dde72947e7d01069cbe98e3/pycparser-3.0-py3-none-any.whl", hash = "sha256:b727414169a36b7d524c1c3e31839a521725078d7b2ff038656844266160a992", size = 48172 }, +] + +[[package]] +name = "pydantic" +version = "2.12.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "annotated-types" }, + { name = "pydantic-core" }, + { name = "typing-extensions" }, + { name = "typing-inspection" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/69/44/36f1a6e523abc58ae5f928898e4aca2e0ea509b5aa6f6f392a5d882be928/pydantic-2.12.5.tar.gz", hash = "sha256:4d351024c75c0f085a9febbb665ce8c0c6ec5d30e903bdb6394b7ede26aebb49", size = 821591 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5a/87/b70ad306ebb6f9b585f114d0ac2137d792b48be34d732d60e597c2f8465a/pydantic-2.12.5-py3-none-any.whl", hash = "sha256:e561593fccf61e8a20fc46dfc2dfe075b8be7d0188df33f221ad1f0139180f9d", size = 463580 }, +] + +[package.optional-dependencies] +email = [ + { name = "email-validator" }, +] + +[[package]] +name = "pydantic-ai" +version = "1.76.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pydantic-ai-slim", extra = ["ag-ui", "anthropic", "bedrock", "cli", "cohere", "evals", "fastmcp", "google", "groq", "huggingface", "logfire", "mcp", "mistral", "openai", "retries", "spec", "temporal", "ui", "vertexai", "xai"] }, +] +sdist = { url = "https://files.pythonhosted.org/packages/07/87/7c4e104c5faa6b3f6a2271a272231e12cba97cad29d939a1cfc7c027d13a/pydantic_ai-1.76.0.tar.gz", hash = "sha256:076c25f0f9c6d8042d5c4db32020a97aed1b7f91596c1147a9ebf8bd7ee94248", size = 12659 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e5/c2/8f762847db3f76cafbfad18aea49305b82f15cd8c67f644d0abfc51fc92c/pydantic_ai-1.76.0-py3-none-any.whl", hash = "sha256:7bc4fed1750a1d5fc470cf855cd1b1fcd49446897fc64b2e987df129a0ae3c71", size = 7553 }, +] + +[[package]] +name = "pydantic-ai-slim" +version = "1.76.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "genai-prices" }, + { name = "griffelib" }, + { name = "httpx" }, + { name = "opentelemetry-api" }, + { name = "pydantic" }, + { name = "pydantic-graph" }, + { name = "typing-inspection" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a8/12/625331a88ea2db885e4cda4c2384f8dac9a876260ee3e6e982a950733e6c/pydantic_ai_slim-1.76.0.tar.gz", hash = "sha256:db82bc9a24f9c80d00be23f7a18e5cda8484d77c61a5cd8eedfc2fc8515657b2", size = 508214 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bd/c6/7801af6853502bd53f00e88560f60270d8a2ab3bd8e19732d5ae8f261503/pydantic_ai_slim-1.76.0-py3-none-any.whl", hash = "sha256:1932799ff46a03e83fca3fb194f580dcbf3b24c9d2571ef64d0789c950499e23", size = 651190 }, +] + +[package.optional-dependencies] +ag-ui = [ + { name = "ag-ui-protocol" }, + { name = "starlette" }, +] +anthropic = [ + { name = "anthropic" }, +] +bedrock = [ + { name = "boto3" }, +] +cli = [ + { name = "argcomplete" }, + { name = "prompt-toolkit" }, + { name = "pyperclip" }, + { name = "pyyaml" }, + { name = "rich" }, +] +cohere = [ + { name = "cohere", marker = "sys_platform != 'emscripten'" }, +] +evals = [ + { name = "pydantic-evals" }, +] +fastmcp = [ + { name = "fastmcp" }, +] +google = [ + { name = "google-genai" }, +] +groq = [ + { name = "groq" }, +] +huggingface = [ + { name = "huggingface-hub" }, +] +logfire = [ + { name = "logfire", extra = ["httpx"] }, +] +mcp = [ + { name = "mcp" }, +] +mistral = [ + { name = "mistralai" }, +] +openai = [ + { name = "openai" }, + { name = "tiktoken" }, +] +retries = [ + { name = "tenacity" }, +] +spec = [ + { name = "pydantic-handlebars" }, + { name = "pyyaml" }, +] +temporal = [ + { name = "temporalio" }, +] +ui = [ + { name = "starlette" }, +] +vertexai = [ + { name = "google-auth" }, + { name = "requests" }, +] +xai = [ + { name = "xai-sdk" }, +] + +[[package]] +name = "pydantic-core" +version = "2.41.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/71/70/23b021c950c2addd24ec408e9ab05d59b035b39d97cdc1130e1bce647bb6/pydantic_core-2.41.5.tar.gz", hash = "sha256:08daa51ea16ad373ffd5e7606252cc32f07bc72b28284b6bc9c6df804816476e", size = 460952 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5f/5d/5f6c63eebb5afee93bcaae4ce9a898f3373ca23df3ccaef086d0233a35a7/pydantic_core-2.41.5-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:f41a7489d32336dbf2199c8c0a215390a751c5b014c2c1c5366e817202e9cdf7", size = 2110990 }, + { url = "https://files.pythonhosted.org/packages/aa/32/9c2e8ccb57c01111e0fd091f236c7b371c1bccea0fa85247ac55b1e2b6b6/pydantic_core-2.41.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:070259a8818988b9a84a449a2a7337c7f430a22acc0859c6b110aa7212a6d9c0", size = 1896003 }, + { url = "https://files.pythonhosted.org/packages/68/b8/a01b53cb0e59139fbc9e4fda3e9724ede8de279097179be4ff31f1abb65a/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e96cea19e34778f8d59fe40775a7a574d95816eb150850a85a7a4c8f4b94ac69", size = 1919200 }, + { url = "https://files.pythonhosted.org/packages/38/de/8c36b5198a29bdaade07b5985e80a233a5ac27137846f3bc2d3b40a47360/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ed2e99c456e3fadd05c991f8f437ef902e00eedf34320ba2b0842bd1c3ca3a75", size = 2052578 }, + { url = "https://files.pythonhosted.org/packages/00/b5/0e8e4b5b081eac6cb3dbb7e60a65907549a1ce035a724368c330112adfdd/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:65840751b72fbfd82c3c640cff9284545342a4f1eb1586ad0636955b261b0b05", size = 2208504 }, + { url = "https://files.pythonhosted.org/packages/77/56/87a61aad59c7c5b9dc8caad5a41a5545cba3810c3e828708b3d7404f6cef/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e536c98a7626a98feb2d3eaf75944ef6f3dbee447e1f841eae16f2f0a72d8ddc", size = 2335816 }, + { url = "https://files.pythonhosted.org/packages/0d/76/941cc9f73529988688a665a5c0ecff1112b3d95ab48f81db5f7606f522d3/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eceb81a8d74f9267ef4081e246ffd6d129da5d87e37a77c9bde550cb04870c1c", size = 2075366 }, + { url = "https://files.pythonhosted.org/packages/d3/43/ebef01f69baa07a482844faaa0a591bad1ef129253ffd0cdaa9d8a7f72d3/pydantic_core-2.41.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d38548150c39b74aeeb0ce8ee1d8e82696f4a4e16ddc6de7b1d8823f7de4b9b5", size = 2171698 }, + { url = "https://files.pythonhosted.org/packages/b1/87/41f3202e4193e3bacfc2c065fab7706ebe81af46a83d3e27605029c1f5a6/pydantic_core-2.41.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:c23e27686783f60290e36827f9c626e63154b82b116d7fe9adba1fda36da706c", size = 2132603 }, + { url = "https://files.pythonhosted.org/packages/49/7d/4c00df99cb12070b6bccdef4a195255e6020a550d572768d92cc54dba91a/pydantic_core-2.41.5-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:482c982f814460eabe1d3bb0adfdc583387bd4691ef00b90575ca0d2b6fe2294", size = 2329591 }, + { url = "https://files.pythonhosted.org/packages/cc/6a/ebf4b1d65d458f3cda6a7335d141305dfa19bdc61140a884d165a8a1bbc7/pydantic_core-2.41.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:bfea2a5f0b4d8d43adf9d7b8bf019fb46fdd10a2e5cde477fbcb9d1fa08c68e1", size = 2319068 }, + { url = "https://files.pythonhosted.org/packages/49/3b/774f2b5cd4192d5ab75870ce4381fd89cf218af999515baf07e7206753f0/pydantic_core-2.41.5-cp312-cp312-win32.whl", hash = "sha256:b74557b16e390ec12dca509bce9264c3bbd128f8a2c376eaa68003d7f327276d", size = 1985908 }, + { url = "https://files.pythonhosted.org/packages/86/45/00173a033c801cacf67c190fef088789394feaf88a98a7035b0e40d53dc9/pydantic_core-2.41.5-cp312-cp312-win_amd64.whl", hash = "sha256:1962293292865bca8e54702b08a4f26da73adc83dd1fcf26fbc875b35d81c815", size = 2020145 }, + { url = "https://files.pythonhosted.org/packages/f9/22/91fbc821fa6d261b376a3f73809f907cec5ca6025642c463d3488aad22fb/pydantic_core-2.41.5-cp312-cp312-win_arm64.whl", hash = "sha256:1746d4a3d9a794cacae06a5eaaccb4b8643a131d45fbc9af23e353dc0a5ba5c3", size = 1976179 }, + { url = "https://files.pythonhosted.org/packages/87/06/8806241ff1f70d9939f9af039c6c35f2360cf16e93c2ca76f184e76b1564/pydantic_core-2.41.5-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:941103c9be18ac8daf7b7adca8228f8ed6bb7a1849020f643b3a14d15b1924d9", size = 2120403 }, + { url = "https://files.pythonhosted.org/packages/94/02/abfa0e0bda67faa65fef1c84971c7e45928e108fe24333c81f3bfe35d5f5/pydantic_core-2.41.5-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:112e305c3314f40c93998e567879e887a3160bb8689ef3d2c04b6cc62c33ac34", size = 1896206 }, + { url = "https://files.pythonhosted.org/packages/15/df/a4c740c0943e93e6500f9eb23f4ca7ec9bf71b19e608ae5b579678c8d02f/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0cbaad15cb0c90aa221d43c00e77bb33c93e8d36e0bf74760cd00e732d10a6a0", size = 1919307 }, + { url = "https://files.pythonhosted.org/packages/9a/e3/6324802931ae1d123528988e0e86587c2072ac2e5394b4bc2bc34b61ff6e/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:03ca43e12fab6023fc79d28ca6b39b05f794ad08ec2feccc59a339b02f2b3d33", size = 2063258 }, + { url = "https://files.pythonhosted.org/packages/c9/d4/2230d7151d4957dd79c3044ea26346c148c98fbf0ee6ebd41056f2d62ab5/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dc799088c08fa04e43144b164feb0c13f9a0bc40503f8df3e9fde58a3c0c101e", size = 2214917 }, + { url = "https://files.pythonhosted.org/packages/e6/9f/eaac5df17a3672fef0081b6c1bb0b82b33ee89aa5cec0d7b05f52fd4a1fa/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:97aeba56665b4c3235a0e52b2c2f5ae9cd071b8a8310ad27bddb3f7fb30e9aa2", size = 2332186 }, + { url = "https://files.pythonhosted.org/packages/cf/4e/35a80cae583a37cf15604b44240e45c05e04e86f9cfd766623149297e971/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:406bf18d345822d6c21366031003612b9c77b3e29ffdb0f612367352aab7d586", size = 2073164 }, + { url = "https://files.pythonhosted.org/packages/bf/e3/f6e262673c6140dd3305d144d032f7bd5f7497d3871c1428521f19f9efa2/pydantic_core-2.41.5-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b93590ae81f7010dbe380cdeab6f515902ebcbefe0b9327cc4804d74e93ae69d", size = 2179146 }, + { url = "https://files.pythonhosted.org/packages/75/c7/20bd7fc05f0c6ea2056a4565c6f36f8968c0924f19b7d97bbfea55780e73/pydantic_core-2.41.5-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:01a3d0ab748ee531f4ea6c3e48ad9dac84ddba4b0d82291f87248f2f9de8d740", size = 2137788 }, + { url = "https://files.pythonhosted.org/packages/3a/8d/34318ef985c45196e004bc46c6eab2eda437e744c124ef0dbe1ff2c9d06b/pydantic_core-2.41.5-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:6561e94ba9dacc9c61bce40e2d6bdc3bfaa0259d3ff36ace3b1e6901936d2e3e", size = 2340133 }, + { url = "https://files.pythonhosted.org/packages/9c/59/013626bf8c78a5a5d9350d12e7697d3d4de951a75565496abd40ccd46bee/pydantic_core-2.41.5-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:915c3d10f81bec3a74fbd4faebe8391013ba61e5a1a8d48c4455b923bdda7858", size = 2324852 }, + { url = "https://files.pythonhosted.org/packages/1a/d9/c248c103856f807ef70c18a4f986693a46a8ffe1602e5d361485da502d20/pydantic_core-2.41.5-cp313-cp313-win32.whl", hash = "sha256:650ae77860b45cfa6e2cdafc42618ceafab3a2d9a3811fcfbd3bbf8ac3c40d36", size = 1994679 }, + { url = "https://files.pythonhosted.org/packages/9e/8b/341991b158ddab181cff136acd2552c9f35bd30380422a639c0671e99a91/pydantic_core-2.41.5-cp313-cp313-win_amd64.whl", hash = "sha256:79ec52ec461e99e13791ec6508c722742ad745571f234ea6255bed38c6480f11", size = 2019766 }, + { url = "https://files.pythonhosted.org/packages/73/7d/f2f9db34af103bea3e09735bb40b021788a5e834c81eedb541991badf8f5/pydantic_core-2.41.5-cp313-cp313-win_arm64.whl", hash = "sha256:3f84d5c1b4ab906093bdc1ff10484838aca54ef08de4afa9de0f5f14d69639cd", size = 1981005 }, + { url = "https://files.pythonhosted.org/packages/ea/28/46b7c5c9635ae96ea0fbb779e271a38129df2550f763937659ee6c5dbc65/pydantic_core-2.41.5-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:3f37a19d7ebcdd20b96485056ba9e8b304e27d9904d233d7b1015db320e51f0a", size = 2119622 }, + { url = "https://files.pythonhosted.org/packages/74/1a/145646e5687e8d9a1e8d09acb278c8535ebe9e972e1f162ed338a622f193/pydantic_core-2.41.5-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:1d1d9764366c73f996edd17abb6d9d7649a7eb690006ab6adbda117717099b14", size = 1891725 }, + { url = "https://files.pythonhosted.org/packages/23/04/e89c29e267b8060b40dca97bfc64a19b2a3cf99018167ea1677d96368273/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:25e1c2af0fce638d5f1988b686f3b3ea8cd7de5f244ca147c777769e798a9cd1", size = 1915040 }, + { url = "https://files.pythonhosted.org/packages/84/a3/15a82ac7bd97992a82257f777b3583d3e84bdb06ba6858f745daa2ec8a85/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:506d766a8727beef16b7adaeb8ee6217c64fc813646b424d0804d67c16eddb66", size = 2063691 }, + { url = "https://files.pythonhosted.org/packages/74/9b/0046701313c6ef08c0c1cf0e028c67c770a4e1275ca73131563c5f2a310a/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4819fa52133c9aa3c387b3328f25c1facc356491e6135b459f1de698ff64d869", size = 2213897 }, + { url = "https://files.pythonhosted.org/packages/8a/cd/6bac76ecd1b27e75a95ca3a9a559c643b3afcd2dd62086d4b7a32a18b169/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2b761d210c9ea91feda40d25b4efe82a1707da2ef62901466a42492c028553a2", size = 2333302 }, + { url = "https://files.pythonhosted.org/packages/4c/d2/ef2074dc020dd6e109611a8be4449b98cd25e1b9b8a303c2f0fca2f2bcf7/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:22f0fb8c1c583a3b6f24df2470833b40207e907b90c928cc8d3594b76f874375", size = 2064877 }, + { url = "https://files.pythonhosted.org/packages/18/66/e9db17a9a763d72f03de903883c057b2592c09509ccfe468187f2a2eef29/pydantic_core-2.41.5-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2782c870e99878c634505236d81e5443092fba820f0373997ff75f90f68cd553", size = 2180680 }, + { url = "https://files.pythonhosted.org/packages/d3/9e/3ce66cebb929f3ced22be85d4c2399b8e85b622db77dad36b73c5387f8f8/pydantic_core-2.41.5-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:0177272f88ab8312479336e1d777f6b124537d47f2123f89cb37e0accea97f90", size = 2138960 }, + { url = "https://files.pythonhosted.org/packages/a6/62/205a998f4327d2079326b01abee48e502ea739d174f0a89295c481a2272e/pydantic_core-2.41.5-cp314-cp314-musllinux_1_1_armv7l.whl", hash = "sha256:63510af5e38f8955b8ee5687740d6ebf7c2a0886d15a6d65c32814613681bc07", size = 2339102 }, + { url = "https://files.pythonhosted.org/packages/3c/0d/f05e79471e889d74d3d88f5bd20d0ed189ad94c2423d81ff8d0000aab4ff/pydantic_core-2.41.5-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:e56ba91f47764cc14f1daacd723e3e82d1a89d783f0f5afe9c364b8bb491ccdb", size = 2326039 }, + { url = "https://files.pythonhosted.org/packages/ec/e1/e08a6208bb100da7e0c4b288eed624a703f4d129bde2da475721a80cab32/pydantic_core-2.41.5-cp314-cp314-win32.whl", hash = "sha256:aec5cf2fd867b4ff45b9959f8b20ea3993fc93e63c7363fe6851424c8a7e7c23", size = 1995126 }, + { url = "https://files.pythonhosted.org/packages/48/5d/56ba7b24e9557f99c9237e29f5c09913c81eeb2f3217e40e922353668092/pydantic_core-2.41.5-cp314-cp314-win_amd64.whl", hash = "sha256:8e7c86f27c585ef37c35e56a96363ab8de4e549a95512445b85c96d3e2f7c1bf", size = 2015489 }, + { url = "https://files.pythonhosted.org/packages/4e/bb/f7a190991ec9e3e0ba22e4993d8755bbc4a32925c0b5b42775c03e8148f9/pydantic_core-2.41.5-cp314-cp314-win_arm64.whl", hash = "sha256:e672ba74fbc2dc8eea59fb6d4aed6845e6905fc2a8afe93175d94a83ba2a01a0", size = 1977288 }, + { url = "https://files.pythonhosted.org/packages/92/ed/77542d0c51538e32e15afe7899d79efce4b81eee631d99850edc2f5e9349/pydantic_core-2.41.5-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:8566def80554c3faa0e65ac30ab0932b9e3a5cd7f8323764303d468e5c37595a", size = 2120255 }, + { url = "https://files.pythonhosted.org/packages/bb/3d/6913dde84d5be21e284439676168b28d8bbba5600d838b9dca99de0fad71/pydantic_core-2.41.5-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:b80aa5095cd3109962a298ce14110ae16b8c1aece8b72f9dafe81cf597ad80b3", size = 1863760 }, + { url = "https://files.pythonhosted.org/packages/5a/f0/e5e6b99d4191da102f2b0eb9687aaa7f5bea5d9964071a84effc3e40f997/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3006c3dd9ba34b0c094c544c6006cc79e87d8612999f1a5d43b769b89181f23c", size = 1878092 }, + { url = "https://files.pythonhosted.org/packages/71/48/36fb760642d568925953bcc8116455513d6e34c4beaa37544118c36aba6d/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:72f6c8b11857a856bcfa48c86f5368439f74453563f951e473514579d44aa612", size = 2053385 }, + { url = "https://files.pythonhosted.org/packages/20/25/92dc684dd8eb75a234bc1c764b4210cf2646479d54b47bf46061657292a8/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5cb1b2f9742240e4bb26b652a5aeb840aa4b417c7748b6f8387927bc6e45e40d", size = 2218832 }, + { url = "https://files.pythonhosted.org/packages/e2/09/f53e0b05023d3e30357d82eb35835d0f6340ca344720a4599cd663dca599/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bd3d54f38609ff308209bd43acea66061494157703364ae40c951f83ba99a1a9", size = 2327585 }, + { url = "https://files.pythonhosted.org/packages/aa/4e/2ae1aa85d6af35a39b236b1b1641de73f5a6ac4d5a7509f77b814885760c/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2ff4321e56e879ee8d2a879501c8e469414d948f4aba74a2d4593184eb326660", size = 2041078 }, + { url = "https://files.pythonhosted.org/packages/cd/13/2e215f17f0ef326fc72afe94776edb77525142c693767fc347ed6288728d/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d0d2568a8c11bf8225044aa94409e21da0cb09dcdafe9ecd10250b2baad531a9", size = 2173914 }, + { url = "https://files.pythonhosted.org/packages/02/7a/f999a6dcbcd0e5660bc348a3991c8915ce6599f4f2c6ac22f01d7a10816c/pydantic_core-2.41.5-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:a39455728aabd58ceabb03c90e12f71fd30fa69615760a075b9fec596456ccc3", size = 2129560 }, + { url = "https://files.pythonhosted.org/packages/3a/b1/6c990ac65e3b4c079a4fb9f5b05f5b013afa0f4ed6780a3dd236d2cbdc64/pydantic_core-2.41.5-cp314-cp314t-musllinux_1_1_armv7l.whl", hash = "sha256:239edca560d05757817c13dc17c50766136d21f7cd0fac50295499ae24f90fdf", size = 2329244 }, + { url = "https://files.pythonhosted.org/packages/d9/02/3c562f3a51afd4d88fff8dffb1771b30cfdfd79befd9883ee094f5b6c0d8/pydantic_core-2.41.5-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:2a5e06546e19f24c6a96a129142a75cee553cc018ffee48a460059b1185f4470", size = 2331955 }, + { url = "https://files.pythonhosted.org/packages/5c/96/5fb7d8c3c17bc8c62fdb031c47d77a1af698f1d7a406b0f79aaa1338f9ad/pydantic_core-2.41.5-cp314-cp314t-win32.whl", hash = "sha256:b4ececa40ac28afa90871c2cc2b9ffd2ff0bf749380fbdf57d165fd23da353aa", size = 1988906 }, + { url = "https://files.pythonhosted.org/packages/22/ed/182129d83032702912c2e2d8bbe33c036f342cc735737064668585dac28f/pydantic_core-2.41.5-cp314-cp314t-win_amd64.whl", hash = "sha256:80aa89cad80b32a912a65332f64a4450ed00966111b6615ca6816153d3585a8c", size = 1981607 }, + { url = "https://files.pythonhosted.org/packages/9f/ed/068e41660b832bb0b1aa5b58011dea2a3fe0ba7861ff38c4d4904c1c1a99/pydantic_core-2.41.5-cp314-cp314t-win_arm64.whl", hash = "sha256:35b44f37a3199f771c3eaa53051bc8a70cd7b54f333531c59e29fd4db5d15008", size = 1974769 }, + { url = "https://files.pythonhosted.org/packages/09/32/59b0c7e63e277fa7911c2fc70ccfb45ce4b98991e7ef37110663437005af/pydantic_core-2.41.5-graalpy312-graalpy250_312_native-macosx_10_12_x86_64.whl", hash = "sha256:7da7087d756b19037bc2c06edc6c170eeef3c3bafcb8f532ff17d64dc427adfd", size = 2110495 }, + { url = "https://files.pythonhosted.org/packages/aa/81/05e400037eaf55ad400bcd318c05bb345b57e708887f07ddb2d20e3f0e98/pydantic_core-2.41.5-graalpy312-graalpy250_312_native-macosx_11_0_arm64.whl", hash = "sha256:aabf5777b5c8ca26f7824cb4a120a740c9588ed58df9b2d196ce92fba42ff8dc", size = 1915388 }, + { url = "https://files.pythonhosted.org/packages/6e/0d/e3549b2399f71d56476b77dbf3cf8937cec5cd70536bdc0e374a421d0599/pydantic_core-2.41.5-graalpy312-graalpy250_312_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c007fe8a43d43b3969e8469004e9845944f1a80e6acd47c150856bb87f230c56", size = 1942879 }, + { url = "https://files.pythonhosted.org/packages/f7/07/34573da085946b6a313d7c42f82f16e8920bfd730665de2d11c0c37a74b5/pydantic_core-2.41.5-graalpy312-graalpy250_312_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:76d0819de158cd855d1cbb8fcafdf6f5cf1eb8e470abe056d5d161106e38062b", size = 2139017 }, +] + +[[package]] +name = "pydantic-evals" +version = "1.76.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "logfire-api" }, + { name = "pydantic" }, + { name = "pydantic-ai-slim" }, + { name = "pyyaml" }, + { name = "rich" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e4/ff/6885f7b7002e09924c68307e4b9dce427870688f1c63db32dbaf012f876a/pydantic_evals-1.76.0.tar.gz", hash = "sha256:ce28098ec9a23fd47eff1a612cb8d8ac9eafe678e5d454138b85409ded9ec565", size = 65839 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e7/ab/14335e6c988ef2af23d33bb89cde4c737b904f84fb237758acf156bb0748/pydantic_evals-1.76.0-py3-none-any.whl", hash = "sha256:dd411619f61c2d67edc395a5041200abaff4875bde1f2603e2651b37f6e59b66", size = 77739 }, +] + +[[package]] +name = "pydantic-graph" +version = "1.76.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "httpx" }, + { name = "logfire-api" }, + { name = "pydantic" }, + { name = "typing-inspection" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b7/3c/6dc8c19c9eba073884b861d88cc96658d38bde4dd49f4b07e9a87f589eec/pydantic_graph-1.76.0.tar.gz", hash = "sha256:e0f8f85ab08b0f896aed50bc888f946f7c2ef3f032b78fefc8dc1fd77a49406e", size = 58716 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/56/4f/60b018568a33c907734613fb089ff288168faa6affb634e05e1a53f1f9e8/pydantic_graph-1.76.0-py3-none-any.whl", hash = "sha256:eda23a36bcaf4ab09ce10e7860818c6eeb2f42b3429ba9a575cc3b713ef3bbd6", size = 72502 }, +] + +[[package]] +name = "pydantic-handlebars" +version = "0.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pydantic" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/90/16/d41768bd3fd77e6250c20be11a3e68fee5fff07c3356455e6708f6a60f2a/pydantic_handlebars-0.1.0.tar.gz", hash = "sha256:1931c54946add1b5e3796c9bf6a005ed7662cef0109bb05c352f0b3d031a1260", size = 159826 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/99/5f/86b1630be61bdebf253c2f953a6c3f073ec21bb0725565ea3896802e1ca3/pydantic_handlebars-0.1.0-py3-none-any.whl", hash = "sha256:8a436fe8bc607295eb04bec58bd6e2c9498c9e069c557ff0b505e3d568c783bc", size = 40890 }, +] + +[[package]] +name = "pydantic-settings" +version = "2.13.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pydantic" }, + { name = "python-dotenv" }, + { name = "typing-inspection" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/52/6d/fffca34caecc4a3f97bda81b2098da5e8ab7efc9a66e819074a11955d87e/pydantic_settings-2.13.1.tar.gz", hash = "sha256:b4c11847b15237fb0171e1462bf540e294affb9b86db4d9aa5c01730bdbe4025", size = 223826 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/00/4b/ccc026168948fec4f7555b9164c724cf4125eac006e176541483d2c959be/pydantic_settings-2.13.1-py3-none-any.whl", hash = "sha256:d56fd801823dbeae7f0975e1f8c8e25c258eb75d278ea7abb5d9cebb01b56237", size = 58929 }, +] + +[[package]] +name = "pydeck" +version = "0.9.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jinja2" }, + { name = "numpy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a1/ca/40e14e196864a0f61a92abb14d09b3d3da98f94ccb03b49cf51688140dab/pydeck-0.9.1.tar.gz", hash = "sha256:f74475ae637951d63f2ee58326757f8d4f9cd9f2a457cf42950715003e2cb605", size = 3832240 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ab/4c/b888e6cf58bd9db9c93f40d1c6be8283ff49d88919231afe93a6bcf61626/pydeck-0.9.1-py2.py3-none-any.whl", hash = "sha256:b3f75ba0d273fc917094fa61224f3f6076ca8752b93d46faf3bcfd9f9d59b038", size = 6900403 }, +] + +[[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 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f4/7e/a72dd26f3b0f4f2bf1dd8923c85f7ceb43172af56d63c7383eb62b332364/pygments-2.20.0-py3-none-any.whl", hash = "sha256:81a9e26dd42fd28a23a2d169d86d7ac03b46e2f8b59ed4698fb4785f946d0176", size = 1231151 }, +] + +[[package]] +name = "pyjwt" +version = "2.12.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c2/27/a3b6e5bf6ff856d2509292e95c8f57f0df7017cf5394921fc4e4ef40308a/pyjwt-2.12.1.tar.gz", hash = "sha256:c74a7a2adf861c04d002db713dd85f84beb242228e671280bf709d765b03672b", size = 102564 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e5/7a/8dd906bd22e79e47397a61742927f6747fe93242ef86645ee9092e610244/pyjwt-2.12.1-py3-none-any.whl", hash = "sha256:28ca37c070cad8ba8cd9790cd940535d40274d22f80ab87f3ac6a713e6e8454c", size = 29726 }, +] + +[package.optional-dependencies] +crypto = [ + { name = "cryptography" }, +] + +[[package]] +name = "pyperclip" +version = "1.11.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e8/52/d87eba7cb129b81563019d1679026e7a112ef76855d6159d24754dbd2a51/pyperclip-1.11.0.tar.gz", hash = "sha256:244035963e4428530d9e3a6101a1ef97209c6825edab1567beac148ccc1db1b6", size = 12185 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/df/80/fc9d01d5ed37ba4c42ca2b55b4339ae6e200b456be3a1aaddf4a9fa99b8c/pyperclip-1.11.0-py3-none-any.whl", hash = "sha256:299403e9ff44581cb9ba2ffeed69c7aa96a008622ad0c46cb575ca75b5b84273", size = 11063 }, +] + +[[package]] +name = "pytest" +version = "9.0.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "iniconfig" }, + { name = "packaging" }, + { name = "pluggy" }, + { name = "pygments" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/d1/db/7ef3487e0fb0049ddb5ce41d3a49c235bf9ad299b6a25d5780a89f19230f/pytest-9.0.2.tar.gz", hash = "sha256:75186651a92bd89611d1d9fc20f0b4345fd827c41ccd5c299a868a05d70edf11", size = 1568901 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3b/ab/b3226f0bd7cdcf710fbede2b3548584366da3b19b5021e74f5bde2a8fa3f/pytest-9.0.2-py3-none-any.whl", hash = "sha256:711ffd45bf766d5264d487b917733b453d917afd2b0ad65223959f59089f875b", size = 374801 }, +] + +[[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 } +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 }, +] + +[[package]] +name = "python-dotenv" +version = "1.2.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/82/ed/0301aeeac3e5353ef3d94b6ec08bbcabd04a72018415dcb29e588514bba8/python_dotenv-1.2.2.tar.gz", hash = "sha256:2c371a91fbd7ba082c2c1dc1f8bf89ca22564a087c2c287cd9b662adde799cf3", size = 50135 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0b/d7/1959b9648791274998a9c3526f6d0ec8fd2233e4d4acce81bbae76b44b2a/python_dotenv-1.2.2-py3-none-any.whl", hash = "sha256:1d8214789a24de455a8b8bd8ae6fe3c6b69a5e3d64aa8a8e5d68e694bbcb285a", size = 22101 }, +] + +[[package]] +name = "python-multipart" +version = "0.0.22" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/94/01/979e98d542a70714b0cb2b6728ed0b7c46792b695e3eaec3e20711271ca3/python_multipart-0.0.22.tar.gz", hash = "sha256:7340bef99a7e0032613f56dc36027b959fd3b30a787ed62d310e951f7c3a3a58", size = 37612 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1b/d0/397f9626e711ff749a95d96b7af99b9c566a9bb5129b8e4c10fc4d100304/python_multipart-0.0.22-py3-none-any.whl", hash = "sha256:2b2cd894c83d21bf49d702499531c7bafd057d730c201782048f7945d82de155", size = 24579 }, +] + +[[package]] +name = "pywin32" +version = "311" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e7/ab/01ea1943d4eba0f850c3c61e78e8dd59757ff815ff3ccd0a84de5f541f42/pywin32-311-cp312-cp312-win32.whl", hash = "sha256:750ec6e621af2b948540032557b10a2d43b0cee2ae9758c54154d711cc852d31", size = 8706543 }, + { url = "https://files.pythonhosted.org/packages/d1/a8/a0e8d07d4d051ec7502cd58b291ec98dcc0c3fff027caad0470b72cfcc2f/pywin32-311-cp312-cp312-win_amd64.whl", hash = "sha256:b8c095edad5c211ff31c05223658e71bf7116daa0ecf3ad85f3201ea3190d067", size = 9495040 }, + { url = "https://files.pythonhosted.org/packages/ba/3a/2ae996277b4b50f17d61f0603efd8253cb2d79cc7ae159468007b586396d/pywin32-311-cp312-cp312-win_arm64.whl", hash = "sha256:e286f46a9a39c4a18b319c28f59b61de793654af2f395c102b4f819e584b5852", size = 8710102 }, + { url = "https://files.pythonhosted.org/packages/a5/be/3fd5de0979fcb3994bfee0d65ed8ca9506a8a1260651b86174f6a86f52b3/pywin32-311-cp313-cp313-win32.whl", hash = "sha256:f95ba5a847cba10dd8c4d8fefa9f2a6cf283b8b88ed6178fa8a6c1ab16054d0d", size = 8705700 }, + { url = "https://files.pythonhosted.org/packages/e3/28/e0a1909523c6890208295a29e05c2adb2126364e289826c0a8bc7297bd5c/pywin32-311-cp313-cp313-win_amd64.whl", hash = "sha256:718a38f7e5b058e76aee1c56ddd06908116d35147e133427e59a3983f703a20d", size = 9494700 }, + { url = "https://files.pythonhosted.org/packages/04/bf/90339ac0f55726dce7d794e6d79a18a91265bdf3aa70b6b9ca52f35e022a/pywin32-311-cp313-cp313-win_arm64.whl", hash = "sha256:7b4075d959648406202d92a2310cb990fea19b535c7f4a78d3f5e10b926eeb8a", size = 8709318 }, + { url = "https://files.pythonhosted.org/packages/c9/31/097f2e132c4f16d99a22bfb777e0fd88bd8e1c634304e102f313af69ace5/pywin32-311-cp314-cp314-win32.whl", hash = "sha256:b7a2c10b93f8986666d0c803ee19b5990885872a7de910fc460f9b0c2fbf92ee", size = 8840714 }, + { url = "https://files.pythonhosted.org/packages/90/4b/07c77d8ba0e01349358082713400435347df8426208171ce297da32c313d/pywin32-311-cp314-cp314-win_amd64.whl", hash = "sha256:3aca44c046bd2ed8c90de9cb8427f581c479e594e99b5c0bb19b29c10fd6cb87", size = 9656800 }, + { url = "https://files.pythonhosted.org/packages/c0/d2/21af5c535501a7233e734b8af901574572da66fcc254cb35d0609c9080dd/pywin32-311-cp314-cp314-win_arm64.whl", hash = "sha256:a508e2d9025764a8270f93111a970e1d0fbfc33f4153b388bb649b7eec4f9b42", size = 8932540 }, +] + +[[package]] +name = "pywin32-ctypes" +version = "0.2.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/85/9f/01a1a99704853cb63f253eea009390c88e7131c67e66a0a02099a8c917cb/pywin32-ctypes-0.2.3.tar.gz", hash = "sha256:d162dc04946d704503b2edc4d55f3dba5c1d539ead017afa00142c38b9885755", size = 29471 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/de/3d/8161f7711c017e01ac9f008dfddd9410dff3674334c233bde66e7ba65bbf/pywin32_ctypes-0.2.3-py3-none-any.whl", hash = "sha256:8a1513379d709975552d202d942d9837758905c8d01eb82b8bcc30918929e7b8", size = 30756 }, +] + +[[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 } +wheels = [ + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { url = "https://files.pythonhosted.org/packages/74/93/7baea19427dcfbe1e5a372d81473250b379f04b1bd3c4c5ff825e2327202/pyyaml-6.0.3-cp312-cp312-win32.whl", hash = "sha256:96b533f0e99f6579b3d4d4995707cf36df9100d67e0c8303a0c55b27b5f99bc5", size = 137658 }, + { url = "https://files.pythonhosted.org/packages/86/bf/899e81e4cce32febab4fb42bb97dcdf66bc135272882d1987881a4b519e9/pyyaml-6.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:5fcd34e47f6e0b794d17de1b4ff496c00986e1c83f7ab2fb8fcfe9616ff7477b", size = 154003 }, + { url = "https://files.pythonhosted.org/packages/1a/08/67bd04656199bbb51dbed1439b7f27601dfb576fb864099c7ef0c3e55531/pyyaml-6.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:64386e5e707d03a7e172c0701abfb7e10f0fb753ee1d773128192742712a98fd", size = 140344 }, + { url = "https://files.pythonhosted.org/packages/d1/11/0fd08f8192109f7169db964b5707a2f1e8b745d4e239b784a5a1dd80d1db/pyyaml-6.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8da9669d359f02c0b91ccc01cac4a67f16afec0dac22c2ad09f46bee0697eba8", size = 181669 }, + { url = "https://files.pythonhosted.org/packages/b1/16/95309993f1d3748cd644e02e38b75d50cbc0d9561d21f390a76242ce073f/pyyaml-6.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:2283a07e2c21a2aa78d9c4442724ec1eb15f5e42a723b99cb3d822d48f5f7ad1", size = 173252 }, + { url = "https://files.pythonhosted.org/packages/50/31/b20f376d3f810b9b2371e72ef5adb33879b25edb7a6d072cb7ca0c486398/pyyaml-6.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ee2922902c45ae8ccada2c5b501ab86c36525b883eff4255313a253a3160861c", size = 767081 }, + { url = "https://files.pythonhosted.org/packages/49/1e/a55ca81e949270d5d4432fbbd19dfea5321eda7c41a849d443dc92fd1ff7/pyyaml-6.0.3-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a33284e20b78bd4a18c8c2282d549d10bc8408a2a7ff57653c0cf0b9be0afce5", size = 841159 }, + { url = "https://files.pythonhosted.org/packages/74/27/e5b8f34d02d9995b80abcef563ea1f8b56d20134d8f4e5e81733b1feceb2/pyyaml-6.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0f29edc409a6392443abf94b9cf89ce99889a1dd5376d94316ae5145dfedd5d6", size = 801626 }, + { url = "https://files.pythonhosted.org/packages/f9/11/ba845c23988798f40e52ba45f34849aa8a1f2d4af4b798588010792ebad6/pyyaml-6.0.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f7057c9a337546edc7973c0d3ba84ddcdf0daa14533c2065749c9075001090e6", size = 753613 }, + { url = "https://files.pythonhosted.org/packages/3d/e0/7966e1a7bfc0a45bf0a7fb6b98ea03fc9b8d84fa7f2229e9659680b69ee3/pyyaml-6.0.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:eda16858a3cab07b80edaf74336ece1f986ba330fdb8ee0d6c0d68fe82bc96be", size = 794115 }, + { url = "https://files.pythonhosted.org/packages/de/94/980b50a6531b3019e45ddeada0626d45fa85cbe22300844a7983285bed3b/pyyaml-6.0.3-cp313-cp313-win32.whl", hash = "sha256:d0eae10f8159e8fdad514efdc92d74fd8d682c933a6dd088030f3834bc8e6b26", size = 137427 }, + { url = "https://files.pythonhosted.org/packages/97/c9/39d5b874e8b28845e4ec2202b5da735d0199dbe5b8fb85f91398814a9a46/pyyaml-6.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:79005a0d97d5ddabfeeea4cf676af11e647e41d81c9a7722a193022accdb6b7c", size = 154090 }, + { url = "https://files.pythonhosted.org/packages/73/e8/2bdf3ca2090f68bb3d75b44da7bbc71843b19c9f2b9cb9b0f4ab7a5a4329/pyyaml-6.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:5498cd1645aa724a7c71c8f378eb29ebe23da2fc0d7a08071d89469bf1d2defb", size = 140246 }, + { url = "https://files.pythonhosted.org/packages/9d/8c/f4bd7f6465179953d3ac9bc44ac1a8a3e6122cf8ada906b4f96c60172d43/pyyaml-6.0.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:8d1fab6bb153a416f9aeb4b8763bc0f22a5586065f86f7664fc23339fc1c1fac", size = 181814 }, + { url = "https://files.pythonhosted.org/packages/bd/9c/4d95bb87eb2063d20db7b60faa3840c1b18025517ae857371c4dd55a6b3a/pyyaml-6.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:34d5fcd24b8445fadc33f9cf348c1047101756fd760b4dacb5c3e99755703310", size = 173809 }, + { url = "https://files.pythonhosted.org/packages/92/b5/47e807c2623074914e29dabd16cbbdd4bf5e9b2db9f8090fa64411fc5382/pyyaml-6.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:501a031947e3a9025ed4405a168e6ef5ae3126c59f90ce0cd6f2bfc477be31b7", size = 766454 }, + { url = "https://files.pythonhosted.org/packages/02/9e/e5e9b168be58564121efb3de6859c452fccde0ab093d8438905899a3a483/pyyaml-6.0.3-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b3bc83488de33889877a0f2543ade9f70c67d66d9ebb4ac959502e12de895788", size = 836355 }, + { url = "https://files.pythonhosted.org/packages/88/f9/16491d7ed2a919954993e48aa941b200f38040928474c9e85ea9e64222c3/pyyaml-6.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c458b6d084f9b935061bc36216e8a69a7e293a2f1e68bf956dcd9e6cbcd143f5", size = 794175 }, + { url = "https://files.pythonhosted.org/packages/dd/3f/5989debef34dc6397317802b527dbbafb2b4760878a53d4166579111411e/pyyaml-6.0.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7c6610def4f163542a622a73fb39f534f8c101d690126992300bf3207eab9764", size = 755228 }, + { url = "https://files.pythonhosted.org/packages/d7/ce/af88a49043cd2e265be63d083fc75b27b6ed062f5f9fd6cdc223ad62f03e/pyyaml-6.0.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:5190d403f121660ce8d1d2c1bb2ef1bd05b5f68533fc5c2ea899bd15f4399b35", size = 789194 }, + { url = "https://files.pythonhosted.org/packages/23/20/bb6982b26a40bb43951265ba29d4c246ef0ff59c9fdcdf0ed04e0687de4d/pyyaml-6.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:4a2e8cebe2ff6ab7d1050ecd59c25d4c8bd7e6f400f5f82b96557ac0abafd0ac", size = 156429 }, + { url = "https://files.pythonhosted.org/packages/f4/f4/a4541072bb9422c8a883ab55255f918fa378ecf083f5b85e87fc2b4eda1b/pyyaml-6.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:93dda82c9c22deb0a405ea4dc5f2d0cda384168e466364dec6255b293923b2f3", size = 143912 }, + { url = "https://files.pythonhosted.org/packages/7c/f9/07dd09ae774e4616edf6cda684ee78f97777bdd15847253637a6f052a62f/pyyaml-6.0.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:02893d100e99e03eda1c8fd5c441d8c60103fd175728e23e431db1b589cf5ab3", size = 189108 }, + { url = "https://files.pythonhosted.org/packages/4e/78/8d08c9fb7ce09ad8c38ad533c1191cf27f7ae1effe5bb9400a46d9437fcf/pyyaml-6.0.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:c1ff362665ae507275af2853520967820d9124984e0f7466736aea23d8611fba", size = 183641 }, + { url = "https://files.pythonhosted.org/packages/7b/5b/3babb19104a46945cf816d047db2788bcaf8c94527a805610b0289a01c6b/pyyaml-6.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6adc77889b628398debc7b65c073bcb99c4a0237b248cacaf3fe8a557563ef6c", size = 831901 }, + { url = "https://files.pythonhosted.org/packages/8b/cc/dff0684d8dc44da4d22a13f35f073d558c268780ce3c6ba1b87055bb0b87/pyyaml-6.0.3-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a80cb027f6b349846a3bf6d73b5e95e782175e52f22108cfa17876aaeff93702", size = 861132 }, + { url = "https://files.pythonhosted.org/packages/b1/5e/f77dc6b9036943e285ba76b49e118d9ea929885becb0a29ba8a7c75e29fe/pyyaml-6.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:00c4bdeba853cc34e7dd471f16b4114f4162dc03e6b7afcc2128711f0eca823c", size = 839261 }, + { url = "https://files.pythonhosted.org/packages/ce/88/a9db1376aa2a228197c58b37302f284b5617f56a5d959fd1763fb1675ce6/pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:66e1674c3ef6f541c35191caae2d429b967b99e02040f5ba928632d9a7f0f065", size = 805272 }, + { url = "https://files.pythonhosted.org/packages/da/92/1446574745d74df0c92e6aa4a7b0b3130706a4142b2d1a5869f2eaa423c6/pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:16249ee61e95f858e83976573de0f5b2893b3677ba71c9dd36b9cf8be9ac6d65", size = 829923 }, + { url = "https://files.pythonhosted.org/packages/f0/7a/1c7270340330e575b92f397352af856a8c06f230aa3e76f86b39d01b416a/pyyaml-6.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4ad1906908f2f5ae4e5a8ddfce73c320c2a1429ec52eafd27138b7f1cbe341c9", size = 174062 }, + { url = "https://files.pythonhosted.org/packages/f1/12/de94a39c2ef588c7e6455cfbe7343d3b2dc9d6b6b2f40c4c6565744c873d/pyyaml-6.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:ebc55a14a21cb14062aa4162f906cd962b28e2e9ea38f9b4391244cd8de4ae0b", size = 149341 }, +] + +[[package]] +name = "referencing" +version = "0.37.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "rpds-py" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/22/f5/df4e9027acead3ecc63e50fe1e36aca1523e1719559c499951bb4b53188f/referencing-0.37.0.tar.gz", hash = "sha256:44aefc3142c5b842538163acb373e24cce6632bd54bdb01b21ad5863489f50d8", size = 78036 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2c/58/ca301544e1fa93ed4f80d724bf5b194f6e4b945841c5bfd555878eea9fcb/referencing-0.37.0-py3-none-any.whl", hash = "sha256:381329a9f99628c9069361716891d34ad94af76e461dcb0335825aecc7692231", size = 26766 }, +] + +[[package]] +name = "regex" +version = "2026.3.32" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/81/93/5ab3e899c47fa7994e524447135a71cd121685a35c8fe35029005f8b236f/regex-2026.3.32.tar.gz", hash = "sha256:f1574566457161678297a116fa5d1556c5a4159d64c5ff7c760e7c564bf66f16", size = 415605 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/38/94/69492c45b0e61b027109d8433a5c3d4f7a90709184c057c7cfc60acb1bfa/regex-2026.3.32-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:ad8d372587e659940568afd009afeb72be939c769c552c9b28773d0337251391", size = 490572 }, + { url = "https://files.pythonhosted.org/packages/92/0a/7dcffeebe0fcac45a1f9caf80712002d3cbd66d7d69d719315ee142b280f/regex-2026.3.32-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:3f5747501b69299c6b0b047853771e4ed390510bada68cb16da9c9c2078343f7", size = 292078 }, + { url = "https://files.pythonhosted.org/packages/e3/ec/988486058ef49eb931476419bae00f164c4ceb44787c45dc7a54b7de0ea4/regex-2026.3.32-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:db976be51375bca900e008941639448d148c655c9545071965d0571ecc04f5d0", size = 289786 }, + { url = "https://files.pythonhosted.org/packages/4a/cf/1955bb5567bc491bd63068e17f75ab0c9ff5e9d08466beec7e347f5e768d/regex-2026.3.32-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:66a5083c3ffe5a5a95f8281ea47a88072d4f24001d562d1d9d28d4cdc005fec5", size = 796431 }, + { url = "https://files.pythonhosted.org/packages/27/8a/67fcbca511b792107540181ee0690df6de877bfbcb41b7ecae7028025ca5/regex-2026.3.32-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:e83ce8008b48762be296f1401f19afd9ea29f3d035d1974e0cecb74e9afbd1df", size = 865785 }, + { url = "https://files.pythonhosted.org/packages/c2/59/0677bc44f2c28305edcabc11933777b9ad34e9e8ded7ba573d24e4bc3ee7/regex-2026.3.32-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b3aa21bad31db904e0b9055e12c8282df62d43169c4a9d2929407060066ebc74", size = 913593 }, + { url = "https://files.pythonhosted.org/packages/0a/fe/661043d1c263b0d9d10c6ff4e9c9745f3df9641c62b51f96a3473638e7ce/regex-2026.3.32-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f54840bea73541652f1170dc63402a5b776fc851ad36a842da9e5163c1f504a0", size = 801512 }, + { url = "https://files.pythonhosted.org/packages/ff/27/74c986061380e1811a46cf04cdf9c939db9f8c0e63953eddfe37ffd633ea/regex-2026.3.32-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:2ffbadc647325dd4e3118269bda93ded1eb5f5b0c3b7ba79a3da9fbd04f248e9", size = 776182 }, + { url = "https://files.pythonhosted.org/packages/b6/c8/d833397b70cd1bacfcdc0a611f0e2c1f5b91fee8eedd88affcee770cbbb6/regex-2026.3.32-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:66d3126afe7eac41759cd5f0b3b246598086e88e70527c0d68c9e615b81771c4", size = 785837 }, + { url = "https://files.pythonhosted.org/packages/e0/53/fa226b72989b5b93db6926fab5478115e085dfcf077e18d2cb386be0fd23/regex-2026.3.32-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:f785f44a44702dea89b28bce5bc82552490694ce4e144e21a4f0545e364d2150", size = 860612 }, + { url = "https://files.pythonhosted.org/packages/04/28/bdd2fc0c055a1b15702bd4084829bbb6b06095f27990e5bee52b2898ea03/regex-2026.3.32-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:b7836aa13721dbdef658aebd11f60d00de633a95726521860fe1f6be75fa225a", size = 765285 }, + { url = "https://files.pythonhosted.org/packages/b4/da/21f5e2a35a191b27e5a47cccb3914c99e139b49b1342d3f36e64e8cc60f7/regex-2026.3.32-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:5336b1506142eb0f23c96fb4a34b37c4fefd4fed2a7042069f3c8058efe17855", size = 851963 }, + { url = "https://files.pythonhosted.org/packages/18/f4/04ed04ebf335a44083695c22772be6a42efa31900415555563acf02cb4de/regex-2026.3.32-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b56993a7aeb4140c4770f4f7965c9e5af4f024457d06e23c01b0d47501cb18ed", size = 788332 }, + { url = "https://files.pythonhosted.org/packages/21/25/5355908f479d0dc13d044f88270cdcabc8723efc12e4c2b19e5a94ff1a96/regex-2026.3.32-cp312-cp312-win32.whl", hash = "sha256:d363660f9ef8c734495598d2f3e527fb41f745c73159dc0d743402f049fb6836", size = 266847 }, + { url = "https://files.pythonhosted.org/packages/00/e5/3be71c781a031db5df00735b613895ad5fdbf86c6e3bbea5fbbd7bfb5902/regex-2026.3.32-cp312-cp312-win_amd64.whl", hash = "sha256:c9f261ad3cd97257dc1d9355bfbaa7dd703e06574bffa0fa8fe1e31da915ee38", size = 278034 }, + { url = "https://files.pythonhosted.org/packages/31/5f/27f1e0b1eea4faa99c66daca34130af20c44fae0237bbc98b87999dbc4a8/regex-2026.3.32-cp312-cp312-win_arm64.whl", hash = "sha256:89e50667e7e8c0e7903e4d644a2764fffe9a3a5d6578f72ab7a7b4205bf204b7", size = 270673 }, + { url = "https://files.pythonhosted.org/packages/bd/ba/9c1819f302b42b5fbd4139ead6280e9ec37d19bbe33379df0039b2a57bb4/regex-2026.3.32-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:c6d9c6e783b348f719b6118bb3f187b2e138e3112576c9679eb458cc8b2e164b", size = 490394 }, + { url = "https://files.pythonhosted.org/packages/5b/0b/f62b0ce79eb83ca82fffea1736289d29bc24400355968301406789bcebd2/regex-2026.3.32-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0f21ae18dfd15752cdd98d03cbd7a3640be826bfd58482a93f730dbd24d7b9fb", size = 291993 }, + { url = "https://files.pythonhosted.org/packages/e7/d8/ba0f8f81f88cd20c0b27acc123561ac5495ea33f800f0b8ebed2038b23eb/regex-2026.3.32-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:844d88509c968dd44b30daeefac72b038b1bf31ac372d5106358ab01d393c48b", size = 289618 }, + { url = "https://files.pythonhosted.org/packages/fd/0d/b47a0e68bc511c195ff129c0311a4cd79b954b8676193a9d03a97c623a91/regex-2026.3.32-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8fc918cd003ba0d066bf0003deb05a259baaaab4dc9bd4f1207bbbe64224857a", size = 796427 }, + { url = "https://files.pythonhosted.org/packages/51/d7/32b05aa8fde7789ba316533c0f30e87b6b5d38d6d7f8765eadc5aab84671/regex-2026.3.32-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:bbc458a292aee57d572075f22c035fa32969cdb7987d454e3e34d45a40a0a8b4", size = 865850 }, + { url = "https://files.pythonhosted.org/packages/dc/67/828d8095501f237b83f630d4069eea8c0e5cb6a204e859cf0b67c223ce12/regex-2026.3.32-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:987cdfcfb97a249abc3601ad53c7de5c370529f1981e4c8c46793e4a1e1bfe8e", size = 913578 }, + { url = "https://files.pythonhosted.org/packages/0f/f8/acf1eb80f58852e85bd39a6ddfa78ce2243ddc8de8da7582e6ba657da593/regex-2026.3.32-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a5d88fa37ba5e8a80ca8d956b9ea03805cfa460223ac94b7d4854ee5e30f3173", size = 801536 }, + { url = "https://files.pythonhosted.org/packages/9f/05/986cdf8d12693451f5889aaf4ea4f65b2c49b1152ae814fa1fb75439e40b/regex-2026.3.32-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:4d082be64e51671dd5ee1c208c92da2ddda0f2f20d8ef387e57634f7e97b6aae", size = 776226 }, + { url = "https://files.pythonhosted.org/packages/32/02/945a6a2348ca1c6608cb1747275c8affd2ccd957d4885c25218a86377912/regex-2026.3.32-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c1d7fa44aece1fa02b8927441614c96520253a5cad6a96994e3a81e060feed55", size = 785933 }, + { url = "https://files.pythonhosted.org/packages/53/12/c5bab6cc679ad79a45427a98c4e70809586ac963c5ad54a9217533c4763e/regex-2026.3.32-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:d478a2ca902b6ef28ffc9521e5f0f728d036abe35c0b250ee8ae78cfe7c5e44e", size = 860671 }, + { url = "https://files.pythonhosted.org/packages/bf/68/8d85f98c2443469facabef62b82b851d369b13f92bec2ca7a3808deaa47b/regex-2026.3.32-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:2820d2231885e97aff0fcf230a19ebd5d2b5b8a1ba338c20deb34f16db1c7897", size = 765335 }, + { url = "https://files.pythonhosted.org/packages/89/a7/d8a9c270916107a501fca63b748547c6c77e570d19f16a29b557ce734f3d/regex-2026.3.32-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:fc8ced733d6cd9af5e412f256a32f7c61cd2d7371280a65c689939ac4572499f", size = 851913 }, + { url = "https://files.pythonhosted.org/packages/f4/8e/03d392b26679914ccf21f83d18ad4443232d2f8c3e2c30a962d4e3918d9c/regex-2026.3.32-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:847087abe98b3c1ebf1eb49d6ef320dbba75a83ee4f83c94704580f1df007dd4", size = 788447 }, + { url = "https://files.pythonhosted.org/packages/cf/df/692227d23535a50604333068b39eb262626db780ab1e1b19d83fc66853aa/regex-2026.3.32-cp313-cp313-win32.whl", hash = "sha256:d21a07edddb3e0ca12a8b8712abc8452481c3d3db19ae87fc94e9842d005964b", size = 266834 }, + { url = "https://files.pythonhosted.org/packages/b9/37/13e4e56adc16ba607cffa1fe880f233eb9ded8ab8a8580619683c9e4ce48/regex-2026.3.32-cp313-cp313-win_amd64.whl", hash = "sha256:3c054e39a9f85a3d76c62a1d50c626c5e9306964eaa675c53f61ff7ec1204bbb", size = 277972 }, + { url = "https://files.pythonhosted.org/packages/ab/1c/80a86dbb2b416fec003b1801462bdcebbf1d43202ed5acb176e99c1ba369/regex-2026.3.32-cp313-cp313-win_arm64.whl", hash = "sha256:b2e9c2ea2e93223579308263f359eab8837dc340530b860cb59b713651889f14", size = 270649 }, + { url = "https://files.pythonhosted.org/packages/58/08/e38372da599dc1c39c599907ec535016d110034bd3701ce36554f59767ef/regex-2026.3.32-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:5d86e3fb08c94f084a625c8dc2132a79a3a111c8bf6e2bc59351fa61753c2f6e", size = 494495 }, + { url = "https://files.pythonhosted.org/packages/5f/27/6e29ece8c9ce01001ece1137fa21c8707529c2305b22828f63623b0eb262/regex-2026.3.32-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:b6f366a5ef66a2df4d9e68035cfe9f0eb8473cdfb922c37fac1d169b468607b0", size = 293988 }, + { url = "https://files.pythonhosted.org/packages/e1/98/8752e18bb87a2fe728b73b0f83c082eb162a470766063f8028759fb26844/regex-2026.3.32-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:b8fca73e16c49dd972ce3a88278dfa5b93bf91ddef332a46e9443abe21ca2f7c", size = 292634 }, + { url = "https://files.pythonhosted.org/packages/7f/7b/d7729fe294e23e9c7c3871cb69d49059fa7d65fd11e437a2cbea43f6615d/regex-2026.3.32-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b953d9d496d19786f4d46e6ba4b386c6e493e81e40f9c5392332458183b0599d", size = 810532 }, + { url = "https://files.pythonhosted.org/packages/fd/49/4dae7b000659f611b17b9c1541fba800b0569e4060debc4635ef1b23982c/regex-2026.3.32-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:b565f25171e04d4fad950d1fa837133e3af6ea6f509d96166eed745eb0cf63bc", size = 871919 }, + { url = "https://files.pythonhosted.org/packages/83/85/aa8ad3977b9399861db3df62b33fe5fef6932ee23a1b9f4f357f58f2094b/regex-2026.3.32-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f28eac18a8733a124444643a66ac96fef2c0ad65f50034e0a043b90333dc677f", size = 916550 }, + { url = "https://files.pythonhosted.org/packages/c8/c0/6379d7f5b59ff0656ba49cf666d5013ecee55e83245275b310b0ffc79143/regex-2026.3.32-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7cdd508664430dd51b8888deb6c5b416d8de046b2e11837254378d31febe4a98", size = 814988 }, + { url = "https://files.pythonhosted.org/packages/2c/af/2dfddc64074bd9b70e27e170ee9db900542e2870210b489ad4471416ba86/regex-2026.3.32-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:5c35d097f509cf7e40d20d5bee548d35d6049b36eb9965e8d43e4659923405b9", size = 786337 }, + { url = "https://files.pythonhosted.org/packages/eb/2f/4eb8abd705236402b4fe0e130971634deffb1855e2028bf02a2b7c0e841c/regex-2026.3.32-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:85c9b0c131427470a6423baa0a9330be6fd8c3630cc3ee6fdee03360724cbec5", size = 800029 }, + { url = "https://files.pythonhosted.org/packages/3e/2c/77d9ca2c9df483b51b4b1291c96d79c9ae301077841c4db39bc822f6b4c6/regex-2026.3.32-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:e50af656c15e2723eeb7279c0837e07accc594b95ec18b86821a4d44b51b24bf", size = 865843 }, + { url = "https://files.pythonhosted.org/packages/48/10/306f477a509f4eed699071b1f031d89edd5a2b5fa28c8ede5b2638eaba82/regex-2026.3.32-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:4bc32b4dbdb4f9f300cf9f38f8ea2ce9511a068ffaa45ac1373ee7a943f1d810", size = 772473 }, + { url = "https://files.pythonhosted.org/packages/f4/f6/54bd83ec46ac037de2beb049afc9dd5d2769c6ecaadf7856254ce610e62a/regex-2026.3.32-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:e3e5d1802cba785210a4a800e63fcee7a228649a880f3bf7f2aadccb151a834b", size = 856805 }, + { url = "https://files.pythonhosted.org/packages/37/e8/ee0e7d14de1fc6582d5782f072db6c61465a38a4142f88e175dda494b536/regex-2026.3.32-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:ef250a3f5e93182193f5c927c5e9575b2cb14b80d03e258bc0b89cc5de076b60", size = 801875 }, + { url = "https://files.pythonhosted.org/packages/8a/06/0fa9daca59d07b6aabd8e0468d3b86fd578576a157206fbcddbfc2298f7d/regex-2026.3.32-cp313-cp313t-win32.whl", hash = "sha256:9cf7036dfa2370ccc8651521fcbb40391974841119e9982fa312b552929e6c85", size = 269892 }, + { url = "https://files.pythonhosted.org/packages/13/47/77f16b5ad9f10ca574f03d84a354b359b0ac33f85054f2f2daafc9f7b807/regex-2026.3.32-cp313-cp313t-win_amd64.whl", hash = "sha256:c940e00e8d3d10932c929d4b8657c2ea47d2560f31874c3e174c0d3488e8b865", size = 281318 }, + { url = "https://files.pythonhosted.org/packages/c6/47/db4446faaea8d01c8315c9c89c7dc6abbb3305e8e712e9b23936095c4d58/regex-2026.3.32-cp313-cp313t-win_arm64.whl", hash = "sha256:ace48c5e157c1e58b7de633c5e257285ce85e567ac500c833349c363b3df69d4", size = 272366 }, + { url = "https://files.pythonhosted.org/packages/32/68/ff024bf6131b7446a791a636dbbb7fa732d586f33b276d84b3460ea49393/regex-2026.3.32-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:a416ee898ecbc5d8b283223b4cf4d560f93244f6f7615c1bd67359744b00c166", size = 490430 }, + { url = "https://files.pythonhosted.org/packages/61/72/039d9164817ee298f2a2d0246001afe662241dcbec0eedd1fe03e2a2555e/regex-2026.3.32-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:d76d62909bfb14521c3f7cfd5b94c0c75ec94b0a11f647d2f604998962ec7b6c", size = 291948 }, + { url = "https://files.pythonhosted.org/packages/06/9d/77f684d90ffe3e99b828d3cabb87a0f1601d2b9decd1333ff345809b1d02/regex-2026.3.32-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:631f7d95c83f42bccfe18946a38ad27ff6b6717fb4807e60cf24860b5eb277fc", size = 289786 }, + { url = "https://files.pythonhosted.org/packages/83/70/bd76069a0304e924682b2efd8683a01617a7e1da9b651af73039d8da76a4/regex-2026.3.32-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:12917c6c6813ffcdfb11680a04e4d63c5532b88cf089f844721c5f41f41a63ad", size = 796672 }, + { url = "https://files.pythonhosted.org/packages/80/31/c2d7d9a5671e111a2c16d57e0cb03e1ce35b28a115901590528aa928bb5b/regex-2026.3.32-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:3e221b615f83b15887636fcb90ed21f1a19541366f8b7ba14ba1ad8304f4ded4", size = 866556 }, + { url = "https://files.pythonhosted.org/packages/d7/b9/9921a31931d0bc3416ac30205471e0e2ed60dcbd16fc922bbd69b427322b/regex-2026.3.32-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:4f9ae4755fa90f1dc2d0d393d572ebc134c0fe30fcfc0ab7e67c1db15f192041", size = 912787 }, + { url = "https://files.pythonhosted.org/packages/41/ab/2c1bc8ab99f63cdabdbc7823af8f4cfcd6ddbb2babf01861826c3f1ad44d/regex-2026.3.32-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a094e9dcafedfb9d333db5cf880304946683f43a6582bb86688f123335122929", size = 800879 }, + { url = "https://files.pythonhosted.org/packages/49/e5/0be716eb2c0b2ae3a439e44432534e82b2f81848af64cb21c0473ad8ae46/regex-2026.3.32-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c1cecea3e477af105f32ef2119b8d895f297492e41d317e60d474bc4bffd62ff", size = 776332 }, + { url = "https://files.pythonhosted.org/packages/26/80/114a61bd25dec7d1070930eaef82aadf9b05961a37629e7cca7bc3fc2257/regex-2026.3.32-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:f26262900edd16272b6360014495e8d68379c6c6e95983f9b7b322dc928a1194", size = 786384 }, + { url = "https://files.pythonhosted.org/packages/0c/78/be0a6531f8db426e8e60d6356aeef8e9cc3f541655a648c4968b63c87a88/regex-2026.3.32-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:1cb22fa9ee6a0acb22fc9aecce5f9995fe4d2426ed849357d499d62608fbd7f9", size = 861381 }, + { url = "https://files.pythonhosted.org/packages/45/b1/e5076fbe45b8fb39672584b1b606d512f5bd3a43155be68a95f6b88c1fc5/regex-2026.3.32-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:9b9118a78e031a2e4709cd2fcc3028432e89b718db70073a8da574c249b5b249", size = 765434 }, + { url = "https://files.pythonhosted.org/packages/a3/da/fd65d68b897f8b52b1390d20d776fa753582484724a9cb4f4c26de657ae5/regex-2026.3.32-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:b193ed199848aa96618cd5959c1582a0bf23cd698b0b900cb0ffe81b02c8659c", size = 851501 }, + { url = "https://files.pythonhosted.org/packages/e8/d6/1e9c991c32022a9312e9124cc974961b3a2501338de2cd1cce75a3612d7a/regex-2026.3.32-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:10fb2aaae1aaadf7d43c9f3c2450404253697bf8b9ce360bd5418d1d16292298", size = 788076 }, + { url = "https://files.pythonhosted.org/packages/f0/5b/b23c72f6d607cbb24ef42acf0c7c2ef4eee1377a9f7ba43b312f889edfbb/regex-2026.3.32-cp314-cp314-win32.whl", hash = "sha256:110ba4920721374d16c4c8ea7ce27b09546d43e16aea1d7f43681b5b8f80ba61", size = 272255 }, + { url = "https://files.pythonhosted.org/packages/2a/ec/32bbcc42366097a8cea2c481e02964be6c6fa5ccfb0fa9581686af0bec5f/regex-2026.3.32-cp314-cp314-win_amd64.whl", hash = "sha256:245667ad430745bae6a1e41081872d25819d86fbd9e0eec485ba00d9f78ad43d", size = 281160 }, + { url = "https://files.pythonhosted.org/packages/6c/e4/89038a028cb68e719fa03ab1ad603649fc199bcda12270d2ac7b471b8f5d/regex-2026.3.32-cp314-cp314-win_arm64.whl", hash = "sha256:1ca02ff0ef33e9d8276a1fcd6d90ff6ea055a32c9149c0050b5b67e26c6d2c51", size = 273688 }, + { url = "https://files.pythonhosted.org/packages/30/6e/87caccd608837a1fa4f8c7edc48e206103452b9bbc94fc724fa39340e807/regex-2026.3.32-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:51fb7e26f91f9091fd8ec6a946f99b15d3bc3667cb5ddc73dd6cb2222dd4a1cc", size = 494506 }, + { url = "https://files.pythonhosted.org/packages/16/53/a922e6b24694d70bdd68fc3fd076950e15b1b418cff9d2cc362b3968d86f/regex-2026.3.32-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:51a93452034d671b0e21b883d48ea66c5d6a05620ee16a9d3f229e828568f3f0", size = 293986 }, + { url = "https://files.pythonhosted.org/packages/60/e4/0cb32203c1aebad0577fcd5b9af1fe764869e617d5234bc6a0ad284299ea/regex-2026.3.32-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:03c2ebd15ff51e7b13bb3dc28dd5ac18cd39e59ebb40430b14ae1a19e833cff1", size = 292677 }, + { url = "https://files.pythonhosted.org/packages/f0/f8/5006b70291469d4174dd66ad162802e2f68419c0f2a7952d0c76c1288cfa/regex-2026.3.32-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5bf2f3c2c5bd8360d335c7dcd4a9006cf1dabae063ee2558ee1b07bbc8a20d88", size = 810661 }, + { url = "https://files.pythonhosted.org/packages/b2/9b/438763a20d22cd1f65f95c8f030dd25df2d80a941068a891d21a5f240456/regex-2026.3.32-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:8a4a3189a99ecdd1c13f42513ab3fc7fa8311b38ba7596dd98537acb8cd9acc3", size = 872156 }, + { url = "https://files.pythonhosted.org/packages/6c/5b/1341287887ac982ed9f5f60125e440513ffe354aa7e3681940495af7c12a/regex-2026.3.32-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:3c0bbfbd38506e1ea96a85da6782577f06239cb9fcf9696f1ea537c980c0680b", size = 916749 }, + { url = "https://files.pythonhosted.org/packages/42/e2/1d2b48b8e94debfffc6fefb84d2a86a178cc208652a1d6493d5f29821c70/regex-2026.3.32-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8aaf8ee8f34b677f90742ca089b9c83d64bdc410528767273c816a863ed57327", size = 814788 }, + { url = "https://files.pythonhosted.org/packages/a6/d9/7dacb34c43adaeb954518d851f3e5d3ce495ac00a9d6010e3b4b59917c4a/regex-2026.3.32-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:3ea568832eca219c2be1721afa073c1c9eb8f98a9733fdedd0a9747639fc22a5", size = 786594 }, + { url = "https://files.pythonhosted.org/packages/ea/72/28295068c92dbd6d3ce4fd22554345cf504e957cc57dadeda4a64fa86a57/regex-2026.3.32-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:8e4c8fa46aad1a11ae2f8fcd1c90b9d55e18925829ac0d98c5bb107f93351745", size = 800167 }, + { url = "https://files.pythonhosted.org/packages/ca/17/b10745adeca5b8d52da050e7c746137f5d01dabc6dbbe6e8d9d821dc65c1/regex-2026.3.32-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:0cec365d44835b043d7b3266487797639d07d621bec9dc0ea224b00775797cc1", size = 865906 }, + { url = "https://files.pythonhosted.org/packages/45/9d/1acbcce765044ac0c87f453f4876e0897f7a61c10315262f960184310798/regex-2026.3.32-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:09e26cad1544d856da85881ad292797289e4406338afe98163f3db9f7fac816c", size = 772642 }, + { url = "https://files.pythonhosted.org/packages/24/41/1ef8b4811355ad7b9d7579d3aeca00f18b7bc043ace26c8c609b9287346d/regex-2026.3.32-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:6062c4ef581a3e9e503dccf4e1b7f2d33fdc1c13ad510b287741ac73bc4c6b27", size = 856927 }, + { url = "https://files.pythonhosted.org/packages/97/b1/0dc1d361be80ec1b8b707ada041090181133a7a29d438e432260a4b26f9a/regex-2026.3.32-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:88ebc0783907468f17fca3d7821b30f9c21865a721144eb498cb0ff99a67bcac", size = 801910 }, + { url = "https://files.pythonhosted.org/packages/b5/db/1a23f767fa250844772a9464306d34e0fafe2c317303b88a1415096b6324/regex-2026.3.32-cp314-cp314t-win32.whl", hash = "sha256:e480d3dac06c89bc2e0fd87524cc38c546ac8b4a38177650745e64acbbcfdeba", size = 275714 }, + { url = "https://files.pythonhosted.org/packages/c2/2b/616d31b125ca76079d74d6b1d84ec0860ffdb41c379151135d06e35a8633/regex-2026.3.32-cp314-cp314t-win_amd64.whl", hash = "sha256:67015a8162d413af9e3309d9a24e385816666fbf09e48e3ec43342c8536f7df6", size = 285722 }, + { url = "https://files.pythonhosted.org/packages/7e/91/043d9a00d6123c5fa22a3dc96b10445ce434a8110e1d5e53efb01f243c8b/regex-2026.3.32-cp314-cp314t-win_arm64.whl", hash = "sha256:1a6ac1ed758902e664e0d95c1ee5991aa6fb355423f378ed184c6ec47a1ec0e9", size = 275700 }, +] + +[[package]] +name = "requests" +version = "2.33.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "charset-normalizer" }, + { name = "idna" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/5f/a4/98b9c7c6428a668bf7e42ebb7c79d576a1c3c1e3ae2d47e674b468388871/requests-2.33.1.tar.gz", hash = "sha256:18817f8c57c6263968bc123d237e3b8b08ac046f5456bd1e307ee8f4250d3517", size = 134120 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d7/8e/7540e8a2036f79a125c1d2ebadf69ed7901608859186c856fa0388ef4197/requests-2.33.1-py3-none-any.whl", hash = "sha256:4e6d1ef462f3626a1f0a0a9c42dd93c63bad33f9f1c1937509b8c5c8718ab56a", size = 64947 }, +] + +[[package]] +name = "rich" +version = "14.3.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markdown-it-py" }, + { name = "pygments" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b3/c6/f3b320c27991c46f43ee9d856302c70dc2d0fb2dba4842ff739d5f46b393/rich-14.3.3.tar.gz", hash = "sha256:b8daa0b9e4eef54dd8cf7c86c03713f53241884e814f4e2f5fb342fe520f639b", size = 230582 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/14/25/b208c5683343959b670dc001595f2f3737e051da617f66c31f7c4fa93abc/rich-14.3.3-py3-none-any.whl", hash = "sha256:793431c1f8619afa7d3b52b2cdec859562b950ea0d4b6b505397612db8d5362d", size = 310458 }, +] + +[[package]] +name = "rich-rst" +version = "1.3.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "docutils" }, + { name = "rich" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bc/6d/a506aaa4a9eaa945ed8ab2b7347859f53593864289853c5d6d62b77246e0/rich_rst-1.3.2.tar.gz", hash = "sha256:a1196fdddf1e364b02ec68a05e8ff8f6914fee10fbca2e6b6735f166bb0da8d4", size = 14936 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/13/2f/b4530fbf948867702d0a3f27de4a6aab1d156f406d72852ab902c4d04de9/rich_rst-1.3.2-py3-none-any.whl", hash = "sha256:a99b4907cbe118cf9d18b0b44de272efa61f15117c61e39ebdc431baf5df722a", size = 12567 }, +] + +[[package]] +name = "rpds-py" +version = "0.30.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/20/af/3f2f423103f1113b36230496629986e0ef7e199d2aa8392452b484b38ced/rpds_py-0.30.0.tar.gz", hash = "sha256:dd8ff7cf90014af0c0f787eea34794ebf6415242ee1d6fa91eaba725cc441e84", size = 69469 } +wheels = [ + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { url = "https://files.pythonhosted.org/packages/6f/ab/d5d5e3bcedb0a77f4f613706b750e50a5a3ba1c15ccd3665ecc636c968fd/rpds_py-0.30.0-cp312-cp312-win32.whl", hash = "sha256:1ab5b83dbcf55acc8b08fc62b796ef672c457b17dbd7820a11d6c52c06839bdf", size = 223782 }, + { url = "https://files.pythonhosted.org/packages/39/3b/f786af9957306fdc38a74cef405b7b93180f481fb48453a114bb6465744a/rpds_py-0.30.0-cp312-cp312-win_amd64.whl", hash = "sha256:a090322ca841abd453d43456ac34db46e8b05fd9b3b4ac0c78bcde8b089f959b", size = 240463 }, + { url = "https://files.pythonhosted.org/packages/f3/d2/b91dc748126c1559042cfe41990deb92c4ee3e2b415f6b5234969ffaf0cc/rpds_py-0.30.0-cp312-cp312-win_arm64.whl", hash = "sha256:669b1805bd639dd2989b281be2cfd951c6121b65e729d9b843e9639ef1fd555e", size = 230868 }, + { url = "https://files.pythonhosted.org/packages/ed/dc/d61221eb88ff410de3c49143407f6f3147acf2538c86f2ab7ce65ae7d5f9/rpds_py-0.30.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:f83424d738204d9770830d35290ff3273fbb02b41f919870479fab14b9d303b2", size = 374887 }, + { url = "https://files.pythonhosted.org/packages/fd/32/55fb50ae104061dbc564ef15cc43c013dc4a9f4527a1f4d99baddf56fe5f/rpds_py-0.30.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e7536cd91353c5273434b4e003cbda89034d67e7710eab8761fd918ec6c69cf8", size = 358904 }, + { url = "https://files.pythonhosted.org/packages/58/70/faed8186300e3b9bdd138d0273109784eea2396c68458ed580f885dfe7ad/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2771c6c15973347f50fece41fc447c054b7ac2ae0502388ce3b6738cd366e3d4", size = 389945 }, + { url = "https://files.pythonhosted.org/packages/bd/a8/073cac3ed2c6387df38f71296d002ab43496a96b92c823e76f46b8af0543/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0a59119fc6e3f460315fe9d08149f8102aa322299deaa5cab5b40092345c2136", size = 407783 }, + { url = "https://files.pythonhosted.org/packages/77/57/5999eb8c58671f1c11eba084115e77a8899d6e694d2a18f69f0ba471ec8b/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:76fec018282b4ead0364022e3c54b60bf368b9d926877957a8624b58419169b7", size = 515021 }, + { url = "https://files.pythonhosted.org/packages/e0/af/5ab4833eadc36c0a8ed2bc5c0de0493c04f6c06de223170bd0798ff98ced/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:692bef75a5525db97318e8cd061542b5a79812d711ea03dbc1f6f8dbb0c5f0d2", size = 414589 }, + { url = "https://files.pythonhosted.org/packages/b7/de/f7192e12b21b9e9a68a6d0f249b4af3fdcdff8418be0767a627564afa1f1/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9027da1ce107104c50c81383cae773ef5c24d296dd11c99e2629dbd7967a20c6", size = 394025 }, + { url = "https://files.pythonhosted.org/packages/91/c4/fc70cd0249496493500e7cc2de87504f5aa6509de1e88623431fec76d4b6/rpds_py-0.30.0-cp313-cp313-manylinux_2_31_riscv64.whl", hash = "sha256:9cf69cdda1f5968a30a359aba2f7f9aa648a9ce4b580d6826437f2b291cfc86e", size = 408895 }, + { url = "https://files.pythonhosted.org/packages/58/95/d9275b05ab96556fefff73a385813eb66032e4c99f411d0795372d9abcea/rpds_py-0.30.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a4796a717bf12b9da9d3ad002519a86063dcac8988b030e405704ef7d74d2d9d", size = 422799 }, + { url = "https://files.pythonhosted.org/packages/06/c1/3088fc04b6624eb12a57eb814f0d4997a44b0d208d6cace713033ff1a6ba/rpds_py-0.30.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5d4c2aa7c50ad4728a094ebd5eb46c452e9cb7edbfdb18f9e1221f597a73e1e7", size = 572731 }, + { url = "https://files.pythonhosted.org/packages/d8/42/c612a833183b39774e8ac8fecae81263a68b9583ee343db33ab571a7ce55/rpds_py-0.30.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ba81a9203d07805435eb06f536d95a266c21e5b2dfbf6517748ca40c98d19e31", size = 599027 }, + { url = "https://files.pythonhosted.org/packages/5f/60/525a50f45b01d70005403ae0e25f43c0384369ad24ffe46e8d9068b50086/rpds_py-0.30.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:945dccface01af02675628334f7cf49c2af4c1c904748efc5cf7bbdf0b579f95", size = 563020 }, + { url = "https://files.pythonhosted.org/packages/0b/5d/47c4655e9bcd5ca907148535c10e7d489044243cc9941c16ed7cd53be91d/rpds_py-0.30.0-cp313-cp313-win32.whl", hash = "sha256:b40fb160a2db369a194cb27943582b38f79fc4887291417685f3ad693c5a1d5d", size = 223139 }, + { url = "https://files.pythonhosted.org/packages/f2/e1/485132437d20aa4d3e1d8b3fb5a5e65aa8139f1e097080c2a8443201742c/rpds_py-0.30.0-cp313-cp313-win_amd64.whl", hash = "sha256:806f36b1b605e2d6a72716f321f20036b9489d29c51c91f4dd29a3e3afb73b15", size = 240224 }, + { url = "https://files.pythonhosted.org/packages/24/95/ffd128ed1146a153d928617b0ef673960130be0009c77d8fbf0abe306713/rpds_py-0.30.0-cp313-cp313-win_arm64.whl", hash = "sha256:d96c2086587c7c30d44f31f42eae4eac89b60dabbac18c7669be3700f13c3ce1", size = 230645 }, + { url = "https://files.pythonhosted.org/packages/ff/1b/b10de890a0def2a319a2626334a7f0ae388215eb60914dbac8a3bae54435/rpds_py-0.30.0-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:eb0b93f2e5c2189ee831ee43f156ed34e2a89a78a66b98cadad955972548be5a", size = 364443 }, + { url = "https://files.pythonhosted.org/packages/0d/bf/27e39f5971dc4f305a4fb9c672ca06f290f7c4e261c568f3dea16a410d47/rpds_py-0.30.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:922e10f31f303c7c920da8981051ff6d8c1a56207dbdf330d9047f6d30b70e5e", size = 353375 }, + { url = "https://files.pythonhosted.org/packages/40/58/442ada3bba6e8e6615fc00483135c14a7538d2ffac30e2d933ccf6852232/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cdc62c8286ba9bf7f47befdcea13ea0e26bf294bda99758fd90535cbaf408000", size = 383850 }, + { url = "https://files.pythonhosted.org/packages/14/14/f59b0127409a33c6ef6f5c1ebd5ad8e32d7861c9c7adfa9a624fc3889f6c/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:47f9a91efc418b54fb8190a6b4aa7813a23fb79c51f4bb84e418f5476c38b8db", size = 392812 }, + { url = "https://files.pythonhosted.org/packages/b3/66/e0be3e162ac299b3a22527e8913767d869e6cc75c46bd844aa43fb81ab62/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1f3587eb9b17f3789ad50824084fa6f81921bbf9a795826570bda82cb3ed91f2", size = 517841 }, + { url = "https://files.pythonhosted.org/packages/3d/55/fa3b9cf31d0c963ecf1ba777f7cf4b2a2c976795ac430d24a1f43d25a6ba/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:39c02563fc592411c2c61d26b6c5fe1e51eaa44a75aa2c8735ca88b0d9599daa", size = 408149 }, + { url = "https://files.pythonhosted.org/packages/60/ca/780cf3b1a32b18c0f05c441958d3758f02544f1d613abf9488cd78876378/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:51a1234d8febafdfd33a42d97da7a43f5dcb120c1060e352a3fbc0c6d36e2083", size = 383843 }, + { url = "https://files.pythonhosted.org/packages/82/86/d5f2e04f2aa6247c613da0c1dd87fcd08fa17107e858193566048a1e2f0a/rpds_py-0.30.0-cp313-cp313t-manylinux_2_31_riscv64.whl", hash = "sha256:eb2c4071ab598733724c08221091e8d80e89064cd472819285a9ab0f24bcedb9", size = 396507 }, + { url = "https://files.pythonhosted.org/packages/4b/9a/453255d2f769fe44e07ea9785c8347edaf867f7026872e76c1ad9f7bed92/rpds_py-0.30.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6bdfdb946967d816e6adf9a3d8201bfad269c67efe6cefd7093ef959683c8de0", size = 414949 }, + { url = "https://files.pythonhosted.org/packages/a3/31/622a86cdc0c45d6df0e9ccb6becdba5074735e7033c20e401a6d9d0e2ca0/rpds_py-0.30.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:c77afbd5f5250bf27bf516c7c4a016813eb2d3e116139aed0096940c5982da94", size = 565790 }, + { url = "https://files.pythonhosted.org/packages/1c/5d/15bbf0fb4a3f58a3b1c67855ec1efcc4ceaef4e86644665fff03e1b66d8d/rpds_py-0.30.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:61046904275472a76c8c90c9ccee9013d70a6d0f73eecefd38c1ae7c39045a08", size = 590217 }, + { url = "https://files.pythonhosted.org/packages/6d/61/21b8c41f68e60c8cc3b2e25644f0e3681926020f11d06ab0b78e3c6bbff1/rpds_py-0.30.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:4c5f36a861bc4b7da6516dbdf302c55313afa09b81931e8280361a4f6c9a2d27", size = 555806 }, + { url = "https://files.pythonhosted.org/packages/f9/39/7e067bb06c31de48de3eb200f9fc7c58982a4d3db44b07e73963e10d3be9/rpds_py-0.30.0-cp313-cp313t-win32.whl", hash = "sha256:3d4a69de7a3e50ffc214ae16d79d8fbb0922972da0356dcf4d0fdca2878559c6", size = 211341 }, + { url = "https://files.pythonhosted.org/packages/0a/4d/222ef0b46443cf4cf46764d9c630f3fe4abaa7245be9417e56e9f52b8f65/rpds_py-0.30.0-cp313-cp313t-win_amd64.whl", hash = "sha256:f14fc5df50a716f7ece6a80b6c78bb35ea2ca47c499e422aa4463455dd96d56d", size = 225768 }, + { url = "https://files.pythonhosted.org/packages/86/81/dad16382ebbd3d0e0328776d8fd7ca94220e4fa0798d1dc5e7da48cb3201/rpds_py-0.30.0-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:68f19c879420aa08f61203801423f6cd5ac5f0ac4ac82a2368a9fcd6a9a075e0", size = 362099 }, + { url = "https://files.pythonhosted.org/packages/2b/60/19f7884db5d5603edf3c6bce35408f45ad3e97e10007df0e17dd57af18f8/rpds_py-0.30.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:ec7c4490c672c1a0389d319b3a9cfcd098dcdc4783991553c332a15acf7249be", size = 353192 }, + { url = "https://files.pythonhosted.org/packages/bf/c4/76eb0e1e72d1a9c4703c69607cec123c29028bff28ce41588792417098ac/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f251c812357a3fed308d684a5079ddfb9d933860fc6de89f2b7ab00da481e65f", size = 384080 }, + { url = "https://files.pythonhosted.org/packages/72/87/87ea665e92f3298d1b26d78814721dc39ed8d2c74b86e83348d6b48a6f31/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ac98b175585ecf4c0348fd7b29c3864bda53b805c773cbf7bfdaffc8070c976f", size = 394841 }, + { url = "https://files.pythonhosted.org/packages/77/ad/7783a89ca0587c15dcbf139b4a8364a872a25f861bdb88ed99f9b0dec985/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3e62880792319dbeb7eb866547f2e35973289e7d5696c6e295476448f5b63c87", size = 516670 }, + { url = "https://files.pythonhosted.org/packages/5b/3c/2882bdac942bd2172f3da574eab16f309ae10a3925644e969536553cb4ee/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4e7fc54e0900ab35d041b0601431b0a0eb495f0851a0639b6ef90f7741b39a18", size = 408005 }, + { url = "https://files.pythonhosted.org/packages/ce/81/9a91c0111ce1758c92516a3e44776920b579d9a7c09b2b06b642d4de3f0f/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47e77dc9822d3ad616c3d5759ea5631a75e5809d5a28707744ef79d7a1bcfcad", size = 382112 }, + { url = "https://files.pythonhosted.org/packages/cf/8e/1da49d4a107027e5fbc64daeab96a0706361a2918da10cb41769244b805d/rpds_py-0.30.0-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:b4dc1a6ff022ff85ecafef7979a2c6eb423430e05f1165d6688234e62ba99a07", size = 399049 }, + { url = "https://files.pythonhosted.org/packages/df/5a/7ee239b1aa48a127570ec03becbb29c9d5a9eb092febbd1699d567cae859/rpds_py-0.30.0-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4559c972db3a360808309e06a74628b95eaccbf961c335c8fe0d590cf587456f", size = 415661 }, + { url = "https://files.pythonhosted.org/packages/70/ea/caa143cf6b772f823bc7929a45da1fa83569ee49b11d18d0ada7f5ee6fd6/rpds_py-0.30.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:0ed177ed9bded28f8deb6ab40c183cd1192aa0de40c12f38be4d59cd33cb5c65", size = 565606 }, + { url = "https://files.pythonhosted.org/packages/64/91/ac20ba2d69303f961ad8cf55bf7dbdb4763f627291ba3d0d7d67333cced9/rpds_py-0.30.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:ad1fa8db769b76ea911cb4e10f049d80bf518c104f15b3edb2371cc65375c46f", size = 591126 }, + { url = "https://files.pythonhosted.org/packages/21/20/7ff5f3c8b00c8a95f75985128c26ba44503fb35b8e0259d812766ea966c7/rpds_py-0.30.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:46e83c697b1f1c72b50e5ee5adb4353eef7406fb3f2043d64c33f20ad1c2fc53", size = 553371 }, + { url = "https://files.pythonhosted.org/packages/72/c7/81dadd7b27c8ee391c132a6b192111ca58d866577ce2d9b0ca157552cce0/rpds_py-0.30.0-cp314-cp314-win32.whl", hash = "sha256:ee454b2a007d57363c2dfd5b6ca4a5d7e2c518938f8ed3b706e37e5d470801ed", size = 215298 }, + { url = "https://files.pythonhosted.org/packages/3e/d2/1aaac33287e8cfb07aab2e6b8ac1deca62f6f65411344f1433c55e6f3eb8/rpds_py-0.30.0-cp314-cp314-win_amd64.whl", hash = "sha256:95f0802447ac2d10bcc69f6dc28fe95fdf17940367b21d34e34c737870758950", size = 228604 }, + { url = "https://files.pythonhosted.org/packages/e8/95/ab005315818cc519ad074cb7784dae60d939163108bd2b394e60dc7b5461/rpds_py-0.30.0-cp314-cp314-win_arm64.whl", hash = "sha256:613aa4771c99f03346e54c3f038e4cc574ac09a3ddfb0e8878487335e96dead6", size = 222391 }, + { url = "https://files.pythonhosted.org/packages/9e/68/154fe0194d83b973cdedcdcc88947a2752411165930182ae41d983dcefa6/rpds_py-0.30.0-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:7e6ecfcb62edfd632e56983964e6884851786443739dbfe3582947e87274f7cb", size = 364868 }, + { url = "https://files.pythonhosted.org/packages/83/69/8bbc8b07ec854d92a8b75668c24d2abcb1719ebf890f5604c61c9369a16f/rpds_py-0.30.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:a1d0bc22a7cdc173fedebb73ef81e07faef93692b8c1ad3733b67e31e1b6e1b8", size = 353747 }, + { url = "https://files.pythonhosted.org/packages/ab/00/ba2e50183dbd9abcce9497fa5149c62b4ff3e22d338a30d690f9af970561/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0d08f00679177226c4cb8c5265012eea897c8ca3b93f429e546600c971bcbae7", size = 383795 }, + { url = "https://files.pythonhosted.org/packages/05/6f/86f0272b84926bcb0e4c972262f54223e8ecc556b3224d281e6598fc9268/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5965af57d5848192c13534f90f9dd16464f3c37aaf166cc1da1cae1fd5a34898", size = 393330 }, + { url = "https://files.pythonhosted.org/packages/cb/e9/0e02bb2e6dc63d212641da45df2b0bf29699d01715913e0d0f017ee29438/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9a4e86e34e9ab6b667c27f3211ca48f73dba7cd3d90f8d5b11be56e5dbc3fb4e", size = 518194 }, + { url = "https://files.pythonhosted.org/packages/ee/ca/be7bca14cf21513bdf9c0606aba17d1f389ea2b6987035eb4f62bd923f25/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e5d3e6b26f2c785d65cc25ef1e5267ccbe1b069c5c21b8cc724efee290554419", size = 408340 }, + { url = "https://files.pythonhosted.org/packages/c2/c7/736e00ebf39ed81d75544c0da6ef7b0998f8201b369acf842f9a90dc8fce/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:626a7433c34566535b6e56a1b39a7b17ba961e97ce3b80ec62e6f1312c025551", size = 383765 }, + { url = "https://files.pythonhosted.org/packages/4a/3f/da50dfde9956aaf365c4adc9533b100008ed31aea635f2b8d7b627e25b49/rpds_py-0.30.0-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:acd7eb3f4471577b9b5a41baf02a978e8bdeb08b4b355273994f8b87032000a8", size = 396834 }, + { url = "https://files.pythonhosted.org/packages/4e/00/34bcc2565b6020eab2623349efbdec810676ad571995911f1abdae62a3a0/rpds_py-0.30.0-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:fe5fa731a1fa8a0a56b0977413f8cacac1768dad38d16b3a296712709476fbd5", size = 415470 }, + { url = "https://files.pythonhosted.org/packages/8c/28/882e72b5b3e6f718d5453bd4d0d9cf8df36fddeb4ddbbab17869d5868616/rpds_py-0.30.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:74a3243a411126362712ee1524dfc90c650a503502f135d54d1b352bd01f2404", size = 565630 }, + { url = "https://files.pythonhosted.org/packages/3b/97/04a65539c17692de5b85c6e293520fd01317fd878ea1995f0367d4532fb1/rpds_py-0.30.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:3e8eeb0544f2eb0d2581774be4c3410356eba189529a6b3e36bbbf9696175856", size = 591148 }, + { url = "https://files.pythonhosted.org/packages/85/70/92482ccffb96f5441aab93e26c4d66489eb599efdcf96fad90c14bbfb976/rpds_py-0.30.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:dbd936cde57abfee19ab3213cf9c26be06d60750e60a8e4dd85d1ab12c8b1f40", size = 556030 }, + { url = "https://files.pythonhosted.org/packages/20/53/7c7e784abfa500a2b6b583b147ee4bb5a2b3747a9166bab52fec4b5b5e7d/rpds_py-0.30.0-cp314-cp314t-win32.whl", hash = "sha256:dc824125c72246d924f7f796b4f63c1e9dc810c7d9e2355864b3c3a73d59ade0", size = 211570 }, + { url = "https://files.pythonhosted.org/packages/d0/02/fa464cdfbe6b26e0600b62c528b72d8608f5cc49f96b8d6e38c95d60c676/rpds_py-0.30.0-cp314-cp314t-win_amd64.whl", hash = "sha256:27f4b0e92de5bfbc6f86e43959e6edd1425c33b5e69aab0984a72047f2bcf1e3", size = 226532 }, +] + +[[package]] +name = "ruff" +version = "0.15.8" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/14/b0/73cf7550861e2b4824950b8b52eebdcc5adc792a00c514406556c5b80817/ruff-0.15.8.tar.gz", hash = "sha256:995f11f63597ee362130d1d5a327a87cb6f3f5eae3094c620bcc632329a4d26e", size = 4610921 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4a/92/c445b0cd6da6e7ae51e954939cb69f97e008dbe750cfca89b8cedc081be7/ruff-0.15.8-py3-none-linux_armv6l.whl", hash = "sha256:cbe05adeba76d58162762d6b239c9056f1a15a55bd4b346cfd21e26cd6ad7bc7", size = 10527394 }, + { url = "https://files.pythonhosted.org/packages/eb/92/f1c662784d149ad1414cae450b082cf736430c12ca78367f20f5ed569d65/ruff-0.15.8-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:d3e3d0b6ba8dca1b7ef9ab80a28e840a20070c4b62e56d675c24f366ef330570", size = 10905693 }, + { url = "https://files.pythonhosted.org/packages/ca/f2/7a631a8af6d88bcef997eb1bf87cc3da158294c57044aafd3e17030613de/ruff-0.15.8-py3-none-macosx_11_0_arm64.whl", hash = "sha256:6ee3ae5c65a42f273f126686353f2e08ff29927b7b7e203b711514370d500de3", size = 10323044 }, + { url = "https://files.pythonhosted.org/packages/67/18/1bf38e20914a05e72ef3b9569b1d5c70a7ef26cd188d69e9ca8ef588d5bf/ruff-0.15.8-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fdce027ada77baa448077ccc6ebb2fa9c3c62fd110d8659d601cf2f475858d94", size = 10629135 }, + { url = "https://files.pythonhosted.org/packages/d2/e9/138c150ff9af60556121623d41aba18b7b57d95ac032e177b6a53789d279/ruff-0.15.8-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:12e617fc01a95e5821648a6df341d80456bd627bfab8a829f7cfc26a14a4b4a3", size = 10348041 }, + { url = "https://files.pythonhosted.org/packages/02/f1/5bfb9298d9c323f842c5ddeb85f1f10ef51516ac7a34ba446c9347d898df/ruff-0.15.8-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:432701303b26416d22ba696c39f2c6f12499b89093b61360abc34bcc9bf07762", size = 11121987 }, + { url = "https://files.pythonhosted.org/packages/10/11/6da2e538704e753c04e8d86b1fc55712fdbdcc266af1a1ece7a51fff0d10/ruff-0.15.8-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d910ae974b7a06a33a057cb87d2a10792a3b2b3b35e33d2699fdf63ec8f6b17a", size = 11951057 }, + { url = "https://files.pythonhosted.org/packages/83/f0/c9208c5fd5101bf87002fed774ff25a96eea313d305f1e5d5744698dc314/ruff-0.15.8-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2033f963c43949d51e6fdccd3946633c6b37c484f5f98c3035f49c27395a8ab8", size = 11464613 }, + { url = "https://files.pythonhosted.org/packages/f8/22/d7f2fabdba4fae9f3b570e5605d5eb4500dcb7b770d3217dca4428484b17/ruff-0.15.8-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0f29b989a55572fb885b77464cf24af05500806ab4edf9a0fd8977f9759d85b1", size = 11257557 }, + { url = "https://files.pythonhosted.org/packages/71/8c/382a9620038cf6906446b23ce8632ab8c0811b8f9d3e764f58bedd0c9a6f/ruff-0.15.8-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:ac51d486bf457cdc985a412fb1801b2dfd1bd8838372fc55de64b1510eff4bec", size = 11169440 }, + { url = "https://files.pythonhosted.org/packages/4d/0d/0994c802a7eaaf99380085e4e40c845f8e32a562e20a38ec06174b52ef24/ruff-0.15.8-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:c9861eb959edab053c10ad62c278835ee69ca527b6dcd72b47d5c1e5648964f6", size = 10605963 }, + { url = "https://files.pythonhosted.org/packages/19/aa/d624b86f5b0aad7cef6bbf9cd47a6a02dfdc4f72c92a337d724e39c9d14b/ruff-0.15.8-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:8d9a5b8ea13f26ae90838afc33f91b547e61b794865374f114f349e9036835fb", size = 10357484 }, + { url = "https://files.pythonhosted.org/packages/35/c3/e0b7835d23001f7d999f3895c6b569927c4d39912286897f625736e1fd04/ruff-0.15.8-py3-none-musllinux_1_2_i686.whl", hash = "sha256:c2a33a529fb3cbc23a7124b5c6ff121e4d6228029cba374777bd7649cc8598b8", size = 10830426 }, + { url = "https://files.pythonhosted.org/packages/f0/51/ab20b322f637b369383adc341d761eaaa0f0203d6b9a7421cd6e783d81b9/ruff-0.15.8-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:75e5cd06b1cf3f47a3996cfc999226b19aa92e7cce682dcd62f80d7035f98f49", size = 11345125 }, + { url = "https://files.pythonhosted.org/packages/37/e6/90b2b33419f59d0f2c4c8a48a4b74b460709a557e8e0064cf33ad894f983/ruff-0.15.8-py3-none-win32.whl", hash = "sha256:bc1f0a51254ba21767bfa9a8b5013ca8149dcf38092e6a9eb704d876de94dc34", size = 10571959 }, + { url = "https://files.pythonhosted.org/packages/1f/a2/ef467cb77099062317154c63f234b8a7baf7cb690b99af760c5b68b9ee7f/ruff-0.15.8-py3-none-win_amd64.whl", hash = "sha256:04f79eff02a72db209d47d665ba7ebcad609d8918a134f86cb13dd132159fc89", size = 11743893 }, + { url = "https://files.pythonhosted.org/packages/15/e2/77be4fff062fa78d9b2a4dea85d14785dac5f1d0c1fb58ed52331f0ebe28/ruff-0.15.8-py3-none-win_arm64.whl", hash = "sha256:cf891fa8e3bb430c0e7fac93851a5978fc99c8fa2c053b57b118972866f8e5f2", size = 11048175 }, +] + +[[package]] +name = "s3transfer" +version = "0.16.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "botocore" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/05/04/74127fc843314818edfa81b5540e26dd537353b123a4edc563109d8f17dd/s3transfer-0.16.0.tar.gz", hash = "sha256:8e990f13268025792229cd52fa10cb7163744bf56e719e0b9cb925ab79abf920", size = 153827 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fc/51/727abb13f44c1fcf6d145979e1535a35794db0f6e450a0cb46aa24732fe2/s3transfer-0.16.0-py3-none-any.whl", hash = "sha256:18e25d66fed509e3868dc1572b3f427ff947dd2c56f844a5bf09481ad3f3b2fe", size = 86830 }, +] + +[[package]] +name = "secretstorage" +version = "3.5.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cryptography", marker = "sys_platform != 'emscripten' and sys_platform != 'win32'" }, + { name = "jeepney", marker = "sys_platform != 'emscripten' and sys_platform != 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/1c/03/e834bcd866f2f8a49a85eaff47340affa3bfa391ee9912a952a1faa68c7b/secretstorage-3.5.0.tar.gz", hash = "sha256:f04b8e4689cbce351744d5537bf6b1329c6fc68f91fa666f60a380edddcd11be", size = 19884 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/46/f5af3402b579fd5e11573ce652019a67074317e18c1935cc0b4ba9b35552/secretstorage-3.5.0-py3-none-any.whl", hash = "sha256:0ce65888c0725fcb2c5bc0fdb8e5438eece02c523557ea40ce0703c266248137", size = 15554 }, +] + +[[package]] +name = "shellingham" +version = "1.5.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/58/15/8b3609fd3830ef7b27b655beb4b4e9c62313a4e8da8c676e142cc210d58e/shellingham-1.5.4.tar.gz", hash = "sha256:8dbca0739d487e5bd35ab3ca4b36e11c4078f3a234bfce294b0a0291363404de", size = 10310 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e0/f9/0595336914c5619e5f28a1fb793285925a8cd4b432c9da0a987836c7f822/shellingham-1.5.4-py2.py3-none-any.whl", hash = "sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686", size = 9755 }, +] + +[[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 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050 }, +] + +[[package]] +name = "smmap" +version = "5.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/1f/ea/49c993d6dfdd7338c9b1000a0f36817ed7ec84577ae2e52f890d1a4ff909/smmap-5.0.3.tar.gz", hash = "sha256:4d9debb8b99007ae47165abc08670bd74cb74b5227dda7f643eccc4e9eb5642c", size = 22506 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c1/d4/59e74daffcb57a07668852eeeb6035af9f32cbfd7a1d2511f17d2fe6a738/smmap-5.0.3-py3-none-any.whl", hash = "sha256:c106e05d5a61449cf6ba9a1e650227ecfb141590d2a98412103ff35d89fc7b2f", size = 24390 }, +] + +[[package]] +name = "sniffio" +version = "1.3.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a2/87/a6771e1546d97e7e041b6ae58d80074f81b7d5121207425c964ddf5cfdbd/sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc", size = 20372 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10235 }, +] + +[[package]] +name = "sse-starlette" +version = "3.3.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "starlette" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/26/8c/f9290339ef6d79badbc010f067cd769d6601ec11a57d78569c683fb4dd87/sse_starlette-3.3.4.tar.gz", hash = "sha256:aaf92fc067af8a5427192895ac028e947b484ac01edbc3caf00e7e7137c7bef1", size = 32427 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f8/7f/3de5402f39890ac5660b86bcf5c03f9d855dad5c4ed764866d7b592b46fd/sse_starlette-3.3.4-py3-none-any.whl", hash = "sha256:84bb06e58939a8b38d8341f1bc9792f06c2b53f48c608dd207582b664fc8f3c1", size = 14330 }, +] + +[[package]] +name = "starlette" +version = "1.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/81/69/17425771797c36cded50b7fe44e850315d039f28b15901ab44839e70b593/starlette-1.0.0.tar.gz", hash = "sha256:6a4beaf1f81bb472fd19ea9b918b50dc3a77a6f2e190a12954b25e6ed5eea149", size = 2655289 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0b/c9/584bc9651441b4ba60cc4d557d8a547b5aff901af35bda3a4ee30c819b82/starlette-1.0.0-py3-none-any.whl", hash = "sha256:d3ec55e0bb321692d275455ddfd3df75fff145d009685eb40dc91fc66b03d38b", size = 72651 }, +] + +[[package]] +name = "streamlit" +version = "1.56.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "altair" }, + { name = "blinker" }, + { name = "cachetools" }, + { name = "click" }, + { name = "gitpython" }, + { name = "numpy" }, + { name = "packaging" }, + { name = "pandas" }, + { name = "pillow" }, + { name = "protobuf" }, + { name = "pyarrow" }, + { name = "pydeck" }, + { name = "requests" }, + { name = "tenacity" }, + { name = "toml" }, + { name = "tornado" }, + { name = "typing-extensions" }, + { name = "watchdog", marker = "sys_platform != 'darwin'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/03/85/7c669b3a1336d34ef39fa9760fbd343185f3b15db2ad0838fd78423d1c7f/streamlit-1.56.0.tar.gz", hash = "sha256:1176acfa89ae1318b79078e8efe689a9d02e8d58e325c00fc0e55fa2f3fe8d6a", size = 8559239 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e4/91/cb6f13a89e376ef179309d74f37a70ea0041d5e4b5ba5c4836dbf6e020ad/streamlit-1.56.0-py3-none-any.whl", hash = "sha256:8677a335734a30a51bc57ad0ec910e365d95f7c456fc02c60032927cd0729dc5", size = 9052089 }, +] + +[[package]] +name = "streamlit-folium" +version = "0.27.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "branca" }, + { name = "folium" }, + { name = "jinja2" }, + { name = "streamlit" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/43/30/388f878bf577d51409f34f789ea62633918fd57ec6221177a13e646bb3fe/streamlit_folium-0.27.1.tar.gz", hash = "sha256:bf8f2c203d460839fdc2f483405935940ea4c0b476483054600d2c4f862f3e54", size = 526928 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2b/c1/a5925d7cdc6637fddf2bfb6863cd59947e04c5509a4799f010845c82c74a/streamlit_folium-0.27.1-py3-none-any.whl", hash = "sha256:f87ddfa7f44644e3c81340b6d0d544c098f25ddf784ae0b2b6ca3126d7008b21", size = 529238 }, +] + +[[package]] +name = "temporalio" +version = "1.24.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "nexus-rpc" }, + { name = "protobuf" }, + { name = "types-protobuf" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a7/b1/7d9b3104ab7994e7d49e765b92495aaff44810b1e066c874c284a93ebd55/temporalio-1.24.0.tar.gz", hash = "sha256:e534e2e71b4a721193ec4ff3dae521146d093554bd47a64f5605d4ca33e56718", size = 2040485 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/84/a9/30517c21d6155bce1c3dc0e420db48da0231230dbc683f40ab6d5fe22b37/temporalio-1.24.0-cp310-abi3-macosx_10_12_x86_64.whl", hash = "sha256:7f11e7b4f4d09bafba499b43188353e23dc128b1fe3f3160014476e3dce70760", size = 12223918 }, + { url = "https://files.pythonhosted.org/packages/73/d0/11aa103bde794524008c1850a84e06cde98698395ca1f8b12e1bd2390aa8/temporalio-1.24.0-cp310-abi3-macosx_11_0_arm64.whl", hash = "sha256:5cff75a0ca922575b808a7fca1b0de38f6eea061f49e026664b8be9d5bb06ab8", size = 11708887 }, + { url = "https://files.pythonhosted.org/packages/1d/f4/774b56100e6bb94e3757ec96fb5c2bc62d42defc7d6de0ee35a12273827a/temporalio-1.24.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ee7c13b6724dd0c304aa846aecf6da72a8550f4ade40a0a7f6dcc1c92ef35710", size = 12028303 }, + { url = "https://files.pythonhosted.org/packages/e5/91/c05d0e9c2432fe8b1ea0d6fae321866ee49a320ad5e494e6ec9424ca5c28/temporalio-1.24.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aa71b9bfa42f951dd04ade97ce7f92ecedee8903047b4b41b122bb8cbd87a337", size = 12375155 }, + { url = "https://files.pythonhosted.org/packages/c4/97/5c939e4609c164c8690a3b5a135eb828d531de8ef63ff447a2a439c0b0fb/temporalio-1.24.0-cp310-abi3-win_amd64.whl", hash = "sha256:52f6833647eceddbebcc376e2ea663a9f73b2b3a42675f503aeb27c98fd4daeb", size = 12720174 }, +] + +[[package]] +name = "tenacity" +version = "9.1.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/47/c6/ee486fd809e357697ee8a44d3d69222b344920433d3b6666ccd9b374630c/tenacity-9.1.4.tar.gz", hash = "sha256:adb31d4c263f2bd041081ab33b498309a57c77f9acf2db65aadf0898179cf93a", size = 49413 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d7/c1/eb8f9debc45d3b7918a32ab756658a0904732f75e555402972246b0b8e71/tenacity-9.1.4-py3-none-any.whl", hash = "sha256:6095a360c919085f28c6527de529e76a06ad89b23659fa881ae0649b867a9d55", size = 28926 }, +] + +[[package]] +name = "tiktoken" +version = "0.12.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "regex" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/7d/ab/4d017d0f76ec3171d469d80fc03dfbb4e48a4bcaddaa831b31d526f05edc/tiktoken-0.12.0.tar.gz", hash = "sha256:b18ba7ee2b093863978fcb14f74b3707cdc8d4d4d3836853ce7ec60772139931", size = 37806 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a4/85/be65d39d6b647c79800fd9d29241d081d4eeb06271f383bb87200d74cf76/tiktoken-0.12.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b97f74aca0d78a1ff21b8cd9e9925714c15a9236d6ceacf5c7327c117e6e21e8", size = 1050728 }, + { url = "https://files.pythonhosted.org/packages/4a/42/6573e9129bc55c9bf7300b3a35bef2c6b9117018acca0dc760ac2d93dffe/tiktoken-0.12.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2b90f5ad190a4bb7c3eb30c5fa32e1e182ca1ca79f05e49b448438c3e225a49b", size = 994049 }, + { url = "https://files.pythonhosted.org/packages/66/c5/ed88504d2f4a5fd6856990b230b56d85a777feab84e6129af0822f5d0f70/tiktoken-0.12.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:65b26c7a780e2139e73acc193e5c63ac754021f160df919add909c1492c0fb37", size = 1129008 }, + { url = "https://files.pythonhosted.org/packages/f4/90/3dae6cc5436137ebd38944d396b5849e167896fc2073da643a49f372dc4f/tiktoken-0.12.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:edde1ec917dfd21c1f2f8046b86348b0f54a2c0547f68149d8600859598769ad", size = 1152665 }, + { url = "https://files.pythonhosted.org/packages/a3/fe/26df24ce53ffde419a42f5f53d755b995c9318908288c17ec3f3448313a3/tiktoken-0.12.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:35a2f8ddd3824608b3d650a000c1ef71f730d0c56486845705a8248da00f9fe5", size = 1194230 }, + { url = "https://files.pythonhosted.org/packages/20/cc/b064cae1a0e9fac84b0d2c46b89f4e57051a5f41324e385d10225a984c24/tiktoken-0.12.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:83d16643edb7fa2c99eff2ab7733508aae1eebb03d5dfc46f5565862810f24e3", size = 1254688 }, + { url = "https://files.pythonhosted.org/packages/81/10/b8523105c590c5b8349f2587e2fdfe51a69544bd5a76295fc20f2374f470/tiktoken-0.12.0-cp312-cp312-win_amd64.whl", hash = "sha256:ffc5288f34a8bc02e1ea7047b8d041104791d2ddbf42d1e5fa07822cbffe16bd", size = 878694 }, + { url = "https://files.pythonhosted.org/packages/00/61/441588ee21e6b5cdf59d6870f86beb9789e532ee9718c251b391b70c68d6/tiktoken-0.12.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:775c2c55de2310cc1bc9a3ad8826761cbdc87770e586fd7b6da7d4589e13dab3", size = 1050802 }, + { url = "https://files.pythonhosted.org/packages/1f/05/dcf94486d5c5c8d34496abe271ac76c5b785507c8eae71b3708f1ad9b45a/tiktoken-0.12.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a01b12f69052fbe4b080a2cfb867c4de12c704b56178edf1d1d7b273561db160", size = 993995 }, + { url = "https://files.pythonhosted.org/packages/a0/70/5163fe5359b943f8db9946b62f19be2305de8c3d78a16f629d4165e2f40e/tiktoken-0.12.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:01d99484dc93b129cd0964f9d34eee953f2737301f18b3c7257bf368d7615baa", size = 1128948 }, + { url = "https://files.pythonhosted.org/packages/0c/da/c028aa0babf77315e1cef357d4d768800c5f8a6de04d0eac0f377cb619fa/tiktoken-0.12.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:4a1a4fcd021f022bfc81904a911d3df0f6543b9e7627b51411da75ff2fe7a1be", size = 1151986 }, + { url = "https://files.pythonhosted.org/packages/a0/5a/886b108b766aa53e295f7216b509be95eb7d60b166049ce2c58416b25f2a/tiktoken-0.12.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:981a81e39812d57031efdc9ec59fa32b2a5a5524d20d4776574c4b4bd2e9014a", size = 1194222 }, + { url = "https://files.pythonhosted.org/packages/f4/f8/4db272048397636ac7a078d22773dd2795b1becee7bc4922fe6207288d57/tiktoken-0.12.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9baf52f84a3f42eef3ff4e754a0db79a13a27921b457ca9832cf944c6be4f8f3", size = 1255097 }, + { url = "https://files.pythonhosted.org/packages/8e/32/45d02e2e0ea2be3a9ed22afc47d93741247e75018aac967b713b2941f8ea/tiktoken-0.12.0-cp313-cp313-win_amd64.whl", hash = "sha256:b8a0cd0c789a61f31bf44851defbd609e8dd1e2c8589c614cc1060940ef1f697", size = 879117 }, + { url = "https://files.pythonhosted.org/packages/ce/76/994fc868f88e016e6d05b0da5ac24582a14c47893f4474c3e9744283f1d5/tiktoken-0.12.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:d5f89ea5680066b68bcb797ae85219c72916c922ef0fcdd3480c7d2315ffff16", size = 1050309 }, + { url = "https://files.pythonhosted.org/packages/f6/b8/57ef1456504c43a849821920d582a738a461b76a047f352f18c0b26c6516/tiktoken-0.12.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:b4e7ed1c6a7a8a60a3230965bdedba8cc58f68926b835e519341413370e0399a", size = 993712 }, + { url = "https://files.pythonhosted.org/packages/72/90/13da56f664286ffbae9dbcfadcc625439142675845baa62715e49b87b68b/tiktoken-0.12.0-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:fc530a28591a2d74bce821d10b418b26a094bf33839e69042a6e86ddb7a7fb27", size = 1128725 }, + { url = "https://files.pythonhosted.org/packages/05/df/4f80030d44682235bdaecd7346c90f67ae87ec8f3df4a3442cb53834f7e4/tiktoken-0.12.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:06a9f4f49884139013b138920a4c393aa6556b2f8f536345f11819389c703ebb", size = 1151875 }, + { url = "https://files.pythonhosted.org/packages/22/1f/ae535223a8c4ef4c0c1192e3f9b82da660be9eb66b9279e95c99288e9dab/tiktoken-0.12.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:04f0e6a985d95913cabc96a741c5ffec525a2c72e9df086ff17ebe35985c800e", size = 1194451 }, + { url = "https://files.pythonhosted.org/packages/78/a7/f8ead382fce0243cb625c4f266e66c27f65ae65ee9e77f59ea1653b6d730/tiktoken-0.12.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:0ee8f9ae00c41770b5f9b0bb1235474768884ae157de3beb5439ca0fd70f3e25", size = 1253794 }, + { url = "https://files.pythonhosted.org/packages/93/e0/6cc82a562bc6365785a3ff0af27a2a092d57c47d7a81d9e2295d8c36f011/tiktoken-0.12.0-cp313-cp313t-win_amd64.whl", hash = "sha256:dc2dd125a62cb2b3d858484d6c614d136b5b848976794edfb63688d539b8b93f", size = 878777 }, + { url = "https://files.pythonhosted.org/packages/72/05/3abc1db5d2c9aadc4d2c76fa5640134e475e58d9fbb82b5c535dc0de9b01/tiktoken-0.12.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:a90388128df3b3abeb2bfd1895b0681412a8d7dc644142519e6f0a97c2111646", size = 1050188 }, + { url = "https://files.pythonhosted.org/packages/e3/7b/50c2f060412202d6c95f32b20755c7a6273543b125c0985d6fa9465105af/tiktoken-0.12.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:da900aa0ad52247d8794e307d6446bd3cdea8e192769b56276695d34d2c9aa88", size = 993978 }, + { url = "https://files.pythonhosted.org/packages/14/27/bf795595a2b897e271771cd31cb847d479073497344c637966bdf2853da1/tiktoken-0.12.0-cp314-cp314-manylinux_2_28_aarch64.whl", hash = "sha256:285ba9d73ea0d6171e7f9407039a290ca77efcdb026be7769dccc01d2c8d7fff", size = 1129271 }, + { url = "https://files.pythonhosted.org/packages/f5/de/9341a6d7a8f1b448573bbf3425fa57669ac58258a667eb48a25dfe916d70/tiktoken-0.12.0-cp314-cp314-manylinux_2_28_x86_64.whl", hash = "sha256:d186a5c60c6a0213f04a7a802264083dea1bbde92a2d4c7069e1a56630aef830", size = 1151216 }, + { url = "https://files.pythonhosted.org/packages/75/0d/881866647b8d1be4d67cb24e50d0c26f9f807f994aa1510cb9ba2fe5f612/tiktoken-0.12.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:604831189bd05480f2b885ecd2d1986dc7686f609de48208ebbbddeea071fc0b", size = 1194860 }, + { url = "https://files.pythonhosted.org/packages/b3/1e/b651ec3059474dab649b8d5b69f5c65cd8fcd8918568c1935bd4136c9392/tiktoken-0.12.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:8f317e8530bb3a222547b85a58583238c8f74fd7a7408305f9f63246d1a0958b", size = 1254567 }, + { url = "https://files.pythonhosted.org/packages/80/57/ce64fd16ac390fafde001268c364d559447ba09b509181b2808622420eec/tiktoken-0.12.0-cp314-cp314-win_amd64.whl", hash = "sha256:399c3dd672a6406719d84442299a490420b458c44d3ae65516302a99675888f3", size = 921067 }, + { url = "https://files.pythonhosted.org/packages/ac/a4/72eed53e8976a099539cdd5eb36f241987212c29629d0a52c305173e0a68/tiktoken-0.12.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:c2c714c72bc00a38ca969dae79e8266ddec999c7ceccd603cc4f0d04ccd76365", size = 1050473 }, + { url = "https://files.pythonhosted.org/packages/e6/d7/0110b8f54c008466b19672c615f2168896b83706a6611ba6e47313dbc6e9/tiktoken-0.12.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:cbb9a3ba275165a2cb0f9a83f5d7025afe6b9d0ab01a22b50f0e74fee2ad253e", size = 993855 }, + { url = "https://files.pythonhosted.org/packages/5f/77/4f268c41a3957c418b084dd576ea2fad2e95da0d8e1ab705372892c2ca22/tiktoken-0.12.0-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:dfdfaa5ffff8993a3af94d1125870b1d27aed7cb97aa7eb8c1cefdbc87dbee63", size = 1129022 }, + { url = "https://files.pythonhosted.org/packages/4e/2b/fc46c90fe5028bd094cd6ee25a7db321cb91d45dc87531e2bdbb26b4867a/tiktoken-0.12.0-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:584c3ad3d0c74f5269906eb8a659c8bfc6144a52895d9261cdaf90a0ae5f4de0", size = 1150736 }, + { url = "https://files.pythonhosted.org/packages/28/c0/3c7a39ff68022ddfd7d93f3337ad90389a342f761c4d71de99a3ccc57857/tiktoken-0.12.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:54c891b416a0e36b8e2045b12b33dd66fb34a4fe7965565f1b482da50da3e86a", size = 1194908 }, + { url = "https://files.pythonhosted.org/packages/ab/0d/c1ad6f4016a3968c048545f5d9b8ffebf577774b2ede3e2e352553b685fe/tiktoken-0.12.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:5edb8743b88d5be814b1a8a8854494719080c28faaa1ccbef02e87354fe71ef0", size = 1253706 }, + { url = "https://files.pythonhosted.org/packages/af/df/c7891ef9d2712ad774777271d39fdef63941ffba0a9d59b7ad1fd2765e57/tiktoken-0.12.0-cp314-cp314t-win_amd64.whl", hash = "sha256:f61c0aea5565ac82e2ec50a05e02a6c44734e91b51c10510b084ea1b8e633a71", size = 920667 }, +] + +[[package]] +name = "tokenizers" +version = "0.22.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "huggingface-hub", marker = "sys_platform != 'emscripten'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/73/6f/f80cfef4a312e1fb34baf7d85c72d4411afde10978d4657f8cdd811d3ccc/tokenizers-0.22.2.tar.gz", hash = "sha256:473b83b915e547aa366d1eee11806deaf419e17be16310ac0a14077f1e28f917", size = 372115 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/92/97/5dbfabf04c7e348e655e907ed27913e03db0923abb5dfdd120d7b25630e1/tokenizers-0.22.2-cp39-abi3-macosx_10_12_x86_64.whl", hash = "sha256:544dd704ae7238755d790de45ba8da072e9af3eea688f698b137915ae959281c", size = 3100275 }, + { url = "https://files.pythonhosted.org/packages/2e/47/174dca0502ef88b28f1c9e06b73ce33500eedfac7a7692108aec220464e7/tokenizers-0.22.2-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:1e418a55456beedca4621dbab65a318981467a2b188e982a23e117f115ce5001", size = 2981472 }, + { url = "https://files.pythonhosted.org/packages/d6/84/7990e799f1309a8b87af6b948f31edaa12a3ed22d11b352eaf4f4b2e5753/tokenizers-0.22.2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2249487018adec45d6e3554c71d46eb39fa8ea67156c640f7513eb26f318cec7", size = 3290736 }, + { url = "https://files.pythonhosted.org/packages/78/59/09d0d9ba94dcd5f4f1368d4858d24546b4bdc0231c2354aa31d6199f0399/tokenizers-0.22.2-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:25b85325d0815e86e0bac263506dd114578953b7b53d7de09a6485e4a160a7dd", size = 3168835 }, + { url = "https://files.pythonhosted.org/packages/47/50/b3ebb4243e7160bda8d34b731e54dd8ab8b133e50775872e7a434e524c28/tokenizers-0.22.2-cp39-abi3-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bfb88f22a209ff7b40a576d5324bf8286b519d7358663db21d6246fb17eea2d5", size = 3521673 }, + { url = "https://files.pythonhosted.org/packages/e0/fa/89f4cb9e08df770b57adb96f8cbb7e22695a4cb6c2bd5f0c4f0ebcf33b66/tokenizers-0.22.2-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1c774b1276f71e1ef716e5486f21e76333464f47bece56bbd554485982a9e03e", size = 3724818 }, + { url = "https://files.pythonhosted.org/packages/64/04/ca2363f0bfbe3b3d36e95bf67e56a4c88c8e3362b658e616d1ac185d47f2/tokenizers-0.22.2-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:df6c4265b289083bf710dff49bc51ef252f9d5be33a45ee2bed151114a56207b", size = 3379195 }, + { url = "https://files.pythonhosted.org/packages/2e/76/932be4b50ef6ccedf9d3c6639b056a967a86258c6d9200643f01269211ca/tokenizers-0.22.2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:369cc9fc8cc10cb24143873a0d95438bb8ee257bb80c71989e3ee290e8d72c67", size = 3274982 }, + { url = "https://files.pythonhosted.org/packages/1d/28/5f9f5a4cc211b69e89420980e483831bcc29dade307955cc9dc858a40f01/tokenizers-0.22.2-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:29c30b83d8dcd061078b05ae0cb94d3c710555fbb44861139f9f83dcca3dc3e4", size = 9478245 }, + { url = "https://files.pythonhosted.org/packages/6c/fb/66e2da4704d6aadebf8cb39f1d6d1957df667ab24cff2326b77cda0dcb85/tokenizers-0.22.2-cp39-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:37ae80a28c1d3265bb1f22464c856bd23c02a05bb211e56d0c5301a435be6c1a", size = 9560069 }, + { url = "https://files.pythonhosted.org/packages/16/04/fed398b05caa87ce9b1a1bb5166645e38196081b225059a6edaff6440fac/tokenizers-0.22.2-cp39-abi3-musllinux_1_2_i686.whl", hash = "sha256:791135ee325f2336f498590eb2f11dc5c295232f288e75c99a36c5dbce63088a", size = 9899263 }, + { url = "https://files.pythonhosted.org/packages/05/a1/d62dfe7376beaaf1394917e0f8e93ee5f67fea8fcf4107501db35996586b/tokenizers-0.22.2-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:38337540fbbddff8e999d59970f3c6f35a82de10053206a7562f1ea02d046fa5", size = 10033429 }, + { url = "https://files.pythonhosted.org/packages/fd/18/a545c4ea42af3df6effd7d13d250ba77a0a86fb20393143bbb9a92e434d4/tokenizers-0.22.2-cp39-abi3-win32.whl", hash = "sha256:a6bf3f88c554a2b653af81f3204491c818ae2ac6fbc09e76ef4773351292bc92", size = 2502363 }, + { url = "https://files.pythonhosted.org/packages/65/71/0670843133a43d43070abeb1949abfdef12a86d490bea9cd9e18e37c5ff7/tokenizers-0.22.2-cp39-abi3-win_amd64.whl", hash = "sha256:c9ea31edff2968b44a88f97d784c2f16dc0729b8b143ed004699ebca91f05c48", size = 2747786 }, + { url = "https://files.pythonhosted.org/packages/72/f4/0de46cfa12cdcbcd464cc59fde36912af405696f687e53a091fb432f694c/tokenizers-0.22.2-cp39-abi3-win_arm64.whl", hash = "sha256:9ce725d22864a1e965217204946f830c37876eee3b2ba6fc6255e8e903d5fcbc", size = 2612133 }, +] + +[[package]] +name = "toml" +version = "0.10.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/be/ba/1f744cdc819428fc6b5084ec34d9b30660f6f9daaf70eead706e3203ec3c/toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f", size = 22253 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/44/6f/7120676b6d73228c96e17f1f794d8ab046fc910d781c8d151120c3f1569e/toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b", size = 16588 }, +] + +[[package]] +name = "tornado" +version = "6.5.5" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f8/f1/3173dfa4a18db4a9b03e5d55325559dab51ee653763bb8745a75af491286/tornado-6.5.5.tar.gz", hash = "sha256:192b8f3ea91bd7f1f50c06955416ed76c6b72f96779b962f07f911b91e8d30e9", size = 516006 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/59/8c/77f5097695f4dd8255ecbd08b2a1ed8ba8b953d337804dd7080f199e12bf/tornado-6.5.5-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:487dc9cc380e29f58c7ab88f9e27cdeef04b2140862e5076a66fb6bb68bb1bfa", size = 445983 }, + { url = "https://files.pythonhosted.org/packages/ab/5e/7625b76cd10f98f1516c36ce0346de62061156352353ef2da44e5c21523c/tornado-6.5.5-cp39-abi3-macosx_10_9_x86_64.whl", hash = "sha256:65a7f1d46d4bb41df1ac99f5fcb685fb25c7e61613742d5108b010975a9a6521", size = 444246 }, + { url = "https://files.pythonhosted.org/packages/b2/04/7b5705d5b3c0fab088f434f9c83edac1573830ca49ccf29fb83bf7178eec/tornado-6.5.5-cp39-abi3-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:e74c92e8e65086b338fd56333fb9a68b9f6f2fe7ad532645a290a464bcf46be5", size = 447229 }, + { url = "https://files.pythonhosted.org/packages/34/01/74e034a30ef59afb4097ef8659515e96a39d910b712a89af76f5e4e1f93c/tornado-6.5.5-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:435319e9e340276428bbdb4e7fa732c2d399386d1de5686cb331ec8eee754f07", size = 448192 }, + { url = "https://files.pythonhosted.org/packages/be/00/fe9e02c5a96429fce1a1d15a517f5d8444f9c412e0bb9eadfbe3b0fc55bf/tornado-6.5.5-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:3f54aa540bdbfee7b9eb268ead60e7d199de5021facd276819c193c0fb28ea4e", size = 448039 }, + { url = "https://files.pythonhosted.org/packages/82/9e/656ee4cec0398b1d18d0f1eb6372c41c6b889722641d84948351ae19556d/tornado-6.5.5-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:36abed1754faeb80fbd6e64db2758091e1320f6bba74a4cf8c09cd18ccce8aca", size = 447445 }, + { url = "https://files.pythonhosted.org/packages/5a/76/4921c00511f88af86a33de770d64141170f1cfd9c00311aea689949e274e/tornado-6.5.5-cp39-abi3-win32.whl", hash = "sha256:dd3eafaaeec1c7f2f8fdcd5f964e8907ad788fe8a5a32c4426fbbdda621223b7", size = 448582 }, + { url = "https://files.pythonhosted.org/packages/2c/23/f6c6112a04d28eed765e374435fb1a9198f73e1ec4b4024184f21faeb1ad/tornado-6.5.5-cp39-abi3-win_amd64.whl", hash = "sha256:6443a794ba961a9f619b1ae926a2e900ac20c34483eea67be4ed8f1e58d3ef7b", size = 448990 }, + { url = "https://files.pythonhosted.org/packages/b7/c8/876602cbc96469911f0939f703453c1157b0c826ecb05bdd32e023397d4e/tornado-6.5.5-cp39-abi3-win_arm64.whl", hash = "sha256:2c9a876e094109333f888539ddb2de4361743e5d21eece20688e3e351e4990a6", size = 448016 }, +] + +[[package]] +name = "tqdm" +version = "4.67.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/09/a9/6ba95a270c6f1fbcd8dac228323f2777d886cb206987444e4bce66338dd4/tqdm-4.67.3.tar.gz", hash = "sha256:7d825f03f89244ef73f1d4ce193cb1774a8179fd96f31d7e1dcde62092b960bb", size = 169598 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/16/e1/3079a9ff9b8e11b846c6ac5c8b5bfb7ff225eee721825310c91b3b50304f/tqdm-4.67.3-py3-none-any.whl", hash = "sha256:ee1e4c0e59148062281c49d80b25b67771a127c85fc9676d3be5f243206826bf", size = 78374 }, +] + +[[package]] +name = "typer" +version = "0.24.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "annotated-doc" }, + { name = "click" }, + { name = "rich" }, + { name = "shellingham" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f5/24/cb09efec5cc954f7f9b930bf8279447d24618bb6758d4f6adf2574c41780/typer-0.24.1.tar.gz", hash = "sha256:e39b4732d65fbdcde189ae76cf7cd48aeae72919dea1fdfc16593be016256b45", size = 118613 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4a/91/48db081e7a63bb37284f9fbcefda7c44c277b18b0e13fbc36ea2335b71e6/typer-0.24.1-py3-none-any.whl", hash = "sha256:112c1f0ce578bfb4cab9ffdabc68f031416ebcc216536611ba21f04e9aa84c9e", size = 56085 }, +] + +[[package]] +name = "types-protobuf" +version = "7.34.1.20260402" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/40/43/19261b537cfc8db9f39f92b31dba961462a034412aafafa630aa54191db7/types_protobuf-7.34.1.20260402.tar.gz", hash = "sha256:7270594b4bc28dfe85602d97849b28a2fe7905d77b1d91b418924ed6f83f857c", size = 68767 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/15/34/9bc4fcb26be938a4d678a1e5364e6a6b36e84c1d9b6aaf4d6bb5082ad86a/types_protobuf-7.34.1.20260402-py3-none-any.whl", hash = "sha256:5a1094907ca0d19202f7bca6db06ff69779873db695ddd73f2dde718cd8df1fa", size = 86007 }, +] + +[[package]] +name = "types-requests" +version = "2.33.0.20260402" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "urllib3", marker = "sys_platform != 'emscripten'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c1/7b/a06527d20af1441d813360b8e0ce152a75b7d8e4aab7c7d0a156f405d7ec/types_requests-2.33.0.20260402.tar.gz", hash = "sha256:1bdd3ada9b869741c5c4b887d2c8b4e38284a1449751823b5ebbccba3eefd9da", size = 23851 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/51/65/3853bb6bac5ae789dc7e28781154705c27859eccc8e46282c3f36780f5f5/types_requests-2.33.0.20260402-py3-none-any.whl", hash = "sha256:c98372d7124dd5d10af815ee25c013897592ff92af27b27e22c98984102c3254", size = 20739 }, +] + +[[package]] +name = "typing-extensions" +version = "4.15.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/72/94/1a15dd82efb362ac84269196e94cf00f187f7ed21c242792a923cdb1c61f/typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466", size = 109391 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548", size = 44614 }, +] + +[[package]] +name = "typing-inspection" +version = "0.4.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/55/e3/70399cb7dd41c10ac53367ae42139cf4b1ca5f36bb3dc6c9d33acdb43655/typing_inspection-0.4.2.tar.gz", hash = "sha256:ba561c48a67c5958007083d386c3295464928b01faa735ab8547c5692e87f464", size = 75949 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl", hash = "sha256:4ed1cacbdc298c220f1bd249ed5287caa16f34d44ef4e9c3d0cbad5b521545e7", size = 14611 }, +] + +[[package]] +name = "tzdata" +version = "2025.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/5e/a7/c202b344c5ca7daf398f3b8a477eeb205cf3b6f32e7ec3a6bac0629ca975/tzdata-2025.3.tar.gz", hash = "sha256:de39c2ca5dc7b0344f2eba86f49d614019d29f060fc4ebc8a417896a620b56a7", size = 196772 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c7/b0/003792df09decd6849a5e39c28b513c06e84436a54440380862b5aeff25d/tzdata-2025.3-py2.py3-none-any.whl", hash = "sha256:06a47e5700f3081aab02b2e513160914ff0694bce9947d6b76ebd6bf57cfc5d1", size = 348521 }, +] + +[[package]] +name = "uncalled-for" +version = "0.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/02/7c/b5b7d8136f872e3f13b0584e576886de0489d7213a12de6bebf29ff6ebfc/uncalled_for-0.2.0.tar.gz", hash = "sha256:b4f8fdbcec328c5a113807d653e041c5094473dd4afa7c34599ace69ccb7e69f", size = 49488 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ff/7f/4320d9ce3be404e6310b915c3629fe27bf1e2f438a1a7a3cb0396e32e9a9/uncalled_for-0.2.0-py3-none-any.whl", hash = "sha256:2c0bd338faff5f930918f79e7eb9ff48290df2cb05fcc0b40a7f334e55d4d85f", size = 11351 }, +] + +[[package]] +name = "urllib3" +version = "2.6.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c7/24/5f1b3bdffd70275f6661c76461e25f024d5a38a46f04aaca912426a2b1d3/urllib3-2.6.3.tar.gz", hash = "sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed", size = 435556 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/39/08/aaaad47bc4e9dc8c725e68f9d04865dbcb2052843ff09c97b08904852d84/urllib3-2.6.3-py3-none-any.whl", hash = "sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4", size = 131584 }, +] + +[[package]] +name = "uvicorn" +version = "0.42.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, + { name = "h11" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e3/ad/4a96c425be6fb67e0621e62d86c402b4a17ab2be7f7c055d9bd2f638b9e2/uvicorn-0.42.0.tar.gz", hash = "sha256:9b1f190ce15a2dd22e7758651d9b6d12df09a13d51ba5bf4fc33c383a48e1775", size = 85393 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0a/89/f8827ccff89c1586027a105e5630ff6139a64da2515e24dafe860bd9ae4d/uvicorn-0.42.0-py3-none-any.whl", hash = "sha256:96c30f5c7abe6f74ae8900a70e92b85ad6613b745d4879eb9b16ccad15645359", size = 68830 }, +] + +[[package]] +name = "watchdog" +version = "6.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/db/7d/7f3d619e951c88ed75c6037b246ddcf2d322812ee8ea189be89511721d54/watchdog-6.0.0.tar.gz", hash = "sha256:9ddf7c82fda3ae8e24decda1338ede66e1c99883db93711d8fb941eaa2d8c282", size = 131220 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a9/c7/ca4bf3e518cb57a686b2feb4f55a1892fd9a3dd13f470fca14e00f80ea36/watchdog-6.0.0-py3-none-manylinux2014_aarch64.whl", hash = "sha256:7607498efa04a3542ae3e05e64da8202e58159aa1fa4acddf7678d34a35d4f13", size = 79079 }, + { url = "https://files.pythonhosted.org/packages/5c/51/d46dc9332f9a647593c947b4b88e2381c8dfc0942d15b8edc0310fa4abb1/watchdog-6.0.0-py3-none-manylinux2014_armv7l.whl", hash = "sha256:9041567ee8953024c83343288ccc458fd0a2d811d6a0fd68c4c22609e3490379", size = 79078 }, + { url = "https://files.pythonhosted.org/packages/d4/57/04edbf5e169cd318d5f07b4766fee38e825d64b6913ca157ca32d1a42267/watchdog-6.0.0-py3-none-manylinux2014_i686.whl", hash = "sha256:82dc3e3143c7e38ec49d61af98d6558288c415eac98486a5c581726e0737c00e", size = 79076 }, + { url = "https://files.pythonhosted.org/packages/ab/cc/da8422b300e13cb187d2203f20b9253e91058aaf7db65b74142013478e66/watchdog-6.0.0-py3-none-manylinux2014_ppc64.whl", hash = "sha256:212ac9b8bf1161dc91bd09c048048a95ca3a4c4f5e5d4a7d1b1a7d5752a7f96f", size = 79077 }, + { url = "https://files.pythonhosted.org/packages/2c/3b/b8964e04ae1a025c44ba8e4291f86e97fac443bca31de8bd98d3263d2fcf/watchdog-6.0.0-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:e3df4cbb9a450c6d49318f6d14f4bbc80d763fa587ba46ec86f99f9e6876bb26", size = 79078 }, + { url = "https://files.pythonhosted.org/packages/62/ae/a696eb424bedff7407801c257d4b1afda455fe40821a2be430e173660e81/watchdog-6.0.0-py3-none-manylinux2014_s390x.whl", hash = "sha256:2cce7cfc2008eb51feb6aab51251fd79b85d9894e98ba847408f662b3395ca3c", size = 79077 }, + { url = "https://files.pythonhosted.org/packages/b5/e8/dbf020b4d98251a9860752a094d09a65e1b436ad181faf929983f697048f/watchdog-6.0.0-py3-none-manylinux2014_x86_64.whl", hash = "sha256:20ffe5b202af80ab4266dcd3e91aae72bf2da48c0d33bdb15c66658e685e94e2", size = 79078 }, + { url = "https://files.pythonhosted.org/packages/07/f6/d0e5b343768e8bcb4cda79f0f2f55051bf26177ecd5651f84c07567461cf/watchdog-6.0.0-py3-none-win32.whl", hash = "sha256:07df1fdd701c5d4c8e55ef6cf55b8f0120fe1aef7ef39a1c6fc6bc2e606d517a", size = 79065 }, + { url = "https://files.pythonhosted.org/packages/db/d9/c495884c6e548fce18a8f40568ff120bc3a4b7b99813081c8ac0c936fa64/watchdog-6.0.0-py3-none-win_amd64.whl", hash = "sha256:cbafb470cf848d93b5d013e2ecb245d4aa1c8fd0504e863ccefa32445359d680", size = 79070 }, + { url = "https://files.pythonhosted.org/packages/33/e8/e40370e6d74ddba47f002a32919d91310d6074130fe4e17dabcafc15cbf1/watchdog-6.0.0-py3-none-win_ia64.whl", hash = "sha256:a1914259fa9e1454315171103c6a30961236f508b9b623eae470268bbcc6a22f", size = 79067 }, +] + +[[package]] +name = "watchfiles" +version = "1.1.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c2/c9/8869df9b2a2d6c59d79220a4db37679e74f807c559ffe5265e08b227a210/watchfiles-1.1.1.tar.gz", hash = "sha256:a173cb5c16c4f40ab19cecf48a534c409f7ea983ab8fed0741304a1c0a31b3f2", size = 94440 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/74/d5/f039e7e3c639d9b1d09b07ea412a6806d38123f0508e5f9b48a87b0a76cc/watchfiles-1.1.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:8c89f9f2f740a6b7dcc753140dd5e1ab9215966f7a3530d0c0705c83b401bd7d", size = 404745 }, + { url = "https://files.pythonhosted.org/packages/a5/96/a881a13aa1349827490dab2d363c8039527060cfcc2c92cc6d13d1b1049e/watchfiles-1.1.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:bd404be08018c37350f0d6e34676bd1e2889990117a2b90070b3007f172d0610", size = 391769 }, + { url = "https://files.pythonhosted.org/packages/4b/5b/d3b460364aeb8da471c1989238ea0e56bec24b6042a68046adf3d9ddb01c/watchfiles-1.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8526e8f916bb5b9a0a777c8317c23ce65de259422bba5b31325a6fa6029d33af", size = 449374 }, + { url = "https://files.pythonhosted.org/packages/b9/44/5769cb62d4ed055cb17417c0a109a92f007114a4e07f30812a73a4efdb11/watchfiles-1.1.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2edc3553362b1c38d9f06242416a5d8e9fe235c204a4072e988ce2e5bb1f69f6", size = 459485 }, + { url = "https://files.pythonhosted.org/packages/19/0c/286b6301ded2eccd4ffd0041a1b726afda999926cf720aab63adb68a1e36/watchfiles-1.1.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:30f7da3fb3f2844259cba4720c3fc7138eb0f7b659c38f3bfa65084c7fc7abce", size = 488813 }, + { url = "https://files.pythonhosted.org/packages/c7/2b/8530ed41112dd4a22f4dcfdb5ccf6a1baad1ff6eed8dc5a5f09e7e8c41c7/watchfiles-1.1.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f8979280bdafff686ba5e4d8f97840f929a87ed9cdf133cbbd42f7766774d2aa", size = 594816 }, + { url = "https://files.pythonhosted.org/packages/ce/d2/f5f9fb49489f184f18470d4f99f4e862a4b3e9ac2865688eb2099e3d837a/watchfiles-1.1.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dcc5c24523771db3a294c77d94771abcfcb82a0e0ee8efd910c37c59ec1b31bb", size = 475186 }, + { url = "https://files.pythonhosted.org/packages/cf/68/5707da262a119fb06fbe214d82dd1fe4a6f4af32d2d14de368d0349eb52a/watchfiles-1.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1db5d7ae38ff20153d542460752ff397fcf5c96090c1230803713cf3147a6803", size = 456812 }, + { url = "https://files.pythonhosted.org/packages/66/ab/3cbb8756323e8f9b6f9acb9ef4ec26d42b2109bce830cc1f3468df20511d/watchfiles-1.1.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:28475ddbde92df1874b6c5c8aaeb24ad5be47a11f87cde5a28ef3835932e3e94", size = 630196 }, + { url = "https://files.pythonhosted.org/packages/78/46/7152ec29b8335f80167928944a94955015a345440f524d2dfe63fc2f437b/watchfiles-1.1.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:36193ed342f5b9842edd3532729a2ad55c4160ffcfa3700e0d54be496b70dd43", size = 622657 }, + { url = "https://files.pythonhosted.org/packages/0a/bf/95895e78dd75efe9a7f31733607f384b42eb5feb54bd2eb6ed57cc2e94f4/watchfiles-1.1.1-cp312-cp312-win32.whl", hash = "sha256:859e43a1951717cc8de7f4c77674a6d389b106361585951d9e69572823f311d9", size = 272042 }, + { url = "https://files.pythonhosted.org/packages/87/0a/90eb755f568de2688cb220171c4191df932232c20946966c27a59c400850/watchfiles-1.1.1-cp312-cp312-win_amd64.whl", hash = "sha256:91d4c9a823a8c987cce8fa2690923b069966dabb196dd8d137ea2cede885fde9", size = 288410 }, + { url = "https://files.pythonhosted.org/packages/36/76/f322701530586922fbd6723c4f91ace21364924822a8772c549483abed13/watchfiles-1.1.1-cp312-cp312-win_arm64.whl", hash = "sha256:a625815d4a2bdca61953dbba5a39d60164451ef34c88d751f6c368c3ea73d404", size = 278209 }, + { url = "https://files.pythonhosted.org/packages/bb/f4/f750b29225fe77139f7ae5de89d4949f5a99f934c65a1f1c0b248f26f747/watchfiles-1.1.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:130e4876309e8686a5e37dba7d5e9bc77e6ed908266996ca26572437a5271e18", size = 404321 }, + { url = "https://files.pythonhosted.org/packages/2b/f9/f07a295cde762644aa4c4bb0f88921d2d141af45e735b965fb2e87858328/watchfiles-1.1.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5f3bde70f157f84ece3765b42b4a52c6ac1a50334903c6eaf765362f6ccca88a", size = 391783 }, + { url = "https://files.pythonhosted.org/packages/bc/11/fc2502457e0bea39a5c958d86d2cb69e407a4d00b85735ca724bfa6e0d1a/watchfiles-1.1.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:14e0b1fe858430fc0251737ef3824c54027bedb8c37c38114488b8e131cf8219", size = 449279 }, + { url = "https://files.pythonhosted.org/packages/e3/1f/d66bc15ea0b728df3ed96a539c777acfcad0eb78555ad9efcaa1274688f0/watchfiles-1.1.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f27db948078f3823a6bb3b465180db8ebecf26dd5dae6f6180bd87383b6b4428", size = 459405 }, + { url = "https://files.pythonhosted.org/packages/be/90/9f4a65c0aec3ccf032703e6db02d89a157462fbb2cf20dd415128251cac0/watchfiles-1.1.1-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:059098c3a429f62fc98e8ec62b982230ef2c8df68c79e826e37b895bc359a9c0", size = 488976 }, + { url = "https://files.pythonhosted.org/packages/37/57/ee347af605d867f712be7029bb94c8c071732a4b44792e3176fa3c612d39/watchfiles-1.1.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bfb5862016acc9b869bb57284e6cb35fdf8e22fe59f7548858e2f971d045f150", size = 595506 }, + { url = "https://files.pythonhosted.org/packages/a8/78/cc5ab0b86c122047f75e8fc471c67a04dee395daf847d3e59381996c8707/watchfiles-1.1.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:319b27255aacd9923b8a276bb14d21a5f7ff82564c744235fc5eae58d95422ae", size = 474936 }, + { url = "https://files.pythonhosted.org/packages/62/da/def65b170a3815af7bd40a3e7010bf6ab53089ef1b75d05dd5385b87cf08/watchfiles-1.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c755367e51db90e75b19454b680903631d41f9e3607fbd941d296a020c2d752d", size = 456147 }, + { url = "https://files.pythonhosted.org/packages/57/99/da6573ba71166e82d288d4df0839128004c67d2778d3b566c138695f5c0b/watchfiles-1.1.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:c22c776292a23bfc7237a98f791b9ad3144b02116ff10d820829ce62dff46d0b", size = 630007 }, + { url = "https://files.pythonhosted.org/packages/a8/51/7439c4dd39511368849eb1e53279cd3454b4a4dbace80bab88feeb83c6b5/watchfiles-1.1.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:3a476189be23c3686bc2f4321dd501cb329c0a0469e77b7b534ee10129ae6374", size = 622280 }, + { url = "https://files.pythonhosted.org/packages/95/9c/8ed97d4bba5db6fdcdb2b298d3898f2dd5c20f6b73aee04eabe56c59677e/watchfiles-1.1.1-cp313-cp313-win32.whl", hash = "sha256:bf0a91bfb5574a2f7fc223cf95eeea79abfefa404bf1ea5e339c0c1560ae99a0", size = 272056 }, + { url = "https://files.pythonhosted.org/packages/1f/f3/c14e28429f744a260d8ceae18bf58c1d5fa56b50d006a7a9f80e1882cb0d/watchfiles-1.1.1-cp313-cp313-win_amd64.whl", hash = "sha256:52e06553899e11e8074503c8e716d574adeeb7e68913115c4b3653c53f9bae42", size = 288162 }, + { url = "https://files.pythonhosted.org/packages/dc/61/fe0e56c40d5cd29523e398d31153218718c5786b5e636d9ae8ae79453d27/watchfiles-1.1.1-cp313-cp313-win_arm64.whl", hash = "sha256:ac3cc5759570cd02662b15fbcd9d917f7ecd47efe0d6b40474eafd246f91ea18", size = 277909 }, + { url = "https://files.pythonhosted.org/packages/79/42/e0a7d749626f1e28c7108a99fb9bf524b501bbbeb9b261ceecde644d5a07/watchfiles-1.1.1-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:563b116874a9a7ce6f96f87cd0b94f7faf92d08d0021e837796f0a14318ef8da", size = 403389 }, + { url = "https://files.pythonhosted.org/packages/15/49/08732f90ce0fbbc13913f9f215c689cfc9ced345fb1bcd8829a50007cc8d/watchfiles-1.1.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:3ad9fe1dae4ab4212d8c91e80b832425e24f421703b5a42ef2e4a1e215aff051", size = 389964 }, + { url = "https://files.pythonhosted.org/packages/27/0d/7c315d4bd5f2538910491a0393c56bf70d333d51bc5b34bee8e68e8cea19/watchfiles-1.1.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ce70f96a46b894b36eba678f153f052967a0d06d5b5a19b336ab0dbbd029f73e", size = 448114 }, + { url = "https://files.pythonhosted.org/packages/c3/24/9e096de47a4d11bc4df41e9d1e61776393eac4cb6eb11b3e23315b78b2cc/watchfiles-1.1.1-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:cb467c999c2eff23a6417e58d75e5828716f42ed8289fe6b77a7e5a91036ca70", size = 460264 }, + { url = "https://files.pythonhosted.org/packages/cc/0f/e8dea6375f1d3ba5fcb0b3583e2b493e77379834c74fd5a22d66d85d6540/watchfiles-1.1.1-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:836398932192dae4146c8f6f737d74baeac8b70ce14831a239bdb1ca882fc261", size = 487877 }, + { url = "https://files.pythonhosted.org/packages/ac/5b/df24cfc6424a12deb41503b64d42fbea6b8cb357ec62ca84a5a3476f654a/watchfiles-1.1.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:743185e7372b7bc7c389e1badcc606931a827112fbbd37f14c537320fca08620", size = 595176 }, + { url = "https://files.pythonhosted.org/packages/8f/b5/853b6757f7347de4e9b37e8cc3289283fb983cba1ab4d2d7144694871d9c/watchfiles-1.1.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:afaeff7696e0ad9f02cbb8f56365ff4686ab205fcf9c4c5b6fdfaaa16549dd04", size = 473577 }, + { url = "https://files.pythonhosted.org/packages/e1/f7/0a4467be0a56e80447c8529c9fce5b38eab4f513cb3d9bf82e7392a5696b/watchfiles-1.1.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3f7eb7da0eb23aa2ba036d4f616d46906013a68caf61b7fdbe42fc8b25132e77", size = 455425 }, + { url = "https://files.pythonhosted.org/packages/8e/e0/82583485ea00137ddf69bc84a2db88bd92ab4a6e3c405e5fb878ead8d0e7/watchfiles-1.1.1-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:831a62658609f0e5c64178211c942ace999517f5770fe9436be4c2faeba0c0ef", size = 628826 }, + { url = "https://files.pythonhosted.org/packages/28/9a/a785356fccf9fae84c0cc90570f11702ae9571036fb25932f1242c82191c/watchfiles-1.1.1-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:f9a2ae5c91cecc9edd47e041a930490c31c3afb1f5e6d71de3dc671bfaca02bf", size = 622208 }, + { url = "https://files.pythonhosted.org/packages/c3/f4/0872229324ef69b2c3edec35e84bd57a1289e7d3fe74588048ed8947a323/watchfiles-1.1.1-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:d1715143123baeeaeadec0528bb7441103979a1d5f6fd0e1f915383fea7ea6d5", size = 404315 }, + { url = "https://files.pythonhosted.org/packages/7b/22/16d5331eaed1cb107b873f6ae1b69e9ced582fcf0c59a50cd84f403b1c32/watchfiles-1.1.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:39574d6370c4579d7f5d0ad940ce5b20db0e4117444e39b6d8f99db5676c52fd", size = 390869 }, + { url = "https://files.pythonhosted.org/packages/b2/7e/5643bfff5acb6539b18483128fdc0ef2cccc94a5b8fbda130c823e8ed636/watchfiles-1.1.1-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7365b92c2e69ee952902e8f70f3ba6360d0d596d9299d55d7d386df84b6941fb", size = 449919 }, + { url = "https://files.pythonhosted.org/packages/51/2e/c410993ba5025a9f9357c376f48976ef0e1b1aefb73b97a5ae01a5972755/watchfiles-1.1.1-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bfff9740c69c0e4ed32416f013f3c45e2ae42ccedd1167ef2d805c000b6c71a5", size = 460845 }, + { url = "https://files.pythonhosted.org/packages/8e/a4/2df3b404469122e8680f0fcd06079317e48db58a2da2950fb45020947734/watchfiles-1.1.1-cp314-cp314-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b27cf2eb1dda37b2089e3907d8ea92922b673c0c427886d4edc6b94d8dfe5db3", size = 489027 }, + { url = "https://files.pythonhosted.org/packages/ea/84/4587ba5b1f267167ee715b7f66e6382cca6938e0a4b870adad93e44747e6/watchfiles-1.1.1-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:526e86aced14a65a5b0ec50827c745597c782ff46b571dbfe46192ab9e0b3c33", size = 595615 }, + { url = "https://files.pythonhosted.org/packages/6a/0f/c6988c91d06e93cd0bb3d4a808bcf32375ca1904609835c3031799e3ecae/watchfiles-1.1.1-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:04e78dd0b6352db95507fd8cb46f39d185cf8c74e4cf1e4fbad1d3df96faf510", size = 474836 }, + { url = "https://files.pythonhosted.org/packages/b4/36/ded8aebea91919485b7bbabbd14f5f359326cb5ec218cd67074d1e426d74/watchfiles-1.1.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5c85794a4cfa094714fb9c08d4a218375b2b95b8ed1666e8677c349906246c05", size = 455099 }, + { url = "https://files.pythonhosted.org/packages/98/e0/8c9bdba88af756a2fce230dd365fab2baf927ba42cd47521ee7498fd5211/watchfiles-1.1.1-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:74d5012b7630714b66be7b7b7a78855ef7ad58e8650c73afc4c076a1f480a8d6", size = 630626 }, + { url = "https://files.pythonhosted.org/packages/2a/84/a95db05354bf2d19e438520d92a8ca475e578c647f78f53197f5a2f17aaf/watchfiles-1.1.1-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:8fbe85cb3201c7d380d3d0b90e63d520f15d6afe217165d7f98c9c649654db81", size = 622519 }, + { url = "https://files.pythonhosted.org/packages/1d/ce/d8acdc8de545de995c339be67711e474c77d643555a9bb74a9334252bd55/watchfiles-1.1.1-cp314-cp314-win32.whl", hash = "sha256:3fa0b59c92278b5a7800d3ee7733da9d096d4aabcfabb9a928918bd276ef9b9b", size = 272078 }, + { url = "https://files.pythonhosted.org/packages/c4/c9/a74487f72d0451524be827e8edec251da0cc1fcf111646a511ae752e1a3d/watchfiles-1.1.1-cp314-cp314-win_amd64.whl", hash = "sha256:c2047d0b6cea13b3316bdbafbfa0c4228ae593d995030fda39089d36e64fc03a", size = 287664 }, + { url = "https://files.pythonhosted.org/packages/df/b8/8ac000702cdd496cdce998c6f4ee0ca1f15977bba51bdf07d872ebdfc34c/watchfiles-1.1.1-cp314-cp314-win_arm64.whl", hash = "sha256:842178b126593addc05acf6fce960d28bc5fae7afbaa2c6c1b3a7b9460e5be02", size = 277154 }, + { url = "https://files.pythonhosted.org/packages/47/a8/e3af2184707c29f0f14b1963c0aace6529f9d1b8582d5b99f31bbf42f59e/watchfiles-1.1.1-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:88863fbbc1a7312972f1c511f202eb30866370ebb8493aef2812b9ff28156a21", size = 403820 }, + { url = "https://files.pythonhosted.org/packages/c0/ec/e47e307c2f4bd75f9f9e8afbe3876679b18e1bcec449beca132a1c5ffb2d/watchfiles-1.1.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:55c7475190662e202c08c6c0f4d9e345a29367438cf8e8037f3155e10a88d5a5", size = 390510 }, + { url = "https://files.pythonhosted.org/packages/d5/a0/ad235642118090f66e7b2f18fd5c42082418404a79205cdfca50b6309c13/watchfiles-1.1.1-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3f53fa183d53a1d7a8852277c92b967ae99c2d4dcee2bfacff8868e6e30b15f7", size = 448408 }, + { url = "https://files.pythonhosted.org/packages/df/85/97fa10fd5ff3332ae17e7e40e20784e419e28521549780869f1413742e9d/watchfiles-1.1.1-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6aae418a8b323732fa89721d86f39ec8f092fc2af67f4217a2b07fd3e93c6101", size = 458968 }, + { url = "https://files.pythonhosted.org/packages/47/c2/9059c2e8966ea5ce678166617a7f75ecba6164375f3b288e50a40dc6d489/watchfiles-1.1.1-cp314-cp314t-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f096076119da54a6080e8920cbdaac3dbee667eb91dcc5e5b78840b87415bd44", size = 488096 }, + { url = "https://files.pythonhosted.org/packages/94/44/d90a9ec8ac309bc26db808a13e7bfc0e4e78b6fc051078a554e132e80160/watchfiles-1.1.1-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:00485f441d183717038ed2e887a7c868154f216877653121068107b227a2f64c", size = 596040 }, + { url = "https://files.pythonhosted.org/packages/95/68/4e3479b20ca305cfc561db3ed207a8a1c745ee32bf24f2026a129d0ddb6e/watchfiles-1.1.1-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a55f3e9e493158d7bfdb60a1165035f1cf7d320914e7b7ea83fe22c6023b58fc", size = 473847 }, + { url = "https://files.pythonhosted.org/packages/4f/55/2af26693fd15165c4ff7857e38330e1b61ab8c37d15dc79118cdba115b7a/watchfiles-1.1.1-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8c91ed27800188c2ae96d16e3149f199d62f86c7af5f5f4d2c61a3ed8cd3666c", size = 455072 }, + { url = "https://files.pythonhosted.org/packages/66/1d/d0d200b10c9311ec25d2273f8aad8c3ef7cc7ea11808022501811208a750/watchfiles-1.1.1-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:311ff15a0bae3714ffb603e6ba6dbfba4065ab60865d15a6ec544133bdb21099", size = 629104 }, + { url = "https://files.pythonhosted.org/packages/e3/bd/fa9bb053192491b3867ba07d2343d9f2252e00811567d30ae8d0f78136fe/watchfiles-1.1.1-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:a916a2932da8f8ab582f242c065f5c81bed3462849ca79ee357dd9551b0e9b01", size = 622112 }, +] + +[[package]] +name = "wcwidth" +version = "0.6.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/35/a2/8e3becb46433538a38726c948d3399905a4c7cabd0df578ede5dc51f0ec2/wcwidth-0.6.0.tar.gz", hash = "sha256:cdc4e4262d6ef9a1a57e018384cbeb1208d8abbc64176027e2c2455c81313159", size = 159684 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/68/5a/199c59e0a824a3db2b89c5d2dade7ab5f9624dbf6448dc291b46d5ec94d3/wcwidth-0.6.0-py3-none-any.whl", hash = "sha256:1a3a1e510b553315f8e146c54764f4fb6264ffad731b3d78088cdb1478ffbdad", size = 94189 }, +] + +[[package]] +name = "websockets" +version = "16.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/04/24/4b2031d72e840ce4c1ccb255f693b15c334757fc50023e4db9537080b8c4/websockets-16.0.tar.gz", hash = "sha256:5f6261a5e56e8d5c42a4497b364ea24d94d9563e8fbd44e78ac40879c60179b5", size = 179346 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/84/7b/bac442e6b96c9d25092695578dda82403c77936104b5682307bd4deb1ad4/websockets-16.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:71c989cbf3254fbd5e84d3bff31e4da39c43f884e64f2551d14bb3c186230f00", size = 177365 }, + { url = "https://files.pythonhosted.org/packages/b0/fe/136ccece61bd690d9c1f715baaeefd953bb2360134de73519d5df19d29ca/websockets-16.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:8b6e209ffee39ff1b6d0fa7bfef6de950c60dfb91b8fcead17da4ee539121a79", size = 175038 }, + { url = "https://files.pythonhosted.org/packages/40/1e/9771421ac2286eaab95b8575b0cb701ae3663abf8b5e1f64f1fd90d0a673/websockets-16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:86890e837d61574c92a97496d590968b23c2ef0aeb8a9bc9421d174cd378ae39", size = 175328 }, + { url = "https://files.pythonhosted.org/packages/18/29/71729b4671f21e1eaa5d6573031ab810ad2936c8175f03f97f3ff164c802/websockets-16.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:9b5aca38b67492ef518a8ab76851862488a478602229112c4b0d58d63a7a4d5c", size = 184915 }, + { url = "https://files.pythonhosted.org/packages/97/bb/21c36b7dbbafc85d2d480cd65df02a1dc93bf76d97147605a8e27ff9409d/websockets-16.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e0334872c0a37b606418ac52f6ab9cfd17317ac26365f7f65e203e2d0d0d359f", size = 186152 }, + { url = "https://files.pythonhosted.org/packages/4a/34/9bf8df0c0cf88fa7bfe36678dc7b02970c9a7d5e065a3099292db87b1be2/websockets-16.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a0b31e0b424cc6b5a04b8838bbaec1688834b2383256688cf47eb97412531da1", size = 185583 }, + { url = "https://files.pythonhosted.org/packages/47/88/4dd516068e1a3d6ab3c7c183288404cd424a9a02d585efbac226cb61ff2d/websockets-16.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:485c49116d0af10ac698623c513c1cc01c9446c058a4e61e3bf6c19dff7335a2", size = 184880 }, + { url = "https://files.pythonhosted.org/packages/91/d6/7d4553ad4bf1c0421e1ebd4b18de5d9098383b5caa1d937b63df8d04b565/websockets-16.0-cp312-cp312-win32.whl", hash = "sha256:eaded469f5e5b7294e2bdca0ab06becb6756ea86894a47806456089298813c89", size = 178261 }, + { url = "https://files.pythonhosted.org/packages/c3/f0/f3a17365441ed1c27f850a80b2bc680a0fa9505d733fe152fdf5e98c1c0b/websockets-16.0-cp312-cp312-win_amd64.whl", hash = "sha256:5569417dc80977fc8c2d43a86f78e0a5a22fee17565d78621b6bb264a115d4ea", size = 178693 }, + { url = "https://files.pythonhosted.org/packages/cc/9c/baa8456050d1c1b08dd0ec7346026668cbc6f145ab4e314d707bb845bf0d/websockets-16.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:878b336ac47938b474c8f982ac2f7266a540adc3fa4ad74ae96fea9823a02cc9", size = 177364 }, + { url = "https://files.pythonhosted.org/packages/7e/0c/8811fc53e9bcff68fe7de2bcbe75116a8d959ac699a3200f4847a8925210/websockets-16.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:52a0fec0e6c8d9a784c2c78276a48a2bdf099e4ccc2a4cad53b27718dbfd0230", size = 175039 }, + { url = "https://files.pythonhosted.org/packages/aa/82/39a5f910cb99ec0b59e482971238c845af9220d3ab9fa76dd9162cda9d62/websockets-16.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e6578ed5b6981005df1860a56e3617f14a6c307e6a71b4fff8c48fdc50f3ed2c", size = 175323 }, + { url = "https://files.pythonhosted.org/packages/bd/28/0a25ee5342eb5d5f297d992a77e56892ecb65e7854c7898fb7d35e9b33bd/websockets-16.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:95724e638f0f9c350bb1c2b0a7ad0e83d9cc0c9259f3ea94e40d7b02a2179ae5", size = 184975 }, + { url = "https://files.pythonhosted.org/packages/f9/66/27ea52741752f5107c2e41fda05e8395a682a1e11c4e592a809a90c6a506/websockets-16.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c0204dc62a89dc9d50d682412c10b3542d748260d743500a85c13cd1ee4bde82", size = 186203 }, + { url = "https://files.pythonhosted.org/packages/37/e5/8e32857371406a757816a2b471939d51c463509be73fa538216ea52b792a/websockets-16.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:52ac480f44d32970d66763115edea932f1c5b1312de36df06d6b219f6741eed8", size = 185653 }, + { url = "https://files.pythonhosted.org/packages/9b/67/f926bac29882894669368dc73f4da900fcdf47955d0a0185d60103df5737/websockets-16.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6e5a82b677f8f6f59e8dfc34ec06ca6b5b48bc4fcda346acd093694cc2c24d8f", size = 184920 }, + { url = "https://files.pythonhosted.org/packages/3c/a1/3d6ccdcd125b0a42a311bcd15a7f705d688f73b2a22d8cf1c0875d35d34a/websockets-16.0-cp313-cp313-win32.whl", hash = "sha256:abf050a199613f64c886ea10f38b47770a65154dc37181bfaff70c160f45315a", size = 178255 }, + { url = "https://files.pythonhosted.org/packages/6b/ae/90366304d7c2ce80f9b826096a9e9048b4bb760e44d3b873bb272cba696b/websockets-16.0-cp313-cp313-win_amd64.whl", hash = "sha256:3425ac5cf448801335d6fdc7ae1eb22072055417a96cc6b31b3861f455fbc156", size = 178689 }, + { url = "https://files.pythonhosted.org/packages/f3/1d/e88022630271f5bd349ed82417136281931e558d628dd52c4d8621b4a0b2/websockets-16.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:8cc451a50f2aee53042ac52d2d053d08bf89bcb31ae799cb4487587661c038a0", size = 177406 }, + { url = "https://files.pythonhosted.org/packages/f2/78/e63be1bf0724eeb4616efb1ae1c9044f7c3953b7957799abb5915bffd38e/websockets-16.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:daa3b6ff70a9241cf6c7fc9e949d41232d9d7d26fd3522b1ad2b4d62487e9904", size = 175085 }, + { url = "https://files.pythonhosted.org/packages/bb/f4/d3c9220d818ee955ae390cf319a7c7a467beceb24f05ee7aaaa2414345ba/websockets-16.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:fd3cb4adb94a2a6e2b7c0d8d05cb94e6f1c81a0cf9dc2694fb65c7e8d94c42e4", size = 175328 }, + { url = "https://files.pythonhosted.org/packages/63/bc/d3e208028de777087e6fb2b122051a6ff7bbcca0d6df9d9c2bf1dd869ae9/websockets-16.0-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:781caf5e8eee67f663126490c2f96f40906594cb86b408a703630f95550a8c3e", size = 185044 }, + { url = "https://files.pythonhosted.org/packages/ad/6e/9a0927ac24bd33a0a9af834d89e0abc7cfd8e13bed17a86407a66773cc0e/websockets-16.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:caab51a72c51973ca21fa8a18bd8165e1a0183f1ac7066a182ff27107b71e1a4", size = 186279 }, + { url = "https://files.pythonhosted.org/packages/b9/ca/bf1c68440d7a868180e11be653c85959502efd3a709323230314fda6e0b3/websockets-16.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:19c4dc84098e523fd63711e563077d39e90ec6702aff4b5d9e344a60cb3c0cb1", size = 185711 }, + { url = "https://files.pythonhosted.org/packages/c4/f8/fdc34643a989561f217bb477cbc47a3a07212cbda91c0e4389c43c296ebf/websockets-16.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:a5e18a238a2b2249c9a9235466b90e96ae4795672598a58772dd806edc7ac6d3", size = 184982 }, + { url = "https://files.pythonhosted.org/packages/dd/d1/574fa27e233764dbac9c52730d63fcf2823b16f0856b3329fc6268d6ae4f/websockets-16.0-cp314-cp314-win32.whl", hash = "sha256:a069d734c4a043182729edd3e9f247c3b2a4035415a9172fd0f1b71658a320a8", size = 177915 }, + { url = "https://files.pythonhosted.org/packages/8a/f1/ae6b937bf3126b5134ce1f482365fde31a357c784ac51852978768b5eff4/websockets-16.0-cp314-cp314-win_amd64.whl", hash = "sha256:c0ee0e63f23914732c6d7e0cce24915c48f3f1512ec1d079ed01fc629dab269d", size = 178381 }, + { url = "https://files.pythonhosted.org/packages/06/9b/f791d1db48403e1f0a27577a6beb37afae94254a8c6f08be4a23e4930bc0/websockets-16.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:a35539cacc3febb22b8f4d4a99cc79b104226a756aa7400adc722e83b0d03244", size = 177737 }, + { url = "https://files.pythonhosted.org/packages/bd/40/53ad02341fa33b3ce489023f635367a4ac98b73570102ad2cdd770dacc9a/websockets-16.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:b784ca5de850f4ce93ec85d3269d24d4c82f22b7212023c974c401d4980ebc5e", size = 175268 }, + { url = "https://files.pythonhosted.org/packages/74/9b/6158d4e459b984f949dcbbb0c5d270154c7618e11c01029b9bbd1bb4c4f9/websockets-16.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:569d01a4e7fba956c5ae4fc988f0d4e187900f5497ce46339c996dbf24f17641", size = 175486 }, + { url = "https://files.pythonhosted.org/packages/e5/2d/7583b30208b639c8090206f95073646c2c9ffd66f44df967981a64f849ad/websockets-16.0-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:50f23cdd8343b984957e4077839841146f67a3d31ab0d00e6b824e74c5b2f6e8", size = 185331 }, + { url = "https://files.pythonhosted.org/packages/45/b0/cce3784eb519b7b5ad680d14b9673a31ab8dcb7aad8b64d81709d2430aa8/websockets-16.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:152284a83a00c59b759697b7f9e9cddf4e3c7861dd0d964b472b70f78f89e80e", size = 186501 }, + { url = "https://files.pythonhosted.org/packages/19/60/b8ebe4c7e89fb5f6cdf080623c9d92789a53636950f7abacfc33fe2b3135/websockets-16.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:bc59589ab64b0022385f429b94697348a6a234e8ce22544e3681b2e9331b5944", size = 186062 }, + { url = "https://files.pythonhosted.org/packages/88/a8/a080593f89b0138b6cba1b28f8df5673b5506f72879322288b031337c0b8/websockets-16.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:32da954ffa2814258030e5a57bc73a3635463238e797c7375dc8091327434206", size = 185356 }, + { url = "https://files.pythonhosted.org/packages/c2/b6/b9afed2afadddaf5ebb2afa801abf4b0868f42f8539bfe4b071b5266c9fe/websockets-16.0-cp314-cp314t-win32.whl", hash = "sha256:5a4b4cc550cb665dd8a47f868c8d04c8230f857363ad3c9caf7a0c3bf8c61ca6", size = 178085 }, + { url = "https://files.pythonhosted.org/packages/9f/3e/28135a24e384493fa804216b79a6a6759a38cc4ff59118787b9fb693df93/websockets-16.0-cp314-cp314t-win_amd64.whl", hash = "sha256:b14dc141ed6d2dde437cddb216004bcac6a1df0935d79656387bd41632ba0bbd", size = 178531 }, + { url = "https://files.pythonhosted.org/packages/6f/28/258ebab549c2bf3e64d2b0217b973467394a9cea8c42f70418ca2c5d0d2e/websockets-16.0-py3-none-any.whl", hash = "sha256:1637db62fad1dc833276dded54215f2c7fa46912301a24bd94d45d46a011ceec", size = 171598 }, +] + +[[package]] +name = "wrapt" +version = "1.17.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/95/8f/aeb76c5b46e273670962298c23e7ddde79916cb74db802131d49a85e4b7d/wrapt-1.17.3.tar.gz", hash = "sha256:f66eb08feaa410fe4eebd17f2a2c8e2e46d3476e9f8c783daa8e09e0faa666d0", size = 55547 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9f/41/cad1aba93e752f1f9268c77270da3c469883d56e2798e7df6240dcb2287b/wrapt-1.17.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:ab232e7fdb44cdfbf55fc3afa31bcdb0d8980b9b95c38b6405df2acb672af0e0", size = 53998 }, + { url = "https://files.pythonhosted.org/packages/60/f8/096a7cc13097a1869fe44efe68dace40d2a16ecb853141394047f0780b96/wrapt-1.17.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:9baa544e6acc91130e926e8c802a17f3b16fbea0fd441b5a60f5cf2cc5c3deba", size = 39020 }, + { url = "https://files.pythonhosted.org/packages/33/df/bdf864b8997aab4febb96a9ae5c124f700a5abd9b5e13d2a3214ec4be705/wrapt-1.17.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6b538e31eca1a7ea4605e44f81a48aa24c4632a277431a6ed3f328835901f4fd", size = 39098 }, + { url = "https://files.pythonhosted.org/packages/9f/81/5d931d78d0eb732b95dc3ddaeeb71c8bb572fb01356e9133916cd729ecdd/wrapt-1.17.3-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:042ec3bb8f319c147b1301f2393bc19dba6e176b7da446853406d041c36c7828", size = 88036 }, + { url = "https://files.pythonhosted.org/packages/ca/38/2e1785df03b3d72d34fc6252d91d9d12dc27a5c89caef3335a1bbb8908ca/wrapt-1.17.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3af60380ba0b7b5aeb329bc4e402acd25bd877e98b3727b0135cb5c2efdaefe9", size = 88156 }, + { url = "https://files.pythonhosted.org/packages/b3/8b/48cdb60fe0603e34e05cffda0b2a4adab81fd43718e11111a4b0100fd7c1/wrapt-1.17.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:0b02e424deef65c9f7326d8c19220a2c9040c51dc165cddb732f16198c168396", size = 87102 }, + { url = "https://files.pythonhosted.org/packages/3c/51/d81abca783b58f40a154f1b2c56db1d2d9e0d04fa2d4224e357529f57a57/wrapt-1.17.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:74afa28374a3c3a11b3b5e5fca0ae03bef8450d6aa3ab3a1e2c30e3a75d023dc", size = 87732 }, + { url = "https://files.pythonhosted.org/packages/9e/b1/43b286ca1392a006d5336412d41663eeef1ad57485f3e52c767376ba7e5a/wrapt-1.17.3-cp312-cp312-win32.whl", hash = "sha256:4da9f45279fff3543c371d5ababc57a0384f70be244de7759c85a7f989cb4ebe", size = 36705 }, + { url = "https://files.pythonhosted.org/packages/28/de/49493f962bd3c586ab4b88066e967aa2e0703d6ef2c43aa28cb83bf7b507/wrapt-1.17.3-cp312-cp312-win_amd64.whl", hash = "sha256:e71d5c6ebac14875668a1e90baf2ea0ef5b7ac7918355850c0908ae82bcb297c", size = 38877 }, + { url = "https://files.pythonhosted.org/packages/f1/48/0f7102fe9cb1e8a5a77f80d4f0956d62d97034bbe88d33e94699f99d181d/wrapt-1.17.3-cp312-cp312-win_arm64.whl", hash = "sha256:604d076c55e2fdd4c1c03d06dc1a31b95130010517b5019db15365ec4a405fc6", size = 36885 }, + { url = "https://files.pythonhosted.org/packages/fc/f6/759ece88472157acb55fc195e5b116e06730f1b651b5b314c66291729193/wrapt-1.17.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a47681378a0439215912ef542c45a783484d4dd82bac412b71e59cf9c0e1cea0", size = 54003 }, + { url = "https://files.pythonhosted.org/packages/4f/a9/49940b9dc6d47027dc850c116d79b4155f15c08547d04db0f07121499347/wrapt-1.17.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:54a30837587c6ee3cd1a4d1c2ec5d24e77984d44e2f34547e2323ddb4e22eb77", size = 39025 }, + { url = "https://files.pythonhosted.org/packages/45/35/6a08de0f2c96dcdd7fe464d7420ddb9a7655a6561150e5fc4da9356aeaab/wrapt-1.17.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:16ecf15d6af39246fe33e507105d67e4b81d8f8d2c6598ff7e3ca1b8a37213f7", size = 39108 }, + { url = "https://files.pythonhosted.org/packages/0c/37/6faf15cfa41bf1f3dba80cd3f5ccc6622dfccb660ab26ed79f0178c7497f/wrapt-1.17.3-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:6fd1ad24dc235e4ab88cda009e19bf347aabb975e44fd5c2fb22a3f6e4141277", size = 88072 }, + { url = "https://files.pythonhosted.org/packages/78/f2/efe19ada4a38e4e15b6dff39c3e3f3f73f5decf901f66e6f72fe79623a06/wrapt-1.17.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0ed61b7c2d49cee3c027372df5809a59d60cf1b6c2f81ee980a091f3afed6a2d", size = 88214 }, + { url = "https://files.pythonhosted.org/packages/40/90/ca86701e9de1622b16e09689fc24b76f69b06bb0150990f6f4e8b0eeb576/wrapt-1.17.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:423ed5420ad5f5529db9ce89eac09c8a2f97da18eb1c870237e84c5a5c2d60aa", size = 87105 }, + { url = "https://files.pythonhosted.org/packages/fd/e0/d10bd257c9a3e15cbf5523025252cc14d77468e8ed644aafb2d6f54cb95d/wrapt-1.17.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e01375f275f010fcbf7f643b4279896d04e571889b8a5b3f848423d91bf07050", size = 87766 }, + { url = "https://files.pythonhosted.org/packages/e8/cf/7d848740203c7b4b27eb55dbfede11aca974a51c3d894f6cc4b865f42f58/wrapt-1.17.3-cp313-cp313-win32.whl", hash = "sha256:53e5e39ff71b3fc484df8a522c933ea2b7cdd0d5d15ae82e5b23fde87d44cbd8", size = 36711 }, + { url = "https://files.pythonhosted.org/packages/57/54/35a84d0a4d23ea675994104e667ceff49227ce473ba6a59ba2c84f250b74/wrapt-1.17.3-cp313-cp313-win_amd64.whl", hash = "sha256:1f0b2f40cf341ee8cc1a97d51ff50dddb9fcc73241b9143ec74b30fc4f44f6cb", size = 38885 }, + { url = "https://files.pythonhosted.org/packages/01/77/66e54407c59d7b02a3c4e0af3783168fff8e5d61def52cda8728439d86bc/wrapt-1.17.3-cp313-cp313-win_arm64.whl", hash = "sha256:7425ac3c54430f5fc5e7b6f41d41e704db073309acfc09305816bc6a0b26bb16", size = 36896 }, + { url = "https://files.pythonhosted.org/packages/02/a2/cd864b2a14f20d14f4c496fab97802001560f9f41554eef6df201cd7f76c/wrapt-1.17.3-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:cf30f6e3c077c8e6a9a7809c94551203c8843e74ba0c960f4a98cd80d4665d39", size = 54132 }, + { url = "https://files.pythonhosted.org/packages/d5/46/d011725b0c89e853dc44cceb738a307cde5d240d023d6d40a82d1b4e1182/wrapt-1.17.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:e228514a06843cae89621384cfe3a80418f3c04aadf8a3b14e46a7be704e4235", size = 39091 }, + { url = "https://files.pythonhosted.org/packages/2e/9e/3ad852d77c35aae7ddebdbc3b6d35ec8013af7d7dddad0ad911f3d891dae/wrapt-1.17.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:5ea5eb3c0c071862997d6f3e02af1d055f381b1d25b286b9d6644b79db77657c", size = 39172 }, + { url = "https://files.pythonhosted.org/packages/c3/f7/c983d2762bcce2326c317c26a6a1e7016f7eb039c27cdf5c4e30f4160f31/wrapt-1.17.3-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:281262213373b6d5e4bb4353bc36d1ba4084e6d6b5d242863721ef2bf2c2930b", size = 87163 }, + { url = "https://files.pythonhosted.org/packages/e4/0f/f673f75d489c7f22d17fe0193e84b41540d962f75fce579cf6873167c29b/wrapt-1.17.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:dc4a8d2b25efb6681ecacad42fca8859f88092d8732b170de6a5dddd80a1c8fa", size = 87963 }, + { url = "https://files.pythonhosted.org/packages/df/61/515ad6caca68995da2fac7a6af97faab8f78ebe3bf4f761e1b77efbc47b5/wrapt-1.17.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:373342dd05b1d07d752cecbec0c41817231f29f3a89aa8b8843f7b95992ed0c7", size = 86945 }, + { url = "https://files.pythonhosted.org/packages/d3/bd/4e70162ce398462a467bc09e768bee112f1412e563620adc353de9055d33/wrapt-1.17.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:d40770d7c0fd5cbed9d84b2c3f2e156431a12c9a37dc6284060fb4bec0b7ffd4", size = 86857 }, + { url = "https://files.pythonhosted.org/packages/2b/b8/da8560695e9284810b8d3df8a19396a6e40e7518059584a1a394a2b35e0a/wrapt-1.17.3-cp314-cp314-win32.whl", hash = "sha256:fbd3c8319de8e1dc79d346929cd71d523622da527cca14e0c1d257e31c2b8b10", size = 37178 }, + { url = "https://files.pythonhosted.org/packages/db/c8/b71eeb192c440d67a5a0449aaee2310a1a1e8eca41676046f99ed2487e9f/wrapt-1.17.3-cp314-cp314-win_amd64.whl", hash = "sha256:e1a4120ae5705f673727d3253de3ed0e016f7cd78dc463db1b31e2463e1f3cf6", size = 39310 }, + { url = "https://files.pythonhosted.org/packages/45/20/2cda20fd4865fa40f86f6c46ed37a2a8356a7a2fde0773269311f2af56c7/wrapt-1.17.3-cp314-cp314-win_arm64.whl", hash = "sha256:507553480670cab08a800b9463bdb881b2edeed77dc677b0a5915e6106e91a58", size = 37266 }, + { url = "https://files.pythonhosted.org/packages/77/ed/dd5cf21aec36c80443c6f900449260b80e2a65cf963668eaef3b9accce36/wrapt-1.17.3-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:ed7c635ae45cfbc1a7371f708727bf74690daedc49b4dba310590ca0bd28aa8a", size = 56544 }, + { url = "https://files.pythonhosted.org/packages/8d/96/450c651cc753877ad100c7949ab4d2e2ecc4d97157e00fa8f45df682456a/wrapt-1.17.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:249f88ed15503f6492a71f01442abddd73856a0032ae860de6d75ca62eed8067", size = 40283 }, + { url = "https://files.pythonhosted.org/packages/d1/86/2fcad95994d9b572db57632acb6f900695a648c3e063f2cd344b3f5c5a37/wrapt-1.17.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:5a03a38adec8066d5a37bea22f2ba6bbf39fcdefbe2d91419ab864c3fb515454", size = 40366 }, + { url = "https://files.pythonhosted.org/packages/64/0e/f4472f2fdde2d4617975144311f8800ef73677a159be7fe61fa50997d6c0/wrapt-1.17.3-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:5d4478d72eb61c36e5b446e375bbc49ed002430d17cdec3cecb36993398e1a9e", size = 108571 }, + { url = "https://files.pythonhosted.org/packages/cc/01/9b85a99996b0a97c8a17484684f206cbb6ba73c1ce6890ac668bcf3838fb/wrapt-1.17.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:223db574bb38637e8230eb14b185565023ab624474df94d2af18f1cdb625216f", size = 113094 }, + { url = "https://files.pythonhosted.org/packages/25/02/78926c1efddcc7b3aa0bc3d6b33a822f7d898059f7cd9ace8c8318e559ef/wrapt-1.17.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e405adefb53a435f01efa7ccdec012c016b5a1d3f35459990afc39b6be4d5056", size = 110659 }, + { url = "https://files.pythonhosted.org/packages/dc/ee/c414501ad518ac3e6fe184753632fe5e5ecacdcf0effc23f31c1e4f7bfcf/wrapt-1.17.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:88547535b787a6c9ce4086917b6e1d291aa8ed914fdd3a838b3539dc95c12804", size = 106946 }, + { url = "https://files.pythonhosted.org/packages/be/44/a1bd64b723d13bb151d6cc91b986146a1952385e0392a78567e12149c7b4/wrapt-1.17.3-cp314-cp314t-win32.whl", hash = "sha256:41b1d2bc74c2cac6f9074df52b2efbef2b30bdfe5f40cb78f8ca22963bc62977", size = 38717 }, + { url = "https://files.pythonhosted.org/packages/79/d9/7cfd5a312760ac4dd8bf0184a6ee9e43c33e47f3dadc303032ce012b8fa3/wrapt-1.17.3-cp314-cp314t-win_amd64.whl", hash = "sha256:73d496de46cd2cdbdbcce4ae4bcdb4afb6a11234a1df9c085249d55166b95116", size = 41334 }, + { url = "https://files.pythonhosted.org/packages/46/78/10ad9781128ed2f99dbc474f43283b13fea8ba58723e98844367531c18e9/wrapt-1.17.3-cp314-cp314t-win_arm64.whl", hash = "sha256:f38e60678850c42461d4202739f9bf1e3a737c7ad283638251e79cc49effb6b6", size = 38471 }, + { url = "https://files.pythonhosted.org/packages/1f/f6/a933bd70f98e9cf3e08167fc5cd7aaaca49147e48411c0bd5ae701bb2194/wrapt-1.17.3-py3-none-any.whl", hash = "sha256:7171ae35d2c33d326ac19dd8facb1e82e5fd04ef8c6c0e394d7af55a55051c22", size = 23591 }, +] + +[[package]] +name = "xai-sdk" +version = "1.11.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohttp" }, + { name = "googleapis-common-protos" }, + { name = "grpcio" }, + { name = "opentelemetry-sdk" }, + { name = "packaging" }, + { name = "protobuf" }, + { name = "pydantic" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/49/32/bb8385f7a3b05ce406b689aa000c9a34289caa1526f1c093a1cefc0d9695/xai_sdk-1.11.0.tar.gz", hash = "sha256:ca87a830d310fb8e06fba44fb2a8c5cdf0d9f716b61126eddd51b7f416a63932", size = 404313 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/76/86d9a3589c725ce825d2ed3e7cb3ecf7f956d3fd015353d52197bb341bcd/xai_sdk-1.11.0-py3-none-any.whl", hash = "sha256:fe58ce6d8f8115ae8bd57ded57bcd847d0bb7cb28bb7b236abefd4626df1ed8d", size = 251388 }, +] + +[[package]] +name = "xyzservices" +version = "2026.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f6/08/3cb9f67a8d48021aca2a02292cc26eecd71d949ae70ad66420a8730cc302/xyzservices-2026.3.0.tar.gz", hash = "sha256:d226866a5d8e9fef337034d8da37a8298f0a1d9d1489b4018e69579eb321fea4", size = 1135736 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a8/a9/d23012099dc88ec69a29c6407b41d89681cb674c2043cd5b467c7e299c08/xyzservices-2026.3.0-py3-none-any.whl", hash = "sha256:503183d4b322bfebc3c50cdd21192aa3e81e36c5efbf9133d54ae82143e0576b", size = 94101 }, +] + +[[package]] +name = "yarl" +version = "1.23.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "idna" }, + { name = "multidict" }, + { name = "propcache" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/23/6e/beb1beec874a72f23815c1434518bfc4ed2175065173fb138c3705f658d4/yarl-1.23.0.tar.gz", hash = "sha256:53b1ea6ca88ebd4420379c330aea57e258408dd0df9af0992e5de2078dc9f5d5", size = 194676 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/88/8a/94615bc31022f711add374097ad4144d569e95ff3c38d39215d07ac153a0/yarl-1.23.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:1932b6b8bba8d0160a9d1078aae5838a66039e8832d41d2992daa9a3a08f7860", size = 124737 }, + { url = "https://files.pythonhosted.org/packages/e3/6f/c6554045d59d64052698add01226bc867b52fe4a12373415d7991fdca95d/yarl-1.23.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:411225bae281f114067578891bc75534cfb3d92a3b4dfef7a6ca78ba354e6069", size = 87029 }, + { url = "https://files.pythonhosted.org/packages/19/2a/725ecc166d53438bc88f76822ed4b1e3b10756e790bafd7b523fe97c322d/yarl-1.23.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:13a563739ae600a631c36ce096615fe307f131344588b0bc0daec108cdb47b25", size = 86310 }, + { url = "https://files.pythonhosted.org/packages/99/30/58260ed98e6ff7f90ba84442c1ddd758c9170d70327394a6227b310cd60f/yarl-1.23.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9cbf44c5cb4a7633d078788e1b56387e3d3cf2b8139a3be38040b22d6c3221c8", size = 97587 }, + { url = "https://files.pythonhosted.org/packages/76/0a/8b08aac08b50682e65759f7f8dde98ae8168f72487e7357a5d684c581ef9/yarl-1.23.0-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:53ad387048f6f09a8969631e4de3f1bf70c50e93545d64af4f751b2498755072", size = 92528 }, + { url = "https://files.pythonhosted.org/packages/52/07/0b7179101fe5f8385ec6c6bb5d0cb9f76bd9fb4a769591ab6fb5cdbfc69a/yarl-1.23.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:4a59ba56f340334766f3a4442e0efd0af895fae9e2b204741ef885c446b3a1a8", size = 105339 }, + { url = "https://files.pythonhosted.org/packages/d3/8a/36d82869ab5ec829ca8574dfcb92b51286fcfb1e9c7a73659616362dc880/yarl-1.23.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:803a3c3ce4acc62eaf01eaca1208dcf0783025ef27572c3336502b9c232005e7", size = 105061 }, + { url = "https://files.pythonhosted.org/packages/66/3e/868e5c3364b6cee19ff3e1a122194fa4ce51def02c61023970442162859e/yarl-1.23.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a3d2bff8f37f8d0f96c7ec554d16945050d54462d6e95414babaa18bfafc7f51", size = 100132 }, + { url = "https://files.pythonhosted.org/packages/cf/26/9c89acf82f08a52cb52d6d39454f8d18af15f9d386a23795389d1d423823/yarl-1.23.0-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c75eb09e8d55bceb4367e83496ff8ef2bc7ea6960efb38e978e8073ea59ecb67", size = 99289 }, + { url = "https://files.pythonhosted.org/packages/6f/54/5b0db00d2cb056922356104468019c0a132e89c8d3ab67d8ede9f4483d2a/yarl-1.23.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:877b0738624280e34c55680d6054a307aa94f7d52fa0e3034a9cc6e790871da7", size = 96950 }, + { url = "https://files.pythonhosted.org/packages/f6/40/10fa93811fd439341fad7e0718a86aca0de9548023bbb403668d6555acab/yarl-1.23.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:b5405bb8f0e783a988172993cfc627e4d9d00432d6bbac65a923041edacf997d", size = 93960 }, + { url = "https://files.pythonhosted.org/packages/bc/d2/8ae2e6cd77d0805f4526e30ec43b6f9a3dfc542d401ac4990d178e4bf0cf/yarl-1.23.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:1c3a3598a832590c5a3ce56ab5576361b5688c12cb1d39429cf5dba30b510760", size = 104703 }, + { url = "https://files.pythonhosted.org/packages/2f/0c/b3ceacf82c3fe21183ce35fa2acf5320af003d52bc1fcf5915077681142e/yarl-1.23.0-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:8419ebd326430d1cbb7efb5292330a2cf39114e82df5cc3d83c9a0d5ebeaf2f2", size = 98325 }, + { url = "https://files.pythonhosted.org/packages/9d/e0/12900edd28bdab91a69bd2554b85ad7b151f64e8b521fe16f9ad2f56477a/yarl-1.23.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:be61f6fff406ca40e3b1d84716fde398fc08bc63dd96d15f3a14230a0973ed86", size = 105067 }, + { url = "https://files.pythonhosted.org/packages/15/61/74bb1182cf79c9bbe4eb6b1f14a57a22d7a0be5e9cedf8e2d5c2086474c3/yarl-1.23.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3ceb13c5c858d01321b5d9bb65e4cf37a92169ea470b70fec6f236b2c9dd7e34", size = 100285 }, + { url = "https://files.pythonhosted.org/packages/69/7f/cd5ef733f2550de6241bd8bd8c3febc78158b9d75f197d9c7baa113436af/yarl-1.23.0-cp312-cp312-win32.whl", hash = "sha256:fffc45637bcd6538de8b85f51e3df3223e4ad89bccbfca0481c08c7fc8b7ed7d", size = 82359 }, + { url = "https://files.pythonhosted.org/packages/f5/be/25216a49daeeb7af2bec0db22d5e7df08ed1d7c9f65d78b14f3b74fd72fc/yarl-1.23.0-cp312-cp312-win_amd64.whl", hash = "sha256:f69f57305656a4852f2a7203efc661d8c042e6cc67f7acd97d8667fb448a426e", size = 87674 }, + { url = "https://files.pythonhosted.org/packages/d2/35/aeab955d6c425b227d5b7247eafb24f2653fedc32f95373a001af5dfeb9e/yarl-1.23.0-cp312-cp312-win_arm64.whl", hash = "sha256:6e87a6e8735b44816e7db0b2fbc9686932df473c826b0d9743148432e10bb9b9", size = 81879 }, + { url = "https://files.pythonhosted.org/packages/9a/4b/a0a6e5d0ee8a2f3a373ddef8a4097d74ac901ac363eea1440464ccbe0898/yarl-1.23.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:16c6994ac35c3e74fb0ae93323bf8b9c2a9088d55946109489667c510a7d010e", size = 123796 }, + { url = "https://files.pythonhosted.org/packages/67/b6/8925d68af039b835ae876db5838e82e76ec87b9782ecc97e192b809c4831/yarl-1.23.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:4a42e651629dafb64fd5b0286a3580613702b5809ad3f24934ea87595804f2c5", size = 86547 }, + { url = "https://files.pythonhosted.org/packages/ae/50/06d511cc4b8e0360d3c94af051a768e84b755c5eb031b12adaaab6dec6e5/yarl-1.23.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7c6b9461a2a8b47c65eef63bb1c76a4f1c119618ffa99ea79bc5bb1e46c5821b", size = 85854 }, + { url = "https://files.pythonhosted.org/packages/c4/f4/4e30b250927ffdab4db70da08b9b8d2194d7c7b400167b8fbeca1e4701ca/yarl-1.23.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2569b67d616eab450d262ca7cb9f9e19d2f718c70a8b88712859359d0ab17035", size = 98351 }, + { url = "https://files.pythonhosted.org/packages/86/fc/4118c5671ea948208bdb1492d8b76bdf1453d3e73df051f939f563e7dcc5/yarl-1.23.0-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:e9d9a4d06d3481eab79803beb4d9bd6f6a8e781ec078ac70d7ef2dcc29d1bea5", size = 92711 }, + { url = "https://files.pythonhosted.org/packages/56/11/1ed91d42bd9e73c13dc9e7eb0dd92298d75e7ac4dd7f046ad0c472e231cd/yarl-1.23.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f514f6474e04179d3d33175ed3f3e31434d3130d42ec153540d5b157deefd735", size = 106014 }, + { url = "https://files.pythonhosted.org/packages/ce/c9/74e44e056a23fbc33aca71779ef450ca648a5bc472bdad7a82339918f818/yarl-1.23.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:fda207c815b253e34f7e1909840fd14299567b1c0eb4908f8c2ce01a41265401", size = 105557 }, + { url = "https://files.pythonhosted.org/packages/66/fe/b1e10b08d287f518994f1e2ff9b6d26f0adeecd8dd7d533b01bab29a3eda/yarl-1.23.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:34b6cf500e61c90f305094911f9acc9c86da1a05a7a3f5be9f68817043f486e4", size = 101559 }, + { url = "https://files.pythonhosted.org/packages/72/59/c5b8d94b14e3d3c2a9c20cb100119fd534ab5a14b93673ab4cc4a4141ea5/yarl-1.23.0-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:d7504f2b476d21653e4d143f44a175f7f751cd41233525312696c76aa3dbb23f", size = 100502 }, + { url = "https://files.pythonhosted.org/packages/77/4f/96976cb54cbfc5c9fd73ed4c51804f92f209481d1fb190981c0f8a07a1d7/yarl-1.23.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:578110dd426f0d209d1509244e6d4a3f1a3e9077655d98c5f22583d63252a08a", size = 98027 }, + { url = "https://files.pythonhosted.org/packages/63/6e/904c4f476471afdbad6b7e5b70362fb5810e35cd7466529a97322b6f5556/yarl-1.23.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:609d3614d78d74ebe35f54953c5bbd2ac647a7ddb9c30a5d877580f5e86b22f2", size = 95369 }, + { url = "https://files.pythonhosted.org/packages/9d/40/acfcdb3b5f9d68ef499e39e04d25e141fe90661f9d54114556cf83be8353/yarl-1.23.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:4966242ec68afc74c122f8459abd597afd7d8a60dc93d695c1334c5fd25f762f", size = 105565 }, + { url = "https://files.pythonhosted.org/packages/5e/c6/31e28f3a6ba2869c43d124f37ea5260cac9c9281df803c354b31f4dd1f3c/yarl-1.23.0-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:e0fd068364a6759bc794459f0a735ab151d11304346332489c7972bacbe9e72b", size = 99813 }, + { url = "https://files.pythonhosted.org/packages/08/1f/6f65f59e72d54aa467119b63fc0b0b1762eff0232db1f4720cd89e2f4a17/yarl-1.23.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:39004f0ad156da43e86aa71f44e033de68a44e5a31fc53507b36dd253970054a", size = 105632 }, + { url = "https://files.pythonhosted.org/packages/a3/c4/18b178a69935f9e7a338127d5b77d868fdc0f0e49becd286d51b3a18c61d/yarl-1.23.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e5723c01a56c5028c807c701aa66722916d2747ad737a046853f6c46f4875543", size = 101895 }, + { url = "https://files.pythonhosted.org/packages/8f/54/f5b870b5505663911dba950a8e4776a0dbd51c9c54c0ae88e823e4b874a0/yarl-1.23.0-cp313-cp313-win32.whl", hash = "sha256:1b6b572edd95b4fa8df75de10b04bc81acc87c1c7d16bcdd2035b09d30acc957", size = 82356 }, + { url = "https://files.pythonhosted.org/packages/7a/84/266e8da36879c6edcd37b02b547e2d9ecdfea776be49598e75696e3316e1/yarl-1.23.0-cp313-cp313-win_amd64.whl", hash = "sha256:baaf55442359053c7d62f6f8413a62adba3205119bcb6f49594894d8be47e5e3", size = 87515 }, + { url = "https://files.pythonhosted.org/packages/00/fd/7e1c66efad35e1649114fa13f17485f62881ad58edeeb7f49f8c5e748bf9/yarl-1.23.0-cp313-cp313-win_arm64.whl", hash = "sha256:fb4948814a2a98e3912505f09c9e7493b1506226afb1f881825368d6fb776ee3", size = 81785 }, + { url = "https://files.pythonhosted.org/packages/9c/fc/119dd07004f17ea43bb91e3ece6587759edd7519d6b086d16bfbd3319982/yarl-1.23.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:aecfed0b41aa72b7881712c65cf764e39ce2ec352324f5e0837c7048d9e6daaa", size = 130719 }, + { url = "https://files.pythonhosted.org/packages/e6/0d/9f2348502fbb3af409e8f47730282cd6bc80dec6630c1e06374d882d6eb2/yarl-1.23.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:a41bcf68efd19073376eb8cf948b8d9be0af26256403e512bb18f3966f1f9120", size = 89690 }, + { url = "https://files.pythonhosted.org/packages/50/93/e88f3c80971b42cfc83f50a51b9d165a1dbf154b97005f2994a79f212a07/yarl-1.23.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:cde9a2ecd91668bcb7f077c4966d8ceddb60af01b52e6e3e2680e4cf00ad1a59", size = 89851 }, + { url = "https://files.pythonhosted.org/packages/1c/07/61c9dd8ba8f86473263b4036f70fb594c09e99c0d9737a799dfd8bc85651/yarl-1.23.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5023346c4ee7992febc0068e7593de5fa2bf611848c08404b35ebbb76b1b0512", size = 95874 }, + { url = "https://files.pythonhosted.org/packages/9e/e9/f9ff8ceefba599eac6abddcfb0b3bee9b9e636e96dbf54342a8577252379/yarl-1.23.0-cp313-cp313t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:d1009abedb49ae95b136a8904a3f71b342f849ffeced2d3747bf29caeda218c4", size = 88710 }, + { url = "https://files.pythonhosted.org/packages/eb/78/0231bfcc5d4c8eec220bc2f9ef82cb4566192ea867a7c5b4148f44f6cbcd/yarl-1.23.0-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a8d00f29b42f534cc8aa3931cfe773b13b23e561e10d2b26f27a8d309b0e82a1", size = 101033 }, + { url = "https://files.pythonhosted.org/packages/cd/9b/30ea5239a61786f18fd25797151a17fbb3be176977187a48d541b5447dd4/yarl-1.23.0-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:95451e6ce06c3e104556d73b559f5da6c34a069b6b62946d3ad66afcd51642ea", size = 100817 }, + { url = "https://files.pythonhosted.org/packages/62/e2/a4980481071791bc83bce2b7a1a1f7adcabfa366007518b4b845e92eeee3/yarl-1.23.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:531ef597132086b6cf96faa7c6c1dcd0361dd5f1694e5cc30375907b9b7d3ea9", size = 97482 }, + { url = "https://files.pythonhosted.org/packages/e5/1e/304a00cf5f6100414c4b5a01fc7ff9ee724b62158a08df2f8170dfc72a2d/yarl-1.23.0-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:88f9fb0116fbfcefcab70f85cf4b74a2b6ce5d199c41345296f49d974ddb4123", size = 95949 }, + { url = "https://files.pythonhosted.org/packages/68/03/093f4055ed4cae649ac53bca3d180bd37102e9e11d048588e9ab0c0108d0/yarl-1.23.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:e7b0460976dc75cb87ad9cc1f9899a4b97751e7d4e77ab840fc9b6d377b8fd24", size = 95839 }, + { url = "https://files.pythonhosted.org/packages/b9/28/4c75ebb108f322aa8f917ae10a8ffa4f07cae10a8a627b64e578617df6a0/yarl-1.23.0-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:115136c4a426f9da976187d238e84139ff6b51a20839aa6e3720cd1026d768de", size = 90696 }, + { url = "https://files.pythonhosted.org/packages/23/9c/42c2e2dd91c1a570402f51bdf066bfdb1241c2240ba001967bad778e77b7/yarl-1.23.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:ead11956716a940c1abc816b7df3fa2b84d06eaed8832ca32f5c5e058c65506b", size = 100865 }, + { url = "https://files.pythonhosted.org/packages/74/05/1bcd60a8a0a914d462c305137246b6f9d167628d73568505fce3f1cb2e65/yarl-1.23.0-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:fe8f8f5e70e6dbdfca9882cd9deaac058729bcf323cf7a58660901e55c9c94f6", size = 96234 }, + { url = "https://files.pythonhosted.org/packages/90/b2/f52381aac396d6778ce516b7bc149c79e65bfc068b5de2857ab69eeea3b7/yarl-1.23.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:a0e317df055958a0c1e79e5d2aa5a5eaa4a6d05a20d4b0c9c3f48918139c9fc6", size = 100295 }, + { url = "https://files.pythonhosted.org/packages/e5/e8/638bae5bbf1113a659b2435d8895474598afe38b4a837103764f603aba56/yarl-1.23.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:6f0fd84de0c957b2d280143522c4f91a73aada1923caee763e24a2b3fda9f8a5", size = 97784 }, + { url = "https://files.pythonhosted.org/packages/80/25/a3892b46182c586c202629fc2159aa13975d3741d52ebd7347fd501d48d5/yarl-1.23.0-cp313-cp313t-win32.whl", hash = "sha256:93a784271881035ab4406a172edb0faecb6e7d00f4b53dc2f55919d6c9688595", size = 88313 }, + { url = "https://files.pythonhosted.org/packages/43/68/8c5b36aa5178900b37387937bc2c2fe0e9505537f713495472dcf6f6fccc/yarl-1.23.0-cp313-cp313t-win_amd64.whl", hash = "sha256:dd00607bffbf30250fe108065f07453ec124dbf223420f57f5e749b04295e090", size = 94932 }, + { url = "https://files.pythonhosted.org/packages/c6/cc/d79ba8292f51f81f4dc533a8ccfb9fc6992cabf0998ed3245de7589dc07c/yarl-1.23.0-cp313-cp313t-win_arm64.whl", hash = "sha256:ac09d42f48f80c9ee1635b2fcaa819496a44502737660d3c0f2ade7526d29144", size = 84786 }, + { url = "https://files.pythonhosted.org/packages/90/98/b85a038d65d1b92c3903ab89444f48d3cee490a883477b716d7a24b1a78c/yarl-1.23.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:21d1b7305a71a15b4794b5ff22e8eef96ff4a6d7f9657155e5aa419444b28912", size = 124455 }, + { url = "https://files.pythonhosted.org/packages/39/54/bc2b45559f86543d163b6e294417a107bb87557609007c007ad889afec18/yarl-1.23.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:85610b4f27f69984932a7abbe52703688de3724d9f72bceb1cca667deff27474", size = 86752 }, + { url = "https://files.pythonhosted.org/packages/24/f9/e8242b68362bffe6fb536c8db5076861466fc780f0f1b479fc4ffbebb128/yarl-1.23.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:23f371bd662cf44a7630d4d113101eafc0cfa7518a2760d20760b26021454719", size = 86291 }, + { url = "https://files.pythonhosted.org/packages/ea/d8/d1cb2378c81dd729e98c716582b1ccb08357e8488e4c24714658cc6630e8/yarl-1.23.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c4a80f77dc1acaaa61f0934176fccca7096d9b1ff08c8ba9cddf5ae034a24319", size = 99026 }, + { url = "https://files.pythonhosted.org/packages/0a/ff/7196790538f31debe3341283b5b0707e7feb947620fc5e8236ef28d44f72/yarl-1.23.0-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:bd654fad46d8d9e823afbb4f87c79160b5a374ed1ff5bde24e542e6ba8f41434", size = 92355 }, + { url = "https://files.pythonhosted.org/packages/c1/56/25d58c3eddde825890a5fe6aa1866228377354a3c39262235234ab5f616b/yarl-1.23.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:682bae25f0a0dd23a056739f23a134db9f52a63e2afd6bfb37ddc76292bbd723", size = 106417 }, + { url = "https://files.pythonhosted.org/packages/51/8a/882c0e7bc8277eb895b31bce0138f51a1ba551fc2e1ec6753ffc1e7c1377/yarl-1.23.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a82836cab5f197a0514235aaf7ffccdc886ccdaa2324bc0aafdd4ae898103039", size = 106422 }, + { url = "https://files.pythonhosted.org/packages/42/2b/fef67d616931055bf3d6764885990a3ac647d68734a2d6a9e1d13de437a2/yarl-1.23.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1c57676bdedc94cd3bc37724cf6f8cd2779f02f6aba48de45feca073e714fe52", size = 101915 }, + { url = "https://files.pythonhosted.org/packages/18/6a/530e16aebce27c5937920f3431c628a29a4b6b430fab3fd1c117b26ff3f6/yarl-1.23.0-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c7f8dc16c498ff06497c015642333219871effba93e4a2e8604a06264aca5c5c", size = 100690 }, + { url = "https://files.pythonhosted.org/packages/88/08/93749219179a45e27b036e03260fda05190b911de8e18225c294ac95bbc9/yarl-1.23.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:5ee586fb17ff8f90c91cf73c6108a434b02d69925f44f5f8e0d7f2f260607eae", size = 98750 }, + { url = "https://files.pythonhosted.org/packages/d9/cf/ea424a004969f5d81a362110a6ac1496d79efdc6d50c2c4b2e3ea0fc2519/yarl-1.23.0-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:17235362f580149742739cc3828b80e24029d08cbb9c4bda0242c7b5bc610a8e", size = 94685 }, + { url = "https://files.pythonhosted.org/packages/e2/b7/14341481fe568e2b0408bcf1484c652accafe06a0ade9387b5d3fd9df446/yarl-1.23.0-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:0793e2bd0cf14234983bbb371591e6bea9e876ddf6896cdcc93450996b0b5c85", size = 106009 }, + { url = "https://files.pythonhosted.org/packages/0a/e6/5c744a9b54f4e8007ad35bce96fbc9218338e84812d36f3390cea616881a/yarl-1.23.0-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:3650dc2480f94f7116c364096bc84b1d602f44224ef7d5c7208425915c0475dd", size = 100033 }, + { url = "https://files.pythonhosted.org/packages/0c/23/e3bfc188d0b400f025bc49d99793d02c9abe15752138dcc27e4eaf0c4a9e/yarl-1.23.0-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:f40e782d49630ad384db66d4d8b73ff4f1b8955dc12e26b09a3e3af064b3b9d6", size = 106483 }, + { url = "https://files.pythonhosted.org/packages/72/42/f0505f949a90b3f8b7a363d6cbdf398f6e6c58946d85c6d3a3bc70595b26/yarl-1.23.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:94f8575fbdf81749008d980c17796097e645574a3b8c28ee313931068dad14fe", size = 102175 }, + { url = "https://files.pythonhosted.org/packages/aa/65/b39290f1d892a9dd671d1c722014ca062a9c35d60885d57e5375db0404b5/yarl-1.23.0-cp314-cp314-win32.whl", hash = "sha256:c8aa34a5c864db1087d911a0b902d60d203ea3607d91f615acd3f3108ac32169", size = 83871 }, + { url = "https://files.pythonhosted.org/packages/a9/5b/9b92f54c784c26e2a422e55a8d2607ab15b7ea3349e28359282f84f01d43/yarl-1.23.0-cp314-cp314-win_amd64.whl", hash = "sha256:63e92247f383c85ab00dd0091e8c3fa331a96e865459f5ee80353c70a4a42d70", size = 89093 }, + { url = "https://files.pythonhosted.org/packages/e0/7d/8a84dc9381fd4412d5e7ff04926f9865f6372b4c2fd91e10092e65d29eb8/yarl-1.23.0-cp314-cp314-win_arm64.whl", hash = "sha256:70efd20be968c76ece7baa8dafe04c5be06abc57f754d6f36f3741f7aa7a208e", size = 83384 }, + { url = "https://files.pythonhosted.org/packages/dd/8d/d2fad34b1c08aa161b74394183daa7d800141aaaee207317e82c790b418d/yarl-1.23.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:9a18d6f9359e45722c064c97464ec883eb0e0366d33eda61cb19a244bf222679", size = 131019 }, + { url = "https://files.pythonhosted.org/packages/19/ff/33009a39d3ccf4b94d7d7880dfe17fb5816c5a4fe0096d9b56abceea9ac7/yarl-1.23.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:2803ed8b21ca47a43da80a6fd1ed3019d30061f7061daa35ac54f63933409412", size = 89894 }, + { url = "https://files.pythonhosted.org/packages/0c/f1/dab7ac5e7306fb79c0190766a3c00b4cb8d09a1f390ded68c85a5934faf5/yarl-1.23.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:394906945aa8b19fc14a61cf69743a868bb8c465efe85eee687109cc540b98f4", size = 89979 }, + { url = "https://files.pythonhosted.org/packages/aa/b1/08e95f3caee1fad6e65017b9f26c1d79877b502622d60e517de01e72f95d/yarl-1.23.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:71d006bee8397a4a89f469b8deb22469fe7508132d3c17fa6ed871e79832691c", size = 95943 }, + { url = "https://files.pythonhosted.org/packages/c0/cc/6409f9018864a6aa186c61175b977131f373f1988e198e031236916e87e4/yarl-1.23.0-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:62694e275c93d54f7ccedcfef57d42761b2aad5234b6be1f3e3026cae4001cd4", size = 88786 }, + { url = "https://files.pythonhosted.org/packages/76/40/cc22d1d7714b717fde2006fad2ced5efe5580606cb059ae42117542122f3/yarl-1.23.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a31de1613658308efdb21ada98cbc86a97c181aa050ba22a808120bb5be3ab94", size = 101307 }, + { url = "https://files.pythonhosted.org/packages/8f/0d/476c38e85ddb4c6ec6b20b815bdd779aa386a013f3d8b85516feee55c8dc/yarl-1.23.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:fb1e8b8d66c278b21d13b0a7ca22c41dd757a7c209c6b12c313e445c31dd3b28", size = 100904 }, + { url = "https://files.pythonhosted.org/packages/72/32/0abe4a76d59adf2081dcb0397168553ece4616ada1c54d1c49d8936c74f8/yarl-1.23.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:50f9d8d531dfb767c565f348f33dd5139a6c43f5cbdf3f67da40d54241df93f6", size = 97728 }, + { url = "https://files.pythonhosted.org/packages/b7/35/7b30f4810fba112f60f5a43237545867504e15b1c7647a785fbaf588fac2/yarl-1.23.0-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:575aa4405a656e61a540f4a80eaa5260f2a38fff7bfdc4b5f611840d76e9e277", size = 95964 }, + { url = "https://files.pythonhosted.org/packages/2d/86/ed7a73ab85ef00e8bb70b0cb5421d8a2a625b81a333941a469a6f4022828/yarl-1.23.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:041b1a4cefacf65840b4e295c6985f334ba83c30607441ae3cf206a0eed1a2e4", size = 95882 }, + { url = "https://files.pythonhosted.org/packages/19/90/d56967f61a29d8498efb7afb651e0b2b422a1e9b47b0ab5f4e40a19b699b/yarl-1.23.0-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:d38c1e8231722c4ce40d7593f28d92b5fc72f3e9774fe73d7e800ec32299f63a", size = 90797 }, + { url = "https://files.pythonhosted.org/packages/72/00/8b8f76909259f56647adb1011d7ed8b321bcf97e464515c65016a47ecdf0/yarl-1.23.0-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:d53834e23c015ee83a99377db6e5e37d8484f333edb03bd15b4bc312cc7254fb", size = 101023 }, + { url = "https://files.pythonhosted.org/packages/ac/e2/cab11b126fb7d440281b7df8e9ddbe4851e70a4dde47a202b6642586b8d9/yarl-1.23.0-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:2e27c8841126e017dd2a054a95771569e6070b9ee1b133366d8b31beb5018a41", size = 96227 }, + { url = "https://files.pythonhosted.org/packages/c2/9b/2c893e16bfc50e6b2edf76c1a9eb6cb0c744346197e74c65e99ad8d634d0/yarl-1.23.0-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:76855800ac56f878847a09ce6dba727c93ca2d89c9e9d63002d26b916810b0a2", size = 100302 }, + { url = "https://files.pythonhosted.org/packages/28/ec/5498c4e3a6d5f1003beb23405671c2eb9cdbf3067d1c80f15eeafe301010/yarl-1.23.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:e09fd068c2e169a7070d83d3bde728a4d48de0549f975290be3c108c02e499b4", size = 98202 }, + { url = "https://files.pythonhosted.org/packages/fe/c3/cd737e2d45e70717907f83e146f6949f20cc23cd4bf7b2688727763aa458/yarl-1.23.0-cp314-cp314t-win32.whl", hash = "sha256:73309162a6a571d4cbd3b6a1dcc703c7311843ae0d1578df6f09be4e98df38d4", size = 90558 }, + { url = "https://files.pythonhosted.org/packages/e1/19/3774d162f6732d1cfb0b47b4140a942a35ca82bb19b6db1f80e9e7bdc8f8/yarl-1.23.0-cp314-cp314t-win_amd64.whl", hash = "sha256:4503053d296bc6e4cbd1fad61cf3b6e33b939886c4f249ba7c78b602214fabe2", size = 97610 }, + { url = "https://files.pythonhosted.org/packages/51/47/3fa2286c3cb162c71cdb34c4224d5745a1ceceb391b2bd9b19b668a8d724/yarl-1.23.0-cp314-cp314t-win_arm64.whl", hash = "sha256:44bb7bef4ea409384e3f8bc36c063d77ea1b8d4a5b2706956c0d6695f07dcc25", size = 86041 }, + { url = "https://files.pythonhosted.org/packages/69/68/c8739671f5699c7dc470580a4f821ef37c32c4cb0b047ce223a7f115757f/yarl-1.23.0-py3-none-any.whl", hash = "sha256:a2df6afe50dea8ae15fa34c9f824a3ee958d785fd5d089063d960bae1daa0a3f", size = 48288 }, +] + +[[package]] +name = "zipp" +version = "3.23.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e3/02/0f2892c661036d50ede074e376733dca2ae7c6eb617489437771209d4180/zipp-3.23.0.tar.gz", hash = "sha256:a07157588a12518c9d4034df3fbbee09c814741a33ff63c05fa29d26a2404166", size = 25547 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2e/54/647ade08bf0db230bfea292f893923872fd20be6ac6f53b2b936ba839d75/zipp-3.23.0-py3-none-any.whl", hash = "sha256:071652d6115ed432f5ce1d34c336c0adfd6a884660d1e9712a256d3d3bd4b14e", size = 10276 }, +] From 690a5a6d718861d32153c16e480949fb7c39e6cc Mon Sep 17 00:00:00 2001 From: Scott Frasso Date: Thu, 2 Apr 2026 17:12:44 +0200 Subject: [PATCH 2/3] Add smoke tests for Pydantic models to fix empty test suite in CI Pytest exits with code 5 (no tests collected) when the test directory is empty, which fails the CI check. Co-Authored-By: Claude Opus 4.6 (1M context) --- tests/test_models.py | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 tests/test_models.py diff --git a/tests/test_models.py b/tests/test_models.py new file mode 100644 index 0000000..ef0d902 --- /dev/null +++ b/tests/test_models.py @@ -0,0 +1,38 @@ +"""Smoke tests for Pydantic models.""" + +from boston_needle_map.models import CleanedRecord + + +def test_cleaned_record_creation() -> None: + record = CleanedRecord( + lat=42.332, + lng=-71.078, + dt="2024-06-15T10:30:00", + year=2024, + month=6, + hour=10, + dow="Saturday", + hood="South End", + street="WASHINGTON ST", + zipcode="02118", + resp_hrs=4.5, + ) + assert record.lat == 42.332 + assert record.hood == "South End" + assert record.resp_hrs == 4.5 + + +def test_cleaned_record_optional_resp_hrs() -> None: + record = CleanedRecord( + lat=42.332, + lng=-71.078, + dt="2024-06-15T10:30:00", + year=2024, + month=6, + hour=10, + dow="Saturday", + hood="Roxbury", + street="MASS AVE", + zipcode="02119", + ) + assert record.resp_hrs is None From ccf58d2d57c4cc345d30e3e281c5ede44f525126 Mon Sep 17 00:00:00 2001 From: Scott Frasso Date: Thu, 2 Apr 2026 17:14:35 +0200 Subject: [PATCH 3/3] Move screenshot to docs/images/ and add to README Co-Authored-By: Claude Opus 4.6 (1M context) --- README.md | 2 ++ docs/{ => images}/streamlit-screenshot.png | Bin 2 files changed, 2 insertions(+) rename docs/{ => images}/streamlit-screenshot.png (100%) diff --git a/README.md b/README.md index b7d2d0e..a9effb8 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,8 @@ Automated pipeline that pulls needle cleanup requests from Boston's 311 open dat ![Data](https://img.shields.io/badge/source-data.boston.gov-blue) ![License](https://img.shields.io/badge/license-MIT-green) +![Streamlit Dashboard](docs/images/streamlit-screenshot.png) + --- ## How it works diff --git a/docs/streamlit-screenshot.png b/docs/images/streamlit-screenshot.png similarity index 100% rename from docs/streamlit-screenshot.png rename to docs/images/streamlit-screenshot.png