3 گaQ @ s d Z ddlZddlZddlZddlZddlZddlmZ ddlmZ ddlm Z ddlm Z ddlmZ ddlmZ ddl Z dd lmZ dd lmZ ddlmZ ddlmZ dd lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlm Z ddlm!Z! ddl"m#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)Union)crypto_util)errors)util) constants)hooks)ARGPARSE_PARAMS_TO_REMOVE)COMMAND_OVERVIEW)EXIT_ACTIONS)HELP_AND_VERSION_USAGE)SHORT_USAGE)ZERO_ARG_ACTIONS)_Default)add_domains)CustomHelpFormatter)flag_default)HelpfulArgumentGroup) VERB_HELP) VERB_HELP_MAP)obj)disco)osc @ sz e Zd ZdZd2ee ee eddddZddd d dgZ edd dZ ee eeef edddZe jddddZe jdddZe jddddZe jddddZddddZeee eeef dddZeeeee ef eedd d!d"Zeeeef d#d$d%Zeedd&d'd(Zf feee eed)d*d+Zejdd,d-d.Z eeef eeef 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. FN)argspluginsdetect_defaultsreturnc C s ddl m} |j|j|j|j|j|j|j|j|j |j |j|j|j|j |j|jd| _tjtjj| _dddddg}|t| j| j d g 7 }t|}|| d g | _|| _|| _| jr| jd d krd| jd<