LogicGoInfotechSpaces commited on
Commit
67d9b2f
·
1 Parent(s): e314d38

Improve HF cache directory fallback to use /tmp when /data not writable

Browse files
Files changed (1) hide show
  1. 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
- # Use /data directory which is writable in Hugging Face Spaces
38
- data_dir = os.getenv("DATA_DIR", "/data")
 
 
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 user home if /data is not available (local dev)
51
- logger.warning("Failed to create cache in /data: %s, trying home directory", str(e))
52
- default_home_cache = os.path.join(os.path.expanduser("~"), ".cache", "huggingface")
53
- hf_cache_dir = os.getenv("HF_HOME", default_home_cache)
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 (fallback): %s", hf_cache_dir)
60
- except Exception as e2:
61
- logger.error("Failed to create cache directory: %s", str(e2))
62
- raise RuntimeError(f"Cannot create Hugging Face cache directory: {str(e2)}")
 
 
 
 
 
 
 
 
 
 
 
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