3b1b-manim/manimlib/utils/directories.py

46 lines
1 KiB
Python

from __future__ import annotations
import os
import tempfile
import appdirs
from manimlib.config import manim_config
from manimlib.config import get_manim_dir
from manimlib.utils.file_ops import guarantee_existence
def get_directories() -> dict[str, str]:
return manim_config.directories
def get_cache_dir() -> str:
return get_directories()["cache"] or appdirs.user_cache_dir("manim")
def get_temp_dir() -> str:
return get_directories()["temporary_storage"] or tempfile.gettempdir()
def get_downloads_dir() -> str:
return get_directories()["downloads"] or appdirs.user_cache_dir("manim_downloads")
def get_output_dir() -> str:
return guarantee_existence(get_directories()["output"])
def get_raster_image_dir() -> str:
return get_directories()["raster_images"]
def get_vector_image_dir() -> str:
return get_directories()["vector_images"]
def get_sound_dir() -> str:
return get_directories()["sounds"]
def get_shader_dir() -> str:
return os.path.join(get_manim_dir(), "manimlib", "shaders")