|
import os |
|
from pathlib import Path |
|
from datetime import timedelta |
|
|
|
class CacheConfig: |
|
def __init__(self): |
|
self.base_path = Path(os.getenv("HF_HOME", ".")) |
|
self.cache_ttl = timedelta(minutes=5) |
|
|
|
def get_cache_path(self, cache_type: str = "datasets") -> Path: |
|
"""Get cache path for different cache types""" |
|
cache_path = self.base_path / "cache" / cache_type |
|
cache_path.mkdir(parents=True, exist_ok=True) |
|
return cache_path |
|
|
|
def flush_cache(self, cache_type: str = None): |
|
"""Flush specific cache or all caches""" |
|
if cache_type: |
|
cache_path = self.get_cache_path(cache_type) |
|
for file in cache_path.glob("*"): |
|
if file.is_file(): |
|
file.unlink() |
|
else: |
|
cache_base = self.base_path / "cache" |
|
if cache_base.exists(): |
|
for cache_dir in cache_base.iterdir(): |
|
if cache_dir.is_dir(): |
|
for file in cache_dir.glob("*"): |
|
if file.is_file(): |
|
file.unlink() |
|
|
|
|
|
cache_config = CacheConfig() |