From 34c2c9511533890fd25d77dd0ea0947605fb0175 Mon Sep 17 00:00:00 2001 From: Ruslan Kuprieiev Date: Mon, 30 Jan 2023 20:18:54 +0200 Subject: [PATCH] index: expose rev property (#8909) index: add rev property This is very useful to identify indexes that are built from git revisions and so are describing an immutable state and can be used for caching. We were already using this for `__repr__`. --- dvc/repo/index.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/dvc/repo/index.py b/dvc/repo/index.py index 2819891fc..f1a7ddbf8 100644 --- a/dvc/repo/index.py +++ b/dvc/repo/index.py @@ -128,10 +128,14 @@ class Index: self._params = params or {} self._collected_targets: Dict[int, List["StageInfo"]] = {} - def __repr__(self) -> str: - rev = "workspace" + @cached_property + def rev(self) -> Optional[str]: if not isinstance(self.repo.fs, LocalFileSystem): - rev = self.repo.get_rev()[:7] + return self.repo.get_rev()[:7] + return None + + def __repr__(self) -> str: + rev = self.rev or "workspace" return f"Index({self.repo}, fs@{rev})" @classmethod