Beispiel #1
0
def get_help_output_dict():
    out = Bunch()
    for ufname in ufunclist:
        msig = msigdict[ufname]
        helpdict = get_helpdict(msig['path'])

        if 'OUTPUT' in helpdict:
            raw = helpdict['OUTPUT']
            outdoc = fix_outputs_doc(raw)
        else:
            raw = ''
            outdoc = ['']
        out[ufname] = Bunch(raw=raw, outdoc=outdoc)
    return out
Beispiel #2
0
def get_outnames(ufname):
    try:
        msig = Bunch(msigdict[ufname])
    except KeyError:
        return None
    mnames = msig.outnames[:]

    outnames = []
    for am in mnames:
        if am == 'long':
            am = 'lon'
        outnames.append(am)
    return outnames
Beispiel #3
0
def get_argnames(ufname):
    try:
        msig = Bunch(msigdict[ufname])
        csig = Bunch(csigdict[ufname])
    except KeyError:
        return None
    cnames = csig.argnames[:]
    mnames = msig.argnames[:]
    nc, nm = len(cnames), len(mnames)
    if nc < nm:
        print('%s: truncating argument list, %s, %s' %
              (ufname, cnames, mnames))
        mnames = mnames[:nc]

    argnames = []
    for ac, am in zip(cnames, mnames):
        if am == 'long':
            am = 'lon'
        if ac == am.lower():
            argnames.append(am)
        else:
            raise RuntimeError("arg mismatch: %s, %s" %
                               (csig.argnames, msig.argnames))
    return argnames
Beispiel #4
0
def uf_wrapper(ufname):
    argnames = get_argnames(ufname)
    argstr = ', '.join(argnames)
    msig = Bunch(msigdict[ufname])

    subs = dict(
        ufuncname=ufname,
        funcname=msig['name'],
        args=argstr,
    )
    helpdict = get_helpdict(msig['path'])

    # Filter out minimally documented library functions.
    if 'DESCRIPTION' not in helpdict:
        return None

    try:
        desclist = paragraphs(helpdict['DESCRIPTION'])[0]
        sections = dict(Head=desclist)
        plist = []
        for arg in argnames:
            plist.append('%s : array-like' % arg)
            for line in parameters[arg].split('\n'):
                plist.append("    %s" % line)
        sections['Parameters'] = plist

        # I think we can assume OUTPUT will be present, but just
        # in case, we check for it.  Maybe remove this later.
        if 'OUTPUT' in helpdict:
            outdoc = fix_outputs_doc(helpdict['OUTPUT'])
        else:
            outdoc = ['None']
        sections['Returns'] = outdoc
        doc = docstring_from_sections(sections)
    except KeyError as e:
        print("KeyError for %s, %s" % (ufname, e))
        doc = "(no description available)"
    subs['doc'] = doc
    return wrapper_template % subs