def METHOD_NAME(
    diameter: int,
    color: RGBA255,
    center_alpha: int = 255,
    outer_alpha: int = 0,
    name: Optional[str] = None,
    hit_box_algorithm: Optional[HitBoxAlgorithm] = None,
) -> Texture:
    """
    Return a :class:`Texture` of a circle with the given diameter and color, fading out at its edges.
    :param diameter: Diameter of the circle and dimensions of the square :class:`Texture` returned.
    :param color: Color of the circle as a 4-length tuple or
        :py:class:`~arcade.types.Color` instance.
    :param center_alpha: Alpha value of the circle at its center.
    :param outer_alpha: Alpha value of the circle at its edges.
    :param name: Custom or pre-chosen name for this texture
    :param hit_box_algorithm: The hit box algorithm
    :returns: New :class:`Texture` object.
    """
    # Name must be unique for caching
    name = cache.crate_str_from_values(
        "soft_circle_texture",
        diameter,
        color[0],
        color[1],
        color[2],
        center_alpha,
        outer_alpha,
    )
    bg_color = TRANSPARENT_BLACK
    img = PIL.Image.new("RGBA", (diameter, diameter), bg_color)
    draw = PIL.ImageDraw.Draw(img)
    max_radius = int(diameter // 2)
    center = max_radius
    for radius in range(max_radius, 0, -1):
        alpha = int(lerp(center_alpha, outer_alpha, radius / max_radius))
        clr = (color[0], color[1], color[2], alpha)
        draw.ellipse(
            (
                center - radius,
                center - radius,
                center + radius - 1,
                center + radius - 1,
            ),
            fill=clr,
        )
    return Texture(ImageData(img, name), hit_box_algorithm=hit_box_algorithm)