Commit
·
67d9b2f
1
Parent(s):
e314d38
Improve HF cache directory fallback to use /tmp when /data not writable
Browse files- app/colorize_model.py +28 -10
app/colorize_model.py
CHANGED
|
@@ -34,8 +34,10 @@ class ColorizeModel:
|
|
| 34 |
self.hf_token = os.getenv("HF_TOKEN") or os.getenv("HUGGINGFACE_HUB_TOKEN") or None
|
| 35 |
|
| 36 |
# Configure writable cache to avoid permission issues on Spaces
|
| 37 |
-
#
|
| 38 |
-
data_dir = os.getenv("DATA_DIR"
|
|
|
|
|
|
|
| 39 |
hf_cache_dir = os.path.join(data_dir, "hf_cache")
|
| 40 |
|
| 41 |
# Set cache environment variables
|
|
@@ -47,20 +49,36 @@ class ColorizeModel:
|
|
| 47 |
os.makedirs(hf_cache_dir, exist_ok=True)
|
| 48 |
logger.info("HF cache directory: %s", hf_cache_dir)
|
| 49 |
except Exception as e:
|
| 50 |
-
# Fallback to
|
| 51 |
-
|
| 52 |
-
|
| 53 |
-
hf_cache_dir =
|
| 54 |
os.environ["HF_HOME"] = hf_cache_dir
|
| 55 |
os.environ["HUGGINGFACE_HUB_CACHE"] = hf_cache_dir
|
| 56 |
os.environ["TRANSFORMERS_CACHE"] = hf_cache_dir
|
| 57 |
try:
|
| 58 |
os.makedirs(hf_cache_dir, exist_ok=True)
|
| 59 |
-
logger.info("HF cache directory (
|
| 60 |
-
except Exception as
|
| 61 |
-
|
| 62 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 63 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 64 |
# Avoid libgomp warning by setting a valid integer
|
| 65 |
os.environ.setdefault("OMP_NUM_THREADS", "1")
|
| 66 |
|
|
|
|
| 34 |
self.hf_token = os.getenv("HF_TOKEN") or os.getenv("HUGGINGFACE_HUB_TOKEN") or None
|
| 35 |
|
| 36 |
# Configure writable cache to avoid permission issues on Spaces
|
| 37 |
+
# Prefer DATA_DIR if available, otherwise fallback to /tmp
|
| 38 |
+
data_dir = os.getenv("DATA_DIR")
|
| 39 |
+
if not data_dir:
|
| 40 |
+
data_dir = "/tmp"
|
| 41 |
hf_cache_dir = os.path.join(data_dir, "hf_cache")
|
| 42 |
|
| 43 |
# Set cache environment variables
|
|
|
|
| 49 |
os.makedirs(hf_cache_dir, exist_ok=True)
|
| 50 |
logger.info("HF cache directory: %s", hf_cache_dir)
|
| 51 |
except Exception as e:
|
| 52 |
+
# Fallback to /tmp/hf_cache if DATA_DIR was set but not writable
|
| 53 |
+
tmp_cache_dir = os.path.join("/tmp", "hf_cache")
|
| 54 |
+
logger.warning("Failed to create cache in %s: %s, trying %s", data_dir, str(e), tmp_cache_dir)
|
| 55 |
+
hf_cache_dir = tmp_cache_dir
|
| 56 |
os.environ["HF_HOME"] = hf_cache_dir
|
| 57 |
os.environ["HUGGINGFACE_HUB_CACHE"] = hf_cache_dir
|
| 58 |
os.environ["TRANSFORMERS_CACHE"] = hf_cache_dir
|
| 59 |
try:
|
| 60 |
os.makedirs(hf_cache_dir, exist_ok=True)
|
| 61 |
+
logger.info("HF cache directory (tmp): %s", hf_cache_dir)
|
| 62 |
+
except Exception as e_tmp:
|
| 63 |
+
# Final fallback to user home (local dev)
|
| 64 |
+
logger.warning("Failed to create cache in /tmp: %s, trying user home", str(e_tmp))
|
| 65 |
+
default_home_cache = os.path.join(os.path.expanduser("~"), ".cache", "huggingface")
|
| 66 |
+
hf_cache_dir = default_home_cache
|
| 67 |
+
os.environ["HF_HOME"] = hf_cache_dir
|
| 68 |
+
os.environ["HUGGINGFACE_HUB_CACHE"] = hf_cache_dir
|
| 69 |
+
os.environ["TRANSFORMERS_CACHE"] = hf_cache_dir
|
| 70 |
+
try:
|
| 71 |
+
os.makedirs(hf_cache_dir, exist_ok=True)
|
| 72 |
+
logger.info("HF cache directory (home): %s", hf_cache_dir)
|
| 73 |
+
except Exception as e2:
|
| 74 |
+
logger.error("Failed to create cache directory: %s", str(e2))
|
| 75 |
+
raise RuntimeError(f"Cannot create Hugging Face cache directory: {str(e2)}")
|
| 76 |
|
| 77 |
+
else:
|
| 78 |
+
# Ensure environment variables reflect the final cache dir
|
| 79 |
+
os.environ["HF_HOME"] = hf_cache_dir
|
| 80 |
+
os.environ["HUGGINGFACE_HUB_CACHE"] = hf_cache_dir
|
| 81 |
+
os.environ["TRANSFORMERS_CACHE"] = hf_cache_dir
|
| 82 |
# Avoid libgomp warning by setting a valid integer
|
| 83 |
os.environ.setdefault("OMP_NUM_THREADS", "1")
|
| 84 |
|