Count model directory contents against the cache quota
This commit is contained in:
parent
6c4b33a418
commit
fb31b3ed83
2 changed files with 17 additions and 1 deletions
|
|
@ -327,7 +327,12 @@ class LargeFileBase(ABC):
|
||||||
[f for f in self.cache_path.glob("*")], key=lambda f: f.stat().st_atime
|
[f for f in self.cache_path.glob("*")], key=lambda f: f.stat().st_atime
|
||||||
)
|
)
|
||||||
|
|
||||||
while sum(os.path.getsize(f) for f in least_recently_read) > allowed_size:
|
def size(path: Path) -> int:
|
||||||
|
if path.is_dir():
|
||||||
|
return sum(f.stat().st_size for f in path.rglob("*") if f.is_file())
|
||||||
|
return path.stat().st_size
|
||||||
|
|
||||||
|
while sum(size(f) for f in least_recently_read) > allowed_size:
|
||||||
file = least_recently_read.pop(0)
|
file = least_recently_read.pop(0)
|
||||||
logger.info(
|
logger.info(
|
||||||
f"Deleting file from cache to meet quota (max_cache_size={self.max_cache_size}): {file}"
|
f"Deleting file from cache to meet quota (max_cache_size={self.max_cache_size}): {file}"
|
||||||
|
|
|
||||||
|
|
@ -45,3 +45,14 @@ def test_cached_directories_can_be_removed(
|
||||||
monkeypatch.setattr(LargeFileLocal, "max_cache_size", "0")
|
monkeypatch.setattr(LargeFileLocal, "max_cache_size", "0")
|
||||||
reader.clean_up()
|
reader.clean_up()
|
||||||
assert not cached.exists()
|
assert not cached.exists()
|
||||||
|
|
||||||
|
|
||||||
|
def test_cache_quota_counts_directory_contents(
|
||||||
|
tmp_path: Path, monkeypatch: pytest.MonkeyPatch
|
||||||
|
) -> None:
|
||||||
|
source = tmp_path / "source"
|
||||||
|
source.mkdir()
|
||||||
|
(source / "weights").write_bytes(b"x" * 100_000)
|
||||||
|
monkeypatch.setattr(LargeFileLocal, "max_cache_size", "1 KB")
|
||||||
|
LargeFileLocal("model", "w").push(source)
|
||||||
|
assert not (LargeFileLocal.cache_path / "model-0").exists()
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue