Repository: ManimCommunity/manim
File: manim/animation/transform.py (Python)

Code before:
from typing import TYPE_CHECKING, Any, Callable, Iterable, Sequence

import numpy as np

from manim.mobject.opengl.opengl_mobject import OpenGLGroup, OpenGLMobject

from .. import config
from ..animation.animation import Animation
from ..constants import DEFAULT_POINTWISE_FUNCTION_RUN_TIME, DEGREES, ORIGIN, OUT
from ..mobject.mobject import Group, Mobject
from ..utils.paths import path_along_arc, path_along_circles
from ..utils.rate_functions import smooth, squish_rate_func

if TYPE_CHECKING:
    from ..scene.scene import Scene


class Transform(Animation):
    """A Transform transforms a Mobject into a target Mobject.

    Parameters
    ----------
    mobject
        The Mobject to be transformed. The Mobject will be mutated into the target.
    target_mobject
        The Mobject that will be transformed into. Will become invisible and replaced by mobject.
    path_func
        A function defining the path that the mobject will take to target_mobject,
        see `manim.utils.paths`.
    path_arc
        The arc (in radians) that the mobject will take to reach target if using a circular path
        arc, see `path_arc_centers`.
    path_arc_axis
        The axis to rotate along if using a circular path arc, see `path_arc_centers`.
    path_arc_centers
        The center of the circle used in the Transform's radial path.

        If this is set and path_func is not set, then a path_along_circles path will be generated
        using the path_arc parameters and stored in path_func. If path_func is set, this and the
        other path_arc fields are set as attributes, but a path_func is not generated.
    replace_mobject_with_target_in_scene
        Defines which object is replaced when the Transform is complete.

        If set to True, the mobject will be removed from the scene and the target_mobject will
        replace it. Otherwise, the target_mobject will be removed and the mobject will replace it.
    """

    def __init__(
        self,
        mobject: Mobject | None,
        target_mobject: Mobject | None = None,

Review comment (suggestion):
The "Will become invisible"-part depends on the keyword argument passed to `replace_mobject_with_target_in_scene`; the current wording also suggests that it is visible at any point, which it is not.

```suggestion
        The target of the transformation.
```

Code after:
from typing import TYPE_CHECKING, Any, Callable, Iterable, Sequence

import numpy as np

from manim.mobject.opengl.opengl_mobject import OpenGLGroup, OpenGLMobject

from .. import config
from ..animation.animation import Animation
from ..constants import DEFAULT_POINTWISE_FUNCTION_RUN_TIME, DEGREES, ORIGIN, OUT
from ..mobject.mobject import Group, Mobject
from ..utils.paths import path_along_arc, path_along_circles
from ..utils.rate_functions import smooth, squish_rate_func

if TYPE_CHECKING:
    from ..scene.scene import Scene


class Transform(Animation):
    """A Transform transforms a Mobject into a target Mobject.

    Parameters
    ----------
    mobject
        The :class:`.Mobject` to be transformed. It will be mutated to become the ``target_mobject``.
    target_mobject
        The target of the transformation.
    path_func
        A function defining the path that the points of the ``mobject`` are being moved
        along until they match the points of the ``target_mobject``, see :mod:`.utils.paths`.
    path_arc
        The arc angle (in radians) that the points of ``mobject`` will follow to reach
        the points of the target if using a circular path arc, see ``path_arc_centers``.
    path_arc_axis
        The axis to rotate along if using a circular path arc, see ``path_arc_centers``.
    path_arc_centers
        The center of the circular arcs along which the points of ``mobject`` are
        moved by the transformation.

        If this is set and ``path_func`` is not set, then a ``path_along_circles`` path will be generated
        using the ``path_arc`` parameters and stored in ``path_func``. If ``path_func`` is set, this and the
        other ``path_arc`` fields are set as attributes, but a ``path_func`` is not generated from it.
    replace_mobject_with_target_in_scene
        Controls which mobject is replaced when the transformation is complete.

        If set to True, ``mobject`` will be removed from the scene and ``target_mobject`` will
        replace it. Otherwise, ``target_mobject`` is never added and ``mobject`` just takes its shape.
    """

    def __init__(
        self,
        mobject: Mobject | None,