Repository: ManimCommunity/manim
File: manim/mobject/types/vectorized_mobject.py (Python)

Code before:
            if len(submobs1) == 0:
                return self
            elif len(submobs2) == 0:
                submobs2 = [vmobject]
            for sm1, sm2 in zip(*make_even(submobs1, submobs2)):
                sm1.match_style(sm2)
        return self

    def set_color(self, color: ParsableManimColor, family: bool = True) -> Self:
        self.set_fill(color, family=family)
        self.set_stroke(color, family=family)
        return self

    def set_opacity(self, opacity: float, family: bool = True) -> Self:
        self.set_fill(opacity=opacity, family=family)
        self.set_stroke(opacity=opacity, family=family)
        self.set_stroke(opacity=opacity, family=family, background=True)
        return self

    def scale(
        self,
        scale_factor: float,
        scale_stroke: bool = False,
        *,
        about_point: Point3DLike | None = None,
        about_edge: Vector3D | None = None,
    ) -> Self:
        r"""Scale the size by a factor.

        Default behavior is to scale about the center of the vmobject.

        Parameters
        ----------
        scale_factor
            The scaling factor :math:`\alpha`. If :math:`0 < |\alpha| < 1`, the mobject
            will shrink, and for :math:`|\alpha| > 1` it will grow. Furthermore,
            if :math:`\alpha < 0`, the mobject is also flipped.
        scale_stroke
            Boolean determining if the object's outline is scaled when the object is scaled.
            If enabled, and object with 2px outline is scaled by a factor of .5, it will have an outline of 1px.
        kwargs
            Additional keyword arguments passed to
            :meth:`~.Mobject.scale`.

        Returns
        -------
        :class:`VMobject`
            ``self``

        Examples
        --------

Review comment (suggestion):
```suggestion
        about_edge: Vector3DLike | None = None,
```

Code after:
            if len(submobs1) == 0:
                return self
            elif len(submobs2) == 0:
                submobs2 = [vmobject]
            for sm1, sm2 in zip(*make_even(submobs1, submobs2)):
                sm1.match_style(sm2)
        return self

    def set_color(self, color: ParsableManimColor, family: bool = True) -> Self:
        self.set_fill(color, family=family)
        self.set_stroke(color, family=family)
        return self

    def set_opacity(self, opacity: float, family: bool = True) -> Self:
        self.set_fill(opacity=opacity, family=family)
        self.set_stroke(opacity=opacity, family=family)
        self.set_stroke(opacity=opacity, family=family, background=True)
        return self

    def scale(
        self,
        scale_factor: float,
        scale_stroke: bool = False,
        *,
        about_point: Point3DLike | None = None,
        about_edge: Vector3DLike | None = None,
    ) -> Self:
        r"""Scale the size by a factor.

        Default behavior is to scale about the center of the vmobject.

        Parameters
        ----------
        scale_factor
            The scaling factor :math:`\alpha`. If :math:`0 < |\alpha| < 1`, the mobject
            will shrink, and for :math:`|\alpha| > 1` it will grow. Furthermore,
            if :math:`\alpha < 0`, the mobject is also flipped.
        scale_stroke
            Boolean determining if the object's outline is scaled when the object is scaled.
            If enabled, and object with 2px outline is scaled by a factor of .5, it will have an outline of 1px.
        kwargs
            Additional keyword arguments passed to
            :meth:`~.Mobject.scale`.

        Returns
        -------
        :class:`VMobject`
            ``self``

        Examples
        --------