From ce73eadd7490b7fe22fb0c71e40876c8d446ed90 Mon Sep 17 00:00:00 2001 From: everbarry Date: Wed, 18 Mar 2026 10:51:06 +0100 Subject: [PATCH] initial commit --- .gitignore | 19 + README.md | 0 dashboard.py | 1129 ++++++++++++++++++ map.webp | Bin 0 -> 136646 bytes pyproject.toml | 24 + uv.lock | 3075 ++++++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 4247 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 dashboard.py create mode 100644 map.webp create mode 100644 pyproject.toml create mode 100644 uv.lock diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..28a1183 --- /dev/null +++ b/.gitignore @@ -0,0 +1,19 @@ +# Python-generated files +__pycache__/ +*.py[oc] +build/ +dist/ +wheels/ +*.egg-info + +# Virtual environments +.venv + +# Large model weights & dataset +*.pt +*.json +wild-forest-animals-and-person-1/ +data/ + +# Runtime cache +_xai_cache/ diff --git a/README.md b/README.md new file mode 100644 index 0000000..e69de29 diff --git a/dashboard.py b/dashboard.py new file mode 100644 index 0000000..2d4e310 --- /dev/null +++ b/dashboard.py @@ -0,0 +1,1129 @@ +""" +Wildlife Monitoring Dashboard — Nationaal Park De Hoge Veluwe + +Flask app with two pages: + / – fullscreen map with camera markers + togglable sidebar + /det/ – detection detail page with all XAI visualisations + +Run: uv run python dashboard.py +""" + +import csv +import io +import json +import random +import threading +import uuid +from datetime import datetime +from pathlib import Path + +import numpy as np +import matplotlib +matplotlib.use("Agg") +import matplotlib.pyplot as plt +from PIL import Image + +import torch +from torch import nn +from torch.utils.data import Dataset, DataLoader +from torchvision import transforms +from torchvision.models import efficientnet_v2_s, EfficientNet_V2_S_Weights +from pytorch_grad_cam import ScoreCAM +from pytorch_grad_cam.utils.image import show_cam_on_image +from lime import lime_image +from skimage.segmentation import mark_boundaries +from flask import Flask, render_template_string, jsonify, send_from_directory, request + +# ── constants ───────────────────────────────────────────────────────────────── + +SEED = 42 +random.seed(SEED) +np.random.seed(SEED) +torch.manual_seed(SEED) + +CLASS_NAMES = ["bear", "deer", "fox", "hare", "moose", "person", "wolf"] +WEIGHTS_PATH = Path("efficientnet_v2_wild_forest_animals.pt") +DATASET_DIR = Path("wild-forest-animals-and-person-1") +XAI_DIR = Path("_xai_cache") +XAI_DIR.mkdir(exist_ok=True) + +# Camera positions as percentages of the map image (adjust to match map.webp) +CAMERAS = { + "CAM-01": {"name": "Hubertus Trail", "px": 50, "py": 15, + "desc": "Northern forest near Jachthuis Sint Hubertus"}, + "CAM-02": {"name": "Otterlo Gate", "px": 25, "py": 38, + "desc": "Western entrance, deciduous woodland"}, + "CAM-03": {"name": "Kröller-Müller", "px": 42, "py": 48, + "desc": "Central area near the museum"}, + "CAM-04": {"name": "Hoenderloo Path", "px": 72, "py": 32, + "desc": "Eastern forest corridor"}, + "CAM-05": {"name": "Deelense Veld", "px": 55, "py": 68, + "desc": "Southern heathland near Schaarsbergen"}, +} + +SPECIES_ICON = { + "bear": "\U0001f43b", "deer": "\U0001f98c", "fox": "\U0001f98a", + "hare": "\U0001f407", "moose": "\U0001f98c", "person": "\U0001f9d1", + "wolf": "\U0001f43a", +} + +device = torch.device("cuda" if torch.cuda.is_available() else "cpu") + +# ── dataset ─────────────────────────────────────────────────────────────────── + +class WildForestAnimalsDataset(Dataset): + def __init__(self, root, split, transform=None): + self.root, self.transform = Path(root), transform + split_dir = self.root / split + self.samples = [] + with (split_dir / "_classes.csv").open(newline="") as f: + for row in csv.DictReader(f): + oh = [int(row[n]) for n in CLASS_NAMES] + try: + label = oh.index(1) + except ValueError: + continue + self.samples.append((split_dir / row["filename"], label)) + + def __len__(self): + return len(self.samples) + + def __getitem__(self, idx): + p, l = self.samples[idx] + img = Image.open(p).convert("RGB") + return self.transform(img) if self.transform else img, l + + +_eval_tf = transforms.Compose([ + transforms.ToTensor(), + transforms.Resize((224, 224), antialias=True), + transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]), +]) + +# ── model ───────────────────────────────────────────────────────────────────── + +print("Loading model and data …") +model = efficientnet_v2_s(weights=EfficientNet_V2_S_Weights.IMAGENET1K_V1) +model.classifier[1] = nn.Linear(model.classifier[1].in_features, len(CLASS_NAMES)) +model.load_state_dict(torch.load(WEIGHTS_PATH, map_location=device, weights_only=True)) +model.to(device).eval() + +test_ds = WildForestAnimalsDataset(DATASET_DIR, "test", transform=_eval_tf) +train_ds = WildForestAnimalsDataset(DATASET_DIR, "train", transform=_eval_tf) + +_norm = transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]) +_unnorm = transforms.Normalize( + mean=[-0.485 / 0.229, -0.456 / 0.224, -0.406 / 0.225], + std=[1 / 0.229, 1 / 0.224, 1 / 0.225], +) +score_cam = ScoreCAM(model=model, target_layers=[model.features[7][0]]) +lime_exp = lime_image.LimeImageExplainer(random_state=SEED) + + +def _to_display(t): + return torch.clamp(_unnorm(t), 0, 1).numpy().transpose(1, 2, 0) + + +def _lime_predict(images): + batch = torch.stack([ + _norm(torch.tensor(im.transpose(2, 0, 1), dtype=torch.float32)) + for im in images + ]).to(device) + with torch.no_grad(): + return torch.nn.functional.softmax(model(batch), dim=1).cpu().numpy() + + +print("Pre-computing training features …") + + +def _extract_features(ds, bs=64): + loader = DataLoader(ds, batch_size=bs, shuffle=False) + feats, labs = [], [] + with torch.no_grad(): + for imgs, lbls in loader: + x = torch.flatten(model.avgpool(model.features(imgs.to(device))), 1) + feats.append(x.cpu()) + labs.extend(lbls.tolist()) + return torch.nn.functional.normalize(torch.cat(feats), dim=1), labs + + +train_feats, train_labels = _extract_features(train_ds) +print("Ready.") + +# ── XAI helpers ─────────────────────────────────────────────────────────────── + + +def _save_img(arr, path): + if arr.dtype != np.uint8: + arr = (np.clip(arr, 0, 1) * 255).astype(np.uint8) + Image.fromarray(arr).save(path) + + +def _prob_chart(probs, pred_idx, path): + fig, ax = plt.subplots(figsize=(5, 2.6)) + colors = ["#e8832a" if i == pred_idx else "#4a90d9" for i in range(len(CLASS_NAMES))] + bars = ax.barh(CLASS_NAMES, probs, color=colors) + ax.set_xlim(0, 1) + ax.set_xlabel("Probability") + for bar, p in zip(bars, probs): + if p > 0.05: + ax.text(bar.get_width() - 0.01, + bar.get_y() + bar.get_height() / 2, + f"{p:.2f}", va="center", ha="right", + fontsize=8, color="white", fontweight="bold") + plt.tight_layout() + fig.savefig(path, dpi=120, bbox_inches="tight") + plt.close(fig) + + +def compute_xai(det): + out = XAI_DIR / det["id"] + if (out / "meta.json").exists(): + return + out.mkdir(exist_ok=True) + + idx = det["idx"] + tensor, label = test_ds[idx] + img_path, _ = test_ds.samples[idx] + raw = np.array( + Image.open(img_path).convert("RGB").resize((224, 224)), + dtype=np.float64, + ) / 255.0 + inp = tensor.unsqueeze(0).to(device) + + _save_img(raw, out / "original.png") + + with torch.no_grad(): + probs = torch.nn.functional.softmax(model(inp), dim=1).cpu().squeeze() + pred_idx = probs.argmax().item() + entropy = -(probs * torch.log(probs + 1e-12)).sum().item() + _prob_chart(probs.numpy(), pred_idx, out / "chart.png") + + hm = score_cam(input_tensor=inp, targets=None) + _save_img( + show_cam_on_image(raw.astype(np.float32), hm.squeeze(), use_rgb=True, image_weight=0.75), + out / "scorecam.png", + ) + + expl = lime_exp.explain_instance(raw, _lime_predict, top_labels=2, hide_color=0, num_samples=1000) + c1, c2 = expl.top_labels[0], expl.top_labels[1] + t1, m1 = expl.get_image_and_mask(c1, positive_only=False, num_features=10, hide_rest=False) + t2, m2 = expl.get_image_and_mask(c2, positive_only=False, num_features=10, hide_rest=False) + _save_img(mark_boundaries(t1, m1), out / "lime1.png") + _save_img(mark_boundaries(t2, m2), out / "lime2.png") + + segs = expl.segments + w1, w2 = dict(expl.local_exp[c1]), dict(expl.local_exp[c2]) + diff = np.zeros(segs.shape, dtype=np.float64) + for sid in np.unique(segs): + diff[segs == sid] = w1.get(sid, 0) - w2.get(sid, 0) + mx = max(np.abs(diff).max(), 1e-8) + diff /= mx + col = plt.cm.RdBu_r((diff + 1) / 2)[:, :, :3] + _save_img((0.6 * raw + 0.4 * col).clip(0, 1), out / "contrastive.png") + + with torch.no_grad(): + qf = torch.nn.functional.normalize( + torch.flatten(model.avgpool(model.features(inp)), 1).cpu(), dim=1, + ).squeeze() + sims, idxs = (train_feats @ qf).topk(3) + nbs = [] + for k, (ni, ns) in enumerate(zip(idxs, sims)): + _save_img(_to_display(train_ds[ni.item()][0]), out / f"nb{k+1}.png") + nbs.append({"cls": CLASS_NAMES[train_labels[ni]], "sim": f"{ns:.3f}"}) + + meta = { + "pred": CLASS_NAMES[pred_idx], + "conf": round(probs[pred_idx].item() * 100, 1), + "ppl": round(float(np.exp(entropy)), 2), + "probs": {CLASS_NAMES[i]: round(float(p), 4) for i, p in enumerate(probs)}, + "lime1_cls": CLASS_NAMES[c1], + "lime2_cls": CLASS_NAMES[c2], + "contrast_leg": f"Blue = {CLASS_NAMES[c1]} | Red = {CLASS_NAMES[c2]}", + "nbs": nbs, + } + (out / "meta.json").write_text(json.dumps(meta)) + + +# ── Flask app ───────────────────────────────────────────────────────────────── + +app = Flask(__name__) +detections: list[dict] = [] +_xai_events: dict[str, threading.Event] = {} +_xai_lock = threading.Lock() + + +def _precompute_xai(det): + try: + with _xai_lock: + compute_xai(det) + finally: + ev = _xai_events.get(det["id"]) + if ev: + ev.set() + + +@app.route("/") +@app.route("/home") +def home(): + return render_template_string(HOME_HTML, cameras=CAMERAS, class_names=CLASS_NAMES) + + +@app.route("/det/") +def detail(det_id): + det = next((d for d in detections if d["id"] == det_id), None) + if det is None: + return "Detection not found", 404 + return render_template_string(DETAIL_HTML, det=det, cameras=CAMERAS, class_names=CLASS_NAMES) + + +@app.route("/api/simulate", methods=["POST"]) +def api_simulate(): + idx = random.randint(0, len(test_ds) - 1) + cam_id = random.choice(list(CAMERAS.keys())) + tensor, label = test_ds[idx] + with torch.no_grad(): + probs = torch.nn.functional.softmax( + model(tensor.unsqueeze(0).to(device)), dim=1, + ).cpu().squeeze() + pred_idx = probs.argmax().item() + det = { + "id": uuid.uuid4().hex[:8], + "idx": idx, + "cam": cam_id, + "cam_name": CAMERAS[cam_id]["name"], + "pred": CLASS_NAMES[pred_idx], + "conf": round(probs[pred_idx].item() * 100, 1), + "time": datetime.now().strftime("%H:%M:%S"), + "verified": False, + "manual": False, + } + detections.append(det) + out = XAI_DIR / det["id"] + out.mkdir(exist_ok=True) + img_path, _ = test_ds.samples[idx] + raw = np.array( + Image.open(img_path).convert("RGB").resize((224, 224)), dtype=np.float64, + ) / 255.0 + _save_img(raw, out / "original.png") + ev = threading.Event() + _xai_events[det["id"]] = ev + threading.Thread(target=_precompute_xai, args=(det,), daemon=True).start() + return jsonify(det) + + +@app.route("/api/xai/") +def api_xai(det_id): + det = next((d for d in detections if d["id"] == det_id), None) + if det is None: + return jsonify(error="not found"), 404 + ev = _xai_events.get(det_id) + if ev: + ev.wait() + else: + compute_xai(det) + meta = json.loads((XAI_DIR / det_id / "meta.json").read_text()) + base = f"/xai/{det_id}" + meta["urls"] = { + k: f"{base}/{k}.png" + for k in ["original", "chart", "scorecam", "lime1", "lime2", "contrastive", + "nb1", "nb2", "nb3"] + } + return jsonify(meta) + + +@app.route("/cam/") +def camera(cam_id): + if cam_id not in CAMERAS: + return "Camera not found", 404 + cam_dets = [d for d in reversed(detections) if d["cam"] == cam_id] + return render_template_string(CAM_HTML, cam_id=cam_id, cam=CAMERAS[cam_id], dets=cam_dets) + + +@app.route("/api/verify/", methods=["POST"]) +def api_verify(det_id): + det = next((d for d in detections if d["id"] == det_id), None) + if det is None: + return jsonify(error="not found"), 404 + data = request.get_json() + if data.get("action") == "correct": + det["verified"] = True + elif data.get("action") == "wrong": + det["verified"] = True + det["manual"] = True + det["orig_pred"] = det["pred"] + det["orig_conf"] = det["conf"] + det["pred"] = data["true_class"] + det["conf"] = 100.0 + return jsonify(det) + + +@app.route("/api/detections") +def api_detections(): + return jsonify(detections) + + +@app.route("/map.webp") +def serve_map(): + return send_from_directory(".", "map.webp") + + +@app.route("/xai//") +def serve_xai(det_id, filename): + return send_from_directory(str(XAI_DIR / det_id), filename) + + +# ── HTML: home page ────────────────────────────────────────────────────────── + +HOME_HTML = r""" + + + + +De Hoge Veluwe — Wildlife Monitor + + + + +

Nationaal Park De Hoge Veluwe

Wildlife Camera Monitoring

+ + +
+
+ Park map + {% for cid, c in cameras.items() %} + +
{{ cid }} · {{ c.name }}
+ {% endfor %} +
+
+ +
+ + + + + + +""" + +# ── HTML: detail page ───────────────────────────────────────────────────────── + +DETAIL_HTML = r""" + + + + +Detection {{ det.id }} — De Hoge Veluwe + + + + +
+ ← Dashboard +
+
Detection {{ det.id }}
+
+ {{ det.cam }} · {{ cameras[det.cam].name }} · {{ det.time }} +
+
+
+ +
+ + +
+{% if det.verified %} + {% if det.manual %} +
Manually corrected + Model predicted {{ det.orig_pred }} — ranger corrected to {{ det.pred }}
+ {% else %} +
Verified correct + A ranger confirmed this detection is accurate.
+ {% endif %} +{% else %} +
Is this detection correct?
+
+ + +
+ +{% endif %} +
+ +
+
+
Computing explanations …
+
+ +
+
+ +
+
+ +
+ Loading… + +
+ +
+
+
+
+
+ + +
+

Class Probabilities

+
+
+
+
+
+
+ + +""" + + +# ── HTML: camera feed page ──────────────────────────────────────────────────── + +CAM_HTML = r""" + + + + +{{ cam_id }} — {{ cam.name }} + + + + +
+ ← Dashboard +
+
{{ cam_id }} — {{ cam.name }}
+
{{ cam.desc }}
+
+
+ +
+{% if dets %} + +{% else %} +
No detections from this camera yet.
Detections will appear here automatically.
+{% endif %} +
+ +""" + + +if __name__ == "__main__": + app.run(debug=True, port=5000) diff --git a/map.webp b/map.webp new file mode 100644 index 0000000000000000000000000000000000000000..5dfda0d2104b290ebbb02ca5af3a58ace9834eac GIT binary patch literal 136646 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

EQ`bS;a%5$6DW+%8%>_7cT7qJ$bTCo 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 z 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.1.3", + "grad-cam>=1.5.5", + "gradio==5.16.1", + "jupyter>=1.1.1", + "lime>=0.2.0.1", + "pydantic==2.10.6", + "roboflow>=1.2.16", + "scipy>=1.17.1", + "torch>=2.10.0", + "torchvision>=0.25.0", +] + +[dependency-groups] +dev = [ + "ipykernel>=7.2.0", +] diff --git a/uv.lock b/uv.lock new file mode 100644 index 0000000..6bb6fb6 --- /dev/null +++ b/uv.lock @@ -0,0 +1,3075 @@ +version = 1 +revision = 3 +requires-python = ">=3.13" +resolution-markers = [ + "python_full_version >= '3.14' and sys_platform == 'darwin'", + "python_full_version >= '3.14' and platform_machine == 'aarch64' and sys_platform == 'linux'", + "(python_full_version >= '3.14' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version < '3.14' and sys_platform == 'darwin'", + "python_full_version < '3.14' and platform_machine == 'aarch64' and sys_platform == 'linux'", + "(python_full_version < '3.14' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version < '3.14' and sys_platform != 'darwin' and sys_platform != 'linux')", +] + +[[package]] +name = "aiofiles" +version = "23.2.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/af/41/cfed10bc64d774f497a86e5ede9248e1d062db675504b41c320954d99641/aiofiles-23.2.1.tar.gz", hash = "sha256:84ec2218d8419404abcb9f0c02df3f34c6e0a68ed41072acfb1cef5cbc29051a", size = 32072, upload-time = "2023-08-09T15:23:11.564Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c5/19/5af6804c4cc0fed83f47bff6e413a98a36618e7d40185cd36e69737f3b0e/aiofiles-23.2.1-py3-none-any.whl", hash = "sha256:19297512c647d4b27a2cf7c34caa7e405c0d60b5560618a29a9fe027b18b0107", size = 15727, upload-time = "2023-08-09T15:23:09.774Z" }, +] + +[[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, upload-time = "2025-11-10T22:07:42.062Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1e/d3/26bf1008eb3d2daa8ef4cacc7f3bfdc11818d111f7e2d0201bc6e3b49d45/annotated_doc-0.0.4-py3-none-any.whl", hash = "sha256:571ac1dc6991c450b25a9c2d84a3705e2ae7a53467b5d111c24fa8baabbed320", size = 5303, upload-time = "2025-11-10T22:07:40.673Z" }, +] + +[[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, upload-time = "2024-05-20T21:33:25.928Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53", size = 13643, upload-time = "2024-05-20T21:33:24.1Z" }, +] + +[[package]] +name = "anyio" +version = "4.12.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "idna" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/96/f0/5eb65b2bb0d09ac6776f2eb54adee6abe8228ea05b20a5ad0e4945de8aac/anyio-4.12.1.tar.gz", hash = "sha256:41cfcc3a4c85d3f05c932da7c26d0201ac36f72abd4435ba90d0464a3ffed703", size = 228685, upload-time = "2026-01-06T11:45:21.246Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/38/0e/27be9fdef66e72d64c0cdc3cc2823101b80585f8119b5c112c2e8f5f7dab/anyio-4.12.1-py3-none-any.whl", hash = "sha256:d405828884fc140aa80a3c667b8beed277f1dfedec42ba031bd6ac3db606ab6c", size = 113592, upload-time = "2026-01-06T11:45:19.497Z" }, +] + +[[package]] +name = "appnope" +version = "0.1.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/35/5d/752690df9ef5b76e169e68d6a129fa6d08a7100ca7f754c89495db3c6019/appnope-0.1.4.tar.gz", hash = "sha256:1de3860566df9caf38f01f86f65e0e13e379af54f9e4bee1e66b48f2efffd1ee", size = 4170, upload-time = "2024-02-06T09:43:11.258Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/81/29/5ecc3a15d5a33e31b26c11426c45c501e439cb865d0bff96315d86443b78/appnope-0.1.4-py2.py3-none-any.whl", hash = "sha256:502575ee11cd7a28c0205f379b525beefebab9d161b7c964670864014ed7213c", size = 4321, upload-time = "2024-02-06T09:43:09.663Z" }, +] + +[[package]] +name = "argon2-cffi" +version = "25.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "argon2-cffi-bindings" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/0e/89/ce5af8a7d472a67cc819d5d998aa8c82c5d860608c4db9f46f1162d7dab9/argon2_cffi-25.1.0.tar.gz", hash = "sha256:694ae5cc8a42f4c4e2bf2ca0e64e51e23a040c6a517a85074683d3959e1346c1", size = 45706, upload-time = "2025-06-03T06:55:32.073Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4f/d3/a8b22fa575b297cd6e3e3b0155c7e25db170edf1c74783d6a31a2490b8d9/argon2_cffi-25.1.0-py3-none-any.whl", hash = "sha256:fdc8b074db390fccb6eb4a3604ae7231f219aa669a2652e0f20e16ba513d5741", size = 14657, upload-time = "2025-06-03T06:55:30.804Z" }, +] + +[[package]] +name = "argon2-cffi-bindings" +version = "25.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cffi" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/5c/2d/db8af0df73c1cf454f71b2bbe5e356b8c1f8041c979f505b3d3186e520a9/argon2_cffi_bindings-25.1.0.tar.gz", hash = "sha256:b957f3e6ea4d55d820e40ff76f450952807013d361a65d7f28acc0acbf29229d", size = 1783441, upload-time = "2025-07-30T10:02:05.147Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/60/97/3c0a35f46e52108d4707c44b95cfe2afcafc50800b5450c197454569b776/argon2_cffi_bindings-25.1.0-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:3d3f05610594151994ca9ccb3c771115bdb4daef161976a266f0dd8aa9996b8f", size = 54393, upload-time = "2025-07-30T10:01:40.97Z" }, + { url = "https://files.pythonhosted.org/packages/9d/f4/98bbd6ee89febd4f212696f13c03ca302b8552e7dbf9c8efa11ea4a388c3/argon2_cffi_bindings-25.1.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:8b8efee945193e667a396cbc7b4fb7d357297d6234d30a489905d96caabde56b", size = 29328, upload-time = "2025-07-30T10:01:41.916Z" }, + { url = "https://files.pythonhosted.org/packages/43/24/90a01c0ef12ac91a6be05969f29944643bc1e5e461155ae6559befa8f00b/argon2_cffi_bindings-25.1.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:3c6702abc36bf3ccba3f802b799505def420a1b7039862014a65db3205967f5a", size = 31269, upload-time = "2025-07-30T10:01:42.716Z" }, + { url = "https://files.pythonhosted.org/packages/d4/d3/942aa10782b2697eee7af5e12eeff5ebb325ccfb86dd8abda54174e377e4/argon2_cffi_bindings-25.1.0-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a1c70058c6ab1e352304ac7e3b52554daadacd8d453c1752e547c76e9c99ac44", size = 86558, upload-time = "2025-07-30T10:01:43.943Z" }, + { url = "https://files.pythonhosted.org/packages/0d/82/b484f702fec5536e71836fc2dbc8c5267b3f6e78d2d539b4eaa6f0db8bf8/argon2_cffi_bindings-25.1.0-cp314-cp314t-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e2fd3bfbff3c5d74fef31a722f729bf93500910db650c925c2d6ef879a7e51cb", size = 92364, upload-time = "2025-07-30T10:01:44.887Z" }, + { url = "https://files.pythonhosted.org/packages/c9/c1/a606ff83b3f1735f3759ad0f2cd9e038a0ad11a3de3b6c673aa41c24bb7b/argon2_cffi_bindings-25.1.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:c4f9665de60b1b0e99bcd6be4f17d90339698ce954cfd8d9cf4f91c995165a92", size = 85637, upload-time = "2025-07-30T10:01:46.225Z" }, + { url = "https://files.pythonhosted.org/packages/44/b4/678503f12aceb0262f84fa201f6027ed77d71c5019ae03b399b97caa2f19/argon2_cffi_bindings-25.1.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:ba92837e4a9aa6a508c8d2d7883ed5a8f6c308c89a4790e1e447a220deb79a85", size = 91934, upload-time = "2025-07-30T10:01:47.203Z" }, + { url = "https://files.pythonhosted.org/packages/f0/c7/f36bd08ef9bd9f0a9cff9428406651f5937ce27b6c5b07b92d41f91ae541/argon2_cffi_bindings-25.1.0-cp314-cp314t-win32.whl", hash = "sha256:84a461d4d84ae1295871329b346a97f68eade8c53b6ed9a7ca2d7467f3c8ff6f", size = 28158, upload-time = "2025-07-30T10:01:48.341Z" }, + { url = "https://files.pythonhosted.org/packages/b3/80/0106a7448abb24a2c467bf7d527fe5413b7fdfa4ad6d6a96a43a62ef3988/argon2_cffi_bindings-25.1.0-cp314-cp314t-win_amd64.whl", hash = "sha256:b55aec3565b65f56455eebc9b9f34130440404f27fe21c3b375bf1ea4d8fbae6", size = 32597, upload-time = "2025-07-30T10:01:49.112Z" }, + { url = "https://files.pythonhosted.org/packages/05/b8/d663c9caea07e9180b2cb662772865230715cbd573ba3b5e81793d580316/argon2_cffi_bindings-25.1.0-cp314-cp314t-win_arm64.whl", hash = "sha256:87c33a52407e4c41f3b70a9c2d3f6056d88b10dad7695be708c5021673f55623", size = 28231, upload-time = "2025-07-30T10:01:49.92Z" }, + { url = "https://files.pythonhosted.org/packages/1d/57/96b8b9f93166147826da5f90376e784a10582dd39a393c99bb62cfcf52f0/argon2_cffi_bindings-25.1.0-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:aecba1723ae35330a008418a91ea6cfcedf6d31e5fbaa056a166462ff066d500", size = 54121, upload-time = "2025-07-30T10:01:50.815Z" }, + { url = "https://files.pythonhosted.org/packages/0a/08/a9bebdb2e0e602dde230bdde8021b29f71f7841bd54801bcfd514acb5dcf/argon2_cffi_bindings-25.1.0-cp39-abi3-macosx_10_9_x86_64.whl", hash = "sha256:2630b6240b495dfab90aebe159ff784d08ea999aa4b0d17efa734055a07d2f44", size = 29177, upload-time = "2025-07-30T10:01:51.681Z" }, + { url = "https://files.pythonhosted.org/packages/b6/02/d297943bcacf05e4f2a94ab6f462831dc20158614e5d067c35d4e63b9acb/argon2_cffi_bindings-25.1.0-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:7aef0c91e2c0fbca6fc68e7555aa60ef7008a739cbe045541e438373bc54d2b0", size = 31090, upload-time = "2025-07-30T10:01:53.184Z" }, + { url = "https://files.pythonhosted.org/packages/c1/93/44365f3d75053e53893ec6d733e4a5e3147502663554b4d864587c7828a7/argon2_cffi_bindings-25.1.0-cp39-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1e021e87faa76ae0d413b619fe2b65ab9a037f24c60a1e6cc43457ae20de6dc6", size = 81246, upload-time = "2025-07-30T10:01:54.145Z" }, + { url = "https://files.pythonhosted.org/packages/09/52/94108adfdd6e2ddf58be64f959a0b9c7d4ef2fa71086c38356d22dc501ea/argon2_cffi_bindings-25.1.0-cp39-abi3-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d3e924cfc503018a714f94a49a149fdc0b644eaead5d1f089330399134fa028a", size = 87126, upload-time = "2025-07-30T10:01:55.074Z" }, + { url = "https://files.pythonhosted.org/packages/72/70/7a2993a12b0ffa2a9271259b79cc616e2389ed1a4d93842fac5a1f923ffd/argon2_cffi_bindings-25.1.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:c87b72589133f0346a1cb8d5ecca4b933e3c9b64656c9d175270a000e73b288d", size = 80343, upload-time = "2025-07-30T10:01:56.007Z" }, + { url = "https://files.pythonhosted.org/packages/78/9a/4e5157d893ffc712b74dbd868c7f62365618266982b64accab26bab01edc/argon2_cffi_bindings-25.1.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:1db89609c06afa1a214a69a462ea741cf735b29a57530478c06eb81dd403de99", size = 86777, upload-time = "2025-07-30T10:01:56.943Z" }, + { url = "https://files.pythonhosted.org/packages/74/cd/15777dfde1c29d96de7f18edf4cc94c385646852e7c7b0320aa91ccca583/argon2_cffi_bindings-25.1.0-cp39-abi3-win32.whl", hash = "sha256:473bcb5f82924b1becbb637b63303ec8d10e84c8d241119419897a26116515d2", size = 27180, upload-time = "2025-07-30T10:01:57.759Z" }, + { url = "https://files.pythonhosted.org/packages/e2/c6/a759ece8f1829d1f162261226fbfd2c6832b3ff7657384045286d2afa384/argon2_cffi_bindings-25.1.0-cp39-abi3-win_amd64.whl", hash = "sha256:a98cd7d17e9f7ce244c0803cad3c23a7d379c301ba618a5fa76a67d116618b98", size = 31715, upload-time = "2025-07-30T10:01:58.56Z" }, + { url = "https://files.pythonhosted.org/packages/42/b9/f8d6fa329ab25128b7e98fd83a3cb34d9db5b059a9847eddb840a0af45dd/argon2_cffi_bindings-25.1.0-cp39-abi3-win_arm64.whl", hash = "sha256:b0fdbcf513833809c882823f98dc2f931cf659d9a1429616ac3adebb49f5db94", size = 27149, upload-time = "2025-07-30T10:01:59.329Z" }, +] + +[[package]] +name = "arrow" +version = "1.4.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "python-dateutil" }, + { name = "tzdata" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b9/33/032cdc44182491aa708d06a68b62434140d8c50820a087fac7af37703357/arrow-1.4.0.tar.gz", hash = "sha256:ed0cc050e98001b8779e84d461b0098c4ac597e88704a655582b21d116e526d7", size = 152931, upload-time = "2025-10-18T17:46:46.761Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ed/c9/d7977eaacb9df673210491da99e6a247e93df98c715fc43fd136ce1d3d33/arrow-1.4.0-py3-none-any.whl", hash = "sha256:749f0769958ebdc79c173ff0b0670d59051a535fa26e8eba02953dc19eb43205", size = 68797, upload-time = "2025-10-18T17:46:45.663Z" }, +] + +[[package]] +name = "assignment-hai" +version = "0.1.0" +source = { virtual = "." } +dependencies = [ + { name = "fastapi" }, + { name = "flask" }, + { name = "grad-cam" }, + { name = "gradio" }, + { name = "jupyter" }, + { name = "lime" }, + { name = "pydantic" }, + { name = "roboflow" }, + { name = "scipy" }, + { name = "torch" }, + { name = "torchvision" }, +] + +[package.dev-dependencies] +dev = [ + { name = "ipykernel" }, +] + +[package.metadata] +requires-dist = [ + { name = "fastapi", specifier = "==0.115.8" }, + { name = "flask", specifier = ">=3.1.3" }, + { name = "grad-cam", specifier = ">=1.5.5" }, + { name = "gradio", specifier = "==5.16.1" }, + { name = "jupyter", specifier = ">=1.1.1" }, + { name = "lime", specifier = ">=0.2.0.1" }, + { name = "pydantic", specifier = "==2.10.6" }, + { name = "roboflow", specifier = ">=1.2.16" }, + { name = "scipy", specifier = ">=1.17.1" }, + { name = "torch", specifier = ">=2.10.0" }, + { name = "torchvision", specifier = ">=0.25.0" }, +] + +[package.metadata.requires-dev] +dev = [{ name = "ipykernel", specifier = ">=7.2.0" }] + +[[package]] +name = "asttokens" +version = "3.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/be/a5/8e3f9b6771b0b408517c82d97aed8f2036509bc247d46114925e32fe33f0/asttokens-3.0.1.tar.gz", hash = "sha256:71a4ee5de0bde6a31d64f6b13f2293ac190344478f081c3d1bccfcf5eacb0cb7", size = 62308, upload-time = "2025-11-15T16:43:48.578Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d2/39/e7eaf1799466a4aef85b6a4fe7bd175ad2b1c6345066aa33f1f58d4b18d0/asttokens-3.0.1-py3-none-any.whl", hash = "sha256:15a3ebc0f43c2d0a50eeafea25e19046c68398e487b9f1f5b517f7c0f40f976a", size = 27047, upload-time = "2025-11-15T16:43:16.109Z" }, +] + +[[package]] +name = "async-lru" +version = "2.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/05/8a/ca724066c32a53fa75f59e0f21aa822fdaa8a0dffa112d223634e3caabf9/async_lru-2.2.0.tar.gz", hash = "sha256:80abae2a237dbc6c60861d621619af39f0d920aea306de34cb992c879e01370c", size = 14654, upload-time = "2026-02-20T19:11:43.848Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/13/5c/af990f019b8dd11c5492a6371fe74a5b0276357370030b67254a87329944/async_lru-2.2.0-py3-none-any.whl", hash = "sha256:e2c1cf731eba202b59c5feedaef14ffd9d02ad0037fcda64938699f2c380eafe", size = 7890, upload-time = "2026-02-20T19:11:42.273Z" }, +] + +[[package]] +name = "attrs" +version = "25.4.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6b/5c/685e6633917e101e5dcb62b9dd76946cbb57c26e133bae9e0cd36033c0a9/attrs-25.4.0.tar.gz", hash = "sha256:16d5969b87f0859ef33a48b35d55ac1be6e42ae49d5e853b597db70c35c57e11", size = 934251, upload-time = "2025-10-06T13:54:44.725Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3a/2a/7cc015f5b9f5db42b7d48157e23356022889fc354a2813c15934b7cb5c0e/attrs-25.4.0-py3-none-any.whl", hash = "sha256:adcf7e2a1fb3b36ac48d97835bb6d8ade15b8dcce26aba8bf1d14847b57a3373", size = 67615, upload-time = "2025-10-06T13:54:43.17Z" }, +] + +[[package]] +name = "audioop-lts" +version = "0.2.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/38/53/946db57842a50b2da2e0c1e34bd37f36f5aadba1a929a3971c5d7841dbca/audioop_lts-0.2.2.tar.gz", hash = "sha256:64d0c62d88e67b98a1a5e71987b7aa7b5bcffc7dcee65b635823dbdd0a8dbbd0", size = 30686, upload-time = "2025-08-05T16:43:17.409Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/de/d4/94d277ca941de5a507b07f0b592f199c22454eeaec8f008a286b3fbbacd6/audioop_lts-0.2.2-cp313-abi3-macosx_10_13_universal2.whl", hash = "sha256:fd3d4602dc64914d462924a08c1a9816435a2155d74f325853c1f1ac3b2d9800", size = 46523, upload-time = "2025-08-05T16:42:20.836Z" }, + { url = "https://files.pythonhosted.org/packages/f8/5a/656d1c2da4b555920ce4177167bfeb8623d98765594af59702c8873f60ec/audioop_lts-0.2.2-cp313-abi3-macosx_10_13_x86_64.whl", hash = "sha256:550c114a8df0aafe9a05442a1162dfc8fec37e9af1d625ae6060fed6e756f303", size = 27455, upload-time = "2025-08-05T16:42:22.283Z" }, + { url = "https://files.pythonhosted.org/packages/1b/83/ea581e364ce7b0d41456fb79d6ee0ad482beda61faf0cab20cbd4c63a541/audioop_lts-0.2.2-cp313-abi3-macosx_11_0_arm64.whl", hash = "sha256:9a13dc409f2564de15dd68be65b462ba0dde01b19663720c68c1140c782d1d75", size = 26997, upload-time = "2025-08-05T16:42:23.849Z" }, + { url = "https://files.pythonhosted.org/packages/b8/3b/e8964210b5e216e5041593b7d33e97ee65967f17c282e8510d19c666dab4/audioop_lts-0.2.2-cp313-abi3-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:51c916108c56aa6e426ce611946f901badac950ee2ddaf302b7ed35d9958970d", size = 85844, upload-time = "2025-08-05T16:42:25.208Z" }, + { url = "https://files.pythonhosted.org/packages/c7/2e/0a1c52faf10d51def20531a59ce4c706cb7952323b11709e10de324d6493/audioop_lts-0.2.2-cp313-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:47eba38322370347b1c47024defbd36374a211e8dd5b0dcbce7b34fdb6f8847b", size = 85056, upload-time = "2025-08-05T16:42:26.559Z" }, + { url = "https://files.pythonhosted.org/packages/75/e8/cd95eef479656cb75ab05dfece8c1f8c395d17a7c651d88f8e6e291a63ab/audioop_lts-0.2.2-cp313-abi3-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ba7c3a7e5f23e215cb271516197030c32aef2e754252c4c70a50aaff7031a2c8", size = 93892, upload-time = "2025-08-05T16:42:27.902Z" }, + { url = "https://files.pythonhosted.org/packages/5c/1e/a0c42570b74f83efa5cca34905b3eef03f7ab09fe5637015df538a7f3345/audioop_lts-0.2.2-cp313-abi3-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:def246fe9e180626731b26e89816e79aae2276f825420a07b4a647abaa84becc", size = 96660, upload-time = "2025-08-05T16:42:28.9Z" }, + { url = "https://files.pythonhosted.org/packages/50/d5/8a0ae607ca07dbb34027bac8db805498ee7bfecc05fd2c148cc1ed7646e7/audioop_lts-0.2.2-cp313-abi3-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e160bf9df356d841bb6c180eeeea1834085464626dc1b68fa4e1d59070affdc3", size = 79143, upload-time = "2025-08-05T16:42:29.929Z" }, + { url = "https://files.pythonhosted.org/packages/12/17/0d28c46179e7910bfb0bb62760ccb33edb5de973052cb2230b662c14ca2e/audioop_lts-0.2.2-cp313-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:4b4cd51a57b698b2d06cb9993b7ac8dfe89a3b2878e96bc7948e9f19ff51dba6", size = 84313, upload-time = "2025-08-05T16:42:30.949Z" }, + { url = "https://files.pythonhosted.org/packages/84/ba/bd5d3806641564f2024e97ca98ea8f8811d4e01d9b9f9831474bc9e14f9e/audioop_lts-0.2.2-cp313-abi3-musllinux_1_2_ppc64le.whl", hash = "sha256:4a53aa7c16a60a6857e6b0b165261436396ef7293f8b5c9c828a3a203147ed4a", size = 93044, upload-time = "2025-08-05T16:42:31.959Z" }, + { url = "https://files.pythonhosted.org/packages/f9/5e/435ce8d5642f1f7679540d1e73c1c42d933331c0976eb397d1717d7f01a3/audioop_lts-0.2.2-cp313-abi3-musllinux_1_2_riscv64.whl", hash = "sha256:3fc38008969796f0f689f1453722a0f463da1b8a6fbee11987830bfbb664f623", size = 78766, upload-time = "2025-08-05T16:42:33.302Z" }, + { url = "https://files.pythonhosted.org/packages/ae/3b/b909e76b606cbfd53875693ec8c156e93e15a1366a012f0b7e4fb52d3c34/audioop_lts-0.2.2-cp313-abi3-musllinux_1_2_s390x.whl", hash = "sha256:15ab25dd3e620790f40e9ead897f91e79c0d3ce65fe193c8ed6c26cffdd24be7", size = 87640, upload-time = "2025-08-05T16:42:34.854Z" }, + { url = "https://files.pythonhosted.org/packages/30/e7/8f1603b4572d79b775f2140d7952f200f5e6c62904585d08a01f0a70393a/audioop_lts-0.2.2-cp313-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:03f061a1915538fd96272bac9551841859dbb2e3bf73ebe4a23ef043766f5449", size = 86052, upload-time = "2025-08-05T16:42:35.839Z" }, + { url = "https://files.pythonhosted.org/packages/b5/96/c37846df657ccdda62ba1ae2b6534fa90e2e1b1742ca8dcf8ebd38c53801/audioop_lts-0.2.2-cp313-abi3-win32.whl", hash = "sha256:3bcddaaf6cc5935a300a8387c99f7a7fbbe212a11568ec6cf6e4bc458c048636", size = 26185, upload-time = "2025-08-05T16:42:37.04Z" }, + { url = "https://files.pythonhosted.org/packages/34/a5/9d78fdb5b844a83da8a71226c7bdae7cc638861085fff7a1d707cb4823fa/audioop_lts-0.2.2-cp313-abi3-win_amd64.whl", hash = "sha256:a2c2a947fae7d1062ef08c4e369e0ba2086049a5e598fda41122535557012e9e", size = 30503, upload-time = "2025-08-05T16:42:38.427Z" }, + { url = "https://files.pythonhosted.org/packages/34/25/20d8fde083123e90c61b51afb547bb0ea7e77bab50d98c0ab243d02a0e43/audioop_lts-0.2.2-cp313-abi3-win_arm64.whl", hash = "sha256:5f93a5db13927a37d2d09637ccca4b2b6b48c19cd9eda7b17a2e9f77edee6a6f", size = 24173, upload-time = "2025-08-05T16:42:39.704Z" }, + { url = "https://files.pythonhosted.org/packages/58/a7/0a764f77b5c4ac58dc13c01a580f5d32ae8c74c92020b961556a43e26d02/audioop_lts-0.2.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:73f80bf4cd5d2ca7814da30a120de1f9408ee0619cc75da87d0641273d202a09", size = 47096, upload-time = "2025-08-05T16:42:40.684Z" }, + { url = "https://files.pythonhosted.org/packages/aa/ed/ebebedde1a18848b085ad0fa54b66ceb95f1f94a3fc04f1cd1b5ccb0ed42/audioop_lts-0.2.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:106753a83a25ee4d6f473f2be6b0966fc1c9af7e0017192f5531a3e7463dce58", size = 27748, upload-time = "2025-08-05T16:42:41.992Z" }, + { url = "https://files.pythonhosted.org/packages/cb/6e/11ca8c21af79f15dbb1c7f8017952ee8c810c438ce4e2b25638dfef2b02c/audioop_lts-0.2.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:fbdd522624141e40948ab3e8cdae6e04c748d78710e9f0f8d4dae2750831de19", size = 27329, upload-time = "2025-08-05T16:42:42.987Z" }, + { url = "https://files.pythonhosted.org/packages/84/52/0022f93d56d85eec5da6b9da6a958a1ef09e80c39f2cc0a590c6af81dcbb/audioop_lts-0.2.2-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:143fad0311e8209ece30a8dbddab3b65ab419cbe8c0dde6e8828da25999be911", size = 92407, upload-time = "2025-08-05T16:42:44.336Z" }, + { url = "https://files.pythonhosted.org/packages/87/1d/48a889855e67be8718adbc7a01f3c01d5743c325453a5e81cf3717664aad/audioop_lts-0.2.2-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:dfbbc74ec68a0fd08cfec1f4b5e8cca3d3cd7de5501b01c4b5d209995033cde9", size = 91811, upload-time = "2025-08-05T16:42:45.325Z" }, + { url = "https://files.pythonhosted.org/packages/98/a6/94b7213190e8077547ffae75e13ed05edc488653c85aa5c41472c297d295/audioop_lts-0.2.2-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:cfcac6aa6f42397471e4943e0feb2244549db5c5d01efcd02725b96af417f3fe", size = 100470, upload-time = "2025-08-05T16:42:46.468Z" }, + { url = "https://files.pythonhosted.org/packages/e9/e9/78450d7cb921ede0cfc33426d3a8023a3bda755883c95c868ee36db8d48d/audioop_lts-0.2.2-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:752d76472d9804ac60f0078c79cdae8b956f293177acd2316cd1e15149aee132", size = 103878, upload-time = "2025-08-05T16:42:47.576Z" }, + { url = "https://files.pythonhosted.org/packages/4f/e2/cd5439aad4f3e34ae1ee852025dc6aa8f67a82b97641e390bf7bd9891d3e/audioop_lts-0.2.2-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:83c381767e2cc10e93e40281a04852facc4cd9334550e0f392f72d1c0a9c5753", size = 84867, upload-time = "2025-08-05T16:42:49.003Z" }, + { url = "https://files.pythonhosted.org/packages/68/4b/9d853e9076c43ebba0d411e8d2aa19061083349ac695a7d082540bad64d0/audioop_lts-0.2.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:c0022283e9556e0f3643b7c3c03f05063ca72b3063291834cca43234f20c60bb", size = 90001, upload-time = "2025-08-05T16:42:50.038Z" }, + { url = "https://files.pythonhosted.org/packages/58/26/4bae7f9d2f116ed5593989d0e521d679b0d583973d203384679323d8fa85/audioop_lts-0.2.2-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:a2d4f1513d63c795e82948e1305f31a6d530626e5f9f2605408b300ae6095093", size = 99046, upload-time = "2025-08-05T16:42:51.111Z" }, + { url = "https://files.pythonhosted.org/packages/b2/67/a9f4fb3e250dda9e9046f8866e9fa7d52664f8985e445c6b4ad6dfb55641/audioop_lts-0.2.2-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:c9c8e68d8b4a56fda8c025e538e639f8c5953f5073886b596c93ec9b620055e7", size = 84788, upload-time = "2025-08-05T16:42:52.198Z" }, + { url = "https://files.pythonhosted.org/packages/70/f7/3de86562db0121956148bcb0fe5b506615e3bcf6e63c4357a612b910765a/audioop_lts-0.2.2-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:96f19de485a2925314f5020e85911fb447ff5fbef56e8c7c6927851b95533a1c", size = 94472, upload-time = "2025-08-05T16:42:53.59Z" }, + { url = "https://files.pythonhosted.org/packages/f1/32/fd772bf9078ae1001207d2df1eef3da05bea611a87dd0e8217989b2848fa/audioop_lts-0.2.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:e541c3ef484852ef36545f66209444c48b28661e864ccadb29daddb6a4b8e5f5", size = 92279, upload-time = "2025-08-05T16:42:54.632Z" }, + { url = "https://files.pythonhosted.org/packages/4f/41/affea7181592ab0ab560044632571a38edaf9130b84928177823fbf3176a/audioop_lts-0.2.2-cp313-cp313t-win32.whl", hash = "sha256:d5e73fa573e273e4f2e5ff96f9043858a5e9311e94ffefd88a3186a910c70917", size = 26568, upload-time = "2025-08-05T16:42:55.627Z" }, + { url = "https://files.pythonhosted.org/packages/28/2b/0372842877016641db8fc54d5c88596b542eec2f8f6c20a36fb6612bf9ee/audioop_lts-0.2.2-cp313-cp313t-win_amd64.whl", hash = "sha256:9191d68659eda01e448188f60364c7763a7ca6653ed3f87ebb165822153a8547", size = 30942, upload-time = "2025-08-05T16:42:56.674Z" }, + { url = "https://files.pythonhosted.org/packages/ee/ca/baf2b9cc7e96c179bb4a54f30fcd83e6ecb340031bde68f486403f943768/audioop_lts-0.2.2-cp313-cp313t-win_arm64.whl", hash = "sha256:c174e322bb5783c099aaf87faeb240c8d210686b04bd61dfd05a8e5a83d88969", size = 24603, upload-time = "2025-08-05T16:42:57.571Z" }, + { url = "https://files.pythonhosted.org/packages/5c/73/413b5a2804091e2c7d5def1d618e4837f1cb82464e230f827226278556b7/audioop_lts-0.2.2-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:f9ee9b52f5f857fbaf9d605a360884f034c92c1c23021fb90b2e39b8e64bede6", size = 47104, upload-time = "2025-08-05T16:42:58.518Z" }, + { url = "https://files.pythonhosted.org/packages/ae/8c/daa3308dc6593944410c2c68306a5e217f5c05b70a12e70228e7dd42dc5c/audioop_lts-0.2.2-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:49ee1a41738a23e98d98b937a0638357a2477bc99e61b0f768a8f654f45d9b7a", size = 27754, upload-time = "2025-08-05T16:43:00.132Z" }, + { url = "https://files.pythonhosted.org/packages/4e/86/c2e0f627168fcf61781a8f72cab06b228fe1da4b9fa4ab39cfb791b5836b/audioop_lts-0.2.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:5b00be98ccd0fc123dcfad31d50030d25fcf31488cde9e61692029cd7394733b", size = 27332, upload-time = "2025-08-05T16:43:01.666Z" }, + { url = "https://files.pythonhosted.org/packages/c7/bd/35dce665255434f54e5307de39e31912a6f902d4572da7c37582809de14f/audioop_lts-0.2.2-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:a6d2e0f9f7a69403e388894d4ca5ada5c47230716a03f2847cfc7bd1ecb589d6", size = 92396, upload-time = "2025-08-05T16:43:02.991Z" }, + { url = "https://files.pythonhosted.org/packages/2d/d2/deeb9f51def1437b3afa35aeb729d577c04bcd89394cb56f9239a9f50b6f/audioop_lts-0.2.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f9b0b8a03ef474f56d1a842af1a2e01398b8f7654009823c6d9e0ecff4d5cfbf", size = 91811, upload-time = "2025-08-05T16:43:04.096Z" }, + { url = "https://files.pythonhosted.org/packages/76/3b/09f8b35b227cee28cc8231e296a82759ed80c1a08e349811d69773c48426/audioop_lts-0.2.2-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:2b267b70747d82125f1a021506565bdc5609a2b24bcb4773c16d79d2bb260bbd", size = 100483, upload-time = "2025-08-05T16:43:05.085Z" }, + { url = "https://files.pythonhosted.org/packages/0b/15/05b48a935cf3b130c248bfdbdea71ce6437f5394ee8533e0edd7cfd93d5e/audioop_lts-0.2.2-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:0337d658f9b81f4cd0fdb1f47635070cc084871a3d4646d9de74fdf4e7c3d24a", size = 103885, upload-time = "2025-08-05T16:43:06.197Z" }, + { url = "https://files.pythonhosted.org/packages/83/80/186b7fce6d35b68d3d739f228dc31d60b3412105854edb975aa155a58339/audioop_lts-0.2.2-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:167d3b62586faef8b6b2275c3218796b12621a60e43f7e9d5845d627b9c9b80e", size = 84899, upload-time = "2025-08-05T16:43:07.291Z" }, + { url = "https://files.pythonhosted.org/packages/49/89/c78cc5ac6cb5828f17514fb12966e299c850bc885e80f8ad94e38d450886/audioop_lts-0.2.2-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:0d9385e96f9f6da847f4d571ce3cb15b5091140edf3db97276872647ce37efd7", size = 89998, upload-time = "2025-08-05T16:43:08.335Z" }, + { url = "https://files.pythonhosted.org/packages/4c/4b/6401888d0c010e586c2ca50fce4c903d70a6bb55928b16cfbdfd957a13da/audioop_lts-0.2.2-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:48159d96962674eccdca9a3df280e864e8ac75e40a577cc97c5c42667ffabfc5", size = 99046, upload-time = "2025-08-05T16:43:09.367Z" }, + { url = "https://files.pythonhosted.org/packages/de/f8/c874ca9bb447dae0e2ef2e231f6c4c2b0c39e31ae684d2420b0f9e97ee68/audioop_lts-0.2.2-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:8fefe5868cd082db1186f2837d64cfbfa78b548ea0d0543e9b28935ccce81ce9", size = 84843, upload-time = "2025-08-05T16:43:10.749Z" }, + { url = "https://files.pythonhosted.org/packages/3e/c0/0323e66f3daebc13fd46b36b30c3be47e3fc4257eae44f1e77eb828c703f/audioop_lts-0.2.2-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:58cf54380c3884fb49fdd37dfb7a772632b6701d28edd3e2904743c5e1773602", size = 94490, upload-time = "2025-08-05T16:43:12.131Z" }, + { url = "https://files.pythonhosted.org/packages/98/6b/acc7734ac02d95ab791c10c3f17ffa3584ccb9ac5c18fd771c638ed6d1f5/audioop_lts-0.2.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:088327f00488cdeed296edd9215ca159f3a5a5034741465789cad403fcf4bec0", size = 92297, upload-time = "2025-08-05T16:43:13.139Z" }, + { url = "https://files.pythonhosted.org/packages/13/c3/c3dc3f564ce6877ecd2a05f8d751b9b27a8c320c2533a98b0c86349778d0/audioop_lts-0.2.2-cp314-cp314t-win32.whl", hash = "sha256:068aa17a38b4e0e7de771c62c60bbca2455924b67a8814f3b0dee92b5820c0b3", size = 27331, upload-time = "2025-08-05T16:43:14.19Z" }, + { url = "https://files.pythonhosted.org/packages/72/bb/b4608537e9ffcb86449091939d52d24a055216a36a8bf66b936af8c3e7ac/audioop_lts-0.2.2-cp314-cp314t-win_amd64.whl", hash = "sha256:a5bf613e96f49712073de86f20dbdd4014ca18efd4d34ed18c75bd808337851b", size = 31697, upload-time = "2025-08-05T16:43:15.193Z" }, + { url = "https://files.pythonhosted.org/packages/f6/22/91616fe707a5c5510de2cac9b046a30defe7007ba8a0c04f9c08f27df312/audioop_lts-0.2.2-cp314-cp314t-win_arm64.whl", hash = "sha256:b492c3b040153e68b9fdaff5913305aaaba5bb433d8a7f73d5cf6a64ed3cc1dd", size = 25206, upload-time = "2025-08-05T16:43:16.444Z" }, +] + +[[package]] +name = "babel" +version = "2.18.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7d/b2/51899539b6ceeeb420d40ed3cd4b7a40519404f9baf3d4ac99dc413a834b/babel-2.18.0.tar.gz", hash = "sha256:b80b99a14bd085fcacfa15c9165f651fbb3406e66cc603abf11c5750937c992d", size = 9959554, upload-time = "2026-02-01T12:30:56.078Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/77/f5/21d2de20e8b8b0408f0681956ca2c69f1320a3848ac50e6e7f39c6159675/babel-2.18.0-py3-none-any.whl", hash = "sha256:e2b422b277c2b9a9630c1d7903c2a00d0830c409c59ac8cae9081c92f1aeba35", size = 10196845, upload-time = "2026-02-01T12:30:53.445Z" }, +] + +[[package]] +name = "beautifulsoup4" +version = "4.14.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "soupsieve" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c3/b0/1c6a16426d389813b48d95e26898aff79abbde42ad353958ad95cc8c9b21/beautifulsoup4-4.14.3.tar.gz", hash = "sha256:6292b1c5186d356bba669ef9f7f051757099565ad9ada5dd630bd9de5fa7fb86", size = 627737, upload-time = "2025-11-30T15:08:26.084Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1a/39/47f9197bdd44df24d67ac8893641e16f386c984a0619ef2ee4c51fbbc019/beautifulsoup4-4.14.3-py3-none-any.whl", hash = "sha256:0918bfe44902e6ad8d57732ba310582e98da931428d231a5ecb9e7c703a735bb", size = 107721, upload-time = "2025-11-30T15:08:24.087Z" }, +] + +[[package]] +name = "bleach" +version = "6.3.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "webencodings" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/07/18/3c8523962314be6bf4c8989c79ad9531c825210dd13a8669f6b84336e8bd/bleach-6.3.0.tar.gz", hash = "sha256:6f3b91b1c0a02bb9a78b5a454c92506aa0fdf197e1d5e114d2e00c6f64306d22", size = 203533, upload-time = "2025-10-27T17:57:39.211Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cd/3a/577b549de0cc09d95f11087ee63c739bba856cd3952697eec4c4bb91350a/bleach-6.3.0-py3-none-any.whl", hash = "sha256:fe10ec77c93ddf3d13a73b035abaac7a9f5e436513864ccdad516693213c65d6", size = 164437, upload-time = "2025-10-27T17:57:37.538Z" }, +] + +[package.optional-dependencies] +css = [ + { name = "tinycss2" }, +] + +[[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, upload-time = "2024-11-08T17:25:47.436Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/10/cb/f2ad4230dc2eb1a74edf38f1a38b9b52277f75bef262d8908e60d957e13c/blinker-1.9.0-py3-none-any.whl", hash = "sha256:ba0efaa9080b619ff2f3459d1d500c57bddea4a6b424b60a91141db6fd2f08bc", size = 8458, upload-time = "2024-11-08T17:25:46.184Z" }, +] + +[[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, upload-time = "2026-02-25T02:54:17.342Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9a/3c/c17fb3ca2d9c3acff52e30b309f538586f9f5b9c9cf454f3845fc9af4881/certifi-2026.2.25-py3-none-any.whl", hash = "sha256:027692e4402ad994f1c42e52a4997a9763c646b73e4096e4d5d6db8af1d6f0fa", size = 153684, upload-time = "2026-02-25T02:54:15.766Z" }, +] + +[[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, upload-time = "2025-09-08T23:24:04.541Z" } +wheels = [ + { 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, upload-time = "2025-09-08T23:23:00.879Z" }, + { 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, upload-time = "2025-09-08T23:23:02.231Z" }, + { 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, upload-time = "2025-09-08T23:23:03.472Z" }, + { 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, upload-time = "2025-09-08T23:23:04.792Z" }, + { 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, upload-time = "2025-09-08T23:23:06.127Z" }, + { 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, upload-time = "2025-09-08T23:23:07.753Z" }, + { 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, upload-time = "2025-09-08T23:23:09.648Z" }, + { 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, upload-time = "2025-09-08T23:23:10.928Z" }, + { 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, upload-time = "2025-09-08T23:23:12.42Z" }, + { url = "https://files.pythonhosted.org/packages/eb/6d/bf9bda840d5f1dfdbf0feca87fbdb64a918a69bca42cfa0ba7b137c48cb8/cffi-2.0.0-cp313-cp313-win32.whl", hash = "sha256:74a03b9698e198d47562765773b4a8309919089150a0bb17d829ad7b44b60d27", size = 172909, upload-time = "2025-09-08T23:23:14.32Z" }, + { url = "https://files.pythonhosted.org/packages/37/18/6519e1ee6f5a1e579e04b9ddb6f1676c17368a7aba48299c3759bbc3c8b3/cffi-2.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:19f705ada2530c1167abacb171925dd886168931e0a7b78f5bffcae5c6b5be75", size = 183402, upload-time = "2025-09-08T23:23:15.535Z" }, + { url = "https://files.pythonhosted.org/packages/cb/0e/02ceeec9a7d6ee63bb596121c2c8e9b3a9e150936f4fbef6ca1943e6137c/cffi-2.0.0-cp313-cp313-win_arm64.whl", hash = "sha256:256f80b80ca3853f90c21b23ee78cd008713787b1b1e93eae9f3d6a7134abd91", size = 177780, upload-time = "2025-09-08T23:23:16.761Z" }, + { 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, upload-time = "2025-09-08T23:23:18.087Z" }, + { 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, upload-time = "2025-09-08T23:23:19.622Z" }, + { 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, upload-time = "2025-09-08T23:23:20.853Z" }, + { 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, upload-time = "2025-09-08T23:23:22.08Z" }, + { 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, upload-time = "2025-09-08T23:23:23.314Z" }, + { 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, upload-time = "2025-09-08T23:23:24.541Z" }, + { 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, upload-time = "2025-09-08T23:23:26.143Z" }, + { 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, upload-time = "2025-09-08T23:23:27.873Z" }, + { url = "https://files.pythonhosted.org/packages/3e/aa/df335faa45b395396fcbc03de2dfcab242cd61a9900e914fe682a59170b1/cffi-2.0.0-cp314-cp314-win32.whl", hash = "sha256:087067fa8953339c723661eda6b54bc98c5625757ea62e95eb4898ad5e776e9f", size = 175328, upload-time = "2025-09-08T23:23:44.61Z" }, + { url = "https://files.pythonhosted.org/packages/bb/92/882c2d30831744296ce713f0feb4c1cd30f346ef747b530b5318715cc367/cffi-2.0.0-cp314-cp314-win_amd64.whl", hash = "sha256:203a48d1fb583fc7d78a4c6655692963b860a417c0528492a6bc21f1aaefab25", size = 185650, upload-time = "2025-09-08T23:23:45.848Z" }, + { url = "https://files.pythonhosted.org/packages/9f/2c/98ece204b9d35a7366b5b2c6539c350313ca13932143e79dc133ba757104/cffi-2.0.0-cp314-cp314-win_arm64.whl", hash = "sha256:dbd5c7a25a7cb98f5ca55d258b103a2054f859a46ae11aaf23134f9cc0d356ad", size = 180687, upload-time = "2025-09-08T23:23:47.105Z" }, + { 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, upload-time = "2025-09-08T23:23:29.347Z" }, + { 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, upload-time = "2025-09-08T23:23:30.63Z" }, + { 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, upload-time = "2025-09-08T23:23:31.91Z" }, + { 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, upload-time = "2025-09-08T23:23:33.214Z" }, + { 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, upload-time = "2025-09-08T23:23:34.495Z" }, + { 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, upload-time = "2025-09-08T23:23:36.096Z" }, + { 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, upload-time = "2025-09-08T23:23:37.328Z" }, + { 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, upload-time = "2025-09-08T23:23:38.945Z" }, + { url = "https://files.pythonhosted.org/packages/a0/1d/ec1a60bd1a10daa292d3cd6bb0b359a81607154fb8165f3ec95fe003b85c/cffi-2.0.0-cp314-cp314t-win32.whl", hash = "sha256:1fc9ea04857caf665289b7a75923f2c6ed559b8298a1b8c49e59f7dd95c8481e", size = 180487, upload-time = "2025-09-08T23:23:40.423Z" }, + { url = "https://files.pythonhosted.org/packages/bf/41/4c1168c74fac325c0c8156f04b6749c8b6a8f405bbf91413ba088359f60d/cffi-2.0.0-cp314-cp314t-win_amd64.whl", hash = "sha256:d68b6cef7827e8641e8ef16f4494edda8b36104d79773a334beaa1e3521430f6", size = 191726, upload-time = "2025-09-08T23:23:41.742Z" }, + { url = "https://files.pythonhosted.org/packages/ae/3a/dbeec9d1ee0844c679f6bb5d6ad4e9f198b1224f4e7a32825f47f6192b0c/cffi-2.0.0-cp314-cp314t-win_arm64.whl", hash = "sha256:0a1527a803f0a659de1af2e1fd700213caba79377e27e4693648c2923da066f9", size = 184195, upload-time = "2025-09-08T23:23:43.004Z" }, +] + +[[package]] +name = "charset-normalizer" +version = "3.4.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/13/69/33ddede1939fdd074bce5434295f38fae7136463422fe4fd3e0e89b98062/charset_normalizer-3.4.4.tar.gz", hash = "sha256:94537985111c35f28720e43603b8e7b43a6ecfb2ce1d3058bbe955b73404e21a", size = 129418, upload-time = "2025-10-14T04:42:32.879Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/97/45/4b3a1239bbacd321068ea6e7ac28875b03ab8bc0aa0966452db17cd36714/charset_normalizer-3.4.4-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:e1f185f86a6f3403aa2420e815904c67b2f9ebc443f045edd0de921108345794", size = 208091, upload-time = "2025-10-14T04:41:13.346Z" }, + { url = "https://files.pythonhosted.org/packages/7d/62/73a6d7450829655a35bb88a88fca7d736f9882a27eacdca2c6d505b57e2e/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b39f987ae8ccdf0d2642338faf2abb1862340facc796048b604ef14919e55ed", size = 147936, upload-time = "2025-10-14T04:41:14.461Z" }, + { url = "https://files.pythonhosted.org/packages/89/c5/adb8c8b3d6625bef6d88b251bbb0d95f8205831b987631ab0c8bb5d937c2/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3162d5d8ce1bb98dd51af660f2121c55d0fa541b46dff7bb9b9f86ea1d87de72", size = 144180, upload-time = "2025-10-14T04:41:15.588Z" }, + { url = "https://files.pythonhosted.org/packages/91/ed/9706e4070682d1cc219050b6048bfd293ccf67b3d4f5a4f39207453d4b99/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:81d5eb2a312700f4ecaa977a8235b634ce853200e828fbadf3a9c50bab278328", size = 161346, upload-time = "2025-10-14T04:41:16.738Z" }, + { url = "https://files.pythonhosted.org/packages/d5/0d/031f0d95e4972901a2f6f09ef055751805ff541511dc1252ba3ca1f80cf5/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5bd2293095d766545ec1a8f612559f6b40abc0eb18bb2f5d1171872d34036ede", size = 158874, upload-time = "2025-10-14T04:41:17.923Z" }, + { url = "https://files.pythonhosted.org/packages/f5/83/6ab5883f57c9c801ce5e5677242328aa45592be8a00644310a008d04f922/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a8a8b89589086a25749f471e6a900d3f662d1d3b6e2e59dcecf787b1cc3a1894", size = 153076, upload-time = "2025-10-14T04:41:19.106Z" }, + { url = "https://files.pythonhosted.org/packages/75/1e/5ff781ddf5260e387d6419959ee89ef13878229732732ee73cdae01800f2/charset_normalizer-3.4.4-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:bc7637e2f80d8530ee4a78e878bce464f70087ce73cf7c1caf142416923b98f1", size = 150601, upload-time = "2025-10-14T04:41:20.245Z" }, + { url = "https://files.pythonhosted.org/packages/d7/57/71be810965493d3510a6ca79b90c19e48696fb1ff964da319334b12677f0/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f8bf04158c6b607d747e93949aa60618b61312fe647a6369f88ce2ff16043490", size = 150376, upload-time = "2025-10-14T04:41:21.398Z" }, + { url = "https://files.pythonhosted.org/packages/e5/d5/c3d057a78c181d007014feb7e9f2e65905a6c4ef182c0ddf0de2924edd65/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:554af85e960429cf30784dd47447d5125aaa3b99a6f0683589dbd27e2f45da44", size = 144825, upload-time = "2025-10-14T04:41:22.583Z" }, + { url = "https://files.pythonhosted.org/packages/e6/8c/d0406294828d4976f275ffbe66f00266c4b3136b7506941d87c00cab5272/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:74018750915ee7ad843a774364e13a3db91682f26142baddf775342c3f5b1133", size = 162583, upload-time = "2025-10-14T04:41:23.754Z" }, + { url = "https://files.pythonhosted.org/packages/d7/24/e2aa1f18c8f15c4c0e932d9287b8609dd30ad56dbe41d926bd846e22fb8d/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:c0463276121fdee9c49b98908b3a89c39be45d86d1dbaa22957e38f6321d4ce3", size = 150366, upload-time = "2025-10-14T04:41:25.27Z" }, + { url = "https://files.pythonhosted.org/packages/e4/5b/1e6160c7739aad1e2df054300cc618b06bf784a7a164b0f238360721ab86/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:362d61fd13843997c1c446760ef36f240cf81d3ebf74ac62652aebaf7838561e", size = 160300, upload-time = "2025-10-14T04:41:26.725Z" }, + { url = "https://files.pythonhosted.org/packages/7a/10/f882167cd207fbdd743e55534d5d9620e095089d176d55cb22d5322f2afd/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9a26f18905b8dd5d685d6d07b0cdf98a79f3c7a918906af7cc143ea2e164c8bc", size = 154465, upload-time = "2025-10-14T04:41:28.322Z" }, + { url = "https://files.pythonhosted.org/packages/89/66/c7a9e1b7429be72123441bfdbaf2bc13faab3f90b933f664db506dea5915/charset_normalizer-3.4.4-cp313-cp313-win32.whl", hash = "sha256:9b35f4c90079ff2e2edc5b26c0c77925e5d2d255c42c74fdb70fb49b172726ac", size = 99404, upload-time = "2025-10-14T04:41:29.95Z" }, + { url = "https://files.pythonhosted.org/packages/c4/26/b9924fa27db384bdcd97ab83b4f0a8058d96ad9626ead570674d5e737d90/charset_normalizer-3.4.4-cp313-cp313-win_amd64.whl", hash = "sha256:b435cba5f4f750aa6c0a0d92c541fb79f69a387c91e61f1795227e4ed9cece14", size = 107092, upload-time = "2025-10-14T04:41:31.188Z" }, + { url = "https://files.pythonhosted.org/packages/af/8f/3ed4bfa0c0c72a7ca17f0380cd9e4dd842b09f664e780c13cff1dcf2ef1b/charset_normalizer-3.4.4-cp313-cp313-win_arm64.whl", hash = "sha256:542d2cee80be6f80247095cc36c418f7bddd14f4a6de45af91dfad36d817bba2", size = 100408, upload-time = "2025-10-14T04:41:32.624Z" }, + { url = "https://files.pythonhosted.org/packages/2a/35/7051599bd493e62411d6ede36fd5af83a38f37c4767b92884df7301db25d/charset_normalizer-3.4.4-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:da3326d9e65ef63a817ecbcc0df6e94463713b754fe293eaa03da99befb9a5bd", size = 207746, upload-time = "2025-10-14T04:41:33.773Z" }, + { url = "https://files.pythonhosted.org/packages/10/9a/97c8d48ef10d6cd4fcead2415523221624bf58bcf68a802721a6bc807c8f/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8af65f14dc14a79b924524b1e7fffe304517b2bff5a58bf64f30b98bbc5079eb", size = 147889, upload-time = "2025-10-14T04:41:34.897Z" }, + { url = "https://files.pythonhosted.org/packages/10/bf/979224a919a1b606c82bd2c5fa49b5c6d5727aa47b4312bb27b1734f53cd/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:74664978bb272435107de04e36db5a9735e78232b85b77d45cfb38f758efd33e", size = 143641, upload-time = "2025-10-14T04:41:36.116Z" }, + { url = "https://files.pythonhosted.org/packages/ba/33/0ad65587441fc730dc7bd90e9716b30b4702dc7b617e6ba4997dc8651495/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:752944c7ffbfdd10c074dc58ec2d5a8a4cd9493b314d367c14d24c17684ddd14", size = 160779, upload-time = "2025-10-14T04:41:37.229Z" }, + { url = "https://files.pythonhosted.org/packages/67/ed/331d6b249259ee71ddea93f6f2f0a56cfebd46938bde6fcc6f7b9a3d0e09/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d1f13550535ad8cff21b8d757a3257963e951d96e20ec82ab44bc64aeb62a191", size = 159035, upload-time = "2025-10-14T04:41:38.368Z" }, + { url = "https://files.pythonhosted.org/packages/67/ff/f6b948ca32e4f2a4576aa129d8bed61f2e0543bf9f5f2b7fc3758ed005c9/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ecaae4149d99b1c9e7b88bb03e3221956f68fd6d50be2ef061b2381b61d20838", size = 152542, upload-time = "2025-10-14T04:41:39.862Z" }, + { url = "https://files.pythonhosted.org/packages/16/85/276033dcbcc369eb176594de22728541a925b2632f9716428c851b149e83/charset_normalizer-3.4.4-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:cb6254dc36b47a990e59e1068afacdcd02958bdcce30bb50cc1700a8b9d624a6", size = 149524, upload-time = "2025-10-14T04:41:41.319Z" }, + { url = "https://files.pythonhosted.org/packages/9e/f2/6a2a1f722b6aba37050e626530a46a68f74e63683947a8acff92569f979a/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:c8ae8a0f02f57a6e61203a31428fa1d677cbe50c93622b4149d5c0f319c1d19e", size = 150395, upload-time = "2025-10-14T04:41:42.539Z" }, + { url = "https://files.pythonhosted.org/packages/60/bb/2186cb2f2bbaea6338cad15ce23a67f9b0672929744381e28b0592676824/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:47cc91b2f4dd2833fddaedd2893006b0106129d4b94fdb6af1f4ce5a9965577c", size = 143680, upload-time = "2025-10-14T04:41:43.661Z" }, + { url = "https://files.pythonhosted.org/packages/7d/a5/bf6f13b772fbb2a90360eb620d52ed8f796f3c5caee8398c3b2eb7b1c60d/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:82004af6c302b5d3ab2cfc4cc5f29db16123b1a8417f2e25f9066f91d4411090", size = 162045, upload-time = "2025-10-14T04:41:44.821Z" }, + { url = "https://files.pythonhosted.org/packages/df/c5/d1be898bf0dc3ef9030c3825e5d3b83f2c528d207d246cbabe245966808d/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:2b7d8f6c26245217bd2ad053761201e9f9680f8ce52f0fcd8d0755aeae5b2152", size = 149687, upload-time = "2025-10-14T04:41:46.442Z" }, + { url = "https://files.pythonhosted.org/packages/a5/42/90c1f7b9341eef50c8a1cb3f098ac43b0508413f33affd762855f67a410e/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:799a7a5e4fb2d5898c60b640fd4981d6a25f1c11790935a44ce38c54e985f828", size = 160014, upload-time = "2025-10-14T04:41:47.631Z" }, + { url = "https://files.pythonhosted.org/packages/76/be/4d3ee471e8145d12795ab655ece37baed0929462a86e72372fd25859047c/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:99ae2cffebb06e6c22bdc25801d7b30f503cc87dbd283479e7b606f70aff57ec", size = 154044, upload-time = "2025-10-14T04:41:48.81Z" }, + { url = "https://files.pythonhosted.org/packages/b0/6f/8f7af07237c34a1defe7defc565a9bc1807762f672c0fde711a4b22bf9c0/charset_normalizer-3.4.4-cp314-cp314-win32.whl", hash = "sha256:f9d332f8c2a2fcbffe1378594431458ddbef721c1769d78e2cbc06280d8155f9", size = 99940, upload-time = "2025-10-14T04:41:49.946Z" }, + { url = "https://files.pythonhosted.org/packages/4b/51/8ade005e5ca5b0d80fb4aff72a3775b325bdc3d27408c8113811a7cbe640/charset_normalizer-3.4.4-cp314-cp314-win_amd64.whl", hash = "sha256:8a6562c3700cce886c5be75ade4a5db4214fda19fede41d9792d100288d8f94c", size = 107104, upload-time = "2025-10-14T04:41:51.051Z" }, + { url = "https://files.pythonhosted.org/packages/da/5f/6b8f83a55bb8278772c5ae54a577f3099025f9ade59d0136ac24a0df4bde/charset_normalizer-3.4.4-cp314-cp314-win_arm64.whl", hash = "sha256:de00632ca48df9daf77a2c65a484531649261ec9f25489917f09e455cb09ddb2", size = 100743, upload-time = "2025-10-14T04:41:52.122Z" }, + { url = "https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl", hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f", size = 53402, upload-time = "2025-10-14T04:42:31.76Z" }, +] + +[[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, upload-time = "2025-11-15T20:45:42.706Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/98/78/01c019cdb5d6498122777c1a43056ebb3ebfeef2076d9d026bfe15583b2b/click-8.3.1-py3-none-any.whl", hash = "sha256:981153a64e25f12d547d3426c367a4857371575ee7ad18df2a6183ab0545b2a6", size = 108274, upload-time = "2025-11-15T20:45:41.139Z" }, +] + +[[package]] +name = "colorama" +version = "0.4.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload-time = "2022-10-25T02:36:22.414Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" }, +] + +[[package]] +name = "comm" +version = "0.2.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/4c/13/7d740c5849255756bc17888787313b61fd38a0a8304fc4f073dfc46122aa/comm-0.2.3.tar.gz", hash = "sha256:2dc8048c10962d55d7ad693be1e7045d891b7ce8d999c97963a5e3e99c055971", size = 6319, upload-time = "2025-07-25T14:02:04.452Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/60/97/891a0971e1e4a8c5d2b20bbe0e524dc04548d2307fee33cdeba148fd4fc7/comm-0.2.3-py3-none-any.whl", hash = "sha256:c615d91d75f7f04f095b30d1c1711babd43bdc6419c1be9886a85f2f4e489417", size = 7294, upload-time = "2025-07-25T14:02:02.896Z" }, +] + +[[package]] +name = "contourpy" +version = "1.3.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/58/01/1253e6698a07380cd31a736d248a3f2a50a7c88779a1813da27503cadc2a/contourpy-1.3.3.tar.gz", hash = "sha256:083e12155b210502d0bca491432bb04d56dc3432f95a979b429f2848c3dbe880", size = 13466174, upload-time = "2025-07-26T12:03:12.549Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/68/35/0167aad910bbdb9599272bd96d01a9ec6852f36b9455cf2ca67bd4cc2d23/contourpy-1.3.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:177fb367556747a686509d6fef71d221a4b198a3905fe824430e5ea0fda54eb5", size = 293257, upload-time = "2025-07-26T12:01:39.367Z" }, + { url = "https://files.pythonhosted.org/packages/96/e4/7adcd9c8362745b2210728f209bfbcf7d91ba868a2c5f40d8b58f54c509b/contourpy-1.3.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d002b6f00d73d69333dac9d0b8d5e84d9724ff9ef044fd63c5986e62b7c9e1b1", size = 274034, upload-time = "2025-07-26T12:01:40.645Z" }, + { url = "https://files.pythonhosted.org/packages/73/23/90e31ceeed1de63058a02cb04b12f2de4b40e3bef5e082a7c18d9c8ae281/contourpy-1.3.3-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:348ac1f5d4f1d66d3322420f01d42e43122f43616e0f194fc1c9f5d830c5b286", size = 334672, upload-time = "2025-07-26T12:01:41.942Z" }, + { url = "https://files.pythonhosted.org/packages/ed/93/b43d8acbe67392e659e1d984700e79eb67e2acb2bd7f62012b583a7f1b55/contourpy-1.3.3-cp313-cp313-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:655456777ff65c2c548b7c454af9c6f33f16c8884f11083244b5819cc214f1b5", size = 381234, upload-time = "2025-07-26T12:01:43.499Z" }, + { url = "https://files.pythonhosted.org/packages/46/3b/bec82a3ea06f66711520f75a40c8fc0b113b2a75edb36aa633eb11c4f50f/contourpy-1.3.3-cp313-cp313-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:644a6853d15b2512d67881586bd03f462c7ab755db95f16f14d7e238f2852c67", size = 385169, upload-time = "2025-07-26T12:01:45.219Z" }, + { url = "https://files.pythonhosted.org/packages/4b/32/e0f13a1c5b0f8572d0ec6ae2f6c677b7991fafd95da523159c19eff0696a/contourpy-1.3.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4debd64f124ca62069f313a9cb86656ff087786016d76927ae2cf37846b006c9", size = 362859, upload-time = "2025-07-26T12:01:46.519Z" }, + { url = "https://files.pythonhosted.org/packages/33/71/e2a7945b7de4e58af42d708a219f3b2f4cff7386e6b6ab0a0fa0033c49a9/contourpy-1.3.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a15459b0f4615b00bbd1e91f1b9e19b7e63aea7483d03d804186f278c0af2659", size = 1332062, upload-time = "2025-07-26T12:01:48.964Z" }, + { url = "https://files.pythonhosted.org/packages/12/fc/4e87ac754220ccc0e807284f88e943d6d43b43843614f0a8afa469801db0/contourpy-1.3.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ca0fdcd73925568ca027e0b17ab07aad764be4706d0a925b89227e447d9737b7", size = 1403932, upload-time = "2025-07-26T12:01:51.979Z" }, + { url = "https://files.pythonhosted.org/packages/a6/2e/adc197a37443f934594112222ac1aa7dc9a98faf9c3842884df9a9d8751d/contourpy-1.3.3-cp313-cp313-win32.whl", hash = "sha256:b20c7c9a3bf701366556e1b1984ed2d0cedf999903c51311417cf5f591d8c78d", size = 185024, upload-time = "2025-07-26T12:01:53.245Z" }, + { url = "https://files.pythonhosted.org/packages/18/0b/0098c214843213759692cc638fce7de5c289200a830e5035d1791d7a2338/contourpy-1.3.3-cp313-cp313-win_amd64.whl", hash = "sha256:1cadd8b8969f060ba45ed7c1b714fe69185812ab43bd6b86a9123fe8f99c3263", size = 226578, upload-time = "2025-07-26T12:01:54.422Z" }, + { url = "https://files.pythonhosted.org/packages/8a/9a/2f6024a0c5995243cd63afdeb3651c984f0d2bc727fd98066d40e141ad73/contourpy-1.3.3-cp313-cp313-win_arm64.whl", hash = "sha256:fd914713266421b7536de2bfa8181aa8c699432b6763a0ea64195ebe28bff6a9", size = 193524, upload-time = "2025-07-26T12:01:55.73Z" }, + { url = "https://files.pythonhosted.org/packages/c0/b3/f8a1a86bd3298513f500e5b1f5fd92b69896449f6cab6a146a5d52715479/contourpy-1.3.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:88df9880d507169449d434c293467418b9f6cbe82edd19284aa0409e7fdb933d", size = 306730, upload-time = "2025-07-26T12:01:57.051Z" }, + { url = "https://files.pythonhosted.org/packages/3f/11/4780db94ae62fc0c2053909b65dc3246bd7cecfc4f8a20d957ad43aa4ad8/contourpy-1.3.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:d06bb1f751ba5d417047db62bca3c8fde202b8c11fb50742ab3ab962c81e8216", size = 287897, upload-time = "2025-07-26T12:01:58.663Z" }, + { url = "https://files.pythonhosted.org/packages/ae/15/e59f5f3ffdd6f3d4daa3e47114c53daabcb18574a26c21f03dc9e4e42ff0/contourpy-1.3.3-cp313-cp313t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e4e6b05a45525357e382909a4c1600444e2a45b4795163d3b22669285591c1ae", size = 326751, upload-time = "2025-07-26T12:02:00.343Z" }, + { url = "https://files.pythonhosted.org/packages/0f/81/03b45cfad088e4770b1dcf72ea78d3802d04200009fb364d18a493857210/contourpy-1.3.3-cp313-cp313t-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ab3074b48c4e2cf1a960e6bbeb7f04566bf36b1861d5c9d4d8ac04b82e38ba20", size = 375486, upload-time = "2025-07-26T12:02:02.128Z" }, + { url = "https://files.pythonhosted.org/packages/0c/ba/49923366492ffbdd4486e970d421b289a670ae8cf539c1ea9a09822b371a/contourpy-1.3.3-cp313-cp313t-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:6c3d53c796f8647d6deb1abe867daeb66dcc8a97e8455efa729516b997b8ed99", size = 388106, upload-time = "2025-07-26T12:02:03.615Z" }, + { url = "https://files.pythonhosted.org/packages/9f/52/5b00ea89525f8f143651f9f03a0df371d3cbd2fccd21ca9b768c7a6500c2/contourpy-1.3.3-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:50ed930df7289ff2a8d7afeb9603f8289e5704755c7e5c3bbd929c90c817164b", size = 352548, upload-time = "2025-07-26T12:02:05.165Z" }, + { url = "https://files.pythonhosted.org/packages/32/1d/a209ec1a3a3452d490f6b14dd92e72280c99ae3d1e73da74f8277d4ee08f/contourpy-1.3.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:4feffb6537d64b84877da813a5c30f1422ea5739566abf0bd18065ac040e120a", size = 1322297, upload-time = "2025-07-26T12:02:07.379Z" }, + { url = "https://files.pythonhosted.org/packages/bc/9e/46f0e8ebdd884ca0e8877e46a3f4e633f6c9c8c4f3f6e72be3fe075994aa/contourpy-1.3.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:2b7e9480ffe2b0cd2e787e4df64270e3a0440d9db8dc823312e2c940c167df7e", size = 1391023, upload-time = "2025-07-26T12:02:10.171Z" }, + { url = "https://files.pythonhosted.org/packages/b9/70/f308384a3ae9cd2209e0849f33c913f658d3326900d0ff5d378d6a1422d2/contourpy-1.3.3-cp313-cp313t-win32.whl", hash = "sha256:283edd842a01e3dcd435b1c5116798d661378d83d36d337b8dde1d16a5fc9ba3", size = 196157, upload-time = "2025-07-26T12:02:11.488Z" }, + { url = "https://files.pythonhosted.org/packages/b2/dd/880f890a6663b84d9e34a6f88cded89d78f0091e0045a284427cb6b18521/contourpy-1.3.3-cp313-cp313t-win_amd64.whl", hash = "sha256:87acf5963fc2b34825e5b6b048f40e3635dd547f590b04d2ab317c2619ef7ae8", size = 240570, upload-time = "2025-07-26T12:02:12.754Z" }, + { url = "https://files.pythonhosted.org/packages/80/99/2adc7d8ffead633234817ef8e9a87115c8a11927a94478f6bb3d3f4d4f7d/contourpy-1.3.3-cp313-cp313t-win_arm64.whl", hash = "sha256:3c30273eb2a55024ff31ba7d052dde990d7d8e5450f4bbb6e913558b3d6c2301", size = 199713, upload-time = "2025-07-26T12:02:14.4Z" }, + { url = "https://files.pythonhosted.org/packages/72/8b/4546f3ab60f78c514ffb7d01a0bd743f90de36f0019d1be84d0a708a580a/contourpy-1.3.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:fde6c716d51c04b1c25d0b90364d0be954624a0ee9d60e23e850e8d48353d07a", size = 292189, upload-time = "2025-07-26T12:02:16.095Z" }, + { url = "https://files.pythonhosted.org/packages/fd/e1/3542a9cb596cadd76fcef413f19c79216e002623158befe6daa03dbfa88c/contourpy-1.3.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:cbedb772ed74ff5be440fa8eee9bd49f64f6e3fc09436d9c7d8f1c287b121d77", size = 273251, upload-time = "2025-07-26T12:02:17.524Z" }, + { url = "https://files.pythonhosted.org/packages/b1/71/f93e1e9471d189f79d0ce2497007731c1e6bf9ef6d1d61b911430c3db4e5/contourpy-1.3.3-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:22e9b1bd7a9b1d652cd77388465dc358dafcd2e217d35552424aa4f996f524f5", size = 335810, upload-time = "2025-07-26T12:02:18.9Z" }, + { url = "https://files.pythonhosted.org/packages/91/f9/e35f4c1c93f9275d4e38681a80506b5510e9327350c51f8d4a5a724d178c/contourpy-1.3.3-cp314-cp314-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a22738912262aa3e254e4f3cb079a95a67132fc5a063890e224393596902f5a4", size = 382871, upload-time = "2025-07-26T12:02:20.418Z" }, + { url = "https://files.pythonhosted.org/packages/b5/71/47b512f936f66a0a900d81c396a7e60d73419868fba959c61efed7a8ab46/contourpy-1.3.3-cp314-cp314-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:afe5a512f31ee6bd7d0dda52ec9864c984ca3d66664444f2d72e0dc4eb832e36", size = 386264, upload-time = "2025-07-26T12:02:21.916Z" }, + { url = "https://files.pythonhosted.org/packages/04/5f/9ff93450ba96b09c7c2b3f81c94de31c89f92292f1380261bd7195bea4ea/contourpy-1.3.3-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f64836de09927cba6f79dcd00fdd7d5329f3fccc633468507079c829ca4db4e3", size = 363819, upload-time = "2025-07-26T12:02:23.759Z" }, + { url = "https://files.pythonhosted.org/packages/3e/a6/0b185d4cc480ee494945cde102cb0149ae830b5fa17bf855b95f2e70ad13/contourpy-1.3.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:1fd43c3be4c8e5fd6e4f2baeae35ae18176cf2e5cced681cca908addf1cdd53b", size = 1333650, upload-time = "2025-07-26T12:02:26.181Z" }, + { url = "https://files.pythonhosted.org/packages/43/d7/afdc95580ca56f30fbcd3060250f66cedbde69b4547028863abd8aa3b47e/contourpy-1.3.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:6afc576f7b33cf00996e5c1102dc2a8f7cc89e39c0b55df93a0b78c1bd992b36", size = 1404833, upload-time = "2025-07-26T12:02:28.782Z" }, + { url = "https://files.pythonhosted.org/packages/e2/e2/366af18a6d386f41132a48f033cbd2102e9b0cf6345d35ff0826cd984566/contourpy-1.3.3-cp314-cp314-win32.whl", hash = "sha256:66c8a43a4f7b8df8b71ee1840e4211a3c8d93b214b213f590e18a1beca458f7d", size = 189692, upload-time = "2025-07-26T12:02:30.128Z" }, + { url = "https://files.pythonhosted.org/packages/7d/c2/57f54b03d0f22d4044b8afb9ca0e184f8b1afd57b4f735c2fa70883dc601/contourpy-1.3.3-cp314-cp314-win_amd64.whl", hash = "sha256:cf9022ef053f2694e31d630feaacb21ea24224be1c3ad0520b13d844274614fd", size = 232424, upload-time = "2025-07-26T12:02:31.395Z" }, + { url = "https://files.pythonhosted.org/packages/18/79/a9416650df9b525737ab521aa181ccc42d56016d2123ddcb7b58e926a42c/contourpy-1.3.3-cp314-cp314-win_arm64.whl", hash = "sha256:95b181891b4c71de4bb404c6621e7e2390745f887f2a026b2d99e92c17892339", size = 198300, upload-time = "2025-07-26T12:02:32.956Z" }, + { url = "https://files.pythonhosted.org/packages/1f/42/38c159a7d0f2b7b9c04c64ab317042bb6952b713ba875c1681529a2932fe/contourpy-1.3.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:33c82d0138c0a062380332c861387650c82e4cf1747aaa6938b9b6516762e772", size = 306769, upload-time = "2025-07-26T12:02:34.2Z" }, + { url = "https://files.pythonhosted.org/packages/c3/6c/26a8205f24bca10974e77460de68d3d7c63e282e23782f1239f226fcae6f/contourpy-1.3.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:ea37e7b45949df430fe649e5de8351c423430046a2af20b1c1961cae3afcda77", size = 287892, upload-time = "2025-07-26T12:02:35.807Z" }, + { url = "https://files.pythonhosted.org/packages/66/06/8a475c8ab718ebfd7925661747dbb3c3ee9c82ac834ccb3570be49d129f4/contourpy-1.3.3-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d304906ecc71672e9c89e87c4675dc5c2645e1f4269a5063b99b0bb29f232d13", size = 326748, upload-time = "2025-07-26T12:02:37.193Z" }, + { url = "https://files.pythonhosted.org/packages/b4/a3/c5ca9f010a44c223f098fccd8b158bb1cb287378a31ac141f04730dc49be/contourpy-1.3.3-cp314-cp314t-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ca658cd1a680a5c9ea96dc61cdbae1e85c8f25849843aa799dfd3cb370ad4fbe", size = 375554, upload-time = "2025-07-26T12:02:38.894Z" }, + { url = "https://files.pythonhosted.org/packages/80/5b/68bd33ae63fac658a4145088c1e894405e07584a316738710b636c6d0333/contourpy-1.3.3-cp314-cp314t-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:ab2fd90904c503739a75b7c8c5c01160130ba67944a7b77bbf36ef8054576e7f", size = 388118, upload-time = "2025-07-26T12:02:40.642Z" }, + { url = "https://files.pythonhosted.org/packages/40/52/4c285a6435940ae25d7410a6c36bda5145839bc3f0beb20c707cda18b9d2/contourpy-1.3.3-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b7301b89040075c30e5768810bc96a8e8d78085b47d8be6e4c3f5a0b4ed478a0", size = 352555, upload-time = "2025-07-26T12:02:42.25Z" }, + { url = "https://files.pythonhosted.org/packages/24/ee/3e81e1dd174f5c7fefe50e85d0892de05ca4e26ef1c9a59c2a57e43b865a/contourpy-1.3.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:2a2a8b627d5cc6b7c41a4beff6c5ad5eb848c88255fda4a8745f7e901b32d8e4", size = 1322295, upload-time = "2025-07-26T12:02:44.668Z" }, + { url = "https://files.pythonhosted.org/packages/3c/b2/6d913d4d04e14379de429057cd169e5e00f6c2af3bb13e1710bcbdb5da12/contourpy-1.3.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:fd6ec6be509c787f1caf6b247f0b1ca598bef13f4ddeaa126b7658215529ba0f", size = 1391027, upload-time = "2025-07-26T12:02:47.09Z" }, + { url = "https://files.pythonhosted.org/packages/93/8a/68a4ec5c55a2971213d29a9374913f7e9f18581945a7a31d1a39b5d2dfe5/contourpy-1.3.3-cp314-cp314t-win32.whl", hash = "sha256:e74a9a0f5e3fff48fb5a7f2fd2b9b70a3fe014a67522f79b7cca4c0c7e43c9ae", size = 202428, upload-time = "2025-07-26T12:02:48.691Z" }, + { url = "https://files.pythonhosted.org/packages/fa/96/fd9f641ffedc4fa3ace923af73b9d07e869496c9cc7a459103e6e978992f/contourpy-1.3.3-cp314-cp314t-win_amd64.whl", hash = "sha256:13b68d6a62db8eafaebb8039218921399baf6e47bf85006fd8529f2a08ef33fc", size = 250331, upload-time = "2025-07-26T12:02:50.137Z" }, + { url = "https://files.pythonhosted.org/packages/ae/8c/469afb6465b853afff216f9528ffda78a915ff880ed58813ba4faf4ba0b6/contourpy-1.3.3-cp314-cp314t-win_arm64.whl", hash = "sha256:b7448cb5a725bb1e35ce88771b86fba35ef418952474492cf7c764059933ff8b", size = 203831, upload-time = "2025-07-26T12:02:51.449Z" }, +] + +[[package]] +name = "cuda-bindings" +version = "12.9.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cuda-pathfinder", marker = "(platform_machine != 'aarch64' and sys_platform == 'linux') or (sys_platform != 'darwin' and sys_platform != 'linux')" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/63/56/e465c31dc9111be3441a9ba7df1941fe98f4aa6e71e8788a3fb4534ce24d/cuda_bindings-12.9.4-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:32bdc5a76906be4c61eb98f546a6786c5773a881f3b166486449b5d141e4a39f", size = 11906628, upload-time = "2025-10-21T14:51:49.905Z" }, + { url = "https://files.pythonhosted.org/packages/a3/84/1e6be415e37478070aeeee5884c2022713c1ecc735e6d82d744de0252eee/cuda_bindings-12.9.4-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:56e0043c457a99ac473ddc926fe0dc4046694d99caef633e92601ab52cbe17eb", size = 11925991, upload-time = "2025-10-21T14:51:56.535Z" }, + { url = "https://files.pythonhosted.org/packages/d1/af/6dfd8f2ed90b1d4719bc053ff8940e494640fe4212dc3dd72f383e4992da/cuda_bindings-12.9.4-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8b72ee72a9cc1b531db31eebaaee5c69a8ec3500e32c6933f2d3b15297b53686", size = 11922703, upload-time = "2025-10-21T14:52:03.585Z" }, + { url = "https://files.pythonhosted.org/packages/6c/19/90ac264acc00f6df8a49378eedec9fd2db3061bf9263bf9f39fd3d8377c3/cuda_bindings-12.9.4-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d80bffc357df9988dca279734bc9674c3934a654cab10cadeed27ce17d8635ee", size = 11924658, upload-time = "2025-10-21T14:52:10.411Z" }, +] + +[[package]] +name = "cuda-pathfinder" +version = "1.4.0" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ff/60/d8f1dbfb7f06b94c662e98c95189e6f39b817da638bc8fcea0d003f89e5d/cuda_pathfinder-1.4.0-py3-none-any.whl", hash = "sha256:437079ca59e7b61ae439ecc501d69ed87b3accc34d58153ef1e54815e2c2e118", size = 38406, upload-time = "2026-02-25T22:13:00.807Z" }, +] + +[[package]] +name = "cycler" +version = "0.12.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a9/95/a3dbbb5028f35eafb79008e7522a75244477d2838f38cbb722248dabc2a8/cycler-0.12.1.tar.gz", hash = "sha256:88bb128f02ba341da8ef447245a9e138fae777f6a23943da4540077d3601eb1c", size = 7615, upload-time = "2023-10-07T05:32:18.335Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl", hash = "sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30", size = 8321, upload-time = "2023-10-07T05:32:16.783Z" }, +] + +[[package]] +name = "debugpy" +version = "1.8.20" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e0/b7/cd8080344452e4874aae67c40d8940e2b4d47b01601a8fd9f44786c757c7/debugpy-1.8.20.tar.gz", hash = "sha256:55bc8701714969f1ab89a6d5f2f3d40c36f91b2cbe2f65d98bf8196f6a6a2c33", size = 1645207, upload-time = "2026-01-29T23:03:28.199Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/15/e2/fc500524cc6f104a9d049abc85a0a8b3f0d14c0a39b9c140511c61e5b40b/debugpy-1.8.20-cp313-cp313-macosx_15_0_universal2.whl", hash = "sha256:5dff4bb27027821fdfcc9e8f87309a28988231165147c31730128b1c983e282a", size = 2539560, upload-time = "2026-01-29T23:03:48.738Z" }, + { url = "https://files.pythonhosted.org/packages/90/83/fb33dcea789ed6018f8da20c5a9bc9d82adc65c0c990faed43f7c955da46/debugpy-1.8.20-cp313-cp313-manylinux_2_34_x86_64.whl", hash = "sha256:84562982dd7cf5ebebfdea667ca20a064e096099997b175fe204e86817f64eaf", size = 4293272, upload-time = "2026-01-29T23:03:50.169Z" }, + { url = "https://files.pythonhosted.org/packages/a6/25/b1e4a01bfb824d79a6af24b99ef291e24189080c93576dfd9b1a2815cd0f/debugpy-1.8.20-cp313-cp313-win32.whl", hash = "sha256:da11dea6447b2cadbf8ce2bec59ecea87cc18d2c574980f643f2d2dfe4862393", size = 5331208, upload-time = "2026-01-29T23:03:51.547Z" }, + { url = "https://files.pythonhosted.org/packages/13/f7/a0b368ce54ffff9e9028c098bd2d28cfc5b54f9f6c186929083d4c60ba58/debugpy-1.8.20-cp313-cp313-win_amd64.whl", hash = "sha256:eb506e45943cab2efb7c6eafdd65b842f3ae779f020c82221f55aca9de135ed7", size = 5372930, upload-time = "2026-01-29T23:03:53.585Z" }, + { url = "https://files.pythonhosted.org/packages/33/2e/f6cb9a8a13f5058f0a20fe09711a7b726232cd5a78c6a7c05b2ec726cff9/debugpy-1.8.20-cp314-cp314-macosx_15_0_universal2.whl", hash = "sha256:9c74df62fc064cd5e5eaca1353a3ef5a5d50da5eb8058fcef63106f7bebe6173", size = 2538066, upload-time = "2026-01-29T23:03:54.999Z" }, + { url = "https://files.pythonhosted.org/packages/c5/56/6ddca50b53624e1ca3ce1d1e49ff22db46c47ea5fb4c0cc5c9b90a616364/debugpy-1.8.20-cp314-cp314-manylinux_2_34_x86_64.whl", hash = "sha256:077a7447589ee9bc1ff0cdf443566d0ecf540ac8aa7333b775ebcb8ce9f4ecad", size = 4269425, upload-time = "2026-01-29T23:03:56.518Z" }, + { url = "https://files.pythonhosted.org/packages/c5/d9/d64199c14a0d4c476df46c82470a3ce45c8d183a6796cfb5e66533b3663c/debugpy-1.8.20-cp314-cp314-win32.whl", hash = "sha256:352036a99dd35053b37b7803f748efc456076f929c6a895556932eaf2d23b07f", size = 5331407, upload-time = "2026-01-29T23:03:58.481Z" }, + { url = "https://files.pythonhosted.org/packages/e0/d9/1f07395b54413432624d61524dfd98c1a7c7827d2abfdb8829ac92638205/debugpy-1.8.20-cp314-cp314-win_amd64.whl", hash = "sha256:a98eec61135465b062846112e5ecf2eebb855305acc1dfbae43b72903b8ab5be", size = 5372521, upload-time = "2026-01-29T23:03:59.864Z" }, + { url = "https://files.pythonhosted.org/packages/e0/c3/7f67dea8ccf8fdcb9c99033bbe3e90b9e7395415843accb81428c441be2d/debugpy-1.8.20-py2.py3-none-any.whl", hash = "sha256:5be9bed9ae3be00665a06acaa48f8329d2b9632f15fd09f6a9a8c8d9907e54d7", size = 5337658, upload-time = "2026-01-29T23:04:17.404Z" }, +] + +[[package]] +name = "decorator" +version = "5.2.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/43/fa/6d96a0978d19e17b68d634497769987b16c8f4cd0a7a05048bec693caa6b/decorator-5.2.1.tar.gz", hash = "sha256:65f266143752f734b0a7cc83c46f4618af75b8c5911b00ccb61d0ac9b6da0360", size = 56711, upload-time = "2025-02-24T04:41:34.073Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4e/8c/f3147f5c4b73e7550fe5f9352eaa956ae838d5c51eb58e7a25b9f3e2643b/decorator-5.2.1-py3-none-any.whl", hash = "sha256:d316bb415a2d9e2d2b3abcc4084c6502fc09240e292cd76a76afc106a1c8e04a", size = 9190, upload-time = "2025-02-24T04:41:32.565Z" }, +] + +[[package]] +name = "defusedxml" +version = "0.7.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/0f/d5/c66da9b79e5bdb124974bfe172b4daf3c984ebd9c2a06e2b8a4dc7331c72/defusedxml-0.7.1.tar.gz", hash = "sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69", size = 75520, upload-time = "2021-03-08T10:59:26.269Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/07/6c/aa3f2f849e01cb6a001cd8554a88d4c77c5c1a31c95bdf1cf9301e6d9ef4/defusedxml-0.7.1-py2.py3-none-any.whl", hash = "sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61", size = 25604, upload-time = "2021-03-08T10:59:24.45Z" }, +] + +[[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, upload-time = "2025-09-01T09:48:10.866Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c1/ea/53f2148663b321f21b5a606bd5f191517cf40b7072c0497d3c92c4a13b1e/executing-2.2.1-py2.py3-none-any.whl", hash = "sha256:760643d3452b4d777d295bb167ccc74c64a81df23fb5e08eff250c425a4b2017", size = 28317, upload-time = "2025-09-01T09:48:08.5Z" }, +] + +[[package]] +name = "fastapi" +version = "0.115.8" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pydantic" }, + { name = "starlette" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a2/b2/5a5dc4affdb6661dea100324e19a7721d5dc524b464fe8e366c093fd7d87/fastapi-0.115.8.tar.gz", hash = "sha256:0ce9111231720190473e222cdf0f07f7206ad7e53ea02beb1d2dc36e2f0741e9", size = 295403, upload-time = "2025-01-30T14:06:41.138Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8f/7d/2d6ce181d7a5f51dedb8c06206cbf0ec026a99bf145edd309f9e17c3282f/fastapi-0.115.8-py3-none-any.whl", hash = "sha256:753a96dd7e036b34eeef8babdfcfe3f28ff79648f86551eb36bfc1b0bf4a8cbf", size = 94814, upload-time = "2025-01-30T14:06:38.564Z" }, +] + +[[package]] +name = "fastjsonschema" +version = "2.21.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/20/b5/23b216d9d985a956623b6bd12d4086b60f0059b27799f23016af04a74ea1/fastjsonschema-2.21.2.tar.gz", hash = "sha256:b1eb43748041c880796cd077f1a07c3d94e93ae84bba5ed36800a33554ae05de", size = 374130, upload-time = "2025-08-14T18:49:36.666Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cb/a8/20d0723294217e47de6d9e2e40fd4a9d2f7c4b6ef974babd482a59743694/fastjsonschema-2.21.2-py3-none-any.whl", hash = "sha256:1c797122d0a86c5cace2e54bf4e819c36223b552017172f32c5c024a6b77e463", size = 24024, upload-time = "2025-08-14T18:49:34.776Z" }, +] + +[[package]] +name = "ffmpy" +version = "1.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7d/d2/1c4c582d71bcc65c76fa69fab85de6257d50fdf6fd4a2317c53917e9a581/ffmpy-1.0.0.tar.gz", hash = "sha256:b12932e95435c8820f1cd041024402765f821971e4bae753b327fc02a6e12f8b", size = 5101, upload-time = "2025-11-11T06:24:23.856Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/55/56/dd3669eccebb6d8ac81e624542ebd53fe6f08e1b8f2f8d50aeb7e3b83f99/ffmpy-1.0.0-py3-none-any.whl", hash = "sha256:5640e5f0fd03fb6236d0e119b16ccf6522db1c826fdf35dcb87087b60fd7504f", size = 5614, upload-time = "2025-11-11T06:24:22.818Z" }, +] + +[[package]] +name = "filelock" +version = "3.25.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/77/18/a1fd2231c679dcb9726204645721b12498aeac28e1ad0601038f94b42556/filelock-3.25.0.tar.gz", hash = "sha256:8f00faf3abf9dc730a1ffe9c354ae5c04e079ab7d3a683b7c32da5dd05f26af3", size = 40158, upload-time = "2026-03-01T15:08:45.916Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f9/0b/de6f54d4a8bedfe8645c41497f3c18d749f0bd3218170c667bf4b81d0cdd/filelock-3.25.0-py3-none-any.whl", hash = "sha256:5ccf8069f7948f494968fc0713c10e5c182a9c9d9eef3a636307a20c2490f047", size = 26427, upload-time = "2026-03-01T15:08:44.593Z" }, +] + +[[package]] +name = "filetype" +version = "1.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/bb/29/745f7d30d47fe0f251d3ad3dc2978a23141917661998763bebb6da007eb1/filetype-1.2.0.tar.gz", hash = "sha256:66b56cd6474bf41d8c54660347d37afcc3f7d1970648de365c102ef77548aadb", size = 998020, upload-time = "2022-11-02T17:34:04.141Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/18/79/1b8fa1bb3568781e84c9200f951c735f3f157429f44be0495da55894d620/filetype-1.2.0-py2.py3-none-any.whl", hash = "sha256:7ce71b6880181241cf7ac8697a2f1eb6a8bd9b429f7ad6d27b8db9ba5f1c2d25", size = 19970, upload-time = "2022-11-02T17:34:01.425Z" }, +] + +[[package]] +name = "flask" +version = "3.1.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "blinker" }, + { name = "click" }, + { name = "itsdangerous" }, + { name = "jinja2" }, + { name = "markupsafe" }, + { name = "werkzeug" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/26/00/35d85dcce6c57fdc871f3867d465d780f302a175ea360f62533f12b27e2b/flask-3.1.3.tar.gz", hash = "sha256:0ef0e52b8a9cd932855379197dd8f94047b359ca0a78695144304cb45f87c9eb", size = 759004, upload-time = "2026-02-19T05:00:57.678Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7f/9c/34f6962f9b9e9c71f6e5ed806e0d0ff03c9d1b0b2340088a0cf4bce09b18/flask-3.1.3-py3-none-any.whl", hash = "sha256:f4bcbefc124291925f1a26446da31a5178f9483862233b23c0c96a20701f670c", size = 103424, upload-time = "2026-02-19T05:00:56.027Z" }, +] + +[[package]] +name = "fonttools" +version = "4.61.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ec/ca/cf17b88a8df95691275a3d77dc0a5ad9907f328ae53acbe6795da1b2f5ed/fonttools-4.61.1.tar.gz", hash = "sha256:6675329885c44657f826ef01d9e4fb33b9158e9d93c537d84ad8399539bc6f69", size = 3565756, upload-time = "2025-12-12T17:31:24.246Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4b/cf/00ba28b0990982530addb8dc3e9e6f2fa9cb5c20df2abdda7baa755e8fe1/fonttools-4.61.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8c56c488ab471628ff3bfa80964372fc13504ece601e0d97a78ee74126b2045c", size = 2846454, upload-time = "2025-12-12T17:30:24.938Z" }, + { url = "https://files.pythonhosted.org/packages/5a/ca/468c9a8446a2103ae645d14fee3f610567b7042aba85031c1c65e3ef7471/fonttools-4.61.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:dc492779501fa723b04d0ab1f5be046797fee17d27700476edc7ee9ae535a61e", size = 2398191, upload-time = "2025-12-12T17:30:27.343Z" }, + { url = "https://files.pythonhosted.org/packages/a3/4b/d67eedaed19def5967fade3297fed8161b25ba94699efc124b14fb68cdbc/fonttools-4.61.1-cp313-cp313-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:64102ca87e84261419c3747a0d20f396eb024bdbeb04c2bfb37e2891f5fadcb5", size = 4928410, upload-time = "2025-12-12T17:30:29.771Z" }, + { url = "https://files.pythonhosted.org/packages/b0/8d/6fb3494dfe61a46258cd93d979cf4725ded4eb46c2a4ca35e4490d84daea/fonttools-4.61.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4c1b526c8d3f615a7b1867f38a9410849c8f4aef078535742198e942fba0e9bd", size = 4984460, upload-time = "2025-12-12T17:30:32.073Z" }, + { url = "https://files.pythonhosted.org/packages/f7/f1/a47f1d30b3dc00d75e7af762652d4cbc3dff5c2697a0dbd5203c81afd9c3/fonttools-4.61.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:41ed4b5ec103bd306bb68f81dc166e77409e5209443e5773cb4ed837bcc9b0d3", size = 4925800, upload-time = "2025-12-12T17:30:34.339Z" }, + { url = "https://files.pythonhosted.org/packages/a7/01/e6ae64a0981076e8a66906fab01539799546181e32a37a0257b77e4aa88b/fonttools-4.61.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b501c862d4901792adaec7c25b1ecc749e2662543f68bb194c42ba18d6eec98d", size = 5067859, upload-time = "2025-12-12T17:30:36.593Z" }, + { url = "https://files.pythonhosted.org/packages/73/aa/28e40b8d6809a9b5075350a86779163f074d2b617c15d22343fce81918db/fonttools-4.61.1-cp313-cp313-win32.whl", hash = "sha256:4d7092bb38c53bbc78e9255a59158b150bcdc115a1e3b3ce0b5f267dc35dd63c", size = 2267821, upload-time = "2025-12-12T17:30:38.478Z" }, + { url = "https://files.pythonhosted.org/packages/1a/59/453c06d1d83dc0951b69ef692d6b9f1846680342927df54e9a1ca91c6f90/fonttools-4.61.1-cp313-cp313-win_amd64.whl", hash = "sha256:21e7c8d76f62ab13c9472ccf74515ca5b9a761d1bde3265152a6dc58700d895b", size = 2318169, upload-time = "2025-12-12T17:30:40.951Z" }, + { url = "https://files.pythonhosted.org/packages/32/8f/4e7bf82c0cbb738d3c2206c920ca34ca74ef9dabde779030145d28665104/fonttools-4.61.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:fff4f534200a04b4a36e7ae3cb74493afe807b517a09e99cb4faa89a34ed6ecd", size = 2846094, upload-time = "2025-12-12T17:30:43.511Z" }, + { url = "https://files.pythonhosted.org/packages/71/09/d44e45d0a4f3a651f23a1e9d42de43bc643cce2971b19e784cc67d823676/fonttools-4.61.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:d9203500f7c63545b4ce3799319fe4d9feb1a1b89b28d3cb5abd11b9dd64147e", size = 2396589, upload-time = "2025-12-12T17:30:45.681Z" }, + { url = "https://files.pythonhosted.org/packages/89/18/58c64cafcf8eb677a99ef593121f719e6dcbdb7d1c594ae5a10d4997ca8a/fonttools-4.61.1-cp314-cp314-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:fa646ecec9528bef693415c79a86e733c70a4965dd938e9a226b0fc64c9d2e6c", size = 4877892, upload-time = "2025-12-12T17:30:47.709Z" }, + { url = "https://files.pythonhosted.org/packages/8a/ec/9e6b38c7ba1e09eb51db849d5450f4c05b7e78481f662c3b79dbde6f3d04/fonttools-4.61.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:11f35ad7805edba3aac1a3710d104592df59f4b957e30108ae0ba6c10b11dd75", size = 4972884, upload-time = "2025-12-12T17:30:49.656Z" }, + { url = "https://files.pythonhosted.org/packages/5e/87/b5339da8e0256734ba0dbbf5b6cdebb1dd79b01dc8c270989b7bcd465541/fonttools-4.61.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:b931ae8f62db78861b0ff1ac017851764602288575d65b8e8ff1963fed419063", size = 4924405, upload-time = "2025-12-12T17:30:51.735Z" }, + { url = "https://files.pythonhosted.org/packages/0b/47/e3409f1e1e69c073a3a6fd8cb886eb18c0bae0ee13db2c8d5e7f8495e8b7/fonttools-4.61.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:b148b56f5de675ee16d45e769e69f87623a4944f7443850bf9a9376e628a89d2", size = 5035553, upload-time = "2025-12-12T17:30:54.823Z" }, + { url = "https://files.pythonhosted.org/packages/bf/b6/1f6600161b1073a984294c6c031e1a56ebf95b6164249eecf30012bb2e38/fonttools-4.61.1-cp314-cp314-win32.whl", hash = "sha256:9b666a475a65f4e839d3d10473fad6d47e0a9db14a2f4a224029c5bfde58ad2c", size = 2271915, upload-time = "2025-12-12T17:30:57.913Z" }, + { url = "https://files.pythonhosted.org/packages/52/7b/91e7b01e37cc8eb0e1f770d08305b3655e4f002fc160fb82b3390eabacf5/fonttools-4.61.1-cp314-cp314-win_amd64.whl", hash = "sha256:4f5686e1fe5fce75d82d93c47a438a25bf0d1319d2843a926f741140b2b16e0c", size = 2323487, upload-time = "2025-12-12T17:30:59.804Z" }, + { url = "https://files.pythonhosted.org/packages/39/5c/908ad78e46c61c3e3ed70c3b58ff82ab48437faf84ec84f109592cabbd9f/fonttools-4.61.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:e76ce097e3c57c4bcb67c5aa24a0ecdbd9f74ea9219997a707a4061fbe2707aa", size = 2929571, upload-time = "2025-12-12T17:31:02.574Z" }, + { url = "https://files.pythonhosted.org/packages/bd/41/975804132c6dea64cdbfbaa59f3518a21c137a10cccf962805b301ac6ab2/fonttools-4.61.1-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:9cfef3ab326780c04d6646f68d4b4742aae222e8b8ea1d627c74e38afcbc9d91", size = 2435317, upload-time = "2025-12-12T17:31:04.974Z" }, + { url = "https://files.pythonhosted.org/packages/b0/5a/aef2a0a8daf1ebaae4cfd83f84186d4a72ee08fd6a8451289fcd03ffa8a4/fonttools-4.61.1-cp314-cp314t-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:a75c301f96db737e1c5ed5fd7d77d9c34466de16095a266509e13da09751bd19", size = 4882124, upload-time = "2025-12-12T17:31:07.456Z" }, + { url = "https://files.pythonhosted.org/packages/80/33/d6db3485b645b81cea538c9d1c9219d5805f0877fda18777add4671c5240/fonttools-4.61.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:91669ccac46bbc1d09e9273546181919064e8df73488ea087dcac3e2968df9ba", size = 5100391, upload-time = "2025-12-12T17:31:09.732Z" }, + { url = "https://files.pythonhosted.org/packages/6c/d6/675ba631454043c75fcf76f0ca5463eac8eb0666ea1d7badae5fea001155/fonttools-4.61.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:c33ab3ca9d3ccd581d58e989d67554e42d8d4ded94ab3ade3508455fe70e65f7", size = 4978800, upload-time = "2025-12-12T17:31:11.681Z" }, + { url = "https://files.pythonhosted.org/packages/7f/33/d3ec753d547a8d2bdaedd390d4a814e8d5b45a093d558f025c6b990b554c/fonttools-4.61.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:664c5a68ec406f6b1547946683008576ef8b38275608e1cee6c061828171c118", size = 5006426, upload-time = "2025-12-12T17:31:13.764Z" }, + { url = "https://files.pythonhosted.org/packages/b4/40/cc11f378b561a67bea850ab50063366a0d1dd3f6d0a30ce0f874b0ad5664/fonttools-4.61.1-cp314-cp314t-win32.whl", hash = "sha256:aed04cabe26f30c1647ef0e8fbb207516fd40fe9472e9439695f5c6998e60ac5", size = 2335377, upload-time = "2025-12-12T17:31:16.49Z" }, + { url = "https://files.pythonhosted.org/packages/e4/ff/c9a2b66b39f8628531ea58b320d66d951267c98c6a38684daa8f50fb02f8/fonttools-4.61.1-cp314-cp314t-win_amd64.whl", hash = "sha256:2180f14c141d2f0f3da43f3a81bc8aa4684860f6b0e6f9e165a4831f24e6a23b", size = 2400613, upload-time = "2025-12-12T17:31:18.769Z" }, + { url = "https://files.pythonhosted.org/packages/c7/4e/ce75a57ff3aebf6fc1f4e9d508b8e5810618a33d900ad6c19eb30b290b97/fonttools-4.61.1-py3-none-any.whl", hash = "sha256:17d2bf5d541add43822bcf0c43d7d847b160c9bb01d15d5007d84e2217aaa371", size = 1148996, upload-time = "2025-12-12T17:31:21.03Z" }, +] + +[[package]] +name = "fqdn" +version = "1.5.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/30/3e/a80a8c077fd798951169626cde3e239adeba7dab75deb3555716415bd9b0/fqdn-1.5.1.tar.gz", hash = "sha256:105ed3677e767fb5ca086a0c1f4bb66ebc3c100be518f0e0d755d9eae164d89f", size = 6015, upload-time = "2021-03-11T07:16:29.08Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cf/58/8acf1b3e91c58313ce5cb67df61001fc9dcd21be4fadb76c1a2d540e09ed/fqdn-1.5.1-py3-none-any.whl", hash = "sha256:3a179af3761e4df6eb2e026ff9e1a3033d3587bf980a0b1b2e1e5d08d7358014", size = 9121, upload-time = "2021-03-11T07:16:28.351Z" }, +] + +[[package]] +name = "fsspec" +version = "2026.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/51/7c/f60c259dcbf4f0c47cc4ddb8f7720d2dcdc8888c8e5ad84c73ea4531cc5b/fsspec-2026.2.0.tar.gz", hash = "sha256:6544e34b16869f5aacd5b90bdf1a71acb37792ea3ddf6125ee69a22a53fb8bff", size = 313441, upload-time = "2026-02-05T21:50:53.743Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e6/ab/fb21f4c939bb440104cc2b396d3be1d9b7a9fd3c6c2a53d98c45b3d7c954/fsspec-2026.2.0-py3-none-any.whl", hash = "sha256:98de475b5cb3bd66bedd5c4679e87b4fdfe1a3bf4d707b151b3c07e58c9a2437", size = 202505, upload-time = "2026-02-05T21:50:51.819Z" }, +] + +[[package]] +name = "grad-cam" +version = "1.5.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "matplotlib" }, + { name = "numpy" }, + { name = "opencv-python" }, + { name = "pillow" }, + { name = "scikit-learn" }, + { name = "torch" }, + { name = "torchvision" }, + { name = "tqdm" }, + { name = "ttach" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ee/b3/e8b060e69d4de4b4d8a86868762dbc1ecaa58affa538a8af201a38a408ef/grad-cam-1.5.5.tar.gz", hash = "sha256:690c433d226d35c89c9eb170462db204909cb06b39c7381e6880a49b6fc37015", size = 7783293, upload-time = "2025-04-07T05:13:54.984Z" } + +[[package]] +name = "gradio" +version = "5.16.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiofiles" }, + { name = "anyio" }, + { name = "audioop-lts" }, + { name = "fastapi" }, + { name = "ffmpy" }, + { name = "gradio-client" }, + { name = "httpx" }, + { name = "huggingface-hub" }, + { name = "jinja2" }, + { name = "markupsafe" }, + { name = "numpy" }, + { name = "orjson" }, + { name = "packaging" }, + { name = "pandas" }, + { name = "pillow" }, + { name = "pydantic" }, + { name = "pydub" }, + { name = "python-multipart" }, + { name = "pyyaml" }, + { name = "ruff", marker = "sys_platform != 'emscripten'" }, + { name = "safehttpx" }, + { name = "semantic-version" }, + { name = "starlette", marker = "sys_platform != 'emscripten'" }, + { name = "tomlkit" }, + { name = "typer", marker = "sys_platform != 'emscripten'" }, + { name = "typing-extensions" }, + { name = "urllib3", marker = "sys_platform == 'emscripten'" }, + { name = "uvicorn", marker = "sys_platform != 'emscripten'" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/b6/2e/3dddfdec4144ef1c2203e3ce3a2112720e757996995cdd579aaedc0876bf/gradio-5.16.1-py3-none-any.whl", hash = "sha256:a49f194ca314a09e4f7655a8fbcf8efae961a2bbf37877afc546fb506027f4dd", size = 62213705, upload-time = "2025-02-18T01:22:27.34Z" }, +] + +[[package]] +name = "gradio-client" +version = "1.7.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "fsspec" }, + { name = "httpx" }, + { name = "huggingface-hub" }, + { name = "packaging" }, + { name = "typing-extensions" }, + { name = "websockets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c5/78/e5a4a2b0f4d1ba01ec4169e181a3134fc65b6360d40817070892c3557000/gradio_client-1.7.0.tar.gz", hash = "sha256:87f6ade197951f38bac0431b2a436a8ebb2f33b2ceba2ef8e1e5bef8d8b238e4", size = 320039, upload-time = "2025-01-30T22:43:55.427Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f3/c1/def2bd93b8beab342c443bf5ac47f85e48b78eca010bbff51d6978472a3f/gradio_client-1.7.0-py3-none-any.whl", hash = "sha256:b403570c67f121ebbbc19ac1f0afa2ab1bab085ce60d96eb190832fe871aa946", size = 321900, upload-time = "2025-01-30T22:43:53.352Z" }, +] + +[[package]] +name = "h11" +version = "0.16.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/01/ee/02a2c011bdab74c6fb3c75474d40b3052059d95df7e73351460c8588d963/h11-0.16.0.tar.gz", hash = "sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1", size = 101250, upload-time = "2025-04-24T03:35:25.427Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86", size = 37515, upload-time = "2025-04-24T03:35:24.344Z" }, +] + +[[package]] +name = "hf-xet" +version = "1.3.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/8b/cb/9bb543bd987ffa1ee48202cc96a756951b734b79a542335c566148ade36c/hf_xet-1.3.2.tar.gz", hash = "sha256:e130ee08984783d12717444e538587fa2119385e5bd8fc2bb9f930419b73a7af", size = 643646, upload-time = "2026-02-27T17:26:08.051Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/49/75/462285971954269432aad2e7938c5c7ff9ec7d60129cec542ab37121e3d6/hf_xet-1.3.2-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:335a8f36c55fd35a92d0062f4e9201b4015057e62747b7e7001ffb203c0ee1d2", size = 3761019, upload-time = "2026-02-27T17:25:49.441Z" }, + { url = "https://files.pythonhosted.org/packages/35/56/987b0537ddaf88e17192ea09afa8eca853e55f39a4721578be436f8409df/hf_xet-1.3.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:c1ae4d3a716afc774e66922f3cac8206bfa707db13f6a7e62dfff74bfc95c9a8", size = 3521565, upload-time = "2026-02-27T17:25:47.469Z" }, + { url = "https://files.pythonhosted.org/packages/a8/5c/7e4a33a3d689f77761156cc34558047569e54af92e4d15a8f493229f6767/hf_xet-1.3.2-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d6dbdf231efac0b9b39adcf12a07f0c030498f9212a18e8c50224d0e84ab803d", size = 4176494, upload-time = "2026-02-27T17:25:40.247Z" }, + { url = "https://files.pythonhosted.org/packages/6b/b3/71e856bf9d9a69b3931837e8bf22e095775f268c8edcd4a9e8c355f92484/hf_xet-1.3.2-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:c1980abfb68ecf6c1c7983379ed7b1e2b49a1aaf1a5aca9acc7d48e5e2e0a961", size = 3955601, upload-time = "2026-02-27T17:25:38.376Z" }, + { url = "https://files.pythonhosted.org/packages/63/d7/aecf97b3f0a981600a67ff4db15e2d433389d698a284bb0ea5d8fcdd6f7f/hf_xet-1.3.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:1c88fbd90ad0d27c46b77a445f0a436ebaa94e14965c581123b68b1c52f5fd30", size = 4154770, upload-time = "2026-02-27T17:25:56.756Z" }, + { url = "https://files.pythonhosted.org/packages/e2/e1/3af961f71a40e09bf5ee909842127b6b00f5ab4ee3817599dc0771b79893/hf_xet-1.3.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:35b855024ca37f2dd113ac1c08993e997fbe167b9d61f9ef66d3d4f84015e508", size = 4394161, upload-time = "2026-02-27T17:25:58.111Z" }, + { url = "https://files.pythonhosted.org/packages/a1/c3/859509bade9178e21b8b1db867b8e10e9f817ab9ac1de77cb9f461ced765/hf_xet-1.3.2-cp313-cp313t-win_amd64.whl", hash = "sha256:31612ba0629046e425ba50375685a2586e11fb9144270ebabd75878c3eaf6378", size = 3637377, upload-time = "2026-02-27T17:26:10.611Z" }, + { url = "https://files.pythonhosted.org/packages/05/7f/724cfbef4da92d577b71f68bf832961c8919f36c60d28d289a9fc9d024d4/hf_xet-1.3.2-cp313-cp313t-win_arm64.whl", hash = "sha256:433c77c9f4e132b562f37d66c9b22c05b5479f243a1f06a120c1c06ce8b1502a", size = 3497875, upload-time = "2026-02-27T17:26:09.034Z" }, + { url = "https://files.pythonhosted.org/packages/ba/75/9d54c1ae1d05fb704f977eca1671747babf1957f19f38ae75c5933bc2dc1/hf_xet-1.3.2-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:c34e2c7aefad15792d57067c1c89b2b02c1bbaeabd7f8456ae3d07b4bbaf4094", size = 3761076, upload-time = "2026-02-27T17:25:55.42Z" }, + { url = "https://files.pythonhosted.org/packages/f2/8a/08a24b6c6f52b5d26848c16e4b6d790bb810d1bf62c3505bed179f7032d3/hf_xet-1.3.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:4bc995d6c41992831f762096020dc14a65fdf3963f86ffed580b596d04de32e3", size = 3521745, upload-time = "2026-02-27T17:25:54.217Z" }, + { url = "https://files.pythonhosted.org/packages/b5/db/a75cf400dd8a1a8acf226a12955ff6ee999f272dfc0505bafd8079a61267/hf_xet-1.3.2-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:959083c89dee30f7d6f890b36cdadda823386c4de63b1a30384a75bfd2ae995d", size = 4176301, upload-time = "2026-02-27T17:25:46.044Z" }, + { url = "https://files.pythonhosted.org/packages/01/40/6c4c798ffdd83e740dd3925c4e47793b07442a9efa3bc3866ba141a82365/hf_xet-1.3.2-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:cfa760888633b08c01b398d212ce7e8c0d7adac6c86e4b20dfb2397d8acd78ee", size = 3955437, upload-time = "2026-02-27T17:25:44.703Z" }, + { url = "https://files.pythonhosted.org/packages/0c/09/9a3aa7c5f07d3e5cc57bb750d12a124ffa72c273a87164bd848f9ac5cc14/hf_xet-1.3.2-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:3155a02e083aa21fd733a7485c7c36025e49d5975c8d6bda0453d224dd0b0ac4", size = 4154535, upload-time = "2026-02-27T17:26:05.207Z" }, + { url = "https://files.pythonhosted.org/packages/ae/e0/831f7fa6d90cb47a230bc23284b502c700e1483bbe459437b3844cdc0776/hf_xet-1.3.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:91b1dc03c31cbf733d35dc03df7c5353686233d86af045e716f1e0ea4a2673cf", size = 4393891, upload-time = "2026-02-27T17:26:06.607Z" }, + { url = "https://files.pythonhosted.org/packages/ab/96/6ed472fdce7f8b70f5da6e3f05be76816a610063003bfd6d9cea0bbb58a3/hf_xet-1.3.2-cp314-cp314t-win_amd64.whl", hash = "sha256:211f30098512d95e85ad03ae63bd7dd2c4df476558a5095d09f9e38e78cbf674", size = 3637583, upload-time = "2026-02-27T17:26:17.349Z" }, + { url = "https://files.pythonhosted.org/packages/8b/e8/a069edc4570b3f8e123c0b80fadc94530f3d7b01394e1fc1bb223339366c/hf_xet-1.3.2-cp314-cp314t-win_arm64.whl", hash = "sha256:4a6817c41de7c48ed9270da0b02849347e089c5ece9a0e72ae4f4b3a57617f82", size = 3497977, upload-time = "2026-02-27T17:26:14.966Z" }, + { url = "https://files.pythonhosted.org/packages/d8/28/dbb024e2e3907f6f3052847ca7d1a2f7a3972fafcd53ff79018977fcb3e4/hf_xet-1.3.2-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:f93b7595f1d8fefddfede775c18b5c9256757824f7f6832930b49858483cd56f", size = 3763961, upload-time = "2026-02-27T17:25:52.537Z" }, + { url = "https://files.pythonhosted.org/packages/e4/71/b99aed3823c9d1795e4865cf437d651097356a3f38c7d5877e4ac544b8e4/hf_xet-1.3.2-cp37-abi3-macosx_11_0_arm64.whl", hash = "sha256:a85d3d43743174393afe27835bde0cd146e652b5fcfdbcd624602daef2ef3259", size = 3526171, upload-time = "2026-02-27T17:25:50.968Z" }, + { url = "https://files.pythonhosted.org/packages/9d/ca/907890ce6ef5598b5920514f255ed0a65f558f820515b18db75a51b2f878/hf_xet-1.3.2-cp37-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:7c2a054a97c44e136b1f7f5a78f12b3efffdf2eed3abc6746fc5ea4b39511633", size = 4180750, upload-time = "2026-02-27T17:25:43.125Z" }, + { url = "https://files.pythonhosted.org/packages/8c/ad/bc7f41f87173d51d0bce497b171c4ee0cbde1eed2d7b4216db5d0ada9f50/hf_xet-1.3.2-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:06b724a361f670ae557836e57801b82c75b534812e351a87a2c739f77d1e0635", size = 3961035, upload-time = "2026-02-27T17:25:41.837Z" }, + { url = "https://files.pythonhosted.org/packages/73/38/600f4dda40c4a33133404d9fe644f1d35ff2d9babb4d0435c646c63dd107/hf_xet-1.3.2-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:305f5489d7241a47e0458ef49334be02411d1d0f480846363c1c8084ed9916f7", size = 4161378, upload-time = "2026-02-27T17:26:00.365Z" }, + { url = "https://files.pythonhosted.org/packages/00/b3/7bc1ff91d1ac18420b7ad1e169b618b27c00001b96310a89f8a9294fe509/hf_xet-1.3.2-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:06cdbde243c85f39a63b28e9034321399c507bcd5e7befdd17ed2ccc06dfe14e", size = 4398020, upload-time = "2026-02-27T17:26:03.977Z" }, + { url = "https://files.pythonhosted.org/packages/2b/0b/99bfd948a3ed3620ab709276df3ad3710dcea61976918cce8706502927af/hf_xet-1.3.2-cp37-abi3-win_amd64.whl", hash = "sha256:9298b47cce6037b7045ae41482e703c471ce36b52e73e49f71226d2e8e5685a1", size = 3641624, upload-time = "2026-02-27T17:26:13.542Z" }, + { url = "https://files.pythonhosted.org/packages/cc/02/9a6e4ca1f3f73a164c0cd48e41b3cc56585dcc37e809250de443d673266f/hf_xet-1.3.2-cp37-abi3-win_arm64.whl", hash = "sha256:83d8ec273136171431833a6957e8f3af496bee227a0fe47c7b8b39c106d1749a", size = 3503976, upload-time = "2026-02-27T17:26:12.123Z" }, +] + +[[package]] +name = "httpcore" +version = "1.0.9" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "h11" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/06/94/82699a10bca87a5556c9c59b5963f2d039dbd239f25bc2a63907a05a14cb/httpcore-1.0.9.tar.gz", hash = "sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8", size = 85484, upload-time = "2025-04-24T22:06:22.219Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl", hash = "sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55", size = 78784, upload-time = "2025-04-24T22:06:20.566Z" }, +] + +[[package]] +name = "httpx" +version = "0.28.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "certifi" }, + { name = "httpcore" }, + { name = "idna" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b1/df/48c586a5fe32a0f01324ee087459e112ebb7224f646c0b5023f5e79e9956/httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc", size = 141406, upload-time = "2024-12-06T15:37:23.222Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad", size = 73517, upload-time = "2024-12-06T15:37:21.509Z" }, +] + +[[package]] +name = "huggingface-hub" +version = "1.5.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/ae/76/b5efb3033d8499b17f9386beaf60f64c461798e1ee16d10bc9c0077beba5/huggingface_hub-1.5.0.tar.gz", hash = "sha256:f281838db29265880fb543de7a23b0f81d3504675de82044307ea3c6c62f799d", size = 695872, upload-time = "2026-02-26T15:35:32.745Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ec/74/2bc951622e2dbba1af9a460d93c51d15e458becd486e62c29cc0ccb08178/huggingface_hub-1.5.0-py3-none-any.whl", hash = "sha256:c9c0b3ab95a777fc91666111f3b3ede71c0cdced3614c553a64e98920585c4ee", size = 596261, upload-time = "2026-02-26T15:35:31.1Z" }, +] + +[[package]] +name = "idna" +version = "3.7" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/21/ed/f86a79a07470cb07819390452f178b3bef1d375f2ec021ecfc709fc7cf07/idna-3.7.tar.gz", hash = "sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc", size = 189575, upload-time = "2024-04-11T03:34:43.276Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e5/3e/741d8c82801c347547f8a2a06aa57dbb1992be9e948df2ea0eda2c8b79e8/idna-3.7-py3-none-any.whl", hash = "sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0", size = 66836, upload-time = "2024-04-11T03:34:41.447Z" }, +] + +[[package]] +name = "imageio" +version = "2.37.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, + { name = "pillow" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b1/84/93bcd1300216ea50811cee96873b84a1bebf8d0489ffaf7f2a3756bab866/imageio-2.37.3.tar.gz", hash = "sha256:bbb37efbfc4c400fcd534b367b91fcd66d5da639aaa138034431a1c5e0a41451", size = 389673, upload-time = "2026-03-09T11:31:12.573Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/49/fa/391e437a34e55095173dca5f24070d89cbc233ff85bf1c29c93248c6588d/imageio-2.37.3-py3-none-any.whl", hash = "sha256:46f5bb8522cd421c0f5ae104d8268f569d856b29eb1a13b92829d1970f32c9f0", size = 317646, upload-time = "2026-03-09T11:31:10.771Z" }, +] + +[[package]] +name = "ipykernel" +version = "7.2.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "appnope", marker = "sys_platform == 'darwin'" }, + { name = "comm" }, + { name = "debugpy" }, + { name = "ipython" }, + { name = "jupyter-client" }, + { name = "jupyter-core" }, + { name = "matplotlib-inline" }, + { name = "nest-asyncio" }, + { name = "packaging" }, + { name = "psutil" }, + { name = "pyzmq" }, + { name = "tornado" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ca/8d/b68b728e2d06b9e0051019640a40a9eb7a88fcd82c2e1b5ce70bef5ff044/ipykernel-7.2.0.tar.gz", hash = "sha256:18ed160b6dee2cbb16e5f3575858bc19d8f1fe6046a9a680c708494ce31d909e", size = 176046, upload-time = "2026-02-06T16:43:27.403Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/82/b9/e73d5d9f405cba7706c539aa8b311b49d4c2f3d698d9c12f815231169c71/ipykernel-7.2.0-py3-none-any.whl", hash = "sha256:3bbd4420d2b3cc105cbdf3756bfc04500b1e52f090a90716851f3916c62e1661", size = 118788, upload-time = "2026-02-06T16:43:25.149Z" }, +] + +[[package]] +name = "ipython" +version = "9.10.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "decorator" }, + { name = "ipython-pygments-lexers" }, + { name = "jedi" }, + { name = "matplotlib-inline" }, + { name = "pexpect", marker = "sys_platform != 'emscripten' and sys_platform != 'win32'" }, + { name = "prompt-toolkit" }, + { name = "pygments" }, + { name = "stack-data" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a6/60/2111715ea11f39b1535bed6024b7dec7918b71e5e5d30855a5b503056b50/ipython-9.10.0.tar.gz", hash = "sha256:cd9e656be97618a0676d058134cd44e6dc7012c0e5cb36a9ce96a8c904adaf77", size = 4426526, upload-time = "2026-02-02T10:00:33.594Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3d/aa/898dec789a05731cd5a9f50605b7b44a72bd198fd0d4528e11fc610177cc/ipython-9.10.0-py3-none-any.whl", hash = "sha256:c6ab68cc23bba8c7e18e9b932797014cc61ea7fd6f19de180ab9ba73e65ee58d", size = 622774, upload-time = "2026-02-02T10:00:31.503Z" }, +] + +[[package]] +name = "ipython-pygments-lexers" +version = "1.1.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pygments" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ef/4c/5dd1d8af08107f88c7f741ead7a40854b8ac24ddf9ae850afbcf698aa552/ipython_pygments_lexers-1.1.1.tar.gz", hash = "sha256:09c0138009e56b6854f9535736f4171d855c8c08a563a0dcd8022f78355c7e81", size = 8393, upload-time = "2025-01-17T11:24:34.505Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d9/33/1f075bf72b0b747cb3288d011319aaf64083cf2efef8354174e3ed4540e2/ipython_pygments_lexers-1.1.1-py3-none-any.whl", hash = "sha256:a9462224a505ade19a605f71f8fa63c2048833ce50abc86768a0d81d876dc81c", size = 8074, upload-time = "2025-01-17T11:24:33.271Z" }, +] + +[[package]] +name = "ipywidgets" +version = "8.1.8" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "comm" }, + { name = "ipython" }, + { name = "jupyterlab-widgets" }, + { name = "traitlets" }, + { name = "widgetsnbextension" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/4c/ae/c5ce1edc1afe042eadb445e95b0671b03cee61895264357956e61c0d2ac0/ipywidgets-8.1.8.tar.gz", hash = "sha256:61f969306b95f85fba6b6986b7fe45d73124d1d9e3023a8068710d47a22ea668", size = 116739, upload-time = "2025-11-01T21:18:12.393Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/56/6d/0d9848617b9f753b87f214f1c682592f7ca42de085f564352f10f0843026/ipywidgets-8.1.8-py3-none-any.whl", hash = "sha256:ecaca67aed704a338f88f67b1181b58f821ab5dc89c1f0f5ef99db43c1c2921e", size = 139808, upload-time = "2025-11-01T21:18:10.956Z" }, +] + +[[package]] +name = "isoduration" +version = "20.11.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "arrow" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/7c/1a/3c8edc664e06e6bd06cce40c6b22da5f1429aa4224d0c590f3be21c91ead/isoduration-20.11.0.tar.gz", hash = "sha256:ac2f9015137935279eac671f94f89eb00584f940f5dc49462a0c4ee692ba1bd9", size = 11649, upload-time = "2020-11-01T11:00:00.312Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7b/55/e5326141505c5d5e34c5e0935d2908a74e4561eca44108fbfb9c13d2911a/isoduration-20.11.0-py3-none-any.whl", hash = "sha256:b2904c2a4228c3d44f409c8ae8e2370eb21a26f7ac2ec5446df141dde3452042", size = 11321, upload-time = "2020-11-01T10:59:58.02Z" }, +] + +[[package]] +name = "itsdangerous" +version = "2.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/9c/cb/8ac0172223afbccb63986cc25049b154ecfb5e85932587206f42317be31d/itsdangerous-2.2.0.tar.gz", hash = "sha256:e0050c0b7da1eea53ffaf149c0cfbb5c6e2e2b69c4bef22c81fa6eb73e5f6173", size = 54410, upload-time = "2024-04-16T21:28:15.614Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/96/92447566d16df59b2a776c0fb82dbc4d9e07cd95062562af01e408583fc4/itsdangerous-2.2.0-py3-none-any.whl", hash = "sha256:c6242fc49e35958c8b15141343aa660db5fc54d4f13a1db01a3f5891b98700ef", size = 16234, upload-time = "2024-04-16T21:28:14.499Z" }, +] + +[[package]] +name = "jedi" +version = "0.19.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "parso" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/72/3a/79a912fbd4d8dd6fbb02bf69afd3bb72cf0c729bb3063c6f4498603db17a/jedi-0.19.2.tar.gz", hash = "sha256:4770dc3de41bde3966b02eb84fbcf557fb33cce26ad23da12c742fb50ecb11f0", size = 1231287, upload-time = "2024-11-11T01:41:42.873Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c0/5a/9cac0c82afec3d09ccd97c8b6502d48f165f9124db81b4bcb90b4af974ee/jedi-0.19.2-py2.py3-none-any.whl", hash = "sha256:a8ef22bde8490f57fe5c7681a3c83cb58874daf72b4784de3cce5b6ef6edb5b9", size = 1572278, upload-time = "2024-11-11T01:41:40.175Z" }, +] + +[[package]] +name = "jinja2" +version = "3.1.6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markupsafe" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/df/bf/f7da0350254c0ed7c72f3e33cef02e048281fec7ecec5f032d4aac52226b/jinja2-3.1.6.tar.gz", hash = "sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d", size = 245115, upload-time = "2025-03-05T20:05:02.478Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67", size = 134899, upload-time = "2025-03-05T20:05:00.369Z" }, +] + +[[package]] +name = "joblib" +version = "1.5.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/41/f2/d34e8b3a08a9cc79a50b2208a93dce981fe615b64d5a4d4abee421d898df/joblib-1.5.3.tar.gz", hash = "sha256:8561a3269e6801106863fd0d6d84bb737be9e7631e33aaed3fb9ce5953688da3", size = 331603, upload-time = "2025-12-15T08:41:46.427Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7b/91/984aca2ec129e2757d1e4e3c81c3fcda9d0f85b74670a094cc443d9ee949/joblib-1.5.3-py3-none-any.whl", hash = "sha256:5fc3c5039fc5ca8c0276333a188bbd59d6b7ab37fe6632daa76bc7f9ec18e713", size = 309071, upload-time = "2025-12-15T08:41:44.973Z" }, +] + +[[package]] +name = "json5" +version = "0.13.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/77/e8/a3f261a66e4663f22700bc8a17c08cb83e91fbf086726e7a228398968981/json5-0.13.0.tar.gz", hash = "sha256:b1edf8d487721c0bf64d83c28e91280781f6e21f4a797d3261c7c828d4c165bf", size = 52441, upload-time = "2026-01-01T19:42:14.99Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d7/9e/038522f50ceb7e74f1f991bf1b699f24b0c2bbe7c390dd36ad69f4582258/json5-0.13.0-py3-none-any.whl", hash = "sha256:9a08e1dd65f6a4d4c6fa82d216cf2477349ec2346a38fd70cc11d2557499fbcc", size = 36163, upload-time = "2026-01-01T19:42:13.962Z" }, +] + +[[package]] +name = "jsonpointer" +version = "3.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6a/0a/eebeb1fa92507ea94016a2a790b93c2ae41a7e18778f85471dc54475ed25/jsonpointer-3.0.0.tar.gz", hash = "sha256:2b2d729f2091522d61c3b31f82e11870f60b68f43fbc705cb76bf4b832af59ef", size = 9114, upload-time = "2024-06-10T19:24:42.462Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/71/92/5e77f98553e9e75130c78900d000368476aed74276eb8ae8796f65f00918/jsonpointer-3.0.0-py2.py3-none-any.whl", hash = "sha256:13e088adc14fca8b6aa8177c044e12701e6ad4b28ff10e65f2267a90109c9942", size = 7595, upload-time = "2024-06-10T19:24:40.698Z" }, +] + +[[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, upload-time = "2026-01-07T13:41:07.246Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/69/90/f63fb5873511e014207a475e2bb4e8b2e570d655b00ac19a9a0ca0a385ee/jsonschema-4.26.0-py3-none-any.whl", hash = "sha256:d489f15263b8d200f8387e64b4c3a75f06629559fb73deb8fdfb525f2dab50ce", size = 90630, upload-time = "2026-01-07T13:41:05.306Z" }, +] + +[package.optional-dependencies] +format-nongpl = [ + { name = "fqdn" }, + { name = "idna" }, + { name = "isoduration" }, + { name = "jsonpointer" }, + { name = "rfc3339-validator" }, + { name = "rfc3986-validator" }, + { name = "rfc3987-syntax" }, + { name = "uri-template" }, + { name = "webcolors" }, +] + +[[package]] +name = "jsonschema-specifications" +version = "2025.9.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "referencing" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/19/74/a633ee74eb36c44aa6d1095e7cc5569bebf04342ee146178e2d36600708b/jsonschema_specifications-2025.9.1.tar.gz", hash = "sha256:b540987f239e745613c7a9176f3edb72b832a4ac465cf02712288397832b5e8d", size = 32855, upload-time = "2025-09-08T01:34:59.186Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/41/45/1a4ed80516f02155c51f51e8cedb3c1902296743db0bbc66608a0db2814f/jsonschema_specifications-2025.9.1-py3-none-any.whl", hash = "sha256:98802fee3a11ee76ecaca44429fda8a41bff98b00a0f2838151b113f210cc6fe", size = 18437, upload-time = "2025-09-08T01:34:57.871Z" }, +] + +[[package]] +name = "jupyter" +version = "1.1.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "ipykernel" }, + { name = "ipywidgets" }, + { name = "jupyter-console" }, + { name = "jupyterlab" }, + { name = "nbconvert" }, + { name = "notebook" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/58/f3/af28ea964ab8bc1e472dba2e82627d36d470c51f5cd38c37502eeffaa25e/jupyter-1.1.1.tar.gz", hash = "sha256:d55467bceabdea49d7e3624af7e33d59c37fff53ed3a350e1ac957bed731de7a", size = 5714959, upload-time = "2024-08-30T07:15:48.299Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/38/64/285f20a31679bf547b75602702f7800e74dbabae36ef324f716c02804753/jupyter-1.1.1-py2.py3-none-any.whl", hash = "sha256:7a59533c22af65439b24bbe60373a4e95af8f16ac65a6c00820ad378e3f7cc83", size = 2657, upload-time = "2024-08-30T07:15:47.045Z" }, +] + +[[package]] +name = "jupyter-client" +version = "8.8.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jupyter-core" }, + { name = "python-dateutil" }, + { name = "pyzmq" }, + { name = "tornado" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/05/e4/ba649102a3bc3fbca54e7239fb924fd434c766f855693d86de0b1f2bec81/jupyter_client-8.8.0.tar.gz", hash = "sha256:d556811419a4f2d96c869af34e854e3f059b7cc2d6d01a9cd9c85c267691be3e", size = 348020, upload-time = "2026-01-08T13:55:47.938Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2d/0b/ceb7694d864abc0a047649aec263878acb9f792e1fec3e676f22dc9015e3/jupyter_client-8.8.0-py3-none-any.whl", hash = "sha256:f93a5b99c5e23a507b773d3a1136bd6e16c67883ccdbd9a829b0bbdb98cd7d7a", size = 107371, upload-time = "2026-01-08T13:55:45.562Z" }, +] + +[[package]] +name = "jupyter-console" +version = "6.6.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "ipykernel" }, + { name = "ipython" }, + { name = "jupyter-client" }, + { name = "jupyter-core" }, + { name = "prompt-toolkit" }, + { name = "pygments" }, + { name = "pyzmq" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bd/2d/e2fd31e2fc41c14e2bcb6c976ab732597e907523f6b2420305f9fc7fdbdb/jupyter_console-6.6.3.tar.gz", hash = "sha256:566a4bf31c87adbfadf22cdf846e3069b59a71ed5da71d6ba4d8aaad14a53539", size = 34363, upload-time = "2023-03-06T14:13:31.02Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ca/77/71d78d58f15c22db16328a476426f7ac4a60d3a5a7ba3b9627ee2f7903d4/jupyter_console-6.6.3-py3-none-any.whl", hash = "sha256:309d33409fcc92ffdad25f0bcdf9a4a9daa61b6f341177570fdac03de5352485", size = 24510, upload-time = "2023-03-06T14:13:28.229Z" }, +] + +[[package]] +name = "jupyter-core" +version = "5.9.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "platformdirs" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/02/49/9d1284d0dc65e2c757b74c6687b6d319b02f822ad039e5c512df9194d9dd/jupyter_core-5.9.1.tar.gz", hash = "sha256:4d09aaff303b9566c3ce657f580bd089ff5c91f5f89cf7d8846c3cdf465b5508", size = 89814, upload-time = "2025-10-16T19:19:18.444Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e7/e7/80988e32bf6f73919a113473a604f5a8f09094de312b9d52b79c2df7612b/jupyter_core-5.9.1-py3-none-any.whl", hash = "sha256:ebf87fdc6073d142e114c72c9e29a9d7ca03fad818c5d300ce2adc1fb0743407", size = 29032, upload-time = "2025-10-16T19:19:16.783Z" }, +] + +[[package]] +name = "jupyter-events" +version = "0.12.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jsonschema", extra = ["format-nongpl"] }, + { name = "packaging" }, + { name = "python-json-logger" }, + { name = "pyyaml" }, + { name = "referencing" }, + { name = "rfc3339-validator" }, + { name = "rfc3986-validator" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/9d/c3/306d090461e4cf3cd91eceaff84bede12a8e52cd821c2d20c9a4fd728385/jupyter_events-0.12.0.tar.gz", hash = "sha256:fc3fce98865f6784c9cd0a56a20644fc6098f21c8c33834a8d9fe383c17e554b", size = 62196, upload-time = "2025-02-03T17:23:41.485Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e2/48/577993f1f99c552f18a0428731a755e06171f9902fa118c379eb7c04ea22/jupyter_events-0.12.0-py3-none-any.whl", hash = "sha256:6464b2fa5ad10451c3d35fabc75eab39556ae1e2853ad0c0cc31b656731a97fb", size = 19430, upload-time = "2025-02-03T17:23:38.643Z" }, +] + +[[package]] +name = "jupyter-lsp" +version = "2.3.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jupyter-server" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/eb/5a/9066c9f8e94ee517133cd98dba393459a16cd48bba71a82f16a65415206c/jupyter_lsp-2.3.0.tar.gz", hash = "sha256:458aa59339dc868fb784d73364f17dbce8836e906cd75fd471a325cba02e0245", size = 54823, upload-time = "2025-08-27T17:47:34.671Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1a/60/1f6cee0c46263de1173894f0fafcb3475ded276c472c14d25e0280c18d6d/jupyter_lsp-2.3.0-py3-none-any.whl", hash = "sha256:e914a3cb2addf48b1c7710914771aaf1819d46b2e5a79b0f917b5478ec93f34f", size = 76687, upload-time = "2025-08-27T17:47:33.15Z" }, +] + +[[package]] +name = "jupyter-server" +version = "2.17.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "argon2-cffi" }, + { name = "jinja2" }, + { name = "jupyter-client" }, + { name = "jupyter-core" }, + { name = "jupyter-events" }, + { name = "jupyter-server-terminals" }, + { name = "nbconvert" }, + { name = "nbformat" }, + { name = "packaging" }, + { name = "prometheus-client" }, + { name = "pywinpty", marker = "(os_name == 'nt' and platform_machine != 'aarch64' and sys_platform == 'linux') or (os_name == 'nt' and sys_platform != 'darwin' and sys_platform != 'linux')" }, + { name = "pyzmq" }, + { name = "send2trash" }, + { name = "terminado" }, + { name = "tornado" }, + { name = "traitlets" }, + { name = "websocket-client" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/5b/ac/e040ec363d7b6b1f11304cc9f209dac4517ece5d5e01821366b924a64a50/jupyter_server-2.17.0.tar.gz", hash = "sha256:c38ea898566964c888b4772ae1ed58eca84592e88251d2cfc4d171f81f7e99d5", size = 731949, upload-time = "2025-08-21T14:42:54.042Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/92/80/a24767e6ca280f5a49525d987bf3e4d7552bf67c8be07e8ccf20271f8568/jupyter_server-2.17.0-py3-none-any.whl", hash = "sha256:e8cb9c7db4251f51ed307e329b81b72ccf2056ff82d50524debde1ee1870e13f", size = 388221, upload-time = "2025-08-21T14:42:52.034Z" }, +] + +[[package]] +name = "jupyter-server-terminals" +version = "0.5.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pywinpty", marker = "(os_name == 'nt' and platform_machine != 'aarch64' and sys_platform == 'linux') or (os_name == 'nt' and sys_platform != 'darwin' and sys_platform != 'linux')" }, + { name = "terminado" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f4/a7/bcd0a9b0cbba88986fe944aaaf91bfda603e5a50bda8ed15123f381a3b2f/jupyter_server_terminals-0.5.4.tar.gz", hash = "sha256:bbda128ed41d0be9020349f9f1f2a4ab9952a73ed5f5ac9f1419794761fb87f5", size = 31770, upload-time = "2026-01-14T16:53:20.213Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/2d/6674563f71c6320841fc300911a55143925112a72a883e2ca71fba4c618d/jupyter_server_terminals-0.5.4-py3-none-any.whl", hash = "sha256:55be353fc74a80bc7f3b20e6be50a55a61cd525626f578dcb66a5708e2007d14", size = 13704, upload-time = "2026-01-14T16:53:18.738Z" }, +] + +[[package]] +name = "jupyterlab" +version = "4.5.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "async-lru" }, + { name = "httpx" }, + { name = "ipykernel" }, + { name = "jinja2" }, + { name = "jupyter-core" }, + { name = "jupyter-lsp" }, + { name = "jupyter-server" }, + { name = "jupyterlab-server" }, + { name = "notebook-shim" }, + { name = "packaging" }, + { name = "setuptools" }, + { name = "tornado" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/6e/2d/953a5612a34a3c799a62566a548e711d103f631672fd49650e0f2de80870/jupyterlab-4.5.5.tar.gz", hash = "sha256:eac620698c59eb810e1729909be418d9373d18137cac66637141abba613b3fda", size = 23968441, upload-time = "2026-02-23T18:57:34.339Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b9/52/372d3494766d690dfdd286871bf5f7fb9a6c61f7566ccaa7153a163dd1df/jupyterlab-4.5.5-py3-none-any.whl", hash = "sha256:a35694a40a8e7f2e82f387472af24e61b22adcce87b5a8ab97a5d9c486202a6d", size = 12446824, upload-time = "2026-02-23T18:57:30.398Z" }, +] + +[[package]] +name = "jupyterlab-pygments" +version = "0.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/90/51/9187be60d989df97f5f0aba133fa54e7300f17616e065d1ada7d7646b6d6/jupyterlab_pygments-0.3.0.tar.gz", hash = "sha256:721aca4d9029252b11cfa9d185e5b5af4d54772bb8072f9b7036f4170054d35d", size = 512900, upload-time = "2023-11-23T09:26:37.44Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b1/dd/ead9d8ea85bf202d90cc513b533f9c363121c7792674f78e0d8a854b63b4/jupyterlab_pygments-0.3.0-py3-none-any.whl", hash = "sha256:841a89020971da1d8693f1a99997aefc5dc424bb1b251fd6322462a1b8842780", size = 15884, upload-time = "2023-11-23T09:26:34.325Z" }, +] + +[[package]] +name = "jupyterlab-server" +version = "2.28.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "babel" }, + { name = "jinja2" }, + { name = "json5" }, + { name = "jsonschema" }, + { name = "jupyter-server" }, + { name = "packaging" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/d6/2c/90153f189e421e93c4bb4f9e3f59802a1f01abd2ac5cf40b152d7f735232/jupyterlab_server-2.28.0.tar.gz", hash = "sha256:35baa81898b15f93573e2deca50d11ac0ae407ebb688299d3a5213265033712c", size = 76996, upload-time = "2025-10-22T13:59:18.37Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e0/07/a000fe835f76b7e1143242ab1122e6362ef1c03f23f83a045c38859c2ae0/jupyterlab_server-2.28.0-py3-none-any.whl", hash = "sha256:e4355b148fdcf34d312bbbc80f22467d6d20460e8b8736bf235577dd18506968", size = 59830, upload-time = "2025-10-22T13:59:16.767Z" }, +] + +[[package]] +name = "jupyterlab-widgets" +version = "3.0.16" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/26/2d/ef58fed122b268c69c0aa099da20bc67657cdfb2e222688d5731bd5b971d/jupyterlab_widgets-3.0.16.tar.gz", hash = "sha256:423da05071d55cf27a9e602216d35a3a65a3e41cdf9c5d3b643b814ce38c19e0", size = 897423, upload-time = "2025-11-01T21:11:29.724Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ab/b5/36c712098e6191d1b4e349304ef73a8d06aed77e56ceaac8c0a306c7bda1/jupyterlab_widgets-3.0.16-py3-none-any.whl", hash = "sha256:45fa36d9c6422cf2559198e4db481aa243c7a32d9926b500781c830c80f7ecf8", size = 914926, upload-time = "2025-11-01T21:11:28.008Z" }, +] + +[[package]] +name = "kiwisolver" +version = "1.4.9" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/5c/3c/85844f1b0feb11ee581ac23fe5fce65cd049a200c1446708cc1b7f922875/kiwisolver-1.4.9.tar.gz", hash = "sha256:c3b22c26c6fd6811b0ae8363b95ca8ce4ea3c202d3d0975b2914310ceb1bcc4d", size = 97564, upload-time = "2025-08-10T21:27:49.279Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/31/c1/c2686cda909742ab66c7388e9a1a8521a59eb89f8bcfbee28fc980d07e24/kiwisolver-1.4.9-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a5d0432ccf1c7ab14f9949eec60c5d1f924f17c037e9f8b33352fa05799359b8", size = 123681, upload-time = "2025-08-10T21:26:26.725Z" }, + { url = "https://files.pythonhosted.org/packages/ca/f0/f44f50c9f5b1a1860261092e3bc91ecdc9acda848a8b8c6abfda4a24dd5c/kiwisolver-1.4.9-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efb3a45b35622bb6c16dbfab491a8f5a391fe0e9d45ef32f4df85658232ca0e2", size = 66464, upload-time = "2025-08-10T21:26:27.733Z" }, + { url = "https://files.pythonhosted.org/packages/2d/7a/9d90a151f558e29c3936b8a47ac770235f436f2120aca41a6d5f3d62ae8d/kiwisolver-1.4.9-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1a12cf6398e8a0a001a059747a1cbf24705e18fe413bc22de7b3d15c67cffe3f", size = 64961, upload-time = "2025-08-10T21:26:28.729Z" }, + { url = "https://files.pythonhosted.org/packages/e9/e9/f218a2cb3a9ffbe324ca29a9e399fa2d2866d7f348ec3a88df87fc248fc5/kiwisolver-1.4.9-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:b67e6efbf68e077dd71d1a6b37e43e1a99d0bff1a3d51867d45ee8908b931098", size = 1474607, upload-time = "2025-08-10T21:26:29.798Z" }, + { url = "https://files.pythonhosted.org/packages/d9/28/aac26d4c882f14de59041636292bc838db8961373825df23b8eeb807e198/kiwisolver-1.4.9-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5656aa670507437af0207645273ccdfee4f14bacd7f7c67a4306d0dcaeaf6eed", size = 1276546, upload-time = "2025-08-10T21:26:31.401Z" }, + { url = "https://files.pythonhosted.org/packages/8b/ad/8bfc1c93d4cc565e5069162f610ba2f48ff39b7de4b5b8d93f69f30c4bed/kiwisolver-1.4.9-cp313-cp313-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:bfc08add558155345129c7803b3671cf195e6a56e7a12f3dde7c57d9b417f525", size = 1294482, upload-time = "2025-08-10T21:26:32.721Z" }, + { url = "https://files.pythonhosted.org/packages/da/f1/6aca55ff798901d8ce403206d00e033191f63d82dd708a186e0ed2067e9c/kiwisolver-1.4.9-cp313-cp313-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:40092754720b174e6ccf9e845d0d8c7d8e12c3d71e7fc35f55f3813e96376f78", size = 1343720, upload-time = "2025-08-10T21:26:34.032Z" }, + { url = "https://files.pythonhosted.org/packages/d1/91/eed031876c595c81d90d0f6fc681ece250e14bf6998c3d7c419466b523b7/kiwisolver-1.4.9-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:497d05f29a1300d14e02e6441cf0f5ee81c1ff5a304b0d9fb77423974684e08b", size = 2224907, upload-time = "2025-08-10T21:26:35.824Z" }, + { url = "https://files.pythonhosted.org/packages/e9/ec/4d1925f2e49617b9cca9c34bfa11adefad49d00db038e692a559454dfb2e/kiwisolver-1.4.9-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:bdd1a81a1860476eb41ac4bc1e07b3f07259e6d55bbf739b79c8aaedcf512799", size = 2321334, upload-time = "2025-08-10T21:26:37.534Z" }, + { url = "https://files.pythonhosted.org/packages/43/cb/450cd4499356f68802750c6ddc18647b8ea01ffa28f50d20598e0befe6e9/kiwisolver-1.4.9-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:e6b93f13371d341afee3be9f7c5964e3fe61d5fa30f6a30eb49856935dfe4fc3", size = 2488313, upload-time = "2025-08-10T21:26:39.191Z" }, + { url = "https://files.pythonhosted.org/packages/71/67/fc76242bd99f885651128a5d4fa6083e5524694b7c88b489b1b55fdc491d/kiwisolver-1.4.9-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:d75aa530ccfaa593da12834b86a0724f58bff12706659baa9227c2ccaa06264c", size = 2291970, upload-time = "2025-08-10T21:26:40.828Z" }, + { url = "https://files.pythonhosted.org/packages/75/bd/f1a5d894000941739f2ae1b65a32892349423ad49c2e6d0771d0bad3fae4/kiwisolver-1.4.9-cp313-cp313-win_amd64.whl", hash = "sha256:dd0a578400839256df88c16abddf9ba14813ec5f21362e1fe65022e00c883d4d", size = 73894, upload-time = "2025-08-10T21:26:42.33Z" }, + { url = "https://files.pythonhosted.org/packages/95/38/dce480814d25b99a391abbddadc78f7c117c6da34be68ca8b02d5848b424/kiwisolver-1.4.9-cp313-cp313-win_arm64.whl", hash = "sha256:d4188e73af84ca82468f09cadc5ac4db578109e52acb4518d8154698d3a87ca2", size = 64995, upload-time = "2025-08-10T21:26:43.889Z" }, + { url = "https://files.pythonhosted.org/packages/e2/37/7d218ce5d92dadc5ebdd9070d903e0c7cf7edfe03f179433ac4d13ce659c/kiwisolver-1.4.9-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:5a0f2724dfd4e3b3ac5a82436a8e6fd16baa7d507117e4279b660fe8ca38a3a1", size = 126510, upload-time = "2025-08-10T21:26:44.915Z" }, + { url = "https://files.pythonhosted.org/packages/23/b0/e85a2b48233daef4b648fb657ebbb6f8367696a2d9548a00b4ee0eb67803/kiwisolver-1.4.9-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:1b11d6a633e4ed84fc0ddafd4ebfd8ea49b3f25082c04ad12b8315c11d504dc1", size = 67903, upload-time = "2025-08-10T21:26:45.934Z" }, + { url = "https://files.pythonhosted.org/packages/44/98/f2425bc0113ad7de24da6bb4dae1343476e95e1d738be7c04d31a5d037fd/kiwisolver-1.4.9-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:61874cdb0a36016354853593cffc38e56fc9ca5aa97d2c05d3dcf6922cd55a11", size = 66402, upload-time = "2025-08-10T21:26:47.101Z" }, + { url = "https://files.pythonhosted.org/packages/98/d8/594657886df9f34c4177cc353cc28ca7e6e5eb562d37ccc233bff43bbe2a/kiwisolver-1.4.9-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:60c439763a969a6af93b4881db0eed8fadf93ee98e18cbc35bc8da868d0c4f0c", size = 1582135, upload-time = "2025-08-10T21:26:48.665Z" }, + { url = "https://files.pythonhosted.org/packages/5c/c6/38a115b7170f8b306fc929e166340c24958347308ea3012c2b44e7e295db/kiwisolver-1.4.9-cp313-cp313t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:92a2f997387a1b79a75e7803aa7ded2cfbe2823852ccf1ba3bcf613b62ae3197", size = 1389409, upload-time = "2025-08-10T21:26:50.335Z" }, + { url = "https://files.pythonhosted.org/packages/bf/3b/e04883dace81f24a568bcee6eb3001da4ba05114afa622ec9b6fafdc1f5e/kiwisolver-1.4.9-cp313-cp313t-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a31d512c812daea6d8b3be3b2bfcbeb091dbb09177706569bcfc6240dcf8b41c", size = 1401763, upload-time = "2025-08-10T21:26:51.867Z" }, + { url = "https://files.pythonhosted.org/packages/9f/80/20ace48e33408947af49d7d15c341eaee69e4e0304aab4b7660e234d6288/kiwisolver-1.4.9-cp313-cp313t-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:52a15b0f35dad39862d376df10c5230155243a2c1a436e39eb55623ccbd68185", size = 1453643, upload-time = "2025-08-10T21:26:53.592Z" }, + { url = "https://files.pythonhosted.org/packages/64/31/6ce4380a4cd1f515bdda976a1e90e547ccd47b67a1546d63884463c92ca9/kiwisolver-1.4.9-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:a30fd6fdef1430fd9e1ba7b3398b5ee4e2887783917a687d86ba69985fb08748", size = 2330818, upload-time = "2025-08-10T21:26:55.051Z" }, + { url = "https://files.pythonhosted.org/packages/fa/e9/3f3fcba3bcc7432c795b82646306e822f3fd74df0ee81f0fa067a1f95668/kiwisolver-1.4.9-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:cc9617b46837c6468197b5945e196ee9ca43057bb7d9d1ae688101e4e1dddf64", size = 2419963, upload-time = "2025-08-10T21:26:56.421Z" }, + { url = "https://files.pythonhosted.org/packages/99/43/7320c50e4133575c66e9f7dadead35ab22d7c012a3b09bb35647792b2a6d/kiwisolver-1.4.9-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:0ab74e19f6a2b027ea4f845a78827969af45ce790e6cb3e1ebab71bdf9f215ff", size = 2594639, upload-time = "2025-08-10T21:26:57.882Z" }, + { url = "https://files.pythonhosted.org/packages/65/d6/17ae4a270d4a987ef8a385b906d2bdfc9fce502d6dc0d3aea865b47f548c/kiwisolver-1.4.9-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:dba5ee5d3981160c28d5490f0d1b7ed730c22470ff7f6cc26cfcfaacb9896a07", size = 2391741, upload-time = "2025-08-10T21:26:59.237Z" }, + { url = "https://files.pythonhosted.org/packages/2a/8f/8f6f491d595a9e5912971f3f863d81baddccc8a4d0c3749d6a0dd9ffc9df/kiwisolver-1.4.9-cp313-cp313t-win_arm64.whl", hash = "sha256:0749fd8f4218ad2e851e11cc4dc05c7cbc0cbc4267bdfdb31782e65aace4ee9c", size = 68646, upload-time = "2025-08-10T21:27:00.52Z" }, + { url = "https://files.pythonhosted.org/packages/6b/32/6cc0fbc9c54d06c2969faa9c1d29f5751a2e51809dd55c69055e62d9b426/kiwisolver-1.4.9-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:9928fe1eb816d11ae170885a74d074f57af3a0d65777ca47e9aeb854a1fba386", size = 123806, upload-time = "2025-08-10T21:27:01.537Z" }, + { url = "https://files.pythonhosted.org/packages/b2/dd/2bfb1d4a4823d92e8cbb420fe024b8d2167f72079b3bb941207c42570bdf/kiwisolver-1.4.9-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:d0005b053977e7b43388ddec89fa567f43d4f6d5c2c0affe57de5ebf290dc552", size = 66605, upload-time = "2025-08-10T21:27:03.335Z" }, + { url = "https://files.pythonhosted.org/packages/f7/69/00aafdb4e4509c2ca6064646cba9cd4b37933898f426756adb2cb92ebbed/kiwisolver-1.4.9-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:2635d352d67458b66fd0667c14cb1d4145e9560d503219034a18a87e971ce4f3", size = 64925, upload-time = "2025-08-10T21:27:04.339Z" }, + { url = "https://files.pythonhosted.org/packages/43/dc/51acc6791aa14e5cb6d8a2e28cefb0dc2886d8862795449d021334c0df20/kiwisolver-1.4.9-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:767c23ad1c58c9e827b649a9ab7809fd5fd9db266a9cf02b0e926ddc2c680d58", size = 1472414, upload-time = "2025-08-10T21:27:05.437Z" }, + { url = "https://files.pythonhosted.org/packages/3d/bb/93fa64a81db304ac8a246f834d5094fae4b13baf53c839d6bb6e81177129/kiwisolver-1.4.9-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:72d0eb9fba308b8311685c2268cf7d0a0639a6cd027d8128659f72bdd8a024b4", size = 1281272, upload-time = "2025-08-10T21:27:07.063Z" }, + { url = "https://files.pythonhosted.org/packages/70/e6/6df102916960fb8d05069d4bd92d6d9a8202d5a3e2444494e7cd50f65b7a/kiwisolver-1.4.9-cp314-cp314-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f68e4f3eeca8fb22cc3d731f9715a13b652795ef657a13df1ad0c7dc0e9731df", size = 1298578, upload-time = "2025-08-10T21:27:08.452Z" }, + { url = "https://files.pythonhosted.org/packages/7c/47/e142aaa612f5343736b087864dbaebc53ea8831453fb47e7521fa8658f30/kiwisolver-1.4.9-cp314-cp314-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d84cd4061ae292d8ac367b2c3fa3aad11cb8625a95d135fe93f286f914f3f5a6", size = 1345607, upload-time = "2025-08-10T21:27:10.125Z" }, + { url = "https://files.pythonhosted.org/packages/54/89/d641a746194a0f4d1a3670fb900d0dbaa786fb98341056814bc3f058fa52/kiwisolver-1.4.9-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:a60ea74330b91bd22a29638940d115df9dc00af5035a9a2a6ad9399ffb4ceca5", size = 2230150, upload-time = "2025-08-10T21:27:11.484Z" }, + { url = "https://files.pythonhosted.org/packages/aa/6b/5ee1207198febdf16ac11f78c5ae40861b809cbe0e6d2a8d5b0b3044b199/kiwisolver-1.4.9-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:ce6a3a4e106cf35c2d9c4fa17c05ce0b180db622736845d4315519397a77beaf", size = 2325979, upload-time = "2025-08-10T21:27:12.917Z" }, + { url = "https://files.pythonhosted.org/packages/fc/ff/b269eefd90f4ae14dcc74973d5a0f6d28d3b9bb1afd8c0340513afe6b39a/kiwisolver-1.4.9-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:77937e5e2a38a7b48eef0585114fe7930346993a88060d0bf886086d2aa49ef5", size = 2491456, upload-time = "2025-08-10T21:27:14.353Z" }, + { url = "https://files.pythonhosted.org/packages/fc/d4/10303190bd4d30de547534601e259a4fbf014eed94aae3e5521129215086/kiwisolver-1.4.9-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:24c175051354f4a28c5d6a31c93906dc653e2bf234e8a4bbfb964892078898ce", size = 2294621, upload-time = "2025-08-10T21:27:15.808Z" }, + { url = "https://files.pythonhosted.org/packages/28/e0/a9a90416fce5c0be25742729c2ea52105d62eda6c4be4d803c2a7be1fa50/kiwisolver-1.4.9-cp314-cp314-win_amd64.whl", hash = "sha256:0763515d4df10edf6d06a3c19734e2566368980d21ebec439f33f9eb936c07b7", size = 75417, upload-time = "2025-08-10T21:27:17.436Z" }, + { url = "https://files.pythonhosted.org/packages/1f/10/6949958215b7a9a264299a7db195564e87900f709db9245e4ebdd3c70779/kiwisolver-1.4.9-cp314-cp314-win_arm64.whl", hash = "sha256:0e4e2bf29574a6a7b7f6cb5fa69293b9f96c928949ac4a53ba3f525dffb87f9c", size = 66582, upload-time = "2025-08-10T21:27:18.436Z" }, + { url = "https://files.pythonhosted.org/packages/ec/79/60e53067903d3bc5469b369fe0dfc6b3482e2133e85dae9daa9527535991/kiwisolver-1.4.9-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:d976bbb382b202f71c67f77b0ac11244021cfa3f7dfd9e562eefcea2df711548", size = 126514, upload-time = "2025-08-10T21:27:19.465Z" }, + { url = "https://files.pythonhosted.org/packages/25/d1/4843d3e8d46b072c12a38c97c57fab4608d36e13fe47d47ee96b4d61ba6f/kiwisolver-1.4.9-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:2489e4e5d7ef9a1c300a5e0196e43d9c739f066ef23270607d45aba368b91f2d", size = 67905, upload-time = "2025-08-10T21:27:20.51Z" }, + { url = "https://files.pythonhosted.org/packages/8c/ae/29ffcbd239aea8b93108de1278271ae764dfc0d803a5693914975f200596/kiwisolver-1.4.9-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:e2ea9f7ab7fbf18fffb1b5434ce7c69a07582f7acc7717720f1d69f3e806f90c", size = 66399, upload-time = "2025-08-10T21:27:21.496Z" }, + { url = "https://files.pythonhosted.org/packages/a1/ae/d7ba902aa604152c2ceba5d352d7b62106bedbccc8e95c3934d94472bfa3/kiwisolver-1.4.9-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:b34e51affded8faee0dfdb705416153819d8ea9250bbbf7ea1b249bdeb5f1122", size = 1582197, upload-time = "2025-08-10T21:27:22.604Z" }, + { url = "https://files.pythonhosted.org/packages/f2/41/27c70d427eddb8bc7e4f16420a20fefc6f480312122a59a959fdfe0445ad/kiwisolver-1.4.9-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d8aacd3d4b33b772542b2e01beb50187536967b514b00003bdda7589722d2a64", size = 1390125, upload-time = "2025-08-10T21:27:24.036Z" }, + { url = "https://files.pythonhosted.org/packages/41/42/b3799a12bafc76d962ad69083f8b43b12bf4fe78b097b12e105d75c9b8f1/kiwisolver-1.4.9-cp314-cp314t-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:7cf974dd4e35fa315563ac99d6287a1024e4dc2077b8a7d7cd3d2fb65d283134", size = 1402612, upload-time = "2025-08-10T21:27:25.773Z" }, + { url = "https://files.pythonhosted.org/packages/d2/b5/a210ea073ea1cfaca1bb5c55a62307d8252f531beb364e18aa1e0888b5a0/kiwisolver-1.4.9-cp314-cp314t-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:85bd218b5ecfbee8c8a82e121802dcb519a86044c9c3b2e4aef02fa05c6da370", size = 1453990, upload-time = "2025-08-10T21:27:27.089Z" }, + { url = "https://files.pythonhosted.org/packages/5f/ce/a829eb8c033e977d7ea03ed32fb3c1781b4fa0433fbadfff29e39c676f32/kiwisolver-1.4.9-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:0856e241c2d3df4efef7c04a1e46b1936b6120c9bcf36dd216e3acd84bc4fb21", size = 2331601, upload-time = "2025-08-10T21:27:29.343Z" }, + { url = "https://files.pythonhosted.org/packages/e0/4b/b5e97eb142eb9cd0072dacfcdcd31b1c66dc7352b0f7c7255d339c0edf00/kiwisolver-1.4.9-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:9af39d6551f97d31a4deebeac6f45b156f9755ddc59c07b402c148f5dbb6482a", size = 2422041, upload-time = "2025-08-10T21:27:30.754Z" }, + { url = "https://files.pythonhosted.org/packages/40/be/8eb4cd53e1b85ba4edc3a9321666f12b83113a178845593307a3e7891f44/kiwisolver-1.4.9-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:bb4ae2b57fc1d8cbd1cf7b1d9913803681ffa903e7488012be5b76dedf49297f", size = 2594897, upload-time = "2025-08-10T21:27:32.803Z" }, + { url = "https://files.pythonhosted.org/packages/99/dd/841e9a66c4715477ea0abc78da039832fbb09dac5c35c58dc4c41a407b8a/kiwisolver-1.4.9-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:aedff62918805fb62d43a4aa2ecd4482c380dc76cd31bd7c8878588a61bd0369", size = 2391835, upload-time = "2025-08-10T21:27:34.23Z" }, + { url = "https://files.pythonhosted.org/packages/0c/28/4b2e5c47a0da96896fdfdb006340ade064afa1e63675d01ea5ac222b6d52/kiwisolver-1.4.9-cp314-cp314t-win_amd64.whl", hash = "sha256:1fa333e8b2ce4d9660f2cda9c0e1b6bafcfb2457a9d259faa82289e73ec24891", size = 79988, upload-time = "2025-08-10T21:27:35.587Z" }, + { url = "https://files.pythonhosted.org/packages/80/be/3578e8afd18c88cdf9cb4cffde75a96d2be38c5a903f1ed0ceec061bd09e/kiwisolver-1.4.9-cp314-cp314t-win_arm64.whl", hash = "sha256:4a48a2ce79d65d363597ef7b567ce3d14d68783d2b2263d98db3d9477805ba32", size = 70260, upload-time = "2025-08-10T21:27:36.606Z" }, +] + +[[package]] +name = "lark" +version = "1.3.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/da/34/28fff3ab31ccff1fd4f6c7c7b0ceb2b6968d8ea4950663eadcb5720591a0/lark-1.3.1.tar.gz", hash = "sha256:b426a7a6d6d53189d318f2b6236ab5d6429eaf09259f1ca33eb716eed10d2905", size = 382732, upload-time = "2025-10-27T18:25:56.653Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/82/3d/14ce75ef66813643812f3093ab17e46d3a206942ce7376d31ec2d36229e7/lark-1.3.1-py3-none-any.whl", hash = "sha256:c629b661023a014c37da873b4ff58a817398d12635d3bbb2c5a03be7fe5d1e12", size = 113151, upload-time = "2025-10-27T18:25:54.882Z" }, +] + +[[package]] +name = "lazy-loader" +version = "0.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "packaging" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/49/ac/21a1f8aa3777f5658576777ea76bfb124b702c520bbe90edf4ae9915eafa/lazy_loader-0.5.tar.gz", hash = "sha256:717f9179a0dbed357012ddad50a5ad3d5e4d9a0b8712680d4e687f5e6e6ed9b3", size = 15294, upload-time = "2026-03-06T15:45:09.054Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8a/a1/8d812e53a5da1687abb10445275d41a8b13adb781bbf7196ddbcf8d88505/lazy_loader-0.5-py3-none-any.whl", hash = "sha256:ab0ea149e9c554d4ffeeb21105ac60bed7f3b4fd69b1d2360a4add51b170b005", size = 8044, upload-time = "2026-03-06T15:45:07.668Z" }, +] + +[[package]] +name = "lime" +version = "0.2.0.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "matplotlib" }, + { name = "numpy" }, + { name = "scikit-image" }, + { name = "scikit-learn" }, + { name = "scipy" }, + { name = "tqdm" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f5/86/91a13127d83d793ecb50eb75e716f76e6eda809b6803c5a4ff462339789e/lime-0.2.0.1.tar.gz", hash = "sha256:76960e4f055feb53e89b5022383bafc87b63f25bac6265984b0a333d1a57f781", size = 275719, upload-time = "2020-06-26T21:38:15.46Z" } + +[[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, upload-time = "2025-08-11T12:57:52.854Z" } +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, upload-time = "2025-08-11T12:57:51.923Z" }, +] + +[[package]] +name = "markupsafe" +version = "2.1.5" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/87/5b/aae44c6655f3801e81aa3eef09dbbf012431987ba564d7231722f68df02d/MarkupSafe-2.1.5.tar.gz", hash = "sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b", size = 19384, upload-time = "2024-02-02T16:31:22.863Z" } + +[[package]] +name = "matplotlib" +version = "3.10.8" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "contourpy" }, + { name = "cycler" }, + { name = "fonttools" }, + { name = "kiwisolver" }, + { name = "numpy" }, + { name = "packaging" }, + { name = "pillow" }, + { name = "pyparsing" }, + { name = "python-dateutil" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8a/76/d3c6e3a13fe484ebe7718d14e269c9569c4eb0020a968a327acb3b9a8fe6/matplotlib-3.10.8.tar.gz", hash = "sha256:2299372c19d56bcd35cf05a2738308758d32b9eaed2371898d8f5bd33f084aa3", size = 34806269, upload-time = "2025-12-10T22:56:51.155Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3d/b9/15fd5541ef4f5b9a17eefd379356cf12175fe577424e7b1d80676516031a/matplotlib-3.10.8-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:3f2e409836d7f5ac2f1c013110a4d50b9f7edc26328c108915f9075d7d7a91b6", size = 8261076, upload-time = "2025-12-10T22:55:44.648Z" }, + { url = "https://files.pythonhosted.org/packages/8d/a0/2ba3473c1b66b9c74dc7107c67e9008cb1782edbe896d4c899d39ae9cf78/matplotlib-3.10.8-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:56271f3dac49a88d7fca5060f004d9d22b865f743a12a23b1e937a0be4818ee1", size = 8148794, upload-time = "2025-12-10T22:55:46.252Z" }, + { url = "https://files.pythonhosted.org/packages/75/97/a471f1c3eb1fd6f6c24a31a5858f443891d5127e63a7788678d14e249aea/matplotlib-3.10.8-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:a0a7f52498f72f13d4a25ea70f35f4cb60642b466cbb0a9be951b5bc3f45a486", size = 8718474, upload-time = "2025-12-10T22:55:47.864Z" }, + { url = "https://files.pythonhosted.org/packages/01/be/cd478f4b66f48256f42927d0acbcd63a26a893136456cd079c0cc24fbabf/matplotlib-3.10.8-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:646d95230efb9ca614a7a594d4fcacde0ac61d25e37dd51710b36477594963ce", size = 9549637, upload-time = "2025-12-10T22:55:50.048Z" }, + { url = "https://files.pythonhosted.org/packages/5d/7c/8dc289776eae5109e268c4fb92baf870678dc048a25d4ac903683b86d5bf/matplotlib-3.10.8-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:f89c151aab2e2e23cb3fe0acad1e8b82841fd265379c4cecd0f3fcb34c15e0f6", size = 9613678, upload-time = "2025-12-10T22:55:52.21Z" }, + { url = "https://files.pythonhosted.org/packages/64/40/37612487cc8a437d4dd261b32ca21fe2d79510fe74af74e1f42becb1bdb8/matplotlib-3.10.8-cp313-cp313-win_amd64.whl", hash = "sha256:e8ea3e2d4066083e264e75c829078f9e149fa119d27e19acd503de65e0b13149", size = 8142686, upload-time = "2025-12-10T22:55:54.253Z" }, + { url = "https://files.pythonhosted.org/packages/66/52/8d8a8730e968185514680c2a6625943f70269509c3dcfc0dcf7d75928cb8/matplotlib-3.10.8-cp313-cp313-win_arm64.whl", hash = "sha256:c108a1d6fa78a50646029cb6d49808ff0fc1330fda87fa6f6250c6b5369b6645", size = 8012917, upload-time = "2025-12-10T22:55:56.268Z" }, + { url = "https://files.pythonhosted.org/packages/b5/27/51fe26e1062f298af5ef66343d8ef460e090a27fea73036c76c35821df04/matplotlib-3.10.8-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:ad3d9833a64cf48cc4300f2b406c3d0f4f4724a91c0bd5640678a6ba7c102077", size = 8305679, upload-time = "2025-12-10T22:55:57.856Z" }, + { url = "https://files.pythonhosted.org/packages/2c/1e/4de865bc591ac8e3062e835f42dd7fe7a93168d519557837f0e37513f629/matplotlib-3.10.8-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:eb3823f11823deade26ce3b9f40dcb4a213da7a670013929f31d5f5ed1055b22", size = 8198336, upload-time = "2025-12-10T22:55:59.371Z" }, + { url = "https://files.pythonhosted.org/packages/c6/cb/2f7b6e75fb4dce87ef91f60cac4f6e34f4c145ab036a22318ec837971300/matplotlib-3.10.8-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d9050fee89a89ed57b4fb2c1bfac9a3d0c57a0d55aed95949eedbc42070fea39", size = 8731653, upload-time = "2025-12-10T22:56:01.032Z" }, + { url = "https://files.pythonhosted.org/packages/46/b3/bd9c57d6ba670a37ab31fb87ec3e8691b947134b201f881665b28cc039ff/matplotlib-3.10.8-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b44d07310e404ba95f8c25aa5536f154c0a8ec473303535949e52eb71d0a1565", size = 9561356, upload-time = "2025-12-10T22:56:02.95Z" }, + { url = "https://files.pythonhosted.org/packages/c0/3d/8b94a481456dfc9dfe6e39e93b5ab376e50998cddfd23f4ae3b431708f16/matplotlib-3.10.8-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:0a33deb84c15ede243aead39f77e990469fff93ad1521163305095b77b72ce4a", size = 9614000, upload-time = "2025-12-10T22:56:05.411Z" }, + { url = "https://files.pythonhosted.org/packages/bd/cd/bc06149fe5585ba800b189a6a654a75f1f127e8aab02fd2be10df7fa500c/matplotlib-3.10.8-cp313-cp313t-win_amd64.whl", hash = "sha256:3a48a78d2786784cc2413e57397981fb45c79e968d99656706018d6e62e57958", size = 8220043, upload-time = "2025-12-10T22:56:07.551Z" }, + { url = "https://files.pythonhosted.org/packages/e3/de/b22cf255abec916562cc04eef457c13e58a1990048de0c0c3604d082355e/matplotlib-3.10.8-cp313-cp313t-win_arm64.whl", hash = "sha256:15d30132718972c2c074cd14638c7f4592bd98719e2308bccea40e0538bc0cb5", size = 8062075, upload-time = "2025-12-10T22:56:09.178Z" }, + { url = "https://files.pythonhosted.org/packages/3c/43/9c0ff7a2f11615e516c3b058e1e6e8f9614ddeca53faca06da267c48345d/matplotlib-3.10.8-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:b53285e65d4fa4c86399979e956235deb900be5baa7fc1218ea67fbfaeaadd6f", size = 8262481, upload-time = "2025-12-10T22:56:10.885Z" }, + { url = "https://files.pythonhosted.org/packages/6f/ca/e8ae28649fcdf039fda5ef554b40a95f50592a3c47e6f7270c9561c12b07/matplotlib-3.10.8-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:32f8dce744be5569bebe789e46727946041199030db8aeb2954d26013a0eb26b", size = 8151473, upload-time = "2025-12-10T22:56:12.377Z" }, + { url = "https://files.pythonhosted.org/packages/f1/6f/009d129ae70b75e88cbe7e503a12a4c0670e08ed748a902c2568909e9eb5/matplotlib-3.10.8-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4cf267add95b1c88300d96ca837833d4112756045364f5c734a2276038dae27d", size = 9553896, upload-time = "2025-12-10T22:56:14.432Z" }, + { url = "https://files.pythonhosted.org/packages/f5/26/4221a741eb97967bc1fd5e4c52b9aa5a91b2f4ec05b59f6def4d820f9df9/matplotlib-3.10.8-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2cf5bd12cecf46908f286d7838b2abc6c91cda506c0445b8223a7c19a00df008", size = 9824193, upload-time = "2025-12-10T22:56:16.29Z" }, + { url = "https://files.pythonhosted.org/packages/1f/f3/3abf75f38605772cf48a9daf5821cd4f563472f38b4b828c6fba6fa6d06e/matplotlib-3.10.8-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:41703cc95688f2516b480f7f339d8851a6035f18e100ee6a32bc0b8536a12a9c", size = 9615444, upload-time = "2025-12-10T22:56:18.155Z" }, + { url = "https://files.pythonhosted.org/packages/93/a5/de89ac80f10b8dc615807ee1133cd99ac74082581196d4d9590bea10690d/matplotlib-3.10.8-cp314-cp314-win_amd64.whl", hash = "sha256:83d282364ea9f3e52363da262ce32a09dfe241e4080dcedda3c0db059d3c1f11", size = 8272719, upload-time = "2025-12-10T22:56:20.366Z" }, + { url = "https://files.pythonhosted.org/packages/69/ce/b006495c19ccc0a137b48083168a37bd056392dee02f87dba0472f2797fe/matplotlib-3.10.8-cp314-cp314-win_arm64.whl", hash = "sha256:2c1998e92cd5999e295a731bcb2911c75f597d937341f3030cc24ef2733d78a8", size = 8144205, upload-time = "2025-12-10T22:56:22.239Z" }, + { url = "https://files.pythonhosted.org/packages/68/d9/b31116a3a855bd313c6fcdb7226926d59b041f26061c6c5b1be66a08c826/matplotlib-3.10.8-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:b5a2b97dbdc7d4f353ebf343744f1d1f1cca8aa8bfddb4262fcf4306c3761d50", size = 8305785, upload-time = "2025-12-10T22:56:24.218Z" }, + { url = "https://files.pythonhosted.org/packages/1e/90/6effe8103f0272685767ba5f094f453784057072f49b393e3ea178fe70a5/matplotlib-3.10.8-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:3f5c3e4da343bba819f0234186b9004faba952cc420fbc522dc4e103c1985908", size = 8198361, upload-time = "2025-12-10T22:56:26.787Z" }, + { url = "https://files.pythonhosted.org/packages/d7/65/a73188711bea603615fc0baecca1061429ac16940e2385433cc778a9d8e7/matplotlib-3.10.8-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5f62550b9a30afde8c1c3ae450e5eb547d579dd69b25c2fc7a1c67f934c1717a", size = 9561357, upload-time = "2025-12-10T22:56:28.953Z" }, + { url = "https://files.pythonhosted.org/packages/f4/3d/b5c5d5d5be8ce63292567f0e2c43dde9953d3ed86ac2de0a72e93c8f07a1/matplotlib-3.10.8-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:495672de149445ec1b772ff2c9ede9b769e3cb4f0d0aa7fa730d7f59e2d4e1c1", size = 9823610, upload-time = "2025-12-10T22:56:31.455Z" }, + { url = "https://files.pythonhosted.org/packages/4d/4b/e7beb6bbd49f6bae727a12b270a2654d13c397576d25bd6786e47033300f/matplotlib-3.10.8-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:595ba4d8fe983b88f0eec8c26a241e16d6376fe1979086232f481f8f3f67494c", size = 9614011, upload-time = "2025-12-10T22:56:33.85Z" }, + { url = "https://files.pythonhosted.org/packages/7c/e6/76f2813d31f032e65f6f797e3f2f6e4aab95b65015924b1c51370395c28a/matplotlib-3.10.8-cp314-cp314t-win_amd64.whl", hash = "sha256:25d380fe8b1dc32cf8f0b1b448470a77afb195438bafdf1d858bfb876f3edf7b", size = 8362801, upload-time = "2025-12-10T22:56:36.107Z" }, + { url = "https://files.pythonhosted.org/packages/5d/49/d651878698a0b67f23aa28e17f45a6d6dd3d3f933fa29087fa4ce5947b5a/matplotlib-3.10.8-cp314-cp314t-win_arm64.whl", hash = "sha256:113bb52413ea508ce954a02c10ffd0d565f9c3bc7f2eddc27dfe1731e71c7b5f", size = 8192560, upload-time = "2025-12-10T22:56:38.008Z" }, +] + +[[package]] +name = "matplotlib-inline" +version = "0.2.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c7/74/97e72a36efd4ae2bccb3463284300f8953f199b5ffbc04cbbb0ec78f74b1/matplotlib_inline-0.2.1.tar.gz", hash = "sha256:e1ee949c340d771fc39e241ea75683deb94762c8fa5f2927ec57c83c4dffa9fe", size = 8110, upload-time = "2025-10-23T09:00:22.126Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/af/33/ee4519fa02ed11a94aef9559552f3b17bb863f2ecfe1a35dc7f548cde231/matplotlib_inline-0.2.1-py3-none-any.whl", hash = "sha256:d56ce5156ba6085e00a9d54fead6ed29a9c47e215cd1bba2e976ef39f5710a76", size = 9516, upload-time = "2025-10-23T09:00:20.675Z" }, +] + +[[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, upload-time = "2022-08-14T12:40:10.846Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", size = 9979, upload-time = "2022-08-14T12:40:09.779Z" }, +] + +[[package]] +name = "mistune" +version = "3.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/9d/55/d01f0c4b45ade6536c51170b9043db8b2ec6ddf4a35c7ea3f5f559ac935b/mistune-3.2.0.tar.gz", hash = "sha256:708487c8a8cdd99c9d90eb3ed4c3ed961246ff78ac82f03418f5183ab70e398a", size = 95467, upload-time = "2025-12-23T11:36:34.994Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9b/f7/4a5e785ec9fbd65146a27b6b70b6cdc161a66f2024e4b04ac06a67f5578b/mistune-3.2.0-py3-none-any.whl", hash = "sha256:febdc629a3c78616b94393c6580551e0e34cc289987ec6c35ed3f4be42d0eee1", size = 53598, upload-time = "2025-12-23T11:36:33.211Z" }, +] + +[[package]] +name = "mpmath" +version = "1.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e0/47/dd32fa426cc72114383ac549964eecb20ecfd886d1e5ccf5340b55b02f57/mpmath-1.3.0.tar.gz", hash = "sha256:7a28eb2a9774d00c7bc92411c19a89209d5da7c4c9a9e227be8330a23a25b91f", size = 508106, upload-time = "2023-03-07T16:47:11.061Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/43/e3/7d92a15f894aa0c9c4b49b8ee9ac9850d6e63b03c9c32c0367a13ae62209/mpmath-1.3.0-py3-none-any.whl", hash = "sha256:a0b2b9fe80bbcd81a6647ff13108738cfb482d481d826cc0e02f5b35e5c88d2c", size = 536198, upload-time = "2023-03-07T16:47:09.197Z" }, +] + +[[package]] +name = "nbclient" +version = "0.10.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jupyter-client" }, + { name = "jupyter-core" }, + { name = "nbformat" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/56/91/1c1d5a4b9a9ebba2b4e32b8c852c2975c872aec1fe42ab5e516b2cecd193/nbclient-0.10.4.tar.gz", hash = "sha256:1e54091b16e6da39e297b0ece3e10f6f29f4ac4e8ee515d29f8a7099bd6553c9", size = 62554, upload-time = "2025-12-23T07:45:46.369Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/83/a0/5b0c2f11142ed1dddec842457d3f65eaf71a0080894eb6f018755b319c3a/nbclient-0.10.4-py3-none-any.whl", hash = "sha256:9162df5a7373d70d606527300a95a975a47c137776cd942e52d9c7e29ff83440", size = 25465, upload-time = "2025-12-23T07:45:44.51Z" }, +] + +[[package]] +name = "nbconvert" +version = "7.17.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "beautifulsoup4" }, + { name = "bleach", extra = ["css"] }, + { name = "defusedxml" }, + { name = "jinja2" }, + { name = "jupyter-core" }, + { name = "jupyterlab-pygments" }, + { name = "markupsafe" }, + { name = "mistune" }, + { name = "nbclient" }, + { name = "nbformat" }, + { name = "packaging" }, + { name = "pandocfilters" }, + { name = "pygments" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/38/47/81f886b699450d0569f7bc551df2b1673d18df7ff25cc0c21ca36ed8a5ff/nbconvert-7.17.0.tar.gz", hash = "sha256:1b2696f1b5be12309f6c7d707c24af604b87dfaf6d950794c7b07acab96dda78", size = 862855, upload-time = "2026-01-29T16:37:48.478Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0d/4b/8d5f796a792f8a25f6925a96032f098789f448571eb92011df1ae59e8ea8/nbconvert-7.17.0-py3-none-any.whl", hash = "sha256:4f99a63b337b9a23504347afdab24a11faa7d86b405e5c8f9881cd313336d518", size = 261510, upload-time = "2026-01-29T16:37:46.322Z" }, +] + +[[package]] +name = "nbformat" +version = "5.10.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "fastjsonschema" }, + { name = "jsonschema" }, + { name = "jupyter-core" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/6d/fd/91545e604bc3dad7dca9ed03284086039b294c6b3d75c0d2fa45f9e9caf3/nbformat-5.10.4.tar.gz", hash = "sha256:322168b14f937a5d11362988ecac2a4952d3d8e3a2cbeb2319584631226d5b3a", size = 142749, upload-time = "2024-04-04T11:20:37.371Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a9/82/0340caa499416c78e5d8f5f05947ae4bc3cba53c9f038ab6e9ed964e22f1/nbformat-5.10.4-py3-none-any.whl", hash = "sha256:3b48d6c8fbca4b299bf3982ea7db1af21580e4fec269ad087b9e81588891200b", size = 78454, upload-time = "2024-04-04T11:20:34.895Z" }, +] + +[[package]] +name = "nest-asyncio" +version = "1.6.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/83/f8/51569ac65d696c8ecbee95938f89d4abf00f47d58d48f6fbabfe8f0baefe/nest_asyncio-1.6.0.tar.gz", hash = "sha256:6f172d5449aca15afd6c646851f4e31e02c598d553a667e38cafa997cfec55fe", size = 7418, upload-time = "2024-01-21T14:25:19.227Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a0/c4/c2971a3ba4c6103a3d10c4b0f24f461ddc027f0f09763220cf35ca1401b3/nest_asyncio-1.6.0-py3-none-any.whl", hash = "sha256:87af6efd6b5e897c81050477ef65c62e2b2f35d51703cae01aff2905b1852e1c", size = 5195, upload-time = "2024-01-21T14:25:17.223Z" }, +] + +[[package]] +name = "networkx" +version = "3.6.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6a/51/63fe664f3908c97be9d2e4f1158eb633317598cfa6e1fc14af5383f17512/networkx-3.6.1.tar.gz", hash = "sha256:26b7c357accc0c8cde558ad486283728b65b6a95d85ee1cd66bafab4c8168509", size = 2517025, upload-time = "2025-12-08T17:02:39.908Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9e/c9/b2622292ea83fbb4ec318f5b9ab867d0a28ab43c5717bb85b0a5f6b3b0a4/networkx-3.6.1-py3-none-any.whl", hash = "sha256:d47fbf302e7d9cbbb9e2555a0d267983d2aa476bac30e90dfbe5669bd57f3762", size = 2068504, upload-time = "2025-12-08T17:02:38.159Z" }, +] + +[[package]] +name = "notebook" +version = "7.5.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jupyter-server" }, + { name = "jupyterlab" }, + { name = "jupyterlab-server" }, + { name = "notebook-shim" }, + { name = "tornado" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/78/08/9d446fbb49f95de316ea6d7f25d0a4bc95117dd574e35f405895ac706f29/notebook-7.5.4.tar.gz", hash = "sha256:b928b2ba22cb63aa83df2e0e76fe3697950a0c1c4a41b84ebccf1972b1bb5771", size = 14167892, upload-time = "2026-02-24T14:13:56.116Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/59/01/05e5387b53e0f549212d5eff58845886f3827617b5c9409c966ddc07cb6d/notebook-7.5.4-py3-none-any.whl", hash = "sha256:860e31782b3d3a25ca0819ff039f5cf77845d1bf30c78ef9528b88b25e0a9850", size = 14578014, upload-time = "2026-02-24T14:13:52.274Z" }, +] + +[[package]] +name = "notebook-shim" +version = "0.2.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jupyter-server" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/54/d2/92fa3243712b9a3e8bafaf60aac366da1cada3639ca767ff4b5b3654ec28/notebook_shim-0.2.4.tar.gz", hash = "sha256:b4b2cfa1b65d98307ca24361f5b30fe785b53c3fd07b7a47e89acb5e6ac638cb", size = 13167, upload-time = "2024-02-14T23:35:18.353Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f9/33/bd5b9137445ea4b680023eb0469b2bb969d61303dedb2aac6560ff3d14a1/notebook_shim-0.2.4-py3-none-any.whl", hash = "sha256:411a5be4e9dc882a074ccbcae671eda64cceb068767e9a3419096986560e1cef", size = 13307, upload-time = "2024-02-14T23:35:16.286Z" }, +] + +[[package]] +name = "numpy" +version = "2.4.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/57/fd/0005efbd0af48e55eb3c7208af93f2862d4b1a56cd78e84309a2d959208d/numpy-2.4.2.tar.gz", hash = "sha256:659a6107e31a83c4e33f763942275fd278b21d095094044eb35569e86a21ddae", size = 20723651, upload-time = "2026-01-31T23:13:10.135Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a1/22/815b9fe25d1d7ae7d492152adbc7226d3eff731dffc38fe970589fcaaa38/numpy-2.4.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:25f2059807faea4b077a2b6837391b5d830864b3543627f381821c646f31a63c", size = 16663696, upload-time = "2026-01-31T23:11:17.516Z" }, + { url = "https://files.pythonhosted.org/packages/09/f0/817d03a03f93ba9c6c8993de509277d84e69f9453601915e4a69554102a1/numpy-2.4.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:bd3a7a9f5847d2fb8c2c6d1c862fa109c31a9abeca1a3c2bd5a64572955b2979", size = 14688322, upload-time = "2026-01-31T23:11:19.883Z" }, + { url = "https://files.pythonhosted.org/packages/da/b4/f805ab79293c728b9a99438775ce51885fd4f31b76178767cfc718701a39/numpy-2.4.2-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:8e4549f8a3c6d13d55041925e912bfd834285ef1dd64d6bc7d542583355e2e98", size = 5198157, upload-time = "2026-01-31T23:11:22.375Z" }, + { url = "https://files.pythonhosted.org/packages/74/09/826e4289844eccdcd64aac27d13b0fd3f32039915dd5b9ba01baae1f436c/numpy-2.4.2-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:aea4f66ff44dfddf8c2cffd66ba6538c5ec67d389285292fe428cb2c738c8aef", size = 6546330, upload-time = "2026-01-31T23:11:23.958Z" }, + { url = "https://files.pythonhosted.org/packages/19/fb/cbfdbfa3057a10aea5422c558ac57538e6acc87ec1669e666d32ac198da7/numpy-2.4.2-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c3cd545784805de05aafe1dde61752ea49a359ccba9760c1e5d1c88a93bbf2b7", size = 15660968, upload-time = "2026-01-31T23:11:25.713Z" }, + { url = "https://files.pythonhosted.org/packages/04/dc/46066ce18d01645541f0186877377b9371b8fa8017fa8262002b4ef22612/numpy-2.4.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d0d9b7c93578baafcbc5f0b83eaf17b79d345c6f36917ba0c67f45226911d499", size = 16607311, upload-time = "2026-01-31T23:11:28.117Z" }, + { url = "https://files.pythonhosted.org/packages/14/d9/4b5adfc39a43fa6bf918c6d544bc60c05236cc2f6339847fc5b35e6cb5b0/numpy-2.4.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f74f0f7779cc7ae07d1810aab8ac6b1464c3eafb9e283a40da7309d5e6e48fbb", size = 17012850, upload-time = "2026-01-31T23:11:30.888Z" }, + { url = "https://files.pythonhosted.org/packages/b7/20/adb6e6adde6d0130046e6fdfb7675cc62bc2f6b7b02239a09eb58435753d/numpy-2.4.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:c7ac672d699bf36275c035e16b65539931347d68b70667d28984c9fb34e07fa7", size = 18334210, upload-time = "2026-01-31T23:11:33.214Z" }, + { url = "https://files.pythonhosted.org/packages/78/0e/0a73b3dff26803a8c02baa76398015ea2a5434d9b8265a7898a6028c1591/numpy-2.4.2-cp313-cp313-win32.whl", hash = "sha256:8e9afaeb0beff068b4d9cd20d322ba0ee1cecfb0b08db145e4ab4dd44a6b5110", size = 5958199, upload-time = "2026-01-31T23:11:35.385Z" }, + { url = "https://files.pythonhosted.org/packages/43/bc/6352f343522fcb2c04dbaf94cb30cca6fd32c1a750c06ad6231b4293708c/numpy-2.4.2-cp313-cp313-win_amd64.whl", hash = "sha256:7df2de1e4fba69a51c06c28f5a3de36731eb9639feb8e1cf7e4a7b0daf4cf622", size = 12310848, upload-time = "2026-01-31T23:11:38.001Z" }, + { url = "https://files.pythonhosted.org/packages/6e/8d/6da186483e308da5da1cc6918ce913dcfe14ffde98e710bfeff2a6158d4e/numpy-2.4.2-cp313-cp313-win_arm64.whl", hash = "sha256:0fece1d1f0a89c16b03442eae5c56dc0be0c7883b5d388e0c03f53019a4bfd71", size = 10221082, upload-time = "2026-01-31T23:11:40.392Z" }, + { url = "https://files.pythonhosted.org/packages/25/a1/9510aa43555b44781968935c7548a8926274f815de42ad3997e9e83680dd/numpy-2.4.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:5633c0da313330fd20c484c78cdd3f9b175b55e1a766c4a174230c6b70ad8262", size = 14815866, upload-time = "2026-01-31T23:11:42.495Z" }, + { url = "https://files.pythonhosted.org/packages/36/30/6bbb5e76631a5ae46e7923dd16ca9d3f1c93cfa8d4ed79a129814a9d8db3/numpy-2.4.2-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:d9f64d786b3b1dd742c946c42d15b07497ed14af1a1f3ce840cce27daa0ce913", size = 5325631, upload-time = "2026-01-31T23:11:44.7Z" }, + { url = "https://files.pythonhosted.org/packages/46/00/3a490938800c1923b567b3a15cd17896e68052e2145d8662aaf3e1ffc58f/numpy-2.4.2-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:b21041e8cb6a1eb5312dd1d2f80a94d91efffb7a06b70597d44f1bd2dfc315ab", size = 6646254, upload-time = "2026-01-31T23:11:46.341Z" }, + { url = "https://files.pythonhosted.org/packages/d3/e9/fac0890149898a9b609caa5af7455a948b544746e4b8fe7c212c8edd71f8/numpy-2.4.2-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:00ab83c56211a1d7c07c25e3217ea6695e50a3e2f255053686b081dc0b091a82", size = 15720138, upload-time = "2026-01-31T23:11:48.082Z" }, + { url = "https://files.pythonhosted.org/packages/ea/5c/08887c54e68e1e28df53709f1893ce92932cc6f01f7c3d4dc952f61ffd4e/numpy-2.4.2-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2fb882da679409066b4603579619341c6d6898fc83a8995199d5249f986e8e8f", size = 16655398, upload-time = "2026-01-31T23:11:50.293Z" }, + { url = "https://files.pythonhosted.org/packages/4d/89/253db0fa0e66e9129c745e4ef25631dc37d5f1314dad2b53e907b8538e6d/numpy-2.4.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:66cb9422236317f9d44b67b4d18f44efe6e9c7f8794ac0462978513359461554", size = 17079064, upload-time = "2026-01-31T23:11:52.927Z" }, + { url = "https://files.pythonhosted.org/packages/2a/d5/cbade46ce97c59c6c3da525e8d95b7abe8a42974a1dc5c1d489c10433e88/numpy-2.4.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:0f01dcf33e73d80bd8dc0f20a71303abbafa26a19e23f6b68d1aa9990af90257", size = 18379680, upload-time = "2026-01-31T23:11:55.22Z" }, + { url = "https://files.pythonhosted.org/packages/40/62/48f99ae172a4b63d981babe683685030e8a3df4f246c893ea5c6ef99f018/numpy-2.4.2-cp313-cp313t-win32.whl", hash = "sha256:52b913ec40ff7ae845687b0b34d8d93b60cb66dcee06996dd5c99f2fc9328657", size = 6082433, upload-time = "2026-01-31T23:11:58.096Z" }, + { url = "https://files.pythonhosted.org/packages/07/38/e054a61cfe48ad9f1ed0d188e78b7e26859d0b60ef21cd9de4897cdb5326/numpy-2.4.2-cp313-cp313t-win_amd64.whl", hash = "sha256:5eea80d908b2c1f91486eb95b3fb6fab187e569ec9752ab7d9333d2e66bf2d6b", size = 12451181, upload-time = "2026-01-31T23:11:59.782Z" }, + { url = "https://files.pythonhosted.org/packages/6e/a4/a05c3a6418575e185dd84d0b9680b6bb2e2dc3e4202f036b7b4e22d6e9dc/numpy-2.4.2-cp313-cp313t-win_arm64.whl", hash = "sha256:fd49860271d52127d61197bb50b64f58454e9f578cb4b2c001a6de8b1f50b0b1", size = 10290756, upload-time = "2026-01-31T23:12:02.438Z" }, + { url = "https://files.pythonhosted.org/packages/18/88/b7df6050bf18fdcfb7046286c6535cabbdd2064a3440fca3f069d319c16e/numpy-2.4.2-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:444be170853f1f9d528428eceb55f12918e4fda5d8805480f36a002f1415e09b", size = 16663092, upload-time = "2026-01-31T23:12:04.521Z" }, + { url = "https://files.pythonhosted.org/packages/25/7a/1fee4329abc705a469a4afe6e69b1ef7e915117747886327104a8493a955/numpy-2.4.2-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:d1240d50adff70c2a88217698ca844723068533f3f5c5fa6ee2e3220e3bdb000", size = 14698770, upload-time = "2026-01-31T23:12:06.96Z" }, + { url = "https://files.pythonhosted.org/packages/fb/0b/f9e49ba6c923678ad5bc38181c08ac5e53b7a5754dbca8e581aa1a56b1ff/numpy-2.4.2-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:7cdde6de52fb6664b00b056341265441192d1291c130e99183ec0d4b110ff8b1", size = 5208562, upload-time = "2026-01-31T23:12:09.632Z" }, + { url = "https://files.pythonhosted.org/packages/7d/12/d7de8f6f53f9bb76997e5e4c069eda2051e3fe134e9181671c4391677bb2/numpy-2.4.2-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:cda077c2e5b780200b6b3e09d0b42205a3d1c68f30c6dceb90401c13bff8fe74", size = 6543710, upload-time = "2026-01-31T23:12:11.969Z" }, + { url = "https://files.pythonhosted.org/packages/09/63/c66418c2e0268a31a4cf8a8b512685748200f8e8e8ec6c507ce14e773529/numpy-2.4.2-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d30291931c915b2ab5717c2974bb95ee891a1cf22ebc16a8006bd59cd210d40a", size = 15677205, upload-time = "2026-01-31T23:12:14.33Z" }, + { url = "https://files.pythonhosted.org/packages/5d/6c/7f237821c9642fb2a04d2f1e88b4295677144ca93285fd76eff3bcba858d/numpy-2.4.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bba37bc29d4d85761deed3954a1bc62be7cf462b9510b51d367b769a8c8df325", size = 16611738, upload-time = "2026-01-31T23:12:16.525Z" }, + { url = "https://files.pythonhosted.org/packages/c2/a7/39c4cdda9f019b609b5c473899d87abff092fc908cfe4d1ecb2fcff453b0/numpy-2.4.2-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:b2f0073ed0868db1dcd86e052d37279eef185b9c8db5bf61f30f46adac63c909", size = 17028888, upload-time = "2026-01-31T23:12:19.306Z" }, + { url = "https://files.pythonhosted.org/packages/da/b3/e84bb64bdfea967cc10950d71090ec2d84b49bc691df0025dddb7c26e8e3/numpy-2.4.2-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:7f54844851cdb630ceb623dcec4db3240d1ac13d4990532446761baede94996a", size = 18339556, upload-time = "2026-01-31T23:12:21.816Z" }, + { url = "https://files.pythonhosted.org/packages/88/f5/954a291bc1192a27081706862ac62bb5920fbecfbaa302f64682aa90beed/numpy-2.4.2-cp314-cp314-win32.whl", hash = "sha256:12e26134a0331d8dbd9351620f037ec470b7c75929cb8a1537f6bfe411152a1a", size = 6006899, upload-time = "2026-01-31T23:12:24.14Z" }, + { url = "https://files.pythonhosted.org/packages/05/cb/eff72a91b2efdd1bc98b3b8759f6a1654aa87612fc86e3d87d6fe4f948c4/numpy-2.4.2-cp314-cp314-win_amd64.whl", hash = "sha256:068cdb2d0d644cdb45670810894f6a0600797a69c05f1ac478e8d31670b8ee75", size = 12443072, upload-time = "2026-01-31T23:12:26.33Z" }, + { url = "https://files.pythonhosted.org/packages/37/75/62726948db36a56428fce4ba80a115716dc4fad6a3a4352487f8bb950966/numpy-2.4.2-cp314-cp314-win_arm64.whl", hash = "sha256:6ed0be1ee58eef41231a5c943d7d1375f093142702d5723ca2eb07db9b934b05", size = 10494886, upload-time = "2026-01-31T23:12:28.488Z" }, + { url = "https://files.pythonhosted.org/packages/36/2f/ee93744f1e0661dc267e4b21940870cabfae187c092e1433b77b09b50ac4/numpy-2.4.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:98f16a80e917003a12c0580f97b5f875853ebc33e2eaa4bccfc8201ac6869308", size = 14818567, upload-time = "2026-01-31T23:12:30.709Z" }, + { url = "https://files.pythonhosted.org/packages/a7/24/6535212add7d76ff938d8bdc654f53f88d35cddedf807a599e180dcb8e66/numpy-2.4.2-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:20abd069b9cda45874498b245c8015b18ace6de8546bf50dfa8cea1696ed06ef", size = 5328372, upload-time = "2026-01-31T23:12:32.962Z" }, + { url = "https://files.pythonhosted.org/packages/5e/9d/c48f0a035725f925634bf6b8994253b43f2047f6778a54147d7e213bc5a7/numpy-2.4.2-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:e98c97502435b53741540a5717a6749ac2ada901056c7db951d33e11c885cc7d", size = 6649306, upload-time = "2026-01-31T23:12:34.797Z" }, + { url = "https://files.pythonhosted.org/packages/81/05/7c73a9574cd4a53a25907bad38b59ac83919c0ddc8234ec157f344d57d9a/numpy-2.4.2-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:da6cad4e82cb893db4b69105c604d805e0c3ce11501a55b5e9f9083b47d2ffe8", size = 15722394, upload-time = "2026-01-31T23:12:36.565Z" }, + { url = "https://files.pythonhosted.org/packages/35/fa/4de10089f21fc7d18442c4a767ab156b25c2a6eaf187c0db6d9ecdaeb43f/numpy-2.4.2-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9e4424677ce4b47fe73c8b5556d876571f7c6945d264201180db2dc34f676ab5", size = 16653343, upload-time = "2026-01-31T23:12:39.188Z" }, + { url = "https://files.pythonhosted.org/packages/b8/f9/d33e4ffc857f3763a57aa85650f2e82486832d7492280ac21ba9efda80da/numpy-2.4.2-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:2b8f157c8a6f20eb657e240f8985cc135598b2b46985c5bccbde7616dc9c6b1e", size = 17078045, upload-time = "2026-01-31T23:12:42.041Z" }, + { url = "https://files.pythonhosted.org/packages/c8/b8/54bdb43b6225badbea6389fa038c4ef868c44f5890f95dd530a218706da3/numpy-2.4.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:5daf6f3914a733336dab21a05cdec343144600e964d2fcdabaac0c0269874b2a", size = 18380024, upload-time = "2026-01-31T23:12:44.331Z" }, + { url = "https://files.pythonhosted.org/packages/a5/55/6e1a61ded7af8df04016d81b5b02daa59f2ea9252ee0397cb9f631efe9e5/numpy-2.4.2-cp314-cp314t-win32.whl", hash = "sha256:8c50dd1fc8826f5b26a5ee4d77ca55d88a895f4e4819c7ecc2a9f5905047a443", size = 6153937, upload-time = "2026-01-31T23:12:47.229Z" }, + { url = "https://files.pythonhosted.org/packages/45/aa/fa6118d1ed6d776b0983f3ceac9b1a5558e80df9365b1c3aa6d42bf9eee4/numpy-2.4.2-cp314-cp314t-win_amd64.whl", hash = "sha256:fcf92bee92742edd401ba41135185866f7026c502617f422eb432cfeca4fe236", size = 12631844, upload-time = "2026-01-31T23:12:48.997Z" }, + { url = "https://files.pythonhosted.org/packages/32/0a/2ec5deea6dcd158f254a7b372fb09cfba5719419c8d66343bab35237b3fb/numpy-2.4.2-cp314-cp314t-win_arm64.whl", hash = "sha256:1f92f53998a17265194018d1cc321b2e96e900ca52d54c7c77837b71b9465181", size = 10565379, upload-time = "2026-01-31T23:12:51.345Z" }, +] + +[[package]] +name = "nvidia-cublas-cu12" +version = "12.8.4.1" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/dc/61/e24b560ab2e2eaeb3c839129175fb330dfcfc29e5203196e5541a4c44682/nvidia_cublas_cu12-12.8.4.1-py3-none-manylinux_2_27_x86_64.whl", hash = "sha256:8ac4e771d5a348c551b2a426eda6193c19aa630236b418086020df5ba9667142", size = 594346921, upload-time = "2025-03-07T01:44:31.254Z" }, +] + +[[package]] +name = "nvidia-cuda-cupti-cu12" +version = "12.8.90" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f8/02/2adcaa145158bf1a8295d83591d22e4103dbfd821bcaf6f3f53151ca4ffa/nvidia_cuda_cupti_cu12-12.8.90-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ea0cb07ebda26bb9b29ba82cda34849e73c166c18162d3913575b0c9db9a6182", size = 10248621, upload-time = "2025-03-07T01:40:21.213Z" }, +] + +[[package]] +name = "nvidia-cuda-nvrtc-cu12" +version = "12.8.93" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/05/6b/32f747947df2da6994e999492ab306a903659555dddc0fbdeb9d71f75e52/nvidia_cuda_nvrtc_cu12-12.8.93-py3-none-manylinux2010_x86_64.manylinux_2_12_x86_64.whl", hash = "sha256:a7756528852ef889772a84c6cd89d41dfa74667e24cca16bb31f8f061e3e9994", size = 88040029, upload-time = "2025-03-07T01:42:13.562Z" }, +] + +[[package]] +name = "nvidia-cuda-runtime-cu12" +version = "12.8.90" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0d/9b/a997b638fcd068ad6e4d53b8551a7d30fe8b404d6f1804abf1df69838932/nvidia_cuda_runtime_cu12-12.8.90-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:adade8dcbd0edf427b7204d480d6066d33902cab2a4707dcfc48a2d0fd44ab90", size = 954765, upload-time = "2025-03-07T01:40:01.615Z" }, +] + +[[package]] +name = "nvidia-cudnn-cu12" +version = "9.10.2.21" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "nvidia-cublas-cu12", marker = "(platform_machine != 'aarch64' and sys_platform == 'linux') or (sys_platform != 'darwin' and sys_platform != 'linux')" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/ba/51/e123d997aa098c61d029f76663dedbfb9bc8dcf8c60cbd6adbe42f76d049/nvidia_cudnn_cu12-9.10.2.21-py3-none-manylinux_2_27_x86_64.whl", hash = "sha256:949452be657fa16687d0930933f032835951ef0892b37d2d53824d1a84dc97a8", size = 706758467, upload-time = "2025-06-06T21:54:08.597Z" }, +] + +[[package]] +name = "nvidia-cufft-cu12" +version = "11.3.3.83" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "nvidia-nvjitlink-cu12", marker = "(platform_machine != 'aarch64' and sys_platform == 'linux') or (sys_platform != 'darwin' and sys_platform != 'linux')" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/1f/13/ee4e00f30e676b66ae65b4f08cb5bcbb8392c03f54f2d5413ea99a5d1c80/nvidia_cufft_cu12-11.3.3.83-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4d2dd21ec0b88cf61b62e6b43564355e5222e4a3fb394cac0db101f2dd0d4f74", size = 193118695, upload-time = "2025-03-07T01:45:27.821Z" }, +] + +[[package]] +name = "nvidia-cufile-cu12" +version = "1.13.1.3" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bb/fe/1bcba1dfbfb8d01be8d93f07bfc502c93fa23afa6fd5ab3fc7c1df71038a/nvidia_cufile_cu12-1.13.1.3-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:1d069003be650e131b21c932ec3d8969c1715379251f8d23a1860554b1cb24fc", size = 1197834, upload-time = "2025-03-07T01:45:50.723Z" }, +] + +[[package]] +name = "nvidia-curand-cu12" +version = "10.3.9.90" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fb/aa/6584b56dc84ebe9cf93226a5cde4d99080c8e90ab40f0c27bda7a0f29aa1/nvidia_curand_cu12-10.3.9.90-py3-none-manylinux_2_27_x86_64.whl", hash = "sha256:b32331d4f4df5d6eefa0554c565b626c7216f87a06a4f56fab27c3b68a830ec9", size = 63619976, upload-time = "2025-03-07T01:46:23.323Z" }, +] + +[[package]] +name = "nvidia-cusolver-cu12" +version = "11.7.3.90" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "nvidia-cublas-cu12", marker = "(platform_machine != 'aarch64' and sys_platform == 'linux') or (sys_platform != 'darwin' and sys_platform != 'linux')" }, + { name = "nvidia-cusparse-cu12", marker = "(platform_machine != 'aarch64' and sys_platform == 'linux') or (sys_platform != 'darwin' and sys_platform != 'linux')" }, + { name = "nvidia-nvjitlink-cu12", marker = "(platform_machine != 'aarch64' and sys_platform == 'linux') or (sys_platform != 'darwin' and sys_platform != 'linux')" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/85/48/9a13d2975803e8cf2777d5ed57b87a0b6ca2cc795f9a4f59796a910bfb80/nvidia_cusolver_cu12-11.7.3.90-py3-none-manylinux_2_27_x86_64.whl", hash = "sha256:4376c11ad263152bd50ea295c05370360776f8c3427b30991df774f9fb26c450", size = 267506905, upload-time = "2025-03-07T01:47:16.273Z" }, +] + +[[package]] +name = "nvidia-cusparse-cu12" +version = "12.5.8.93" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "nvidia-nvjitlink-cu12", marker = "(platform_machine != 'aarch64' and sys_platform == 'linux') or (sys_platform != 'darwin' and sys_platform != 'linux')" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/c2/f5/e1854cb2f2bcd4280c44736c93550cc300ff4b8c95ebe370d0aa7d2b473d/nvidia_cusparse_cu12-12.5.8.93-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:1ec05d76bbbd8b61b06a80e1eaf8cf4959c3d4ce8e711b65ebd0443bb0ebb13b", size = 288216466, upload-time = "2025-03-07T01:48:13.779Z" }, +] + +[[package]] +name = "nvidia-cusparselt-cu12" +version = "0.7.1" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/56/79/12978b96bd44274fe38b5dde5cfb660b1d114f70a65ef962bcbbed99b549/nvidia_cusparselt_cu12-0.7.1-py3-none-manylinux2014_x86_64.whl", hash = "sha256:f1bb701d6b930d5a7cea44c19ceb973311500847f81b634d802b7b539dc55623", size = 287193691, upload-time = "2025-02-26T00:15:44.104Z" }, +] + +[[package]] +name = "nvidia-nccl-cu12" +version = "2.27.5" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6e/89/f7a07dc961b60645dbbf42e80f2bc85ade7feb9a491b11a1e973aa00071f/nvidia_nccl_cu12-2.27.5-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ad730cf15cb5d25fe849c6e6ca9eb5b76db16a80f13f425ac68d8e2e55624457", size = 322348229, upload-time = "2025-06-26T04:11:28.385Z" }, +] + +[[package]] +name = "nvidia-nvjitlink-cu12" +version = "12.8.93" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f6/74/86a07f1d0f42998ca31312f998bd3b9a7eff7f52378f4f270c8679c77fb9/nvidia_nvjitlink_cu12-12.8.93-py3-none-manylinux2010_x86_64.manylinux_2_12_x86_64.whl", hash = "sha256:81ff63371a7ebd6e6451970684f916be2eab07321b73c9d244dc2b4da7f73b88", size = 39254836, upload-time = "2025-03-07T01:49:55.661Z" }, +] + +[[package]] +name = "nvidia-nvshmem-cu12" +version = "3.4.5" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b5/09/6ea3ea725f82e1e76684f0708bbedd871fc96da89945adeba65c3835a64c/nvidia_nvshmem_cu12-3.4.5-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:042f2500f24c021db8a06c5eec2539027d57460e1c1a762055a6554f72c369bd", size = 139103095, upload-time = "2025-09-06T00:32:31.266Z" }, +] + +[[package]] +name = "nvidia-nvtx-cu12" +version = "12.8.90" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a2/eb/86626c1bbc2edb86323022371c39aa48df6fd8b0a1647bc274577f72e90b/nvidia_nvtx_cu12-12.8.90-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:5b17e2001cc0d751a5bc2c6ec6d26ad95913324a4adb86788c944f8ce9ba441f", size = 89954, upload-time = "2025-03-07T01:42:44.131Z" }, +] + +[[package]] +name = "opencv-python" +version = "4.13.0.92" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/fc/6f/5a28fef4c4a382be06afe3938c64cc168223016fa520c5abaf37e8862aa5/opencv_python-4.13.0.92-cp37-abi3-macosx_13_0_arm64.whl", hash = "sha256:caf60c071ec391ba51ed00a4a920f996d0b64e3e46068aac1f646b5de0326a19", size = 46247052, upload-time = "2026-02-05T07:01:25.046Z" }, + { url = "https://files.pythonhosted.org/packages/08/ac/6c98c44c650b8114a0fb901691351cfb3956d502e8e9b5cd27f4ee7fbf2f/opencv_python-4.13.0.92-cp37-abi3-macosx_14_0_x86_64.whl", hash = "sha256:5868a8c028a0b37561579bfb8ac1875babdc69546d236249fff296a8c010ccf9", size = 32568781, upload-time = "2026-02-05T07:01:41.379Z" }, + { url = "https://files.pythonhosted.org/packages/3e/51/82fed528b45173bf629fa44effb76dff8bc9f4eeaee759038362dfa60237/opencv_python-4.13.0.92-cp37-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:0bc2596e68f972ca452d80f444bc404e08807d021fbba40df26b61b18e01838a", size = 47685527, upload-time = "2026-02-05T06:59:11.24Z" }, + { url = "https://files.pythonhosted.org/packages/db/07/90b34a8e2cf9c50fe8ed25cac9011cde0676b4d9d9c973751ac7616223a2/opencv_python-4.13.0.92-cp37-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:402033cddf9d294693094de5ef532339f14ce821da3ad7df7c9f6e8316da32cf", size = 70460872, upload-time = "2026-02-05T06:59:19.162Z" }, + { url = "https://files.pythonhosted.org/packages/02/6d/7a9cc719b3eaf4377b9c2e3edeb7ed3a81de41f96421510c0a169ca3cfd4/opencv_python-4.13.0.92-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:bccaabf9eb7f897ca61880ce2869dcd9b25b72129c28478e7f2a5e8dee945616", size = 46708208, upload-time = "2026-02-05T06:59:15.419Z" }, + { url = "https://files.pythonhosted.org/packages/fd/55/b3b49a1b97aabcfbbd6c7326df9cb0b6fa0c0aefa8e89d500939e04aa229/opencv_python-4.13.0.92-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:620d602b8f7d8b8dab5f4b99c6eb353e78d3fb8b0f53db1bd258bb1aa001c1d5", size = 72927042, upload-time = "2026-02-05T06:59:23.389Z" }, + { url = "https://files.pythonhosted.org/packages/fb/17/de5458312bcb07ddf434d7bfcb24bb52c59635ad58c6e7c751b48949b009/opencv_python-4.13.0.92-cp37-abi3-win32.whl", hash = "sha256:372fe164a3148ac1ca51e5f3ad0541a4a276452273f503441d718fab9c5e5f59", size = 30932638, upload-time = "2026-02-05T07:02:14.98Z" }, + { url = "https://files.pythonhosted.org/packages/e9/a5/1be1516390333ff9be3a9cb648c9f33df79d5096e5884b5df71a588af463/opencv_python-4.13.0.92-cp37-abi3-win_amd64.whl", hash = "sha256:423d934c9fafb91aad38edf26efb46da91ffbc05f3f59c4b0c72e699720706f5", size = 40212062, upload-time = "2026-02-05T07:02:12.724Z" }, +] + +[[package]] +name = "opencv-python-headless" +version = "4.10.0.84" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/2f/7e/d20f68a5f1487adf19d74378d349932a386b1ece3be9be9915e5986db468/opencv-python-headless-4.10.0.84.tar.gz", hash = "sha256:f2017c6101d7c2ef8d7bc3b414c37ff7f54d64413a1847d89970b6b7069b4e1a", size = 95117755, upload-time = "2024-06-17T18:32:15.606Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1c/9b/583c8d9259f6fc19413f83fd18dd8e6cbc8eefb0b4dc6da52dd151fe3272/opencv_python_headless-4.10.0.84-cp37-abi3-macosx_11_0_arm64.whl", hash = "sha256:a4f4bcb07d8f8a7704d9c8564c224c8b064c63f430e95b61ac0bffaa374d330e", size = 54835657, upload-time = "2024-06-18T04:58:12.904Z" }, + { url = "https://files.pythonhosted.org/packages/c0/7b/b4c67f5dad7a9a61c47f7a39e4050e8a4628bd64b3c3daaeb755d759f928/opencv_python_headless-4.10.0.84-cp37-abi3-macosx_12_0_x86_64.whl", hash = "sha256:5ae454ebac0eb0a0b932e3406370aaf4212e6a3fdb5038cc86c7aea15a6851da", size = 56475470, upload-time = "2024-06-17T19:34:39.604Z" }, + { url = "https://files.pythonhosted.org/packages/91/61/f838ce2046f3ec3591ea59ea3549085e399525d3b4558c4ed60b55ed88c0/opencv_python_headless-4.10.0.84-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:46071015ff9ab40fccd8a163da0ee14ce9846349f06c6c8c0f2870856ffa45db", size = 29329705, upload-time = "2024-06-17T20:00:49.406Z" }, + { url = "https://files.pythonhosted.org/packages/d1/09/248f86a404567303cdf120e4a301f389b68e3b18e5c0cc428de327da609c/opencv_python_headless-4.10.0.84-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:377d08a7e48a1405b5e84afcbe4798464ce7ee17081c1c23619c8b398ff18295", size = 49858781, upload-time = "2024-06-17T18:31:49.495Z" }, + { url = "https://files.pythonhosted.org/packages/30/c0/66f88d58500e990a9a0a5c06f98862edf1d0a3a430781218a8c193948438/opencv_python_headless-4.10.0.84-cp37-abi3-win32.whl", hash = "sha256:9092404b65458ed87ce932f613ffbb1106ed2c843577501e5768912360fc50ec", size = 28675298, upload-time = "2024-06-17T18:28:56.897Z" }, + { url = "https://files.pythonhosted.org/packages/26/d0/22f68eb23eea053a31655960f133c0be9726c6a881547e6e9e7e2a946c4f/opencv_python_headless-4.10.0.84-cp37-abi3-win_amd64.whl", hash = "sha256:afcf28bd1209dd58810d33defb622b325d3cbe49dcd7a43a902982c33e5fad05", size = 38754031, upload-time = "2024-06-17T18:29:04.871Z" }, +] + +[[package]] +name = "orjson" +version = "3.11.7" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/53/45/b268004f745ede84e5798b48ee12b05129d19235d0e15267aa57dcdb400b/orjson-3.11.7.tar.gz", hash = "sha256:9b1a67243945819ce55d24a30b59d6a168e86220452d2c96f4d1f093e71c0c49", size = 6144992, upload-time = "2026-02-02T15:38:49.29Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/89/25/6e0e52cac5aab51d7b6dcd257e855e1dec1c2060f6b28566c509b4665f62/orjson-3.11.7-cp313-cp313-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:1d98b30cc1313d52d4af17d9c3d307b08389752ec5f2e5febdfada70b0f8c733", size = 228390, upload-time = "2026-02-02T15:38:06.8Z" }, + { url = "https://files.pythonhosted.org/packages/a5/29/a77f48d2fc8a05bbc529e5ff481fb43d914f9e383ea2469d4f3d51df3d00/orjson-3.11.7-cp313-cp313-macosx_15_0_arm64.whl", hash = "sha256:d897e81f8d0cbd2abb82226d1860ad2e1ab3ff16d7b08c96ca00df9d45409ef4", size = 125189, upload-time = "2026-02-02T15:38:08.181Z" }, + { url = "https://files.pythonhosted.org/packages/89/25/0a16e0729a0e6a1504f9d1a13cdd365f030068aab64cec6958396b9969d7/orjson-3.11.7-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:814be4b49b228cfc0b3c565acf642dd7d13538f966e3ccde61f4f55be3e20785", size = 128106, upload-time = "2026-02-02T15:38:09.41Z" }, + { url = "https://files.pythonhosted.org/packages/66/da/a2e505469d60666a05ab373f1a6322eb671cb2ba3a0ccfc7d4bc97196787/orjson-3.11.7-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d06e5c5fed5caedd2e540d62e5b1c25e8c82431b9e577c33537e5fa4aa909539", size = 123363, upload-time = "2026-02-02T15:38:10.73Z" }, + { url = "https://files.pythonhosted.org/packages/23/bf/ed73f88396ea35c71b38961734ea4a4746f7ca0768bf28fd551d37e48dd0/orjson-3.11.7-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:31c80ce534ac4ea3739c5ee751270646cbc46e45aea7576a38ffec040b4029a1", size = 129007, upload-time = "2026-02-02T15:38:12.138Z" }, + { url = "https://files.pythonhosted.org/packages/73/3c/b05d80716f0225fc9008fbf8ab22841dcc268a626aa550561743714ce3bf/orjson-3.11.7-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f50979824bde13d32b4320eedd513431c921102796d86be3eee0b58e58a3ecd1", size = 141667, upload-time = "2026-02-02T15:38:13.398Z" }, + { url = "https://files.pythonhosted.org/packages/61/e8/0be9b0addd9bf86abfc938e97441dcd0375d494594b1c8ad10fe57479617/orjson-3.11.7-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9e54f3808e2b6b945078c41aa8d9b5834b28c50843846e97807e5adb75fa9705", size = 130832, upload-time = "2026-02-02T15:38:14.698Z" }, + { url = "https://files.pythonhosted.org/packages/c9/ec/c68e3b9021a31d9ec15a94931db1410136af862955854ed5dd7e7e4f5bff/orjson-3.11.7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a12b80df61aab7b98b490fe9e4879925ba666fccdfcd175252ce4d9035865ace", size = 133373, upload-time = "2026-02-02T15:38:16.109Z" }, + { url = "https://files.pythonhosted.org/packages/d2/45/f3466739aaafa570cc8e77c6dbb853c48bf56e3b43738020e2661e08b0ac/orjson-3.11.7-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:996b65230271f1a97026fd0e6a753f51fbc0c335d2ad0c6201f711b0da32693b", size = 138307, upload-time = "2026-02-02T15:38:17.453Z" }, + { url = "https://files.pythonhosted.org/packages/e1/84/9f7f02288da1ffb31405c1be07657afd1eecbcb4b64ee2817b6fe0f785fa/orjson-3.11.7-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:ab49d4b2a6a1d415ddb9f37a21e02e0d5dbfe10b7870b21bf779fc21e9156157", size = 408695, upload-time = "2026-02-02T15:38:18.831Z" }, + { url = "https://files.pythonhosted.org/packages/18/07/9dd2f0c0104f1a0295ffbe912bc8d63307a539b900dd9e2c48ef7810d971/orjson-3.11.7-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:390a1dce0c055ddf8adb6aa94a73b45a4a7d7177b5c584b8d1c1947f2ba60fb3", size = 144099, upload-time = "2026-02-02T15:38:20.28Z" }, + { url = "https://files.pythonhosted.org/packages/a5/66/857a8e4a3292e1f7b1b202883bcdeb43a91566cf59a93f97c53b44bd6801/orjson-3.11.7-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:1eb80451a9c351a71dfaf5b7ccc13ad065405217726b59fdbeadbcc544f9d223", size = 134806, upload-time = "2026-02-02T15:38:22.186Z" }, + { url = "https://files.pythonhosted.org/packages/0a/5b/6ebcf3defc1aab3a338ca777214966851e92efb1f30dc7fc8285216e6d1b/orjson-3.11.7-cp313-cp313-win32.whl", hash = "sha256:7477aa6a6ec6139c5cb1cc7b214643592169a5494d200397c7fc95d740d5fcf3", size = 127914, upload-time = "2026-02-02T15:38:23.511Z" }, + { url = "https://files.pythonhosted.org/packages/00/04/c6f72daca5092e3117840a1b1e88dfc809cc1470cf0734890d0366b684a1/orjson-3.11.7-cp313-cp313-win_amd64.whl", hash = "sha256:b9f95dcdea9d4f805daa9ddf02617a89e484c6985fa03055459f90e87d7a0757", size = 124986, upload-time = "2026-02-02T15:38:24.836Z" }, + { url = "https://files.pythonhosted.org/packages/03/ba/077a0f6f1085d6b806937246860fafbd5b17f3919c70ee3f3d8d9c713f38/orjson-3.11.7-cp313-cp313-win_arm64.whl", hash = "sha256:800988273a014a0541483dc81021247d7eacb0c845a9d1a34a422bc718f41539", size = 126045, upload-time = "2026-02-02T15:38:26.216Z" }, + { url = "https://files.pythonhosted.org/packages/e9/1e/745565dca749813db9a093c5ebc4bac1a9475c64d54b95654336ac3ed961/orjson-3.11.7-cp314-cp314-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:de0a37f21d0d364954ad5de1970491d7fbd0fb1ef7417d4d56a36dc01ba0c0a0", size = 228391, upload-time = "2026-02-02T15:38:27.757Z" }, + { url = "https://files.pythonhosted.org/packages/46/19/e40f6225da4d3aa0c8dc6e5219c5e87c2063a560fe0d72a88deb59776794/orjson-3.11.7-cp314-cp314-macosx_15_0_arm64.whl", hash = "sha256:c2428d358d85e8da9d37cba18b8c4047c55222007a84f97156a5b22028dfbfc0", size = 125188, upload-time = "2026-02-02T15:38:29.241Z" }, + { url = "https://files.pythonhosted.org/packages/9d/7e/c4de2babef2c0817fd1f048fd176aa48c37bec8aef53d2fa932983032cce/orjson-3.11.7-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3c4bc6c6ac52cdaa267552544c73e486fecbd710b7ac09bc024d5a78555a22f6", size = 128097, upload-time = "2026-02-02T15:38:30.618Z" }, + { url = "https://files.pythonhosted.org/packages/eb/74/233d360632bafd2197f217eee7fb9c9d0229eac0c18128aee5b35b0014fe/orjson-3.11.7-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bd0d68edd7dfca1b2eca9361a44ac9f24b078de3481003159929a0573f21a6bf", size = 123364, upload-time = "2026-02-02T15:38:32.363Z" }, + { url = "https://files.pythonhosted.org/packages/79/51/af79504981dd31efe20a9e360eb49c15f06df2b40e7f25a0a52d9ae888e8/orjson-3.11.7-cp314-cp314-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:623ad1b9548ef63886319c16fa317848e465a21513b31a6ad7b57443c3e0dcf5", size = 129076, upload-time = "2026-02-02T15:38:33.68Z" }, + { url = "https://files.pythonhosted.org/packages/67/e2/da898eb68b72304f8de05ca6715870d09d603ee98d30a27e8a9629abc64b/orjson-3.11.7-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6e776b998ac37c0396093d10290e60283f59cfe0fc3fccbd0ccc4bd04dd19892", size = 141705, upload-time = "2026-02-02T15:38:34.989Z" }, + { url = "https://files.pythonhosted.org/packages/c5/89/15364d92acb3d903b029e28d834edb8780c2b97404cbf7929aa6b9abdb24/orjson-3.11.7-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:652c6c3af76716f4a9c290371ba2e390ede06f6603edb277b481daf37f6f464e", size = 130855, upload-time = "2026-02-02T15:38:36.379Z" }, + { url = "https://files.pythonhosted.org/packages/c2/8b/ecdad52d0b38d4b8f514be603e69ccd5eacf4e7241f972e37e79792212ec/orjson-3.11.7-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a56df3239294ea5964adf074c54bcc4f0ccd21636049a2cf3ca9cf03b5d03cf1", size = 133386, upload-time = "2026-02-02T15:38:37.704Z" }, + { url = "https://files.pythonhosted.org/packages/b9/0e/45e1dcf10e17d0924b7c9162f87ec7b4ca79e28a0548acf6a71788d3e108/orjson-3.11.7-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:bda117c4148e81f746655d5a3239ae9bd00cb7bc3ca178b5fc5a5997e9744183", size = 138295, upload-time = "2026-02-02T15:38:39.096Z" }, + { url = "https://files.pythonhosted.org/packages/63/d7/4d2e8b03561257af0450f2845b91fbd111d7e526ccdf737267108075e0ba/orjson-3.11.7-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:23d6c20517a97a9daf1d48b580fcdc6f0516c6f4b5038823426033690b4d2650", size = 408720, upload-time = "2026-02-02T15:38:40.634Z" }, + { url = "https://files.pythonhosted.org/packages/78/cf/d45343518282108b29c12a65892445fc51f9319dc3c552ceb51bb5905ed2/orjson-3.11.7-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:8ff206156006da5b847c9304b6308a01e8cdbc8cce824e2779a5ba71c3def141", size = 144152, upload-time = "2026-02-02T15:38:42.262Z" }, + { url = "https://files.pythonhosted.org/packages/a9/3a/d6001f51a7275aacd342e77b735c71fa04125a3f93c36fee4526bc8c654e/orjson-3.11.7-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:962d046ee1765f74a1da723f4b33e3b228fe3a48bd307acce5021dfefe0e29b2", size = 134814, upload-time = "2026-02-02T15:38:43.627Z" }, + { url = "https://files.pythonhosted.org/packages/1d/d3/f19b47ce16820cc2c480f7f1723e17f6d411b3a295c60c8ad3aa9ff1c96a/orjson-3.11.7-cp314-cp314-win32.whl", hash = "sha256:89e13dd3f89f1c38a9c9eba5fbf7cdc2d1feca82f5f290864b4b7a6aac704576", size = 127997, upload-time = "2026-02-02T15:38:45.06Z" }, + { url = "https://files.pythonhosted.org/packages/12/df/172771902943af54bf661a8d102bdf2e7f932127968080632bda6054b62c/orjson-3.11.7-cp314-cp314-win_amd64.whl", hash = "sha256:845c3e0d8ded9c9271cd79596b9b552448b885b97110f628fb687aee2eed11c1", size = 124985, upload-time = "2026-02-02T15:38:46.388Z" }, + { url = "https://files.pythonhosted.org/packages/6f/1c/f2a8d8a1b17514660a614ce5f7aac74b934e69f5abc2700cc7ced882a009/orjson-3.11.7-cp314-cp314-win_arm64.whl", hash = "sha256:4a2e9c5be347b937a2e0203866f12bba36082e89b402ddb9e927d5822e43088d", size = 126038, upload-time = "2026-02-02T15:38:47.703Z" }, +] + +[[package]] +name = "packaging" +version = "26.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/65/ee/299d360cdc32edc7d2cf530f3accf79c4fca01e96ffc950d8a52213bd8e4/packaging-26.0.tar.gz", hash = "sha256:00243ae351a257117b6a241061796684b084ed1c516a08c48a3f7e147a9d80b4", size = 143416, upload-time = "2026-01-21T20:50:39.064Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/b9/c538f279a4e237a006a2c98387d081e9eb060d203d8ed34467cc0f0b9b53/packaging-26.0-py3-none-any.whl", hash = "sha256:b36f1fef9334a5588b4166f8bcd26a14e521f2b55e6b9de3aaa80d3ff7a37529", size = 74366, upload-time = "2026-01-21T20:50:37.788Z" }, +] + +[[package]] +name = "pandas" +version = "2.3.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, + { name = "python-dateutil" }, + { name = "pytz" }, + { name = "tzdata" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/33/01/d40b85317f86cf08d853a4f495195c73815fdf205eef3993821720274518/pandas-2.3.3.tar.gz", hash = "sha256:e05e1af93b977f7eafa636d043f9f94c7ee3ac81af99c13508215942e64c993b", size = 4495223, upload-time = "2025-09-29T23:34:51.853Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cd/4b/18b035ee18f97c1040d94debd8f2e737000ad70ccc8f5513f4eefad75f4b/pandas-2.3.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:56851a737e3470de7fa88e6131f41281ed440d29a9268dcbf0002da5ac366713", size = 11544671, upload-time = "2025-09-29T23:21:05.024Z" }, + { url = "https://files.pythonhosted.org/packages/31/94/72fac03573102779920099bcac1c3b05975c2cb5f01eac609faf34bed1ca/pandas-2.3.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:bdcd9d1167f4885211e401b3036c0c8d9e274eee67ea8d0758a256d60704cfe8", size = 10680807, upload-time = "2025-09-29T23:21:15.979Z" }, + { url = "https://files.pythonhosted.org/packages/16/87/9472cf4a487d848476865321de18cc8c920b8cab98453ab79dbbc98db63a/pandas-2.3.3-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e32e7cc9af0f1cc15548288a51a3b681cc2a219faa838e995f7dc53dbab1062d", size = 11709872, upload-time = "2025-09-29T23:21:27.165Z" }, + { url = "https://files.pythonhosted.org/packages/15/07/284f757f63f8a8d69ed4472bfd85122bd086e637bf4ed09de572d575a693/pandas-2.3.3-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:318d77e0e42a628c04dc56bcef4b40de67918f7041c2b061af1da41dcff670ac", size = 12306371, upload-time = "2025-09-29T23:21:40.532Z" }, + { url = "https://files.pythonhosted.org/packages/33/81/a3afc88fca4aa925804a27d2676d22dcd2031c2ebe08aabd0ae55b9ff282/pandas-2.3.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:4e0a175408804d566144e170d0476b15d78458795bb18f1304fb94160cabf40c", size = 12765333, upload-time = "2025-09-29T23:21:55.77Z" }, + { url = "https://files.pythonhosted.org/packages/8d/0f/b4d4ae743a83742f1153464cf1a8ecfafc3ac59722a0b5c8602310cb7158/pandas-2.3.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:93c2d9ab0fc11822b5eece72ec9587e172f63cff87c00b062f6e37448ced4493", size = 13418120, upload-time = "2025-09-29T23:22:10.109Z" }, + { url = "https://files.pythonhosted.org/packages/4f/c7/e54682c96a895d0c808453269e0b5928a07a127a15704fedb643e9b0a4c8/pandas-2.3.3-cp313-cp313-win_amd64.whl", hash = "sha256:f8bfc0e12dc78f777f323f55c58649591b2cd0c43534e8355c51d3fede5f4dee", size = 10993991, upload-time = "2025-09-29T23:25:04.889Z" }, + { url = "https://files.pythonhosted.org/packages/f9/ca/3f8d4f49740799189e1395812f3bf23b5e8fc7c190827d55a610da72ce55/pandas-2.3.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:75ea25f9529fdec2d2e93a42c523962261e567d250b0013b16210e1d40d7c2e5", size = 12048227, upload-time = "2025-09-29T23:22:24.343Z" }, + { url = "https://files.pythonhosted.org/packages/0e/5a/f43efec3e8c0cc92c4663ccad372dbdff72b60bdb56b2749f04aa1d07d7e/pandas-2.3.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:74ecdf1d301e812db96a465a525952f4dde225fdb6d8e5a521d47e1f42041e21", size = 11411056, upload-time = "2025-09-29T23:22:37.762Z" }, + { url = "https://files.pythonhosted.org/packages/46/b1/85331edfc591208c9d1a63a06baa67b21d332e63b7a591a5ba42a10bb507/pandas-2.3.3-cp313-cp313t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6435cb949cb34ec11cc9860246ccb2fdc9ecd742c12d3304989017d53f039a78", size = 11645189, upload-time = "2025-09-29T23:22:51.688Z" }, + { url = "https://files.pythonhosted.org/packages/44/23/78d645adc35d94d1ac4f2a3c4112ab6f5b8999f4898b8cdf01252f8df4a9/pandas-2.3.3-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:900f47d8f20860de523a1ac881c4c36d65efcb2eb850e6948140fa781736e110", size = 12121912, upload-time = "2025-09-29T23:23:05.042Z" }, + { url = "https://files.pythonhosted.org/packages/53/da/d10013df5e6aaef6b425aa0c32e1fc1f3e431e4bcabd420517dceadce354/pandas-2.3.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:a45c765238e2ed7d7c608fc5bc4a6f88b642f2f01e70c0c23d2224dd21829d86", size = 12712160, upload-time = "2025-09-29T23:23:28.57Z" }, + { url = "https://files.pythonhosted.org/packages/bd/17/e756653095a083d8a37cbd816cb87148debcfcd920129b25f99dd8d04271/pandas-2.3.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:c4fc4c21971a1a9f4bdb4c73978c7f7256caa3e62b323f70d6cb80db583350bc", size = 13199233, upload-time = "2025-09-29T23:24:24.876Z" }, + { url = "https://files.pythonhosted.org/packages/04/fd/74903979833db8390b73b3a8a7d30d146d710bd32703724dd9083950386f/pandas-2.3.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:ee15f284898e7b246df8087fc82b87b01686f98ee67d85a17b7ab44143a3a9a0", size = 11540635, upload-time = "2025-09-29T23:25:52.486Z" }, + { url = "https://files.pythonhosted.org/packages/21/00/266d6b357ad5e6d3ad55093a7e8efc7dd245f5a842b584db9f30b0f0a287/pandas-2.3.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:1611aedd912e1ff81ff41c745822980c49ce4a7907537be8692c8dbc31924593", size = 10759079, upload-time = "2025-09-29T23:26:33.204Z" }, + { url = "https://files.pythonhosted.org/packages/ca/05/d01ef80a7a3a12b2f8bbf16daba1e17c98a2f039cbc8e2f77a2c5a63d382/pandas-2.3.3-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6d2cefc361461662ac48810cb14365a365ce864afe85ef1f447ff5a1e99ea81c", size = 11814049, upload-time = "2025-09-29T23:27:15.384Z" }, + { url = "https://files.pythonhosted.org/packages/15/b2/0e62f78c0c5ba7e3d2c5945a82456f4fac76c480940f805e0b97fcbc2f65/pandas-2.3.3-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ee67acbbf05014ea6c763beb097e03cd629961c8a632075eeb34247120abcb4b", size = 12332638, upload-time = "2025-09-29T23:27:51.625Z" }, + { url = "https://files.pythonhosted.org/packages/c5/33/dd70400631b62b9b29c3c93d2feee1d0964dc2bae2e5ad7a6c73a7f25325/pandas-2.3.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:c46467899aaa4da076d5abc11084634e2d197e9460643dd455ac3db5856b24d6", size = 12886834, upload-time = "2025-09-29T23:28:21.289Z" }, + { url = "https://files.pythonhosted.org/packages/d3/18/b5d48f55821228d0d2692b34fd5034bb185e854bdb592e9c640f6290e012/pandas-2.3.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:6253c72c6a1d990a410bc7de641d34053364ef8bcd3126f7e7450125887dffe3", size = 13409925, upload-time = "2025-09-29T23:28:58.261Z" }, + { url = "https://files.pythonhosted.org/packages/a6/3d/124ac75fcd0ecc09b8fdccb0246ef65e35b012030defb0e0eba2cbbbe948/pandas-2.3.3-cp314-cp314-win_amd64.whl", hash = "sha256:1b07204a219b3b7350abaae088f451860223a52cfb8a6c53358e7948735158e5", size = 11109071, upload-time = "2025-09-29T23:32:27.484Z" }, + { url = "https://files.pythonhosted.org/packages/89/9c/0e21c895c38a157e0faa1fb64587a9226d6dd46452cac4532d80c3c4a244/pandas-2.3.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:2462b1a365b6109d275250baaae7b760fd25c726aaca0054649286bcfbb3e8ec", size = 12048504, upload-time = "2025-09-29T23:29:31.47Z" }, + { url = "https://files.pythonhosted.org/packages/d7/82/b69a1c95df796858777b68fbe6a81d37443a33319761d7c652ce77797475/pandas-2.3.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:0242fe9a49aa8b4d78a4fa03acb397a58833ef6199e9aa40a95f027bb3a1b6e7", size = 11410702, upload-time = "2025-09-29T23:29:54.591Z" }, + { url = "https://files.pythonhosted.org/packages/f9/88/702bde3ba0a94b8c73a0181e05144b10f13f29ebfc2150c3a79062a8195d/pandas-2.3.3-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a21d830e78df0a515db2b3d2f5570610f5e6bd2e27749770e8bb7b524b89b450", size = 11634535, upload-time = "2025-09-29T23:30:21.003Z" }, + { url = "https://files.pythonhosted.org/packages/a4/1e/1bac1a839d12e6a82ec6cb40cda2edde64a2013a66963293696bbf31fbbb/pandas-2.3.3-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2e3ebdb170b5ef78f19bfb71b0dc5dc58775032361fa188e814959b74d726dd5", size = 12121582, upload-time = "2025-09-29T23:30:43.391Z" }, + { url = "https://files.pythonhosted.org/packages/44/91/483de934193e12a3b1d6ae7c8645d083ff88dec75f46e827562f1e4b4da6/pandas-2.3.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:d051c0e065b94b7a3cea50eb1ec32e912cd96dba41647eb24104b6c6c14c5788", size = 12699963, upload-time = "2025-09-29T23:31:10.009Z" }, + { url = "https://files.pythonhosted.org/packages/70/44/5191d2e4026f86a2a109053e194d3ba7a31a2d10a9c2348368c63ed4e85a/pandas-2.3.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:3869faf4bd07b3b66a9f462417d0ca3a9df29a9f6abd5d0d0dbab15dac7abe87", size = 13202175, upload-time = "2025-09-29T23:31:59.173Z" }, +] + +[[package]] +name = "pandocfilters" +version = "1.5.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/70/6f/3dd4940bbe001c06a65f88e36bad298bc7a0de5036115639926b0c5c0458/pandocfilters-1.5.1.tar.gz", hash = "sha256:002b4a555ee4ebc03f8b66307e287fa492e4a77b4ea14d3f934328297bb4939e", size = 8454, upload-time = "2024-01-18T20:08:13.726Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ef/af/4fbc8cab944db5d21b7e2a5b8e9211a03a79852b1157e2c102fcc61ac440/pandocfilters-1.5.1-py2.py3-none-any.whl", hash = "sha256:93be382804a9cdb0a7267585f157e5d1731bbe5545a85b268d6f5fe6232de2bc", size = 8663, upload-time = "2024-01-18T20:08:11.28Z" }, +] + +[[package]] +name = "parso" +version = "0.8.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/81/76/a1e769043c0c0c9fe391b702539d594731a4362334cdf4dc25d0c09761e7/parso-0.8.6.tar.gz", hash = "sha256:2b9a0332696df97d454fa67b81618fd69c35a7b90327cbe6ba5c92d2c68a7bfd", size = 401621, upload-time = "2026-02-09T15:45:24.425Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b6/61/fae042894f4296ec49e3f193aff5d7c18440da9e48102c3315e1bc4519a7/parso-0.8.6-py2.py3-none-any.whl", hash = "sha256:2c549f800b70a5c4952197248825584cb00f033b29c692671d3bf08bf380baff", size = 106894, upload-time = "2026-02-09T15:45:21.391Z" }, +] + +[[package]] +name = "pexpect" +version = "4.9.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "ptyprocess" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/42/92/cc564bf6381ff43ce1f4d06852fc19a2f11d180f23dc32d9588bee2f149d/pexpect-4.9.0.tar.gz", hash = "sha256:ee7d41123f3c9911050ea2c2dac107568dc43b2d3b0c7557a33212c398ead30f", size = 166450, upload-time = "2023-11-25T09:07:26.339Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl", hash = "sha256:7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523", size = 63772, upload-time = "2023-11-25T06:56:14.81Z" }, +] + +[[package]] +name = "pi-heif" +version = "1.3.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pillow" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/34/4a/4a18057a7b64254abdcc4f78d92503fc4f5b8fcc66da118ba87989111ee8/pi_heif-1.3.0.tar.gz", hash = "sha256:58151840d0d60507330654a466b06cbf7ca8fb3759eadb5234d70b4dc2bc990c", size = 17131114, upload-time = "2026-02-27T12:22:40.544Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/87/a3/e921a28ea4b24bbd96cb9e1cd9272ab9a6525e875dcf1fadaeaf73369e81/pi_heif-1.3.0-cp313-cp313-macosx_10_15_x86_64.whl", hash = "sha256:1b151e3fb9a0ac4f3729da083eacca2ec4389d312d879ac4e01bb6a1c5fa0812", size = 1047186, upload-time = "2026-02-27T12:22:05.778Z" }, + { url = "https://files.pythonhosted.org/packages/68/c9/ea00b10871c63bc856760a47f9a40b2d6c3c50aaff2e7bc336b6f1205749/pi_heif-1.3.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:ee96ef255f37df9ed0b2d7865e6a746ff594d328c510ee457913f2f677c4f759", size = 942286, upload-time = "2026-02-27T12:22:06.799Z" }, + { url = "https://files.pythonhosted.org/packages/36/28/3accdd524cc56417df99a87d0e1416656100fe3e13e6aee42f5657540eb5/pi_heif-1.3.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d73d35540119e3ccce88a070fbe10e1cf29d119b149bd344c40ac30824edc8f5", size = 1361062, upload-time = "2026-02-27T12:22:08.56Z" }, + { url = "https://files.pythonhosted.org/packages/f2/11/e68468fea402318a1a422467b1077a053ac192281bdd04625a452c3e13ad/pi_heif-1.3.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:dd610ad8bc319e78c65e106da2ab71f3f4ba85851f77c1634e7c2352a09e7f97", size = 1489616, upload-time = "2026-02-27T12:22:09.815Z" }, + { url = "https://files.pythonhosted.org/packages/46/9b/470790bb3f37ac52edaba9f4b6ec315060fb0e9114e6ac9b8a704754f1d3/pi_heif-1.3.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:baedb73888a9d7c2dc2cfe86831c725b6ee640d6405b709d801e09409a7d0da6", size = 2343656, upload-time = "2026-02-27T12:22:11.199Z" }, + { url = "https://files.pythonhosted.org/packages/15/50/17dcf1f8c05eb1cc0ebd479faba3f5832eb5f2dc477ce48d772bebca196c/pi_heif-1.3.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:74488dc873986f584beb27c25fa1484a9d9ae10272f442a2571ca771915c28ea", size = 2508037, upload-time = "2026-02-27T12:22:12.212Z" }, + { url = "https://files.pythonhosted.org/packages/c9/6f/5c246d55bcdcfbfdc3d43dbc29c8a845c6b1c7739c4c88b0b29b93956003/pi_heif-1.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:0ce66f8ce661f5fb15e73ed91f697cec116ce41a6c6849e8b70ead1d3ad60973", size = 1946953, upload-time = "2026-02-27T12:22:13.532Z" }, + { url = "https://files.pythonhosted.org/packages/ea/e6/a4c05ae1fe025f5fe3839b8ab277a6dc861c5feac5214e286bc277ae5ae3/pi_heif-1.3.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:c00a918a20fb8da1883b3142506c0acb52ecff7901014962aa8d30b3ab78a5e2", size = 1047211, upload-time = "2026-02-27T12:22:14.835Z" }, + { url = "https://files.pythonhosted.org/packages/86/fe/b99741aa4ebd31a28ed4f1bb5703b242211b2968aec15f574a7c75993c89/pi_heif-1.3.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:e224db6932794bde6d18a2f4e417785a3944b8a61a6b582d8473026b5cdf0408", size = 942366, upload-time = "2026-02-27T12:22:15.942Z" }, + { url = "https://files.pythonhosted.org/packages/f9/2b/2a07a116a843a70b4f1320d75727ec2ab616609a4f84201fcbeb72afc685/pi_heif-1.3.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ab4764fbf8ec958c6c2b3643a2fa313a7f0275649783ce99ed68a1ce5b71ea96", size = 1361322, upload-time = "2026-02-27T12:22:16.939Z" }, + { url = "https://files.pythonhosted.org/packages/56/3c/93fb4aa1734722d4182ad521832c8e5009934d453b157e994b36e4444c02/pi_heif-1.3.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f84471adc59a80b06476aba241cfd7c56550ba891a3b6525f5b7aa8eadf8166b", size = 1489732, upload-time = "2026-02-27T12:22:17.977Z" }, + { url = "https://files.pythonhosted.org/packages/2a/5c/62f7be4abb279c8ff69bad8c811cdb1224618ab0c5c857ffdb9b4149dc28/pi_heif-1.3.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:dc2cd95a871d26d604d2a6bbf99c4e7644afbe0d302cdf34065deca41f8a2c30", size = 2343780, upload-time = "2026-02-27T12:22:18.996Z" }, + { url = "https://files.pythonhosted.org/packages/e5/7c/26bdeb9f632058d8558e409c37dddd069e58c726286247d693ecef833516/pi_heif-1.3.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:71f568ec93271bedd53917e59f617cf2410dbd8ca307e4bd55e319110d253bc1", size = 2508113, upload-time = "2026-02-27T12:22:20.066Z" }, + { url = "https://files.pythonhosted.org/packages/60/6b/42a1f0c4544d77d87116bb9ca77040566254ec45de5bca5e7201e0b56a6e/pi_heif-1.3.0-cp314-cp314-win_amd64.whl", hash = "sha256:caefadb3a8fcfb7857cd065038b24263b286ddd2ecfd8c8a6c01618d00cc8543", size = 2015496, upload-time = "2026-02-27T12:22:21.102Z" }, + { url = "https://files.pythonhosted.org/packages/95/2a/03baff344d2d664ca955c8d8797920bae49d66c8928134c0a071ab6e0319/pi_heif-1.3.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:3ffaf9a8a73c686cf6c24aedc9151f06c776591db47ff4245ee8a41a23f1cd22", size = 1048171, upload-time = "2026-02-27T12:22:22.137Z" }, + { url = "https://files.pythonhosted.org/packages/33/06/6b7f6f7e7d5bb08c720d04b15c67d4802154d4516feb371e46dd3d0f6698/pi_heif-1.3.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:42db92eb41825e9a3cb58a497bd382e61478dd4e2b0e531cdec3f5ddc2f6cefc", size = 943106, upload-time = "2026-02-27T12:22:23.189Z" }, + { url = "https://files.pythonhosted.org/packages/5c/21/75c676f96307eef0da33955481658adbedfff85c37f943b9ed528f633a76/pi_heif-1.3.0-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1ea595ea1fdd64dbcc29e4ab4e84902b22ef16812a12f459e876b3928d35c848", size = 1366398, upload-time = "2026-02-27T12:22:24.489Z" }, + { url = "https://files.pythonhosted.org/packages/77/aa/b8fb005c0e09dfee67fc4965d12bee41a2333e004574e47e1290a16bf851/pi_heif-1.3.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:86d10a002567de7e7b2da6ae993fb5c99d6f6a727c9b457e238987b047ad7f98", size = 1493859, upload-time = "2026-02-27T12:22:25.634Z" }, + { url = "https://files.pythonhosted.org/packages/d2/55/f76fba8d8ca1b95d89673e72067455ea1ba85c8d4cacacb0cee4c4882f52/pi_heif-1.3.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:95651a2a628ea1560e9f2669f9bb58ecbd02436cc52b6a8f2fff91d4f73107fb", size = 2348962, upload-time = "2026-02-27T12:22:26.992Z" }, + { url = "https://files.pythonhosted.org/packages/57/5a/af51148cf5804a120615548e5ec2fee2f22c19b1d88a0ee705a9f09b9f75/pi_heif-1.3.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:437f424d8d8bad9f4f23ee4febd8e93b4a2800746e45f676f4543435a7938ca1", size = 2512181, upload-time = "2026-02-27T12:22:29.11Z" }, + { url = "https://files.pythonhosted.org/packages/be/be/83f6f42c1a82cd3eb4a4d85abad9dbf917d4340ece240ba403ee4150de88/pi_heif-1.3.0-cp314-cp314t-win_amd64.whl", hash = "sha256:eba226ab71b1f6fde28a020bc3aeb4c6f2daad1cb7784f7dd57f85f9ef204892", size = 2016126, upload-time = "2026-02-27T12:22:30.377Z" }, +] + +[[package]] +name = "pillow" +version = "11.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f3/0d/d0d6dea55cd152ce3d6767bb38a8fc10e33796ba4ba210cbab9354b6d238/pillow-11.3.0.tar.gz", hash = "sha256:3828ee7586cd0b2091b6209e5ad53e20d0649bbe87164a459d0676e035e8f523", size = 47113069, upload-time = "2025-07-01T09:16:30.666Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1e/93/0952f2ed8db3a5a4c7a11f91965d6184ebc8cd7cbb7941a260d5f018cd2d/pillow-11.3.0-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:1c627742b539bba4309df89171356fcb3cc5a9178355b2727d1b74a6cf155fbd", size = 2128328, upload-time = "2025-07-01T09:14:35.276Z" }, + { url = "https://files.pythonhosted.org/packages/4b/e8/100c3d114b1a0bf4042f27e0f87d2f25e857e838034e98ca98fe7b8c0a9c/pillow-11.3.0-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:30b7c02f3899d10f13d7a48163c8969e4e653f8b43416d23d13d1bbfdc93b9f8", size = 2170652, upload-time = "2025-07-01T09:14:37.203Z" }, + { url = "https://files.pythonhosted.org/packages/aa/86/3f758a28a6e381758545f7cdb4942e1cb79abd271bea932998fc0db93cb6/pillow-11.3.0-cp313-cp313-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:7859a4cc7c9295f5838015d8cc0a9c215b77e43d07a25e460f35cf516df8626f", size = 2227443, upload-time = "2025-07-01T09:14:39.344Z" }, + { url = "https://files.pythonhosted.org/packages/01/f4/91d5b3ffa718df2f53b0dc109877993e511f4fd055d7e9508682e8aba092/pillow-11.3.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ec1ee50470b0d050984394423d96325b744d55c701a439d2bd66089bff963d3c", size = 5278474, upload-time = "2025-07-01T09:14:41.843Z" }, + { url = "https://files.pythonhosted.org/packages/f9/0e/37d7d3eca6c879fbd9dba21268427dffda1ab00d4eb05b32923d4fbe3b12/pillow-11.3.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7db51d222548ccfd274e4572fdbf3e810a5e66b00608862f947b163e613b67dd", size = 4686038, upload-time = "2025-07-01T09:14:44.008Z" }, + { url = "https://files.pythonhosted.org/packages/ff/b0/3426e5c7f6565e752d81221af9d3676fdbb4f352317ceafd42899aaf5d8a/pillow-11.3.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:2d6fcc902a24ac74495df63faad1884282239265c6839a0a6416d33faedfae7e", size = 5864407, upload-time = "2025-07-03T13:10:15.628Z" }, + { url = "https://files.pythonhosted.org/packages/fc/c1/c6c423134229f2a221ee53f838d4be9d82bab86f7e2f8e75e47b6bf6cd77/pillow-11.3.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f0f5d8f4a08090c6d6d578351a2b91acf519a54986c055af27e7a93feae6d3f1", size = 7639094, upload-time = "2025-07-03T13:10:21.857Z" }, + { url = "https://files.pythonhosted.org/packages/ba/c9/09e6746630fe6372c67c648ff9deae52a2bc20897d51fa293571977ceb5d/pillow-11.3.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c37d8ba9411d6003bba9e518db0db0c58a680ab9fe5179f040b0463644bc9805", size = 5973503, upload-time = "2025-07-01T09:14:45.698Z" }, + { url = "https://files.pythonhosted.org/packages/d5/1c/a2a29649c0b1983d3ef57ee87a66487fdeb45132df66ab30dd37f7dbe162/pillow-11.3.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:13f87d581e71d9189ab21fe0efb5a23e9f28552d5be6979e84001d3b8505abe8", size = 6642574, upload-time = "2025-07-01T09:14:47.415Z" }, + { url = "https://files.pythonhosted.org/packages/36/de/d5cc31cc4b055b6c6fd990e3e7f0f8aaf36229a2698501bcb0cdf67c7146/pillow-11.3.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:023f6d2d11784a465f09fd09a34b150ea4672e85fb3d05931d89f373ab14abb2", size = 6084060, upload-time = "2025-07-01T09:14:49.636Z" }, + { url = "https://files.pythonhosted.org/packages/d5/ea/502d938cbaeec836ac28a9b730193716f0114c41325db428e6b280513f09/pillow-11.3.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:45dfc51ac5975b938e9809451c51734124e73b04d0f0ac621649821a63852e7b", size = 6721407, upload-time = "2025-07-01T09:14:51.962Z" }, + { url = "https://files.pythonhosted.org/packages/45/9c/9c5e2a73f125f6cbc59cc7087c8f2d649a7ae453f83bd0362ff7c9e2aee2/pillow-11.3.0-cp313-cp313-win32.whl", hash = "sha256:a4d336baed65d50d37b88ca5b60c0fa9d81e3a87d4a7930d3880d1624d5b31f3", size = 6273841, upload-time = "2025-07-01T09:14:54.142Z" }, + { url = "https://files.pythonhosted.org/packages/23/85/397c73524e0cd212067e0c969aa245b01d50183439550d24d9f55781b776/pillow-11.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:0bce5c4fd0921f99d2e858dc4d4d64193407e1b99478bc5cacecba2311abde51", size = 6978450, upload-time = "2025-07-01T09:14:56.436Z" }, + { url = "https://files.pythonhosted.org/packages/17/d2/622f4547f69cd173955194b78e4d19ca4935a1b0f03a302d655c9f6aae65/pillow-11.3.0-cp313-cp313-win_arm64.whl", hash = "sha256:1904e1264881f682f02b7f8167935cce37bc97db457f8e7849dc3a6a52b99580", size = 2423055, upload-time = "2025-07-01T09:14:58.072Z" }, + { url = "https://files.pythonhosted.org/packages/dd/80/a8a2ac21dda2e82480852978416cfacd439a4b490a501a288ecf4fe2532d/pillow-11.3.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:4c834a3921375c48ee6b9624061076bc0a32a60b5532b322cc0ea64e639dd50e", size = 5281110, upload-time = "2025-07-01T09:14:59.79Z" }, + { url = "https://files.pythonhosted.org/packages/44/d6/b79754ca790f315918732e18f82a8146d33bcd7f4494380457ea89eb883d/pillow-11.3.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:5e05688ccef30ea69b9317a9ead994b93975104a677a36a8ed8106be9260aa6d", size = 4689547, upload-time = "2025-07-01T09:15:01.648Z" }, + { url = "https://files.pythonhosted.org/packages/49/20/716b8717d331150cb00f7fdd78169c01e8e0c219732a78b0e59b6bdb2fd6/pillow-11.3.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:1019b04af07fc0163e2810167918cb5add8d74674b6267616021ab558dc98ced", size = 5901554, upload-time = "2025-07-03T13:10:27.018Z" }, + { url = "https://files.pythonhosted.org/packages/74/cf/a9f3a2514a65bb071075063a96f0a5cf949c2f2fce683c15ccc83b1c1cab/pillow-11.3.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f944255db153ebb2b19c51fe85dd99ef0ce494123f21b9db4877ffdfc5590c7c", size = 7669132, upload-time = "2025-07-03T13:10:33.01Z" }, + { url = "https://files.pythonhosted.org/packages/98/3c/da78805cbdbee9cb43efe8261dd7cc0b4b93f2ac79b676c03159e9db2187/pillow-11.3.0-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1f85acb69adf2aaee8b7da124efebbdb959a104db34d3a2cb0f3793dbae422a8", size = 6005001, upload-time = "2025-07-01T09:15:03.365Z" }, + { url = "https://files.pythonhosted.org/packages/6c/fa/ce044b91faecf30e635321351bba32bab5a7e034c60187fe9698191aef4f/pillow-11.3.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:05f6ecbeff5005399bb48d198f098a9b4b6bdf27b8487c7f38ca16eeb070cd59", size = 6668814, upload-time = "2025-07-01T09:15:05.655Z" }, + { url = "https://files.pythonhosted.org/packages/7b/51/90f9291406d09bf93686434f9183aba27b831c10c87746ff49f127ee80cb/pillow-11.3.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:a7bc6e6fd0395bc052f16b1a8670859964dbd7003bd0af2ff08342eb6e442cfe", size = 6113124, upload-time = "2025-07-01T09:15:07.358Z" }, + { url = "https://files.pythonhosted.org/packages/cd/5a/6fec59b1dfb619234f7636d4157d11fb4e196caeee220232a8d2ec48488d/pillow-11.3.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:83e1b0161c9d148125083a35c1c5a89db5b7054834fd4387499e06552035236c", size = 6747186, upload-time = "2025-07-01T09:15:09.317Z" }, + { url = "https://files.pythonhosted.org/packages/49/6b/00187a044f98255225f172de653941e61da37104a9ea60e4f6887717e2b5/pillow-11.3.0-cp313-cp313t-win32.whl", hash = "sha256:2a3117c06b8fb646639dce83694f2f9eac405472713fcb1ae887469c0d4f6788", size = 6277546, upload-time = "2025-07-01T09:15:11.311Z" }, + { url = "https://files.pythonhosted.org/packages/e8/5c/6caaba7e261c0d75bab23be79f1d06b5ad2a2ae49f028ccec801b0e853d6/pillow-11.3.0-cp313-cp313t-win_amd64.whl", hash = "sha256:857844335c95bea93fb39e0fa2726b4d9d758850b34075a7e3ff4f4fa3aa3b31", size = 6985102, upload-time = "2025-07-01T09:15:13.164Z" }, + { url = "https://files.pythonhosted.org/packages/f3/7e/b623008460c09a0cb38263c93b828c666493caee2eb34ff67f778b87e58c/pillow-11.3.0-cp313-cp313t-win_arm64.whl", hash = "sha256:8797edc41f3e8536ae4b10897ee2f637235c94f27404cac7297f7b607dd0716e", size = 2424803, upload-time = "2025-07-01T09:15:15.695Z" }, + { url = "https://files.pythonhosted.org/packages/73/f4/04905af42837292ed86cb1b1dabe03dce1edc008ef14c473c5c7e1443c5d/pillow-11.3.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:d9da3df5f9ea2a89b81bb6087177fb1f4d1c7146d583a3fe5c672c0d94e55e12", size = 5278520, upload-time = "2025-07-01T09:15:17.429Z" }, + { url = "https://files.pythonhosted.org/packages/41/b0/33d79e377a336247df6348a54e6d2a2b85d644ca202555e3faa0cf811ecc/pillow-11.3.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:0b275ff9b04df7b640c59ec5a3cb113eefd3795a8df80bac69646ef699c6981a", size = 4686116, upload-time = "2025-07-01T09:15:19.423Z" }, + { url = "https://files.pythonhosted.org/packages/49/2d/ed8bc0ab219ae8768f529597d9509d184fe8a6c4741a6864fea334d25f3f/pillow-11.3.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:0743841cabd3dba6a83f38a92672cccbd69af56e3e91777b0ee7f4dba4385632", size = 5864597, upload-time = "2025-07-03T13:10:38.404Z" }, + { url = "https://files.pythonhosted.org/packages/b5/3d/b932bb4225c80b58dfadaca9d42d08d0b7064d2d1791b6a237f87f661834/pillow-11.3.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:2465a69cf967b8b49ee1b96d76718cd98c4e925414ead59fdf75cf0fd07df673", size = 7638246, upload-time = "2025-07-03T13:10:44.987Z" }, + { url = "https://files.pythonhosted.org/packages/09/b5/0487044b7c096f1b48f0d7ad416472c02e0e4bf6919541b111efd3cae690/pillow-11.3.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:41742638139424703b4d01665b807c6468e23e699e8e90cffefe291c5832b027", size = 5973336, upload-time = "2025-07-01T09:15:21.237Z" }, + { url = "https://files.pythonhosted.org/packages/a8/2d/524f9318f6cbfcc79fbc004801ea6b607ec3f843977652fdee4857a7568b/pillow-11.3.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:93efb0b4de7e340d99057415c749175e24c8864302369e05914682ba642e5d77", size = 6642699, upload-time = "2025-07-01T09:15:23.186Z" }, + { url = "https://files.pythonhosted.org/packages/6f/d2/a9a4f280c6aefedce1e8f615baaa5474e0701d86dd6f1dede66726462bbd/pillow-11.3.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7966e38dcd0fa11ca390aed7c6f20454443581d758242023cf36fcb319b1a874", size = 6083789, upload-time = "2025-07-01T09:15:25.1Z" }, + { url = "https://files.pythonhosted.org/packages/fe/54/86b0cd9dbb683a9d5e960b66c7379e821a19be4ac5810e2e5a715c09a0c0/pillow-11.3.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:98a9afa7b9007c67ed84c57c9e0ad86a6000da96eaa638e4f8abe5b65ff83f0a", size = 6720386, upload-time = "2025-07-01T09:15:27.378Z" }, + { url = "https://files.pythonhosted.org/packages/e7/95/88efcaf384c3588e24259c4203b909cbe3e3c2d887af9e938c2022c9dd48/pillow-11.3.0-cp314-cp314-win32.whl", hash = "sha256:02a723e6bf909e7cea0dac1b0e0310be9d7650cd66222a5f1c571455c0a45214", size = 6370911, upload-time = "2025-07-01T09:15:29.294Z" }, + { url = "https://files.pythonhosted.org/packages/2e/cc/934e5820850ec5eb107e7b1a72dd278140731c669f396110ebc326f2a503/pillow-11.3.0-cp314-cp314-win_amd64.whl", hash = "sha256:a418486160228f64dd9e9efcd132679b7a02a5f22c982c78b6fc7dab3fefb635", size = 7117383, upload-time = "2025-07-01T09:15:31.128Z" }, + { url = "https://files.pythonhosted.org/packages/d6/e9/9c0a616a71da2a5d163aa37405e8aced9a906d574b4a214bede134e731bc/pillow-11.3.0-cp314-cp314-win_arm64.whl", hash = "sha256:155658efb5e044669c08896c0c44231c5e9abcaadbc5cd3648df2f7c0b96b9a6", size = 2511385, upload-time = "2025-07-01T09:15:33.328Z" }, + { url = "https://files.pythonhosted.org/packages/1a/33/c88376898aff369658b225262cd4f2659b13e8178e7534df9e6e1fa289f6/pillow-11.3.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:59a03cdf019efbfeeed910bf79c7c93255c3d54bc45898ac2a4140071b02b4ae", size = 5281129, upload-time = "2025-07-01T09:15:35.194Z" }, + { url = "https://files.pythonhosted.org/packages/1f/70/d376247fb36f1844b42910911c83a02d5544ebd2a8bad9efcc0f707ea774/pillow-11.3.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:f8a5827f84d973d8636e9dc5764af4f0cf2318d26744b3d902931701b0d46653", size = 4689580, upload-time = "2025-07-01T09:15:37.114Z" }, + { url = "https://files.pythonhosted.org/packages/eb/1c/537e930496149fbac69efd2fc4329035bbe2e5475b4165439e3be9cb183b/pillow-11.3.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ee92f2fd10f4adc4b43d07ec5e779932b4eb3dbfbc34790ada5a6669bc095aa6", size = 5902860, upload-time = "2025-07-03T13:10:50.248Z" }, + { url = "https://files.pythonhosted.org/packages/bd/57/80f53264954dcefeebcf9dae6e3eb1daea1b488f0be8b8fef12f79a3eb10/pillow-11.3.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c96d333dcf42d01f47b37e0979b6bd73ec91eae18614864622d9b87bbd5bbf36", size = 7670694, upload-time = "2025-07-03T13:10:56.432Z" }, + { url = "https://files.pythonhosted.org/packages/70/ff/4727d3b71a8578b4587d9c276e90efad2d6fe0335fd76742a6da08132e8c/pillow-11.3.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4c96f993ab8c98460cd0c001447bff6194403e8b1d7e149ade5f00594918128b", size = 6005888, upload-time = "2025-07-01T09:15:39.436Z" }, + { url = "https://files.pythonhosted.org/packages/05/ae/716592277934f85d3be51d7256f3636672d7b1abfafdc42cf3f8cbd4b4c8/pillow-11.3.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:41342b64afeba938edb034d122b2dda5db2139b9a4af999729ba8818e0056477", size = 6670330, upload-time = "2025-07-01T09:15:41.269Z" }, + { url = "https://files.pythonhosted.org/packages/e7/bb/7fe6cddcc8827b01b1a9766f5fdeb7418680744f9082035bdbabecf1d57f/pillow-11.3.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:068d9c39a2d1b358eb9f245ce7ab1b5c3246c7c8c7d9ba58cfa5b43146c06e50", size = 6114089, upload-time = "2025-07-01T09:15:43.13Z" }, + { url = "https://files.pythonhosted.org/packages/8b/f5/06bfaa444c8e80f1a8e4bff98da9c83b37b5be3b1deaa43d27a0db37ef84/pillow-11.3.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:a1bc6ba083b145187f648b667e05a2534ecc4b9f2784c2cbe3089e44868f2b9b", size = 6748206, upload-time = "2025-07-01T09:15:44.937Z" }, + { url = "https://files.pythonhosted.org/packages/f0/77/bc6f92a3e8e6e46c0ca78abfffec0037845800ea38c73483760362804c41/pillow-11.3.0-cp314-cp314t-win32.whl", hash = "sha256:118ca10c0d60b06d006be10a501fd6bbdfef559251ed31b794668ed569c87e12", size = 6377370, upload-time = "2025-07-01T09:15:46.673Z" }, + { url = "https://files.pythonhosted.org/packages/4a/82/3a721f7d69dca802befb8af08b7c79ebcab461007ce1c18bd91a5d5896f9/pillow-11.3.0-cp314-cp314t-win_amd64.whl", hash = "sha256:8924748b688aa210d79883357d102cd64690e56b923a186f35a82cbc10f997db", size = 7121500, upload-time = "2025-07-01T09:15:48.512Z" }, + { url = "https://files.pythonhosted.org/packages/89/c7/5572fa4a3f45740eaab6ae86fcdf7195b55beac1371ac8c619d880cfe948/pillow-11.3.0-cp314-cp314t-win_arm64.whl", hash = "sha256:79ea0d14d3ebad43ec77ad5272e6ff9bba5b679ef73375ea760261207fa8e0aa", size = 2512835, upload-time = "2025-07-01T09:15:50.399Z" }, +] + +[[package]] +name = "pillow-avif-plugin" +version = "1.5.5" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/10/45/c779c020c0972a771778544acd1a1ee0bce83e51f4d2f5f1bda5d53bd373/pillow_avif_plugin-1.5.5.tar.gz", hash = "sha256:e97956a62fc4f252e2a54644312839e194ec09b693f2f7b4d28c44cd747baf9d", size = 20660, upload-time = "2026-01-22T20:33:47.11Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0a/07/5c8ad716fe103b66db85d756e635985084ea2965484374dc9d8fec6153d7/pillow_avif_plugin-1.5.5-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:dc277004ea675f629ac51155275f69bb18b0b7bf3ed46a788fc4a70f79b8e2bf", size = 5097763, upload-time = "2026-01-22T20:31:19.142Z" }, + { url = "https://files.pythonhosted.org/packages/da/6d/b7e9573440fed7a0c1f8861f72ae74718d873c49517e79ccc623ba9a0944/pillow_avif_plugin-1.5.5-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5735b1373faaa890a77b91971afcc60b14cbeab3960630a76011ebdb3e6d5fe6", size = 3817677, upload-time = "2026-01-22T20:31:20.604Z" }, + { url = "https://files.pythonhosted.org/packages/ca/1b/b2ee574f3a873971bbe6ee6c3733200af994eff61f3eed84ea8066642d9e/pillow_avif_plugin-1.5.5-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:0a569a81287d141b6d3b8652663eac18403dfcc1662bb2e9f8f11afa3b956d13", size = 4045056, upload-time = "2026-01-22T20:31:22.162Z" }, + { url = "https://files.pythonhosted.org/packages/87/c2/3c16f3741a2ecf397af314035e49e9199d14381013ff2679f283ab79e9f4/pillow_avif_plugin-1.5.5-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:25b843855bd7f51d64def876d570836432576ccb10926744cef6e7b2bf851bea", size = 7686972, upload-time = "2026-01-22T20:31:23.548Z" }, + { url = "https://files.pythonhosted.org/packages/2e/c3/67716bc829df33ea5e6384d067b00a5ec9a5f50f1e53dd0af7e973236f0c/pillow_avif_plugin-1.5.5-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:e60851ea25d0674650416c915377078120f078714b708aa40492765768f7595e", size = 4059374, upload-time = "2026-01-22T20:31:24.911Z" }, + { url = "https://files.pythonhosted.org/packages/34/86/e6ad9a25a63e6cfcdd4d4fe5600a64e94468c8ee85b2946fae95437c9348/pillow_avif_plugin-1.5.5-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:b4012226dcac34f4e4ed35ed367463f8565e5f67982a9d375a39a9c377265707", size = 5512185, upload-time = "2026-01-22T20:31:26.799Z" }, + { url = "https://files.pythonhosted.org/packages/93/6e/d44826e765bc36c42fa30e94a4fdfc060ee0cd0aa832ee53ad72e45fdc2b/pillow_avif_plugin-1.5.5-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:41f91f044c34adf7b22e0e39fcdc5281df8894d1d694da09f4fc1551d2699dc2", size = 4378888, upload-time = "2026-01-22T20:31:28.91Z" }, + { url = "https://files.pythonhosted.org/packages/a7/2e/8b26a17fd308ac77bba4a044e86d16e00db2d89e776f8533f06b9517d5ea/pillow_avif_plugin-1.5.5-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e7bd1199004c61e820ef6d6bf21ab2bf76d6daea7893fe8fb06f2ddc146dfe48", size = 5759472, upload-time = "2026-01-22T20:31:30.403Z" }, + { url = "https://files.pythonhosted.org/packages/87/07/d432621fabce0c1eea7b92cf47186961a1c9605d7a23c0f54d25b35822c7/pillow_avif_plugin-1.5.5-cp313-cp313-win_amd64.whl", hash = "sha256:1831d3d75671e1c0a936ffceb98bc9fb52972088de7e4f7ec8ffb4478e241f62", size = 9869801, upload-time = "2026-01-22T20:31:32.029Z" }, + { url = "https://files.pythonhosted.org/packages/36/db/4e59f0982986fad0c58528c984f05c5ca06000d4d5fb356235a80cec5bbb/pillow_avif_plugin-1.5.5-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:c98ce14366b5f55272b44de22886e1d398ce33448536d0fd31224665291f8e13", size = 5098135, upload-time = "2026-01-22T20:31:34.253Z" }, + { url = "https://files.pythonhosted.org/packages/76/a5/15c48491809a3b94445474c9ffcfaca1a84a34219c2c68da6449c964eed0/pillow_avif_plugin-1.5.5-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:bbd18def950386cab6383054d8858b73fc239ddfe8a5c54ca9cefbe07760fb60", size = 3818033, upload-time = "2026-01-22T20:31:35.528Z" }, + { url = "https://files.pythonhosted.org/packages/b8/e5/cd3cde9f10e831e4239119c8ecb733ad614ea6096e708742edf09bf1ad21/pillow_avif_plugin-1.5.5-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:b7b596ccb0be5289ab320be6b5dc777b2c09b0ede07cc353735232cc4c73f428", size = 4050123, upload-time = "2026-01-22T20:32:37Z" }, + { url = "https://files.pythonhosted.org/packages/0a/a4/653b81ff69e9225c117e009a07d0f0fed6195c51d4aa1950c94d2b25085f/pillow_avif_plugin-1.5.5-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:787027f3cbb821627c36398b2a6c4b4c97de500e8ba966203de58e4e17943693", size = 7691199, upload-time = "2026-01-22T20:32:38.534Z" }, + { url = "https://files.pythonhosted.org/packages/80/c9/0f64fedd3573e9486956a9f68473a5d2d7be1040568ff8e91ceaa64b2b8d/pillow_avif_plugin-1.5.5-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:c0abc4b7406d23c386bfeda9620e4c9bd54b65ccb85b42dba82c6b08aedf99d7", size = 4064545, upload-time = "2026-01-22T20:32:40.378Z" }, + { url = "https://files.pythonhosted.org/packages/5c/60/7541e9771fefeade486c4527b65d5beac7aeda48a6e4f99b73451e3f02fa/pillow_avif_plugin-1.5.5-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:aa82bb5f0080ae6827b4cd0a93c906cb77c0958431ed73e3b12b1f8d1ed66d0a", size = 5516645, upload-time = "2026-01-22T20:32:41.701Z" }, + { url = "https://files.pythonhosted.org/packages/2a/3f/04e4bd7ab8ece4f61098140c11960af0cea5b00e7b1ceb9a7f4306de050b/pillow_avif_plugin-1.5.5-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:fe3d66eceae96094b39b3b5d7643d310ce59680f2138da59742582054830c882", size = 4383725, upload-time = "2026-01-22T20:32:43.047Z" }, + { url = "https://files.pythonhosted.org/packages/b0/00/43e50f35876afe5e183685528472a85ce1d7a40972f9eb0c820a3bc7b74b/pillow_avif_plugin-1.5.5-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:6e98edb1ce487898668c93599fbb004fab68ad9d48cef11dab3675c5960fef95", size = 5763593, upload-time = "2026-01-22T20:32:44.317Z" }, + { url = "https://files.pythonhosted.org/packages/73/b6/7de1618fe560378874ac63c6297e45856c7541098ddc6580336f83b49f78/pillow_avif_plugin-1.5.5-cp313-cp313t-win_amd64.whl", hash = "sha256:5e2d39f9c4400e810c951b3d1d4310142fb3af43134a07c995ab1f7275b82b5e", size = 9870375, upload-time = "2026-01-22T20:32:45.995Z" }, + { url = "https://files.pythonhosted.org/packages/c1/d2/abe74424802cbdbe3fda1aa3aa251c6863a8f8e16c481737b1f885cd21a0/pillow_avif_plugin-1.5.5-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:6c39a5abe3316551329c998ea14b24034f0e8a150c10b590121367a807e47c5e", size = 5097835, upload-time = "2026-01-22T20:32:48.184Z" }, + { url = "https://files.pythonhosted.org/packages/b8/f5/1bd31217ecf533f874a2767caa67534371bb22b716d94dd5e888dddac6af/pillow_avif_plugin-1.5.5-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:2026acc9697b64adaa328b7e8504b579d30e45f46656953a8421aafa7b6f9b33", size = 3817665, upload-time = "2026-01-22T20:32:49.781Z" }, + { url = "https://files.pythonhosted.org/packages/85/f2/5af680b42114a0a361df37c828ba9455e2699084b4a074bf89bf1005909c/pillow_avif_plugin-1.5.5-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7524b9d0757a1ff4ed1337188d690b68949e3f521e02246b1469d49449294080", size = 4045282, upload-time = "2026-01-22T20:32:51.028Z" }, + { url = "https://files.pythonhosted.org/packages/d6/10/4bacc223306fad6b8823f15d0561ef6e267653a3015c7806e1d2a3c2a858/pillow_avif_plugin-1.5.5-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:705ddd136f03b681f5be28e72798204c957658c240d2a874d8656efecdf82b75", size = 7687078, upload-time = "2026-01-22T20:32:52.303Z" }, + { url = "https://files.pythonhosted.org/packages/13/f2/797f0631f21b5fab96b18479f1398cc3e177cfde5b97ffc76d4f07aa4953/pillow_avif_plugin-1.5.5-cp314-cp314-manylinux_2_28_aarch64.whl", hash = "sha256:7d3e56a596421a3af7970cf1a64767dc9fc76dc7b364b36919eb75b8b5ec5fcd", size = 4059618, upload-time = "2026-01-22T20:32:53.673Z" }, + { url = "https://files.pythonhosted.org/packages/d2/5a/f67fd5cae4e51173c51483f84b878af336556d14e7c6e71421341c687782/pillow_avif_plugin-1.5.5-cp314-cp314-manylinux_2_28_x86_64.whl", hash = "sha256:0ac4ce64b66b0b6eb96484b6a9985d06f56a4b57f357f6cd1d040543f6bedf1a", size = 5512333, upload-time = "2026-01-22T20:32:54.996Z" }, + { url = "https://files.pythonhosted.org/packages/1a/07/dc7e99b5fb893e3fefebce79cc3c523b05c4f57f2f559e5763898af0f3f1/pillow_avif_plugin-1.5.5-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:f102dec7f482b5ca999a923933e440a82bfd8ae2eb5893fe144ef8f47cf8d971", size = 4379122, upload-time = "2026-01-22T20:32:56.326Z" }, + { url = "https://files.pythonhosted.org/packages/3f/6f/8e0787885be7624e6b2b7abf271587ea31e8a7afb52ce2c279b98581ec67/pillow_avif_plugin-1.5.5-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:e45fbda332affe999c250de21f4aca277b3fe6805c8fce182006e854e6b4de5c", size = 5759628, upload-time = "2026-01-22T20:32:57.978Z" }, + { url = "https://files.pythonhosted.org/packages/a8/59/f7829c6683b310308a9bae037293b5ca5844de91a93e4744996cafe74b29/pillow_avif_plugin-1.5.5-cp314-cp314-win_amd64.whl", hash = "sha256:a6c6c70dc227d2810ae1e51e39e6f1adccd310a284e1f788aeb54a52fb95c05b", size = 9959135, upload-time = "2026-01-22T20:32:59.956Z" }, + { url = "https://files.pythonhosted.org/packages/9b/7d/b4b1332cd8108f9f4c171506d582f083e6df2631923976bf768dc81b5a17/pillow_avif_plugin-1.5.5-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:cff2d641b86a72c6767f19f0c5fdab54289d1fa9457bcacb19c030b620ca461e", size = 5098234, upload-time = "2026-01-22T20:33:01.701Z" }, + { url = "https://files.pythonhosted.org/packages/27/54/029a29d04e6269bdb25171d1646b23c1e2dad15c84fe5c0398c76790113c/pillow_avif_plugin-1.5.5-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:cf462e4f1463a942a77f7222b8bc4d51f0580aed49cedb36c7cfe35028a9f67b", size = 3818041, upload-time = "2026-01-22T20:33:03.616Z" }, + { url = "https://files.pythonhosted.org/packages/49/97/69fdcfe81628a1a636d92e779fc27a8bb84f036996f504090f03ca927424/pillow_avif_plugin-1.5.5-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d410c8f7a8f570f93cbbeffcde22574cbf57bc8e5de8ccc973530a74f1aaeee2", size = 4050268, upload-time = "2026-01-22T20:33:05.428Z" }, + { url = "https://files.pythonhosted.org/packages/27/b7/42d45dade43b08d6656982b57abef929a1af82ffe1c794128734dbb670fe/pillow_avif_plugin-1.5.5-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:73d37914ad82bec6583c5df70dea5ccb4d2f5435ca3c48e50b1c5fff52c92d6e", size = 7691352, upload-time = "2026-01-22T20:33:06.982Z" }, + { url = "https://files.pythonhosted.org/packages/13/28/359ff8ea591f374170949392ec20b91de1bf1149e9cc9a8d060b7bb077e8/pillow_avif_plugin-1.5.5-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:9441006c3d242dfb7b54e9294a747b578f620446998a2384cfd2926cc0c0d107", size = 4064664, upload-time = "2026-01-22T20:33:09.977Z" }, + { url = "https://files.pythonhosted.org/packages/f3/08/c8abcff61c73e3c199fd19766b792c48bc41c35cab670c9e7ea6a4c207c4/pillow_avif_plugin-1.5.5-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:465f2aa24ed03d4ad5545ab4cd7627074c181cc0e96715419cd6c8fcff509779", size = 5516782, upload-time = "2026-01-22T20:33:11.38Z" }, + { url = "https://files.pythonhosted.org/packages/5f/24/7b6f75a48d2c2b8461b461bad834b2294277040f643a09ba7ce446a603f8/pillow_avif_plugin-1.5.5-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:0b04eac3d9f13f3fb1f147dbc39a54c186d16b8696b2b984880d01803995dbd5", size = 4383836, upload-time = "2026-01-22T20:33:12.96Z" }, + { url = "https://files.pythonhosted.org/packages/8f/72/c9b4e7c2d6216d85fadde8dc3d6074d70c2734ee5627065f4ca6403cadcf/pillow_avif_plugin-1.5.5-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:1bc75fe3ce1f369bb5068911625fca1430c63b62ae8d8c1ae85e4c839b4dd23c", size = 5763739, upload-time = "2026-01-22T20:33:14.338Z" }, + { url = "https://files.pythonhosted.org/packages/53/eb/27af95ea3db131f5ed17541c74b9a14c40bc33f68ff9a78e1696f0285565/pillow_avif_plugin-1.5.5-cp314-cp314t-win_amd64.whl", hash = "sha256:3ec51ff05f6d254b3d2ec2fd134040921959554b542a5f1dbb62ee49c29e51ed", size = 9959564, upload-time = "2026-01-22T20:33:15.936Z" }, +] + +[[package]] +name = "platformdirs" +version = "4.9.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/1b/04/fea538adf7dbbd6d186f551d595961e564a3b6715bdf276b477460858672/platformdirs-4.9.2.tar.gz", hash = "sha256:9a33809944b9db043ad67ca0db94b14bf452cc6aeaac46a88ea55b26e2e9d291", size = 28394, upload-time = "2026-02-16T03:56:10.574Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/48/31/05e764397056194206169869b50cf2fee4dbbbc71b344705b9c0d878d4d8/platformdirs-4.9.2-py3-none-any.whl", hash = "sha256:9170634f126f8efdae22fb58ae8a0eaa86f38365bc57897a6c4f781d1f5875bd", size = 21168, upload-time = "2026-02-16T03:56:08.891Z" }, +] + +[[package]] +name = "prometheus-client" +version = "0.24.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f0/58/a794d23feb6b00fc0c72787d7e87d872a6730dd9ed7c7b3e954637d8f280/prometheus_client-0.24.1.tar.gz", hash = "sha256:7e0ced7fbbd40f7b84962d5d2ab6f17ef88a72504dcf7c0b40737b43b2a461f9", size = 85616, upload-time = "2026-01-14T15:26:26.965Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/74/c3/24a2f845e3917201628ecaba4f18bab4d18a337834c1df2a159ee9d22a42/prometheus_client-0.24.1-py3-none-any.whl", hash = "sha256:150db128af71a5c2482b36e588fc8a6b95e498750da4b17065947c16070f4055", size = 64057, upload-time = "2026-01-14T15:26:24.42Z" }, +] + +[[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, upload-time = "2025-08-27T15:24:02.057Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/84/03/0d3ce49e2505ae70cf43bc5bb3033955d2fc9f932163e84dc0779cc47f48/prompt_toolkit-3.0.52-py3-none-any.whl", hash = "sha256:9aac639a3bbd33284347de5ad8d68ecc044b91a762dc39b7c21095fcd6a19955", size = 391431, upload-time = "2025-08-27T15:23:59.498Z" }, +] + +[[package]] +name = "psutil" +version = "7.2.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/aa/c6/d1ddf4abb55e93cebc4f2ed8b5d6dbad109ecb8d63748dd2b20ab5e57ebe/psutil-7.2.2.tar.gz", hash = "sha256:0746f5f8d406af344fd547f1c8daa5f5c33dbc293bb8d6a16d80b4bb88f59372", size = 493740, upload-time = "2026-01-28T18:14:54.428Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/51/08/510cbdb69c25a96f4ae523f733cdc963ae654904e8db864c07585ef99875/psutil-7.2.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:2edccc433cbfa046b980b0df0171cd25bcaeb3a68fe9022db0979e7aa74a826b", size = 130595, upload-time = "2026-01-28T18:14:57.293Z" }, + { url = "https://files.pythonhosted.org/packages/d6/f5/97baea3fe7a5a9af7436301f85490905379b1c6f2dd51fe3ecf24b4c5fbf/psutil-7.2.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:e78c8603dcd9a04c7364f1a3e670cea95d51ee865e4efb3556a3a63adef958ea", size = 131082, upload-time = "2026-01-28T18:14:59.732Z" }, + { url = "https://files.pythonhosted.org/packages/37/d6/246513fbf9fa174af531f28412297dd05241d97a75911ac8febefa1a53c6/psutil-7.2.2-cp313-cp313t-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1a571f2330c966c62aeda00dd24620425d4b0cc86881c89861fbc04549e5dc63", size = 181476, upload-time = "2026-01-28T18:15:01.884Z" }, + { url = "https://files.pythonhosted.org/packages/b8/b5/9182c9af3836cca61696dabe4fd1304e17bc56cb62f17439e1154f225dd3/psutil-7.2.2-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:917e891983ca3c1887b4ef36447b1e0873e70c933afc831c6b6da078ba474312", size = 184062, upload-time = "2026-01-28T18:15:04.436Z" }, + { url = "https://files.pythonhosted.org/packages/16/ba/0756dca669f5a9300d0cbcbfae9a4c30e446dfc7440ffe43ded5724bfd93/psutil-7.2.2-cp313-cp313t-win_amd64.whl", hash = "sha256:ab486563df44c17f5173621c7b198955bd6b613fb87c71c161f827d3fb149a9b", size = 139893, upload-time = "2026-01-28T18:15:06.378Z" }, + { url = "https://files.pythonhosted.org/packages/1c/61/8fa0e26f33623b49949346de05ec1ddaad02ed8ba64af45f40a147dbfa97/psutil-7.2.2-cp313-cp313t-win_arm64.whl", hash = "sha256:ae0aefdd8796a7737eccea863f80f81e468a1e4cf14d926bd9b6f5f2d5f90ca9", size = 135589, upload-time = "2026-01-28T18:15:08.03Z" }, + { url = "https://files.pythonhosted.org/packages/81/69/ef179ab5ca24f32acc1dac0c247fd6a13b501fd5534dbae0e05a1c48b66d/psutil-7.2.2-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:eed63d3b4d62449571547b60578c5b2c4bcccc5387148db46e0c2313dad0ee00", size = 130664, upload-time = "2026-01-28T18:15:09.469Z" }, + { url = "https://files.pythonhosted.org/packages/7b/64/665248b557a236d3fa9efc378d60d95ef56dd0a490c2cd37dafc7660d4a9/psutil-7.2.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:7b6d09433a10592ce39b13d7be5a54fbac1d1228ed29abc880fb23df7cb694c9", size = 131087, upload-time = "2026-01-28T18:15:11.724Z" }, + { url = "https://files.pythonhosted.org/packages/d5/2e/e6782744700d6759ebce3043dcfa661fb61e2fb752b91cdeae9af12c2178/psutil-7.2.2-cp314-cp314t-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1fa4ecf83bcdf6e6c8f4449aff98eefb5d0604bf88cb883d7da3d8d2d909546a", size = 182383, upload-time = "2026-01-28T18:15:13.445Z" }, + { url = "https://files.pythonhosted.org/packages/57/49/0a41cefd10cb7505cdc04dab3eacf24c0c2cb158a998b8c7b1d27ee2c1f5/psutil-7.2.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e452c464a02e7dc7822a05d25db4cde564444a67e58539a00f929c51eddda0cf", size = 185210, upload-time = "2026-01-28T18:15:16.002Z" }, + { url = "https://files.pythonhosted.org/packages/dd/2c/ff9bfb544f283ba5f83ba725a3c5fec6d6b10b8f27ac1dc641c473dc390d/psutil-7.2.2-cp314-cp314t-win_amd64.whl", hash = "sha256:c7663d4e37f13e884d13994247449e9f8f574bc4655d509c3b95e9ec9e2b9dc1", size = 141228, upload-time = "2026-01-28T18:15:18.385Z" }, + { url = "https://files.pythonhosted.org/packages/f2/fc/f8d9c31db14fcec13748d373e668bc3bed94d9077dbc17fb0eebc073233c/psutil-7.2.2-cp314-cp314t-win_arm64.whl", hash = "sha256:11fe5a4f613759764e79c65cf11ebdf26e33d6dd34336f8a337aa2996d71c841", size = 136284, upload-time = "2026-01-28T18:15:19.912Z" }, + { url = "https://files.pythonhosted.org/packages/e7/36/5ee6e05c9bd427237b11b3937ad82bb8ad2752d72c6969314590dd0c2f6e/psutil-7.2.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:ed0cace939114f62738d808fdcecd4c869222507e266e574799e9c0faa17d486", size = 129090, upload-time = "2026-01-28T18:15:22.168Z" }, + { url = "https://files.pythonhosted.org/packages/80/c4/f5af4c1ca8c1eeb2e92ccca14ce8effdeec651d5ab6053c589b074eda6e1/psutil-7.2.2-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:1a7b04c10f32cc88ab39cbf606e117fd74721c831c98a27dc04578deb0c16979", size = 129859, upload-time = "2026-01-28T18:15:23.795Z" }, + { url = "https://files.pythonhosted.org/packages/b5/70/5d8df3b09e25bce090399cf48e452d25c935ab72dad19406c77f4e828045/psutil-7.2.2-cp36-abi3-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:076a2d2f923fd4821644f5ba89f059523da90dc9014e85f8e45a5774ca5bc6f9", size = 155560, upload-time = "2026-01-28T18:15:25.976Z" }, + { url = "https://files.pythonhosted.org/packages/63/65/37648c0c158dc222aba51c089eb3bdfa238e621674dc42d48706e639204f/psutil-7.2.2-cp36-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b0726cecd84f9474419d67252add4ac0cd9811b04d61123054b9fb6f57df6e9e", size = 156997, upload-time = "2026-01-28T18:15:27.794Z" }, + { url = "https://files.pythonhosted.org/packages/8e/13/125093eadae863ce03c6ffdbae9929430d116a246ef69866dad94da3bfbc/psutil-7.2.2-cp36-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:fd04ef36b4a6d599bbdb225dd1d3f51e00105f6d48a28f006da7f9822f2606d8", size = 148972, upload-time = "2026-01-28T18:15:29.342Z" }, + { url = "https://files.pythonhosted.org/packages/04/78/0acd37ca84ce3ddffaa92ef0f571e073faa6d8ff1f0559ab1272188ea2be/psutil-7.2.2-cp36-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:b58fabe35e80b264a4e3bb23e6b96f9e45a3df7fb7eed419ac0e5947c61e47cc", size = 148266, upload-time = "2026-01-28T18:15:31.597Z" }, + { url = "https://files.pythonhosted.org/packages/b4/90/e2159492b5426be0c1fef7acba807a03511f97c5f86b3caeda6ad92351a7/psutil-7.2.2-cp37-abi3-win_amd64.whl", hash = "sha256:eb7e81434c8d223ec4a219b5fc1c47d0417b12be7ea866e24fb5ad6e84b3d988", size = 137737, upload-time = "2026-01-28T18:15:33.849Z" }, + { url = "https://files.pythonhosted.org/packages/8c/c7/7bb2e321574b10df20cbde462a94e2b71d05f9bbda251ef27d104668306a/psutil-7.2.2-cp37-abi3-win_arm64.whl", hash = "sha256:8c233660f575a5a89e6d4cb65d9f938126312bca76d8fe087b947b3a1aaac9ee", size = 134617, upload-time = "2026-01-28T18:15:36.514Z" }, +] + +[[package]] +name = "ptyprocess" +version = "0.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/20/e5/16ff212c1e452235a90aeb09066144d0c5a6a8c0834397e03f5224495c4e/ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220", size = 70762, upload-time = "2020-12-28T15:15:30.155Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35", size = 13993, upload-time = "2020-12-28T15:15:28.35Z" }, +] + +[[package]] +name = "pure-eval" +version = "0.2.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/cd/05/0a34433a064256a578f1783a10da6df098ceaa4a57bbeaa96a6c0352786b/pure_eval-0.2.3.tar.gz", hash = "sha256:5f4e983f40564c576c7c8635ae88db5956bb2229d7e9237d03b3c0b0190eaf42", size = 19752, upload-time = "2024-07-21T12:58:21.801Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8e/37/efad0257dc6e593a18957422533ff0f87ede7c9c6ea010a2177d738fb82f/pure_eval-0.2.3-py3-none-any.whl", hash = "sha256:1db8e35b67b3d218d818ae653e27f06c3aa420901fa7b081ca98cbedc874e0d0", size = 11842, upload-time = "2024-07-21T12:58:20.04Z" }, +] + +[[package]] +name = "pycparser" +version = "3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/1b/7d/92392ff7815c21062bea51aa7b87d45576f649f16458d78b7cf94b9ab2e6/pycparser-3.0.tar.gz", hash = "sha256:600f49d217304a5902ac3c37e1281c9fe94e4d0489de643a9504c5cdfdfc6b29", size = 103492, upload-time = "2026-01-21T14:26:51.89Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0c/c3/44f3fbbfa403ea2a7c779186dc20772604442dde72947e7d01069cbe98e3/pycparser-3.0-py3-none-any.whl", hash = "sha256:b727414169a36b7d524c1c3e31839a521725078d7b2ff038656844266160a992", size = 48172, upload-time = "2026-01-21T14:26:50.693Z" }, +] + +[[package]] +name = "pydantic" +version = "2.10.6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "annotated-types" }, + { name = "pydantic-core" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b7/ae/d5220c5c52b158b1de7ca89fc5edb72f304a70a4c540c84c8844bf4008de/pydantic-2.10.6.tar.gz", hash = "sha256:ca5daa827cce33de7a42be142548b0096bf05a7e7b365aebfa5f8eeec7128236", size = 761681, upload-time = "2025-01-24T01:42:12.693Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f4/3c/8cc1cc84deffa6e25d2d0c688ebb80635dfdbf1dbea3e30c541c8cf4d860/pydantic-2.10.6-py3-none-any.whl", hash = "sha256:427d664bf0b8a2b34ff5dd0f5a18df00591adcee7198fbd71981054cef37b584", size = 431696, upload-time = "2025-01-24T01:42:10.371Z" }, +] + +[[package]] +name = "pydantic-core" +version = "2.27.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/fc/01/f3e5ac5e7c25833db5eb555f7b7ab24cd6f8c322d3a3ad2d67a952dc0abc/pydantic_core-2.27.2.tar.gz", hash = "sha256:eb026e5a4c1fee05726072337ff51d1efb6f59090b7da90d30ea58625b1ffb39", size = 413443, upload-time = "2024-12-18T11:31:54.917Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/41/b1/9bc383f48f8002f99104e3acff6cba1231b29ef76cfa45d1506a5cad1f84/pydantic_core-2.27.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:7d14bd329640e63852364c306f4d23eb744e0f8193148d4044dd3dacdaacbd8b", size = 1892709, upload-time = "2024-12-18T11:29:03.193Z" }, + { url = "https://files.pythonhosted.org/packages/10/6c/e62b8657b834f3eb2961b49ec8e301eb99946245e70bf42c8817350cbefc/pydantic_core-2.27.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:82f91663004eb8ed30ff478d77c4d1179b3563df6cdb15c0817cd1cdaf34d154", size = 1811273, upload-time = "2024-12-18T11:29:05.306Z" }, + { url = "https://files.pythonhosted.org/packages/ba/15/52cfe49c8c986e081b863b102d6b859d9defc63446b642ccbbb3742bf371/pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:71b24c7d61131bb83df10cc7e687433609963a944ccf45190cfc21e0887b08c9", size = 1823027, upload-time = "2024-12-18T11:29:07.294Z" }, + { url = "https://files.pythonhosted.org/packages/b1/1c/b6f402cfc18ec0024120602bdbcebc7bdd5b856528c013bd4d13865ca473/pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fa8e459d4954f608fa26116118bb67f56b93b209c39b008277ace29937453dc9", size = 1868888, upload-time = "2024-12-18T11:29:09.249Z" }, + { url = "https://files.pythonhosted.org/packages/bd/7b/8cb75b66ac37bc2975a3b7de99f3c6f355fcc4d89820b61dffa8f1e81677/pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ce8918cbebc8da707ba805b7fd0b382816858728ae7fe19a942080c24e5b7cd1", size = 2037738, upload-time = "2024-12-18T11:29:11.23Z" }, + { url = "https://files.pythonhosted.org/packages/c8/f1/786d8fe78970a06f61df22cba58e365ce304bf9b9f46cc71c8c424e0c334/pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:eda3f5c2a021bbc5d976107bb302e0131351c2ba54343f8a496dc8783d3d3a6a", size = 2685138, upload-time = "2024-12-18T11:29:16.396Z" }, + { url = "https://files.pythonhosted.org/packages/a6/74/d12b2cd841d8724dc8ffb13fc5cef86566a53ed358103150209ecd5d1999/pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bd8086fa684c4775c27f03f062cbb9eaa6e17f064307e86b21b9e0abc9c0f02e", size = 1997025, upload-time = "2024-12-18T11:29:20.25Z" }, + { url = "https://files.pythonhosted.org/packages/a0/6e/940bcd631bc4d9a06c9539b51f070b66e8f370ed0933f392db6ff350d873/pydantic_core-2.27.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8d9b3388db186ba0c099a6d20f0604a44eabdeef1777ddd94786cdae158729e4", size = 2004633, upload-time = "2024-12-18T11:29:23.877Z" }, + { url = "https://files.pythonhosted.org/packages/50/cc/a46b34f1708d82498c227d5d80ce615b2dd502ddcfd8376fc14a36655af1/pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:7a66efda2387de898c8f38c0cf7f14fca0b51a8ef0b24bfea5849f1b3c95af27", size = 1999404, upload-time = "2024-12-18T11:29:25.872Z" }, + { url = "https://files.pythonhosted.org/packages/ca/2d/c365cfa930ed23bc58c41463bae347d1005537dc8db79e998af8ba28d35e/pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:18a101c168e4e092ab40dbc2503bdc0f62010e95d292b27827871dc85450d7ee", size = 2130130, upload-time = "2024-12-18T11:29:29.252Z" }, + { url = "https://files.pythonhosted.org/packages/f4/d7/eb64d015c350b7cdb371145b54d96c919d4db516817f31cd1c650cae3b21/pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ba5dd002f88b78a4215ed2f8ddbdf85e8513382820ba15ad5ad8955ce0ca19a1", size = 2157946, upload-time = "2024-12-18T11:29:31.338Z" }, + { url = "https://files.pythonhosted.org/packages/a4/99/bddde3ddde76c03b65dfd5a66ab436c4e58ffc42927d4ff1198ffbf96f5f/pydantic_core-2.27.2-cp313-cp313-win32.whl", hash = "sha256:1ebaf1d0481914d004a573394f4be3a7616334be70261007e47c2a6fe7e50130", size = 1834387, upload-time = "2024-12-18T11:29:33.481Z" }, + { url = "https://files.pythonhosted.org/packages/71/47/82b5e846e01b26ac6f1893d3c5f9f3a2eb6ba79be26eef0b759b4fe72946/pydantic_core-2.27.2-cp313-cp313-win_amd64.whl", hash = "sha256:953101387ecf2f5652883208769a79e48db18c6df442568a0b5ccd8c2723abee", size = 1990453, upload-time = "2024-12-18T11:29:35.533Z" }, + { url = "https://files.pythonhosted.org/packages/51/b2/b2b50d5ecf21acf870190ae5d093602d95f66c9c31f9d5de6062eb329ad1/pydantic_core-2.27.2-cp313-cp313-win_arm64.whl", hash = "sha256:ac4dbfd1691affb8f48c2c13241a2e3b60ff23247cbcf981759c768b6633cf8b", size = 1885186, upload-time = "2024-12-18T11:29:37.649Z" }, +] + +[[package]] +name = "pydub" +version = "0.25.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/fe/9a/e6bca0eed82db26562c73b5076539a4a08d3cffd19c3cc5913a3e61145fd/pydub-0.25.1.tar.gz", hash = "sha256:980a33ce9949cab2a569606b65674d748ecbca4f0796887fd6f46173a7b0d30f", size = 38326, upload-time = "2021-03-10T02:09:54.659Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a6/53/d78dc063216e62fc55f6b2eebb447f6a4b0a59f55c8406376f76bf959b08/pydub-0.25.1-py2.py3-none-any.whl", hash = "sha256:65617e33033874b59d87db603aa1ed450633288aefead953b30bded59cb599a6", size = 32327, upload-time = "2021-03-10T02:09:53.503Z" }, +] + +[[package]] +name = "pygments" +version = "2.19.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b0/77/a5b8c569bf593b0140bde72ea885a803b82086995367bf2037de0159d924/pygments-2.19.2.tar.gz", hash = "sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887", size = 4968631, upload-time = "2025-06-21T13:39:12.283Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c7/21/705964c7812476f378728bdf590ca4b771ec72385c533964653c68e86bdc/pygments-2.19.2-py3-none-any.whl", hash = "sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b", size = 1225217, upload-time = "2025-06-21T13:39:07.939Z" }, +] + +[[package]] +name = "pyparsing" +version = "3.3.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f3/91/9c6ee907786a473bf81c5f53cf703ba0957b23ab84c264080fb5a450416f/pyparsing-3.3.2.tar.gz", hash = "sha256:c777f4d763f140633dcb6d8a3eda953bf7a214dc4eff598413c070bcdc117cbc", size = 6851574, upload-time = "2026-01-21T03:57:59.36Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/10/bd/c038d7cc38edc1aa5bf91ab8068b63d4308c66c4c8bb3cbba7dfbc049f9c/pyparsing-3.3.2-py3-none-any.whl", hash = "sha256:850ba148bd908d7e2411587e247a1e4f0327839c40e2e5e6d05a007ecc69911d", size = 122781, upload-time = "2026-01-21T03:57:55.912Z" }, +] + +[[package]] +name = "python-dateutil" +version = "2.9.0.post0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "six" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/66/c0/0c8b6ad9f17a802ee498c46e004a0eb49bc148f2fd230864601a86dcf6db/python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 342432, upload-time = "2024-03-01T18:36:20.211Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", size = 229892, upload-time = "2024-03-01T18:36:18.57Z" }, +] + +[[package]] +name = "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, upload-time = "2026-03-01T16:00:26.196Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0b/d7/1959b9648791274998a9c3526f6d0ec8fd2233e4d4acce81bbae76b44b2a/python_dotenv-1.2.2-py3-none-any.whl", hash = "sha256:1d8214789a24de455a8b8bd8ae6fe3c6b69a5e3d64aa8a8e5d68e694bbcb285a", size = 22101, upload-time = "2026-03-01T16:00:25.09Z" }, +] + +[[package]] +name = "python-json-logger" +version = "4.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/29/bf/eca6a3d43db1dae7070f70e160ab20b807627ba953663ba07928cdd3dc58/python_json_logger-4.0.0.tar.gz", hash = "sha256:f58e68eb46e1faed27e0f574a55a0455eecd7b8a5b88b85a784519ba3cff047f", size = 17683, upload-time = "2025-10-06T04:15:18.984Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/51/e5/fecf13f06e5e5f67e8837d777d1bc43fac0ed2b77a676804df5c34744727/python_json_logger-4.0.0-py3-none-any.whl", hash = "sha256:af09c9daf6a813aa4cc7180395f50f2a9e5fa056034c9953aec92e381c5ba1e2", size = 15548, upload-time = "2025-10-06T04:15:17.553Z" }, +] + +[[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, upload-time = "2026-01-25T10:15:56.219Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1b/d0/397f9626e711ff749a95d96b7af99b9c566a9bb5129b8e4c10fc4d100304/python_multipart-0.0.22-py3-none-any.whl", hash = "sha256:2b2cd894c83d21bf49d702499531c7bafd057d730c201782048f7945d82de155", size = 24579, upload-time = "2026-01-25T10:15:54.811Z" }, +] + +[[package]] +name = "pytz" +version = "2026.1.post1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/56/db/b8721d71d945e6a8ac63c0fc900b2067181dbb50805958d4d4661cf7d277/pytz-2026.1.post1.tar.gz", hash = "sha256:3378dde6a0c3d26719182142c56e60c7f9af7e968076f31aae569d72a0358ee1", size = 321088, upload-time = "2026-03-03T07:47:50.683Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/10/99/781fe0c827be2742bcc775efefccb3b048a3a9c6ce9aec0cbf4a101677e5/pytz-2026.1.post1-py2.py3-none-any.whl", hash = "sha256:f2fd16142fda348286a75e1a524be810bb05d444e5a081f37f7affc635035f7a", size = 510489, upload-time = "2026-03-03T07:47:49.167Z" }, +] + +[[package]] +name = "pywinpty" +version = "3.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f7/54/37c7370ba91f579235049dc26cd2c5e657d2a943e01820844ffc81f32176/pywinpty-3.0.3.tar.gz", hash = "sha256:523441dc34d231fb361b4b00f8c99d3f16de02f5005fd544a0183112bcc22412", size = 31309, upload-time = "2026-02-04T21:51:09.524Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e5/cb/58d6ed3fd429c96a90ef01ac9a617af10a6d41469219c25e7dc162abbb71/pywinpty-3.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:9c91dbb026050c77bdcef964e63a4f10f01a639113c4d3658332614544c467ab", size = 2112686, upload-time = "2026-02-04T21:52:03.035Z" }, + { url = "https://files.pythonhosted.org/packages/fd/50/724ed5c38c504d4e58a88a072776a1e880d970789deaeb2b9f7bd9a5141a/pywinpty-3.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:fe1f7911805127c94cf51f89ab14096c6f91ffdcacf993d2da6082b2142a2523", size = 234591, upload-time = "2026-02-04T21:52:29.821Z" }, + { url = "https://files.pythonhosted.org/packages/f7/ad/90a110538696b12b39fd8758a06d70ded899308198ad2305ac68e361126e/pywinpty-3.0.3-cp313-cp313t-win_amd64.whl", hash = "sha256:3f07a6cf1c1d470d284e614733c3d0f726d2c85e78508ea10a403140c3c0c18a", size = 2112360, upload-time = "2026-02-04T21:55:33.397Z" }, + { url = "https://files.pythonhosted.org/packages/44/0f/7ffa221757a220402bc79fda44044c3f2cc57338d878ab7d622add6f4581/pywinpty-3.0.3-cp313-cp313t-win_arm64.whl", hash = "sha256:15c7c0b6f8e9d87aabbaff76468dabf6e6121332c40fc1d83548d02a9d6a3759", size = 233107, upload-time = "2026-02-04T21:51:45.455Z" }, + { url = "https://files.pythonhosted.org/packages/28/88/2ff917caff61e55f38bcdb27de06ee30597881b2cae44fbba7627be015c4/pywinpty-3.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:d4b6b7b0fe0cdcd02e956bd57cfe9f4e5a06514eecf3b5ae174da4f951b58be9", size = 2113282, upload-time = "2026-02-04T21:52:08.188Z" }, + { url = "https://files.pythonhosted.org/packages/63/32/40a775343ace542cc43ece3f1d1fce454021521ecac41c4c4573081c2336/pywinpty-3.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:34789d685fc0d547ce0c8a65e5a70e56f77d732fa6e03c8f74fefb8cbb252019", size = 234207, upload-time = "2026-02-04T21:51:58.687Z" }, + { url = "https://files.pythonhosted.org/packages/8d/54/5d5e52f4cb75028104ca6faf36c10f9692389b1986d34471663b4ebebd6d/pywinpty-3.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:0c37e224a47a971d1a6e08649a1714dac4f63c11920780977829ed5c8cadead1", size = 2112910, upload-time = "2026-02-04T21:52:30.976Z" }, + { url = "https://files.pythonhosted.org/packages/0a/44/dcd184824e21d4620b06c7db9fbb15c3ad0a0f1fa2e6de79969fb82647ec/pywinpty-3.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:c4e9c3dff7d86ba81937438d5819f19f385a39d8f592d4e8af67148ceb4f6ab5", size = 233425, upload-time = "2026-02-04T21:51:56.754Z" }, +] + +[[package]] +name = "pyyaml" +version = "6.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/05/8e/961c0007c59b8dd7729d542c61a4d537767a59645b82a0b521206e1e25c2/pyyaml-6.0.3.tar.gz", hash = "sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f", size = 130960, upload-time = "2025-09-25T21:33:16.546Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/11/0fd08f8192109f7169db964b5707a2f1e8b745d4e239b784a5a1dd80d1db/pyyaml-6.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8da9669d359f02c0b91ccc01cac4a67f16afec0dac22c2ad09f46bee0697eba8", size = 181669, upload-time = "2025-09-25T21:32:23.673Z" }, + { 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, upload-time = "2025-09-25T21:32:25.149Z" }, + { 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, upload-time = "2025-09-25T21:32:26.575Z" }, + { 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, upload-time = "2025-09-25T21:32:27.727Z" }, + { 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, upload-time = "2025-09-25T21:32:28.878Z" }, + { 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, upload-time = "2025-09-25T21:32:30.178Z" }, + { 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, upload-time = "2025-09-25T21:32:31.353Z" }, + { url = "https://files.pythonhosted.org/packages/de/94/980b50a6531b3019e45ddeada0626d45fa85cbe22300844a7983285bed3b/pyyaml-6.0.3-cp313-cp313-win32.whl", hash = "sha256:d0eae10f8159e8fdad514efdc92d74fd8d682c933a6dd088030f3834bc8e6b26", size = 137427, upload-time = "2025-09-25T21:32:32.58Z" }, + { url = "https://files.pythonhosted.org/packages/97/c9/39d5b874e8b28845e4ec2202b5da735d0199dbe5b8fb85f91398814a9a46/pyyaml-6.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:79005a0d97d5ddabfeeea4cf676af11e647e41d81c9a7722a193022accdb6b7c", size = 154090, upload-time = "2025-09-25T21:32:33.659Z" }, + { url = "https://files.pythonhosted.org/packages/73/e8/2bdf3ca2090f68bb3d75b44da7bbc71843b19c9f2b9cb9b0f4ab7a5a4329/pyyaml-6.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:5498cd1645aa724a7c71c8f378eb29ebe23da2fc0d7a08071d89469bf1d2defb", size = 140246, upload-time = "2025-09-25T21:32:34.663Z" }, + { 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, upload-time = "2025-09-25T21:32:35.712Z" }, + { 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, upload-time = "2025-09-25T21:32:36.789Z" }, + { 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, upload-time = "2025-09-25T21:32:37.966Z" }, + { 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, upload-time = "2025-09-25T21:32:39.178Z" }, + { 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, upload-time = "2025-09-25T21:32:40.865Z" }, + { 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, upload-time = "2025-09-25T21:32:42.084Z" }, + { 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, upload-time = "2025-09-25T21:32:43.362Z" }, + { url = "https://files.pythonhosted.org/packages/23/20/bb6982b26a40bb43951265ba29d4c246ef0ff59c9fdcdf0ed04e0687de4d/pyyaml-6.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:4a2e8cebe2ff6ab7d1050ecd59c25d4c8bd7e6f400f5f82b96557ac0abafd0ac", size = 156429, upload-time = "2025-09-25T21:32:57.844Z" }, + { url = "https://files.pythonhosted.org/packages/f4/f4/a4541072bb9422c8a883ab55255f918fa378ecf083f5b85e87fc2b4eda1b/pyyaml-6.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:93dda82c9c22deb0a405ea4dc5f2d0cda384168e466364dec6255b293923b2f3", size = 143912, upload-time = "2025-09-25T21:32:59.247Z" }, + { 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, upload-time = "2025-09-25T21:32:44.377Z" }, + { 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, upload-time = "2025-09-25T21:32:45.407Z" }, + { 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, upload-time = "2025-09-25T21:32:48.83Z" }, + { 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, upload-time = "2025-09-25T21:32:50.149Z" }, + { 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, upload-time = "2025-09-25T21:32:51.808Z" }, + { 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, upload-time = "2025-09-25T21:32:52.941Z" }, + { 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, upload-time = "2025-09-25T21:32:54.537Z" }, + { url = "https://files.pythonhosted.org/packages/f0/7a/1c7270340330e575b92f397352af856a8c06f230aa3e76f86b39d01b416a/pyyaml-6.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4ad1906908f2f5ae4e5a8ddfce73c320c2a1429ec52eafd27138b7f1cbe341c9", size = 174062, upload-time = "2025-09-25T21:32:55.767Z" }, + { url = "https://files.pythonhosted.org/packages/f1/12/de94a39c2ef588c7e6455cfbe7343d3b2dc9d6b6b2f40c4c6565744c873d/pyyaml-6.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:ebc55a14a21cb14062aa4162f906cd962b28e2e9ea38f9b4391244cd8de4ae0b", size = 149341, upload-time = "2025-09-25T21:32:56.828Z" }, +] + +[[package]] +name = "pyzmq" +version = "27.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cffi", marker = "implementation_name == 'pypy'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/04/0b/3c9baedbdf613ecaa7aa07027780b8867f57b6293b6ee50de316c9f3222b/pyzmq-27.1.0.tar.gz", hash = "sha256:ac0765e3d44455adb6ddbf4417dcce460fc40a05978c08efdf2948072f6db540", size = 281750, upload-time = "2025-09-08T23:10:18.157Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/92/e7/038aab64a946d535901103da16b953c8c9cc9c961dadcbf3609ed6428d23/pyzmq-27.1.0-cp312-abi3-macosx_10_15_universal2.whl", hash = "sha256:452631b640340c928fa343801b0d07eb0c3789a5ffa843f6e1a9cee0ba4eb4fc", size = 1306279, upload-time = "2025-09-08T23:08:03.807Z" }, + { url = "https://files.pythonhosted.org/packages/e8/5e/c3c49fdd0f535ef45eefcc16934648e9e59dace4a37ee88fc53f6cd8e641/pyzmq-27.1.0-cp312-abi3-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:1c179799b118e554b66da67d88ed66cd37a169f1f23b5d9f0a231b4e8d44a113", size = 895645, upload-time = "2025-09-08T23:08:05.301Z" }, + { url = "https://files.pythonhosted.org/packages/f8/e5/b0b2504cb4e903a74dcf1ebae157f9e20ebb6ea76095f6cfffea28c42ecd/pyzmq-27.1.0-cp312-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3837439b7f99e60312f0c926a6ad437b067356dc2bc2ec96eb395fd0fe804233", size = 652574, upload-time = "2025-09-08T23:08:06.828Z" }, + { url = "https://files.pythonhosted.org/packages/f8/9b/c108cdb55560eaf253f0cbdb61b29971e9fb34d9c3499b0e96e4e60ed8a5/pyzmq-27.1.0-cp312-abi3-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:43ad9a73e3da1fab5b0e7e13402f0b2fb934ae1c876c51d0afff0e7c052eca31", size = 840995, upload-time = "2025-09-08T23:08:08.396Z" }, + { url = "https://files.pythonhosted.org/packages/c2/bb/b79798ca177b9eb0825b4c9998c6af8cd2a7f15a6a1a4272c1d1a21d382f/pyzmq-27.1.0-cp312-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:0de3028d69d4cdc475bfe47a6128eb38d8bc0e8f4d69646adfbcd840facbac28", size = 1642070, upload-time = "2025-09-08T23:08:09.989Z" }, + { url = "https://files.pythonhosted.org/packages/9c/80/2df2e7977c4ede24c79ae39dcef3899bfc5f34d1ca7a5b24f182c9b7a9ca/pyzmq-27.1.0-cp312-abi3-musllinux_1_2_i686.whl", hash = "sha256:cf44a7763aea9298c0aa7dbf859f87ed7012de8bda0f3977b6fb1d96745df856", size = 2021121, upload-time = "2025-09-08T23:08:11.907Z" }, + { url = "https://files.pythonhosted.org/packages/46/bd/2d45ad24f5f5ae7e8d01525eb76786fa7557136555cac7d929880519e33a/pyzmq-27.1.0-cp312-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:f30f395a9e6fbca195400ce833c731e7b64c3919aa481af4d88c3759e0cb7496", size = 1878550, upload-time = "2025-09-08T23:08:13.513Z" }, + { url = "https://files.pythonhosted.org/packages/e6/2f/104c0a3c778d7c2ab8190e9db4f62f0b6957b53c9d87db77c284b69f33ea/pyzmq-27.1.0-cp312-abi3-win32.whl", hash = "sha256:250e5436a4ba13885494412b3da5d518cd0d3a278a1ae640e113c073a5f88edd", size = 559184, upload-time = "2025-09-08T23:08:15.163Z" }, + { url = "https://files.pythonhosted.org/packages/fc/7f/a21b20d577e4100c6a41795842028235998a643b1ad406a6d4163ea8f53e/pyzmq-27.1.0-cp312-abi3-win_amd64.whl", hash = "sha256:9ce490cf1d2ca2ad84733aa1d69ce6855372cb5ce9223802450c9b2a7cba0ccf", size = 619480, upload-time = "2025-09-08T23:08:17.192Z" }, + { url = "https://files.pythonhosted.org/packages/78/c2/c012beae5f76b72f007a9e91ee9401cb88c51d0f83c6257a03e785c81cc2/pyzmq-27.1.0-cp312-abi3-win_arm64.whl", hash = "sha256:75a2f36223f0d535a0c919e23615fc85a1e23b71f40c7eb43d7b1dedb4d8f15f", size = 552993, upload-time = "2025-09-08T23:08:18.926Z" }, + { url = "https://files.pythonhosted.org/packages/60/cb/84a13459c51da6cec1b7b1dc1a47e6db6da50b77ad7fd9c145842750a011/pyzmq-27.1.0-cp313-cp313-android_24_arm64_v8a.whl", hash = "sha256:93ad4b0855a664229559e45c8d23797ceac03183c7b6f5b4428152a6b06684a5", size = 1122436, upload-time = "2025-09-08T23:08:20.801Z" }, + { url = "https://files.pythonhosted.org/packages/dc/b6/94414759a69a26c3dd674570a81813c46a078767d931a6c70ad29fc585cb/pyzmq-27.1.0-cp313-cp313-android_24_x86_64.whl", hash = "sha256:fbb4f2400bfda24f12f009cba62ad5734148569ff4949b1b6ec3b519444342e6", size = 1156301, upload-time = "2025-09-08T23:08:22.47Z" }, + { url = "https://files.pythonhosted.org/packages/a5/ad/15906493fd40c316377fd8a8f6b1f93104f97a752667763c9b9c1b71d42d/pyzmq-27.1.0-cp313-cp313t-macosx_10_15_universal2.whl", hash = "sha256:e343d067f7b151cfe4eb3bb796a7752c9d369eed007b91231e817071d2c2fec7", size = 1341197, upload-time = "2025-09-08T23:08:24.286Z" }, + { url = "https://files.pythonhosted.org/packages/14/1d/d343f3ce13db53a54cb8946594e567410b2125394dafcc0268d8dda027e0/pyzmq-27.1.0-cp313-cp313t-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:08363b2011dec81c354d694bdecaef4770e0ae96b9afea70b3f47b973655cc05", size = 897275, upload-time = "2025-09-08T23:08:26.063Z" }, + { url = "https://files.pythonhosted.org/packages/69/2d/d83dd6d7ca929a2fc67d2c3005415cdf322af7751d773524809f9e585129/pyzmq-27.1.0-cp313-cp313t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d54530c8c8b5b8ddb3318f481297441af102517602b569146185fa10b63f4fa9", size = 660469, upload-time = "2025-09-08T23:08:27.623Z" }, + { url = "https://files.pythonhosted.org/packages/3e/cd/9822a7af117f4bc0f1952dbe9ef8358eb50a24928efd5edf54210b850259/pyzmq-27.1.0-cp313-cp313t-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6f3afa12c392f0a44a2414056d730eebc33ec0926aae92b5ad5cf26ebb6cc128", size = 847961, upload-time = "2025-09-08T23:08:29.672Z" }, + { url = "https://files.pythonhosted.org/packages/9a/12/f003e824a19ed73be15542f172fd0ec4ad0b60cf37436652c93b9df7c585/pyzmq-27.1.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:c65047adafe573ff023b3187bb93faa583151627bc9c51fc4fb2c561ed689d39", size = 1650282, upload-time = "2025-09-08T23:08:31.349Z" }, + { url = "https://files.pythonhosted.org/packages/d5/4a/e82d788ed58e9a23995cee70dbc20c9aded3d13a92d30d57ec2291f1e8a3/pyzmq-27.1.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:90e6e9441c946a8b0a667356f7078d96411391a3b8f80980315455574177ec97", size = 2024468, upload-time = "2025-09-08T23:08:33.543Z" }, + { url = "https://files.pythonhosted.org/packages/d9/94/2da0a60841f757481e402b34bf4c8bf57fa54a5466b965de791b1e6f747d/pyzmq-27.1.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:add071b2d25f84e8189aaf0882d39a285b42fa3853016ebab234a5e78c7a43db", size = 1885394, upload-time = "2025-09-08T23:08:35.51Z" }, + { url = "https://files.pythonhosted.org/packages/4f/6f/55c10e2e49ad52d080dc24e37adb215e5b0d64990b57598abc2e3f01725b/pyzmq-27.1.0-cp313-cp313t-win32.whl", hash = "sha256:7ccc0700cfdf7bd487bea8d850ec38f204478681ea02a582a8da8171b7f90a1c", size = 574964, upload-time = "2025-09-08T23:08:37.178Z" }, + { url = "https://files.pythonhosted.org/packages/87/4d/2534970ba63dd7c522d8ca80fb92777f362c0f321900667c615e2067cb29/pyzmq-27.1.0-cp313-cp313t-win_amd64.whl", hash = "sha256:8085a9fba668216b9b4323be338ee5437a235fe275b9d1610e422ccc279733e2", size = 641029, upload-time = "2025-09-08T23:08:40.595Z" }, + { url = "https://files.pythonhosted.org/packages/f6/fa/f8aea7a28b0641f31d40dea42d7ef003fded31e184ef47db696bc74cd610/pyzmq-27.1.0-cp313-cp313t-win_arm64.whl", hash = "sha256:6bb54ca21bcfe361e445256c15eedf083f153811c37be87e0514934d6913061e", size = 561541, upload-time = "2025-09-08T23:08:42.668Z" }, + { url = "https://files.pythonhosted.org/packages/87/45/19efbb3000956e82d0331bafca5d9ac19ea2857722fa2caacefb6042f39d/pyzmq-27.1.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:ce980af330231615756acd5154f29813d553ea555485ae712c491cd483df6b7a", size = 1341197, upload-time = "2025-09-08T23:08:44.973Z" }, + { url = "https://files.pythonhosted.org/packages/48/43/d72ccdbf0d73d1343936296665826350cb1e825f92f2db9db3e61c2162a2/pyzmq-27.1.0-cp314-cp314t-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:1779be8c549e54a1c38f805e56d2a2e5c009d26de10921d7d51cfd1c8d4632ea", size = 897175, upload-time = "2025-09-08T23:08:46.601Z" }, + { url = "https://files.pythonhosted.org/packages/2f/2e/a483f73a10b65a9ef0161e817321d39a770b2acf8bcf3004a28d90d14a94/pyzmq-27.1.0-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7200bb0f03345515df50d99d3db206a0a6bee1955fbb8c453c76f5bf0e08fb96", size = 660427, upload-time = "2025-09-08T23:08:48.187Z" }, + { url = "https://files.pythonhosted.org/packages/f5/d2/5f36552c2d3e5685abe60dfa56f91169f7a2d99bbaf67c5271022ab40863/pyzmq-27.1.0-cp314-cp314t-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:01c0e07d558b06a60773744ea6251f769cd79a41a97d11b8bf4ab8f034b0424d", size = 847929, upload-time = "2025-09-08T23:08:49.76Z" }, + { url = "https://files.pythonhosted.org/packages/c4/2a/404b331f2b7bf3198e9945f75c4c521f0c6a3a23b51f7a4a401b94a13833/pyzmq-27.1.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:80d834abee71f65253c91540445d37c4c561e293ba6e741b992f20a105d69146", size = 1650193, upload-time = "2025-09-08T23:08:51.7Z" }, + { url = "https://files.pythonhosted.org/packages/1c/0b/f4107e33f62a5acf60e3ded67ed33d79b4ce18de432625ce2fc5093d6388/pyzmq-27.1.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:544b4e3b7198dde4a62b8ff6685e9802a9a1ebf47e77478a5eb88eca2a82f2fd", size = 2024388, upload-time = "2025-09-08T23:08:53.393Z" }, + { url = "https://files.pythonhosted.org/packages/0d/01/add31fe76512642fd6e40e3a3bd21f4b47e242c8ba33efb6809e37076d9b/pyzmq-27.1.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:cedc4c68178e59a4046f97eca31b148ddcf51e88677de1ef4e78cf06c5376c9a", size = 1885316, upload-time = "2025-09-08T23:08:55.702Z" }, + { url = "https://files.pythonhosted.org/packages/c4/59/a5f38970f9bf07cee96128de79590bb354917914a9be11272cfc7ff26af0/pyzmq-27.1.0-cp314-cp314t-win32.whl", hash = "sha256:1f0b2a577fd770aa6f053211a55d1c47901f4d537389a034c690291485e5fe92", size = 587472, upload-time = "2025-09-08T23:08:58.18Z" }, + { url = "https://files.pythonhosted.org/packages/70/d8/78b1bad170f93fcf5e3536e70e8fadac55030002275c9a29e8f5719185de/pyzmq-27.1.0-cp314-cp314t-win_amd64.whl", hash = "sha256:19c9468ae0437f8074af379e986c5d3d7d7bfe033506af442e8c879732bedbe0", size = 661401, upload-time = "2025-09-08T23:08:59.802Z" }, + { url = "https://files.pythonhosted.org/packages/81/d6/4bfbb40c9a0b42fc53c7cf442f6385db70b40f74a783130c5d0a5aa62228/pyzmq-27.1.0-cp314-cp314t-win_arm64.whl", hash = "sha256:dc5dbf68a7857b59473f7df42650c621d7e8923fb03fa74a526890f4d33cc4d7", size = 575170, upload-time = "2025-09-08T23:09:01.418Z" }, +] + +[[package]] +name = "referencing" +version = "0.37.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "rpds-py" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/22/f5/df4e9027acead3ecc63e50fe1e36aca1523e1719559c499951bb4b53188f/referencing-0.37.0.tar.gz", hash = "sha256:44aefc3142c5b842538163acb373e24cce6632bd54bdb01b21ad5863489f50d8", size = 78036, upload-time = "2025-10-13T15:30:48.871Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2c/58/ca301544e1fa93ed4f80d724bf5b194f6e4b945841c5bfd555878eea9fcb/referencing-0.37.0-py3-none-any.whl", hash = "sha256:381329a9f99628c9069361716891d34ad94af76e461dcb0335825aecc7692231", size = 26766, upload-time = "2025-10-13T15:30:47.625Z" }, +] + +[[package]] +name = "requests" +version = "2.32.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "charset-normalizer" }, + { name = "idna" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c9/74/b3ff8e6c8446842c3f5c837e9c3dfcfe2018ea6ecef224c710c85ef728f4/requests-2.32.5.tar.gz", hash = "sha256:dbba0bac56e100853db0ea71b82b4dfd5fe2bf6d3754a8893c3af500cec7d7cf", size = 134517, upload-time = "2025-08-18T20:46:02.573Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1e/db/4254e3eabe8020b458f1a747140d32277ec7a271daf1d235b70dc0b4e6e3/requests-2.32.5-py3-none-any.whl", hash = "sha256:2462f94637a34fd532264295e186976db0f5d453d1cdd31473c85a6a161affb6", size = 64738, upload-time = "2025-08-18T20:46:00.542Z" }, +] + +[[package]] +name = "requests-toolbelt" +version = "1.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f3/61/d7545dafb7ac2230c70d38d31cbfe4cc64f7144dc41f6e4e4b78ecd9f5bb/requests-toolbelt-1.0.0.tar.gz", hash = "sha256:7681a0a3d047012b5bdc0ee37d7f8f07ebe76ab08caeccfc3921ce23c88d5bc6", size = 206888, upload-time = "2023-05-01T04:11:33.229Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3f/51/d4db610ef29373b879047326cbf6fa98b6c1969d6f6dc423279de2b1be2c/requests_toolbelt-1.0.0-py2.py3-none-any.whl", hash = "sha256:cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06", size = 54481, upload-time = "2023-05-01T04:11:28.427Z" }, +] + +[[package]] +name = "rfc3339-validator" +version = "0.1.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "six" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/28/ea/a9387748e2d111c3c2b275ba970b735e04e15cdb1eb30693b6b5708c4dbd/rfc3339_validator-0.1.4.tar.gz", hash = "sha256:138a2abdf93304ad60530167e51d2dfb9549521a836871b88d7f4695d0022f6b", size = 5513, upload-time = "2021-05-12T16:37:54.178Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7b/44/4e421b96b67b2daff264473f7465db72fbdf36a07e05494f50300cc7b0c6/rfc3339_validator-0.1.4-py2.py3-none-any.whl", hash = "sha256:24f6ec1eda14ef823da9e36ec7113124b39c04d50a4d3d3a3c2859577e7791fa", size = 3490, upload-time = "2021-05-12T16:37:52.536Z" }, +] + +[[package]] +name = "rfc3986-validator" +version = "0.1.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/da/88/f270de456dd7d11dcc808abfa291ecdd3f45ff44e3b549ffa01b126464d0/rfc3986_validator-0.1.1.tar.gz", hash = "sha256:3d44bde7921b3b9ec3ae4e3adca370438eccebc676456449b145d533b240d055", size = 6760, upload-time = "2019-10-28T16:00:19.144Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9e/51/17023c0f8f1869d8806b979a2bffa3f861f26a3f1a66b094288323fba52f/rfc3986_validator-0.1.1-py2.py3-none-any.whl", hash = "sha256:2f235c432ef459970b4306369336b9d5dbdda31b510ca1e327636e01f528bfa9", size = 4242, upload-time = "2019-10-28T16:00:13.976Z" }, +] + +[[package]] +name = "rfc3987-syntax" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "lark" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/2c/06/37c1a5557acf449e8e406a830a05bf885ac47d33270aec454ef78675008d/rfc3987_syntax-1.1.0.tar.gz", hash = "sha256:717a62cbf33cffdd16dfa3a497d81ce48a660ea691b1ddd7be710c22f00b4a0d", size = 14239, upload-time = "2025-07-18T01:05:05.015Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7e/71/44ce230e1b7fadd372515a97e32a83011f906ddded8d03e3c6aafbdedbb7/rfc3987_syntax-1.1.0-py3-none-any.whl", hash = "sha256:6c3d97604e4c5ce9f714898e05401a0445a641cfa276432b0a648c80856f6a3f", size = 8046, upload-time = "2025-07-18T01:05:03.843Z" }, +] + +[[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, upload-time = "2026-02-19T17:23:12.474Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/14/25/b208c5683343959b670dc001595f2f3737e051da617f66c31f7c4fa93abc/rich-14.3.3-py3-none-any.whl", hash = "sha256:793431c1f8619afa7d3b52b2cdec859562b950ea0d4b6b505397612db8d5362d", size = 310458, upload-time = "2026-02-19T17:23:13.732Z" }, +] + +[[package]] +name = "roboflow" +version = "1.2.16" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "cycler" }, + { name = "filetype" }, + { name = "idna" }, + { name = "kiwisolver" }, + { name = "matplotlib" }, + { name = "numpy" }, + { name = "opencv-python-headless" }, + { name = "pi-heif" }, + { name = "pillow" }, + { name = "pillow-avif-plugin" }, + { name = "python-dateutil" }, + { name = "python-dotenv" }, + { name = "pyyaml" }, + { name = "requests" }, + { name = "requests-toolbelt" }, + { name = "six" }, + { name = "tqdm" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/7f/58/a60f5664194c7d09c9afcd04f0ccb9ce4395914c9d3aec843523d25177be/roboflow-1.2.16.tar.gz", hash = "sha256:fa74caaf14ed7cb621f2abd5da2bf5745d819b6d19fbecf6464171563821027d", size = 90855, upload-time = "2026-03-03T11:34:04.053Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2b/76/1fd57c07bc7245c1608345d4cc82befdef3352cd1ad17026e02645c6eb2e/roboflow-1.2.16-py3-none-any.whl", hash = "sha256:bc367d9659897d20d67816c42e645ea0d58a6994aaa71cf9624c3999b52032ec", size = 95770, upload-time = "2026-03-03T11:34:02.647Z" }, +] + +[[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, upload-time = "2025-11-30T20:24:38.837Z" } +wheels = [ + { 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, upload-time = "2025-11-30T20:22:41.812Z" }, + { 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, upload-time = "2025-11-30T20:22:43.479Z" }, + { 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, upload-time = "2025-11-30T20:22:44.819Z" }, + { 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, upload-time = "2025-11-30T20:22:46.103Z" }, + { 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, upload-time = "2025-11-30T20:22:47.458Z" }, + { 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, upload-time = "2025-11-30T20:22:48.872Z" }, + { 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, upload-time = "2025-11-30T20:22:50.196Z" }, + { 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, upload-time = "2025-11-30T20:22:51.87Z" }, + { 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, upload-time = "2025-11-30T20:22:53.341Z" }, + { 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, upload-time = "2025-11-30T20:22:54.778Z" }, + { 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, upload-time = "2025-11-30T20:22:56.212Z" }, + { 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, upload-time = "2025-11-30T20:22:58.2Z" }, + { url = "https://files.pythonhosted.org/packages/0b/5d/47c4655e9bcd5ca907148535c10e7d489044243cc9941c16ed7cd53be91d/rpds_py-0.30.0-cp313-cp313-win32.whl", hash = "sha256:b40fb160a2db369a194cb27943582b38f79fc4887291417685f3ad693c5a1d5d", size = 223139, upload-time = "2025-11-30T20:23:00.209Z" }, + { url = "https://files.pythonhosted.org/packages/f2/e1/485132437d20aa4d3e1d8b3fb5a5e65aa8139f1e097080c2a8443201742c/rpds_py-0.30.0-cp313-cp313-win_amd64.whl", hash = "sha256:806f36b1b605e2d6a72716f321f20036b9489d29c51c91f4dd29a3e3afb73b15", size = 240224, upload-time = "2025-11-30T20:23:02.008Z" }, + { url = "https://files.pythonhosted.org/packages/24/95/ffd128ed1146a153d928617b0ef673960130be0009c77d8fbf0abe306713/rpds_py-0.30.0-cp313-cp313-win_arm64.whl", hash = "sha256:d96c2086587c7c30d44f31f42eae4eac89b60dabbac18c7669be3700f13c3ce1", size = 230645, upload-time = "2025-11-30T20:23:03.43Z" }, + { 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, upload-time = "2025-11-30T20:23:04.878Z" }, + { 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, upload-time = "2025-11-30T20:23:06.342Z" }, + { 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, upload-time = "2025-11-30T20:23:07.825Z" }, + { 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, upload-time = "2025-11-30T20:23:09.228Z" }, + { 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, upload-time = "2025-11-30T20:23:11.186Z" }, + { 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, upload-time = "2025-11-30T20:23:12.864Z" }, + { 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, upload-time = "2025-11-30T20:23:14.638Z" }, + { 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, upload-time = "2025-11-30T20:23:16.105Z" }, + { 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, upload-time = "2025-11-30T20:23:17.539Z" }, + { 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, upload-time = "2025-11-30T20:23:19.029Z" }, + { 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, upload-time = "2025-11-30T20:23:20.885Z" }, + { 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, upload-time = "2025-11-30T20:23:22.488Z" }, + { url = "https://files.pythonhosted.org/packages/f9/39/7e067bb06c31de48de3eb200f9fc7c58982a4d3db44b07e73963e10d3be9/rpds_py-0.30.0-cp313-cp313t-win32.whl", hash = "sha256:3d4a69de7a3e50ffc214ae16d79d8fbb0922972da0356dcf4d0fdca2878559c6", size = 211341, upload-time = "2025-11-30T20:23:24.449Z" }, + { url = "https://files.pythonhosted.org/packages/0a/4d/222ef0b46443cf4cf46764d9c630f3fe4abaa7245be9417e56e9f52b8f65/rpds_py-0.30.0-cp313-cp313t-win_amd64.whl", hash = "sha256:f14fc5df50a716f7ece6a80b6c78bb35ea2ca47c499e422aa4463455dd96d56d", size = 225768, upload-time = "2025-11-30T20:23:25.908Z" }, + { 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, upload-time = "2025-11-30T20:23:27.316Z" }, + { 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, upload-time = "2025-11-30T20:23:29.151Z" }, + { 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, upload-time = "2025-11-30T20:23:30.785Z" }, + { 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, upload-time = "2025-11-30T20:23:32.209Z" }, + { 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, upload-time = "2025-11-30T20:23:33.742Z" }, + { 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, upload-time = "2025-11-30T20:23:35.253Z" }, + { 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, upload-time = "2025-11-30T20:23:36.842Z" }, + { 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, upload-time = "2025-11-30T20:23:38.343Z" }, + { 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, upload-time = "2025-11-30T20:23:40.263Z" }, + { 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, upload-time = "2025-11-30T20:23:42.186Z" }, + { 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, upload-time = "2025-11-30T20:23:44.086Z" }, + { 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, upload-time = "2025-11-30T20:23:46.004Z" }, + { url = "https://files.pythonhosted.org/packages/72/c7/81dadd7b27c8ee391c132a6b192111ca58d866577ce2d9b0ca157552cce0/rpds_py-0.30.0-cp314-cp314-win32.whl", hash = "sha256:ee454b2a007d57363c2dfd5b6ca4a5d7e2c518938f8ed3b706e37e5d470801ed", size = 215298, upload-time = "2025-11-30T20:23:47.696Z" }, + { url = "https://files.pythonhosted.org/packages/3e/d2/1aaac33287e8cfb07aab2e6b8ac1deca62f6f65411344f1433c55e6f3eb8/rpds_py-0.30.0-cp314-cp314-win_amd64.whl", hash = "sha256:95f0802447ac2d10bcc69f6dc28fe95fdf17940367b21d34e34c737870758950", size = 228604, upload-time = "2025-11-30T20:23:49.501Z" }, + { url = "https://files.pythonhosted.org/packages/e8/95/ab005315818cc519ad074cb7784dae60d939163108bd2b394e60dc7b5461/rpds_py-0.30.0-cp314-cp314-win_arm64.whl", hash = "sha256:613aa4771c99f03346e54c3f038e4cc574ac09a3ddfb0e8878487335e96dead6", size = 222391, upload-time = "2025-11-30T20:23:50.96Z" }, + { 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, upload-time = "2025-11-30T20:23:52.494Z" }, + { 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, upload-time = "2025-11-30T20:23:54.036Z" }, + { 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, upload-time = "2025-11-30T20:23:55.556Z" }, + { 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, upload-time = "2025-11-30T20:23:57.033Z" }, + { 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, upload-time = "2025-11-30T20:23:58.637Z" }, + { 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, upload-time = "2025-11-30T20:24:00.2Z" }, + { 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, upload-time = "2025-11-30T20:24:01.759Z" }, + { 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, upload-time = "2025-11-30T20:24:03.687Z" }, + { 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, upload-time = "2025-11-30T20:24:05.232Z" }, + { 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, upload-time = "2025-11-30T20:24:06.878Z" }, + { 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, upload-time = "2025-11-30T20:24:08.445Z" }, + { 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, upload-time = "2025-11-30T20:24:10.956Z" }, + { url = "https://files.pythonhosted.org/packages/20/53/7c7e784abfa500a2b6b583b147ee4bb5a2b3747a9166bab52fec4b5b5e7d/rpds_py-0.30.0-cp314-cp314t-win32.whl", hash = "sha256:dc824125c72246d924f7f796b4f63c1e9dc810c7d9e2355864b3c3a73d59ade0", size = 211570, upload-time = "2025-11-30T20:24:12.735Z" }, + { url = "https://files.pythonhosted.org/packages/d0/02/fa464cdfbe6b26e0600b62c528b72d8608f5cc49f96b8d6e38c95d60c676/rpds_py-0.30.0-cp314-cp314t-win_amd64.whl", hash = "sha256:27f4b0e92de5bfbc6f86e43959e6edd1425c33b5e69aab0984a72047f2bcf1e3", size = 226532, upload-time = "2025-11-30T20:24:14.634Z" }, +] + +[[package]] +name = "ruff" +version = "0.15.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/da/31/d6e536cdebb6568ae75a7f00e4b4819ae0ad2640c3604c305a0428680b0c/ruff-0.15.4.tar.gz", hash = "sha256:3412195319e42d634470cc97aa9803d07e9d5c9223b99bcb1518f0c725f26ae1", size = 4569550, upload-time = "2026-02-26T20:04:14.959Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f2/82/c11a03cfec3a4d26a0ea1e571f0f44be5993b923f905eeddfc397c13d360/ruff-0.15.4-py3-none-linux_armv6l.whl", hash = "sha256:a1810931c41606c686bae8b5b9a8072adac2f611bb433c0ba476acba17a332e0", size = 10453333, upload-time = "2026-02-26T20:04:20.093Z" }, + { url = "https://files.pythonhosted.org/packages/ce/5d/6a1f271f6e31dffb31855996493641edc3eef8077b883eaf007a2f1c2976/ruff-0.15.4-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:5a1632c66672b8b4d3e1d1782859e98d6e0b4e70829530666644286600a33992", size = 10853356, upload-time = "2026-02-26T20:04:05.808Z" }, + { url = "https://files.pythonhosted.org/packages/b1/d8/0fab9f8842b83b1a9c2bf81b85063f65e93fb512e60effa95b0be49bfc54/ruff-0.15.4-py3-none-macosx_11_0_arm64.whl", hash = "sha256:a4386ba2cd6c0f4ff75252845906acc7c7c8e1ac567b7bc3d373686ac8c222ba", size = 10187434, upload-time = "2026-02-26T20:03:54.656Z" }, + { url = "https://files.pythonhosted.org/packages/85/cc/cc220fd9394eff5db8d94dec199eec56dd6c9f3651d8869d024867a91030/ruff-0.15.4-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b2496488bdfd3732747558b6f95ae427ff066d1fcd054daf75f5a50674411e75", size = 10535456, upload-time = "2026-02-26T20:03:52.738Z" }, + { url = "https://files.pythonhosted.org/packages/fa/0f/bced38fa5cf24373ec767713c8e4cadc90247f3863605fb030e597878661/ruff-0.15.4-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3f1c4893841ff2d54cbda1b2860fa3260173df5ddd7b95d370186f8a5e66a4ac", size = 10287772, upload-time = "2026-02-26T20:04:08.138Z" }, + { url = "https://files.pythonhosted.org/packages/2b/90/58a1802d84fed15f8f281925b21ab3cecd813bde52a8ca033a4de8ab0e7a/ruff-0.15.4-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:820b8766bd65503b6c30aaa6331e8ef3a6e564f7999c844e9a547c40179e440a", size = 11049051, upload-time = "2026-02-26T20:04:03.53Z" }, + { url = "https://files.pythonhosted.org/packages/d2/ac/b7ad36703c35f3866584564dc15f12f91cb1a26a897dc2fd13d7cb3ae1af/ruff-0.15.4-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c9fb74bab47139c1751f900f857fa503987253c3ef89129b24ed375e72873e85", size = 11890494, upload-time = "2026-02-26T20:04:10.497Z" }, + { url = "https://files.pythonhosted.org/packages/93/3d/3eb2f47a39a8b0da99faf9c54d3eb24720add1e886a5309d4d1be73a6380/ruff-0.15.4-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f80c98765949c518142b3a50a5db89343aa90f2c2bf7799de9986498ae6176db", size = 11326221, upload-time = "2026-02-26T20:04:12.84Z" }, + { url = "https://files.pythonhosted.org/packages/ff/90/bf134f4c1e5243e62690e09d63c55df948a74084c8ac3e48a88468314da6/ruff-0.15.4-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:451a2e224151729b3b6c9ffb36aed9091b2996fe4bdbd11f47e27d8f2e8888ec", size = 11168459, upload-time = "2026-02-26T20:04:00.969Z" }, + { url = "https://files.pythonhosted.org/packages/b5/e5/a64d27688789b06b5d55162aafc32059bb8c989c61a5139a36e1368285eb/ruff-0.15.4-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:a8f157f2e583c513c4f5f896163a93198297371f34c04220daf40d133fdd4f7f", size = 11104366, upload-time = "2026-02-26T20:03:48.099Z" }, + { url = "https://files.pythonhosted.org/packages/f1/f6/32d1dcb66a2559763fc3027bdd65836cad9eb09d90f2ed6a63d8e9252b02/ruff-0.15.4-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:917cc68503357021f541e69b35361c99387cdbbf99bd0ea4aa6f28ca99ff5338", size = 10510887, upload-time = "2026-02-26T20:03:45.771Z" }, + { url = "https://files.pythonhosted.org/packages/ff/92/22d1ced50971c5b6433aed166fcef8c9343f567a94cf2b9d9089f6aa80fe/ruff-0.15.4-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:e9737c8161da79fd7cfec19f1e35620375bd8b2a50c3e77fa3d2c16f574105cc", size = 10285939, upload-time = "2026-02-26T20:04:22.42Z" }, + { url = "https://files.pythonhosted.org/packages/e6/f4/7c20aec3143837641a02509a4668fb146a642fd1211846634edc17eb5563/ruff-0.15.4-py3-none-musllinux_1_2_i686.whl", hash = "sha256:291258c917539e18f6ba40482fe31d6f5ac023994ee11d7bdafd716f2aab8a68", size = 10765471, upload-time = "2026-02-26T20:03:58.924Z" }, + { url = "https://files.pythonhosted.org/packages/d0/09/6d2f7586f09a16120aebdff8f64d962d7c4348313c77ebb29c566cefc357/ruff-0.15.4-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:3f83c45911da6f2cd5936c436cf86b9f09f09165f033a99dcf7477e34041cbc3", size = 11263382, upload-time = "2026-02-26T20:04:24.424Z" }, + { url = "https://files.pythonhosted.org/packages/1b/fa/2ef715a1cd329ef47c1a050e10dee91a9054b7ce2fcfdd6a06d139afb7ec/ruff-0.15.4-py3-none-win32.whl", hash = "sha256:65594a2d557d4ee9f02834fcdf0a28daa8b3b9f6cb2cb93846025a36db47ef22", size = 10506664, upload-time = "2026-02-26T20:03:50.56Z" }, + { url = "https://files.pythonhosted.org/packages/d0/a8/c688ef7e29983976820d18710f955751d9f4d4eb69df658af3d006e2ba3e/ruff-0.15.4-py3-none-win_amd64.whl", hash = "sha256:04196ad44f0df220c2ece5b0e959c2f37c777375ec744397d21d15b50a75264f", size = 11651048, upload-time = "2026-02-26T20:04:17.191Z" }, + { url = "https://files.pythonhosted.org/packages/3e/0a/9e1be9035b37448ce2e68c978f0591da94389ade5a5abafa4cf99985d1b2/ruff-0.15.4-py3-none-win_arm64.whl", hash = "sha256:60d5177e8cfc70e51b9c5fad936c634872a74209f934c1e79107d11787ad5453", size = 10966776, upload-time = "2026-02-26T20:03:56.908Z" }, +] + +[[package]] +name = "safehttpx" +version = "0.1.7" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "httpx" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/89/d1/4282284d9cf1ee873607a46442da977fc3c985059315ab23610be31d5885/safehttpx-0.1.7.tar.gz", hash = "sha256:db201c0978c41eddb8bb480f3eee59dd67304fdd91646035e9d9a720049a9d23", size = 10385, upload-time = "2025-10-24T18:30:09.783Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2e/a3/0f0b7d78e2f1eb9e8e1afbff1d2bff8d60144aee17aca51c065b516743dd/safehttpx-0.1.7-py3-none-any.whl", hash = "sha256:c4f4a162db6993464d7ca3d7cc4af0ffc6515a606dfd220b9f82c6945d869cde", size = 8959, upload-time = "2025-10-24T18:30:08.733Z" }, +] + +[[package]] +name = "scikit-image" +version = "0.26.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "imageio" }, + { name = "lazy-loader" }, + { name = "networkx" }, + { name = "numpy" }, + { name = "packaging" }, + { name = "pillow" }, + { name = "scipy" }, + { name = "tifffile" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a1/b4/2528bb43c67d48053a7a649a9666432dc307d66ba02e3a6d5c40f46655df/scikit_image-0.26.0.tar.gz", hash = "sha256:f5f970ab04efad85c24714321fcc91613fcb64ef2a892a13167df2f3e59199fa", size = 22729739, upload-time = "2025-12-20T17:12:21.824Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4f/48/02357ffb2cca35640f33f2cfe054a4d6d5d7a229b88880a64f1e45c11f4e/scikit_image-0.26.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a2e852eccf41d2d322b8e60144e124802873a92b8d43a6f96331aa42888491c7", size = 12346329, upload-time = "2025-12-20T17:11:11.599Z" }, + { url = "https://files.pythonhosted.org/packages/67/b9/b792c577cea2c1e94cda83b135a656924fc57c428e8a6d302cd69aac1b60/scikit_image-0.26.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:98329aab3bc87db352b9887f64ce8cdb8e75f7c2daa19927f2e121b797b678d5", size = 12031726, upload-time = "2025-12-20T17:11:13.871Z" }, + { url = "https://files.pythonhosted.org/packages/07/a9/9564250dfd65cb20404a611016db52afc6268b2b371cd19c7538ea47580f/scikit_image-0.26.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:915bb3ba66455cf8adac00dc8fdf18a4cd29656aec7ddd38cb4dda90289a6f21", size = 13094910, upload-time = "2025-12-20T17:11:16.2Z" }, + { url = "https://files.pythonhosted.org/packages/a3/b8/0d8eeb5a9fd7d34ba84f8a55753a0a3e2b5b51b2a5a0ade648a8db4a62f7/scikit_image-0.26.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b36ab5e778bf50af5ff386c3ac508027dc3aaeccf2161bdf96bde6848f44d21b", size = 13660939, upload-time = "2025-12-20T17:11:18.464Z" }, + { url = "https://files.pythonhosted.org/packages/2f/d6/91d8973584d4793d4c1a847d388e34ef1218d835eeddecfc9108d735b467/scikit_image-0.26.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:09bad6a5d5949c7896c8347424c4cca899f1d11668030e5548813ab9c2865dcb", size = 14138938, upload-time = "2025-12-20T17:11:20.919Z" }, + { url = "https://files.pythonhosted.org/packages/39/9a/7e15d8dc10d6bbf212195fb39bdeb7f226c46dd53f9c63c312e111e2e175/scikit_image-0.26.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:aeb14db1ed09ad4bee4ceb9e635547a8d5f3549be67fc6c768c7f923e027e6cd", size = 14752243, upload-time = "2025-12-20T17:11:23.347Z" }, + { url = "https://files.pythonhosted.org/packages/8f/58/2b11b933097bc427e42b4a8b15f7de8f24f2bac1fd2779d2aea1431b2c31/scikit_image-0.26.0-cp313-cp313-win_amd64.whl", hash = "sha256:ac529eb9dbd5954f9aaa2e3fe9a3fd9661bfe24e134c688587d811a0233127f1", size = 11906770, upload-time = "2025-12-20T17:11:25.297Z" }, + { url = "https://files.pythonhosted.org/packages/ad/ec/96941474a18a04b69b6f6562a5bd79bd68049fa3728d3b350976eccb8b93/scikit_image-0.26.0-cp313-cp313-win_arm64.whl", hash = "sha256:a2d211bc355f59725efdcae699b93b30348a19416cc9e017f7b2fb599faf7219", size = 11342506, upload-time = "2025-12-20T17:11:27.399Z" }, + { url = "https://files.pythonhosted.org/packages/03/e5/c1a9962b0cf1952f42d32b4a2e48eed520320dbc4d2ff0b981c6fa508b6b/scikit_image-0.26.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:9eefb4adad066da408a7601c4c24b07af3b472d90e08c3e7483d4e9e829d8c49", size = 12663278, upload-time = "2025-12-20T17:11:29.358Z" }, + { url = "https://files.pythonhosted.org/packages/ae/97/c1a276a59ce8e4e24482d65c1a3940d69c6b3873279193b7ebd04e5ee56b/scikit_image-0.26.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:6caec76e16c970c528d15d1c757363334d5cb3069f9cea93d2bead31820511f3", size = 12405142, upload-time = "2025-12-20T17:11:31.282Z" }, + { url = "https://files.pythonhosted.org/packages/d4/4a/f1cbd1357caef6c7993f7efd514d6e53d8fd6f7fe01c4714d51614c53289/scikit_image-0.26.0-cp313-cp313t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a07200fe09b9d99fcdab959859fe0f7db8df6333d6204344425d476850ce3604", size = 12942086, upload-time = "2025-12-20T17:11:33.683Z" }, + { url = "https://files.pythonhosted.org/packages/5b/6f/74d9fb87c5655bd64cf00b0c44dc3d6206d9002e5f6ba1c9aeb13236f6bf/scikit_image-0.26.0-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:92242351bccf391fc5df2d1529d15470019496d2498d615beb68da85fe7fdf37", size = 13265667, upload-time = "2025-12-20T17:11:36.11Z" }, + { url = "https://files.pythonhosted.org/packages/a7/73/faddc2413ae98d863f6fa2e3e14da4467dd38e788e1c23346cf1a2b06b97/scikit_image-0.26.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:52c496f75a7e45844d951557f13c08c81487c6a1da2e3c9c8a39fcde958e02cc", size = 14001966, upload-time = "2025-12-20T17:11:38.55Z" }, + { url = "https://files.pythonhosted.org/packages/02/94/9f46966fa042b5d57c8cd641045372b4e0df0047dd400e77ea9952674110/scikit_image-0.26.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:20ef4a155e2e78b8ab973998e04d8a361d49d719e65412405f4dadd9155a61d9", size = 14359526, upload-time = "2025-12-20T17:11:41.087Z" }, + { url = "https://files.pythonhosted.org/packages/5d/b4/2840fe38f10057f40b1c9f8fb98a187a370936bf144a4ac23452c5ef1baf/scikit_image-0.26.0-cp313-cp313t-win_amd64.whl", hash = "sha256:c9087cf7d0e7f33ab5c46d2068d86d785e70b05400a891f73a13400f1e1faf6a", size = 12287629, upload-time = "2025-12-20T17:11:43.11Z" }, + { url = "https://files.pythonhosted.org/packages/22/ba/73b6ca70796e71f83ab222690e35a79612f0117e5aaf167151b7d46f5f2c/scikit_image-0.26.0-cp313-cp313t-win_arm64.whl", hash = "sha256:27d58bc8b2acd351f972c6508c1b557cfed80299826080a4d803dd29c51b707e", size = 11647755, upload-time = "2025-12-20T17:11:45.279Z" }, + { url = "https://files.pythonhosted.org/packages/51/44/6b744f92b37ae2833fd423cce8f806d2368859ec325a699dc30389e090b9/scikit_image-0.26.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:63af3d3a26125f796f01052052f86806da5b5e54c6abef152edb752683075a9c", size = 12365810, upload-time = "2025-12-20T17:11:47.357Z" }, + { url = "https://files.pythonhosted.org/packages/40/f5/83590d9355191f86ac663420fec741b82cc547a4afe7c4c1d986bf46e4db/scikit_image-0.26.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:ce00600cd70d4562ed59f80523e18cdcc1fae0e10676498a01f73c255774aefd", size = 12075717, upload-time = "2025-12-20T17:11:49.483Z" }, + { url = "https://files.pythonhosted.org/packages/72/48/253e7cf5aee6190459fe136c614e2cbccc562deceb4af96e0863f1b8ee29/scikit_image-0.26.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6381edf972b32e4f54085449afde64365a57316637496c1325a736987083e2ab", size = 13161520, upload-time = "2025-12-20T17:11:51.58Z" }, + { url = "https://files.pythonhosted.org/packages/73/c3/cec6a3cbaadfdcc02bd6ff02f3abfe09eaa7f4d4e0a525a1e3a3f4bce49c/scikit_image-0.26.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c6624a76c6085218248154cc7e1500e6b488edcd9499004dd0d35040607d7505", size = 13684340, upload-time = "2025-12-20T17:11:53.708Z" }, + { url = "https://files.pythonhosted.org/packages/d4/0d/39a776f675d24164b3a267aa0db9f677a4cb20127660d8bf4fd7fef66817/scikit_image-0.26.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:f775f0e420faac9c2aa6757135f4eb468fb7b70e0b67fa77a5e79be3c30ee331", size = 14203839, upload-time = "2025-12-20T17:11:55.89Z" }, + { url = "https://files.pythonhosted.org/packages/ee/25/2514df226bbcedfe9b2caafa1ba7bc87231a0c339066981b182b08340e06/scikit_image-0.26.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:ede4d6d255cc5da9faeb2f9ba7fedbc990abbc652db429f40a16b22e770bb578", size = 14770021, upload-time = "2025-12-20T17:11:58.014Z" }, + { url = "https://files.pythonhosted.org/packages/8d/5b/0671dc91c0c79340c3fe202f0549c7d3681eb7640fe34ab68a5f090a7c7f/scikit_image-0.26.0-cp314-cp314-win_amd64.whl", hash = "sha256:0660b83968c15293fd9135e8d860053ee19500d52bf55ca4fb09de595a1af650", size = 12023490, upload-time = "2025-12-20T17:12:00.013Z" }, + { url = "https://files.pythonhosted.org/packages/65/08/7c4cb59f91721f3de07719085212a0b3962e3e3f2d1818cbac4eeb1ea53e/scikit_image-0.26.0-cp314-cp314-win_arm64.whl", hash = "sha256:b8d14d3181c21c11170477a42542c1addc7072a90b986675a71266ad17abc37f", size = 11473782, upload-time = "2025-12-20T17:12:01.983Z" }, + { url = "https://files.pythonhosted.org/packages/49/41/65c4258137acef3d73cb561ac55512eacd7b30bb4f4a11474cad526bc5db/scikit_image-0.26.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:cde0bbd57e6795eba83cb10f71a677f7239271121dc950bc060482834a668ad1", size = 12686060, upload-time = "2025-12-20T17:12:03.886Z" }, + { url = "https://files.pythonhosted.org/packages/e7/32/76971f8727b87f1420a962406388a50e26667c31756126444baf6668f559/scikit_image-0.26.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:163e9afb5b879562b9aeda0dd45208a35316f26cc7a3aed54fd601604e5cf46f", size = 12422628, upload-time = "2025-12-20T17:12:05.921Z" }, + { url = "https://files.pythonhosted.org/packages/37/0d/996febd39f757c40ee7b01cdb861867327e5c8e5f595a634e8201462d958/scikit_image-0.26.0-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:724f79fd9b6cb6f4a37864fe09f81f9f5d5b9646b6868109e1b100d1a7019e59", size = 12962369, upload-time = "2025-12-20T17:12:07.912Z" }, + { url = "https://files.pythonhosted.org/packages/48/b4/612d354f946c9600e7dea012723c11d47e8d455384e530f6daaaeb9bf62c/scikit_image-0.26.0-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3268f13310e6857508bd87202620df996199a016a1d281b309441d227c822394", size = 13272431, upload-time = "2025-12-20T17:12:10.255Z" }, + { url = "https://files.pythonhosted.org/packages/0a/6e/26c00b466e06055a086de2c6e2145fe189ccdc9a1d11ccc7de020f2591ad/scikit_image-0.26.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:fac96a1f9b06cd771cbbb3cd96c5332f36d4efd839b1d8b053f79e5887acde62", size = 14016362, upload-time = "2025-12-20T17:12:12.793Z" }, + { url = "https://files.pythonhosted.org/packages/47/88/00a90402e1775634043c2a0af8a3c76ad450866d9fa444efcc43b553ba2d/scikit_image-0.26.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:2c1e7bd342f43e7a97e571b3f03ba4c1293ea1a35c3f13f41efdc8a81c1dc8f2", size = 14364151, upload-time = "2025-12-20T17:12:14.909Z" }, + { url = "https://files.pythonhosted.org/packages/da/ca/918d8d306bd43beacff3b835c6d96fac0ae64c0857092f068b88db531a7c/scikit_image-0.26.0-cp314-cp314t-win_amd64.whl", hash = "sha256:b702c3bb115e1dcf4abf5297429b5c90f2189655888cbed14921f3d26f81d3a4", size = 12413484, upload-time = "2025-12-20T17:12:17.046Z" }, + { url = "https://files.pythonhosted.org/packages/dc/cd/4da01329b5a8d47ff7ec3c99a2b02465a8017b186027590dc7425cee0b56/scikit_image-0.26.0-cp314-cp314t-win_arm64.whl", hash = "sha256:0608aa4a9ec39e0843de10d60edb2785a30c1c47819b67866dd223ebd149acaf", size = 11769501, upload-time = "2025-12-20T17:12:19.339Z" }, +] + +[[package]] +name = "scikit-learn" +version = "1.8.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "joblib" }, + { name = "numpy" }, + { name = "scipy" }, + { name = "threadpoolctl" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/0e/d4/40988bf3b8e34feec1d0e6a051446b1f66225f8529b9309becaeef62b6c4/scikit_learn-1.8.0.tar.gz", hash = "sha256:9bccbb3b40e3de10351f8f5068e105d0f4083b1a65fa07b6634fbc401a6287fd", size = 7335585, upload-time = "2025-12-10T07:08:53.618Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/03/aa/e22e0768512ce9255eba34775be2e85c2048da73da1193e841707f8f039c/scikit_learn-1.8.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0d6ae97234d5d7079dc0040990a6f7aeb97cb7fa7e8945f1999a429b23569e0a", size = 8513770, upload-time = "2025-12-10T07:08:03.251Z" }, + { url = "https://files.pythonhosted.org/packages/58/37/31b83b2594105f61a381fc74ca19e8780ee923be2d496fcd8d2e1147bd99/scikit_learn-1.8.0-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:edec98c5e7c128328124a029bceb09eda2d526997780fef8d65e9a69eead963e", size = 8044458, upload-time = "2025-12-10T07:08:05.336Z" }, + { url = "https://files.pythonhosted.org/packages/2d/5a/3f1caed8765f33eabb723596666da4ebbf43d11e96550fb18bdec42b467b/scikit_learn-1.8.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:74b66d8689d52ed04c271e1329f0c61635bcaf5b926db9b12d58914cdc01fe57", size = 8610341, upload-time = "2025-12-10T07:08:07.732Z" }, + { url = "https://files.pythonhosted.org/packages/38/cf/06896db3f71c75902a8e9943b444a56e727418f6b4b4a90c98c934f51ed4/scikit_learn-1.8.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8fdf95767f989b0cfedb85f7ed8ca215d4be728031f56ff5a519ee1e3276dc2e", size = 8900022, upload-time = "2025-12-10T07:08:09.862Z" }, + { url = "https://files.pythonhosted.org/packages/1c/f9/9b7563caf3ec8873e17a31401858efab6b39a882daf6c1bfa88879c0aa11/scikit_learn-1.8.0-cp313-cp313-win_amd64.whl", hash = "sha256:2de443b9373b3b615aec1bb57f9baa6bb3a9bd093f1269ba95c17d870422b271", size = 7989409, upload-time = "2025-12-10T07:08:12.028Z" }, + { url = "https://files.pythonhosted.org/packages/49/bd/1f4001503650e72c4f6009ac0c4413cb17d2d601cef6f71c0453da2732fc/scikit_learn-1.8.0-cp313-cp313-win_arm64.whl", hash = "sha256:eddde82a035681427cbedded4e6eff5e57fa59216c2e3e90b10b19ab1d0a65c3", size = 7619760, upload-time = "2025-12-10T07:08:13.688Z" }, + { url = "https://files.pythonhosted.org/packages/d2/7d/a630359fc9dcc95496588c8d8e3245cc8fd81980251079bc09c70d41d951/scikit_learn-1.8.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:7cc267b6108f0a1499a734167282c00c4ebf61328566b55ef262d48e9849c735", size = 8826045, upload-time = "2025-12-10T07:08:15.215Z" }, + { url = "https://files.pythonhosted.org/packages/cc/56/a0c86f6930cfcd1c7054a2bc417e26960bb88d32444fe7f71d5c2cfae891/scikit_learn-1.8.0-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:fe1c011a640a9f0791146011dfd3c7d9669785f9fed2b2a5f9e207536cf5c2fd", size = 8420324, upload-time = "2025-12-10T07:08:17.561Z" }, + { url = "https://files.pythonhosted.org/packages/46/1e/05962ea1cebc1cf3876667ecb14c283ef755bf409993c5946ade3b77e303/scikit_learn-1.8.0-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:72358cce49465d140cc4e7792015bb1f0296a9742d5622c67e31399b75468b9e", size = 8680651, upload-time = "2025-12-10T07:08:19.952Z" }, + { url = "https://files.pythonhosted.org/packages/fe/56/a85473cd75f200c9759e3a5f0bcab2d116c92a8a02ee08ccd73b870f8bb4/scikit_learn-1.8.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:80832434a6cc114f5219211eec13dcbc16c2bac0e31ef64c6d346cde3cf054cb", size = 8925045, upload-time = "2025-12-10T07:08:22.11Z" }, + { url = "https://files.pythonhosted.org/packages/cc/b7/64d8cfa896c64435ae57f4917a548d7ac7a44762ff9802f75a79b77cb633/scikit_learn-1.8.0-cp313-cp313t-win_amd64.whl", hash = "sha256:ee787491dbfe082d9c3013f01f5991658b0f38aa8177e4cd4bf434c58f551702", size = 8507994, upload-time = "2025-12-10T07:08:23.943Z" }, + { url = "https://files.pythonhosted.org/packages/5e/37/e192ea709551799379958b4c4771ec507347027bb7c942662c7fbeba31cb/scikit_learn-1.8.0-cp313-cp313t-win_arm64.whl", hash = "sha256:bf97c10a3f5a7543f9b88cbf488d33d175e9146115a451ae34568597ba33dcde", size = 7869518, upload-time = "2025-12-10T07:08:25.71Z" }, + { url = "https://files.pythonhosted.org/packages/24/05/1af2c186174cc92dcab2233f327336058c077d38f6fe2aceb08e6ab4d509/scikit_learn-1.8.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:c22a2da7a198c28dd1a6e1136f19c830beab7fdca5b3e5c8bba8394f8a5c45b3", size = 8528667, upload-time = "2025-12-10T07:08:27.541Z" }, + { url = "https://files.pythonhosted.org/packages/a8/25/01c0af38fe969473fb292bba9dc2b8f9b451f3112ff242c647fee3d0dfe7/scikit_learn-1.8.0-cp314-cp314-macosx_12_0_arm64.whl", hash = "sha256:6b595b07a03069a2b1740dc08c2299993850ea81cce4fe19b2421e0c970de6b7", size = 8066524, upload-time = "2025-12-10T07:08:29.822Z" }, + { url = "https://files.pythonhosted.org/packages/be/ce/a0623350aa0b68647333940ee46fe45086c6060ec604874e38e9ab7d8e6c/scikit_learn-1.8.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:29ffc74089f3d5e87dfca4c2c8450f88bdc61b0fc6ed5d267f3988f19a1309f6", size = 8657133, upload-time = "2025-12-10T07:08:31.865Z" }, + { url = "https://files.pythonhosted.org/packages/b8/cb/861b41341d6f1245e6ca80b1c1a8c4dfce43255b03df034429089ca2a2c5/scikit_learn-1.8.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fb65db5d7531bccf3a4f6bec3462223bea71384e2cda41da0f10b7c292b9e7c4", size = 8923223, upload-time = "2025-12-10T07:08:34.166Z" }, + { url = "https://files.pythonhosted.org/packages/76/18/a8def8f91b18cd1ba6e05dbe02540168cb24d47e8dcf69e8d00b7da42a08/scikit_learn-1.8.0-cp314-cp314-win_amd64.whl", hash = "sha256:56079a99c20d230e873ea40753102102734c5953366972a71d5cb39a32bc40c6", size = 8096518, upload-time = "2025-12-10T07:08:36.339Z" }, + { url = "https://files.pythonhosted.org/packages/d1/77/482076a678458307f0deb44e29891d6022617b2a64c840c725495bee343f/scikit_learn-1.8.0-cp314-cp314-win_arm64.whl", hash = "sha256:3bad7565bc9cf37ce19a7c0d107742b320c1285df7aab1a6e2d28780df167242", size = 7754546, upload-time = "2025-12-10T07:08:38.128Z" }, + { url = "https://files.pythonhosted.org/packages/2d/d1/ef294ca754826daa043b2a104e59960abfab4cf653891037d19dd5b6f3cf/scikit_learn-1.8.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:4511be56637e46c25721e83d1a9cea9614e7badc7040c4d573d75fbe257d6fd7", size = 8848305, upload-time = "2025-12-10T07:08:41.013Z" }, + { url = "https://files.pythonhosted.org/packages/5b/e2/b1f8b05138ee813b8e1a4149f2f0d289547e60851fd1bb268886915adbda/scikit_learn-1.8.0-cp314-cp314t-macosx_12_0_arm64.whl", hash = "sha256:a69525355a641bf8ef136a7fa447672fb54fe8d60cab5538d9eb7c6438543fb9", size = 8432257, upload-time = "2025-12-10T07:08:42.873Z" }, + { url = "https://files.pythonhosted.org/packages/26/11/c32b2138a85dcb0c99f6afd13a70a951bfdff8a6ab42d8160522542fb647/scikit_learn-1.8.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c2656924ec73e5939c76ac4c8b026fc203b83d8900362eb2599d8aee80e4880f", size = 8678673, upload-time = "2025-12-10T07:08:45.362Z" }, + { url = "https://files.pythonhosted.org/packages/c7/57/51f2384575bdec454f4fe4e7a919d696c9ebce914590abf3e52d47607ab8/scikit_learn-1.8.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:15fc3b5d19cc2be65404786857f2e13c70c83dd4782676dd6814e3b89dc8f5b9", size = 8922467, upload-time = "2025-12-10T07:08:47.408Z" }, + { url = "https://files.pythonhosted.org/packages/35/4d/748c9e2872637a57981a04adc038dacaa16ba8ca887b23e34953f0b3f742/scikit_learn-1.8.0-cp314-cp314t-win_amd64.whl", hash = "sha256:00d6f1d66fbcf4eba6e356e1420d33cc06c70a45bb1363cd6f6a8e4ebbbdece2", size = 8774395, upload-time = "2025-12-10T07:08:49.337Z" }, + { url = "https://files.pythonhosted.org/packages/60/22/d7b2ebe4704a5e50790ba089d5c2ae308ab6bb852719e6c3bd4f04c3a363/scikit_learn-1.8.0-cp314-cp314t-win_arm64.whl", hash = "sha256:f28dd15c6bb0b66ba09728cf09fd8736c304be29409bd8445a080c1280619e8c", size = 8002647, upload-time = "2025-12-10T07:08:51.601Z" }, +] + +[[package]] +name = "scipy" +version = "1.17.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/7a/97/5a3609c4f8d58b039179648e62dd220f89864f56f7357f5d4f45c29eb2cc/scipy-1.17.1.tar.gz", hash = "sha256:95d8e012d8cb8816c226aef832200b1d45109ed4464303e997c5b13122b297c0", size = 30573822, upload-time = "2026-02-23T00:26:24.851Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/76/27/07ee1b57b65e92645f219b37148a7e7928b82e2b5dbeccecb4dff7c64f0b/scipy-1.17.1-cp313-cp313-macosx_10_14_x86_64.whl", hash = "sha256:5e3c5c011904115f88a39308379c17f91546f77c1667cea98739fe0fccea804c", size = 31590199, upload-time = "2026-02-23T00:19:17.192Z" }, + { url = "https://files.pythonhosted.org/packages/ec/ae/db19f8ab842e9b724bf5dbb7db29302a91f1e55bc4d04b1025d6d605a2c5/scipy-1.17.1-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:6fac755ca3d2c3edcb22f479fceaa241704111414831ddd3bc6056e18516892f", size = 28154001, upload-time = "2026-02-23T00:19:22.241Z" }, + { url = "https://files.pythonhosted.org/packages/5b/58/3ce96251560107b381cbd6e8413c483bbb1228a6b919fa8652b0d4090e7f/scipy-1.17.1-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:7ff200bf9d24f2e4d5dc6ee8c3ac64d739d3a89e2326ba68aaf6c4a2b838fd7d", size = 20325719, upload-time = "2026-02-23T00:19:26.329Z" }, + { url = "https://files.pythonhosted.org/packages/b2/83/15087d945e0e4d48ce2377498abf5ad171ae013232ae31d06f336e64c999/scipy-1.17.1-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:4b400bdc6f79fa02a4d86640310dde87a21fba0c979efff5248908c6f15fad1b", size = 22683595, upload-time = "2026-02-23T00:19:30.304Z" }, + { url = "https://files.pythonhosted.org/packages/b4/e0/e58fbde4a1a594c8be8114eb4aac1a55bcd6587047efc18a61eb1f5c0d30/scipy-1.17.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2b64ca7d4aee0102a97f3ba22124052b4bd2152522355073580bf4845e2550b6", size = 32896429, upload-time = "2026-02-23T00:19:35.536Z" }, + { url = "https://files.pythonhosted.org/packages/f5/5f/f17563f28ff03c7b6799c50d01d5d856a1d55f2676f537ca8d28c7f627cd/scipy-1.17.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:581b2264fc0aa555f3f435a5944da7504ea3a065d7029ad60e7c3d1ae09c5464", size = 35203952, upload-time = "2026-02-23T00:19:42.259Z" }, + { url = "https://files.pythonhosted.org/packages/8d/a5/9afd17de24f657fdfe4df9a3f1ea049b39aef7c06000c13db1530d81ccca/scipy-1.17.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:beeda3d4ae615106d7094f7e7cef6218392e4465cc95d25f900bebabfded0950", size = 34979063, upload-time = "2026-02-23T00:19:47.547Z" }, + { url = "https://files.pythonhosted.org/packages/8b/13/88b1d2384b424bf7c924f2038c1c409f8d88bb2a8d49d097861dd64a57b2/scipy-1.17.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6609bc224e9568f65064cfa72edc0f24ee6655b47575954ec6339534b2798369", size = 37598449, upload-time = "2026-02-23T00:19:53.238Z" }, + { url = "https://files.pythonhosted.org/packages/35/e5/d6d0e51fc888f692a35134336866341c08655d92614f492c6860dc45bb2c/scipy-1.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:37425bc9175607b0268f493d79a292c39f9d001a357bebb6b88fdfaff13f6448", size = 36510943, upload-time = "2026-02-23T00:20:50.89Z" }, + { url = "https://files.pythonhosted.org/packages/2a/fd/3be73c564e2a01e690e19cc618811540ba5354c67c8680dce3281123fb79/scipy-1.17.1-cp313-cp313-win_arm64.whl", hash = "sha256:5cf36e801231b6a2059bf354720274b7558746f3b1a4efb43fcf557ccd484a87", size = 24545621, upload-time = "2026-02-23T00:20:55.871Z" }, + { url = "https://files.pythonhosted.org/packages/6f/6b/17787db8b8114933a66f9dcc479a8272e4b4da75fe03b0c282f7b0ade8cd/scipy-1.17.1-cp313-cp313t-macosx_10_14_x86_64.whl", hash = "sha256:d59c30000a16d8edc7e64152e30220bfbd724c9bbb08368c054e24c651314f0a", size = 31936708, upload-time = "2026-02-23T00:19:58.694Z" }, + { url = "https://files.pythonhosted.org/packages/38/2e/524405c2b6392765ab1e2b722a41d5da33dc5c7b7278184a8ad29b6cb206/scipy-1.17.1-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:010f4333c96c9bb1a4516269e33cb5917b08ef2166d5556ca2fd9f082a9e6ea0", size = 28570135, upload-time = "2026-02-23T00:20:03.934Z" }, + { url = "https://files.pythonhosted.org/packages/fd/c3/5bd7199f4ea8556c0c8e39f04ccb014ac37d1468e6cfa6a95c6b3562b76e/scipy-1.17.1-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:2ceb2d3e01c5f1d83c4189737a42d9cb2fc38a6eeed225e7515eef71ad301dce", size = 20741977, upload-time = "2026-02-23T00:20:07.935Z" }, + { url = "https://files.pythonhosted.org/packages/d9/b8/8ccd9b766ad14c78386599708eb745f6b44f08400a5fd0ade7cf89b6fc93/scipy-1.17.1-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:844e165636711ef41f80b4103ed234181646b98a53c8f05da12ca5ca289134f6", size = 23029601, upload-time = "2026-02-23T00:20:12.161Z" }, + { url = "https://files.pythonhosted.org/packages/6d/a0/3cb6f4d2fb3e17428ad2880333cac878909ad1a89f678527b5328b93c1d4/scipy-1.17.1-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:158dd96d2207e21c966063e1635b1063cd7787b627b6f07305315dd73d9c679e", size = 33019667, upload-time = "2026-02-23T00:20:17.208Z" }, + { url = "https://files.pythonhosted.org/packages/f3/c3/2d834a5ac7bf3a0c806ad1508efc02dda3c8c61472a56132d7894c312dea/scipy-1.17.1-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:74cbb80d93260fe2ffa334efa24cb8f2f0f622a9b9febf8b483c0b865bfb3475", size = 35264159, upload-time = "2026-02-23T00:20:23.087Z" }, + { url = "https://files.pythonhosted.org/packages/4d/77/d3ed4becfdbd217c52062fafe35a72388d1bd82c2d0ba5ca19d6fcc93e11/scipy-1.17.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:dbc12c9f3d185f5c737d801da555fb74b3dcfa1a50b66a1a93e09190f41fab50", size = 35102771, upload-time = "2026-02-23T00:20:28.636Z" }, + { url = "https://files.pythonhosted.org/packages/bd/12/d19da97efde68ca1ee5538bb261d5d2c062f0c055575128f11a2730e3ac1/scipy-1.17.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:94055a11dfebe37c656e70317e1996dc197e1a15bbcc351bcdd4610e128fe1ca", size = 37665910, upload-time = "2026-02-23T00:20:34.743Z" }, + { url = "https://files.pythonhosted.org/packages/06/1c/1172a88d507a4baaf72c5a09bb6c018fe2ae0ab622e5830b703a46cc9e44/scipy-1.17.1-cp313-cp313t-win_amd64.whl", hash = "sha256:e30bdeaa5deed6bc27b4cc490823cd0347d7dae09119b8803ae576ea0ce52e4c", size = 36562980, upload-time = "2026-02-23T00:20:40.575Z" }, + { url = "https://files.pythonhosted.org/packages/70/b0/eb757336e5a76dfa7911f63252e3b7d1de00935d7705cf772db5b45ec238/scipy-1.17.1-cp313-cp313t-win_arm64.whl", hash = "sha256:a720477885a9d2411f94a93d16f9d89bad0f28ca23c3f8daa521e2dcc3f44d49", size = 24856543, upload-time = "2026-02-23T00:20:45.313Z" }, + { url = "https://files.pythonhosted.org/packages/cf/83/333afb452af6f0fd70414dc04f898647ee1423979ce02efa75c3b0f2c28e/scipy-1.17.1-cp314-cp314-macosx_10_14_x86_64.whl", hash = "sha256:a48a72c77a310327f6a3a920092fa2b8fd03d7deaa60f093038f22d98e096717", size = 31584510, upload-time = "2026-02-23T00:21:01.015Z" }, + { url = "https://files.pythonhosted.org/packages/ed/a6/d05a85fd51daeb2e4ea71d102f15b34fedca8e931af02594193ae4fd25f7/scipy-1.17.1-cp314-cp314-macosx_12_0_arm64.whl", hash = "sha256:45abad819184f07240d8a696117a7aacd39787af9e0b719d00285549ed19a1e9", size = 28170131, upload-time = "2026-02-23T00:21:05.888Z" }, + { url = "https://files.pythonhosted.org/packages/db/7b/8624a203326675d7746a254083a187398090a179335b2e4a20e2ddc46e83/scipy-1.17.1-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:3fd1fcdab3ea951b610dc4cef356d416d5802991e7e32b5254828d342f7b7e0b", size = 20342032, upload-time = "2026-02-23T00:21:09.904Z" }, + { url = "https://files.pythonhosted.org/packages/c9/35/2c342897c00775d688d8ff3987aced3426858fd89d5a0e26e020b660b301/scipy-1.17.1-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:7bdf2da170b67fdf10bca777614b1c7d96ae3ca5794fd9587dce41eb2966e866", size = 22678766, upload-time = "2026-02-23T00:21:14.313Z" }, + { url = "https://files.pythonhosted.org/packages/ef/f2/7cdb8eb308a1a6ae1e19f945913c82c23c0c442a462a46480ce487fdc0ac/scipy-1.17.1-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:adb2642e060a6549c343603a3851ba76ef0b74cc8c079a9a58121c7ec9fe2350", size = 32957007, upload-time = "2026-02-23T00:21:19.663Z" }, + { url = "https://files.pythonhosted.org/packages/0b/2e/7eea398450457ecb54e18e9d10110993fa65561c4f3add5e8eccd2b9cd41/scipy-1.17.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:eee2cfda04c00a857206a4330f0c5e3e56535494e30ca445eb19ec624ae75118", size = 35221333, upload-time = "2026-02-23T00:21:25.278Z" }, + { url = "https://files.pythonhosted.org/packages/d9/77/5b8509d03b77f093a0d52e606d3c4f79e8b06d1d38c441dacb1e26cacf46/scipy-1.17.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:d2650c1fb97e184d12d8ba010493ee7b322864f7d3d00d3f9bb97d9c21de4068", size = 35042066, upload-time = "2026-02-23T00:21:31.358Z" }, + { url = "https://files.pythonhosted.org/packages/f9/df/18f80fb99df40b4070328d5ae5c596f2f00fffb50167e31439e932f29e7d/scipy-1.17.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:08b900519463543aa604a06bec02461558a6e1cef8fdbb8098f77a48a83c8118", size = 37612763, upload-time = "2026-02-23T00:21:37.247Z" }, + { url = "https://files.pythonhosted.org/packages/4b/39/f0e8ea762a764a9dc52aa7dabcfad51a354819de1f0d4652b6a1122424d6/scipy-1.17.1-cp314-cp314-win_amd64.whl", hash = "sha256:3877ac408e14da24a6196de0ddcace62092bfc12a83823e92e49e40747e52c19", size = 37290984, upload-time = "2026-02-23T00:22:35.023Z" }, + { url = "https://files.pythonhosted.org/packages/7c/56/fe201e3b0f93d1a8bcf75d3379affd228a63d7e2d80ab45467a74b494947/scipy-1.17.1-cp314-cp314-win_arm64.whl", hash = "sha256:f8885db0bc2bffa59d5c1b72fad7a6a92d3e80e7257f967dd81abb553a90d293", size = 25192877, upload-time = "2026-02-23T00:22:39.798Z" }, + { url = "https://files.pythonhosted.org/packages/96/ad/f8c414e121f82e02d76f310f16db9899c4fcde36710329502a6b2a3c0392/scipy-1.17.1-cp314-cp314t-macosx_10_14_x86_64.whl", hash = "sha256:1cc682cea2ae55524432f3cdff9e9a3be743d52a7443d0cba9017c23c87ae2f6", size = 31949750, upload-time = "2026-02-23T00:21:42.289Z" }, + { url = "https://files.pythonhosted.org/packages/7c/b0/c741e8865d61b67c81e255f4f0a832846c064e426636cd7de84e74d209be/scipy-1.17.1-cp314-cp314t-macosx_12_0_arm64.whl", hash = "sha256:2040ad4d1795a0ae89bfc7e8429677f365d45aa9fd5e4587cf1ea737f927b4a1", size = 28585858, upload-time = "2026-02-23T00:21:47.706Z" }, + { url = "https://files.pythonhosted.org/packages/ed/1b/3985219c6177866628fa7c2595bfd23f193ceebbe472c98a08824b9466ff/scipy-1.17.1-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:131f5aaea57602008f9822e2115029b55d4b5f7c070287699fe45c661d051e39", size = 20757723, upload-time = "2026-02-23T00:21:52.039Z" }, + { url = "https://files.pythonhosted.org/packages/c0/19/2a04aa25050d656d6f7b9e7b685cc83d6957fb101665bfd9369ca6534563/scipy-1.17.1-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:9cdc1a2fcfd5c52cfb3045feb399f7b3ce822abdde3a193a6b9a60b3cb5854ca", size = 23043098, upload-time = "2026-02-23T00:21:56.185Z" }, + { url = "https://files.pythonhosted.org/packages/86/f1/3383beb9b5d0dbddd030335bf8a8b32d4317185efe495374f134d8be6cce/scipy-1.17.1-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6e3dcd57ab780c741fde8dc68619de988b966db759a3c3152e8e9142c26295ad", size = 33030397, upload-time = "2026-02-23T00:22:01.404Z" }, + { url = "https://files.pythonhosted.org/packages/41/68/8f21e8a65a5a03f25a79165ec9d2b28c00e66dc80546cf5eb803aeeff35b/scipy-1.17.1-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a9956e4d4f4a301ebf6cde39850333a6b6110799d470dbbb1e25326ac447f52a", size = 35281163, upload-time = "2026-02-23T00:22:07.024Z" }, + { url = "https://files.pythonhosted.org/packages/84/8d/c8a5e19479554007a5632ed7529e665c315ae7492b4f946b0deb39870e39/scipy-1.17.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:a4328d245944d09fd639771de275701ccadf5f781ba0ff092ad141e017eccda4", size = 35116291, upload-time = "2026-02-23T00:22:12.585Z" }, + { url = "https://files.pythonhosted.org/packages/52/52/e57eceff0e342a1f50e274264ed47497b59e6a4e3118808ee58ddda7b74a/scipy-1.17.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:a77cbd07b940d326d39a1d1b37817e2ee4d79cb30e7338f3d0cddffae70fcaa2", size = 37682317, upload-time = "2026-02-23T00:22:18.513Z" }, + { url = "https://files.pythonhosted.org/packages/11/2f/b29eafe4a3fbc3d6de9662b36e028d5f039e72d345e05c250e121a230dd4/scipy-1.17.1-cp314-cp314t-win_amd64.whl", hash = "sha256:eb092099205ef62cd1782b006658db09e2fed75bffcae7cc0d44052d8aa0f484", size = 37345327, upload-time = "2026-02-23T00:22:24.442Z" }, + { url = "https://files.pythonhosted.org/packages/07/39/338d9219c4e87f3e708f18857ecd24d22a0c3094752393319553096b98af/scipy-1.17.1-cp314-cp314t-win_arm64.whl", hash = "sha256:200e1050faffacc162be6a486a984a0497866ec54149a01270adc8a59b7c7d21", size = 25489165, upload-time = "2026-02-23T00:22:29.563Z" }, +] + +[[package]] +name = "semantic-version" +version = "2.10.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7d/31/f2289ce78b9b473d582568c234e104d2a342fd658cc288a7553d83bb8595/semantic_version-2.10.0.tar.gz", hash = "sha256:bdabb6d336998cbb378d4b9db3a4b56a1e3235701dc05ea2690d9a997ed5041c", size = 52289, upload-time = "2022-05-26T13:35:23.454Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6a/23/8146aad7d88f4fcb3a6218f41a60f6c2d4e3a72de72da1825dc7c8f7877c/semantic_version-2.10.0-py2.py3-none-any.whl", hash = "sha256:de78a3b8e0feda74cabc54aab2da702113e33ac9d9eb9d2389bcf1f58b7d9177", size = 15552, upload-time = "2022-05-26T13:35:21.206Z" }, +] + +[[package]] +name = "send2trash" +version = "2.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c5/f0/184b4b5f8d00f2a92cf96eec8967a3d550b52cf94362dad1100df9e48d57/send2trash-2.1.0.tar.gz", hash = "sha256:1c72b39f09457db3c05ce1d19158c2cbef4c32b8bedd02c155e49282b7ea7459", size = 17255, upload-time = "2026-01-14T06:27:36.056Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1c/78/504fdd027da3b84ff1aecd9f6957e65f35134534ccc6da8628eb71e76d3f/send2trash-2.1.0-py3-none-any.whl", hash = "sha256:0da2f112e6d6bb22de6aa6daa7e144831a4febf2a87261451c4ad849fe9a873c", size = 17610, upload-time = "2026-01-14T06:27:35.218Z" }, +] + +[[package]] +name = "setuptools" +version = "82.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/82/f3/748f4d6f65d1756b9ae577f329c951cda23fb900e4de9f70900ced962085/setuptools-82.0.0.tar.gz", hash = "sha256:22e0a2d69474c6ae4feb01951cb69d515ed23728cf96d05513d36e42b62b37cb", size = 1144893, upload-time = "2026-02-08T15:08:40.206Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e1/c6/76dc613121b793286a3f91621d7b75a2b493e0390ddca50f11993eadf192/setuptools-82.0.0-py3-none-any.whl", hash = "sha256:70b18734b607bd1da571d097d236cfcfacaf01de45717d59e6e04b96877532e0", size = 1003468, upload-time = "2026-02-08T15:08:38.723Z" }, +] + +[[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, upload-time = "2023-10-24T04:13:40.426Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e0/f9/0595336914c5619e5f28a1fb793285925a8cd4b432c9da0a987836c7f822/shellingham-1.5.4-py2.py3-none-any.whl", hash = "sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686", size = 9755, upload-time = "2023-10-24T04:13:38.866Z" }, +] + +[[package]] +name = "six" +version = "1.17.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81", size = 34031, upload-time = "2024-12-04T17:35:28.174Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050, upload-time = "2024-12-04T17:35:26.475Z" }, +] + +[[package]] +name = "soupsieve" +version = "2.8.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7b/ae/2d9c981590ed9999a0d91755b47fc74f74de286b0f5cee14c9269041e6c4/soupsieve-2.8.3.tar.gz", hash = "sha256:3267f1eeea4251fb42728b6dfb746edc9acaffc4a45b27e19450b676586e8349", size = 118627, upload-time = "2026-01-20T04:27:02.457Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/46/2c/1462b1d0a634697ae9e55b3cecdcb64788e8b7d63f54d923fcd0bb140aed/soupsieve-2.8.3-py3-none-any.whl", hash = "sha256:ed64f2ba4eebeab06cc4962affce381647455978ffc1e36bb79a545b91f45a95", size = 37016, upload-time = "2026-01-20T04:27:01.012Z" }, +] + +[[package]] +name = "stack-data" +version = "0.6.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "asttokens" }, + { name = "executing" }, + { name = "pure-eval" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/28/e3/55dcc2cfbc3ca9c29519eb6884dd1415ecb53b0e934862d3559ddcb7e20b/stack_data-0.6.3.tar.gz", hash = "sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9", size = 44707, upload-time = "2023-09-30T13:58:05.479Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl", hash = "sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695", size = 24521, upload-time = "2023-09-30T13:58:03.53Z" }, +] + +[[package]] +name = "starlette" +version = "0.45.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ff/fb/2984a686808b89a6781526129a4b51266f678b2d2b97ab2d325e56116df8/starlette-0.45.3.tar.gz", hash = "sha256:2cbcba2a75806f8a41c722141486f37c28e30a0921c5f6fe4346cb0dcee1302f", size = 2574076, upload-time = "2025-01-24T11:17:36.535Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d9/61/f2b52e107b1fc8944b33ef56bf6ac4ebbe16d91b94d2b87ce013bf63fb84/starlette-0.45.3-py3-none-any.whl", hash = "sha256:dfb6d332576f136ec740296c7e8bb8c8a7125044e7c6da30744718880cdd059d", size = 71507, upload-time = "2025-01-24T11:17:34.182Z" }, +] + +[[package]] +name = "sympy" +version = "1.14.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mpmath" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/83/d3/803453b36afefb7c2bb238361cd4ae6125a569b4db67cd9e79846ba2d68c/sympy-1.14.0.tar.gz", hash = "sha256:d3d3fe8df1e5a0b42f0e7bdf50541697dbe7d23746e894990c030e2b05e72517", size = 7793921, upload-time = "2025-04-27T18:05:01.611Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a2/09/77d55d46fd61b4a135c444fc97158ef34a095e5681d0a6c10b75bf356191/sympy-1.14.0-py3-none-any.whl", hash = "sha256:e091cc3e99d2141a0ba2847328f5479b05d94a6635cb96148ccb3f34671bd8f5", size = 6299353, upload-time = "2025-04-27T18:04:59.103Z" }, +] + +[[package]] +name = "terminado" +version = "0.18.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "ptyprocess", marker = "os_name != 'nt'" }, + { name = "pywinpty", marker = "(os_name == 'nt' and platform_machine != 'aarch64' and sys_platform == 'linux') or (os_name == 'nt' and sys_platform != 'darwin' and sys_platform != 'linux')" }, + { name = "tornado" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8a/11/965c6fd8e5cc254f1fe142d547387da17a8ebfd75a3455f637c663fb38a0/terminado-0.18.1.tar.gz", hash = "sha256:de09f2c4b85de4765f7714688fff57d3e75bad1f909b589fde880460c753fd2e", size = 32701, upload-time = "2024-03-12T14:34:39.026Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6a/9e/2064975477fdc887e47ad42157e214526dcad8f317a948dee17e1659a62f/terminado-0.18.1-py3-none-any.whl", hash = "sha256:a4468e1b37bb318f8a86514f65814e1afc977cf29b3992a4500d9dd305dcceb0", size = 14154, upload-time = "2024-03-12T14:34:36.569Z" }, +] + +[[package]] +name = "threadpoolctl" +version = "3.6.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b7/4d/08c89e34946fce2aec4fbb45c9016efd5f4d7f24af8e5d93296e935631d8/threadpoolctl-3.6.0.tar.gz", hash = "sha256:8ab8b4aa3491d812b623328249fab5302a68d2d71745c8a4c719a2fcaba9f44e", size = 21274, upload-time = "2025-03-13T13:49:23.031Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/32/d5/f9a850d79b0851d1d4ef6456097579a9005b31fea68726a4ae5f2d82ddd9/threadpoolctl-3.6.0-py3-none-any.whl", hash = "sha256:43a0b8fd5a2928500110039e43a5eed8480b918967083ea48dc3ab9f13c4a7fb", size = 18638, upload-time = "2025-03-13T13:49:21.846Z" }, +] + +[[package]] +name = "tifffile" +version = "2026.3.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c5/cb/2f6d79c7576e22c116352a801f4c3c8ace5957e9aced862012430b62e14f/tifffile-2026.3.3.tar.gz", hash = "sha256:d9a1266bed6f2ee1dd0abde2018a38b4f8b2935cb843df381d70ac4eac5458b7", size = 388745, upload-time = "2026-03-03T19:14:38.134Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1a/e4/e804505f87627cd8cdae9c010c47c4485fd8c1ce31a7dd0ab7fcc4707377/tifffile-2026.3.3-py3-none-any.whl", hash = "sha256:e8be15c94273113d31ecb7aa3a39822189dd11c4967e3cc88c178f1ad2fd1170", size = 243960, upload-time = "2026-03-03T19:14:35.808Z" }, +] + +[[package]] +name = "tinycss2" +version = "1.4.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "webencodings" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/7a/fd/7a5ee21fd08ff70d3d33a5781c255cbe779659bd03278feb98b19ee550f4/tinycss2-1.4.0.tar.gz", hash = "sha256:10c0972f6fc0fbee87c3edb76549357415e94548c1ae10ebccdea16fb404a9b7", size = 87085, upload-time = "2024-10-24T14:58:29.895Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e6/34/ebdc18bae6aa14fbee1a08b63c015c72b64868ff7dae68808ab500c492e2/tinycss2-1.4.0-py3-none-any.whl", hash = "sha256:3a49cf47b7675da0b15d0c6e1df8df4ebd96e9394bb905a5775adb0d884c5289", size = 26610, upload-time = "2024-10-24T14:58:28.029Z" }, +] + +[[package]] +name = "tomlkit" +version = "0.13.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/cc/18/0bbf3884e9eaa38819ebe46a7bd25dcd56b67434402b66a58c4b8e552575/tomlkit-0.13.3.tar.gz", hash = "sha256:430cf247ee57df2b94ee3fbe588e71d362a941ebb545dec29b53961d61add2a1", size = 185207, upload-time = "2025-06-05T07:13:44.947Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bd/75/8539d011f6be8e29f339c42e633aae3cb73bffa95dd0f9adec09b9c58e85/tomlkit-0.13.3-py3-none-any.whl", hash = "sha256:c89c649d79ee40629a9fda55f8ace8c6a1b42deb912b2a8fd8d942ddadb606b0", size = 38901, upload-time = "2025-06-05T07:13:43.546Z" }, +] + +[[package]] +name = "torch" +version = "2.10.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cuda-bindings", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "filelock" }, + { name = "fsspec" }, + { name = "jinja2" }, + { name = "networkx" }, + { name = "nvidia-cublas-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "nvidia-cuda-cupti-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "nvidia-cuda-nvrtc-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "nvidia-cuda-runtime-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "nvidia-cudnn-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "nvidia-cufft-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "nvidia-cufile-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "nvidia-curand-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "nvidia-cusolver-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "nvidia-cusparse-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "nvidia-cusparselt-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "nvidia-nccl-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "nvidia-nvjitlink-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "nvidia-nvshmem-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "nvidia-nvtx-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "setuptools" }, + { name = "sympy" }, + { name = "triton", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "typing-extensions" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/ec/23/2c9fe0c9c27f7f6cb865abcea8a4568f29f00acaeadfc6a37f6801f84cb4/torch-2.10.0-2-cp313-none-macosx_11_0_arm64.whl", hash = "sha256:e521c9f030a3774ed770a9c011751fb47c4d12029a3d6522116e48431f2ff89e", size = 79498254, upload-time = "2026-02-10T21:44:44.095Z" }, + { url = "https://files.pythonhosted.org/packages/ab/c6/4dfe238342ffdcec5aef1c96c457548762d33c40b45a1ab7033bb26d2ff2/torch-2.10.0-3-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:80b1b5bfe38eb0e9f5ff09f206dcac0a87aadd084230d4a36eea5ec5232c115b", size = 915627275, upload-time = "2026-03-11T14:16:11.325Z" }, + { url = "https://files.pythonhosted.org/packages/d8/f0/72bf18847f58f877a6a8acf60614b14935e2f156d942483af1ffc081aea0/torch-2.10.0-3-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:46b3574d93a2a8134b3f5475cfb98e2eb46771794c57015f6ad1fb795ec25e49", size = 915523474, upload-time = "2026-03-11T14:17:44.422Z" }, + { url = "https://files.pythonhosted.org/packages/f4/39/590742415c3030551944edc2ddc273ea1fdfe8ffb2780992e824f1ebee98/torch-2.10.0-3-cp314-cp314-manylinux_2_28_x86_64.whl", hash = "sha256:b1d5e2aba4eb7f8e87fbe04f86442887f9167a35f092afe4c237dfcaaef6e328", size = 915632474, upload-time = "2026-03-11T14:15:13.666Z" }, + { url = "https://files.pythonhosted.org/packages/b6/8e/34949484f764dde5b222b7fe3fede43e4a6f0da9d7f8c370bb617d629ee2/torch-2.10.0-3-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:0228d20b06701c05a8f978357f657817a4a63984b0c90745def81c18aedfa591", size = 915523882, upload-time = "2026-03-11T14:14:46.311Z" }, + { url = "https://files.pythonhosted.org/packages/c9/6f/f2e91e34e3fcba2e3fc8d8f74e7d6c22e74e480bbd1db7bc8900fdf3e95c/torch-2.10.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:5c4d217b14741e40776dd7074d9006fd28b8a97ef5654db959d8635b2fe5f29b", size = 146004247, upload-time = "2026-01-21T16:24:29.335Z" }, + { url = "https://files.pythonhosted.org/packages/98/fb/5160261aeb5e1ee12ee95fe599d0541f7c976c3701d607d8fc29e623229f/torch-2.10.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:6b71486353fce0f9714ca0c9ef1c850a2ae766b409808acd58e9678a3edb7738", size = 915716445, upload-time = "2026-01-21T16:22:45.353Z" }, + { url = "https://files.pythonhosted.org/packages/6a/16/502fb1b41e6d868e8deb5b0e3ae926bbb36dab8ceb0d1b769b266ad7b0c3/torch-2.10.0-cp313-cp313-win_amd64.whl", hash = "sha256:c2ee399c644dc92ef7bc0d4f7e74b5360c37cdbe7c5ba11318dda49ffac2bc57", size = 113757050, upload-time = "2026-01-21T16:24:19.204Z" }, + { url = "https://files.pythonhosted.org/packages/1a/0b/39929b148f4824bc3ad6f9f72a29d4ad865bcf7ebfc2fa67584773e083d2/torch-2.10.0-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:3202429f58309b9fa96a614885eace4b7995729f44beb54d3e4a47773649d382", size = 79851305, upload-time = "2026-01-21T16:24:09.209Z" }, + { url = "https://files.pythonhosted.org/packages/d8/14/21fbce63bc452381ba5f74a2c0a959fdf5ad5803ccc0c654e752e0dbe91a/torch-2.10.0-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:aae1b29cd68e50a9397f5ee897b9c24742e9e306f88a807a27d617f07adb3bd8", size = 146005472, upload-time = "2026-01-21T16:22:29.022Z" }, + { url = "https://files.pythonhosted.org/packages/54/fd/b207d1c525cb570ef47f3e9f836b154685011fce11a2f444ba8a4084d042/torch-2.10.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:6021db85958db2f07ec94e1bc77212721ba4920c12a18dc552d2ae36a3eb163f", size = 915612644, upload-time = "2026-01-21T16:21:47.019Z" }, + { url = "https://files.pythonhosted.org/packages/36/53/0197f868c75f1050b199fe58f9bf3bf3aecac9b4e85cc9c964383d745403/torch-2.10.0-cp313-cp313t-win_amd64.whl", hash = "sha256:ff43db38af76fda183156153983c9a096fc4c78d0cd1e07b14a2314c7f01c2c8", size = 113997015, upload-time = "2026-01-21T16:23:00.767Z" }, + { url = "https://files.pythonhosted.org/packages/0e/13/e76b4d9c160e89fff48bf16b449ea324bda84745d2ab30294c37c2434c0d/torch-2.10.0-cp313-none-macosx_11_0_arm64.whl", hash = "sha256:cdf2a523d699b70d613243211ecaac14fe9c5df8a0b0a9c02add60fb2a413e0f", size = 79498248, upload-time = "2026-01-21T16:23:09.315Z" }, + { url = "https://files.pythonhosted.org/packages/4f/93/716b5ac0155f1be70ed81bacc21269c3ece8dba0c249b9994094110bfc51/torch-2.10.0-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:bf0d9ff448b0218e0433aeb198805192346c4fd659c852370d5cc245f602a06a", size = 79464992, upload-time = "2026-01-21T16:23:05.162Z" }, + { url = "https://files.pythonhosted.org/packages/69/2b/51e663ff190c9d16d4a8271203b71bc73a16aa7619b9f271a69b9d4a936b/torch-2.10.0-cp314-cp314-manylinux_2_28_aarch64.whl", hash = "sha256:233aed0659a2503b831d8a67e9da66a62c996204c0bba4f4c442ccc0c68a3f60", size = 146018567, upload-time = "2026-01-21T16:22:23.393Z" }, + { url = "https://files.pythonhosted.org/packages/5e/cd/4b95ef7f293b927c283db0b136c42be91c8ec6845c44de0238c8c23bdc80/torch-2.10.0-cp314-cp314-manylinux_2_28_x86_64.whl", hash = "sha256:682497e16bdfa6efeec8cde66531bc8d1fbbbb4d8788ec6173c089ed3cc2bfe5", size = 915721646, upload-time = "2026-01-21T16:21:16.983Z" }, + { url = "https://files.pythonhosted.org/packages/56/97/078a007208f8056d88ae43198833469e61a0a355abc0b070edd2c085eb9a/torch-2.10.0-cp314-cp314-win_amd64.whl", hash = "sha256:6528f13d2a8593a1a412ea07a99812495bec07e9224c28b2a25c0a30c7da025c", size = 113752373, upload-time = "2026-01-21T16:22:13.471Z" }, + { url = "https://files.pythonhosted.org/packages/d8/94/71994e7d0d5238393df9732fdab607e37e2b56d26a746cb59fdb415f8966/torch-2.10.0-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:f5ab4ba32383061be0fb74bda772d470140a12c1c3b58a0cfbf3dae94d164c28", size = 79850324, upload-time = "2026-01-21T16:22:09.494Z" }, + { url = "https://files.pythonhosted.org/packages/e2/65/1a05346b418ea8ccd10360eef4b3e0ce688fba544e76edec26913a8d0ee0/torch-2.10.0-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:716b01a176c2a5659c98f6b01bf868244abdd896526f1c692712ab36dbaf9b63", size = 146006482, upload-time = "2026-01-21T16:22:18.42Z" }, + { url = "https://files.pythonhosted.org/packages/1d/b9/5f6f9d9e859fc3235f60578fa64f52c9c6e9b4327f0fe0defb6de5c0de31/torch-2.10.0-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:d8f5912ba938233f86361e891789595ff35ca4b4e2ac8fe3670895e5976731d6", size = 915613050, upload-time = "2026-01-21T16:20:49.035Z" }, + { url = "https://files.pythonhosted.org/packages/66/4d/35352043ee0eaffdeff154fad67cd4a31dbed7ff8e3be1cc4549717d6d51/torch-2.10.0-cp314-cp314t-win_amd64.whl", hash = "sha256:71283a373f0ee2c89e0f0d5f446039bdabe8dbc3c9ccf35f0f784908b0acd185", size = 113995816, upload-time = "2026-01-21T16:22:05.312Z" }, +] + +[[package]] +name = "torchvision" +version = "0.25.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, + { name = "pillow" }, + { name = "torch" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/f5/5b/1562a04a6a5a4cf8cf40016a0cdeda91ede75d6962cff7f809a85ae966a5/torchvision-0.25.0-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:24e11199e4d84ba9c5ee7825ebdf1cd37ce8deec225117f10243cae984ced3ec", size = 1874918, upload-time = "2026-01-21T16:27:39.02Z" }, + { url = "https://files.pythonhosted.org/packages/36/b1/3d6c42f62c272ce34fcce609bb8939bdf873dab5f1b798fd4e880255f129/torchvision-0.25.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:5f271136d2d2c0b7a24c5671795c6e4fd8da4e0ea98aeb1041f62bc04c4370ef", size = 2309106, upload-time = "2026-01-21T16:27:30.624Z" }, + { url = "https://files.pythonhosted.org/packages/c7/60/59bb9c8b67cce356daeed4cb96a717caa4f69c9822f72e223a0eae7a9bd9/torchvision-0.25.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:855c0dc6d37f462482da7531c6788518baedca1e0847f3df42a911713acdfe52", size = 8071522, upload-time = "2026-01-21T16:27:29.392Z" }, + { url = "https://files.pythonhosted.org/packages/32/a5/9a9b1de0720f884ea50dbf9acb22cbe5312e51d7b8c4ac6ba9b51efd9bba/torchvision-0.25.0-cp313-cp313-win_amd64.whl", hash = "sha256:cef0196be31be421f6f462d1e9da1101be7332d91984caa6f8022e6c78a5877f", size = 4321911, upload-time = "2026-01-21T16:27:35.195Z" }, + { url = "https://files.pythonhosted.org/packages/52/99/dca81ed21ebaeff2b67cc9f815a20fdaa418b69f5f9ea4c6ed71721470db/torchvision-0.25.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a8f8061284395ce31bcd460f2169013382ccf411148ceb2ee38e718e9860f5a7", size = 1896209, upload-time = "2026-01-21T16:27:32.159Z" }, + { url = "https://files.pythonhosted.org/packages/28/cc/2103149761fdb4eaed58a53e8437b2d716d48f05174fab1d9fcf1e2a2244/torchvision-0.25.0-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:146d02c9876858420adf41f3189fe90e3d6a409cbfa65454c09f25fb33bf7266", size = 2310735, upload-time = "2026-01-21T16:27:22.327Z" }, + { url = "https://files.pythonhosted.org/packages/76/ad/f4c985ad52ddd3b22711c588501be1b330adaeaf6850317f66751711b78c/torchvision-0.25.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:c4d395cb2c4a2712f6eb93a34476cdf7aae74bb6ea2ea1917f858e96344b00aa", size = 8089557, upload-time = "2026-01-21T16:27:27.666Z" }, + { url = "https://files.pythonhosted.org/packages/63/cc/0ea68b5802e5e3c31f44b307e74947bad5a38cc655231d845534ed50ddb8/torchvision-0.25.0-cp313-cp313t-win_amd64.whl", hash = "sha256:5e6b449e9fa7d642142c0e27c41e5a43b508d57ed8e79b7c0a0c28652da8678c", size = 4344260, upload-time = "2026-01-21T16:27:17.018Z" }, + { url = "https://files.pythonhosted.org/packages/9e/1f/fa839532660e2602b7e704d65010787c5bb296258b44fa8b9c1cd6175e7d/torchvision-0.25.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:620a236288d594dcec7634c754484542dc0a5c1b0e0b83a34bda5e91e9b7c3a1", size = 1896193, upload-time = "2026-01-21T16:27:24.785Z" }, + { url = "https://files.pythonhosted.org/packages/80/ed/d51889da7ceaf5ff7a0574fb28f9b6b223df19667265395891f81b364ab3/torchvision-0.25.0-cp314-cp314-manylinux_2_28_aarch64.whl", hash = "sha256:0b5e7f50002a8145a98c5694a018e738c50e2972608310c7e88e1bd4c058f6ce", size = 2309331, upload-time = "2026-01-21T16:27:19.97Z" }, + { url = "https://files.pythonhosted.org/packages/90/a5/f93fcffaddd8f12f9e812256830ec9c9ca65abbf1bc369379f9c364d1ff4/torchvision-0.25.0-cp314-cp314-manylinux_2_28_x86_64.whl", hash = "sha256:632db02300e83793812eee4f61ae6a2686dab10b4cfd628b620dc47747aa9d03", size = 8088713, upload-time = "2026-01-21T16:27:15.281Z" }, + { url = "https://files.pythonhosted.org/packages/1f/eb/d0096eed5690d962853213f2ee00d91478dfcb586b62dbbb449fb8abc3a6/torchvision-0.25.0-cp314-cp314-win_amd64.whl", hash = "sha256:d1abd5ed030c708f5dbf4812ad5f6fbe9384b63c40d6bd79f8df41a4a759a917", size = 4325058, upload-time = "2026-01-21T16:27:26.165Z" }, + { url = "https://files.pythonhosted.org/packages/97/36/96374a4c7ab50dea9787ce987815614ccfe988a42e10ac1a2e3e5b60319a/torchvision-0.25.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:ad9a8a5877782944d99186e4502a614770fe906626d76e9cd32446a0ac3075f2", size = 1896207, upload-time = "2026-01-21T16:27:23.383Z" }, + { url = "https://files.pythonhosted.org/packages/b5/e2/7abb10a867db79b226b41da419b63b69c0bd5b82438c4a4ed50e084c552f/torchvision-0.25.0-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:40a122c3cf4d14b651f095e0f672b688dde78632783fc5cd3d4d5e4f6a828563", size = 2310741, upload-time = "2026-01-21T16:27:18.712Z" }, + { url = "https://files.pythonhosted.org/packages/08/e6/0927784e6ffc340b6676befde1c60260bd51641c9c574b9298d791a9cda4/torchvision-0.25.0-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:846890161b825b38aa85fc37fb3ba5eea74e7091ff28bab378287111483b6443", size = 8089772, upload-time = "2026-01-21T16:27:14.048Z" }, + { url = "https://files.pythonhosted.org/packages/b6/37/e7ca4ec820d434c0f23f824eb29f0676a0c3e7a118f1514f5b949c3356da/torchvision-0.25.0-cp314-cp314t-win_amd64.whl", hash = "sha256:f07f01d27375ad89d72aa2b3f2180f07da95dd9d2e4c758e015c0acb2da72977", size = 4425879, upload-time = "2026-01-21T16:27:12.579Z" }, +] + +[[package]] +name = "tornado" +version = "6.5.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/37/1d/0a336abf618272d53f62ebe274f712e213f5a03c0b2339575430b8362ef2/tornado-6.5.4.tar.gz", hash = "sha256:a22fa9047405d03260b483980635f0b041989d8bcc9a313f8fe18b411d84b1d7", size = 513632, upload-time = "2025-12-15T19:21:03.836Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ab/a9/e94a9d5224107d7ce3cc1fab8d5dc97f5ea351ccc6322ee4fb661da94e35/tornado-6.5.4-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:d6241c1a16b1c9e4cc28148b1cda97dd1c6cb4fb7068ac1bedc610768dff0ba9", size = 443909, upload-time = "2025-12-15T19:20:48.382Z" }, + { url = "https://files.pythonhosted.org/packages/db/7e/f7b8d8c4453f305a51f80dbb49014257bb7d28ccb4bbb8dd328ea995ecad/tornado-6.5.4-cp39-abi3-macosx_10_9_x86_64.whl", hash = "sha256:2d50f63dda1d2cac3ae1fa23d254e16b5e38153758470e9956cbc3d813d40843", size = 442163, upload-time = "2025-12-15T19:20:49.791Z" }, + { url = "https://files.pythonhosted.org/packages/ba/b5/206f82d51e1bfa940ba366a8d2f83904b15942c45a78dd978b599870ab44/tornado-6.5.4-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d1cf66105dc6acb5af613c054955b8137e34a03698aa53272dbda4afe252be17", size = 445746, upload-time = "2025-12-15T19:20:51.491Z" }, + { url = "https://files.pythonhosted.org/packages/8e/9d/1a3338e0bd30ada6ad4356c13a0a6c35fbc859063fa7eddb309183364ac1/tornado-6.5.4-cp39-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:50ff0a58b0dc97939d29da29cd624da010e7f804746621c78d14b80238669335", size = 445083, upload-time = "2025-12-15T19:20:52.778Z" }, + { url = "https://files.pythonhosted.org/packages/50/d4/e51d52047e7eb9a582da59f32125d17c0482d065afd5d3bc435ff2120dc5/tornado-6.5.4-cp39-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e5fb5e04efa54cf0baabdd10061eb4148e0be137166146fff835745f59ab9f7f", size = 445315, upload-time = "2025-12-15T19:20:53.996Z" }, + { url = "https://files.pythonhosted.org/packages/27/07/2273972f69ca63dbc139694a3fc4684edec3ea3f9efabf77ed32483b875c/tornado-6.5.4-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:9c86b1643b33a4cd415f8d0fe53045f913bf07b4a3ef646b735a6a86047dda84", size = 446003, upload-time = "2025-12-15T19:20:56.101Z" }, + { url = "https://files.pythonhosted.org/packages/d1/83/41c52e47502bf7260044413b6770d1a48dda2f0246f95ee1384a3cd9c44a/tornado-6.5.4-cp39-abi3-musllinux_1_2_i686.whl", hash = "sha256:6eb82872335a53dd063a4f10917b3efd28270b56a33db69009606a0312660a6f", size = 445412, upload-time = "2025-12-15T19:20:57.398Z" }, + { url = "https://files.pythonhosted.org/packages/10/c7/bc96917f06cbee182d44735d4ecde9c432e25b84f4c2086143013e7b9e52/tornado-6.5.4-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:6076d5dda368c9328ff41ab5d9dd3608e695e8225d1cd0fd1e006f05da3635a8", size = 445392, upload-time = "2025-12-15T19:20:58.692Z" }, + { url = "https://files.pythonhosted.org/packages/0c/1a/d7592328d037d36f2d2462f4bc1fbb383eec9278bc786c1b111cbbd44cfa/tornado-6.5.4-cp39-abi3-win32.whl", hash = "sha256:1768110f2411d5cd281bac0a090f707223ce77fd110424361092859e089b38d1", size = 446481, upload-time = "2025-12-15T19:21:00.008Z" }, + { url = "https://files.pythonhosted.org/packages/d6/6d/c69be695a0a64fd37a97db12355a035a6d90f79067a3cf936ec2b1dc38cd/tornado-6.5.4-cp39-abi3-win_amd64.whl", hash = "sha256:fa07d31e0cd85c60713f2b995da613588aa03e1303d75705dca6af8babc18ddc", size = 446886, upload-time = "2025-12-15T19:21:01.287Z" }, + { url = "https://files.pythonhosted.org/packages/50/49/8dc3fd90902f70084bd2cd059d576ddb4f8bb44c2c7c0e33a11422acb17e/tornado-6.5.4-cp39-abi3-win_arm64.whl", hash = "sha256:053e6e16701eb6cbe641f308f4c1a9541f91b6261991160391bfc342e8a551a1", size = 445910, upload-time = "2025-12-15T19:21:02.571Z" }, +] + +[[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, upload-time = "2026-02-03T17:35:53.048Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/16/e1/3079a9ff9b8e11b846c6ac5c8b5bfb7ff225eee721825310c91b3b50304f/tqdm-4.67.3-py3-none-any.whl", hash = "sha256:ee1e4c0e59148062281c49d80b25b67771a127c85fc9676d3be5f243206826bf", size = 78374, upload-time = "2026-02-03T17:35:50.982Z" }, +] + +[[package]] +name = "traitlets" +version = "5.14.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/eb/79/72064e6a701c2183016abbbfedaba506d81e30e232a68c9f0d6f6fcd1574/traitlets-5.14.3.tar.gz", hash = "sha256:9ed0579d3502c94b4b3732ac120375cda96f923114522847de4b3bb98b96b6b7", size = 161621, upload-time = "2024-04-19T11:11:49.746Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/00/c0/8f5d070730d7836adc9c9b6408dec68c6ced86b304a9b26a14df072a6e8c/traitlets-5.14.3-py3-none-any.whl", hash = "sha256:b74e89e397b1ed28cc831db7aea759ba6640cb3de13090ca145426688ff1ac4f", size = 85359, upload-time = "2024-04-19T11:11:46.763Z" }, +] + +[[package]] +name = "triton" +version = "3.6.0" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f9/0b/37d991d8c130ce81a8728ae3c25b6e60935838e9be1b58791f5997b24a54/triton-3.6.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:10c7f76c6e72d2ef08df639e3d0d30729112f47a56b0c81672edc05ee5116ac9", size = 188289450, upload-time = "2026-01-20T16:00:49.136Z" }, + { url = "https://files.pythonhosted.org/packages/35/f8/9c66bfc55361ec6d0e4040a0337fb5924ceb23de4648b8a81ae9d33b2b38/triton-3.6.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d002e07d7180fd65e622134fbd980c9a3d4211fb85224b56a0a0efbd422ab72f", size = 188400296, upload-time = "2026-01-20T16:00:56.042Z" }, + { url = "https://files.pythonhosted.org/packages/df/3d/9e7eee57b37c80cec63322c0231bb6da3cfe535a91d7a4d64896fcb89357/triton-3.6.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a17a5d5985f0ac494ed8a8e54568f092f7057ef60e1b0fa09d3fd1512064e803", size = 188273063, upload-time = "2026-01-20T16:01:07.278Z" }, + { url = "https://files.pythonhosted.org/packages/f6/56/6113c23ff46c00aae423333eb58b3e60bdfe9179d542781955a5e1514cb3/triton-3.6.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:46bd1c1af4b6704e554cad2eeb3b0a6513a980d470ccfa63189737340c7746a7", size = 188397994, upload-time = "2026-01-20T16:01:14.236Z" }, +] + +[[package]] +name = "ttach" +version = "0.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/91/5d/4c49e0eca4206bc25eff4ba89cee51b781466e2e3aad2f1057fd5d2634be/ttach-0.0.3.tar.gz", hash = "sha256:120c4dd881feb0e9c8dd63b154f2655891c3e20689b68a94d162bfd5557bcb48", size = 9600, upload-time = "2020-07-09T14:44:09.035Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8d/a3/ee48a184a185c1897c582c72240c2c8a0d0aeb5f8051a71d4e4cd930c52d/ttach-0.0.3-py3-none-any.whl", hash = "sha256:7000bb4334f856b0c79a341df386c92f1c76faf091043cc3cd7f541d2149faf8", size = 9839, upload-time = "2020-07-09T14:44:08.006Z" }, +] + +[[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, upload-time = "2026-02-21T16:54:40.609Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4a/91/48db081e7a63bb37284f9fbcefda7c44c277b18b0e13fbc36ea2335b71e6/typer-0.24.1-py3-none-any.whl", hash = "sha256:112c1f0ce578bfb4cab9ffdabc68f031416ebcc216536611ba21f04e9aa84c9e", size = 56085, upload-time = "2026-02-21T16:54:41.616Z" }, +] + +[[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, upload-time = "2025-08-25T13:49:26.313Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548", size = 44614, upload-time = "2025-08-25T13:49:24.86Z" }, +] + +[[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, upload-time = "2025-12-13T17:45:35.667Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c7/b0/003792df09decd6849a5e39c28b513c06e84436a54440380862b5aeff25d/tzdata-2025.3-py2.py3-none-any.whl", hash = "sha256:06a47e5700f3081aab02b2e513160914ff0694bce9947d6b76ebd6bf57cfc5d1", size = 348521, upload-time = "2025-12-13T17:45:33.889Z" }, +] + +[[package]] +name = "uri-template" +version = "1.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/31/c7/0336f2bd0bcbada6ccef7aaa25e443c118a704f828a0620c6fa0207c1b64/uri-template-1.3.0.tar.gz", hash = "sha256:0e00f8eb65e18c7de20d595a14336e9f337ead580c70934141624b6d1ffdacc7", size = 21678, upload-time = "2023-06-21T01:49:05.374Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e7/00/3fca040d7cf8a32776d3d81a00c8ee7457e00f80c649f1e4a863c8321ae9/uri_template-1.3.0-py3-none-any.whl", hash = "sha256:a44a133ea12d44a0c0f06d7d42a52d71282e77e2f937d8abd5655b8d56fc1363", size = 11140, upload-time = "2023-06-21T01:49:03.467Z" }, +] + +[[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, upload-time = "2026-01-07T16:24:43.925Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/39/08/aaaad47bc4e9dc8c725e68f9d04865dbcb2052843ff09c97b08904852d84/urllib3-2.6.3-py3-none-any.whl", hash = "sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4", size = 131584, upload-time = "2026-01-07T16:24:42.685Z" }, +] + +[[package]] +name = "uvicorn" +version = "0.41.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, + { name = "h11" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/32/ce/eeb58ae4ac36fe09e3842eb02e0eb676bf2c53ae062b98f1b2531673efdd/uvicorn-0.41.0.tar.gz", hash = "sha256:09d11cf7008da33113824ee5a1c6422d89fbc2ff476540d69a34c87fab8b571a", size = 82633, upload-time = "2026-02-16T23:07:24.1Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/83/e4/d04a086285c20886c0daad0e026f250869201013d18f81d9ff5eada73a88/uvicorn-0.41.0-py3-none-any.whl", hash = "sha256:29e35b1d2c36a04b9e180d4007ede3bcb32a85fbdfd6c6aeb3f26839de088187", size = 68783, upload-time = "2026-02-16T23:07:22.357Z" }, +] + +[[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, upload-time = "2026-02-06T19:19:40.919Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/68/5a/199c59e0a824a3db2b89c5d2dade7ab5f9624dbf6448dc291b46d5ec94d3/wcwidth-0.6.0-py3-none-any.whl", hash = "sha256:1a3a1e510b553315f8e146c54764f4fb6264ffad731b3d78088cdb1478ffbdad", size = 94189, upload-time = "2026-02-06T19:19:39.646Z" }, +] + +[[package]] +name = "webcolors" +version = "25.10.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/1d/7a/eb316761ec35664ea5174709a68bbd3389de60d4a1ebab8808bfc264ed67/webcolors-25.10.0.tar.gz", hash = "sha256:62abae86504f66d0f6364c2a8520de4a0c47b80c03fc3a5f1815fedbef7c19bf", size = 53491, upload-time = "2025-10-31T07:51:03.977Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e2/cc/e097523dd85c9cf5d354f78310927f1656c422bd7b2613b2db3e3f9a0f2c/webcolors-25.10.0-py3-none-any.whl", hash = "sha256:032c727334856fc0b968f63daa252a1ac93d33db2f5267756623c210e57a4f1d", size = 14905, upload-time = "2025-10-31T07:51:01.778Z" }, +] + +[[package]] +name = "webencodings" +version = "0.5.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/0b/02/ae6ceac1baeda530866a85075641cec12989bd8d31af6d5ab4a3e8c92f47/webencodings-0.5.1.tar.gz", hash = "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923", size = 9721, upload-time = "2017-04-05T20:21:34.189Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f4/24/2a3e3df732393fed8b3ebf2ec078f05546de641fe1b667ee316ec1dcf3b7/webencodings-0.5.1-py2.py3-none-any.whl", hash = "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78", size = 11774, upload-time = "2017-04-05T20:21:32.581Z" }, +] + +[[package]] +name = "websocket-client" +version = "1.9.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/2c/41/aa4bf9664e4cda14c3b39865b12251e8e7d239f4cd0e3cc1b6c2ccde25c1/websocket_client-1.9.0.tar.gz", hash = "sha256:9e813624b6eb619999a97dc7958469217c3176312b3a16a4bd1bc7e08a46ec98", size = 70576, upload-time = "2025-10-07T21:16:36.495Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/34/db/b10e48aa8fff7407e67470363eac595018441cf32d5e1001567a7aeba5d2/websocket_client-1.9.0-py3-none-any.whl", hash = "sha256:af248a825037ef591efbf6ed20cc5faa03d3b47b9e5a2230a529eeee1c1fc3ef", size = 82616, upload-time = "2025-10-07T21:16:34.951Z" }, +] + +[[package]] +name = "websockets" +version = "14.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/94/54/8359678c726243d19fae38ca14a334e740782336c9f19700858c4eb64a1e/websockets-14.2.tar.gz", hash = "sha256:5059ed9c54945efb321f097084b4c7e52c246f2c869815876a69d1efc4ad6eb5", size = 164394, upload-time = "2025-01-19T21:00:56.431Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/82/94/4f9b55099a4603ac53c2912e1f043d6c49d23e94dd82a9ce1eb554a90215/websockets-14.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:6f1372e511c7409a542291bce92d6c83320e02c9cf392223272287ce55bc224e", size = 163102, upload-time = "2025-01-19T20:59:52.177Z" }, + { url = "https://files.pythonhosted.org/packages/8e/b7/7484905215627909d9a79ae07070057afe477433fdacb59bf608ce86365a/websockets-14.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:4da98b72009836179bb596a92297b1a61bb5a830c0e483a7d0766d45070a08ad", size = 160766, upload-time = "2025-01-19T20:59:54.368Z" }, + { url = "https://files.pythonhosted.org/packages/a3/a4/edb62efc84adb61883c7d2c6ad65181cb087c64252138e12d655989eec05/websockets-14.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8a86a269759026d2bde227652b87be79f8a734e582debf64c9d302faa1e9f03", size = 160998, upload-time = "2025-01-19T20:59:56.671Z" }, + { url = "https://files.pythonhosted.org/packages/f5/79/036d320dc894b96af14eac2529967a6fc8b74f03b83c487e7a0e9043d842/websockets-14.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:86cf1aaeca909bf6815ea714d5c5736c8d6dd3a13770e885aafe062ecbd04f1f", size = 170780, upload-time = "2025-01-19T20:59:58.085Z" }, + { url = "https://files.pythonhosted.org/packages/63/75/5737d21ee4dd7e4b9d487ee044af24a935e36a9ff1e1419d684feedcba71/websockets-14.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9b0f6c3ba3b1240f602ebb3971d45b02cc12bd1845466dd783496b3b05783a5", size = 169717, upload-time = "2025-01-19T20:59:59.545Z" }, + { url = "https://files.pythonhosted.org/packages/2c/3c/bf9b2c396ed86a0b4a92ff4cdaee09753d3ee389be738e92b9bbd0330b64/websockets-14.2-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:669c3e101c246aa85bc8534e495952e2ca208bd87994650b90a23d745902db9a", size = 170155, upload-time = "2025-01-19T21:00:01.887Z" }, + { url = "https://files.pythonhosted.org/packages/75/2d/83a5aca7247a655b1da5eb0ee73413abd5c3a57fc8b92915805e6033359d/websockets-14.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:eabdb28b972f3729348e632ab08f2a7b616c7e53d5414c12108c29972e655b20", size = 170495, upload-time = "2025-01-19T21:00:04.064Z" }, + { url = "https://files.pythonhosted.org/packages/79/dd/699238a92761e2f943885e091486378813ac8f43e3c84990bc394c2be93e/websockets-14.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2066dc4cbcc19f32c12a5a0e8cc1b7ac734e5b64ac0a325ff8353451c4b15ef2", size = 169880, upload-time = "2025-01-19T21:00:05.695Z" }, + { url = "https://files.pythonhosted.org/packages/c8/c9/67a8f08923cf55ce61aadda72089e3ed4353a95a3a4bc8bf42082810e580/websockets-14.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ab95d357cd471df61873dadf66dd05dd4709cae001dd6342edafc8dc6382f307", size = 169856, upload-time = "2025-01-19T21:00:07.192Z" }, + { url = "https://files.pythonhosted.org/packages/17/b1/1ffdb2680c64e9c3921d99db460546194c40d4acbef999a18c37aa4d58a3/websockets-14.2-cp313-cp313-win32.whl", hash = "sha256:a9e72fb63e5f3feacdcf5b4ff53199ec8c18d66e325c34ee4c551ca748623bbc", size = 163974, upload-time = "2025-01-19T21:00:08.698Z" }, + { url = "https://files.pythonhosted.org/packages/14/13/8b7fc4cb551b9cfd9890f0fd66e53c18a06240319915533b033a56a3d520/websockets-14.2-cp313-cp313-win_amd64.whl", hash = "sha256:b439ea828c4ba99bb3176dc8d9b933392a2413c0f6b149fdcba48393f573377f", size = 164420, upload-time = "2025-01-19T21:00:10.182Z" }, + { url = "https://files.pythonhosted.org/packages/7b/c8/d529f8a32ce40d98309f4470780631e971a5a842b60aec864833b3615786/websockets-14.2-py3-none-any.whl", hash = "sha256:7a6ceec4ea84469f15cf15807a747e9efe57e369c384fa86e022b3bea679b79b", size = 157416, upload-time = "2025-01-19T21:00:54.843Z" }, +] + +[[package]] +name = "werkzeug" +version = "3.1.6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markupsafe" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/61/f1/ee81806690a87dab5f5653c1f146c92bc066d7f4cebc603ef88eb9e13957/werkzeug-3.1.6.tar.gz", hash = "sha256:210c6bede5a420a913956b4791a7f4d6843a43b6fcee4dfa08a65e93007d0d25", size = 864736, upload-time = "2026-02-19T15:17:18.884Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4d/ec/d58832f89ede95652fd01f4f24236af7d32b70cab2196dfcc2d2fd13c5c2/werkzeug-3.1.6-py3-none-any.whl", hash = "sha256:7ddf3357bb9564e407607f988f683d72038551200c704012bb9a4c523d42f131", size = 225166, upload-time = "2026-02-19T15:17:17.475Z" }, +] + +[[package]] +name = "widgetsnbextension" +version = "4.0.15" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/bd/f4/c67440c7fb409a71b7404b7aefcd7569a9c0d6bd071299bf4198ae7a5d95/widgetsnbextension-4.0.15.tar.gz", hash = "sha256:de8610639996f1567952d763a5a41af8af37f2575a41f9852a38f947eb82a3b9", size = 1097402, upload-time = "2025-11-01T21:15:55.178Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3f/0e/fa3b193432cfc60c93b42f3be03365f5f909d2b3ea410295cf36df739e31/widgetsnbextension-4.0.15-py3-none-any.whl", hash = "sha256:8156704e4346a571d9ce73b84bee86a29906c9abfd7223b7228a28899ccf3366", size = 2196503, upload-time = "2025-11-01T21:15:53.565Z" }, +]