Spaces:
Sleeping
Sleeping
Merge feat/als-intake-and-api-fixes: ALS intake improvements and API fixes
Browse files- Add FVC % predicted, ALS subtype, and gene mutation fields to intake
- Add PI name and contact info (phone/email) to trial results
- Fix ClinicalTrials.gov API filter (aggFilters can't combine studyType + phase)
- Require ZIP code to always be confirmed by patient (never inferred)
- Restrict results to tool output only — no hallucinated hospitals
- Resolve all lingering merge conflict markers in pyproject.toml and uv.lock
- Consolidate README with HF Space YAML frontmatter and updated setup guide
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- README.md +0 -106
- clinical_trials_guru.py +67 -16
- pyproject.toml +0 -3
- uv.lock +102 -168
README.md
CHANGED
|
@@ -1,104 +1,3 @@
|
|
| 1 |
-
<<<<<<< HEAD
|
| 2 |
-
# Beacon — Rare Disease Clinical Trial Finder
|
| 3 |
-
|
| 4 |
-
Beacon is a conversational AI assistant that helps patients with rare diseases find relevant recruiting clinical trials near them. It conducts a warm intake interview, geocodes the patient's location, queries [ClinicalTrials.gov](https://clinicaltrials.gov) in real time, and produces a ranked report of the closest matching trials.
|
| 5 |
-
|
| 6 |
-
## How it works
|
| 7 |
-
|
| 8 |
-
1. **Intake agent** (Claude Sonnet) — interviews the patient conversationally to collect disease, age, symptom onset, location, and optional benchmark scores.
|
| 9 |
-
2. **Research agent** (Claude Opus) — searches ClinicalTrials.gov via the official v2 API, retrying with synonyms or wider radii if results are sparse, then outputs a ranked trial report with eligibility notes and next steps.
|
| 10 |
-
3. **LangGraph** orchestrates the two-node pipeline (intake → research).
|
| 11 |
-
|
| 12 |
-
## Project setup
|
| 13 |
-
|
| 14 |
-
### Prerequisites
|
| 15 |
-
|
| 16 |
-
- Python 3.11+
|
| 17 |
-
- [`uv`](https://docs.astral.sh/uv/) (recommended) or `pip`
|
| 18 |
-
|
| 19 |
-
### 1. Clone the repo
|
| 20 |
-
|
| 21 |
-
```bash
|
| 22 |
-
git clone <repo-url>
|
| 23 |
-
cd beacon
|
| 24 |
-
```
|
| 25 |
-
|
| 26 |
-
### 2. Install dependencies
|
| 27 |
-
|
| 28 |
-
```bash
|
| 29 |
-
uv sync
|
| 30 |
-
```
|
| 31 |
-
|
| 32 |
-
Or with pip:
|
| 33 |
-
|
| 34 |
-
```bash
|
| 35 |
-
pip install -e .
|
| 36 |
-
```
|
| 37 |
-
|
| 38 |
-
### 3. Configure API keys
|
| 39 |
-
|
| 40 |
-
Copy the example env file and fill in your keys:
|
| 41 |
-
|
| 42 |
-
```bash
|
| 43 |
-
cp .env.example .env
|
| 44 |
-
```
|
| 45 |
-
|
| 46 |
-
Open `.env` and replace the placeholder values:
|
| 47 |
-
|
| 48 |
-
```env
|
| 49 |
-
# ⚠️ Replace with your actual API keys — never commit real keys to version control
|
| 50 |
-
OPENAI_API_KEY=your_openai_api_key_here
|
| 51 |
-
ANTHROPIC_API_KEY=your_anthropic_api_key_here
|
| 52 |
-
```
|
| 53 |
-
|
| 54 |
-
- Get your Anthropic key at <https://console.anthropic.com>
|
| 55 |
-
- Get your OpenAI key at <https://platform.openai.com/api-keys>
|
| 56 |
-
|
| 57 |
-
### 4. Run
|
| 58 |
-
|
| 59 |
-
```bash
|
| 60 |
-
uv run python main.py
|
| 61 |
-
```
|
| 62 |
-
|
| 63 |
-
Or if using a plain virtualenv:
|
| 64 |
-
|
| 65 |
-
```bash
|
| 66 |
-
python main.py
|
| 67 |
-
```
|
| 68 |
-
|
| 69 |
-
## Configuration
|
| 70 |
-
|
| 71 |
-
| Environment variable | Default | Description |
|
| 72 |
-
|----------------------|-------------|--------------------------------------------------|
|
| 73 |
-
| `ANTHROPIC_API_KEY` | *(required)*| Anthropic API key |
|
| 74 |
-
| `OPENAI_API_KEY` | *(optional)*| OpenAI API key (only needed for OpenAI provider) |
|
| 75 |
-
| `LLM_PROVIDER` | `anthropic` | LLM backend: `anthropic` or `openai` |
|
| 76 |
-
|
| 77 |
-
To switch to the OpenAI backend, set `LLM_PROVIDER=openai` in `.env`.
|
| 78 |
-
|
| 79 |
-
## Project structure
|
| 80 |
-
|
| 81 |
-
```
|
| 82 |
-
beacon/
|
| 83 |
-
├── main.py # Entry point
|
| 84 |
-
├── clinical_trials_guru.py # Intake + research agents, LangGraph pipeline
|
| 85 |
-
├── llm.py # LLM provider abstraction (Anthropic / OpenAI)
|
| 86 |
-
├── pyproject.toml
|
| 87 |
-
├── .env # Local secrets — not committed
|
| 88 |
-
└── .gitignore
|
| 89 |
-
```
|
| 90 |
-
|
| 91 |
-
## Dependencies
|
| 92 |
-
|
| 93 |
-
| Package | Purpose |
|
| 94 |
-
|------------------|--------------------------------------|
|
| 95 |
-
| `anthropic` | Claude API client |
|
| 96 |
-
| `openai` | OpenAI API client |
|
| 97 |
-
| `langgraph` | Agent pipeline orchestration |
|
| 98 |
-
| `rich` | Terminal UI (panels, markdown, etc.) |
|
| 99 |
-
| `python-dotenv` | `.env` file loading |
|
| 100 |
-
| `httpx` | HTTP client for ClinicalTrials.gov |
|
| 101 |
-
=======
|
| 102 |
---
|
| 103 |
title: Beacon Trial Finder
|
| 104 |
emoji: 📚
|
|
@@ -113,10 +12,6 @@ license: mit
|
|
| 113 |
short_description: help patients with rare disease to find clinical trials
|
| 114 |
---
|
| 115 |
|
| 116 |
-
<<<<<<< HEAD
|
| 117 |
-
Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
|
| 118 |
-
>>>>>>> 2a6ee87 (initial commit)
|
| 119 |
-
=======
|
| 120 |
# Beacon — Rare Disease Clinical Trial Finder
|
| 121 |
|
| 122 |
Beacon is a conversational AI assistant that helps patients with rare diseases find relevant recruiting clinical trials near them. It conducts a warm intake interview, geocodes the patient's location, queries [ClinicalTrials.gov](https://clinicaltrials.gov) in real time, and produces a ranked report of the closest matching trials.
|
|
@@ -215,4 +110,3 @@ beacon/
|
|
| 215 |
├── pyproject.toml
|
| 216 |
└── .env # Local secrets — not committed
|
| 217 |
```
|
| 218 |
-
>>>>>>> f8d77e4 (Initial release: Beacon rare disease clinical trial finder)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
---
|
| 2 |
title: Beacon Trial Finder
|
| 3 |
emoji: 📚
|
|
|
|
| 12 |
short_description: help patients with rare disease to find clinical trials
|
| 13 |
---
|
| 14 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 15 |
# Beacon — Rare Disease Clinical Trial Finder
|
| 16 |
|
| 17 |
Beacon is a conversational AI assistant that helps patients with rare diseases find relevant recruiting clinical trials near them. It conducts a warm intake interview, geocodes the patient's location, queries [ClinicalTrials.gov](https://clinicaltrials.gov) in real time, and produces a ranked report of the closest matching trials.
|
|
|
|
| 110 |
├── pyproject.toml
|
| 111 |
└── .env # Local secrets — not committed
|
| 112 |
```
|
|
|
clinical_trials_guru.py
CHANGED
|
@@ -123,7 +123,19 @@ REQUIRED:
|
|
| 123 |
|
| 124 |
OPTIONAL (ask based on disease):
|
| 125 |
• Disease-specific benchmark scores:
|
| 126 |
-
ALS → ALSFRS-R (0-48)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 127 |
Huntington's → TFC (0-13) + CAG repeats; SMA → HFMS + SMA type;
|
| 128 |
Duchenne/Pompe → 6-Minute Walk Test; Friedreich's → SARA score
|
| 129 |
• Preferred search radius in miles (default 100)
|
|
@@ -147,7 +159,7 @@ OPTIONAL (ask based on disease):
|
|
| 147 |
but may be an option when no approved treatments remain.
|
| 148 |
- Or both; or all phases (default if no preference)
|
| 149 |
|
| 150 |
-
Ask naturally.
|
| 151 |
"""
|
| 152 |
|
| 153 |
RESEARCH_SYSTEM = """\
|
|
@@ -166,13 +178,16 @@ Workflow:
|
|
| 166 |
List the top 5 results per section ranked by site proximity.
|
| 167 |
For EACH entry use exactly this format (repeat the block per entry):
|
| 168 |
|
| 169 |
-
📍 **[Closest hospital name]** — [City, State] ([X] mi)
|
| 170 |
**Trial:** [Full title] ([Phase] — or "Expanded Access" for EAP)
|
| 171 |
**Sponsor:** [Lead sponsor]
|
|
|
|
|
|
|
| 172 |
**Summary:** [2–3 sentence plain-language description of what the trial/program is testing
|
| 173 |
and why it may matter for this patient]
|
| 174 |
-
**
|
| 175 |
-
|
|
|
|
| 176 |
**Link:** https://clinicaltrials.gov/study/[NCT_ID]
|
| 177 |
|
| 178 |
---
|
|
@@ -180,6 +195,11 @@ Workflow:
|
|
| 180 |
4. After the results add a short "Next steps" section (bullet points).
|
| 181 |
For EAP results, note that patients typically need a physician to submit the EAP request.
|
| 182 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 183 |
Be accurate. Do not fabricate details. If data is missing, say so.\
|
| 184 |
"""
|
| 185 |
|
|
@@ -265,13 +285,19 @@ def search_trials_api(
|
|
| 265 |
params: dict[str, str | int] = {
|
| 266 |
"query.cond": condition,
|
| 267 |
"filter.overallStatus": "AVAILABLE" if is_eap else "RECRUITING",
|
| 268 |
-
"filter.studyType": study_type,
|
| 269 |
"filter.geo": f"distance({lat},{lon},{radius_miles}mi)",
|
| 270 |
"pageSize": max_results,
|
| 271 |
"format": "json",
|
| 272 |
}
|
| 273 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 274 |
params["aggFilters"] = "phase:" + " ".join(phases)
|
|
|
|
|
|
|
| 275 |
for attempt in range(3):
|
| 276 |
try:
|
| 277 |
resp = httpx.get(CTGOV_BASE, params=params, timeout=30)
|
|
@@ -296,18 +322,40 @@ def _flatten_and_rank(studies: list[dict], patient_lat: float, patient_lon: floa
|
|
| 296 |
sponsor_mod = proto.get("sponsorCollaboratorsModule", {})
|
| 297 |
design_mod = proto.get("designModule", {})
|
| 298 |
|
| 299 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 300 |
for loc in contacts_mod.get("locations", []):
|
| 301 |
geo = loc.get("geoPoint", {})
|
| 302 |
if geo.get("lat") and geo.get("lon"):
|
| 303 |
d = haversine_miles(patient_lat, patient_lon, geo["lat"], geo["lon"])
|
| 304 |
-
|
| 305 |
-
|
| 306 |
-
|
| 307 |
-
|
| 308 |
-
|
| 309 |
-
|
| 310 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 311 |
sites_with_dist.sort(key=lambda x: x[0])
|
| 312 |
|
| 313 |
closest_dist = sites_with_dist[0][0] if sites_with_dist else None
|
|
@@ -316,12 +364,15 @@ def _flatten_and_rank(studies: list[dict], patient_lat: float, patient_lon: floa
|
|
| 316 |
"title": id_mod.get("briefTitle", ""),
|
| 317 |
"phase": ", ".join(design_mod.get("phases", [])) or "N/A",
|
| 318 |
"sponsor": sponsor_mod.get("leadSponsor", {}).get("name", ""),
|
|
|
|
|
|
|
|
|
|
| 319 |
"summary": desc_mod.get("briefSummary", "")[:500],
|
| 320 |
"eligibility": elig_mod.get("eligibilityCriteria", "")[:1000],
|
| 321 |
"min_age": elig_mod.get("minimumAge", ""),
|
| 322 |
"max_age": elig_mod.get("maximumAge", ""),
|
| 323 |
"closest_site_miles": round(closest_dist, 1) if closest_dist is not None else None,
|
| 324 |
-
"nearest_sites": [
|
| 325 |
})
|
| 326 |
|
| 327 |
result.sort(key=lambda x: x["closest_site_miles"] if x["closest_site_miles"] is not None else float("inf"))
|
|
|
|
| 123 |
|
| 124 |
OPTIONAL (ask based on disease):
|
| 125 |
• Disease-specific benchmark scores:
|
| 126 |
+
ALS → ALSFRS-R (0-48) + FVC % predicted (0-100%) + ALS subtype;
|
| 127 |
+
FVC (Forced Vital Capacity) measures how much air a person can forcibly exhale —
|
| 128 |
+
it reflects respiratory muscle strength. In ALS it is expressed as a percentage
|
| 129 |
+
of the value expected for someone of the same age/height/sex (e.g. "72%").
|
| 130 |
+
Many trials require FVC ≥ 50% or ≥ 60% for enrollment. If the patient has had
|
| 131 |
+
recent pulmonary function testing, ask for their FVC % predicted.
|
| 132 |
+
ALS subtype: ask whether the patient has sporadic ALS (no family history, ~90–95%
|
| 133 |
+
of cases) or familial/genetic ALS (inherited; ~5–10% of cases). If familial, ask
|
| 134 |
+
which gene mutation is involved if they know it (common ones: SOD1, C9orf72, FUS,
|
| 135 |
+
TDP-43). This affects trial eligibility — many gene-targeted trials require a
|
| 136 |
+
confirmed mutation. The patient may skip if unknown. Store as e.g.
|
| 137 |
+
{"ALS subtype": "sporadic"} or {"ALS subtype": "familial", "ALS gene": "SOD1"}.
|
| 138 |
+
MS → EDSS (0-10); Parkinson's → MDS-UPDRS III;
|
| 139 |
Huntington's → TFC (0-13) + CAG repeats; SMA → HFMS + SMA type;
|
| 140 |
Duchenne/Pompe → 6-Minute Walk Test; Friedreich's → SARA score
|
| 141 |
• Preferred search radius in miles (default 100)
|
|
|
|
| 159 |
but may be an option when no approved treatments remain.
|
| 160 |
- Or both; or all phases (default if no preference)
|
| 161 |
|
| 162 |
+
Ask naturally. You may infer disease synonyms and convert dates to months, but never infer or skip the ZIP/postal code — always ask the patient for it directly. Once you have every required field confirmed by the patient, call submit_profile.\
|
| 163 |
"""
|
| 164 |
|
| 165 |
RESEARCH_SYSTEM = """\
|
|
|
|
| 178 |
List the top 5 results per section ranked by site proximity.
|
| 179 |
For EACH entry use exactly this format (repeat the block per entry):
|
| 180 |
|
| 181 |
+
📍 **[Closest hospital/facility name]** — [City, State] ([X] mi)
|
| 182 |
**Trial:** [Full title] ([Phase] — or "Expanded Access" for EAP)
|
| 183 |
**Sponsor:** [Lead sponsor]
|
| 184 |
+
**Principal Investigator:** [Name — or "Not listed" if absent]
|
| 185 |
+
**Contact:** [Phone number] | [Email address] (use "Not listed" for any missing field)
|
| 186 |
**Summary:** [2–3 sentence plain-language description of what the trial/program is testing
|
| 187 |
and why it may matter for this patient]
|
| 188 |
+
**Qualification criteria:** [Key inclusion AND exclusion criteria relevant to this patient,
|
| 189 |
+
including age range, functional score thresholds, FVC cutoffs,
|
| 190 |
+
and any red flags. Be specific — use exact numbers from the data.]
|
| 191 |
**Link:** https://clinicaltrials.gov/study/[NCT_ID]
|
| 192 |
|
| 193 |
---
|
|
|
|
| 195 |
4. After the results add a short "Next steps" section (bullet points).
|
| 196 |
For EAP results, note that patients typically need a physician to submit the EAP request.
|
| 197 |
|
| 198 |
+
IMPORTANT: Only report trials returned by the search_clinical_trials tool. Do NOT suggest,
|
| 199 |
+
list, or recommend any hospitals, centers, or trials that were not in the tool results —
|
| 200 |
+
even well-known institutions. If no results are found, say so clearly and suggest the patient
|
| 201 |
+
ask their neurologist or contact the ALS Association for a referral.
|
| 202 |
+
|
| 203 |
Be accurate. Do not fabricate details. If data is missing, say so.\
|
| 204 |
"""
|
| 205 |
|
|
|
|
| 285 |
params: dict[str, str | int] = {
|
| 286 |
"query.cond": condition,
|
| 287 |
"filter.overallStatus": "AVAILABLE" if is_eap else "RECRUITING",
|
|
|
|
| 288 |
"filter.geo": f"distance({lat},{lon},{radius_miles}mi)",
|
| 289 |
"pageSize": max_results,
|
| 290 |
"format": "json",
|
| 291 |
}
|
| 292 |
+
# aggFilters accepts only one value; studyType and phase can't be combined.
|
| 293 |
+
# RECRUITING status already excludes EAPs, so studyType:int is only needed
|
| 294 |
+
# when no phase filter is applied.
|
| 295 |
+
if is_eap:
|
| 296 |
+
params["aggFilters"] = "studyType:exp"
|
| 297 |
+
elif phases:
|
| 298 |
params["aggFilters"] = "phase:" + " ".join(phases)
|
| 299 |
+
else:
|
| 300 |
+
params["aggFilters"] = "studyType:int"
|
| 301 |
for attempt in range(3):
|
| 302 |
try:
|
| 303 |
resp = httpx.get(CTGOV_BASE, params=params, timeout=30)
|
|
|
|
| 322 |
sponsor_mod = proto.get("sponsorCollaboratorsModule", {})
|
| 323 |
design_mod = proto.get("designModule", {})
|
| 324 |
|
| 325 |
+
# Central (overall) contacts
|
| 326 |
+
central_contacts = contacts_mod.get("centralContacts", [])
|
| 327 |
+
central_phone = next((c.get("phone", "") for c in central_contacts if c.get("phone")), "")
|
| 328 |
+
central_email = next((c.get("email", "") for c in central_contacts if c.get("email")), "")
|
| 329 |
+
|
| 330 |
+
# Principal investigator from overallOfficials
|
| 331 |
+
officials = contacts_mod.get("overallOfficials", [])
|
| 332 |
+
pi = next(
|
| 333 |
+
(o.get("name", "") for o in officials if o.get("role") == "PRINCIPAL_INVESTIGATOR"),
|
| 334 |
+
officials[0].get("name", "") if officials else "",
|
| 335 |
+
)
|
| 336 |
+
|
| 337 |
+
sites_with_dist: list[tuple[float, dict]] = []
|
| 338 |
for loc in contacts_mod.get("locations", []):
|
| 339 |
geo = loc.get("geoPoint", {})
|
| 340 |
if geo.get("lat") and geo.get("lon"):
|
| 341 |
d = haversine_miles(patient_lat, patient_lon, geo["lat"], geo["lon"])
|
| 342 |
+
loc_contacts = loc.get("contacts", [])
|
| 343 |
+
loc_phone = next((c.get("phone", "") for c in loc_contacts if c.get("phone")), "")
|
| 344 |
+
loc_email = next((c.get("email", "") for c in loc_contacts if c.get("email")), "")
|
| 345 |
+
sites_with_dist.append((d, {
|
| 346 |
+
"label": (
|
| 347 |
+
f"{loc.get('facility', '').strip()} — "
|
| 348 |
+
f"{loc.get('city', '')}, "
|
| 349 |
+
f"{loc.get('state', loc.get('country', ''))} "
|
| 350 |
+
f"({d:.0f} mi)"
|
| 351 |
+
),
|
| 352 |
+
"facility": loc.get("facility", "").strip(),
|
| 353 |
+
"city": loc.get("city", ""),
|
| 354 |
+
"state": loc.get("state", loc.get("country", "")),
|
| 355 |
+
"distance_miles": round(d, 1),
|
| 356 |
+
"phone": loc_phone or central_phone,
|
| 357 |
+
"email": loc_email or central_email,
|
| 358 |
+
}))
|
| 359 |
sites_with_dist.sort(key=lambda x: x[0])
|
| 360 |
|
| 361 |
closest_dist = sites_with_dist[0][0] if sites_with_dist else None
|
|
|
|
| 364 |
"title": id_mod.get("briefTitle", ""),
|
| 365 |
"phase": ", ".join(design_mod.get("phases", [])) or "N/A",
|
| 366 |
"sponsor": sponsor_mod.get("leadSponsor", {}).get("name", ""),
|
| 367 |
+
"principal_investigator": pi,
|
| 368 |
+
"contact_phone": central_phone,
|
| 369 |
+
"contact_email": central_email,
|
| 370 |
"summary": desc_mod.get("briefSummary", "")[:500],
|
| 371 |
"eligibility": elig_mod.get("eligibilityCriteria", "")[:1000],
|
| 372 |
"min_age": elig_mod.get("minimumAge", ""),
|
| 373 |
"max_age": elig_mod.get("maximumAge", ""),
|
| 374 |
"closest_site_miles": round(closest_dist, 1) if closest_dist is not None else None,
|
| 375 |
+
"nearest_sites": [info for _, info in sites_with_dist[:5]],
|
| 376 |
})
|
| 377 |
|
| 378 |
result.sort(key=lambda x: x["closest_site_miles"] if x["closest_site_miles"] is not None else float("inf"))
|
pyproject.toml
CHANGED
|
@@ -10,8 +10,5 @@ dependencies = [
|
|
| 10 |
"openai>=1.0.0",
|
| 11 |
"python-dotenv>=1.2.2",
|
| 12 |
"rich>=13.0.0",
|
| 13 |
-
<<<<<<< HEAD
|
| 14 |
"gradio>=4.0.0",
|
| 15 |
-
=======
|
| 16 |
-
>>>>>>> f8d77e4 (Initial release: Beacon rare disease clinical trial finder)
|
| 17 |
]
|
|
|
|
| 10 |
"openai>=1.0.0",
|
| 11 |
"python-dotenv>=1.2.2",
|
| 12 |
"rich>=13.0.0",
|
|
|
|
| 13 |
"gradio>=4.0.0",
|
|
|
|
|
|
|
| 14 |
]
|
uv.lock
CHANGED
|
@@ -1,7 +1,6 @@
|
|
| 1 |
version = 1
|
| 2 |
revision = 3
|
| 3 |
requires-python = ">=3.11"
|
| 4 |
-
<<<<<<< HEAD
|
| 5 |
resolution-markers = [
|
| 6 |
"python_full_version >= '3.14' and sys_platform == 'win32'",
|
| 7 |
"python_full_version >= '3.14' and sys_platform == 'emscripten'",
|
|
@@ -22,8 +21,6 @@ sdist = { url = "https://files.pythonhosted.org/packages/57/ba/046ceea2734456098
|
|
| 22 |
wheels = [
|
| 23 |
{ 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" },
|
| 24 |
]
|
| 25 |
-
=======
|
| 26 |
-
>>>>>>> f8d77e4 (Initial release: Beacon rare disease clinical trial finder)
|
| 27 |
|
| 28 |
[[package]]
|
| 29 |
name = "annotated-types"
|
|
@@ -36,7 +33,7 @@ wheels = [
|
|
| 36 |
|
| 37 |
[[package]]
|
| 38 |
name = "anthropic"
|
| 39 |
-
version = "0.
|
| 40 |
source = { registry = "https://pypi.org/simple" }
|
| 41 |
dependencies = [
|
| 42 |
{ name = "anyio" },
|
|
@@ -48,9 +45,9 @@ dependencies = [
|
|
| 48 |
{ name = "sniffio" },
|
| 49 |
{ name = "typing-extensions" },
|
| 50 |
]
|
| 51 |
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
| 52 |
wheels = [
|
| 53 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 54 |
]
|
| 55 |
|
| 56 |
[[package]]
|
|
@@ -67,7 +64,6 @@ wheels = [
|
|
| 67 |
]
|
| 68 |
|
| 69 |
[[package]]
|
| 70 |
-
<<<<<<< HEAD
|
| 71 |
name = "audioop-lts"
|
| 72 |
version = "0.2.2"
|
| 73 |
source = { registry = "https://pypi.org/simple" }
|
|
@@ -124,17 +120,12 @@ wheels = [
|
|
| 124 |
]
|
| 125 |
|
| 126 |
[[package]]
|
| 127 |
-
=======
|
| 128 |
-
>>>>>>> f8d77e4 (Initial release: Beacon rare disease clinical trial finder)
|
| 129 |
name = "beacon"
|
| 130 |
version = "0.1.0"
|
| 131 |
source = { virtual = "." }
|
| 132 |
dependencies = [
|
| 133 |
{ name = "anthropic" },
|
| 134 |
-
<<<<<<< HEAD
|
| 135 |
{ name = "gradio" },
|
| 136 |
-
=======
|
| 137 |
-
>>>>>>> f8d77e4 (Initial release: Beacon rare disease clinical trial finder)
|
| 138 |
{ name = "langgraph" },
|
| 139 |
{ name = "openai" },
|
| 140 |
{ name = "python-dotenv" },
|
|
@@ -144,10 +135,7 @@ dependencies = [
|
|
| 144 |
[package.metadata]
|
| 145 |
requires-dist = [
|
| 146 |
{ name = "anthropic", specifier = ">=0.50.0" },
|
| 147 |
-
<<<<<<< HEAD
|
| 148 |
{ name = "gradio", specifier = ">=4.0.0" },
|
| 149 |
-
=======
|
| 150 |
-
>>>>>>> f8d77e4 (Initial release: Beacon rare disease clinical trial finder)
|
| 151 |
{ name = "langgraph", specifier = ">=1.2.0" },
|
| 152 |
{ name = "openai", specifier = ">=1.0.0" },
|
| 153 |
{ name = "python-dotenv", specifier = ">=1.2.2" },
|
|
@@ -155,7 +143,6 @@ requires-dist = [
|
|
| 155 |
]
|
| 156 |
|
| 157 |
[[package]]
|
| 158 |
-
<<<<<<< HEAD
|
| 159 |
name = "brotli"
|
| 160 |
version = "1.2.0"
|
| 161 |
source = { registry = "https://pypi.org/simple" }
|
|
@@ -204,8 +191,6 @@ wheels = [
|
|
| 204 |
]
|
| 205 |
|
| 206 |
[[package]]
|
| 207 |
-
=======
|
| 208 |
-
>>>>>>> f8d77e4 (Initial release: Beacon rare disease clinical trial finder)
|
| 209 |
name = "certifi"
|
| 210 |
version = "2026.4.22"
|
| 211 |
source = { registry = "https://pypi.org/simple" }
|
|
@@ -304,21 +289,18 @@ wheels = [
|
|
| 304 |
]
|
| 305 |
|
| 306 |
[[package]]
|
| 307 |
-
<<<<<<< HEAD
|
| 308 |
name = "click"
|
| 309 |
-
version = "8.
|
| 310 |
source = { registry = "https://pypi.org/simple" }
|
| 311 |
dependencies = [
|
| 312 |
{ name = "colorama", marker = "sys_platform == 'win32'" },
|
| 313 |
]
|
| 314 |
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
| 315 |
wheels = [
|
| 316 |
-
{ url = "https://files.pythonhosted.org/packages/ae/
|
| 317 |
]
|
| 318 |
|
| 319 |
[[package]]
|
| 320 |
-
=======
|
| 321 |
-
>>>>>>> f8d77e4 (Initial release: Beacon rare disease clinical trial finder)
|
| 322 |
name = "colorama"
|
| 323 |
version = "0.4.6"
|
| 324 |
source = { registry = "https://pypi.org/simple" }
|
|
@@ -346,7 +328,6 @@ wheels = [
|
|
| 346 |
]
|
| 347 |
|
| 348 |
[[package]]
|
| 349 |
-
<<<<<<< HEAD
|
| 350 |
name = "fastapi"
|
| 351 |
version = "0.136.1"
|
| 352 |
source = { registry = "https://pypi.org/simple" }
|
|
@@ -445,8 +426,6 @@ wheels = [
|
|
| 445 |
]
|
| 446 |
|
| 447 |
[[package]]
|
| 448 |
-
=======
|
| 449 |
-
>>>>>>> f8d77e4 (Initial release: Beacon rare disease clinical trial finder)
|
| 450 |
name = "h11"
|
| 451 |
version = "0.16.0"
|
| 452 |
source = { registry = "https://pypi.org/simple" }
|
|
@@ -456,7 +435,6 @@ wheels = [
|
|
| 456 |
]
|
| 457 |
|
| 458 |
[[package]]
|
| 459 |
-
<<<<<<< HEAD
|
| 460 |
name = "hf-gradio"
|
| 461 |
version = "0.4.1"
|
| 462 |
source = { registry = "https://pypi.org/simple" }
|
|
@@ -502,8 +480,6 @@ wheels = [
|
|
| 502 |
]
|
| 503 |
|
| 504 |
[[package]]
|
| 505 |
-
=======
|
| 506 |
-
>>>>>>> f8d77e4 (Initial release: Beacon rare disease clinical trial finder)
|
| 507 |
name = "httpcore"
|
| 508 |
version = "1.0.9"
|
| 509 |
source = { registry = "https://pypi.org/simple" }
|
|
@@ -532,9 +508,8 @@ wheels = [
|
|
| 532 |
]
|
| 533 |
|
| 534 |
[[package]]
|
| 535 |
-
<<<<<<< HEAD
|
| 536 |
name = "huggingface-hub"
|
| 537 |
-
version = "1.
|
| 538 |
source = { registry = "https://pypi.org/simple" }
|
| 539 |
dependencies = [
|
| 540 |
{ name = "filelock" },
|
|
@@ -547,24 +522,21 @@ dependencies = [
|
|
| 547 |
{ name = "typer" },
|
| 548 |
{ name = "typing-extensions" },
|
| 549 |
]
|
| 550 |
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
| 551 |
wheels = [
|
| 552 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 553 |
]
|
| 554 |
|
| 555 |
[[package]]
|
| 556 |
-
=======
|
| 557 |
-
>>>>>>> f8d77e4 (Initial release: Beacon rare disease clinical trial finder)
|
| 558 |
name = "idna"
|
| 559 |
-
version = "3.
|
| 560 |
source = { registry = "https://pypi.org/simple" }
|
| 561 |
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
| 562 |
wheels = [
|
| 563 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 564 |
]
|
| 565 |
|
| 566 |
[[package]]
|
| 567 |
-
<<<<<<< HEAD
|
| 568 |
name = "jinja2"
|
| 569 |
version = "3.1.6"
|
| 570 |
source = { registry = "https://pypi.org/simple" }
|
|
@@ -577,8 +549,6 @@ wheels = [
|
|
| 577 |
]
|
| 578 |
|
| 579 |
[[package]]
|
| 580 |
-
=======
|
| 581 |
-
>>>>>>> f8d77e4 (Initial release: Beacon rare disease clinical trial finder)
|
| 582 |
name = "jiter"
|
| 583 |
version = "0.14.0"
|
| 584 |
source = { registry = "https://pypi.org/simple" }
|
|
@@ -779,7 +749,7 @@ wheels = [
|
|
| 779 |
|
| 780 |
[[package]]
|
| 781 |
name = "langsmith"
|
| 782 |
-
version = "0.8.
|
| 783 |
source = { registry = "https://pypi.org/simple" }
|
| 784 |
dependencies = [
|
| 785 |
{ name = "httpx" },
|
|
@@ -792,9 +762,9 @@ dependencies = [
|
|
| 792 |
{ name = "xxhash" },
|
| 793 |
{ name = "zstandard" },
|
| 794 |
]
|
| 795 |
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
| 796 |
wheels = [
|
| 797 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 798 |
]
|
| 799 |
|
| 800 |
[[package]]
|
|
@@ -810,7 +780,6 @@ wheels = [
|
|
| 810 |
]
|
| 811 |
|
| 812 |
[[package]]
|
| 813 |
-
<<<<<<< HEAD
|
| 814 |
name = "markupsafe"
|
| 815 |
version = "3.0.3"
|
| 816 |
source = { registry = "https://pypi.org/simple" }
|
|
@@ -885,8 +854,6 @@ wheels = [
|
|
| 885 |
]
|
| 886 |
|
| 887 |
[[package]]
|
| 888 |
-
=======
|
| 889 |
-
>>>>>>> f8d77e4 (Initial release: Beacon rare disease clinical trial finder)
|
| 890 |
name = "mdurl"
|
| 891 |
version = "0.1.2"
|
| 892 |
source = { registry = "https://pypi.org/simple" }
|
|
@@ -896,90 +863,87 @@ wheels = [
|
|
| 896 |
]
|
| 897 |
|
| 898 |
[[package]]
|
| 899 |
-
<<<<<<< HEAD
|
| 900 |
name = "numpy"
|
| 901 |
-
version = "2.4.
|
| 902 |
-
source = { registry = "https://pypi.org/simple" }
|
| 903 |
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
| 904 |
-
wheels = [
|
| 905 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 906 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 907 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 908 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 909 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 910 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 911 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 912 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 913 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 914 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 915 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 916 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 917 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 918 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 919 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 920 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 921 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 922 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 923 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 924 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 925 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 926 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 927 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 928 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 929 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 930 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 931 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 932 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 933 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 934 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 935 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 936 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 937 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 938 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 939 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 940 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 941 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 942 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 943 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 944 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 945 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 946 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 947 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 948 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 949 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 950 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 951 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 952 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 953 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 954 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 955 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 956 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 957 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 958 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 959 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 960 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 961 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 962 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 963 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 964 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 965 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 966 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 967 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 968 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 969 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 970 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 971 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 972 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 973 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 974 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 975 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 976 |
-
]
|
| 977 |
-
|
| 978 |
-
[[package]]
|
| 979 |
-
=======
|
| 980 |
-
>>>>>>> f8d77e4 (Initial release: Beacon rare disease clinical trial finder)
|
| 981 |
name = "openai"
|
| 982 |
-
version = "2.
|
| 983 |
source = { registry = "https://pypi.org/simple" }
|
| 984 |
dependencies = [
|
| 985 |
{ name = "anyio" },
|
|
@@ -991,9 +955,9 @@ dependencies = [
|
|
| 991 |
{ name = "tqdm" },
|
| 992 |
{ name = "typing-extensions" },
|
| 993 |
]
|
| 994 |
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
| 995 |
wheels = [
|
| 996 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 997 |
]
|
| 998 |
|
| 999 |
[[package]]
|
|
@@ -1122,7 +1086,6 @@ wheels = [
|
|
| 1122 |
]
|
| 1123 |
|
| 1124 |
[[package]]
|
| 1125 |
-
<<<<<<< HEAD
|
| 1126 |
name = "pandas"
|
| 1127 |
version = "3.0.3"
|
| 1128 |
source = { registry = "https://pypi.org/simple" }
|
|
@@ -1270,8 +1233,6 @@ wheels = [
|
|
| 1270 |
]
|
| 1271 |
|
| 1272 |
[[package]]
|
| 1273 |
-
=======
|
| 1274 |
-
>>>>>>> f8d77e4 (Initial release: Beacon rare disease clinical trial finder)
|
| 1275 |
name = "pydantic"
|
| 1276 |
version = "2.13.4"
|
| 1277 |
source = { registry = "https://pypi.org/simple" }
|
|
@@ -1389,7 +1350,6 @@ wheels = [
|
|
| 1389 |
]
|
| 1390 |
|
| 1391 |
[[package]]
|
| 1392 |
-
<<<<<<< HEAD
|
| 1393 |
name = "pydub"
|
| 1394 |
version = "0.25.1"
|
| 1395 |
source = { registry = "https://pypi.org/simple" }
|
|
@@ -1399,8 +1359,6 @@ wheels = [
|
|
| 1399 |
]
|
| 1400 |
|
| 1401 |
[[package]]
|
| 1402 |
-
=======
|
| 1403 |
-
>>>>>>> f8d77e4 (Initial release: Beacon rare disease clinical trial finder)
|
| 1404 |
name = "pygments"
|
| 1405 |
version = "2.20.0"
|
| 1406 |
source = { registry = "https://pypi.org/simple" }
|
|
@@ -1410,7 +1368,6 @@ wheels = [
|
|
| 1410 |
]
|
| 1411 |
|
| 1412 |
[[package]]
|
| 1413 |
-
<<<<<<< HEAD
|
| 1414 |
name = "python-dateutil"
|
| 1415 |
version = "2.9.0.post0"
|
| 1416 |
source = { registry = "https://pypi.org/simple" }
|
|
@@ -1423,8 +1380,6 @@ wheels = [
|
|
| 1423 |
]
|
| 1424 |
|
| 1425 |
[[package]]
|
| 1426 |
-
=======
|
| 1427 |
-
>>>>>>> f8d77e4 (Initial release: Beacon rare disease clinical trial finder)
|
| 1428 |
name = "python-dotenv"
|
| 1429 |
version = "1.2.2"
|
| 1430 |
source = { registry = "https://pypi.org/simple" }
|
|
@@ -1434,13 +1389,12 @@ wheels = [
|
|
| 1434 |
]
|
| 1435 |
|
| 1436 |
[[package]]
|
| 1437 |
-
<<<<<<< HEAD
|
| 1438 |
name = "python-multipart"
|
| 1439 |
-
version = "0.0.
|
| 1440 |
source = { registry = "https://pypi.org/simple" }
|
| 1441 |
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
| 1442 |
wheels = [
|
| 1443 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1444 |
]
|
| 1445 |
|
| 1446 |
[[package]]
|
|
@@ -1453,8 +1407,6 @@ wheels = [
|
|
| 1453 |
]
|
| 1454 |
|
| 1455 |
[[package]]
|
| 1456 |
-
=======
|
| 1457 |
-
>>>>>>> f8d77e4 (Initial release: Beacon rare disease clinical trial finder)
|
| 1458 |
name = "pyyaml"
|
| 1459 |
version = "6.0.3"
|
| 1460 |
source = { registry = "https://pypi.org/simple" }
|
|
@@ -1511,7 +1463,7 @@ wheels = [
|
|
| 1511 |
|
| 1512 |
[[package]]
|
| 1513 |
name = "requests"
|
| 1514 |
-
version = "2.34.
|
| 1515 |
source = { registry = "https://pypi.org/simple" }
|
| 1516 |
dependencies = [
|
| 1517 |
{ name = "certifi" },
|
|
@@ -1519,9 +1471,9 @@ dependencies = [
|
|
| 1519 |
{ name = "idna" },
|
| 1520 |
{ name = "urllib3" },
|
| 1521 |
]
|
| 1522 |
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
| 1523 |
wheels = [
|
| 1524 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1525 |
]
|
| 1526 |
|
| 1527 |
[[package]]
|
|
@@ -1550,7 +1502,6 @@ wheels = [
|
|
| 1550 |
]
|
| 1551 |
|
| 1552 |
[[package]]
|
| 1553 |
-
<<<<<<< HEAD
|
| 1554 |
name = "safehttpx"
|
| 1555 |
version = "0.1.7"
|
| 1556 |
source = { registry = "https://pypi.org/simple" }
|
|
@@ -1590,8 +1541,6 @@ wheels = [
|
|
| 1590 |
]
|
| 1591 |
|
| 1592 |
[[package]]
|
| 1593 |
-
=======
|
| 1594 |
-
>>>>>>> f8d77e4 (Initial release: Beacon rare disease clinical trial finder)
|
| 1595 |
name = "sniffio"
|
| 1596 |
version = "1.3.1"
|
| 1597 |
source = { registry = "https://pypi.org/simple" }
|
|
@@ -1601,7 +1550,6 @@ wheels = [
|
|
| 1601 |
]
|
| 1602 |
|
| 1603 |
[[package]]
|
| 1604 |
-
<<<<<<< HEAD
|
| 1605 |
name = "starlette"
|
| 1606 |
version = "1.0.0"
|
| 1607 |
source = { registry = "https://pypi.org/simple" }
|
|
@@ -1615,8 +1563,6 @@ wheels = [
|
|
| 1615 |
]
|
| 1616 |
|
| 1617 |
[[package]]
|
| 1618 |
-
=======
|
| 1619 |
-
>>>>>>> f8d77e4 (Initial release: Beacon rare disease clinical trial finder)
|
| 1620 |
name = "tenacity"
|
| 1621 |
version = "9.1.4"
|
| 1622 |
source = { registry = "https://pypi.org/simple" }
|
|
@@ -1626,7 +1572,6 @@ wheels = [
|
|
| 1626 |
]
|
| 1627 |
|
| 1628 |
[[package]]
|
| 1629 |
-
<<<<<<< HEAD
|
| 1630 |
name = "tomlkit"
|
| 1631 |
version = "0.14.0"
|
| 1632 |
source = { registry = "https://pypi.org/simple" }
|
|
@@ -1636,8 +1581,6 @@ wheels = [
|
|
| 1636 |
]
|
| 1637 |
|
| 1638 |
[[package]]
|
| 1639 |
-
=======
|
| 1640 |
-
>>>>>>> f8d77e4 (Initial release: Beacon rare disease clinical trial finder)
|
| 1641 |
name = "tqdm"
|
| 1642 |
version = "4.67.3"
|
| 1643 |
source = { registry = "https://pypi.org/simple" }
|
|
@@ -1650,7 +1593,6 @@ wheels = [
|
|
| 1650 |
]
|
| 1651 |
|
| 1652 |
[[package]]
|
| 1653 |
-
<<<<<<< HEAD
|
| 1654 |
name = "typer"
|
| 1655 |
version = "0.25.1"
|
| 1656 |
source = { registry = "https://pypi.org/simple" }
|
|
@@ -1666,8 +1608,6 @@ wheels = [
|
|
| 1666 |
]
|
| 1667 |
|
| 1668 |
[[package]]
|
| 1669 |
-
=======
|
| 1670 |
-
>>>>>>> f8d77e4 (Initial release: Beacon rare disease clinical trial finder)
|
| 1671 |
name = "typing-extensions"
|
| 1672 |
version = "4.15.0"
|
| 1673 |
source = { registry = "https://pypi.org/simple" }
|
|
@@ -1689,7 +1629,6 @@ wheels = [
|
|
| 1689 |
]
|
| 1690 |
|
| 1691 |
[[package]]
|
| 1692 |
-
<<<<<<< HEAD
|
| 1693 |
name = "tzdata"
|
| 1694 |
version = "2026.2"
|
| 1695 |
source = { registry = "https://pypi.org/simple" }
|
|
@@ -1699,8 +1638,6 @@ wheels = [
|
|
| 1699 |
]
|
| 1700 |
|
| 1701 |
[[package]]
|
| 1702 |
-
=======
|
| 1703 |
-
>>>>>>> f8d77e4 (Initial release: Beacon rare disease clinical trial finder)
|
| 1704 |
name = "urllib3"
|
| 1705 |
version = "2.7.0"
|
| 1706 |
source = { registry = "https://pypi.org/simple" }
|
|
@@ -1810,7 +1747,6 @@ wheels = [
|
|
| 1810 |
]
|
| 1811 |
|
| 1812 |
[[package]]
|
| 1813 |
-
<<<<<<< HEAD
|
| 1814 |
name = "uvicorn"
|
| 1815 |
version = "0.47.0"
|
| 1816 |
source = { registry = "https://pypi.org/simple" }
|
|
@@ -1824,8 +1760,6 @@ wheels = [
|
|
| 1824 |
]
|
| 1825 |
|
| 1826 |
[[package]]
|
| 1827 |
-
=======
|
| 1828 |
-
>>>>>>> f8d77e4 (Initial release: Beacon rare disease clinical trial finder)
|
| 1829 |
name = "xxhash"
|
| 1830 |
version = "3.7.0"
|
| 1831 |
source = { registry = "https://pypi.org/simple" }
|
|
|
|
| 1 |
version = 1
|
| 2 |
revision = 3
|
| 3 |
requires-python = ">=3.11"
|
|
|
|
| 4 |
resolution-markers = [
|
| 5 |
"python_full_version >= '3.14' and sys_platform == 'win32'",
|
| 6 |
"python_full_version >= '3.14' and sys_platform == 'emscripten'",
|
|
|
|
| 21 |
wheels = [
|
| 22 |
{ 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" },
|
| 23 |
]
|
|
|
|
|
|
|
| 24 |
|
| 25 |
[[package]]
|
| 26 |
name = "annotated-types"
|
|
|
|
| 33 |
|
| 34 |
[[package]]
|
| 35 |
name = "anthropic"
|
| 36 |
+
version = "0.102.0"
|
| 37 |
source = { registry = "https://pypi.org/simple" }
|
| 38 |
dependencies = [
|
| 39 |
{ name = "anyio" },
|
|
|
|
| 45 |
{ name = "sniffio" },
|
| 46 |
{ name = "typing-extensions" },
|
| 47 |
]
|
| 48 |
+
sdist = { url = "https://files.pythonhosted.org/packages/b9/47/cb2a71f70431fb09af4db83e3ea89eb2dd8e0e348d27af53ed32e6c599dd/anthropic-0.102.0.tar.gz", hash = "sha256:96f747cad11886c4ae12d4080131b94eebd68b202bd2190fe27959031bb1fa9c", size = 763697, upload-time = "2026-05-13T18:12:41.624Z" }
|
| 49 |
wheels = [
|
| 50 |
+
{ url = "https://files.pythonhosted.org/packages/87/75/0f6c603594876413bc858a00e7cc0d80a0cc14edf5c7b959a3ea6ec45e44/anthropic-0.102.0-py3-none-any.whl", hash = "sha256:ab96540bbd4b0f36564252d955a86f8abbe4f00944a24bc9931acc9b139bab6f", size = 763070, upload-time = "2026-05-13T18:12:43.474Z" },
|
| 51 |
]
|
| 52 |
|
| 53 |
[[package]]
|
|
|
|
| 64 |
]
|
| 65 |
|
| 66 |
[[package]]
|
|
|
|
| 67 |
name = "audioop-lts"
|
| 68 |
version = "0.2.2"
|
| 69 |
source = { registry = "https://pypi.org/simple" }
|
|
|
|
| 120 |
]
|
| 121 |
|
| 122 |
[[package]]
|
|
|
|
|
|
|
| 123 |
name = "beacon"
|
| 124 |
version = "0.1.0"
|
| 125 |
source = { virtual = "." }
|
| 126 |
dependencies = [
|
| 127 |
{ name = "anthropic" },
|
|
|
|
| 128 |
{ name = "gradio" },
|
|
|
|
|
|
|
| 129 |
{ name = "langgraph" },
|
| 130 |
{ name = "openai" },
|
| 131 |
{ name = "python-dotenv" },
|
|
|
|
| 135 |
[package.metadata]
|
| 136 |
requires-dist = [
|
| 137 |
{ name = "anthropic", specifier = ">=0.50.0" },
|
|
|
|
| 138 |
{ name = "gradio", specifier = ">=4.0.0" },
|
|
|
|
|
|
|
| 139 |
{ name = "langgraph", specifier = ">=1.2.0" },
|
| 140 |
{ name = "openai", specifier = ">=1.0.0" },
|
| 141 |
{ name = "python-dotenv", specifier = ">=1.2.2" },
|
|
|
|
| 143 |
]
|
| 144 |
|
| 145 |
[[package]]
|
|
|
|
| 146 |
name = "brotli"
|
| 147 |
version = "1.2.0"
|
| 148 |
source = { registry = "https://pypi.org/simple" }
|
|
|
|
| 191 |
]
|
| 192 |
|
| 193 |
[[package]]
|
|
|
|
|
|
|
| 194 |
name = "certifi"
|
| 195 |
version = "2026.4.22"
|
| 196 |
source = { registry = "https://pypi.org/simple" }
|
|
|
|
| 289 |
]
|
| 290 |
|
| 291 |
[[package]]
|
|
|
|
| 292 |
name = "click"
|
| 293 |
+
version = "8.4.0"
|
| 294 |
source = { registry = "https://pypi.org/simple" }
|
| 295 |
dependencies = [
|
| 296 |
{ name = "colorama", marker = "sys_platform == 'win32'" },
|
| 297 |
]
|
| 298 |
+
sdist = { url = "https://files.pythonhosted.org/packages/23/e4/796662cd90cf80e3a363c99db2b88e0e394b988a575f60a17e16440cd011/click-8.4.0.tar.gz", hash = "sha256:638f1338fe1235c8f4e008e4a8a254fb5c5fbdcbb40ece3c9142ebb78e792973", size = 350843, upload-time = "2026-05-17T00:47:58.425Z" }
|
| 299 |
wheels = [
|
| 300 |
+
{ url = "https://files.pythonhosted.org/packages/ee/ae/8e92f8058baf87f6c7d86ee7e457668690195cc77efedb8d3797a06e3940/click-8.4.0-py3-none-any.whl", hash = "sha256:40c50b7c6c6adac2823d411041ec84f3f103f1b280d5e9ce0d7f998995832f81", size = 116147, upload-time = "2026-05-17T00:47:56.842Z" },
|
| 301 |
]
|
| 302 |
|
| 303 |
[[package]]
|
|
|
|
|
|
|
| 304 |
name = "colorama"
|
| 305 |
version = "0.4.6"
|
| 306 |
source = { registry = "https://pypi.org/simple" }
|
|
|
|
| 328 |
]
|
| 329 |
|
| 330 |
[[package]]
|
|
|
|
| 331 |
name = "fastapi"
|
| 332 |
version = "0.136.1"
|
| 333 |
source = { registry = "https://pypi.org/simple" }
|
|
|
|
| 426 |
]
|
| 427 |
|
| 428 |
[[package]]
|
|
|
|
|
|
|
| 429 |
name = "h11"
|
| 430 |
version = "0.16.0"
|
| 431 |
source = { registry = "https://pypi.org/simple" }
|
|
|
|
| 435 |
]
|
| 436 |
|
| 437 |
[[package]]
|
|
|
|
| 438 |
name = "hf-gradio"
|
| 439 |
version = "0.4.1"
|
| 440 |
source = { registry = "https://pypi.org/simple" }
|
|
|
|
| 480 |
]
|
| 481 |
|
| 482 |
[[package]]
|
|
|
|
|
|
|
| 483 |
name = "httpcore"
|
| 484 |
version = "1.0.9"
|
| 485 |
source = { registry = "https://pypi.org/simple" }
|
|
|
|
| 508 |
]
|
| 509 |
|
| 510 |
[[package]]
|
|
|
|
| 511 |
name = "huggingface-hub"
|
| 512 |
+
version = "1.15.0"
|
| 513 |
source = { registry = "https://pypi.org/simple" }
|
| 514 |
dependencies = [
|
| 515 |
{ name = "filelock" },
|
|
|
|
| 522 |
{ name = "typer" },
|
| 523 |
{ name = "typing-extensions" },
|
| 524 |
]
|
| 525 |
+
sdist = { url = "https://files.pythonhosted.org/packages/bb/b6/e22bd20a25299c34b8c5922c1545a6320825b13906eb0f7298edfd034a0b/huggingface_hub-1.15.0.tar.gz", hash = "sha256:28abfdddda3927fd4de6a63cf26ab012498a2c24dae52baf150c5c6edf98a1d5", size = 784100, upload-time = "2026-05-15T11:42:52.149Z" }
|
| 526 |
wheels = [
|
| 527 |
+
{ url = "https://files.pythonhosted.org/packages/6e/11/0b64cc9024329b76d7547c19a67604a61d21d3ba678a69d1b220c29d5112/huggingface_hub-1.15.0-py3-none-any.whl", hash = "sha256:a4a59af04cbc41a3fe3fec429b171ef994ef8c971eda10136746f408dd4e3744", size = 663602, upload-time = "2026-05-15T11:42:50.487Z" },
|
| 528 |
]
|
| 529 |
|
| 530 |
[[package]]
|
|
|
|
|
|
|
| 531 |
name = "idna"
|
| 532 |
+
version = "3.15"
|
| 533 |
source = { registry = "https://pypi.org/simple" }
|
| 534 |
+
sdist = { url = "https://files.pythonhosted.org/packages/82/77/7b3966d0b9d1d31a36ddf1746926a11dface89a83409bf1483f0237aa758/idna-3.15.tar.gz", hash = "sha256:ca962446ea538f7092a95e057da437618e886f4d349216d2b1e294abfdb65fdc", size = 199245, upload-time = "2026-05-12T22:45:57.011Z" }
|
| 535 |
wheels = [
|
| 536 |
+
{ url = "https://files.pythonhosted.org/packages/d2/23/408243171aa9aaba178d3e2559159c24c1171a641aa83b67bdd3394ead8e/idna-3.15-py3-none-any.whl", hash = "sha256:048adeaf8c2d788c40fee287673ccaa74c24ffd8dcf09ffa555a2fbb59f10ac8", size = 72340, upload-time = "2026-05-12T22:45:55.733Z" },
|
| 537 |
]
|
| 538 |
|
| 539 |
[[package]]
|
|
|
|
| 540 |
name = "jinja2"
|
| 541 |
version = "3.1.6"
|
| 542 |
source = { registry = "https://pypi.org/simple" }
|
|
|
|
| 549 |
]
|
| 550 |
|
| 551 |
[[package]]
|
|
|
|
|
|
|
| 552 |
name = "jiter"
|
| 553 |
version = "0.14.0"
|
| 554 |
source = { registry = "https://pypi.org/simple" }
|
|
|
|
| 749 |
|
| 750 |
[[package]]
|
| 751 |
name = "langsmith"
|
| 752 |
+
version = "0.8.5"
|
| 753 |
source = { registry = "https://pypi.org/simple" }
|
| 754 |
dependencies = [
|
| 755 |
{ name = "httpx" },
|
|
|
|
| 762 |
{ name = "xxhash" },
|
| 763 |
{ name = "zstandard" },
|
| 764 |
]
|
| 765 |
+
sdist = { url = "https://files.pythonhosted.org/packages/17/eb/8883d1158c743d0aac350f09df7880714d27283497e8c80bb9fe3480f165/langsmith-0.8.5.tar.gz", hash = "sha256:3615243d99c12f4047f13042bdc05a373dce232d106a6511b3ca7b48c5af1c2c", size = 4462348, upload-time = "2026-05-15T21:31:41.093Z" }
|
| 766 |
wheels = [
|
| 767 |
+
{ url = "https://files.pythonhosted.org/packages/23/85/968c88a63e32a59b3e5c68afd2fe114ce0708a125db0be1a85efc25fb2ea/langsmith-0.8.5-py3-none-any.whl", hash = "sha256:efc779f9d450dcaf9d97bc8894f4926276509d6e730e05289af9a64debce06ae", size = 399564, upload-time = "2026-05-15T21:31:39.046Z" },
|
| 768 |
]
|
| 769 |
|
| 770 |
[[package]]
|
|
|
|
| 780 |
]
|
| 781 |
|
| 782 |
[[package]]
|
|
|
|
| 783 |
name = "markupsafe"
|
| 784 |
version = "3.0.3"
|
| 785 |
source = { registry = "https://pypi.org/simple" }
|
|
|
|
| 854 |
]
|
| 855 |
|
| 856 |
[[package]]
|
|
|
|
|
|
|
| 857 |
name = "mdurl"
|
| 858 |
version = "0.1.2"
|
| 859 |
source = { registry = "https://pypi.org/simple" }
|
|
|
|
| 863 |
]
|
| 864 |
|
| 865 |
[[package]]
|
|
|
|
| 866 |
name = "numpy"
|
| 867 |
+
version = "2.4.5"
|
| 868 |
+
source = { registry = "https://pypi.org/simple" }
|
| 869 |
+
sdist = { url = "https://files.pythonhosted.org/packages/50/8e/b8041bc719f056afd864478029d52214789341ac6583437b0ee5031e9530/numpy-2.4.5.tar.gz", hash = "sha256:ca670567a5683b7c1670ec03e0ddd5862e10934e92a70751d68d7b7b74ca7f9f", size = 20735669, upload-time = "2026-05-15T20:25:19.492Z" }
|
| 870 |
+
wheels = [
|
| 871 |
+
{ url = "https://files.pythonhosted.org/packages/e1/44/1383ee4d1e916a9e610e46c876b5c83ea023526117d23cd911983929ec34/numpy-2.4.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3176dc8ff71dbb593606f91a69ad0c3cd3303c7eb546af477370ab9edf760288", size = 16969261, upload-time = "2026-05-15T20:22:23.036Z" },
|
| 872 |
+
{ url = "https://files.pythonhosted.org/packages/3d/61/54bacfbec7550bc398e6b6d9a861db35d64f75844e1d7920f5722c3cd5e7/numpy-2.4.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1811150e5148f5a01a7cc282cb2f489b4a3050a773e173adb480e507bad3a3d7", size = 14964009, upload-time = "2026-05-15T20:22:25.819Z" },
|
| 873 |
+
{ url = "https://files.pythonhosted.org/packages/7a/55/fe86c64561761f185339c26001164a2687bd4787af681e961431abd2d534/numpy-2.4.5-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:0d63a780070871210853ba01e90b88f9b85cf2abf63a7f143d5127189265ddf6", size = 5469106, upload-time = "2026-05-15T20:22:28.13Z" },
|
| 874 |
+
{ url = "https://files.pythonhosted.org/packages/2f/74/cf29b8317627f0e3aa2c9fb332d386bd734308cecd9e07da9f407d9ce0c3/numpy-2.4.5-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:0c6919cefafb3b76cd46a89dbb203bf1dd95529d2a6d09fef2d325d95d6a79d8", size = 6798945, upload-time = "2026-05-15T20:22:30.061Z" },
|
| 875 |
+
{ url = "https://files.pythonhosted.org/packages/80/a9/b61730a17fa87d5abb13ce560a1b4ce3485d37a13e03eb7b414e598e72f8/numpy-2.4.5-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d51efede1e58e8b11877536a5518f60e318d8ff69b89ad7b38ee5e431b24d772", size = 15967025, upload-time = "2026-05-15T20:22:32.328Z" },
|
| 876 |
+
{ url = "https://files.pythonhosted.org/packages/03/39/70bcd187eb4d223c21fde02c2bdfbffbffef3288cbb3947c04c74ae39a08/numpy-2.4.5-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:07ce7e74da92d7c71b5df157b9758bcdd53d7fea10602154de3afd2b3ddc34dd", size = 16918685, upload-time = "2026-05-15T20:22:34.759Z" },
|
| 877 |
+
{ url = "https://files.pythonhosted.org/packages/ab/31/400fd1315bbe228af3937cf8a74e32023df6217af36077919d00adc382e4/numpy-2.4.5-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d7828234a13185effb34979e146f9921f2a65dfbbe215e6dbb57d6478fc8e059", size = 17322963, upload-time = "2026-05-15T20:22:37.557Z" },
|
| 878 |
+
{ url = "https://files.pythonhosted.org/packages/18/6a/bbbafb657e6f6ee826b4ecdb8722a2e0aae4a981888eaf59eae6a535cc13/numpy-2.4.5-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f96083adc3dfc1bbf778f2c79654d88115fa07074c97cb724fe9508f12d91c55", size = 18651594, upload-time = "2026-05-15T20:22:40.449Z" },
|
| 879 |
+
{ url = "https://files.pythonhosted.org/packages/de/0c/857a515154a2a18b0dfae04089600d166d352d473ec17a0680d879582d06/numpy-2.4.5-cp311-cp311-win32.whl", hash = "sha256:4ed78c904a638b6e5d7cd4db90c06fca5fc6ec2f28d258305368f454a50e79cf", size = 6233849, upload-time = "2026-05-15T20:22:43.139Z" },
|
| 880 |
+
{ url = "https://files.pythonhosted.org/packages/f0/66/d215f3fb93541617adb5d58b3b9508e8a6413e499711e0adc0b80bcb445d/numpy-2.4.5-cp311-cp311-win_amd64.whl", hash = "sha256:079b0fad6f2899b23c5da89792b5409d2d83fc83e8bd5c2299cc9c397a264864", size = 12608238, upload-time = "2026-05-15T20:22:45.229Z" },
|
| 881 |
+
{ url = "https://files.pythonhosted.org/packages/cb/c4/611d66d3fcfa931954d37a19ce5575f3283d023e89ff0df6ad43b334ae9c/numpy-2.4.5-cp311-cp311-win_arm64.whl", hash = "sha256:d6c78e260b53affe9b395a9d54fc61f101f9521c4d9452c7e9e3718b19e2215b", size = 10479452, upload-time = "2026-05-15T20:22:47.962Z" },
|
| 882 |
+
{ url = "https://files.pythonhosted.org/packages/6c/18/3275231e98620002681c922e792db04d72c356e9d8073c387344fc0e4ff1/numpy-2.4.5-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:654fb8674b61b1c4bd568f944d13a908566fdcb0d797303521d4149d16da05ef", size = 16689166, upload-time = "2026-05-15T20:22:50.761Z" },
|
| 883 |
+
{ url = "https://files.pythonhosted.org/packages/db/23/000aab6a16bdec53307f0f72546b57a3ac9266a62d8c257bee97d85fd078/numpy-2.4.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4cd9f6fa7ce10dc4627f2bb81dd9075dab67e94632e04c2b638e12575ddaa862", size = 14699514, upload-time = "2026-05-15T20:22:53.678Z" },
|
| 884 |
+
{ url = "https://files.pythonhosted.org/packages/47/cc/ddaf3af9c46966fef5be879256f213d85a0c56c75d07a3b7defec7cf6b4c/numpy-2.4.5-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:4f5bc96d35d94e4ceab8b38a92241b4611e95dc44e63b9f1fa2a331858ee3507", size = 5204601, upload-time = "2026-05-15T20:22:56.257Z" },
|
| 885 |
+
{ url = "https://files.pythonhosted.org/packages/07/ea/627fadd11959b3c7759008f34c92a35af8ff942dd8284a66ced648bbe516/numpy-2.4.5-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:4bb33e900ee81730ad77a258965134aa8ceac805124f7e5229347beda4b8d0aa", size = 6551360, upload-time = "2026-05-15T20:22:58.334Z" },
|
| 886 |
+
{ url = "https://files.pythonhosted.org/packages/a1/47/0728b986b8682d742ff68c16baa5af9d185484abfc635c5cc700f44e62be/numpy-2.4.5-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:32f8f852273ef32b291201ac2a2c97629c4a1ee8632bb670e3443eaa09fc2e72", size = 15671157, upload-time = "2026-05-15T20:23:01.081Z" },
|
| 887 |
+
{ url = "https://files.pythonhosted.org/packages/d1/0b/b905ae82d9419dc38123523862db64978ca2954b69609c3ae8fdaca1084c/numpy-2.4.5-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:685681e956fc8dcb75adc6ff26694e1dfd738b24bd8d4696c51ca0110157f912", size = 16645703, upload-time = "2026-05-15T20:23:04.358Z" },
|
| 888 |
+
{ url = "https://files.pythonhosted.org/packages/5f/24/e27fc3f5236b4118ed9eed67111675f5c61a07ea333acec87c869c3b359d/numpy-2.4.5-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6f64dd84b277a737eb59513f6b9bb6195bf41ab11941ef15b2562dbab43fa8ef", size = 17021018, upload-time = "2026-05-15T20:23:07.021Z" },
|
| 889 |
+
{ url = "https://files.pythonhosted.org/packages/d3/a7/9041af38d527ab80a06a93570a77e29425b41507ad41f6acf5da78cfb4a4/numpy-2.4.5-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b42d9496f79e3a728192f05a42d86e36163217b7cdecb3813d0028a0aa6b72d7", size = 18368768, upload-time = "2026-05-15T20:23:09.44Z" },
|
| 890 |
+
{ url = "https://files.pythonhosted.org/packages/49/82/326a014442f32c2663434fd424d9298791f47f8a0f17585ad60519a5606e/numpy-2.4.5-cp312-cp312-win32.whl", hash = "sha256:86d980970f5110595ca14855768073b08585fc1acc36895de303e039e7dee4a5", size = 5962819, upload-time = "2026-05-15T20:23:11.631Z" },
|
| 891 |
+
{ url = "https://files.pythonhosted.org/packages/3c/f0/cbf5d391b0b3a5e8cad264603e2fae256b0bde8ce43566b13b78faedc659/numpy-2.4.5-cp312-cp312-win_amd64.whl", hash = "sha256:3333dba6a4e611d666f69e177ba8fe4140366ff681a5feb2374d3fd4fff3acb6", size = 12321621, upload-time = "2026-05-15T20:23:14.305Z" },
|
| 892 |
+
{ url = "https://files.pythonhosted.org/packages/3c/d0/0f18909d9bc37a5f3f969fc737d2bb5df9f2ff295f71b467e6f52a0d6c4e/numpy-2.4.5-cp312-cp312-win_arm64.whl", hash = "sha256:4593d197270b894efeb538dcbe227e4bcf1c77f88c4c6bf933ead812cfaa4453", size = 10221430, upload-time = "2026-05-15T20:23:16.887Z" },
|
| 893 |
+
{ url = "https://files.pythonhosted.org/packages/e3/a4/fb50657c7cab297bf34edcd60a074cb0647f61771430d6363575274160fe/numpy-2.4.5-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:1ef248460b645c102026b82337cc4e88231909c66dd77b59ec6d6cac7e44f277", size = 16684760, upload-time = "2026-05-15T20:23:19.436Z" },
|
| 894 |
+
{ url = "https://files.pythonhosted.org/packages/3e/43/87e731299b9408eda705b3b9cb31c7bceb9347d2af9cbb16b2b1e4b5bc0f/numpy-2.4.5-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:4603622bdcdbf8dccb1d9d5b21d16a7aa4e473ae6c8e14048d846fd4ca2907a0", size = 14694117, upload-time = "2026-05-15T20:23:21.832Z" },
|
| 895 |
+
{ url = "https://files.pythonhosted.org/packages/a9/c7/0b2bb8acea222e9dd6e582afc2bc553b89b8833cbdccc68e68f050fb31f8/numpy-2.4.5-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:6c18d49c67689c562854b53fdc433b93e47c12952aa6fa6d59f185e1a5992419", size = 5199141, upload-time = "2026-05-15T20:23:24.066Z" },
|
| 896 |
+
{ url = "https://files.pythonhosted.org/packages/39/60/b6972b5d47033d90000f0097c81a98b9486589a2d7003bf725bff275cb0d/numpy-2.4.5-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:b1c663ddc641f4192e90511bec61a09bc231e3bbdb996cdc6edbcaa0e528d685", size = 6546954, upload-time = "2026-05-15T20:23:26.099Z" },
|
| 897 |
+
{ url = "https://files.pythonhosted.org/packages/c1/e9/ed667cb12c11ca0adde431f685d3a5dd78e6f78b27228c581c8415198e9e/numpy-2.4.5-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:93793222b524f692f12b2f8752ce8b1d9d9125b2bfd5dbf0fb69c92c5e1ce86c", size = 15669430, upload-time = "2026-05-15T20:23:28.147Z" },
|
| 898 |
+
{ url = "https://files.pythonhosted.org/packages/44/e5/679f6ffeb01294b0008e5ada4a113cb47617bc0e1819a529fd7973c6d7f4/numpy-2.4.5-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1616bde34b2bcba2fa9bde06217ce00da4f3d1bdfb264d54525a99e8fe170d83", size = 16633390, upload-time = "2026-05-15T20:23:31.622Z" },
|
| 899 |
+
{ url = "https://files.pythonhosted.org/packages/36/46/42bfffc9a780ec902ccd7470d3219192ee82b7b442710307dd85b4d121b0/numpy-2.4.5-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:09d7d97da1c2c62f4818b3e150a57572ff8dcf1cf5ac501aac832ffd4ebd9566", size = 17020709, upload-time = "2026-05-15T20:23:34.08Z" },
|
| 900 |
+
{ url = "https://files.pythonhosted.org/packages/44/00/3e840bfee0cc6cec22209f2c97057f26eeb30de031e4933b4dfc0395416c/numpy-2.4.5-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:2d68d0b355ab2e39fe0de59001d7151dfdbbb880ef67baeed806661e03df5097", size = 18357818, upload-time = "2026-05-15T20:23:36.965Z" },
|
| 901 |
+
{ url = "https://files.pythonhosted.org/packages/72/cb/3447b400b9da84134575486f0f656541559b00d4b262477bce9b678bbca8/numpy-2.4.5-cp313-cp313-win32.whl", hash = "sha256:fe28b64777ddfa0eca9b5f51474034ebe3dcb8324f48f27b28f479085673ae33", size = 5961114, upload-time = "2026-05-15T20:23:39.586Z" },
|
| 902 |
+
{ url = "https://files.pythonhosted.org/packages/28/f9/a90d2220ffcdc0798f5d55bb5d5463cd6254ec9ef43f384dae80217d7a2f/numpy-2.4.5-cp313-cp313-win_amd64.whl", hash = "sha256:fb4a6c9c537d6ccec9cc4aeae4261bd3cc79b070c67ddc0646f5b1c07fddde42", size = 12318553, upload-time = "2026-05-15T20:23:41.436Z" },
|
| 903 |
+
{ url = "https://files.pythonhosted.org/packages/b8/c9/96f531fb3234545315152d34efdf3de7daee81254448447eb619e8d16967/numpy-2.4.5-cp313-cp313-win_arm64.whl", hash = "sha256:6d7df2da2e7ea0624a43aa368104b3a3ce14aae98ad4bb2c9a93fecef76f1c97", size = 10222200, upload-time = "2026-05-15T20:23:43.681Z" },
|
| 904 |
+
{ url = "https://files.pythonhosted.org/packages/e1/f4/a291caab5a3c520babf93ff77c54fd5fdb1ebbc3296cee2eb2146ce773b1/numpy-2.4.5-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:2a235607a18df941760a695927051af4b1cd5d3ee85840d0e2af816785771feb", size = 14821438, upload-time = "2026-05-15T20:23:45.911Z" },
|
| 905 |
+
{ url = "https://files.pythonhosted.org/packages/85/26/13dbb1159b864370568e7309063fd72667984df89db74e9caeb175d067c7/numpy-2.4.5-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:58dcf64969d870f36bc7fbd557d2617e997db7dc06261b6e3327148ea460d0a4", size = 5326663, upload-time = "2026-05-15T20:23:48.18Z" },
|
| 906 |
+
{ url = "https://files.pythonhosted.org/packages/7c/99/d233408072a0e019e2288e27edd23f7d572ccd4a73d1539baa3270ede85d/numpy-2.4.5-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:235f54b0156274d8fa3155db3ed6d2f401c7e8f3367c90db0a12f02a58fde6ed", size = 6646874, upload-time = "2026-05-15T20:23:49.856Z" },
|
| 907 |
+
{ url = "https://files.pythonhosted.org/packages/c5/00/eeb6f193dfe767725e952e0464f3e51f44145c5dd261cd7389aa36ac0713/numpy-2.4.5-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ef3b5bb65437a3555c648e706475db01c645559ca80dc8b03e4f202ea757e0d6", size = 15728147, upload-time = "2026-05-15T20:23:51.655Z" },
|
| 908 |
+
{ url = "https://files.pythonhosted.org/packages/e5/c9/b8ed039f1fde1b13a8807c893e7e2f9432a379f4d6401edecf0028da5b2c/numpy-2.4.5-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7f09a7e5f017d7098c66522097c96257411c9620c0926212200d66bc8cee3976", size = 16681770, upload-time = "2026-05-15T20:23:53.933Z" },
|
| 909 |
+
{ url = "https://files.pythonhosted.org/packages/11/5b/0198ef6cb7016eca6d895d392106012138127fab23f46637e76d5e25c9f5/numpy-2.4.5-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:993a88d8fdd8554466a8765cd8bacd97ba56b70ca6b0a04bcdca77f5afed4222", size = 17086218, upload-time = "2026-05-15T20:23:56.646Z" },
|
| 910 |
+
{ url = "https://files.pythonhosted.org/packages/f0/fe/8821f3cfc660ae84c92ee158505941874b62c56a42e035a41425228cd8cf/numpy-2.4.5-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:84f58bed609b5669f5ad3d597901a4f1f86ee5b3c3708aaa55f05b4fe6e0f656", size = 18403542, upload-time = "2026-05-15T20:23:59.173Z" },
|
| 911 |
+
{ url = "https://files.pythonhosted.org/packages/0e/00/e64ecaf498865e7b091f57658b2c522503e5d1b70e43b807f5f8247e1d88/numpy-2.4.5-cp313-cp313t-win32.whl", hash = "sha256:7200c58f3f933ca61e66346667dcc8510bb111995e9ce15398a731e6a4afa4bb", size = 6084903, upload-time = "2026-05-15T20:24:01.506Z" },
|
| 912 |
+
{ url = "https://files.pythonhosted.org/packages/20/c0/354997dedaf74e8311c2cf9a6027b476fd8d424cb92189cc0ae2b25f501c/numpy-2.4.5-cp313-cp313t-win_amd64.whl", hash = "sha256:c26c71080d35db5002102f5d9ff614d45de02aa1f7802943e691e063e5ee93bc", size = 12458420, upload-time = "2026-05-15T20:24:03.735Z" },
|
| 913 |
+
{ url = "https://files.pythonhosted.org/packages/66/dc/917ee5ea4a31ca1a6e4c9a85386477efa318dcc60db257c5ef4adda096c1/numpy-2.4.5-cp313-cp313t-win_arm64.whl", hash = "sha256:2caa576d1707b275cba1aeb60a5c50daa6fa2a3f28ecb08123bc05fd439005db", size = 10291826, upload-time = "2026-05-15T20:24:06.535Z" },
|
| 914 |
+
{ url = "https://files.pythonhosted.org/packages/ca/c1/3be0bf102fc17cff5bd142e3be0bfffabec6fa46da0a462396c76b0765d0/numpy-2.4.5-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:889ca2c072315de638a5194a772aa1fa2df92bdd6175f6a222d4784040424b61", size = 16683455, upload-time = "2026-05-15T20:24:08.988Z" },
|
| 915 |
+
{ url = "https://files.pythonhosted.org/packages/e8/3e/0742d724901fa36bc54b338c6e62e463a7601180da896aa44978f0adf004/numpy-2.4.5-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:89e89304fb1f8c3f0ecfa4a7d48f311dd79771336a940e920159d643d1307e77", size = 14704577, upload-time = "2026-05-15T20:24:11.542Z" },
|
| 916 |
+
{ url = "https://files.pythonhosted.org/packages/25/1c/196c610ff4c6782d697ba780ebdc1616be143213701bf22c1a270f3bf7dd/numpy-2.4.5-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:144fcc5a3a17679b2b82543b4a2d8dd29937230a7af13232b5f753872feb6361", size = 5209756, upload-time = "2026-05-15T20:24:14.091Z" },
|
| 917 |
+
{ url = "https://files.pythonhosted.org/packages/52/c0/23fb1bc506f774e03db66219a2830e720f4d3dbcaaddf855a7ff7bb6d96f/numpy-2.4.5-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:398bb16772b265b9fa5c07b07072646ea97137c10ffb62a9a087b277fc825c29", size = 6543937, upload-time = "2026-05-15T20:24:16.223Z" },
|
| 918 |
+
{ url = "https://files.pythonhosted.org/packages/9f/49/db4662c26e68520afcc84d672a6f9f5294063dee0e57a46d61afdaa7f9ed/numpy-2.4.5-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:fb352e7b8876da1249e72254736d6c58c505fa4e58a3d7e30efca241ca9ca9ce", size = 15685292, upload-time = "2026-05-15T20:24:17.978Z" },
|
| 919 |
+
{ url = "https://files.pythonhosted.org/packages/43/80/1315439acedd8398319bac177d6de3d48ab39c62cc0c810f74f0a9a73996/numpy-2.4.5-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7341b08ff8124d7353939778e2707b8732d03c78c1c30e0815aba2dacbe1245a", size = 16638528, upload-time = "2026-05-15T20:24:20.478Z" },
|
| 920 |
+
{ url = "https://files.pythonhosted.org/packages/56/81/364388600932618fe735d97fdd2437cb8dd87a23377ac11d8b9d5db098b7/numpy-2.4.5-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:deb01226f012539f3945261ffe1c10aec081a0fa0a5c925419933c70f3ae2d23", size = 17036709, upload-time = "2026-05-15T20:24:22.949Z" },
|
| 921 |
+
{ url = "https://files.pythonhosted.org/packages/32/4a/a1185b18a94a6d9587e54b437e7d0ba36ecf6e614f1bea03f5249912c64e/numpy-2.4.5-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:d888bdf7335f76878c3c7b264ac1ff089863e211ec81249f9fb5795c2183dc25", size = 18363254, upload-time = "2026-05-15T20:24:25.402Z" },
|
| 922 |
+
{ url = "https://files.pythonhosted.org/packages/b9/8e/95c1d2ed15ae97750ede8c8a0ac487c9c01207afff430f47078b1d9d7dc5/numpy-2.4.5-cp314-cp314-win32.whl", hash = "sha256:15f90d1256e9b2320aff24fde44815b787ab6d7c49a1a11bfd8138b321c5f080", size = 6010184, upload-time = "2026-05-15T20:24:27.852Z" },
|
| 923 |
+
{ url = "https://files.pythonhosted.org/packages/aa/92/d063df4d63d988b20d881856c74df76c0c1786229bb870f3a52af0981d4d/numpy-2.4.5-cp314-cp314-win_amd64.whl", hash = "sha256:4bd2cd4ef9c0afa87de73723c0a33c0edff62143e1432917458e26d3d195d87f", size = 12450344, upload-time = "2026-05-15T20:24:29.856Z" },
|
| 924 |
+
{ url = "https://files.pythonhosted.org/packages/3d/64/c0ae481f7c3b2f85869bcd8fc5d30aa7c96b394162eef9c9315957f115c5/numpy-2.4.5-cp314-cp314-win_arm64.whl", hash = "sha256:db304568c650e9d7039744d3575d0d287754debb2057d7c7b8cdfdc2c487a957", size = 10495674, upload-time = "2026-05-15T20:24:32.352Z" },
|
| 925 |
+
{ url = "https://files.pythonhosted.org/packages/57/89/c5a4c677acf17aa50ba09a15e61812f90baac42bb6ca38d112e005858351/numpy-2.4.5-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:6de2883e0d2c63eae1bab1a84b390dca74aabb3d20ea1f5d58f360853c83abf3", size = 14824078, upload-time = "2026-05-15T20:24:34.669Z" },
|
| 926 |
+
{ url = "https://files.pythonhosted.org/packages/e7/52/57e7144284f6b51ba93523e495ff239260b1ecd5257e3700a436332e5688/numpy-2.4.5-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:06760fe73ae5005008748d182de612c733542af3cde063d532cd2127561b27be", size = 5329246, upload-time = "2026-05-15T20:24:36.957Z" },
|
| 927 |
+
{ url = "https://files.pythonhosted.org/packages/b9/b3/09dbce80fd4a7db4318f2fc01eec0ae76f29306442b5a32d4b811d082cdf/numpy-2.4.5-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:4b51a01745cb04cc19278482207444b4d30728ce91c28d27a3bfae5fc6ff24c7", size = 6649877, upload-time = "2026-05-15T20:24:38.861Z" },
|
| 928 |
+
{ url = "https://files.pythonhosted.org/packages/30/c2/dbdb23e82d540b757690ef13f011c386fca6a63848eec6136baf8ce7cbed/numpy-2.4.5-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9a05636d7937d0936f271e5ba957fa8d746b5be3c2025caa1a2508f4fe521d40", size = 15730534, upload-time = "2026-05-15T20:24:41.168Z" },
|
| 929 |
+
{ url = "https://files.pythonhosted.org/packages/c4/bd/68f6e9b3c20decf40ac06708a7b506757e3a8588efed32988d1b747316be/numpy-2.4.5-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:14b86f56048ed09c3bbe48962a7dff077c2fd3274f8cf981800f3b38eac49cc3", size = 16679741, upload-time = "2026-05-15T20:24:44.874Z" },
|
| 930 |
+
{ url = "https://files.pythonhosted.org/packages/39/1d/0fcac0b6b4ea1b50ca8fca05a34bed5c8d56e34c1cb5ffb04cf76109ac3c/numpy-2.4.5-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:130d58151c4db23e9fa860b84784e219a3aa3e030acc88a493ea37006c4dfd4c", size = 17085598, upload-time = "2026-05-15T20:24:47.603Z" },
|
| 931 |
+
{ url = "https://files.pythonhosted.org/packages/0b/e8/a472b2564cf6cc498ad7aa9741d9832648221b8ab8cc0dbef41faa248ede/numpy-2.4.5-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:d475afc8cbe935ff5944f753d863bba774d7f4e1feaaa4102901e3e053ca5963", size = 18403855, upload-time = "2026-05-15T20:24:50.474Z" },
|
| 932 |
+
{ url = "https://files.pythonhosted.org/packages/b9/a4/da82196f8cc4bd28ecf17bd57008c84f3d4696caf06753d9bad45e4ad749/numpy-2.4.5-cp314-cp314t-win32.whl", hash = "sha256:27f4a6dc26353a860b348961b9aa9e009835688b435cfa105e873b8dc2c726f5", size = 6156900, upload-time = "2026-05-15T20:24:53.134Z" },
|
| 933 |
+
{ url = "https://files.pythonhosted.org/packages/98/31/860959b91a73d9a085006554fa3850da51a7ffab64599bac5097243438ab/numpy-2.4.5-cp314-cp314t-win_amd64.whl", hash = "sha256:76ac6e90f5e226011c88f9b7040a4bcae612518bc7e9adc127e697a13b28ad1a", size = 12638906, upload-time = "2026-05-15T20:24:55.009Z" },
|
| 934 |
+
{ url = "https://files.pythonhosted.org/packages/9e/2a/bbd3097913083ad07c0f28fc9629666221fc18923e17ce97ae22a5dccdd6/numpy-2.4.5-cp314-cp314t-win_arm64.whl", hash = "sha256:7c392e2c1bf596701d3c6832be7567eab5d5b0a13865036c33365ee097d37f8b", size = 10565875, upload-time = "2026-05-15T20:24:57.425Z" },
|
| 935 |
+
{ url = "https://files.pythonhosted.org/packages/fc/5d/9a644cfb841bc76b584afc3af1708b3bf6c5cb51fc84a7008246cd93b7b7/numpy-2.4.5-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:6bf0bfc1c2e1db972e30b6cd3d4861f477f3af908b27799b239dc3cbe3eb4b95", size = 16847544, upload-time = "2026-05-15T20:24:59.746Z" },
|
| 936 |
+
{ url = "https://files.pythonhosted.org/packages/56/8f/4fe5e3ba76d858dae1fe79078818c0520447335be0082c0dedf82719cc08/numpy-2.4.5-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:73d664413fb97229149c4711ef56531a6fe8c15c1c2626b0bbe497b84c287e70", size = 14889039, upload-time = "2026-05-15T20:25:03.179Z" },
|
| 937 |
+
{ url = "https://files.pythonhosted.org/packages/8e/6f/79f195abf922ecc43e7d0eb6cc969462a71b524a35bcd1fa26b4a1d7406a/numpy-2.4.5-pp311-pypy311_pp73-macosx_14_0_arm64.whl", hash = "sha256:b35bee5ef99e8d227a07829bee2e864fcb65f7c157646fcd8ec8b4b45dd8b88f", size = 5394106, upload-time = "2026-05-15T20:25:05.659Z" },
|
| 938 |
+
{ url = "https://files.pythonhosted.org/packages/58/6f/79cd6247205802bcbd10b40ea087e20ded526e10e9be224d34de832b216e/numpy-2.4.5-pp311-pypy311_pp73-macosx_14_0_x86_64.whl", hash = "sha256:02981d0fc9f9ce147643d552966d47f329a02f7ecb3b113e84207242f20dfa83", size = 6708718, upload-time = "2026-05-15T20:25:08.071Z" },
|
| 939 |
+
{ url = "https://files.pythonhosted.org/packages/d7/22/5f378a9d4633c98f28c4709d4144b1a4630c5c09e109d2e781e2d26c8fe1/numpy-2.4.5-pp311-pypy311_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0e63caf31a1df06338ae63d999f7a33a675ced62eea9c9b02db4b1c1f45cff38", size = 15798292, upload-time = "2026-05-15T20:25:10.689Z" },
|
| 940 |
+
{ url = "https://files.pythonhosted.org/packages/63/1c/cec582febef798c99888892d92dc1d28dfe29cb427c41f44d13d0dec208f/numpy-2.4.5-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d8fc52b85a7b45e474be53eddf08e006d22e381a4e41bcde8e4aa08da0e7d198", size = 16747406, upload-time = "2026-05-15T20:25:13.879Z" },
|
| 941 |
+
{ url = "https://files.pythonhosted.org/packages/b1/dc/d358a16a6fec86cf736b8fbe67386044b3fa2aded1a80cff90e836799301/numpy-2.4.5-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:40c71d50a4da1a7c317af419461052d3911a5770bfc5fd55baf52cc45e7a2c20", size = 12504085, upload-time = "2026-05-15T20:25:16.667Z" },
|
| 942 |
+
]
|
| 943 |
+
|
| 944 |
+
[[package]]
|
|
|
|
|
|
|
| 945 |
name = "openai"
|
| 946 |
+
version = "2.37.0"
|
| 947 |
source = { registry = "https://pypi.org/simple" }
|
| 948 |
dependencies = [
|
| 949 |
{ name = "anyio" },
|
|
|
|
| 955 |
{ name = "tqdm" },
|
| 956 |
{ name = "typing-extensions" },
|
| 957 |
]
|
| 958 |
+
sdist = { url = "https://files.pythonhosted.org/packages/32/50/5901f01ef14e6c27788beb91e54fef5d6204fb5fb9e97402fc8a14de2e32/openai-2.37.0.tar.gz", hash = "sha256:f4bc562cc5f3a43d40d678105572d9d44765f6e0f50c125f63055419b72f4bd9", size = 754706, upload-time = "2026-05-15T22:30:35.428Z" }
|
| 959 |
wheels = [
|
| 960 |
+
{ url = "https://files.pythonhosted.org/packages/ed/4c/bce61680d0699a78a405fd9a67989b175ba020590428831aab2ab1d2be7c/openai-2.37.0-py3-none-any.whl", hash = "sha256:814633888b8f3b1ffd6615697c6e4ef93632d08b7c2e28c8c5ef3556e5a10107", size = 1303238, upload-time = "2026-05-15T22:30:32.767Z" },
|
| 961 |
]
|
| 962 |
|
| 963 |
[[package]]
|
|
|
|
| 1086 |
]
|
| 1087 |
|
| 1088 |
[[package]]
|
|
|
|
| 1089 |
name = "pandas"
|
| 1090 |
version = "3.0.3"
|
| 1091 |
source = { registry = "https://pypi.org/simple" }
|
|
|
|
| 1233 |
]
|
| 1234 |
|
| 1235 |
[[package]]
|
|
|
|
|
|
|
| 1236 |
name = "pydantic"
|
| 1237 |
version = "2.13.4"
|
| 1238 |
source = { registry = "https://pypi.org/simple" }
|
|
|
|
| 1350 |
]
|
| 1351 |
|
| 1352 |
[[package]]
|
|
|
|
| 1353 |
name = "pydub"
|
| 1354 |
version = "0.25.1"
|
| 1355 |
source = { registry = "https://pypi.org/simple" }
|
|
|
|
| 1359 |
]
|
| 1360 |
|
| 1361 |
[[package]]
|
|
|
|
|
|
|
| 1362 |
name = "pygments"
|
| 1363 |
version = "2.20.0"
|
| 1364 |
source = { registry = "https://pypi.org/simple" }
|
|
|
|
| 1368 |
]
|
| 1369 |
|
| 1370 |
[[package]]
|
|
|
|
| 1371 |
name = "python-dateutil"
|
| 1372 |
version = "2.9.0.post0"
|
| 1373 |
source = { registry = "https://pypi.org/simple" }
|
|
|
|
| 1380 |
]
|
| 1381 |
|
| 1382 |
[[package]]
|
|
|
|
|
|
|
| 1383 |
name = "python-dotenv"
|
| 1384 |
version = "1.2.2"
|
| 1385 |
source = { registry = "https://pypi.org/simple" }
|
|
|
|
| 1389 |
]
|
| 1390 |
|
| 1391 |
[[package]]
|
|
|
|
| 1392 |
name = "python-multipart"
|
| 1393 |
+
version = "0.0.29"
|
| 1394 |
source = { registry = "https://pypi.org/simple" }
|
| 1395 |
+
sdist = { url = "https://files.pythonhosted.org/packages/4e/fe/70bd71a6738b09a0bdf6480ca6436b167469ca4578b2a0efbe390b4b0e70/python_multipart-0.0.29.tar.gz", hash = "sha256:643e93849196645e2dbdd81a0f8829a23123ad7f797a84a364c6fb3563f18904", size = 45678, upload-time = "2026-05-17T17:29:47.654Z" }
|
| 1396 |
wheels = [
|
| 1397 |
+
{ url = "https://files.pythonhosted.org/packages/8f/cb/769cfc37177252872a45a71f3fbdde9d51b471a3f3c14bfe95dde3407386/python_multipart-0.0.29-py3-none-any.whl", hash = "sha256:2ddcc971cef266225f54f552d8fa10bcfbb1f14446caec199060daac59ff2d69", size = 29640, upload-time = "2026-05-17T17:29:45.69Z" },
|
| 1398 |
]
|
| 1399 |
|
| 1400 |
[[package]]
|
|
|
|
| 1407 |
]
|
| 1408 |
|
| 1409 |
[[package]]
|
|
|
|
|
|
|
| 1410 |
name = "pyyaml"
|
| 1411 |
version = "6.0.3"
|
| 1412 |
source = { registry = "https://pypi.org/simple" }
|
|
|
|
| 1463 |
|
| 1464 |
[[package]]
|
| 1465 |
name = "requests"
|
| 1466 |
+
version = "2.34.2"
|
| 1467 |
source = { registry = "https://pypi.org/simple" }
|
| 1468 |
dependencies = [
|
| 1469 |
{ name = "certifi" },
|
|
|
|
| 1471 |
{ name = "idna" },
|
| 1472 |
{ name = "urllib3" },
|
| 1473 |
]
|
| 1474 |
+
sdist = { url = "https://files.pythonhosted.org/packages/ac/c3/e2a2b89f2d3e2179abd6d00ebd70bff6273f37fb3e0cc209f48b39d00cbf/requests-2.34.2.tar.gz", hash = "sha256:f288924cae4e29463698d6d60bc6a4da69c89185ad1e0bcc4104f584e960b9ed", size = 142856, upload-time = "2026-05-14T19:25:27.735Z" }
|
| 1475 |
wheels = [
|
| 1476 |
+
{ url = "https://files.pythonhosted.org/packages/a0/f4/c67b0b3f1b9245e8d266f0f112c500d50e5b4e83cb6f3b71b6528104182a/requests-2.34.2-py3-none-any.whl", hash = "sha256:2a0d60c172f83ac6ab31e4554906c0f3b3588d37b5cb939b1c061f4907e278e0", size = 73075, upload-time = "2026-05-14T19:25:26.443Z" },
|
| 1477 |
]
|
| 1478 |
|
| 1479 |
[[package]]
|
|
|
|
| 1502 |
]
|
| 1503 |
|
| 1504 |
[[package]]
|
|
|
|
| 1505 |
name = "safehttpx"
|
| 1506 |
version = "0.1.7"
|
| 1507 |
source = { registry = "https://pypi.org/simple" }
|
|
|
|
| 1541 |
]
|
| 1542 |
|
| 1543 |
[[package]]
|
|
|
|
|
|
|
| 1544 |
name = "sniffio"
|
| 1545 |
version = "1.3.1"
|
| 1546 |
source = { registry = "https://pypi.org/simple" }
|
|
|
|
| 1550 |
]
|
| 1551 |
|
| 1552 |
[[package]]
|
|
|
|
| 1553 |
name = "starlette"
|
| 1554 |
version = "1.0.0"
|
| 1555 |
source = { registry = "https://pypi.org/simple" }
|
|
|
|
| 1563 |
]
|
| 1564 |
|
| 1565 |
[[package]]
|
|
|
|
|
|
|
| 1566 |
name = "tenacity"
|
| 1567 |
version = "9.1.4"
|
| 1568 |
source = { registry = "https://pypi.org/simple" }
|
|
|
|
| 1572 |
]
|
| 1573 |
|
| 1574 |
[[package]]
|
|
|
|
| 1575 |
name = "tomlkit"
|
| 1576 |
version = "0.14.0"
|
| 1577 |
source = { registry = "https://pypi.org/simple" }
|
|
|
|
| 1581 |
]
|
| 1582 |
|
| 1583 |
[[package]]
|
|
|
|
|
|
|
| 1584 |
name = "tqdm"
|
| 1585 |
version = "4.67.3"
|
| 1586 |
source = { registry = "https://pypi.org/simple" }
|
|
|
|
| 1593 |
]
|
| 1594 |
|
| 1595 |
[[package]]
|
|
|
|
| 1596 |
name = "typer"
|
| 1597 |
version = "0.25.1"
|
| 1598 |
source = { registry = "https://pypi.org/simple" }
|
|
|
|
| 1608 |
]
|
| 1609 |
|
| 1610 |
[[package]]
|
|
|
|
|
|
|
| 1611 |
name = "typing-extensions"
|
| 1612 |
version = "4.15.0"
|
| 1613 |
source = { registry = "https://pypi.org/simple" }
|
|
|
|
| 1629 |
]
|
| 1630 |
|
| 1631 |
[[package]]
|
|
|
|
| 1632 |
name = "tzdata"
|
| 1633 |
version = "2026.2"
|
| 1634 |
source = { registry = "https://pypi.org/simple" }
|
|
|
|
| 1638 |
]
|
| 1639 |
|
| 1640 |
[[package]]
|
|
|
|
|
|
|
| 1641 |
name = "urllib3"
|
| 1642 |
version = "2.7.0"
|
| 1643 |
source = { registry = "https://pypi.org/simple" }
|
|
|
|
| 1747 |
]
|
| 1748 |
|
| 1749 |
[[package]]
|
|
|
|
| 1750 |
name = "uvicorn"
|
| 1751 |
version = "0.47.0"
|
| 1752 |
source = { registry = "https://pypi.org/simple" }
|
|
|
|
| 1760 |
]
|
| 1761 |
|
| 1762 |
[[package]]
|
|
|
|
|
|
|
| 1763 |
name = "xxhash"
|
| 1764 |
version = "3.7.0"
|
| 1765 |
source = { registry = "https://pypi.org/simple" }
|