diff --git a/big_ol_pile_of_manim_imports.py b/big_ol_pile_of_manim_imports.py index ba8ee046..a4c43f3d 100644 --- a/big_ol_pile_of_manim_imports.py +++ b/big_ol_pile_of_manim_imports.py @@ -14,87 +14,87 @@ as a convenience for scripts creating scenes for videos. """ -from constants import * +from manimlib.constants import * -from animation.animation import * -from animation.composition import * -from animation.creation import * -from animation.indication import * -from animation.movement import * -from animation.numbers import * -from animation.rotation import * -from animation.specialized import * -from animation.transform import * -from animation.update import * +from manimlib.animation.animation import * +from manimlib.animation.composition import * +from manimlib.animation.creation import * +from manimlib.animation.indication import * +from manimlib.animation.movement import * +from manimlib.animation.numbers import * +from manimlib.animation.rotation import * +from manimlib.animation.specialized import * +from manimlib.animation.transform import * +from manimlib.animation.update import * -from camera.camera import * -from camera.mapping_camera import * -from camera.moving_camera import * -from camera.three_d_camera import * +from manimlib.camera.camera import * +from manimlib.camera.mapping_camera import * +from manimlib.camera.moving_camera import * +from manimlib.camera.three_d_camera import * -from continual_animation.continual_animation import * -from continual_animation.from_animation import * -from continual_animation.numbers import * -from continual_animation.update import * +from manimlib.continual_animation.continual_animation import * +from manimlib.continual_animation.from_animation import * +from manimlib.continual_animation.numbers import * +from manimlib.continual_animation.update import * -from mobject.coordinate_systems import * -from mobject.frame import * -from mobject.functions import * -from mobject.geometry import * -from mobject.matrix import * -from mobject.mobject import * -from mobject.number_line import * -from mobject.numbers import * -from mobject.probability import * -from mobject.shape_matchers import * -from mobject.svg.brace import * -from mobject.svg.drawings import * -from mobject.svg.svg_mobject import * -from mobject.svg.tex_mobject import * -from mobject.three_d_utils import * -from mobject.three_dimensions import * -from mobject.types.image_mobject import * -from mobject.types.point_cloud_mobject import * -from mobject.types.vectorized_mobject import * -from mobject.updater import * -from mobject.value_tracker import * +from manimlib.mobject.coordinate_systems import * +from manimlib.mobject.frame import * +from manimlib.mobject.functions import * +from manimlib.mobject.geometry import * +from manimlib.mobject.matrix import * +from manimlib.mobject.mobject import * +from manimlib.mobject.number_line import * +from manimlib.mobject.numbers import * +from manimlib.mobject.probability import * +from manimlib.mobject.shape_matchers import * +from manimlib.mobject.svg.brace import * +from manimlib.mobject.svg.drawings import * +from manimlib.mobject.svg.svg_mobject import * +from manimlib.mobject.svg.tex_mobject import * +from manimlib.mobject.three_d_utils import * +from manimlib.mobject.three_dimensions import * +from manimlib.mobject.types.image_mobject import * +from manimlib.mobject.types.point_cloud_mobject import * +from manimlib.mobject.types.vectorized_mobject import * +from manimlib.mobject.updater import * +from manimlib.mobject.value_tracker import * -from for_3b1b_videos.common_scenes import * -from for_3b1b_videos.pi_creature import * -from for_3b1b_videos.pi_creature_animations import * -from for_3b1b_videos.pi_creature_scene import * +from manimlib.for_3b1b_videos.common_scenes import * +from manimlib.for_3b1b_videos.pi_creature import * +from manimlib.for_3b1b_videos.pi_creature_animations import * +from manimlib.for_3b1b_videos.pi_creature_scene import * -from once_useful_constructs.arithmetic import * -from once_useful_constructs.combinatorics import * -from once_useful_constructs.complex_transformation_scene import * -from once_useful_constructs.counting import * -from once_useful_constructs.fractals import * -from once_useful_constructs.graph_theory import * -from once_useful_constructs.light import * +from manimlib.once_useful_constructs.arithmetic import * +from manimlib.once_useful_constructs.combinatorics import * +from manimlib.once_useful_constructs.complex_transformation_scene import * +from manimlib.once_useful_constructs.counting import * +from manimlib.once_useful_constructs.fractals import * +from manimlib.once_useful_constructs.graph_theory import * +from manimlib.once_useful_constructs.light import * -from scene.graph_scene import * -from scene.moving_camera_scene import * -from scene.reconfigurable_scene import * -from scene.scene import * -from scene.sample_space_scene import * -from scene.graph_scene import * -from scene.scene_from_video import * -from scene.three_d_scene import * -from scene.vector_space_scene import * -from scene.zoomed_scene import * +from manimlib.scene.graph_scene import * +from manimlib.scene.moving_camera_scene import * +from manimlib.scene.reconfigurable_scene import * +from manimlib.scene.scene import * +from manimlib.scene.sample_space_scene import * +from manimlib.scene.graph_scene import * +from manimlib.scene.scene_from_video import * +from manimlib.scene.three_d_scene import * +from manimlib.scene.vector_space_scene import * +from manimlib.scene.zoomed_scene import * -from utils.bezier import * -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 * -from utils.sounds import * -from utils.space_ops import * -from utils.strings import * +from manimlib.utils.bezier import * +from manimlib.utils.color import * +from manimlib.utils.config_ops import * +from manimlib.utils.images import * +from manimlib.utils.iterables import * +from manimlib.utils.output_directory_getters import * +from manimlib.utils.paths import * +from manimlib.utils.rate_functions import * +from manimlib.utils.simple_functions import * +from manimlib.utils.sounds import * +from manimlib.utils.space_ops import * +from manimlib.utils.strings import * # Non manim libraries that are also nice to have without thinking diff --git a/example.png b/example.png deleted file mode 100644 index f5887cd8..00000000 Binary files a/example.png and /dev/null differ diff --git a/manim.py b/manim.py index c5c814d3..dfcc45ff 100644 --- a/manim.py +++ b/manim.py @@ -1,14 +1,17 @@ #!/usr/bin/env python -import config -import extract_scene -import stream_starter +import manimlib.config +import manimlib.extract_scene +import manimlib.stream_starter -args = config.parse_cli() -if not args.livestream: - config = config.get_configuration(args) - extract_scene.main(config) +if __name__ == "__main__": + args = manimlib.config.parse_cli() + if not args.livestream: + config = manimlib.config.get_configuration(args) + manimlib.extract_scene.main(config) + else: + manimlib.stream_starter.start_livestream( + to_twitch=args.to_twitch, + twitch_key=args.twitch_key, + ) else: - stream_starter.start_livestream( - to_twitch=args.to_twitch, - twitch_key=args.twitch_key, - ) + manimlib.stream_starter.start_livestream() diff --git a/__init__.py b/manimlib/animation/__init__.py similarity index 100% rename from __init__.py rename to manimlib/animation/__init__.py diff --git a/animation/animation.py b/manimlib/animation/animation.py similarity index 94% rename from animation/animation.py rename to manimlib/animation/animation.py index 5797cacb..58625bca 100644 --- a/animation/animation.py +++ b/manimlib/animation/animation.py @@ -1,11 +1,12 @@ -import numpy as np from copy import deepcopy -from constants import * -from mobject.mobject import Mobject -from utils.rate_functions import smooth -from utils.config_ops import instantiate -from utils.config_ops import digest_config +import numpy as np + +from manimlib.constants import * +from manimlib.mobject.mobject import Mobject +from manimlib.utils.config_ops import digest_config +from manimlib.utils.config_ops import instantiate +from manimlib.utils.rate_functions import smooth class Animation(object): diff --git a/animation/composition.py b/manimlib/animation/composition.py similarity index 96% rename from animation/composition.py rename to manimlib/animation/composition.py index d13d31f3..b5398e5a 100644 --- a/animation/composition.py +++ b/manimlib/animation/composition.py @@ -1,19 +1,15 @@ - - - import itertools as it -import numpy as np - -from constants import * - import warnings -from animation.animation import Animation -from mobject.mobject import Group -from mobject.mobject import Mobject -from utils.bezier import inverse_interpolate -from utils.config_ops import digest_config -from utils.rate_functions import squish_rate_func +import numpy as np + +from manimlib.animation.animation import Animation +from manimlib.constants import * +from manimlib.mobject.mobject import Group +from manimlib.mobject.mobject import Mobject +from manimlib.utils.bezier import inverse_interpolate +from manimlib.utils.config_ops import digest_config +from manimlib.utils.rate_functions import squish_rate_func class EmptyAnimation(Animation): diff --git a/animation/creation.py b/manimlib/animation/creation.py similarity index 92% rename from animation/creation.py rename to manimlib/animation/creation.py index 23530d71..54ed21aa 100644 --- a/animation/creation.py +++ b/manimlib/animation/creation.py @@ -1,19 +1,16 @@ - - import numpy as np -from constants import * - -from animation.animation import Animation -from mobject.svg.tex_mobject import TextMobject -from mobject.types.vectorized_mobject import VMobject -from mobject.types.vectorized_mobject import VectorizedPoint -from animation.transform import Transform -from utils.bezier import interpolate -from utils.config_ops import digest_config -from utils.paths import counterclockwise_path -from utils.rate_functions import double_smooth -from utils.rate_functions import smooth +from manimlib.animation.animation import Animation +from manimlib.animation.transform import Transform +from manimlib.constants import * +from manimlib.mobject.svg.tex_mobject import TextMobject +from manimlib.mobject.types.vectorized_mobject import VMobject +from manimlib.mobject.types.vectorized_mobject import VectorizedPoint +from manimlib.utils.bezier import interpolate +from manimlib.utils.config_ops import digest_config +from manimlib.utils.paths import counterclockwise_path +from manimlib.utils.rate_functions import double_smooth +from manimlib.utils.rate_functions import smooth # Drawing diff --git a/animation/indication.py b/manimlib/animation/indication.py similarity index 87% rename from animation/indication.py rename to manimlib/animation/indication.py index a97e5f13..adbe7f36 100644 --- a/animation/indication.py +++ b/manimlib/animation/indication.py @@ -1,27 +1,25 @@ - +from functools import reduce import numpy as np -from constants import * - -from animation.animation import Animation -from animation.movement import Homotopy -from animation.composition import AnimationGroup -from animation.composition import Succession -from animation.creation import ShowCreation -from animation.creation import ShowPartial -from animation.creation import FadeOut -from animation.transform import Transform -from mobject.mobject import Mobject -from mobject.geometry import Circle -from mobject.geometry import Dot -from mobject.shape_matchers import SurroundingRectangle -from utils.bezier import interpolate -from utils.config_ops import digest_config -from utils.rate_functions import squish_rate_func -from utils.rate_functions import there_and_back -from utils.rate_functions import wiggle -from functools import reduce +from manimlib.constants import * +from manimlib.animation.animation import Animation +from manimlib.animation.movement import Homotopy +from manimlib.animation.composition import AnimationGroup +from manimlib.animation.composition import Succession +from manimlib.animation.creation import ShowCreation +from manimlib.animation.creation import ShowPartial +from manimlib.animation.creation import FadeOut +from manimlib.animation.transform import Transform +from manimlib.mobject.mobject import Mobject +from manimlib.mobject.geometry import Circle +from manimlib.mobject.geometry import Dot +from manimlib.mobject.shape_matchers import SurroundingRectangle +from manimlib.utils.bezier import interpolate +from manimlib.utils.config_ops import digest_config +from manimlib.utils.rate_functions import squish_rate_func +from manimlib.utils.rate_functions import there_and_back +from manimlib.utils.rate_functions import wiggle class FocusOn(Transform): diff --git a/animation/movement.py b/manimlib/animation/movement.py similarity index 93% rename from animation/movement.py rename to manimlib/animation/movement.py index 097af71a..645ac603 100644 --- a/animation/movement.py +++ b/manimlib/animation/movement.py @@ -1,7 +1,6 @@ -from constants import * - -from animation.animation import Animation -from utils.config_ops import digest_config +from manimlib.animation.animation import Animation +from manimlib.constants import * +from manimlib.utils.config_ops import digest_config class Homotopy(Animation): diff --git a/animation/numbers.py b/manimlib/animation/numbers.py similarity index 91% rename from animation/numbers.py rename to manimlib/animation/numbers.py index 44773d7b..3c6c2b5d 100644 --- a/animation/numbers.py +++ b/manimlib/animation/numbers.py @@ -1,7 +1,6 @@ - -from animation.animation import Animation -from utils.bezier import interpolate -from utils.config_ops import digest_config +from manimlib.animation.animation import Animation +from manimlib.utils.bezier import interpolate +from manimlib.utils.config_ops import digest_config class ChangingDecimal(Animation): diff --git a/animation/rotation.py b/manimlib/animation/rotation.py similarity index 88% rename from animation/rotation.py rename to manimlib/animation/rotation.py index 21b2898e..46b9921f 100644 --- a/animation/rotation.py +++ b/manimlib/animation/rotation.py @@ -1,12 +1,9 @@ - - import numpy as np -from constants import * - -from animation.animation import Animation -from animation.transform import Transform -from utils.config_ops import digest_config +from manimlib.animation.animation import Animation +from manimlib.animation.transform import Transform +from manimlib.constants import * +from manimlib.utils.config_ops import digest_config class Rotating(Animation): diff --git a/animation/specialized.py b/manimlib/animation/specialized.py similarity index 82% rename from animation/specialized.py rename to manimlib/animation/specialized.py index 162f9df3..57f110e0 100644 --- a/animation/specialized.py +++ b/manimlib/animation/specialized.py @@ -1,16 +1,13 @@ - - import numpy as np -from constants import * - -from animation.transform import ApplyMethod -from animation.composition import LaggedStart -from mobject.svg.drawings import Car -from mobject.types.vectorized_mobject import VGroup -from mobject.geometry import Circle -from utils.config_ops import digest_config -from utils.space_ops import get_norm +from manimlib.animation.composition import LaggedStart +from manimlib.animation.transform import ApplyMethod +from manimlib.constants import * +from manimlib.mobject.geometry import Circle +from manimlib.mobject.svg.drawings import Car +from manimlib.mobject.types.vectorized_mobject import VGroup +from manimlib.utils.config_ops import digest_config +from manimlib.utils.space_ops import get_norm class MoveCar(ApplyMethod): diff --git a/animation/transform.py b/manimlib/animation/transform.py similarity index 93% rename from animation/transform.py rename to manimlib/animation/transform.py index dff9bf8a..76c2f27c 100644 --- a/animation/transform.py +++ b/manimlib/animation/transform.py @@ -1,21 +1,19 @@ - - import inspect + import numpy as np -from constants import * - -from animation.animation import Animation -from mobject.mobject import Group -from mobject.mobject import Mobject -from utils.config_ops import digest_config -from utils.iterables import adjacent_pairs -from utils.paths import path_along_arc -from utils.paths import straight_path -from utils.config_ops import instantiate -from utils.rate_functions import smooth -from utils.rate_functions import squish_rate_func -from utils.space_ops import complex_to_R3 +from manimlib.animation.animation import Animation +from manimlib.constants import * +from manimlib.mobject.mobject import Group +from manimlib.mobject.mobject import Mobject +from manimlib.utils.config_ops import digest_config +from manimlib.utils.config_ops import instantiate +from manimlib.utils.iterables import adjacent_pairs +from manimlib.utils.paths import path_along_arc +from manimlib.utils.paths import straight_path +from manimlib.utils.rate_functions import smooth +from manimlib.utils.rate_functions import squish_rate_func +from manimlib.utils.space_ops import complex_to_R3 class Transform(Animation): diff --git a/animation/update.py b/manimlib/animation/update.py similarity index 90% rename from animation/update.py rename to manimlib/animation/update.py index ec5dfbd0..45b26f39 100644 --- a/animation/update.py +++ b/manimlib/animation/update.py @@ -1,9 +1,6 @@ - - -from constants import * - -from animation.animation import Animation -from utils.config_ops import digest_config +from manimlib.animation.animation import Animation +from manimlib.constants import * +from manimlib.utils.config_ops import digest_config class UpdateFromFunc(Animation): diff --git a/animation/__init__.py b/manimlib/camera/__init__.py similarity index 100% rename from animation/__init__.py rename to manimlib/camera/__init__.py diff --git a/camera/camera.py b/manimlib/camera/camera.py similarity index 96% rename from camera/camera.py rename to manimlib/camera/camera.py index 37198bf0..519cea64 100644 --- a/camera/camera.py +++ b/manimlib/camera/camera.py @@ -1,30 +1,29 @@ +from functools import reduce import itertools as it -import numpy as np import operator as op - import time from PIL import Image from scipy.spatial.distance import pdist import cairo +import numpy as np -from constants import * -from mobject.types.image_mobject import AbstractImageMobject -from mobject.mobject import Mobject -from mobject.types.point_cloud_mobject import PMobject -from mobject.types.vectorized_mobject import VMobject -from utils.color import color_to_int_rgba -from utils.color import rgb_to_hex -from utils.config_ops import digest_config -from utils.images import get_full_raster_image_path -from utils.iterables import batch_by_property -from utils.iterables import list_difference_update -from utils.iterables import remove_list_redundancies -from utils.simple_functions import fdiv -from utils.space_ops import angle_of_vector -from utils.space_ops import get_norm -from functools import reduce +from manimlib.constants import * +from manimlib.mobject.types.image_mobject import AbstractImageMobject +from manimlib.mobject.mobject import Mobject +from manimlib.mobject.types.point_cloud_mobject import PMobject +from manimlib.mobject.types.vectorized_mobject import VMobject +from manimlib.utils.color import color_to_int_rgba +from manimlib.utils.color import rgb_to_hex +from manimlib.utils.config_ops import digest_config +from manimlib.utils.images import get_full_raster_image_path +from manimlib.utils.iterables import batch_by_property +from manimlib.utils.iterables import list_difference_update +from manimlib.utils.iterables import remove_list_redundancies +from manimlib.utils.simple_functions import fdiv +from manimlib.utils.space_ops import angle_of_vector +from manimlib.utils.space_ops import get_norm class Camera(object): diff --git a/camera/mapping_camera.py b/manimlib/camera/mapping_camera.py similarity index 95% rename from camera/mapping_camera.py rename to manimlib/camera/mapping_camera.py index 8fec02ac..d7347d0c 100644 --- a/camera/mapping_camera.py +++ b/manimlib/camera/mapping_camera.py @@ -1,11 +1,9 @@ - - import numpy as np -from camera.camera import Camera -from mobject.types.vectorized_mobject import VMobject -from utils.config_ops import DictAsObject -from utils.config_ops import digest_config +from manimlib.camera.camera import Camera +from manimlib.mobject.types.vectorized_mobject import VMobject +from manimlib.utils.config_ops import DictAsObject +from manimlib.utils.config_ops import digest_config # TODO: Add an attribute to mobjects under which they can specify that they should just # map their centers but remain otherwise undistorted (useful for labels, etc.) diff --git a/camera/moving_camera.py b/manimlib/camera/moving_camera.py similarity index 86% rename from camera/moving_camera.py rename to manimlib/camera/moving_camera.py index 6b986d7a..4bf0fe64 100644 --- a/camera/moving_camera.py +++ b/manimlib/camera/moving_camera.py @@ -1,15 +1,12 @@ - - -from constants import FRAME_HEIGHT -from constants import FRAME_WIDTH -from constants import ORIGIN -from constants import WHITE - -from camera.camera import Camera -from mobject.frame import ScreenRectangle -from mobject.types.vectorized_mobject import VGroup -from mobject.types.vectorized_mobject import VectorizedPoint -from utils.config_ops import digest_config +from manimlib.camera.camera import Camera +from manimlib.constants import FRAME_HEIGHT +from manimlib.constants import FRAME_WIDTH +from manimlib.constants import ORIGIN +from manimlib.constants import WHITE +from manimlib.mobject.frame import ScreenRectangle +from manimlib.mobject.types.vectorized_mobject import VGroup +from manimlib.mobject.types.vectorized_mobject import VectorizedPoint +from manimlib.utils.config_ops import digest_config # TODO, think about how to incorporate perspective diff --git a/camera/multi_camera.py b/manimlib/camera/multi_camera.py similarity index 94% rename from camera/multi_camera.py rename to manimlib/camera/multi_camera.py index 65780934..9283b0e7 100644 --- a/camera/multi_camera.py +++ b/manimlib/camera/multi_camera.py @@ -1,7 +1,5 @@ - - -from camera.moving_camera import MovingCamera -from utils.iterables import list_difference_update +from manimlib.camera.moving_camera import MovingCamera +from manimlib.utils.iterables import list_difference_update class MultiCamera(MovingCamera): diff --git a/camera/three_d_camera.py b/manimlib/camera/three_d_camera.py similarity index 90% rename from camera/three_d_camera.py rename to manimlib/camera/three_d_camera.py index 48b3d28f..cf6a1be2 100644 --- a/camera/three_d_camera.py +++ b/manimlib/camera/three_d_camera.py @@ -1,24 +1,19 @@ - - import numpy as np -from constants import * - -from camera.camera import Camera -from mobject.types.point_cloud_mobject import Point -from mobject.types.vectorized_mobject import VMobject -from mobject.three_d_utils import get_3d_vmob_start_corner -from mobject.three_d_utils import get_3d_vmob_start_corner_unit_normal -from mobject.three_d_utils import get_3d_vmob_end_corner -from mobject.three_d_utils import get_3d_vmob_end_corner_unit_normal -from mobject.value_tracker import ValueTracker - -from utils.color import get_shaded_rgb -# from utils.config_ops import digest_config -from utils.space_ops import rotation_about_z -from utils.space_ops import rotation_matrix -from utils.space_ops import center_of_mass -from utils.simple_functions import clip_in_place +from manimlib.camera.camera import Camera +from manimlib.constants import * +from manimlib.mobject.three_d_utils import get_3d_vmob_end_corner +from manimlib.mobject.three_d_utils import get_3d_vmob_end_corner_unit_normal +from manimlib.mobject.three_d_utils import get_3d_vmob_start_corner +from manimlib.mobject.three_d_utils import get_3d_vmob_start_corner_unit_normal +from manimlib.mobject.types.point_cloud_mobject import Point +from manimlib.mobject.types.vectorized_mobject import VMobject +from manimlib.mobject.value_tracker import ValueTracker +from manimlib.utils.color import get_shaded_rgb +from manimlib.utils.simple_functions import clip_in_place +from manimlib.utils.space_ops import center_of_mass +from manimlib.utils.space_ops import rotation_about_z +from manimlib.utils.space_ops import rotation_matrix class ThreeDCamera(Camera): diff --git a/config.py b/manimlib/config.py similarity index 82% rename from config.py rename to manimlib/config.py index bec4870e..a95ca9ff 100644 --- a/config.py +++ b/manimlib/config.py @@ -1,9 +1,11 @@ -#!/usr/bin/env python import argparse import colour -import constants +import importlib import os import sys +import types + +import manimlib.constants def parse_cli(): @@ -70,6 +72,21 @@ def parse_cli(): sys.exit(2) +def get_module(file_name): + if file_name == "-": + module = types.ModuleType("InputModule") + code = "from big_ol_pile_of_manim_imports import *\n\n" + sys.stdin.read() + try: + exec(code, module.__dict__) + return module + except Exception as e: + print(f"Failed to render scene: {str(e)}") + sys.exit(2) + else: + module_name = file_name.replace(".py", "").replace(os.sep, ".") + return importlib.import_module(module_name) + + def get_configuration(args): if args.output_name is not None: output_name_root, output_name_ext = os.path.splitext( @@ -86,7 +103,7 @@ def get_configuration(args): output_name = args.output_name config = { - "file": args.file, + "module": get_module(args.file), "scene_name": args.scene_name, "open_video_upon_completion": args.preview, "show_file_in_finder": args.show_file_in_finder, @@ -108,14 +125,14 @@ def get_configuration(args): # Camera configuration config["camera_config"] = {} if args.low_quality: - config["camera_config"].update(constants.LOW_QUALITY_CAMERA_CONFIG) - config["frame_duration"] = constants.LOW_QUALITY_FRAME_DURATION + config["camera_config"].update(manimlib.constants.LOW_QUALITY_CAMERA_CONFIG) + config["frame_duration"] = manimlib.constants.LOW_QUALITY_FRAME_DURATION elif args.medium_quality: - config["camera_config"].update(constants.MEDIUM_QUALITY_CAMERA_CONFIG) - config["frame_duration"] = constants.MEDIUM_QUALITY_FRAME_DURATION + config["camera_config"].update(manimlib.constants.MEDIUM_QUALITY_CAMERA_CONFIG) + config["frame_duration"] = manimlib.constants.MEDIUM_QUALITY_FRAME_DURATION else: - config["camera_config"].update(constants.PRODUCTION_QUALITY_CAMERA_CONFIG) - config["frame_duration"] = constants.PRODUCTION_QUALITY_FRAME_DURATION + config["camera_config"].update(manimlib.constants.PRODUCTION_QUALITY_CAMERA_CONFIG) + config["frame_duration"] = manimlib.constants.PRODUCTION_QUALITY_FRAME_DURATION # If the resolution was passed in via -r if args.resolution: diff --git a/constants.py b/manimlib/constants.py similarity index 100% rename from constants.py rename to manimlib/constants.py index 431ddfd7..30c115e5 100644 --- a/constants.py +++ b/manimlib/constants.py @@ -1,5 +1,5 @@ -import os import numpy as np +import os # Initialize directories env_MEDIA_DIR = os.getenv("MEDIA_DIR") diff --git a/container/__init__.py b/manimlib/container/__init__.py similarity index 100% rename from container/__init__.py rename to manimlib/container/__init__.py diff --git a/container/container.py b/manimlib/container/container.py similarity index 95% rename from container/container.py rename to manimlib/container/container.py index 6ead1bdd..d84ff2a0 100644 --- a/container/container.py +++ b/manimlib/container/container.py @@ -1,4 +1,4 @@ -from utils.config_ops import digest_config +from manimlib.utils.config_ops import digest_config # Currently, this is only used by both Scene and Mobject. # Still, we abstract its functionality here, albeit purely nominally. diff --git a/camera/__init__.py b/manimlib/continual_animation/__init__.py similarity index 100% rename from camera/__init__.py rename to manimlib/continual_animation/__init__.py diff --git a/continual_animation/continual_animation.py b/manimlib/continual_animation/continual_animation.py similarity index 92% rename from continual_animation/continual_animation.py rename to manimlib/continual_animation/continual_animation.py index 5ecee74c..e75f81b6 100644 --- a/continual_animation/continual_animation.py +++ b/manimlib/continual_animation/continual_animation.py @@ -1,10 +1,10 @@ import copy -from constants import * -from mobject.mobject import Group -from mobject.mobject import Mobject -from utils.config_ops import digest_config -from utils.config_ops import instantiate +from manimlib.constants import * +from manimlib.mobject.mobject import Group +from manimlib.mobject.mobject import Mobject +from manimlib.utils.config_ops import digest_config +from manimlib.utils.config_ops import instantiate class ContinualAnimation(object): diff --git a/continual_animation/from_animation.py b/manimlib/continual_animation/from_animation.py similarity index 91% rename from continual_animation/from_animation.py rename to manimlib/continual_animation/from_animation.py index 61314b85..b49263dc 100644 --- a/continual_animation/from_animation.py +++ b/manimlib/continual_animation/from_animation.py @@ -1,6 +1,6 @@ -from continual_animation.continual_animation import ContinualAnimation +from manimlib.continual_animation.continual_animation import ContinualAnimation class NormalAnimationAsContinualAnimation(ContinualAnimation): diff --git a/continual_animation/numbers.py b/manimlib/continual_animation/numbers.py similarity index 60% rename from continual_animation/numbers.py rename to manimlib/continual_animation/numbers.py index 2cc81523..50faa18e 100644 --- a/continual_animation/numbers.py +++ b/manimlib/continual_animation/numbers.py @@ -1,7 +1,7 @@ -from continual_animation.from_animation import NormalAnimationAsContinualAnimation -from animation.numbers import ChangingDecimal +from manimlib.animation.numbers import ChangingDecimal +from manimlib.continual_animation.from_animation import NormalAnimationAsContinualAnimation class ContinualChangingDecimal(NormalAnimationAsContinualAnimation): diff --git a/continual_animation/update.py b/manimlib/continual_animation/update.py similarity index 88% rename from continual_animation/update.py rename to manimlib/continual_animation/update.py index 8db3f871..7e97ff96 100644 --- a/continual_animation/update.py +++ b/manimlib/continual_animation/update.py @@ -1,8 +1,8 @@ -from continual_animation.continual_animation import ContinualAnimation -from animation.update import MaintainPositionRelativeTo -from mobject.value_tracker import ValueTracker +from manimlib.animation.update import MaintainPositionRelativeTo +from manimlib.continual_animation.continual_animation import ContinualAnimation +from manimlib.mobject.value_tracker import ValueTracker class ContinualUpdate(ContinualAnimation): diff --git a/ctex_template.tex b/manimlib/ctex_template.tex similarity index 100% rename from ctex_template.tex rename to manimlib/ctex_template.tex diff --git a/extract_scene.py b/manimlib/extract_scene.py similarity index 79% rename from extract_scene.py rename to manimlib/extract_scene.py index 9ce0a68d..8fc0d281 100644 --- a/extract_scene.py +++ b/manimlib/extract_scene.py @@ -1,6 +1,3 @@ -# !/usr/bin/env python - -import constants import importlib import inspect import itertools as it @@ -9,9 +6,10 @@ import subprocess as sp import sys import traceback -from scene.scene import Scene -from utils.sounds import play_error_sound -from utils.sounds import play_finish_sound +from manimlib.scene.scene import Scene +from manimlib.utils.sounds import play_error_sound +from manimlib.utils.sounds import play_finish_sound +import manimlib.constants def handle_scene(scene, **config): @@ -51,13 +49,15 @@ def handle_scene(scene, **config): sys.stdout = curr_stdout -def is_scene(obj): +def is_child_scene(obj, module): if not inspect.isclass(obj): return False if not issubclass(obj, Scene): return False if obj == Scene: return False + if not obj.__module__.startswith(module.__name__): + return False return True @@ -68,45 +68,41 @@ def prompt_user_for_choice(name_to_obj): print("%d: %s" % (count, name)) num_to_name[count] = name try: - user_input = input(constants.CHOOSE_NUMBER_MESSAGE) + user_input = input(manimlib.constants.CHOOSE_NUMBER_MESSAGE) return [ name_to_obj[num_to_name[int(num_str)]] for num_str in user_input.split(",") ] except KeyError: - print(constants.INVALID_NUMBER_MESSAGE) - sys.exit() - user_input = input(constants.CHOOSE_NUMBER_MESSAGE) + print(manimlib.constants.INVALID_NUMBER_MESSAGE) + sys.exit(2) + user_input = input(manimlib.constants.CHOOSE_NUMBER_MESSAGE) return [ name_to_obj[num_to_name[int(num_str)]] for num_str in user_input.split(",") ] + except EOFError: + sys.exit(1) def get_scene_classes(scene_names_to_classes, config): if len(scene_names_to_classes) == 0: - print(constants.NO_SCENE_MESSAGE) + print(manimlib.constants.NO_SCENE_MESSAGE) return [] - if len(scene_names_to_classes) == 1: - return list(scene_names_to_classes.values()) if config["scene_name"] in scene_names_to_classes: return [scene_names_to_classes[config["scene_name"]]] if config["scene_name"] != "": - print(constants.SCENE_NOT_FOUND_MESSAGE) + print(manimlib.constants.SCENE_NOT_FOUND_MESSAGE) return [] if config["write_all"]: return list(scene_names_to_classes.values()) return prompt_user_for_choice(scene_names_to_classes) -def get_module(file_name): - module_name = file_name.replace(".py", "").replace(os.sep, ".") - return importlib.import_module(module_name) - - def main(config): - module = get_module(config["file"]) - scene_names_to_classes = dict(inspect.getmembers(module, is_scene)) + module = config["module"] + scene_names_to_classes = dict( + inspect.getmembers(module, lambda x: is_child_scene(x, module))) scene_kwargs = dict([ (key, config[key]) @@ -132,11 +128,13 @@ def main(config): try: handle_scene(SceneClass(**scene_kwargs), **config) play_finish_sound() + sys.exit(0) except Exception: print("\n\n") traceback.print_exc() print("\n\n") play_error_sound() + sys.exit(2) if __name__ == "__main__": diff --git a/files/Bubbles_speech.svg b/manimlib/files/Bubbles_speech.svg similarity index 100% rename from files/Bubbles_speech.svg rename to manimlib/files/Bubbles_speech.svg diff --git a/files/Bubbles_thought.svg b/manimlib/files/Bubbles_thought.svg similarity index 100% rename from files/Bubbles_thought.svg rename to manimlib/files/Bubbles_thought.svg diff --git a/files/PiCreatures_plain.svg b/manimlib/files/PiCreatures_plain.svg similarity index 100% rename from files/PiCreatures_plain.svg rename to manimlib/files/PiCreatures_plain.svg diff --git a/for_3b1b_videos/common_scenes.py b/manimlib/for_3b1b_videos/common_scenes.py similarity index 87% rename from for_3b1b_videos/common_scenes.py rename to manimlib/for_3b1b_videos/common_scenes.py index 7b4c51d8..6b7dcfaa 100644 --- a/for_3b1b_videos/common_scenes.py +++ b/manimlib/for_3b1b_videos/common_scenes.py @@ -1,33 +1,30 @@ - - import random import string -from constants import * - -from animation.animation import Animation -from animation.composition import LaggedStart -from animation.creation import DrawBorderThenFill -from animation.creation import Write -from animation.creation import FadeIn -from animation.creation import FadeOut -from continual_animation.continual_animation import ContinualMovement -from mobject.svg.tex_mobject import TextMobject -from mobject.types.vectorized_mobject import VGroup -from scene.scene import Scene -from scene.moving_camera_scene import MovingCameraScene -from for_3b1b_videos.pi_creature_animations import Blink -from for_3b1b_videos.pi_creature import Mortimer -from for_3b1b_videos.pi_creature import Randolph -from for_3b1b_videos.pi_creature_scene import PiCreatureScene -from mobject.geometry import Line -from mobject.geometry import DashedLine -from mobject.geometry import Rectangle -from mobject.geometry import Square -from mobject.svg.drawings import PatreonLogo -from mobject.svg.drawings import Logo -from utils.space_ops import get_norm -from utils.space_ops import normalize +from manimlib.animation.animation import Animation +from manimlib.animation.composition import LaggedStart +from manimlib.animation.creation import DrawBorderThenFill +from manimlib.animation.creation import FadeIn +from manimlib.animation.creation import FadeOut +from manimlib.animation.creation import Write +from manimlib.constants import * +from manimlib.continual_animation.continual_animation import ContinualMovement +from manimlib.for_3b1b_videos.pi_creature import Mortimer +from manimlib.for_3b1b_videos.pi_creature import Randolph +from manimlib.for_3b1b_videos.pi_creature_animations import Blink +from manimlib.for_3b1b_videos.pi_creature_scene import PiCreatureScene +from manimlib.mobject.geometry import DashedLine +from manimlib.mobject.geometry import Line +from manimlib.mobject.geometry import Rectangle +from manimlib.mobject.geometry import Square +from manimlib.mobject.svg.drawings import Logo +from manimlib.mobject.svg.drawings import PatreonLogo +from manimlib.mobject.svg.tex_mobject import TextMobject +from manimlib.mobject.types.vectorized_mobject import VGroup +from manimlib.scene.moving_camera_scene import MovingCameraScene +from manimlib.scene.scene import Scene +from manimlib.utils.space_ops import get_norm +from manimlib.utils.space_ops import normalize class OpeningQuote(Scene): diff --git a/for_3b1b_videos/pi_class.py b/manimlib/for_3b1b_videos/pi_class.py similarity index 72% rename from for_3b1b_videos/pi_class.py rename to manimlib/for_3b1b_videos/pi_class.py index 2c0479d7..fb453af0 100644 --- a/for_3b1b_videos/pi_class.py +++ b/manimlib/for_3b1b_videos/pi_class.py @@ -1,10 +1,10 @@ -import numpy as np import warnings -from constants import * +import numpy as np -from mobject.types.vectorized_mobject import VGroup -from for_3b1b_videos.pi_creature import PiCreature +from manimlib.constants import * +from manimlib.for_3b1b_videos.pi_creature import PiCreature +from manimlib.mobject.types.vectorized_mobject import VGroup class PiCreatureClass(VGroup): CONFIG = { diff --git a/for_3b1b_videos/pi_creature.py b/manimlib/for_3b1b_videos/pi_creature.py similarity index 94% rename from for_3b1b_videos/pi_creature.py rename to manimlib/for_3b1b_videos/pi_creature.py index 3bd8f293..088960ab 100644 --- a/for_3b1b_videos/pi_creature.py +++ b/manimlib/for_3b1b_videos/pi_creature.py @@ -1,22 +1,20 @@ -import numpy as np -import warnings import os +import warnings -from constants import * +import numpy as np -from mobject.mobject import Mobject -from mobject.svg.svg_mobject import SVGMobject -from mobject.svg.tex_mobject import TextMobject -from mobject.types.vectorized_mobject import VGroup -from mobject.types.vectorized_mobject import VMobject - -from mobject.svg.drawings import ThoughtBubble - -from animation.transform import Transform -from utils.config_ops import digest_config -from utils.rate_functions import squish_rate_func -from utils.rate_functions import there_and_back -from utils.space_ops import get_norm +from manimlib.animation.transform import Transform +from manimlib.constants import * +from manimlib.mobject.mobject import Mobject +from manimlib.mobject.svg.drawings import ThoughtBubble +from manimlib.mobject.svg.svg_mobject import SVGMobject +from manimlib.mobject.svg.tex_mobject import TextMobject +from manimlib.mobject.types.vectorized_mobject import VGroup +from manimlib.mobject.types.vectorized_mobject import VMobject +from manimlib.utils.config_ops import digest_config +from manimlib.utils.rate_functions import squish_rate_func +from manimlib.utils.rate_functions import there_and_back +from manimlib.utils.space_ops import get_norm pi_creature_dir_maybe = os.path.join(MEDIA_DIR, "designs", "PiCreature") if os.path.exists(pi_creature_dir_maybe): diff --git a/for_3b1b_videos/pi_creature_animations.py b/manimlib/for_3b1b_videos/pi_creature_animations.py similarity index 83% rename from for_3b1b_videos/pi_creature_animations.py rename to manimlib/for_3b1b_videos/pi_creature_animations.py index d0561236..6f02ca9b 100644 --- a/for_3b1b_videos/pi_creature_animations.py +++ b/manimlib/for_3b1b_videos/pi_creature_animations.py @@ -1,23 +1,17 @@ - - -from constants import * - -from mobject.mobject import Group - -from mobject.svg.drawings import SpeechBubble - -from animation.animation import Animation -from animation.creation import ShowCreation -from animation.creation import Write -from animation.composition import AnimationGroup -from animation.transform import ApplyMethod -from animation.creation import FadeOut -from animation.transform import MoveToTarget -from utils.config_ops import digest_config -from utils.rate_functions import squish_rate_func -from utils.rate_functions import there_and_back - -from for_3b1b_videos.pi_class import PiCreatureClass +from manimlib.animation.animation import Animation +from manimlib.animation.composition import AnimationGroup +from manimlib.animation.creation import FadeOut +from manimlib.animation.creation import ShowCreation +from manimlib.animation.creation import Write +from manimlib.animation.transform import ApplyMethod +from manimlib.animation.transform import MoveToTarget +from manimlib.constants import * +from manimlib.for_3b1b_videos.pi_class import PiCreatureClass +from manimlib.mobject.mobject import Group +from manimlib.mobject.svg.drawings import SpeechBubble +from manimlib.utils.config_ops import digest_config +from manimlib.utils.rate_functions import squish_rate_func +from manimlib.utils.rate_functions import there_and_back class Blink(ApplyMethod): diff --git a/for_3b1b_videos/pi_creature_scene.py b/manimlib/for_3b1b_videos/pi_creature_scene.py similarity index 92% rename from for_3b1b_videos/pi_creature_scene.py rename to manimlib/for_3b1b_videos/pi_creature_scene.py index b9cb8e26..1b70bb9f 100644 --- a/for_3b1b_videos/pi_creature_scene.py +++ b/manimlib/for_3b1b_videos/pi_creature_scene.py @@ -1,30 +1,26 @@ - - import itertools as it -import numpy as np import random -from constants import * +import numpy as np -from mobject.types.vectorized_mobject import VGroup - -from mobject.frame import ScreenRectangle -from mobject.svg.drawings import SpeechBubble -from mobject.svg.drawings import ThoughtBubble - -from animation.transform import ApplyMethod -from animation.transform import ReplacementTransform -from animation.transform import Transform -from for_3b1b_videos.pi_creature import PiCreature -from for_3b1b_videos.pi_creature import Mortimer -from for_3b1b_videos.pi_creature import Randolph -from for_3b1b_videos.pi_creature_animations import Blink -from for_3b1b_videos.pi_creature_animations import PiCreatureBubbleIntroduction -from for_3b1b_videos.pi_creature_animations import RemovePiCreatureBubble -from scene.scene import Scene -from utils.rate_functions import squish_rate_func -from utils.rate_functions import there_and_back -from utils.space_ops import get_norm +from manimlib.animation.transform import ApplyMethod +from manimlib.animation.transform import ReplacementTransform +from manimlib.animation.transform import Transform +from manimlib.constants import * +from manimlib.for_3b1b_videos.pi_creature import Mortimer +from manimlib.for_3b1b_videos.pi_creature import PiCreature +from manimlib.for_3b1b_videos.pi_creature import Randolph +from manimlib.for_3b1b_videos.pi_creature_animations import Blink +from manimlib.for_3b1b_videos.pi_creature_animations import PiCreatureBubbleIntroduction +from manimlib.for_3b1b_videos.pi_creature_animations import RemovePiCreatureBubble +from manimlib.mobject.frame import ScreenRectangle +from manimlib.mobject.svg.drawings import SpeechBubble +from manimlib.mobject.svg.drawings import ThoughtBubble +from manimlib.mobject.types.vectorized_mobject import VGroup +from manimlib.scene.scene import Scene +from manimlib.utils.rate_functions import squish_rate_func +from manimlib.utils.rate_functions import there_and_back +from manimlib.utils.space_ops import get_norm class PiCreatureScene(Scene): diff --git a/manimlib/media_dir.txt b/manimlib/media_dir.txt new file mode 100644 index 00000000..27949aaf --- /dev/null +++ b/manimlib/media_dir.txt @@ -0,0 +1 @@ +media \ No newline at end of file diff --git a/continual_animation/__init__.py b/manimlib/mobject/__init__.py similarity index 100% rename from continual_animation/__init__.py rename to manimlib/mobject/__init__.py diff --git a/mobject/coordinate_systems.py b/manimlib/mobject/coordinate_systems.py similarity index 96% rename from mobject/coordinate_systems.py rename to manimlib/mobject/coordinate_systems.py index cf469716..fe6f1f53 100644 --- a/mobject/coordinate_systems.py +++ b/manimlib/mobject/coordinate_systems.py @@ -1,18 +1,15 @@ - - import numpy as np -from constants import * - -from mobject.functions import ParametricFunction -from mobject.geometry import Arrow -from mobject.geometry import Line -from mobject.number_line import NumberLine -from mobject.svg.tex_mobject import TexMobject -from mobject.types.vectorized_mobject import VGroup -from mobject.types.vectorized_mobject import VMobject -from utils.config_ops import digest_config -from utils.space_ops import angle_of_vector +from manimlib.constants import * +from manimlib.mobject.functions import ParametricFunction +from manimlib.mobject.geometry import Arrow +from manimlib.mobject.geometry import Line +from manimlib.mobject.number_line import NumberLine +from manimlib.mobject.svg.tex_mobject import TexMobject +from manimlib.mobject.types.vectorized_mobject import VGroup +from manimlib.mobject.types.vectorized_mobject import VMobject +from manimlib.utils.config_ops import digest_config +from manimlib.utils.space_ops import angle_of_vector # TODO: There should be much more code reuse between Axes, NumberPlane and GraphScene diff --git a/mobject/frame.py b/manimlib/mobject/frame.py similarity index 88% rename from mobject/frame.py rename to manimlib/mobject/frame.py index 68bef518..6d354edb 100644 --- a/mobject/frame.py +++ b/manimlib/mobject/frame.py @@ -1,8 +1,6 @@ - - -from constants import * -from mobject.geometry import Rectangle -from utils.config_ops import digest_config +from manimlib.constants import * +from manimlib.mobject.geometry import Rectangle +from manimlib.utils.config_ops import digest_config class ScreenRectangle(Rectangle): diff --git a/mobject/functions.py b/manimlib/mobject/functions.py similarity index 89% rename from mobject/functions.py rename to manimlib/mobject/functions.py index e6ab5772..c5e78695 100644 --- a/mobject/functions.py +++ b/manimlib/mobject/functions.py @@ -1,9 +1,6 @@ - - -from constants import * - -from mobject.types.vectorized_mobject import VMobject -from utils.config_ops import digest_config +from manimlib.constants import * +from manimlib.mobject.types.vectorized_mobject import VMobject +from manimlib.utils.config_ops import digest_config class ParametricFunction(VMobject): diff --git a/mobject/geometry.py b/manimlib/mobject/geometry.py similarity index 97% rename from mobject/geometry.py rename to manimlib/mobject/geometry.py index ed05d3d7..d838930d 100644 --- a/mobject/geometry.py +++ b/manimlib/mobject/geometry.py @@ -1,22 +1,20 @@ - - -from constants import * - import itertools as it + import numpy as np -from mobject.mobject import Mobject -from mobject.types.vectorized_mobject import VGroup -from mobject.types.vectorized_mobject import VMobject -from utils.bezier import interpolate -from utils.config_ops import digest_config -from utils.config_ops import digest_locals -from utils.paths import path_along_arc -from utils.space_ops import angle_of_vector -from utils.space_ops import center_of_mass -from utils.space_ops import compass_directions -from utils.space_ops import rotate_vector -from utils.space_ops import get_norm +from manimlib.constants import * +from manimlib.mobject.mobject import Mobject +from manimlib.mobject.types.vectorized_mobject import VGroup +from manimlib.mobject.types.vectorized_mobject import VMobject +from manimlib.utils.bezier import interpolate +from manimlib.utils.config_ops import digest_config +from manimlib.utils.config_ops import digest_locals +from manimlib.utils.paths import path_along_arc +from manimlib.utils.space_ops import angle_of_vector +from manimlib.utils.space_ops import center_of_mass +from manimlib.utils.space_ops import compass_directions +from manimlib.utils.space_ops import get_norm +from manimlib.utils.space_ops import rotate_vector class Arc(VMobject): diff --git a/mobject/matrix.py b/manimlib/mobject/matrix.py similarity index 92% rename from mobject/matrix.py rename to manimlib/mobject/matrix.py index 75d3f3c0..b5a2e283 100644 --- a/mobject/matrix.py +++ b/manimlib/mobject/matrix.py @@ -1,16 +1,13 @@ - - import numpy as np -from mobject.numbers import DecimalNumber -from mobject.numbers import Integer -from mobject.svg.tex_mobject import TexMobject -from mobject.svg.tex_mobject import TextMobject -from mobject.types.vectorized_mobject import VGroup -from mobject.types.vectorized_mobject import VMobject -from mobject.shape_matchers import BackgroundRectangle - -from constants import * +from manimlib.constants import * +from manimlib.mobject.numbers import DecimalNumber +from manimlib.mobject.numbers import Integer +from manimlib.mobject.shape_matchers import BackgroundRectangle +from manimlib.mobject.svg.tex_mobject import TexMobject +from manimlib.mobject.svg.tex_mobject import TextMobject +from manimlib.mobject.types.vectorized_mobject import VGroup +from manimlib.mobject.types.vectorized_mobject import VMobject VECTOR_LABEL_SCALE_FACTOR = 0.8 diff --git a/mobject/mobject.py b/manimlib/mobject/mobject.py similarity index 97% rename from mobject/mobject.py rename to manimlib/mobject/mobject.py index 0f92d95c..de8bf1be 100644 --- a/mobject/mobject.py +++ b/manimlib/mobject/mobject.py @@ -1,27 +1,27 @@ - +from functools import reduce import copy import itertools as it -import numpy as np import operator as op import os import random from colour import Color +import numpy as np -from constants import * -from container.container import Container -from utils.bezier import interpolate -from utils.color import color_gradient -from utils.color import color_to_rgb -from utils.color import interpolate_color -from utils.iterables import list_update -from utils.iterables import remove_list_redundancies -from utils.paths import straight_path -from utils.space_ops import angle_of_vector -from utils.space_ops import rotation_matrix -from utils.simple_functions import get_num_args -from utils.space_ops import get_norm -from functools import reduce +from manimlib.constants import * +from manimlib.container.container import Container +from manimlib.utils.bezier import interpolate +from manimlib.utils.color import color_gradient +from manimlib.utils.color import color_to_rgb +from manimlib.utils.color import interpolate_color +from manimlib.utils.iterables import list_update +from manimlib.utils.iterables import remove_list_redundancies +from manimlib.utils.paths import straight_path +from manimlib.utils.simple_functions import get_num_args +from manimlib.utils.space_ops import angle_of_vector +from manimlib.utils.space_ops import complex_to_R3 +from manimlib.utils.space_ops import get_norm +from manimlib.utils.space_ops import rotation_matrix # TODO: Explain array_attrs diff --git a/mobject/number_line.py b/manimlib/mobject/number_line.py similarity index 90% rename from mobject/number_line.py rename to manimlib/mobject/number_line.py index 0b1e83aa..40dd5c1c 100644 --- a/mobject/number_line.py +++ b/manimlib/mobject/number_line.py @@ -1,17 +1,14 @@ - - -from constants import * - -from mobject.numbers import DecimalNumber -from mobject.types.vectorized_mobject import VGroup -from mobject.types.vectorized_mobject import VMobject -from mobject.geometry import Arrow -from mobject.geometry import Line -from utils.bezier import interpolate -from utils.config_ops import digest_config -from utils.space_ops import get_norm -from utils.space_ops import normalize -from utils.simple_functions import fdiv +from manimlib.constants import * +from manimlib.mobject.geometry import Arrow +from manimlib.mobject.geometry import Line +from manimlib.mobject.numbers import DecimalNumber +from manimlib.mobject.types.vectorized_mobject import VGroup +from manimlib.mobject.types.vectorized_mobject import VMobject +from manimlib.utils.bezier import interpolate +from manimlib.utils.config_ops import digest_config +from manimlib.utils.simple_functions import fdiv +from manimlib.utils.space_ops import get_norm +from manimlib.utils.space_ops import normalize class NumberLine(VMobject): diff --git a/mobject/numbers.py b/manimlib/mobject/numbers.py similarity index 96% rename from mobject/numbers.py rename to manimlib/mobject/numbers.py index e7724f45..89f7c393 100644 --- a/mobject/numbers.py +++ b/manimlib/mobject/numbers.py @@ -1,7 +1,6 @@ -from constants import * - -from mobject.svg.tex_mobject import SingleStringTexMobject -from mobject.types.vectorized_mobject import VMobject +from manimlib.constants import * +from manimlib.mobject.svg.tex_mobject import SingleStringTexMobject +from manimlib.mobject.types.vectorized_mobject import VMobject class DecimalNumber(VMobject): diff --git a/mobject/probability.py b/manimlib/mobject/probability.py similarity index 93% rename from mobject/probability.py rename to manimlib/mobject/probability.py index 49c8f9bb..662154c1 100644 --- a/mobject/probability.py +++ b/manimlib/mobject/probability.py @@ -1,17 +1,13 @@ - - -from constants import * - -from mobject.mobject import Mobject -from mobject.svg.brace import Brace -from mobject.svg.tex_mobject import TexMobject -from mobject.svg.tex_mobject import TextMobject -from mobject.types.vectorized_mobject import VGroup -from mobject.geometry import Line -from mobject.geometry import Rectangle - -from utils.color import color_gradient -from utils.iterables import tuplify +from manimlib.constants import * +from manimlib.mobject.geometry import Line +from manimlib.mobject.geometry import Rectangle +from manimlib.mobject.mobject import Mobject +from manimlib.mobject.svg.brace import Brace +from manimlib.mobject.svg.tex_mobject import TexMobject +from manimlib.mobject.svg.tex_mobject import TextMobject +from manimlib.mobject.types.vectorized_mobject import VGroup +from manimlib.utils.color import color_gradient +from manimlib.utils.iterables import tuplify EPSILON = 0.0001 diff --git a/mobject/shape_matchers.py b/manimlib/mobject/shape_matchers.py similarity index 84% rename from mobject/shape_matchers.py rename to manimlib/mobject/shape_matchers.py index c0f8e394..d3e1e089 100644 --- a/mobject/shape_matchers.py +++ b/manimlib/mobject/shape_matchers.py @@ -1,13 +1,10 @@ - - -from constants import * - -from mobject.types.vectorized_mobject import VMobject -from mobject.geometry import Rectangle -from mobject.geometry import Line -from mobject.types.vectorized_mobject import VGroup -from utils.config_ops import digest_config -from utils.color import Color +from manimlib.constants import * +from manimlib.mobject.geometry import Line +from manimlib.mobject.geometry import Rectangle +from manimlib.mobject.types.vectorized_mobject import VGroup +from manimlib.mobject.types.vectorized_mobject import VMobject +from manimlib.utils.color import Color +from manimlib.utils.config_ops import digest_config class SurroundingRectangle(Rectangle): diff --git a/for_3b1b_videos/__init__.py b/manimlib/mobject/svg/__init__.py similarity index 100% rename from for_3b1b_videos/__init__.py rename to manimlib/mobject/svg/__init__.py diff --git a/mobject/svg/brace.py b/manimlib/mobject/svg/brace.py similarity index 90% rename from mobject/svg/brace.py rename to manimlib/mobject/svg/brace.py index 2c2a4551..f9af8272 100644 --- a/mobject/svg/brace.py +++ b/manimlib/mobject/svg/brace.py @@ -1,17 +1,14 @@ - - import numpy as np -from constants import * - -from animation.composition import AnimationGroup -from animation.creation import FadeIn -from animation.creation import GrowFromCenter -from mobject.svg.tex_mobject import TexMobject -from mobject.svg.tex_mobject import TextMobject -from mobject.types.vectorized_mobject import VMobject -from utils.config_ops import digest_config -from utils.space_ops import get_norm +from manimlib.animation.composition import AnimationGroup +from manimlib.animation.creation import FadeIn +from manimlib.animation.creation import GrowFromCenter +from manimlib.constants import * +from manimlib.mobject.svg.tex_mobject import TexMobject +from manimlib.mobject.svg.tex_mobject import TextMobject +from manimlib.mobject.types.vectorized_mobject import VMobject +from manimlib.utils.config_ops import digest_config +from manimlib.utils.space_ops import get_norm class Brace(TexMobject): diff --git a/mobject/svg/drawings.py b/manimlib/mobject/svg/drawings.py similarity index 96% rename from mobject/svg/drawings.py rename to manimlib/mobject/svg/drawings.py index bd8f5a94..62e11d8d 100644 --- a/mobject/svg/drawings.py +++ b/manimlib/mobject/svg/drawings.py @@ -1,32 +1,28 @@ - import itertools as it -from constants import * - -from mobject.mobject import Mobject -from mobject.svg.svg_mobject import SVGMobject -from mobject.svg.tex_mobject import TexMobject -from mobject.svg.tex_mobject import TextMobject -from mobject.types.vectorized_mobject import VGroup -from mobject.types.vectorized_mobject import VMobject -from mobject.types.vectorized_mobject import VectorizedPoint - -from animation.animation import Animation -from animation.rotation import Rotating - -from mobject.geometry import Arc -from mobject.geometry import Circle -from mobject.geometry import Line -from mobject.geometry import Polygon -from mobject.geometry import Rectangle -from mobject.geometry import Square -from mobject.geometry import AnnularSector -from mobject.three_dimensions import Cube -from utils.config_ops import digest_config -from utils.space_ops import angle_of_vector -from utils.space_ops import complex_to_R3 -from utils.space_ops import rotate_vector -from utils.bezier import interpolate +from manimlib.animation.animation import Animation +from manimlib.animation.rotation import Rotating +from manimlib.constants import * +from manimlib.mobject.geometry import AnnularSector +from manimlib.mobject.geometry import Arc +from manimlib.mobject.geometry import Circle +from manimlib.mobject.geometry import Line +from manimlib.mobject.geometry import Polygon +from manimlib.mobject.geometry import Rectangle +from manimlib.mobject.geometry import Square +from manimlib.mobject.mobject import Mobject +from manimlib.mobject.svg.svg_mobject import SVGMobject +from manimlib.mobject.svg.tex_mobject import TexMobject +from manimlib.mobject.svg.tex_mobject import TextMobject +from manimlib.mobject.three_dimensions import Cube +from manimlib.mobject.types.vectorized_mobject import VGroup +from manimlib.mobject.types.vectorized_mobject import VMobject +from manimlib.mobject.types.vectorized_mobject import VectorizedPoint +from manimlib.utils.bezier import interpolate +from manimlib.utils.config_ops import digest_config +from manimlib.utils.space_ops import angle_of_vector +from manimlib.utils.space_ops import complex_to_R3 +from manimlib.utils.space_ops import rotate_vector class Lightbulb(SVGMobject): diff --git a/mobject/svg/svg_mobject.py b/manimlib/mobject/svg/svg_mobject.py similarity index 96% rename from mobject/svg/svg_mobject.py rename to manimlib/mobject/svg/svg_mobject.py index b91ab49b..ea38891d 100644 --- a/mobject/svg/svg_mobject.py +++ b/manimlib/mobject/svg/svg_mobject.py @@ -4,17 +4,17 @@ import string import warnings from xml.dom import minidom -from utils.color import * -from constants import * -from mobject.geometry import Circle -from mobject.geometry import Rectangle -from mobject.geometry import RoundedRectangle -from utils.bezier import is_closed -from utils.config_ops import digest_config -from utils.config_ops import digest_locals -from mobject.types.vectorized_mobject import VGroup -from mobject.types.vectorized_mobject import VMobject +from manimlib.constants import * +from manimlib.mobject.geometry import Circle +from manimlib.mobject.geometry import Rectangle +from manimlib.mobject.geometry import RoundedRectangle +from manimlib.mobject.types.vectorized_mobject import VGroup +from manimlib.mobject.types.vectorized_mobject import VMobject +from manimlib.utils.bezier import is_closed +from manimlib.utils.color import * +from manimlib.utils.config_ops import digest_config +from manimlib.utils.config_ops import digest_locals def string_to_numbers(num_string): diff --git a/mobject/svg/tex_mobject.py b/manimlib/mobject/svg/tex_mobject.py similarity index 95% rename from mobject/svg/tex_mobject.py rename to manimlib/mobject/svg/tex_mobject.py index 97a81784..80378ebf 100644 --- a/mobject/svg/tex_mobject.py +++ b/manimlib/mobject/svg/tex_mobject.py @@ -1,17 +1,16 @@ - -from constants import * - -from .svg_mobject import SVGMobject -from .svg_mobject import VMobjectFromSVGPathstring -from utils.config_ops import digest_config -from utils.strings import split_string_list_to_isolate_substrings -from utils.tex_file_writing import tex_to_svg_file -from mobject.geometry import Line -from mobject.types.vectorized_mobject import VGroup -from mobject.types.vectorized_mobject import VectorizedPoint - -import operator as op from functools import reduce +import operator as op + +from manimlib.constants import * +from manimlib.mobject.geometry import Line +from manimlib.mobject.svg.svg_mobject import SVGMobject +from manimlib.mobject.svg.svg_mobject import VMobjectFromSVGPathstring +from manimlib.mobject.types.vectorized_mobject import VGroup +from manimlib.mobject.types.vectorized_mobject import VectorizedPoint +from manimlib.utils.config_ops import digest_config +from manimlib.utils.strings import split_string_list_to_isolate_substrings +from manimlib.utils.tex_file_writing import tex_to_svg_file + TEX_MOB_SCALE_FACTOR = 0.05 diff --git a/mobject/three_d_shading_utils.py b/manimlib/mobject/three_d_shading_utils.py similarity index 93% rename from mobject/three_d_shading_utils.py rename to manimlib/mobject/three_d_shading_utils.py index 2d9ef4b0..a0fe43c3 100644 --- a/mobject/three_d_shading_utils.py +++ b/manimlib/mobject/three_d_shading_utils.py @@ -1,7 +1,7 @@ import numpy as np -from constants import ORIGIN -from utils.space_ops import get_unit_normal +from manimlib.constants import ORIGIN +from manimlib.utils.space_ops import get_unit_normal def get_3d_vmob_gradient_start_and_end_points(vmob): diff --git a/mobject/three_d_utils.py b/manimlib/mobject/three_d_utils.py similarity index 89% rename from mobject/three_d_utils.py rename to manimlib/mobject/three_d_utils.py index 187aad27..3138aaa1 100644 --- a/mobject/three_d_utils.py +++ b/manimlib/mobject/three_d_utils.py @@ -1,9 +1,9 @@ import numpy as np -from constants import ORIGIN -from constants import UP -from utils.space_ops import get_unit_normal -from utils.space_ops import get_norm +from manimlib.constants import ORIGIN +from manimlib.constants import UP +from manimlib.utils.space_ops import get_norm +from manimlib.utils.space_ops import get_unit_normal def get_3d_vmob_gradient_start_and_end_points(vmob): diff --git a/mobject/three_dimensions.py b/manimlib/mobject/three_dimensions.py similarity index 93% rename from mobject/three_dimensions.py rename to manimlib/mobject/three_dimensions.py index 1077992e..ef95c3ec 100644 --- a/mobject/three_dimensions.py +++ b/manimlib/mobject/three_dimensions.py @@ -1,13 +1,9 @@ - - -from constants import * - -from mobject.types.vectorized_mobject import VMobject -from mobject.types.vectorized_mobject import VGroup -from mobject.geometry import Square - -from utils.iterables import tuplify -from utils.space_ops import z_to_vector +from manimlib.constants import * +from manimlib.mobject.geometry import Square +from manimlib.mobject.types.vectorized_mobject import VGroup +from manimlib.mobject.types.vectorized_mobject import VMobject +from manimlib.utils.iterables import tuplify +from manimlib.utils.space_ops import z_to_vector ############## diff --git a/mobject/__init__.py b/manimlib/mobject/types/__init__.py similarity index 100% rename from mobject/__init__.py rename to manimlib/mobject/types/__init__.py diff --git a/mobject/types/image_mobject.py b/manimlib/mobject/types/image_mobject.py similarity index 91% rename from mobject/types/image_mobject.py rename to manimlib/mobject/types/image_mobject.py index 5607d908..606c8ac4 100644 --- a/mobject/types/image_mobject.py +++ b/manimlib/mobject/types/image_mobject.py @@ -1,17 +1,14 @@ - - import numpy as np from PIL import Image -from constants import * - -from mobject.mobject import Mobject -from mobject.shape_matchers import SurroundingRectangle -from utils.bezier import interpolate -from utils.color import color_to_int_rgb -from utils.config_ops import digest_config -from utils.images import get_full_raster_image_path +from manimlib.constants import * +from manimlib.mobject.mobject import Mobject +from manimlib.mobject.shape_matchers import SurroundingRectangle +from manimlib.utils.bezier import interpolate +from manimlib.utils.color import color_to_int_rgb +from manimlib.utils.config_ops import digest_config +from manimlib.utils.images import get_full_raster_image_path class AbstractImageMobject(Mobject): diff --git a/mobject/types/point_cloud_mobject.py b/manimlib/mobject/types/point_cloud_mobject.py similarity index 94% rename from mobject/types/point_cloud_mobject.py rename to manimlib/mobject/types/point_cloud_mobject.py index 1a413ba9..f7b087ab 100644 --- a/mobject/types/point_cloud_mobject.py +++ b/manimlib/mobject/types/point_cloud_mobject.py @@ -1,15 +1,12 @@ - - -from constants import * - -from mobject.mobject import Mobject -from utils.bezier import interpolate -from utils.color import color_gradient -from utils.color import color_to_rgba -from utils.color import rgba_to_color -from utils.config_ops import digest_config -from utils.iterables import stretch_array_to_length -from utils.space_ops import get_norm +from manimlib.constants import * +from manimlib.mobject.mobject import Mobject +from manimlib.utils.bezier import interpolate +from manimlib.utils.color import color_gradient +from manimlib.utils.color import color_to_rgba +from manimlib.utils.color import rgba_to_color +from manimlib.utils.config_ops import digest_config +from manimlib.utils.iterables import stretch_array_to_length +from manimlib.utils.space_ops import get_norm class PMobject(Mobject): diff --git a/mobject/types/vectorized_mobject.py b/manimlib/mobject/types/vectorized_mobject.py similarity index 97% rename from mobject/types/vectorized_mobject.py rename to manimlib/mobject/types/vectorized_mobject.py index e22d559d..efefd65b 100644 --- a/mobject/types/vectorized_mobject.py +++ b/manimlib/mobject/types/vectorized_mobject.py @@ -1,20 +1,20 @@ - import itertools as it + from colour import Color -from mobject.mobject import Mobject -from mobject.three_d_utils import get_3d_vmob_gradient_start_and_end_points -from constants import * -from utils.bezier import bezier -from utils.bezier import get_smooth_handle_points -from utils.bezier import interpolate -from utils.bezier import is_closed -from utils.bezier import partial_bezier_points -from utils.color import color_to_rgba -from utils.iterables import make_even -from utils.iterables import tuplify -from utils.iterables import stretch_array_to_length -from utils.simple_functions import clip_in_place +from manimlib.constants import * +from manimlib.mobject.mobject import Mobject +from manimlib.mobject.three_d_utils import get_3d_vmob_gradient_start_and_end_points +from manimlib.utils.bezier import bezier +from manimlib.utils.bezier import get_smooth_handle_points +from manimlib.utils.bezier import interpolate +from manimlib.utils.bezier import is_closed +from manimlib.utils.bezier import partial_bezier_points +from manimlib.utils.color import color_to_rgba +from manimlib.utils.iterables import make_even +from manimlib.utils.iterables import stretch_array_to_length +from manimlib.utils.iterables import tuplify +from manimlib.utils.simple_functions import clip_in_place class VMobject(Mobject): diff --git a/mobject/updater.py b/manimlib/mobject/updater.py similarity index 100% rename from mobject/updater.py rename to manimlib/mobject/updater.py diff --git a/mobject/value_tracker.py b/manimlib/mobject/value_tracker.py similarity index 93% rename from mobject/value_tracker.py rename to manimlib/mobject/value_tracker.py index 463f95de..9daddeaf 100644 --- a/mobject/value_tracker.py +++ b/manimlib/mobject/value_tracker.py @@ -1,8 +1,7 @@ - import numpy as np -from mobject.mobject import Mobject -from utils.bezier import interpolate +from manimlib.mobject.mobject import Mobject +from manimlib.utils.bezier import interpolate class ValueTracker(Mobject): diff --git a/once_useful_constructs/NOTE.md b/manimlib/once_useful_constructs/NOTE.md similarity index 100% rename from once_useful_constructs/NOTE.md rename to manimlib/once_useful_constructs/NOTE.md diff --git a/once_useful_constructs/arithmetic.py b/manimlib/once_useful_constructs/arithmetic.py similarity index 94% rename from once_useful_constructs/arithmetic.py rename to manimlib/once_useful_constructs/arithmetic.py index 1f85b582..dac1f428 100644 --- a/once_useful_constructs/arithmetic.py +++ b/manimlib/once_useful_constructs/arithmetic.py @@ -1,9 +1,9 @@ import numpy as np -from animation.animation import Animation -from constants import * -from mobject.svg.tex_mobject import TexMobject -from scene.scene import Scene +from manimlib.animation.animation import Animation +from manimlib.constants import * +from manimlib.mobject.svg.tex_mobject import TexMobject +from manimlib.scene.scene import Scene class RearrangeEquation(Scene): diff --git a/once_useful_constructs/combinatorics.py b/manimlib/once_useful_constructs/combinatorics.py similarity index 95% rename from once_useful_constructs/combinatorics.py rename to manimlib/once_useful_constructs/combinatorics.py index 88a300b3..2e56f667 100644 --- a/once_useful_constructs/combinatorics.py +++ b/manimlib/once_useful_constructs/combinatorics.py @@ -1,11 +1,9 @@ -from constants import * - -from mobject.svg.tex_mobject import TexMobject -from mobject.types.vectorized_mobject import VMobject, VGroup -from mobject.numbers import Integer - -from scene.scene import Scene -from utils.simple_functions import choose +from manimlib.constants import * +from manimlib.mobject.numbers import Integer +from manimlib.mobject.svg.tex_mobject import TexMobject +from manimlib.mobject.types.vectorized_mobject import VMobject, VGroup +from manimlib.scene.scene import Scene +from manimlib.utils.simple_functions import choose DEFAULT_COUNT_NUM_OFFSET = (FRAME_X_RADIUS - 1, FRAME_Y_RADIUS - 1, 0) diff --git a/once_useful_constructs/complex_transformation_scene.py b/manimlib/once_useful_constructs/complex_transformation_scene.py similarity index 93% rename from once_useful_constructs/complex_transformation_scene.py rename to manimlib/once_useful_constructs/complex_transformation_scene.py index e738e429..b6b88208 100644 --- a/once_useful_constructs/complex_transformation_scene.py +++ b/manimlib/once_useful_constructs/complex_transformation_scene.py @@ -1,12 +1,10 @@ -from constants import * - -from animation.animation import Animation -# from animation.movement import SmoothedVectorizedHomotopy -from animation.movement import ComplexHomotopy -from animation.transform import MoveToTarget -from mobject.coordinate_systems import ComplexPlane -from mobject.types.vectorized_mobject import VGroup -from scene.scene import Scene +from manimlib.animation.animation import Animation +from manimlib.animation.movement import ComplexHomotopy +from manimlib.animation.transform import MoveToTarget +from manimlib.constants import * +from manimlib.mobject.coordinate_systems import ComplexPlane +from manimlib.mobject.types.vectorized_mobject import VGroup +from manimlib.scene.scene import Scene # TODO, refactor this full scene diff --git a/once_useful_constructs/counting.py b/manimlib/once_useful_constructs/counting.py similarity index 93% rename from once_useful_constructs/counting.py rename to manimlib/once_useful_constructs/counting.py index ac008085..ecc36254 100644 --- a/once_useful_constructs/counting.py +++ b/manimlib/once_useful_constructs/counting.py @@ -1,16 +1,14 @@ -from constants import * - -from mobject.svg.tex_mobject import TexMobject -from mobject.types.vectorized_mobject import VGroup - -from animation.creation import ShowCreation -from animation.creation import FadeIn -from animation.transform import MoveToTarget -from animation.transform import Transform -from mobject.geometry import Arrow -from mobject.geometry import Circle -from mobject.geometry import Dot -from scene.scene import Scene +from manimlib.animation.creation import FadeIn +from manimlib.animation.creation import ShowCreation +from manimlib.animation.transform import MoveToTarget +from manimlib.animation.transform import Transform +from manimlib.constants import * +from manimlib.mobject.geometry import Arrow +from manimlib.mobject.geometry import Circle +from manimlib.mobject.geometry import Dot +from manimlib.mobject.svg.tex_mobject import TexMobject +from manimlib.mobject.types.vectorized_mobject import VGroup +from manimlib.scene.scene import Scene class CountingScene(Scene): diff --git a/once_useful_constructs/fractals.py b/manimlib/once_useful_constructs/fractals.py similarity index 95% rename from once_useful_constructs/fractals.py rename to manimlib/once_useful_constructs/fractals.py index a4e33851..8b71fad8 100644 --- a/once_useful_constructs/fractals.py +++ b/manimlib/once_useful_constructs/fractals.py @@ -1,22 +1,22 @@ -from for_3b1b_videos.pi_creature import PiCreature -from for_3b1b_videos.pi_creature import Randolph -from for_3b1b_videos.pi_creature import get_all_pi_creature_modes -from mobject.types.vectorized_mobject import VGroup -from mobject.types.vectorized_mobject import VMobject -from mobject.geometry import Circle -from mobject.geometry import Polygon -from mobject.geometry import RegularPolygon -from utils.bezier import interpolate -from utils.color import color_gradient -from utils.config_ops import digest_config -from utils.space_ops import center_of_mass -from utils.space_ops import compass_directions -from utils.space_ops import rotate_vector -from utils.space_ops import rotation_matrix - -from constants import * from functools import reduce +from manimlib.constants import * +from manimlib.for_3b1b_videos.pi_creature import PiCreature +from manimlib.for_3b1b_videos.pi_creature import Randolph +from manimlib.for_3b1b_videos.pi_creature import get_all_pi_creature_modes +from manimlib.mobject.geometry import Circle +from manimlib.mobject.geometry import Polygon +from manimlib.mobject.geometry import RegularPolygon +from manimlib.mobject.types.vectorized_mobject import VGroup +from manimlib.mobject.types.vectorized_mobject import VMobject +from manimlib.utils.bezier import interpolate +from manimlib.utils.color import color_gradient +from manimlib.utils.config_ops import digest_config +from manimlib.utils.space_ops import center_of_mass +from manimlib.utils.space_ops import compass_directions +from manimlib.utils.space_ops import rotate_vector +from manimlib.utils.space_ops import rotation_matrix + def rotate(points, angle=np.pi, axis=OUT): if axis is None: diff --git a/once_useful_constructs/graph_theory.py b/manimlib/once_useful_constructs/graph_theory.py similarity index 98% rename from once_useful_constructs/graph_theory.py rename to manimlib/once_useful_constructs/graph_theory.py index 0fb9650f..775b2286 100644 --- a/once_useful_constructs/graph_theory.py +++ b/manimlib/once_useful_constructs/graph_theory.py @@ -1,13 +1,13 @@ +from functools import reduce import itertools as it -import numpy as np import operator as op -from constants import * +import numpy as np -from scene.scene import Scene -from utils.rate_functions import there_and_back -from utils.space_ops import center_of_mass -from functools import reduce +from manimlib.constants import * +from manimlib.scene.scene import Scene +from manimlib.utils.rate_functions import there_and_back +from manimlib.utils.space_ops import center_of_mass class Graph(): diff --git a/once_useful_constructs/light.py b/manimlib/once_useful_constructs/light.py similarity index 95% rename from once_useful_constructs/light.py rename to manimlib/once_useful_constructs/light.py index f3694613..7294f097 100644 --- a/once_useful_constructs/light.py +++ b/manimlib/once_useful_constructs/light.py @@ -1,26 +1,23 @@ -from constants import * - -from mobject.geometry import AnnularSector -from mobject.geometry import Annulus -from mobject.mobject import Mobject -from mobject.svg.svg_mobject import SVGMobject -from mobject.types.vectorized_mobject import VMobject -from mobject.types.vectorized_mobject import VectorizedPoint - -from continual_animation.continual_animation import ContinualAnimation - -from animation.composition import LaggedStart -from animation.transform import Transform -from animation.creation import FadeIn -from animation.creation import FadeOut - -from utils.space_ops import angle_between_vectors -from utils.space_ops import project_along_vector -from utils.space_ops import rotate_vector -from utils.space_ops import z_to_vector +from traceback import * from scipy.spatial import ConvexHull -from traceback import * + +from manimlib.animation.composition import LaggedStart +from manimlib.animation.creation import FadeIn +from manimlib.animation.creation import FadeOut +from manimlib.animation.transform import Transform +from manimlib.constants import * +from manimlib.continual_animation.continual_animation import ContinualAnimation +from manimlib.mobject.geometry import AnnularSector +from manimlib.mobject.geometry import Annulus +from manimlib.mobject.mobject import Mobject +from manimlib.mobject.svg.svg_mobject import SVGMobject +from manimlib.mobject.types.vectorized_mobject import VMobject +from manimlib.mobject.types.vectorized_mobject import VectorizedPoint +from manimlib.utils.space_ops import angle_between_vectors +from manimlib.utils.space_ops import project_along_vector +from manimlib.utils.space_ops import rotate_vector +from manimlib.utils.space_ops import z_to_vector LIGHT_COLOR = YELLOW SHADOW_COLOR = BLACK diff --git a/once_useful_constructs/matrix_multiplication.py b/manimlib/once_useful_constructs/matrix_multiplication.py similarity index 89% rename from once_useful_constructs/matrix_multiplication.py rename to manimlib/once_useful_constructs/matrix_multiplication.py index 367f7bb8..26534951 100644 --- a/once_useful_constructs/matrix_multiplication.py +++ b/manimlib/once_useful_constructs/matrix_multiplication.py @@ -1,17 +1,16 @@ import numpy as np -from constants import * - -from animation.creation import ShowCreation -from animation.transform import ApplyMethod -from animation.creation import FadeOut -from animation.transform import Transform -from mobject.matrix import Matrix -from mobject.svg.tex_mobject import TexMobject -from mobject.types.vectorized_mobject import VGroup -from scene.scene import Scene -from mobject.geometry import Circle -from mobject.geometry import Line +from manimlib.animation.creation import FadeOut +from manimlib.animation.creation import ShowCreation +from manimlib.animation.transform import ApplyMethod +from manimlib.animation.transform import Transform +from manimlib.constants import * +from manimlib.mobject.geometry import Circle +from manimlib.mobject.geometry import Line +from manimlib.mobject.matrix import Matrix +from manimlib.mobject.svg.tex_mobject import TexMobject +from manimlib.mobject.types.vectorized_mobject import VGroup +from manimlib.scene.scene import Scene class NumericalMatrixMultiplication(Scene): diff --git a/once_useful_constructs/region.py b/manimlib/once_useful_constructs/region.py similarity index 96% rename from once_useful_constructs/region.py rename to manimlib/once_useful_constructs/region.py index 2507f449..f2f8ae87 100644 --- a/once_useful_constructs/region.py +++ b/manimlib/once_useful_constructs/region.py @@ -1,10 +1,9 @@ -import itertools as it from copy import deepcopy +import itertools as it -from mobject.mobject import Mobject -from utils.iterables import adjacent_pairs - -from constants import * +from manimlib.constants import * +from manimlib.mobject.mobject import Mobject +from manimlib.utils.iterables import adjacent_pairs # Warning: This is all now pretty depricated, and should not be expected to work diff --git a/scene/__init__.py b/manimlib/scene/__init__.py similarity index 100% rename from scene/__init__.py rename to manimlib/scene/__init__.py diff --git a/scene/graph_scene.py b/manimlib/scene/graph_scene.py similarity index 95% rename from scene/graph_scene.py rename to manimlib/scene/graph_scene.py index dae98e83..5bdf93c1 100644 --- a/scene/graph_scene.py +++ b/manimlib/scene/graph_scene.py @@ -1,25 +1,23 @@ - - -from constants import * import itertools as it -from scene.scene import Scene -from animation.creation import Write, DrawBorderThenFill, ShowCreation -from animation.transform import Transform -from animation.update import UpdateFromAlphaFunc -from mobject.functions import ParametricFunction -from mobject.geometry import Line -from mobject.geometry import Rectangle -from mobject.geometry import RegularPolygon -from mobject.number_line import NumberLine -from mobject.svg.tex_mobject import TexMobject -from mobject.svg.tex_mobject import TextMobject -from mobject.types.vectorized_mobject import VGroup -from mobject.types.vectorized_mobject import VectorizedPoint -from utils.bezier import interpolate -from utils.color import color_gradient -from utils.color import invert_color -from utils.space_ops import angle_of_vector +from manimlib.animation.creation import Write, DrawBorderThenFill, ShowCreation +from manimlib.animation.transform import Transform +from manimlib.animation.update import UpdateFromAlphaFunc +from manimlib.constants import * +from manimlib.mobject.functions import ParametricFunction +from manimlib.mobject.geometry import Line +from manimlib.mobject.geometry import Rectangle +from manimlib.mobject.geometry import RegularPolygon +from manimlib.mobject.number_line import NumberLine +from manimlib.mobject.svg.tex_mobject import TexMobject +from manimlib.mobject.svg.tex_mobject import TextMobject +from manimlib.mobject.types.vectorized_mobject import VGroup +from manimlib.mobject.types.vectorized_mobject import VectorizedPoint +from manimlib.scene.scene import Scene +from manimlib.utils.bezier import interpolate +from manimlib.utils.color import color_gradient +from manimlib.utils.color import invert_color +from manimlib.utils.space_ops import angle_of_vector # TODO, this should probably reimplemented entirely, especially so as to # better reuse code from mobject/coordinate_systems diff --git a/manimlib/scene/media_dir.txt b/manimlib/scene/media_dir.txt new file mode 100644 index 00000000..27949aaf --- /dev/null +++ b/manimlib/scene/media_dir.txt @@ -0,0 +1 @@ +media \ No newline at end of file diff --git a/scene/moving_camera_scene.py b/manimlib/scene/moving_camera_scene.py similarity index 87% rename from scene/moving_camera_scene.py rename to manimlib/scene/moving_camera_scene.py index a0986d74..4fa23268 100644 --- a/scene/moving_camera_scene.py +++ b/manimlib/scene/moving_camera_scene.py @@ -1,8 +1,6 @@ - - -from scene.scene import Scene -from camera.moving_camera import MovingCamera -from utils.iterables import list_update +from manimlib.camera.moving_camera import MovingCamera +from manimlib.scene.scene import Scene +from manimlib.utils.iterables import list_update class MovingCameraScene(Scene): diff --git a/scene/reconfigurable_scene.py b/manimlib/scene/reconfigurable_scene.py similarity index 91% rename from scene/reconfigurable_scene.py rename to manimlib/scene/reconfigurable_scene.py index b12670fc..96e68d87 100644 --- a/scene/reconfigurable_scene.py +++ b/manimlib/scene/reconfigurable_scene.py @@ -1,10 +1,7 @@ - - -from scene.scene import Scene -from animation.transform import Transform -from mobject.mobject import Mobject - -from constants import * +from manimlib.animation.transform import Transform +from manimlib.constants import * +from manimlib.mobject.mobject import Mobject +from manimlib.scene.scene import Scene class ReconfigurableScene(Scene): diff --git a/scene/sample_space_scene.py b/manimlib/scene/sample_space_scene.py similarity index 92% rename from scene/sample_space_scene.py rename to manimlib/scene/sample_space_scene.py index b7479f7e..77161834 100644 --- a/scene/sample_space_scene.py +++ b/manimlib/scene/sample_space_scene.py @@ -1,15 +1,11 @@ - -from constants import * - -from .scene import Scene - -from animation.animation import Animation -from animation.transform import MoveToTarget -from animation.transform import Transform -from animation.update import UpdateFromFunc - -from mobject.types.vectorized_mobject import VGroup -from mobject.probability import SampleSpace +from manimlib.animation.animation import Animation +from manimlib.animation.transform import MoveToTarget +from manimlib.animation.transform import Transform +from manimlib.animation.update import UpdateFromFunc +from manimlib.constants import * +from manimlib.scene.scene import Scene +from manimlib.mobject.probability import SampleSpace +from manimlib.mobject.types.vectorized_mobject import VGroup class SampleSpaceScene(Scene): diff --git a/scene/scene.py b/manimlib/scene/scene.py similarity index 96% rename from scene/scene.py rename to manimlib/scene/scene.py index cff2df29..53b611b7 100644 --- a/scene/scene.py +++ b/manimlib/scene/scene.py @@ -1,37 +1,30 @@ - +from time import sleep +import _thread as thread +import datetime import inspect import itertools as it -import numpy as np import os import random import shutil import subprocess as sp import warnings -from time import sleep -try: - import thread # Low-level threading API (Python 2.7) -except ImportError: - import _thread as thread # Low-level threading API (Python 3.x) from tqdm import tqdm as ProgressDisplay +import numpy as np -from constants import * - -from animation.animation import Animation -from animation.transform import MoveToTarget, ApplyMethod -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 - -from mobject.svg.tex_mobject import TextMobject -from animation.creation import Write -import datetime +from manimlib.animation.animation import Animation +from manimlib.animation.creation import Write +from manimlib.animation.transform import MoveToTarget, ApplyMethod +from manimlib.camera.camera import Camera +from manimlib.constants import * +from manimlib.container.container import Container +from manimlib.continual_animation.continual_animation import ContinualAnimation +from manimlib.mobject.mobject import Mobject +from manimlib.mobject.svg.tex_mobject import TextMobject +from manimlib.utils.iterables import list_update +from manimlib.utils.output_directory_getters import add_extension_if_not_present +from manimlib.utils.output_directory_getters import get_image_output_directory +from manimlib.utils.output_directory_getters import get_movie_output_directory class Scene(Container): CONFIG = { diff --git a/scene/scene_from_video.py b/manimlib/scene/scene_from_video.py similarity index 97% rename from scene/scene_from_video.py rename to manimlib/scene/scene_from_video.py index 64334def..72a78ec5 100644 --- a/scene/scene_from_video.py +++ b/manimlib/scene/scene_from_video.py @@ -1,11 +1,7 @@ - - - +from tqdm import tqdm as show_progress import cv2 -from tqdm import tqdm as show_progress - -from scene.scene import Scene +from manimlib.scene.scene import Scene class SceneFromVideo(Scene): diff --git a/scene/three_d_scene.py b/manimlib/scene/three_d_scene.py similarity index 89% rename from scene/three_d_scene.py rename to manimlib/scene/three_d_scene.py index e0525f00..1abe82c0 100644 --- a/scene/three_d_scene.py +++ b/manimlib/scene/three_d_scene.py @@ -1,16 +1,16 @@ -from constants import DEGREES -from constants import PRODUCTION_QUALITY_FRAME_DURATION -from continual_animation.update import ContinualGrowValue -from animation.transform import ApplyMethod -from camera.three_d_camera import ThreeDCamera -from mobject.coordinate_systems import ThreeDAxes -from mobject.geometry import Line -from mobject.three_dimensions import Sphere -from mobject.types.vectorized_mobject import VGroup -from mobject.types.vectorized_mobject import VectorizedPoint -from scene.scene import Scene -from utils.config_ops import digest_config -from utils.config_ops import merge_config +from manimlib.animation.transform import ApplyMethod +from manimlib.camera.three_d_camera import ThreeDCamera +from manimlib.constants import DEGREES +from manimlib.constants import PRODUCTION_QUALITY_FRAME_DURATION +from manimlib.continual_animation.update import ContinualGrowValue +from manimlib.mobject.coordinate_systems import ThreeDAxes +from manimlib.mobject.geometry import Line +from manimlib.mobject.three_dimensions import Sphere +from manimlib.mobject.types.vectorized_mobject import VGroup +from manimlib.mobject.types.vectorized_mobject import VectorizedPoint +from manimlib.scene.scene import Scene +from manimlib.utils.config_ops import digest_config +from manimlib.utils.config_ops import merge_config class ThreeDScene(Scene): diff --git a/scene/vector_space_scene.py b/manimlib/scene/vector_space_scene.py similarity index 91% rename from scene/vector_space_scene.py rename to manimlib/scene/vector_space_scene.py index 6b210e39..bba83f15 100644 --- a/scene/vector_space_scene.py +++ b/manimlib/scene/vector_space_scene.py @@ -1,38 +1,34 @@ - - import numpy as np -from constants import * - -from animation.animation import Animation -from animation.creation import ShowCreation -from animation.creation import Write -from animation.transform import ApplyFunction -from animation.transform import ApplyPointwiseFunction -from animation.creation import FadeOut -from animation.creation import GrowArrow -from animation.transform import Transform -from mobject.mobject import Mobject -from mobject.svg.tex_mobject import TexMobject -from mobject.svg.tex_mobject import TextMobject -from mobject.types.vectorized_mobject import VGroup -from mobject.types.vectorized_mobject import VMobject -from scene.scene import Scene -from mobject.geometry import Arrow -from mobject.geometry import Dot -from mobject.geometry import Line -from mobject.geometry import Rectangle -from mobject.geometry import Vector -from mobject.coordinate_systems import Axes -from mobject.coordinate_systems import NumberPlane - -from mobject.matrix import Matrix -from mobject.matrix import VECTOR_LABEL_SCALE_FACTOR -from mobject.matrix import vector_coordinate_label -from utils.rate_functions import rush_from -from utils.rate_functions import rush_into -from utils.space_ops import angle_of_vector -from utils.space_ops import get_norm +from manimlib.animation.animation import Animation +from manimlib.animation.creation import FadeOut +from manimlib.animation.creation import GrowArrow +from manimlib.animation.creation import ShowCreation +from manimlib.animation.creation import Write +from manimlib.animation.transform import ApplyFunction +from manimlib.animation.transform import ApplyPointwiseFunction +from manimlib.animation.transform import Transform +from manimlib.constants import * +from manimlib.mobject.coordinate_systems import Axes +from manimlib.mobject.coordinate_systems import NumberPlane +from manimlib.mobject.geometry import Arrow +from manimlib.mobject.geometry import Dot +from manimlib.mobject.geometry import Line +from manimlib.mobject.geometry import Rectangle +from manimlib.mobject.geometry import Vector +from manimlib.mobject.matrix import Matrix +from manimlib.mobject.matrix import VECTOR_LABEL_SCALE_FACTOR +from manimlib.mobject.matrix import vector_coordinate_label +from manimlib.mobject.mobject import Mobject +from manimlib.mobject.svg.tex_mobject import TexMobject +from manimlib.mobject.svg.tex_mobject import TextMobject +from manimlib.mobject.types.vectorized_mobject import VGroup +from manimlib.mobject.types.vectorized_mobject import VMobject +from manimlib.scene.scene import Scene +from manimlib.utils.rate_functions import rush_from +from manimlib.utils.rate_functions import rush_into +from manimlib.utils.space_ops import angle_of_vector +from manimlib.utils.space_ops import get_norm X_COLOR = GREEN_C Y_COLOR = RED_C diff --git a/scene/zoomed_scene.py b/manimlib/scene/zoomed_scene.py similarity index 89% rename from scene/zoomed_scene.py rename to manimlib/scene/zoomed_scene.py index 3bc763b6..b0065dd5 100644 --- a/scene/zoomed_scene.py +++ b/manimlib/scene/zoomed_scene.py @@ -1,13 +1,10 @@ - - -from scene.moving_camera_scene import MovingCameraScene -from camera.moving_camera import MovingCamera -from camera.multi_camera import MultiCamera -from mobject.types.image_mobject import ImageMobjectFromCamera -from utils.simple_functions import fdiv - -from constants import * -from animation.transform import ApplyMethod +from manimlib.animation.transform import ApplyMethod +from manimlib.camera.moving_camera import MovingCamera +from manimlib.camera.multi_camera import MultiCamera +from manimlib.constants import * +from manimlib.mobject.types.image_mobject import ImageMobjectFromCamera +from manimlib.scene.moving_camera_scene import MovingCameraScene +from manimlib.utils.simple_functions import fdiv # Note, any scenes from old videos using ZoomedScene will almost certainly # break, as it was restructured. diff --git a/stage_scenes.py b/manimlib/stage_scenes.py similarity index 86% rename from stage_scenes.py rename to manimlib/stage_scenes.py index d47f1b27..23e0283f 100644 --- a/stage_scenes.py +++ b/manimlib/stage_scenes.py @@ -1,14 +1,12 @@ - - import inspect import os import sys -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 utils.output_directory_getters import get_movie_output_directory +from manimlib.constants import PRODUCTION_QUALITY_CAMERA_CONFIG +from manimlib.constants import PRODUCTION_QUALITY_FRAME_DURATION +from manimlib.extract_scene import get_module +from manimlib.extract_scene import is_scene +from manimlib.utils.output_directory_getters import get_movie_output_directory def get_sorted_scene_classes(module_name): diff --git a/stream_starter.py b/manimlib/stream_starter.py similarity index 73% rename from stream_starter.py rename to manimlib/stream_starter.py index 709faf88..f3477baa 100644 --- a/stream_starter.py +++ b/manimlib/stream_starter.py @@ -1,18 +1,19 @@ -from scene.scene import Scene from time import sleep import code -import constants import os import readline import subprocess +from manimlib.scene.scene import Scene +import manimlib.constants + def start_livestream(to_twitch=False, twitch_key=None): class Manim(): def __new__(cls): kwargs = { - "scene_name": constants.LIVE_STREAM_NAME, + "scene_name": manimlib.constants.LIVE_STREAM_NAME, "open_video_upon_completion": False, "show_file_in_finder": False, # By default, write to file @@ -25,12 +26,12 @@ def start_livestream(to_twitch=False, twitch_key=None): "quiet": True, "ignore_waits": False, "write_all": False, - "name": constants.LIVE_STREAM_NAME, + "name": manimlib.constants.LIVE_STREAM_NAME, "start_at_animation_number": 0, "end_at_animation_number": None, "skip_animations": False, - "camera_config": constants.HIGH_QUALITY_CAMERA_CONFIG, - "frame_duration": constants.MEDIUM_QUALITY_FRAME_DURATION, + "camera_config": manimlib.constants.HIGH_QUALITY_CAMERA_CONFIG, + "frame_duration": manimlib.constants.MEDIUM_QUALITY_FRAME_DURATION, "livestreaming": True, "to_twitch": to_twitch, "twitch_key": twitch_key, @@ -40,7 +41,7 @@ def start_livestream(to_twitch=False, twitch_key=None): if not to_twitch: FNULL = open(os.devnull, 'w') subprocess.Popen( - [constants.STREAMING_CLIENT, constants.STREAMING_URL], + [manimlib.constants.STREAMING_CLIENT, manimlib.constants.STREAMING_URL], stdout=FNULL, stderr=FNULL) sleep(3) @@ -50,4 +51,4 @@ def start_livestream(to_twitch=False, twitch_key=None): shell = code.InteractiveConsole(variables) shell.push("manim = Manim()") shell.push("from big_ol_pile_of_manim_imports import *") - shell.interact(banner=constants.STREAMING_CONSOLE_BANNER) + shell.interact(banner=manimlib.constants.STREAMING_CONSOLE_BANNER) diff --git a/tex_template.tex b/manimlib/tex_template.tex similarity index 100% rename from tex_template.tex rename to manimlib/tex_template.tex diff --git a/mobject/svg/__init__.py b/manimlib/utils/__init__.py similarity index 100% rename from mobject/svg/__init__.py rename to manimlib/utils/__init__.py diff --git a/utils/bezier.py b/manimlib/utils/bezier.py similarity index 97% rename from utils/bezier.py rename to manimlib/utils/bezier.py index f61c47e5..197f5606 100644 --- a/utils/bezier.py +++ b/manimlib/utils/bezier.py @@ -1,8 +1,8 @@ +from scipy import linalg import numpy as np -from scipy import linalg -from utils.simple_functions import choose_using_cache -from utils.space_ops import get_norm +from manimlib.utils.simple_functions import choose_using_cache +from manimlib.utils.space_ops import get_norm CLOSED_THRESHOLD = 0.001 diff --git a/utils/color.py b/manimlib/utils/color.py similarity index 91% rename from utils/color.py rename to manimlib/utils/color.py index 4625fa45..1a5a229b 100644 --- a/utils/color.py +++ b/manimlib/utils/color.py @@ -1,13 +1,13 @@ -import numpy as np import random from colour import Color -from constants import WHITE -from constants import PALETTE +import numpy as np -from utils.bezier import interpolate -from utils.space_ops import normalize -from utils.simple_functions import clip_in_place +from manimlib.constants import PALETTE +from manimlib.constants import WHITE +from manimlib.utils.bezier import interpolate +from manimlib.utils.simple_functions import clip_in_place +from manimlib.utils.space_ops import normalize def color_to_rgb(color): diff --git a/utils/config_ops.py b/manimlib/utils/config_ops.py similarity index 100% rename from utils/config_ops.py rename to manimlib/utils/config_ops.py index dfdd5558..e21ba1ac 100644 --- a/utils/config_ops.py +++ b/manimlib/utils/config_ops.py @@ -1,6 +1,6 @@ +from functools import reduce import inspect import operator as op -from functools import reduce def instantiate(obj): diff --git a/utils/images.py b/manimlib/utils/images.py similarity index 94% rename from utils/images.py rename to manimlib/utils/images.py index 38caf245..57d089b4 100644 --- a/utils/images.py +++ b/manimlib/utils/images.py @@ -2,7 +2,8 @@ import numpy as np import os from PIL import Image -from constants import RASTER_IMAGE_DIR + +from manimlib.constants import RASTER_IMAGE_DIR def get_full_raster_image_path(image_file_name): diff --git a/utils/iterables.py b/manimlib/utils/iterables.py similarity index 100% rename from utils/iterables.py rename to manimlib/utils/iterables.py diff --git a/utils/output_directory_getters.py b/manimlib/utils/output_directory_getters.py similarity index 66% rename from utils/output_directory_getters.py rename to manimlib/utils/output_directory_getters.py index bd05def9..972bc2cd 100644 --- a/utils/output_directory_getters.py +++ b/manimlib/utils/output_directory_getters.py @@ -1,8 +1,8 @@ import inspect import os -from constants import THIS_DIR -from constants import VIDEO_DIR +from manimlib.constants import THIS_DIR +from manimlib.constants import VIDEO_DIR def add_extension_if_not_present(file_name, extension): @@ -20,12 +20,14 @@ def guarantee_existance(path): def get_scene_output_directory(scene_class): - file_path = os.path.abspath(inspect.getfile(scene_class)) - - file_path = os.path.relpath(file_path, THIS_DIR) - file_path = file_path.replace(".pyc", "") - file_path = file_path.replace(".py", "") - return guarantee_existance(os.path.join(VIDEO_DIR, file_path)) + try: + file_path = os.path.abspath(inspect.getfile(scene_class)) + file_path = os.path.relpath(file_path, THIS_DIR) + file_path = file_path.replace(".pyc", "") + file_path = file_path.replace(".py", "") + return guarantee_existance(os.path.join(VIDEO_DIR, file_path)) + except TypeError: + return guarantee_existance(os.path.join(VIDEO_DIR, "input_scenes")) def get_movie_output_directory(scene_class, camera_config, frame_duration): diff --git a/utils/paths.py b/manimlib/utils/paths.py similarity index 87% rename from utils/paths.py rename to manimlib/utils/paths.py index b45faa9a..8bc9cca1 100644 --- a/utils/paths.py +++ b/manimlib/utils/paths.py @@ -1,9 +1,9 @@ import numpy as np -from constants import OUT -from utils.bezier import interpolate -from utils.space_ops import rotation_matrix -from utils.space_ops import get_norm +from manimlib.constants import OUT +from manimlib.utils.bezier import interpolate +from manimlib.utils.space_ops import get_norm +from manimlib.utils.space_ops import rotation_matrix STRAIGHT_PATH_THRESHOLD = 0.01 diff --git a/utils/rate_functions.py b/manimlib/utils/rate_functions.py similarity index 95% rename from utils/rate_functions.py rename to manimlib/utils/rate_functions.py index 5610319d..a5646f30 100644 --- a/utils/rate_functions.py +++ b/manimlib/utils/rate_functions.py @@ -1,7 +1,7 @@ import numpy as np -from utils.bezier import bezier -from utils.simple_functions import sigmoid +from manimlib.utils.bezier import bezier +from manimlib.utils.simple_functions import sigmoid def linear(t): diff --git a/utils/simple_functions.py b/manimlib/utils/simple_functions.py similarity index 100% rename from utils/simple_functions.py rename to manimlib/utils/simple_functions.py index 35ad2c97..2cd048f9 100644 --- a/utils/simple_functions.py +++ b/manimlib/utils/simple_functions.py @@ -1,7 +1,7 @@ +from functools import reduce +import inspect import numpy as np import operator as op -import inspect -from functools import reduce def sigmoid(x): diff --git a/utils/sounds.py b/manimlib/utils/sounds.py similarity index 100% rename from utils/sounds.py rename to manimlib/utils/sounds.py diff --git a/utils/space_ops.py b/manimlib/utils/space_ops.py similarity index 96% rename from utils/space_ops.py rename to manimlib/utils/space_ops.py index 2a1b604a..9b5af5bb 100644 --- a/utils/space_ops.py +++ b/manimlib/utils/space_ops.py @@ -1,11 +1,12 @@ +from functools import reduce + import numpy as np -from constants import OUT -from constants import RIGHT -from constants import PI -from constants import TAU -from functools import reduce -from utils.iterables import adjacent_pairs +from manimlib.constants import OUT +from manimlib.constants import PI +from manimlib.constants import RIGHT +from manimlib.constants import TAU +from manimlib.utils.iterables import adjacent_pairs def get_norm(vect): diff --git a/utils/strings.py b/manimlib/utils/strings.py similarity index 100% rename from utils/strings.py rename to manimlib/utils/strings.py index 6f1cb881..b986577d 100644 --- a/utils/strings.py +++ b/manimlib/utils/strings.py @@ -1,6 +1,6 @@ +import itertools as it import re import string -import itertools as it def to_camel_case(name): diff --git a/utils/tex_file_writing.py b/manimlib/utils/tex_file_writing.py similarity index 95% rename from utils/tex_file_writing.py rename to manimlib/utils/tex_file_writing.py index 81a9d42d..061f1957 100644 --- a/utils/tex_file_writing.py +++ b/manimlib/utils/tex_file_writing.py @@ -1,10 +1,9 @@ - import os import hashlib -from constants import TEX_DIR -from constants import TEX_TEXT_TO_REPLACE -from constants import TEX_USE_CTEX +from manimlib.constants import TEX_DIR +from manimlib.constants import TEX_TEXT_TO_REPLACE +from manimlib.constants import TEX_USE_CTEX def tex_hash(expression, template_tex_file_body): diff --git a/mobject/types/__init__.py b/mobject/types/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/once_useful_constructs/__init__.py b/once_useful_constructs/__init__.py deleted file mode 100644 index 6af61901..00000000 --- a/once_useful_constructs/__init__.py +++ /dev/null @@ -1,28 +0,0 @@ -import constants -import os -import importlib - -modules = filter( - lambda x: x.endswith(".py"), - os.listdir(constants.THIS_DIR + os.sep + "once_useful_constructs"), -) -modules = list(map( - lambda x: x[:x.find(".py")], - modules -)) -for m in modules: - if m == "__init__": - continue - else: - importlib.import_module("once_useful_constructs." + m, package="once_useful_constructs") - -for m in modules: - if m == "__init__": - continue - m = globals()[m] - module_dict = m.__dict__ - try: - to_import = m.__all__ - except AttributeError: - to_import = [name for name in module_dict if not name.startswith('_')] - globals().update({name: module_dict[name] for name in to_import}) diff --git a/utils/__init__.py b/utils/__init__.py deleted file mode 100644 index e69de29b..00000000