Parse the partition line

def parse_partition(rule):
    '''
    Parse the partition line
    '''
    parser = argparse.ArgumentParser()
    rules = shlex.split(rule)
    rules.pop(0)
    parser.add_argument('mntpoint')
    parser.add_argument('--size', dest='size', action='store')
    parser.add_argument('--grow', dest='grow', action='store_true')
    parser.add_argument('--maxsize', dest='maxsize', action='store')
    parser.add_argument('--noformat', dest='noformat', action='store_true')
    parser.add_argument('--onpart', '--usepart', dest='onpart', action='store')
    parser.add_argument('--ondisk', '--ondrive', dest='ondisk', action='store')
    parser.add_argument('--asprimary', dest='asprimary', action='store_true')
    parser.add_argument('--fsprofile', dest='fsprofile', action='store')
    parser.add_argument('--fstype', dest='fstype', action='store')
    parser.add_argument('--fsoptions', dest='fsoptions', action='store')
    parser.add_argument('--label', dest='label', action='store')
    parser.add_argument('--recommended', dest='recommended',
                        action='store_true')
    parser.add_argument('--onbiosdisk', dest='onbiosdisk', action='store')
    parser.add_argument('--encrypted', dest='encrypted', action='store_true')
    parser.add_argument('--passphrase', dest='passphrase', action='store')
    parser.add_argument('--escrowcert', dest='escrowcert', action='store')
    parser.add_argument('--backupphrase', dest='backupphrase', action='store')

    args = clean_args(vars(parser.parse_args(rules)))
    parser = None
    return args