def _summary(function):
    """
    Derive summary information from a function's docstring or name. The summary is
    the first sentence of the docstring, ending in a period, or if no dostring is
    present, the function's name capitalized.
    """
    if not function.__doc__:
        return f'{function.__name__.capitalize()}.'
    result = []
    for word in function.__doc__.split():
        result.append(word)
        if word.endswith('.'):
            break
    return ' '.join(result)
