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

Code before:
    def __init__(
        self,
        x_range=None,  # must be first
        length=None,
        unit_size=1,
        # ticks
        include_ticks=True,
        tick_size=0.1,
        numbers_with_elongated_ticks=None,
        longer_tick_multiple=2,
        # visuals
        color=LIGHT_GREY,
        rotation=0,
        stroke_width=2.0,
        # tip
        include_tip=False,
        tip_width=0.25,
        tip_height=0.25,
        # numbers
        include_numbers=False,
        label_direction=DOWN,
        line_to_number_buff=MED_SMALL_BUFF,
        decimal_number_config=None,
        numbers_to_exclude=None,
        numbers_to_include=None,
        # temp, because DecimalNumber() needs to be updated
        number_scale_value=0.75,
        **kwargs
    ):
        # avoid mutable arguments in defaults
        if decimal_number_config is None:
            decimal_number_config = {
                "num_decimal_places": 0,
                "font_size": 24,
            }  # font_size does nothing
        if numbers_to_exclude is None:
            numbers_to_exclude = []
        if numbers_with_elongated_ticks is None:
            numbers_with_elongated_ticks = []

        if x_range is None:
            x_range = [
                round(-config["frame_x_radius"]),
                round(config["frame_x_radius"]),
                1.0,
            ]
        elif len(x_range) == 2:
            # adds x_step if not specified. not sure how to feel about this. a user can't know default without peeking at source code
            x_range = [*x_range, 1]

        self.x_min, self.x_max, self.x_step = x_range

Review comment (suggestion):
This is probably quite nitpicky, but since this defaults to `True`, I feel like it would make more sense to be written as ```exclude_origin_tick = False```. Also, for the sake of organization, it should be under the `#ticks` section of the parameters.

Code after:
    def __init__(
        self,
        x_range=None,  # must be first
        length=None,
        unit_size=1,
        # ticks
        include_ticks=True,
        tick_size=0.1,
        numbers_with_elongated_ticks=None,
        longer_tick_multiple=2,
        # visuals
        color=LIGHT_GREY,
        rotation=0,
        stroke_width=2.0,
        # tip
        include_tip=False,
        tip_width=0.25,
        tip_height=0.25,
        # numbers
        include_numbers=False,
        label_direction=DOWN,
        line_to_number_buff=MED_SMALL_BUFF,
        decimal_number_config=None,
        numbers_to_exclude=None,
        numbers_to_include=None,
        # temp, because DecimalNumber() needs to be updated
        number_scale_value=0.75,
        exclude_origin_tick=False,
        **kwargs
    ):
        # avoid mutable arguments in defaults
        if decimal_number_config is None:
            decimal_number_config = {
                "num_decimal_places": 0,
                "font_size": 24,
            }  # font_size does nothing
        if numbers_to_exclude is None:
            numbers_to_exclude = []
        if numbers_with_elongated_ticks is None:
            numbers_with_elongated_ticks = []

        if x_range is None:
            x_range = [
                round(-config["frame_x_radius"]),
                round(config["frame_x_radius"]),
                1.0,
            ]
        elif len(x_range) == 2:
            # adds x_step if not specified. not sure how to feel about this. a user can't know default without peeking at source code
            x_range = [*x_range, 1]