From 76dd2956a214b1ee7e93a7bef939aad32de98423 Mon Sep 17 00:00:00 2001 From: Abhijeet Prasad Date: Tue, 28 Apr 2026 10:08:04 -0400 Subject: [PATCH] chore: Fix dependency update script --- py/scripts/update-matrix-latest.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/py/scripts/update-matrix-latest.py b/py/scripts/update-matrix-latest.py index 76d5fe4c..8831326c 100644 --- a/py/scripts/update-matrix-latest.py +++ b/py/scripts/update-matrix-latest.py @@ -25,7 +25,7 @@ _PYPROJECT = _PROJECT_DIR / "pyproject.toml" _MATRIX_SECTION_PREFIX = "[tool.braintrust.matrix." _LATEST_LINE_RE = re.compile(r'^(?P\s*)latest\s*=\s*"(?P[^"]+)"(?P\s*(?:#.*)?)$') -_EXACT_REQ_RE = re.compile(r"^(?P[A-Za-z0-9_.-]+)==(?P[^\s]+)$") +_EXACT_REQ_RE = re.compile(r"^(?P[A-Za-z0-9_.-]+)(?P\[[A-Za-z0-9_,.-]+\])?==(?P[^\s]+)$") _USER_AGENT = "braintrust-sdk-python dependency updater" _TIMEOUT_SECS = 30 @@ -46,11 +46,11 @@ def _load_matrix() -> dict[str, str]: return latest_reqs -def _parse_exact_req(req: str) -> tuple[str, str]: +def _parse_exact_req(req: str) -> tuple[str, str, str]: match = _EXACT_REQ_RE.fullmatch(req.strip()) if not match: - raise UpdateError(f"Expected an exact 'package==version' requirement, got: {req}") - return match.group("name"), match.group("version") + raise UpdateError(f"Expected an exact 'package[extras]==version' requirement, got: {req}") + return match.group("name"), match.group("extras") or "", match.group("version") def _fetch_latest_version(package_name: str) -> str: @@ -77,14 +77,14 @@ def _compute_updates() -> dict[str, tuple[str, str]]: updates: dict[str, tuple[str, str]] = {} for matrix_key, current_req in latest_reqs.items(): - package_name, current_version = _parse_exact_req(current_req) + package_name, extras, current_version = _parse_exact_req(current_req) latest_version = package_cache.get(package_name) if latest_version is None: latest_version = _fetch_latest_version(package_name) package_cache[package_name] = latest_version if latest_version != current_version: - updates[matrix_key] = (current_req, f"{package_name}=={latest_version}") + updates[matrix_key] = (current_req, f"{package_name}{extras}=={latest_version}") return updates