def resolve_dependencies()

in scripts/install_deps.py [0:0]


def resolve_dependencies(groups: List[str], optional_deps: Dict[str, List[str]]) -> List[str]:
    """Resolve dependencies, including references to other groups."""
    resolved = set()
    stack = list(groups)  # Stack to process groups

    while stack:
        group = stack.pop()
        if group not in optional_deps:
            raise ValueError(
                f"Group '{group}' does not exist in optional dependencies. Optional groups: {', '.join(optional_deps)}"
            )

        for dep in optional_deps[group]:
            if dep.startswith("arctic_training["):  # Handle group references
                ref_group = dep.split("[")[1].rstrip("]")
                stack.append(ref_group)
            else:
                resolved.add(dep)

    return sorted(resolved)  # Return sorted list for consistency