def METHOD_NAME(
    diameter: int,
    color: RGBA255,
    name: Optional[str] = None,
    hitbox_algorithm: Optional[HitBoxAlgorithm] = None,
) -> Texture:
    """
    Return a Texture of a circle with the given diameter and color.
    :param diameter: Diameter of the circle and dimensions of the square :class:`Texture` returned.
    :param color: Color of the circle as a
        :py:class:`~arcade.types.Color` instance a 3 or 4 tuple.
    :param name: Custom or pre-chosen name for this texture
    :returns: New :class:`Texture` object.
    """
    name = name or cache.crate_str_from_values(
        "circle_texture", diameter, color[0], color[1], color[2]
    )
    bg_color = TRANSPARENT_BLACK  # fully transparent
    img = PIL.Image.new("RGBA", (diameter, diameter), bg_color)
    draw = PIL.ImageDraw.Draw(img)
    draw.ellipse((0, 0, diameter - 1, diameter - 1), fill=color)
    return Texture(ImageData(img, hash=name), hit_box_algorithm=hitbox_algorithm)