human
Complete this python program:
def _setup_pyplot_info_docstrings():
assistant
#Here is the Python code you requested.

    """Generates the plotting and docstring.
    These must be done after the entire module is imported, so it is
    called from the end of this module, which is generated by
    boilerplate.py.
    """
    import re
    def pad(s, l):
        u'Pad    string    *s*    to    length    *l*.'
        if (l < len(s)):
            return s[:l]
        return (s + (u'    ' * (l - len(s))))
    commands = get_plot_commands()
    first_sentence = re.compile(u'(?:\\s*).+?\\.(?:\\s+|$)', flags=re.DOTALL)
    rows = []
    max_name = 0
    max_summary = 0
    for name in commands:
        doc = globals()[name].__doc__
        summary = u''
        if (doc is not None):
            match = first_sentence.match(doc)
            if (match is not None):
                summary = match.group(0).strip().replace(u'\n', u'    ')
        name = (u'`%s`' % name)
        rows.append([name, summary])
        max_name = max(max_name, len(name))
        max_summary = max(max_summary, len(summary))
    lines = []
    sep = (((u'=' * max_name) + u'    ') + (u'=' * max_summary))
    lines.append(sep)
    lines.append(u'    '.join([pad(u'Function', max_name), pad(u'Description', max_summary)]))
    lines.append(sep)
    for (name, summary) in rows:
        lines.append(u'    '.join([pad(name, max_name), pad(summary, max_summary)]))
    lines.append(sep)
    plotting.__doc__ = u'\n'.join(lines)