From 5d3f7308240042c28ac9e7ee9f99cd1a02d792ec Mon Sep 17 00:00:00 2001 From: Varniex <41651498+Varniex@users.noreply.github.com> Date: Fri, 6 Dec 2024 04:12:46 +0530 Subject: [PATCH 1/3] Cleaning up some imports + Minor Bug fixed in VectorField (#2253) * cleaning up imports * sample_points -> sample_coords --- manimlib/animation/animation.py | 1 - manimlib/animation/composition.py | 2 -- manimlib/animation/creation.py | 1 - manimlib/animation/fading.py | 2 -- manimlib/animation/growing.py | 1 - manimlib/animation/indication.py | 2 -- manimlib/camera/camera_frame.py | 1 - manimlib/mobject/frame.py | 1 + manimlib/mobject/geometry.py | 4 ---- manimlib/mobject/matrix.py | 4 +--- manimlib/mobject/numbers.py | 3 ++- manimlib/mobject/svg/brace.py | 2 +- manimlib/mobject/svg/drawings.py | 6 +----- manimlib/mobject/svg/svg_mobject.py | 4 ---- manimlib/mobject/svg/tex_mobject.py | 2 +- manimlib/mobject/vector_field.py | 19 +++++++------------ manimlib/scene/interactive_scene.py | 1 - manimlib/shader_wrapper.py | 5 +++-- manimlib/typing.py | 7 ++++--- manimlib/utils/shaders.py | 5 +---- manimlib/window.py | 3 +++ 21 files changed, 25 insertions(+), 51 deletions(-) diff --git a/manimlib/animation/animation.py b/manimlib/animation/animation.py index 8b897f81..a11c976f 100644 --- a/manimlib/animation/animation.py +++ b/manimlib/animation/animation.py @@ -6,7 +6,6 @@ from manimlib.mobject.mobject import _AnimationBuilder from manimlib.mobject.mobject import Mobject from manimlib.utils.iterables import remove_list_redundancies from manimlib.utils.rate_functions import smooth -from manimlib.utils.rate_functions import squish_rate_func from manimlib.utils.simple_functions import clip from typing import TYPE_CHECKING diff --git a/manimlib/animation/composition.py b/manimlib/animation/composition.py index 4d24f696..40b09dcf 100644 --- a/manimlib/animation/composition.py +++ b/manimlib/animation/composition.py @@ -1,7 +1,5 @@ from __future__ import annotations -import numpy as np - from manimlib.animation.animation import Animation from manimlib.animation.animation import prepare_animation from manimlib.mobject.mobject import _AnimationBuilder diff --git a/manimlib/animation/creation.py b/manimlib/animation/creation.py index 9b365570..5371fa7e 100644 --- a/manimlib/animation/creation.py +++ b/manimlib/animation/creation.py @@ -5,7 +5,6 @@ from abc import ABC, abstractmethod import numpy as np from manimlib.animation.animation import Animation -from manimlib.constants import WHITE from manimlib.mobject.svg.string_mobject import StringMobject from manimlib.mobject.types.vectorized_mobject import VMobject from manimlib.utils.bezier import integer_interpolate diff --git a/manimlib/animation/fading.py b/manimlib/animation/fading.py index bc476467..c4840ab8 100644 --- a/manimlib/animation/fading.py +++ b/manimlib/animation/fading.py @@ -5,9 +5,7 @@ import numpy as np from manimlib.animation.animation import Animation from manimlib.animation.transform import Transform from manimlib.constants import ORIGIN -from manimlib.mobject.mobject import Group from manimlib.mobject.types.vectorized_mobject import VMobject -from manimlib.mobject.types.vectorized_mobject import VGroup from manimlib.utils.bezier import interpolate from manimlib.utils.rate_functions import there_and_back diff --git a/manimlib/animation/growing.py b/manimlib/animation/growing.py index d127819e..96b34edb 100644 --- a/manimlib/animation/growing.py +++ b/manimlib/animation/growing.py @@ -1,7 +1,6 @@ from __future__ import annotations from manimlib.animation.transform import Transform -from manimlib.constants import PI from typing import TYPE_CHECKING diff --git a/manimlib/animation/indication.py b/manimlib/animation/indication.py index aa6dc341..05afc1ec 100644 --- a/manimlib/animation/indication.py +++ b/manimlib/animation/indication.py @@ -1,7 +1,5 @@ from __future__ import annotations -import math -from os import remove import numpy as np from manimlib.animation.animation import Animation diff --git a/manimlib/camera/camera_frame.py b/manimlib/camera/camera_frame.py index 648d55cd..62ca4935 100644 --- a/manimlib/camera/camera_frame.py +++ b/manimlib/camera/camera_frame.py @@ -5,7 +5,6 @@ import warnings import numpy as np from scipy.spatial.transform import Rotation -from pyrr import Matrix44 from manimlib.constants import DEGREES, RADIANS from manimlib.constants import FRAME_SHAPE diff --git a/manimlib/mobject/frame.py b/manimlib/mobject/frame.py index fd00b2c8..efe71cce 100644 --- a/manimlib/mobject/frame.py +++ b/manimlib/mobject/frame.py @@ -37,6 +37,7 @@ class FullScreenRectangle(ScreenRectangle): fill_color=fill_color, fill_opacity=fill_opacity, stroke_width=stroke_width, + **kwargs ) diff --git a/manimlib/mobject/geometry.py b/manimlib/mobject/geometry.py index 1188bb3d..375769e0 100644 --- a/manimlib/mobject/geometry.py +++ b/manimlib/mobject/geometry.py @@ -1,7 +1,6 @@ from __future__ import annotations import math -import numbers import numpy as np @@ -13,9 +12,7 @@ from manimlib.mobject.mobject import Mobject from manimlib.mobject.types.vectorized_mobject import DashedVMobject from manimlib.mobject.types.vectorized_mobject import VGroup from manimlib.mobject.types.vectorized_mobject import VMobject -from manimlib.utils.bezier import bezier from manimlib.utils.bezier import quadratic_bezier_points_for_arc -from manimlib.utils.bezier import partial_quadratic_bezier_points from manimlib.utils.iterables import adjacent_n_tuples from manimlib.utils.iterables import adjacent_pairs from manimlib.utils.simple_functions import clip @@ -30,7 +27,6 @@ from manimlib.utils.space_ops import normalize from manimlib.utils.space_ops import rotate_vector from manimlib.utils.space_ops import rotation_matrix_transpose from manimlib.utils.space_ops import rotation_between_vectors -from manimlib.utils.space_ops import rotation_about_z from typing import TYPE_CHECKING diff --git a/manimlib/mobject/matrix.py b/manimlib/mobject/matrix.py index cb5991bf..84c8ccc6 100644 --- a/manimlib/mobject/matrix.py +++ b/manimlib/mobject/matrix.py @@ -1,7 +1,5 @@ from __future__ import annotations -import itertools as it - import numpy as np from manimlib.constants import DOWN, LEFT, RIGHT, ORIGIN @@ -14,7 +12,7 @@ from manimlib.mobject.types.vectorized_mobject import VMobject from typing import TYPE_CHECKING if TYPE_CHECKING: - from typing import Sequence, Union, Tuple, Optional + from typing import Sequence, Union, Optional from manimlib.typing import ManimColor, Vect3, VectNArray, Self StringMatrixType = Union[Sequence[Sequence[str]], np.ndarray[int, np.dtype[np.str_]]] diff --git a/manimlib/mobject/numbers.py b/manimlib/mobject/numbers.py index 30f6981e..f5c1fc53 100644 --- a/manimlib/mobject/numbers.py +++ b/manimlib/mobject/numbers.py @@ -14,7 +14,8 @@ from manimlib.utils.bezier import interpolate from typing import TYPE_CHECKING if TYPE_CHECKING: - from typing import TypeVar + from typing import TypeVar, Callable + from manimlib.mobject.mobject import Mobject from manimlib.typing import ManimColor, Vect3, Self T = TypeVar("T", bound=VMobject) diff --git a/manimlib/mobject/svg/brace.py b/manimlib/mobject/svg/brace.py index 1c21e153..9399e73e 100644 --- a/manimlib/mobject/svg/brace.py +++ b/manimlib/mobject/svg/brace.py @@ -6,7 +6,7 @@ import copy import numpy as np from manimlib.constants import DEFAULT_MOBJECT_TO_MOBJECT_BUFFER, SMALL_BUFF -from manimlib.constants import DOWN, LEFT, ORIGIN, RIGHT, UP, DL, DR, UL +from manimlib.constants import DOWN, LEFT, ORIGIN, RIGHT, DL, DR, UL from manimlib.constants import PI from manimlib.animation.composition import AnimationGroup from manimlib.animation.fading import FadeIn diff --git a/manimlib/mobject/svg/drawings.py b/manimlib/mobject/svg/drawings.py index 198b3560..fa278f40 100644 --- a/manimlib/mobject/svg/drawings.py +++ b/manimlib/mobject/svg/drawings.py @@ -25,7 +25,6 @@ from manimlib.constants import LEFT from manimlib.constants import LEFT from manimlib.constants import MED_LARGE_BUFF from manimlib.constants import MED_SMALL_BUFF -from manimlib.constants import LARGE_BUFF from manimlib.constants import ORIGIN from manimlib.constants import OUT from manimlib.constants import PI @@ -52,12 +51,9 @@ from manimlib.mobject.geometry import Polygon from manimlib.mobject.geometry import Rectangle from manimlib.mobject.geometry import Square from manimlib.mobject.geometry import AnnularSector -from manimlib.mobject.mobject import Mobject from manimlib.mobject.numbers import Integer from manimlib.mobject.shape_matchers import SurroundingRectangle from manimlib.mobject.svg.svg_mobject import SVGMobject -from manimlib.mobject.svg.tex_mobject import Tex -from manimlib.mobject.svg.tex_mobject import TexText from manimlib.mobject.svg.special_tex import TexTextFromPresetString from manimlib.mobject.three_dimensions import Prismify from manimlib.mobject.three_dimensions import VCube @@ -421,7 +417,7 @@ class Bubble(VGroup): super().flip(axis=axis, **kwargs) if only_body: # Flip in place, don't use kwargs - self.content.flip(axis=axis) + self.content.flip(axis=axis) if abs(axis[1]) > 0: self.direction = -np.array(self.direction) return self diff --git a/manimlib/mobject/svg/svg_mobject.py b/manimlib/mobject/svg/svg_mobject.py index 020ed762..e0016bee 100644 --- a/manimlib/mobject/svg/svg_mobject.py +++ b/manimlib/mobject/svg/svg_mobject.py @@ -1,6 +1,5 @@ from __future__ import annotations -import os from xml.etree import ElementTree as ET import numpy as np @@ -16,14 +15,11 @@ from manimlib.mobject.geometry import Polyline from manimlib.mobject.geometry import Rectangle from manimlib.mobject.geometry import RoundedRectangle from manimlib.mobject.types.vectorized_mobject import VMobject -from manimlib.utils.directories import get_mobject_data_dir from manimlib.utils.images import get_full_vector_image_path from manimlib.utils.iterables import hash_obj -from manimlib.utils.simple_functions import hash_string from typing import TYPE_CHECKING if TYPE_CHECKING: - from typing import Tuple from manimlib.typing import ManimColor, Vect3Array diff --git a/manimlib/mobject/svg/tex_mobject.py b/manimlib/mobject/svg/tex_mobject.py index 5211cbcb..b5f598e4 100644 --- a/manimlib/mobject/svg/tex_mobject.py +++ b/manimlib/mobject/svg/tex_mobject.py @@ -14,7 +14,7 @@ from manimlib.logger import log from typing import TYPE_CHECKING if TYPE_CHECKING: - from manimlib.typing import ManimColor, Span, Selector + from manimlib.typing import ManimColor, Span, Selector, Self SCALE_FACTOR_PER_FONT_POINT = 0.001 diff --git a/manimlib/mobject/vector_field.py b/manimlib/mobject/vector_field.py index ec16c81a..b349e7e5 100644 --- a/manimlib/mobject/vector_field.py +++ b/manimlib/mobject/vector_field.py @@ -6,28 +6,23 @@ import numpy as np from scipy.integrate import solve_ivp from manimlib.constants import FRAME_HEIGHT, FRAME_WIDTH -from manimlib.constants import BLUE, WHITE -from manimlib.constants import ORIGIN +from manimlib.constants import WHITE from manimlib.animation.indication import VShowPassingFlash -from manimlib.mobject.geometry import Arrow 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.bezier import inverse_interpolate from manimlib.utils.color import get_colormap_list -from manimlib.utils.color import rgb_to_color from manimlib.utils.color import get_color_map -from manimlib.utils.dict_ops import merge_dicts_recursively from manimlib.utils.iterables import cartesian_product from manimlib.utils.rate_functions import linear -from manimlib.utils.simple_functions import sigmoid from manimlib.utils.space_ops import get_norm from typing import TYPE_CHECKING if TYPE_CHECKING: - from typing import Callable, Iterable, Sequence, TypeVar, Tuple - from manimlib.typing import ManimColor, Vect3, VectN, Vect2Array, Vect3Array, Vect4Array + from typing import Callable, Iterable, Sequence, TypeVar, Tuple, Optional + from manimlib.typing import ManimColor, Vect3, VectN, VectArray, Vect3Array, Vect4Array from manimlib.mobject.coordinate_systems import CoordinateSystem from manimlib.mobject.mobject import Mobject @@ -113,8 +108,8 @@ def move_points_along_vector_field( cs = coordinate_system origin = cs.get_origin() - def apply_nudge(self, dt): - mobject.apply_function( + def apply_nudge(mob, dt): + mob.apply_function( lambda p: p + (cs.c2p(*func(*cs.p2c(p))) - origin) * dt ) mobject.add_updater(apply_nudge) @@ -133,7 +128,7 @@ def get_sample_coords( return np.array(list(it.product(*ranges))) -def vectorize(pointwise_function: Callable[Tuple, Tuple]): +def vectorize(pointwise_function: Callable[[Tuple], Tuple]): def v_func(coords_array: VectArray) -> VectArray: return np.array([pointwise_function(*coords) for coords in coords_array]) @@ -237,7 +232,7 @@ class VectorField(VMobject): arr[7::8] = 0 self.base_stroke_width_array = arr - def set_sample_coords(self, sample_points: VectArray): + def set_sample_coords(self, sample_coords: VectArray): self.sample_coords = sample_coords return self diff --git a/manimlib/scene/interactive_scene.py b/manimlib/scene/interactive_scene.py index 2e8ff18a..eb54569a 100644 --- a/manimlib/scene/interactive_scene.py +++ b/manimlib/scene/interactive_scene.py @@ -27,7 +27,6 @@ from manimlib.mobject.types.vectorized_mobject import VHighlight from manimlib.mobject.types.vectorized_mobject import VMobject from manimlib.scene.scene import Scene from manimlib.scene.scene import SceneState -from manimlib.scene.scene import PAN_3D_KEY from manimlib.utils.family_ops import extract_mobject_family_members from manimlib.utils.space_ops import get_norm from manimlib.utils.tex_file_writing import LatexError diff --git a/manimlib/shader_wrapper.py b/manimlib/shader_wrapper.py index da657bdd..259755e1 100644 --- a/manimlib/shader_wrapper.py +++ b/manimlib/shader_wrapper.py @@ -11,7 +11,6 @@ from functools import lru_cache from manimlib.config import parse_cli from manimlib.config import get_configuration -from manimlib.utils.iterables import resize_array from manimlib.utils.shaders import get_shader_code_from_file from manimlib.utils.shaders import get_shader_program from manimlib.utils.shaders import image_path_to_texture @@ -20,8 +19,10 @@ from manimlib.utils.shaders import set_program_uniform from typing import TYPE_CHECKING if TYPE_CHECKING: - from typing import List, Optional, Dict + from typing import Optional, Tuple, Iterable from manimlib.typing import UniformDict + from moderngl.vertex_array import VertexArray + from moderngl.framebuffer import Framebuffer # Mobjects that should be rendered with # the same shader will be organized and diff --git a/manimlib/typing.py b/manimlib/typing.py index b62533d6..c5c55729 100644 --- a/manimlib/typing.py +++ b/manimlib/typing.py @@ -1,11 +1,11 @@ from typing import TYPE_CHECKING if TYPE_CHECKING: - from typing import Union, Tuple, Annotated, Literal, Iterable + from typing import Union, Tuple, Annotated, Literal, Iterable, Dict from colour import Color import numpy as np import re - + try: from typing import Self except ImportError: @@ -28,7 +28,7 @@ if TYPE_CHECKING: # These are various alternate names for np.ndarray meant to specify # certain shapes. - # + # # In theory, these annotations could be used to check arrays sizes # at runtime, but at the moment nothing actually uses them, and # the names are here primarily to enhance readibility and allow @@ -40,6 +40,7 @@ if TYPE_CHECKING: Vect4 = Annotated[FloatArray, Literal[4]] VectN = Annotated[FloatArray, Literal["N"]] Matrix3x3 = Annotated[FloatArray, Literal[3, 3]] + VectArray = Annotated[FloatArray, Literal["N", 1]] Vect2Array = Annotated[FloatArray, Literal["N", 2]] Vect3Array = Annotated[FloatArray, Literal["N", 3]] Vect4Array = Annotated[FloatArray, Literal["N", 4]] diff --git a/manimlib/utils/shaders.py b/manimlib/utils/shaders.py index 17f2ea7f..264c37fe 100644 --- a/manimlib/utils/shaders.py +++ b/manimlib/utils/shaders.py @@ -13,10 +13,7 @@ from manimlib.utils.file_ops import find_file from typing import TYPE_CHECKING if TYPE_CHECKING: - from typing import Sequence, Optional, Tuple - from manimlib.typing import UniformDict - from moderngl.vertex_array import VertexArray - from moderngl.framebuffer import Framebuffer + from typing import Sequence, Optional # Global maps to reflect uniform status diff --git a/manimlib/window.py b/manimlib/window.py index c549601b..d7a19bfa 100644 --- a/manimlib/window.py +++ b/manimlib/window.py @@ -14,8 +14,11 @@ from manimlib.utils.customization import get_customization from typing import TYPE_CHECKING if TYPE_CHECKING: + from typing import Callable, TypeVar from manimlib.scene.scene import Scene + T = TypeVar("T") + class Window(PygletWindow): fullscreen: bool = False From 66862db9b26b1cfe9543267293d231aae10ace23 Mon Sep 17 00:00:00 2001 From: henri-gasc Date: Thu, 5 Dec 2024 23:43:14 +0100 Subject: [PATCH 2/3] Drop pyrr (#2256) --- requirements.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 0737d3fc..161fbd98 100644 --- a/requirements.txt +++ b/requirements.txt @@ -13,7 +13,6 @@ pydub pygments PyOpenGL pyperclip -pyrr pyyaml rich scipy From 5a70d67b98e9b2d353d0721d95b034ffaab29a89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?I=C3=B1aki=20Rabanillo?= <51260739+InakiRaba91@users.noreply.github.com> Date: Thu, 5 Dec 2024 23:49:16 +0100 Subject: [PATCH 3/3] Update coordinate_systems.py (#2258) --- manimlib/mobject/coordinate_systems.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manimlib/mobject/coordinate_systems.py b/manimlib/mobject/coordinate_systems.py index 6863fee5..4846aaaa 100644 --- a/manimlib/mobject/coordinate_systems.py +++ b/manimlib/mobject/coordinate_systems.py @@ -405,7 +405,7 @@ class CoordinateSystem(ABC): stroke_width=stroke_width, stroke_color=stroke_color, fill_opacity=fill_opacity, - stroke_background=stroke_background + stroke_behind=stroke_background ) for rect in result: if not rect.positive: