From 664546d44c94ae62defc88a028d118ebc8b7676e Mon Sep 17 00:00:00 2001 From: Grant Sanderson Date: Sun, 29 Apr 2018 10:52:48 -0700 Subject: [PATCH] added utils/output_directory_getters.py --- big_ol_pile_of_manim_imports.py | 1 + scene/scene.py | 37 +++--------------------------- stage_scenes.py | 3 +-- utils/output_directory_getters.py | 38 +++++++++++++++++++++++++++++++ 4 files changed, 43 insertions(+), 36 deletions(-) create mode 100644 utils/output_directory_getters.py diff --git a/big_ol_pile_of_manim_imports.py b/big_ol_pile_of_manim_imports.py index 628367c3..c4429019 100644 --- a/big_ol_pile_of_manim_imports.py +++ b/big_ol_pile_of_manim_imports.py @@ -84,6 +84,7 @@ from utils.color import * from utils.config_ops import * from utils.images import * from utils.iterables import * +from utils.output_directory_getters import * from utils.paths import * from utils.rate_functions import * from utils.simple_functions import * diff --git a/scene/scene.py b/scene/scene.py index 0aeec639..2c9bd581 100644 --- a/scene/scene.py +++ b/scene/scene.py @@ -17,44 +17,13 @@ from camera.camera import Camera from continual_animation.continual_animation import ContinualAnimation from mobject.mobject import Mobject from utils.iterables import list_update +from utils.output_directory_getters import add_extension_if_not_present +from utils.output_directory_getters import get_movie_output_directory +from utils.output_directory_getters import get_image_output_directory from container.container import Container -def add_extension_if_not_present(file_name, extension): - # This could conceivably be smarter about handling existing differing extensions - if(file_name[-len(extension):] != extension): - return file_name + extension - else: - return file_name - - -def get_scene_output_directory(scene_class): - file_path = os.path.abspath(inspect.getfile(scene_class)) - - # TODO, is there a better way to do this? - parts = file_path.split(os.path.sep) - if "manim" in parts: - sub_parts = parts[parts.index("manim") + 1:] - file_path = os.path.join(*sub_parts) - file_path = file_path.replace(".pyc", "") - file_path = file_path.replace(".py", "") - return os.path.join(ANIMATIONS_DIR, file_path) - - -def get_movie_output_directory(scene_class, camera_config, frame_duration): - directory = get_scene_output_directory(scene_class) - sub_dir = "%dp%d" % ( - camera_config["pixel_shape"][0], - int(1.0 / frame_duration) - ) - return os.path.join(directory, sub_dir) - - -def get_image_output_directory(scene_class, sub_dir="images"): - return os.path.join(get_scene_output_directory(scene_class), sub_dir) - - class Scene(Container): CONFIG = { "camera_class": Camera, diff --git a/stage_scenes.py b/stage_scenes.py index 38cf06e8..a505cca2 100644 --- a/stage_scenes.py +++ b/stage_scenes.py @@ -2,12 +2,11 @@ import inspect import os import sys -from constants import ANIMATIONS_DIR from constants import PRODUCTION_QUALITY_CAMERA_CONFIG from constants import PRODUCTION_QUALITY_FRAME_DURATION from extract_scene import get_module from extract_scene import is_scene -from scene.scene import get_movie_output_directory +from utils.output_directory_getters import get_movie_output_directory def get_sorted_scene_classes(module_name): diff --git a/utils/output_directory_getters.py b/utils/output_directory_getters.py new file mode 100644 index 00000000..6306d398 --- /dev/null +++ b/utils/output_directory_getters.py @@ -0,0 +1,38 @@ +import inspect +import os + +from constants import ANIMATIONS_DIR + + +def add_extension_if_not_present(file_name, extension): + # This could conceivably be smarter about handling existing differing extensions + if(file_name[-len(extension):] != extension): + return file_name + extension + else: + return file_name + + +def get_scene_output_directory(scene_class): + file_path = os.path.abspath(inspect.getfile(scene_class)) + + # TODO, is there a better way to do this? + parts = file_path.split(os.path.sep) + if "manim" in parts: + sub_parts = parts[parts.index("manim") + 1:] + file_path = os.path.join(*sub_parts) + file_path = file_path.replace(".pyc", "") + file_path = file_path.replace(".py", "") + return os.path.join(ANIMATIONS_DIR, file_path) + + +def get_movie_output_directory(scene_class, camera_config, frame_duration): + directory = get_scene_output_directory(scene_class) + sub_dir = "%dp%d" % ( + camera_config["pixel_shape"][0], + int(1.0 / frame_duration) + ) + return os.path.join(directory, sub_dir) + + +def get_image_output_directory(scene_class, sub_dir="images"): + return os.path.join(get_scene_output_directory(scene_class), sub_dir)