mirror of
https://github.com/3b1b/manim.git
synced 2025-09-01 00:48:45 +00:00
added utils/output_directory_getters.py
This commit is contained in:
parent
65783e2738
commit
664546d44c
4 changed files with 43 additions and 36 deletions
|
@ -84,6 +84,7 @@ from utils.color import *
|
||||||
from utils.config_ops import *
|
from utils.config_ops import *
|
||||||
from utils.images import *
|
from utils.images import *
|
||||||
from utils.iterables import *
|
from utils.iterables import *
|
||||||
|
from utils.output_directory_getters import *
|
||||||
from utils.paths import *
|
from utils.paths import *
|
||||||
from utils.rate_functions import *
|
from utils.rate_functions import *
|
||||||
from utils.simple_functions import *
|
from utils.simple_functions import *
|
||||||
|
|
|
@ -17,44 +17,13 @@ from camera.camera import Camera
|
||||||
from continual_animation.continual_animation import ContinualAnimation
|
from continual_animation.continual_animation import ContinualAnimation
|
||||||
from mobject.mobject import Mobject
|
from mobject.mobject import Mobject
|
||||||
from utils.iterables import list_update
|
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
|
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):
|
class Scene(Container):
|
||||||
CONFIG = {
|
CONFIG = {
|
||||||
"camera_class": Camera,
|
"camera_class": Camera,
|
||||||
|
|
|
@ -2,12 +2,11 @@ import inspect
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
from constants import ANIMATIONS_DIR
|
|
||||||
from constants import PRODUCTION_QUALITY_CAMERA_CONFIG
|
from constants import PRODUCTION_QUALITY_CAMERA_CONFIG
|
||||||
from constants import PRODUCTION_QUALITY_FRAME_DURATION
|
from constants import PRODUCTION_QUALITY_FRAME_DURATION
|
||||||
from extract_scene import get_module
|
from extract_scene import get_module
|
||||||
from extract_scene import is_scene
|
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):
|
def get_sorted_scene_classes(module_name):
|
||||||
|
|
38
utils/output_directory_getters.py
Normal file
38
utils/output_directory_getters.py
Normal file
|
@ -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)
|
Loading…
Add table
Reference in a new issue