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

50 lines
1.4 KiB
Python
Raw Normal View History

import os
import tempfile
from manimlib.utils.file_ops import guarantee_existence
from manimlib.config import get_custom_defaults
from manimlib.config import get_manim_dir
PRE_COMPUTED_DIRS = {}
def get_directories():
if not PRE_COMPUTED_DIRS:
custom_defaults = get_custom_defaults()
PRE_COMPUTED_DIRS.update(custom_defaults["directories"])
# Unless user has specified otherwise, use the system default temp
# directory for storing tex files, mobject_data, etc.
if not PRE_COMPUTED_DIRS["temporary_storage"]:
PRE_COMPUTED_DIRS["temporary_storage"] = tempfile.gettempdir()
# Assumes all shaders are written into manimlib/shaders
PRE_COMPUTED_DIRS["shaders"] = os.path.join(
get_manim_dir(), "manimlib", "shaders"
)
return PRE_COMPUTED_DIRS
def get_tex_dir():
return guarantee_existence(os.path.join(get_directories()["temporary_storage"], "Tex"))
def get_mobject_data_dir():
return guarantee_existence(os.path.join(get_directories()["temporary_storage"], "mobject_data"))
def get_output_dir():
return guarantee_existence(get_directories()["output"])
def get_raster_image_dir():
return get_directories()["raster_images"]
def get_vector_image_dir():
return get_directories()["vector_images"]
def get_shader_dir():
return get_directories()["shaders"]