a }|gyX @ sn d Z ddlZddlZddlZddlmZ ddlmZ ddlmZ ddlmZ ddlm Z ddlm Z dd lmZ ddlZdd l mZ ddl mZ ddl mZ dd lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlm Z ddl!m"Z# ddl$m%Z% ddl&m'Z' ddl&m(Z( G dd dZ)dS )z$Certbot command line argument parser N)Any)Dict)Iterable)List)Optional)Tuple)Union)crypto_util)errors)util) constants)hooks)COMMAND_OVERVIEW)HELP_AND_VERSION_USAGE)SHORT_USAGE)add_domains)CustomHelpFormatter)flag_default)HelpfulArgumentGroup)set_test_server_options) VERB_HELP) VERB_HELP_MAP)obj)disco)ArgumentSource)NamespaceConfigc @ s e Zd ZdZee ee ddddZg dZeddd Z ee e eef ed ddZe dd ddZeeef dddZeejdddZe dddZe dd ddZe dd ddZddddZeeee e eef dddZee eee ef eedd d!d"Zee eee ef eeejd d#d$Zeedd%d&d'Zd2eee ee d)d*d+Z!e"j#dd,d-d.Z$e eef eee ef d/d0d1Z%dS )3HelpfulArgumentParserzArgparse Wrapper. This class wraps argparse, adding the ability to make --help less verbose, and request help on specific subcategories at a time, eg 'certbot --help security' for security options. N)argspluginsreturnc C s ddl m} |j|j|j|j|j|j|j|j|j |j |j|j|j|j |j|j|jd| _ttjj| _g | _g d}|t| j| j dg 7 }t|}|| d g | _|| _| jr| jd dkrd| jd<