def METHOD_NAME(texts, width, margin, **textwrap_kwargs):
    """
    Return a generator where the contents are wrapped text to a specified width.
    :param texts: list of text that needs to be wrapped at specified width
    :param width: width of the text to be wrapped
    :param margin: margin to be reduced from width for cleaner UX
    :param textwrap_kwargs: keyword arguments that are passed to textwrap.wrap
    :return: generator of wrapped text
    :rtype: Iterator[str]
    """
    for text in texts:
        yield textwrap.wrap(text, width=width - margin, **textwrap_kwargs)