mirror of
https://github.com/denizsafak/abogen.git
synced 2026-07-18 13:40:27 +02:00
feat: Implement internal cache path management for improved resource handling
This commit is contained in:
@@ -183,6 +183,8 @@ def get_user_cache_root():
|
|||||||
for env_var in ("HUGGINGFACE_HUB_CACHE", "TRANSFORMERS_CACHE"):
|
for env_var in ("HUGGINGFACE_HUB_CACHE", "TRANSFORMERS_CACHE"):
|
||||||
os.environ.setdefault(env_var, hf_cache)
|
os.environ.setdefault(env_var, hf_cache)
|
||||||
|
|
||||||
|
os.environ.setdefault("ABOGEN_INTERNAL_CACHE_ROOT", cache_base)
|
||||||
|
|
||||||
cache_root = None
|
cache_root = None
|
||||||
|
|
||||||
override = os.environ.get("ABOGEN_TEMP_DIR")
|
override = os.environ.get("ABOGEN_TEMP_DIR")
|
||||||
@@ -217,6 +219,22 @@ def get_user_cache_root():
|
|||||||
return cache_root
|
return cache_root
|
||||||
|
|
||||||
|
|
||||||
|
def get_internal_cache_root():
|
||||||
|
root = os.environ.get("ABOGEN_INTERNAL_CACHE_ROOT") or os.environ.get("XDG_CACHE_HOME")
|
||||||
|
if root:
|
||||||
|
return ensure_directory(root)
|
||||||
|
home_dir = os.environ.get("HOME") or os.path.join("/tmp", "abogen-home")
|
||||||
|
home_dir = ensure_directory(home_dir)
|
||||||
|
return ensure_directory(os.path.join(home_dir, ".cache"))
|
||||||
|
|
||||||
|
|
||||||
|
def get_internal_cache_path(folder=None):
|
||||||
|
base = get_internal_cache_root()
|
||||||
|
if folder:
|
||||||
|
return ensure_directory(os.path.join(base, folder))
|
||||||
|
return base
|
||||||
|
|
||||||
|
|
||||||
def get_user_cache_path(folder=None):
|
def get_user_cache_path(folder=None):
|
||||||
base = get_user_cache_root()
|
base = get_user_cache_root()
|
||||||
if folder:
|
if folder:
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ from abogen.text_extractor import ExtractedChapter, extract_from_path
|
|||||||
from abogen.utils import (
|
from abogen.utils import (
|
||||||
calculate_text_length,
|
calculate_text_length,
|
||||||
create_process,
|
create_process,
|
||||||
|
get_internal_cache_path,
|
||||||
get_user_cache_path,
|
get_user_cache_path,
|
||||||
get_user_output_path,
|
get_user_output_path,
|
||||||
load_config,
|
load_config,
|
||||||
@@ -310,7 +311,8 @@ def _open_audio_sink(
|
|||||||
fmt: Optional[str] = None,
|
fmt: Optional[str] = None,
|
||||||
metadata: Optional[Dict[str, str]] = None,
|
metadata: Optional[Dict[str, str]] = None,
|
||||||
) -> AudioSink:
|
) -> AudioSink:
|
||||||
static_ffmpeg.add_paths()
|
ffmpeg_cache = get_internal_cache_path("ffmpeg")
|
||||||
|
static_ffmpeg.add_paths(download_dir=ffmpeg_cache)
|
||||||
fmt_value = (fmt or job.output_format).lower()
|
fmt_value = (fmt or job.output_format).lower()
|
||||||
|
|
||||||
if fmt_value in {"wav", "flac"}:
|
if fmt_value in {"wav", "flac"}:
|
||||||
|
|||||||
Reference in New Issue
Block a user