'Transform an option description into RST nodes.'

def handle_signature(self, sig, signode):

    count = 0
    firstname = ''
    for potential_option in sig.split(',    '):
        potential_option = potential_option.strip()
        m = option_desc_re.match(potential_option)
        if (not m):
            logger.warning('Malformed    option    description    %r,    should    look    like    "opt",    "-opt    args",    "--opt    args",    "/opt    args"    or    "+opt    args"', potential_option, location=(self.env.docname, self.lineno))
            continue
        (optname, args) = m.groups()
        if count:
            signode += addnodes.desc_addname(',    ', ',    ')
        signode += addnodes.desc_name(optname, optname)
        signode += addnodes.desc_addname(args, args)
        if (not count):
            firstname = optname
            signode['allnames'] = [optname]
        else:
            signode['allnames'].append(optname)
        count += 1
    if (not firstname):
        raise ValueError
    return firstname
