def METHOD_NAME(*args, wrap_at: Optional[int] = None):
    """Draw the given text on the screen and save the image.
    :param text_string: text to display
    :type text_string: str
    :param x: x-coordinate of text
    :type x: float
    :param y: y-coordinate of text
    :type y: float
    :param z: z-coordinate of text
    :type z: float
    :param position: position of the text on the screen
    :type position: tuple
    :param wrap_at: specifies the text wrapping column (defaults to
        None)
    :type wrap_at: int
    :returns: actual text that was drawn to the image (when wrapping
        is not set, this is just the unmodified text_string)
    :rtype: str
    """
    if len(args) == 2:
        text_string, position = args
    elif len(args) in {3, 4}:
        text_string, position = args[0], args[1:]
    else:
        raise ValueError("Unexpected number of arguments passed to text()")
    if len(text_string) == 0:
        return
    return p5.renderer.METHOD_NAME(text_string, position, wrap_at)