diff --git a/scmrepo/git/backend/dulwich/__init__.py b/scmrepo/git/backend/dulwich/__init__.py index 761b5548..cbffba18 100644 --- a/scmrepo/git/backend/dulwich/__init__.py +++ b/scmrepo/git/backend/dulwich/__init__.py @@ -78,8 +78,8 @@ def scandir(self) -> Iterable["DulwichObject"]: self.repo, entry.path.decode(), entry.mode, entry.sha ) - @property - def size(self) -> int: + @cached_property + def size(self) -> int: # pylint: disable=invalid-overridden-method return len(self.repo[self.sha].as_raw_string()) @property diff --git a/scmrepo/git/backend/pygit2.py b/scmrepo/git/backend/pygit2.py index 20f82a42..aff2d2c4 100644 --- a/scmrepo/git/backend/pygit2.py +++ b/scmrepo/git/backend/pygit2.py @@ -62,8 +62,8 @@ def mode(self): return stat.S_IFDIR return self.obj.filemode - @property - def size(self) -> int: + @cached_property + def size(self) -> int: # pylint: disable=invalid-overridden-method try: return len(self.obj.read_raw()) except KeyError: