from pathlib import Path from . import trove as tr from .fs import FSTrove from .trovedb import open_db_trove def get_trove(trove_base: str | Path, **kwargs: tr.OpenArguments) -> tr.Trove: path = Path(trove_base) if path.exists(): if path.is_dir(): return FSTrove(path) elif path.is_file(): return open_db_trove(path, **kwargs) raise tr.TroveError(f"Unable to find trove {path}")