import tomllib

found_preview_lance = False

with open("Cargo.toml", "rb") as f:
    cargo_data = tomllib.load(f)

    for name, dep in cargo_data["workspace"]["dependencies"].items():
        if name == "lance" or name.startswith("lance-"):
            if isinstance(dep, str):
                version = dep
            elif isinstance(dep, dict):
                # Version doesn't have the beta tag in it, so we instead look
                # at the git tag.
                version = dep.get("tag", dep.get("version"))
            else:
                raise ValueError("Unexpected type for dependency: " + str(dep))

            if "beta" in version:
                found_preview_lance = True
                print(f"Dependency '{name}' is a preview version: {version}")

with open("python/pyproject.toml", "rb") as f:
    py_proj_data = tomllib.load(f)

    for dep in py_proj_data["project"]["dependencies"]:
        if dep.startswith("pylance"):
            if "b" in dep:
                found_preview_lance = True
                print(f"Dependency '{dep}' is a preview version")
            break  # Only one pylance dependency

if found_preview_lance:
    raise ValueError("Found preview version of Lance in dependencies")
