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

Code before:
    --------

    .. manim:: ExampleSector
        :save_last_frame:

        class ExampleSector(Scene):
            def construct(self):
                sector = Sector(outer_radius=2, inner_radius=1)
                sector2 = Sector(outer_radius=2.5, inner_radius=0.8).move_to([-3, 0, 0])
                sector.set_color(RED)
                sector2.set_color(PINK)
                self.add(sector)
                self.add(sector2)
                self.wait(1)
                sector.set_color(BLUE)
                sector2.set_color(GREEN)
                self.wait(1)
                sector.set_color(GREEN)
                sector2.set_color(WHITE)
                self.wait(1)
                sector.set_color(YELLOW)
                sector2.set_color(RED)
    """

    def __init__(self, outer_radius=1, inner_radius=0, **kwargs):
        super().__init__(inner_radius=inner_radius, outer_radius=outer_radius, **kwargs)


class Annulus(Circle):
    """Region between two concentric :class:`Circles <.Circle>`.

    Parameters
    ----------
    inner_radius
        The radius of the inner :class:`Circle`.
    outer_radius
        The radius of the outer :class:`Circle`.
    kwargs : Any
        Additional arguments to be passed to :class:`Annulus`

    Examples
    --------

    .. manim:: AnnulusExample
        :save_last_frame:

        class AnnulusExample(Scene):
            def construct(self):
                annulus_1 = Annulus(inner_radius=0.5, outer_radius=1).shift(UP)
                annulus_2 = Annulus(inner_radius=0.3, outer_radius=0.6, color=RED).next_to(annulus_1, DOWN)
                self.add(annulus_1, annulus_2)

Review comment (suggestion):
not necessary, as later `sector2.set_color(WHITE)` 
Also, please only use self.add once with all mobjects.
Further, self.wait() is not needed

Code after:
            for radius in (self.inner_radius, self.outer_radius)
        ]
        outer_arc.reverse_points()
        self.append_points(inner_arc.get_points())
        self.add_line_to(outer_arc.get_points()[0])
        self.append_points(outer_arc.get_points())
        self.add_line_to(inner_arc.get_points()[0])

    init_points = generate_points


class Sector(AnnularSector):
    """

    Examples
    --------

    .. manim:: ExampleSector
        :save_last_frame:

        class ExampleSector(Scene):
            def construct(self):
                sector = Sector(outer_radius=2, inner_radius=1)
                sector2 = Sector(outer_radius=2.5, inner_radius=0.8).move_to([-3, 0, 0])
                sector.set_color(RED)
                sector2.set_color(PINK)
                self.add(sector, sector2)
    """

    def __init__(self, outer_radius=1, inner_radius=0, **kwargs):
        super().__init__(inner_radius=inner_radius, outer_radius=outer_radius, **kwargs)


class Annulus(Circle):
    """Region between two concentric :class:`Circles <.Circle>`.

    Parameters
    ----------
    inner_radius
        The radius of the inner :class:`Circle`.
    outer_radius
        The radius of the outer :class:`Circle`.
    kwargs : Any
        Additional arguments to be passed to :class:`Annulus`

    Examples
    --------

    .. manim:: AnnulusExample
        :save_last_frame: