let get_cache_dir ~(run_with: Machine.t) =
let open KEDSL in
let cache_dir = Machine.(get_pyensembl_cache_dir run_with) in
match cache_dir with
| Some path -> path
| None -> failwith "Tool depends on PyEnsembl, but the cache directory has not been set!"