
­­­­­­­­­­­­­­­­­­
<!DOCTYPE html>
<html>
3
hjx                 @   s,   d dl Z G dd de jZG dd dZdS )    Nc               @   s*   e Zd ZdZG dd dejZdd ZdS )SubparsersActionz
    Provide a subparser action that can create subparsers with ability of
    grouping arguments.

    It is based on the patch from:

        - https://bugs.python.org/issue9341
    c                   s4   e Zd Z fddZdd Zdd Zdd Z  ZS )	zSubparsersAction._PseudoGroupc                s    t  jg |d || _g | _d S )N)Zoption_stringsdest)super__init__	container_choices_actions)selfr   title)	__class__ /usr/lib/python3.6/parser.pyr      s    z&SubparsersAction._PseudoGroup.__init__c             K   s,   | j j|f|}| j jj }| jj| |S )N)r   
add_parserr   popappend)r   namekwargsparserZchoice_actionr   r   r   r      s    z(SubparsersAction._PseudoGroup.add_parserc             C   s   | j S )N)r   )r   r   r   r   _get_subactions   s    z-SubparsersAction._PseudoGroup._get_subactionsc             C   s   t j| |}| jj| |S )N)r   _PseudoGroupr   r   )r   r	   grpr   r   r   add_parser_group    s    z.SubparsersAction._PseudoGroup.add_parser_group)__name__
__module____qualname__r   r   r   r   __classcell__r   r   )r
   r   r      s   r   c             C   s   | j | |}| jj| |S )z
        Add new parser group.

        :param title: Title.
        :type title: str
        :return: Parser group that can have additional parsers attached.
        :rtype: ``argparse.Action`` extended with ``add_parser`` method
        )r   r   r   )r   r	   r   r   r   r   r   &   s    	z!SubparsersAction.add_parser_groupN)r   r   r   __doc__argparseZActionr   r   r   r   r   r   r      s   r   c               @   s   e Zd ZdZdddZdS )Optionz@
    Group option attributes for command/subcommand options
    Nc             C   s   || _ || _|| _|| _d S )N)r   	short_opthelp_msgopt_type)r   r   r   r    r   r   r   r   r   8   s    zOption.__init__)N)r   r   r   r   r   r   r   r   r   r   4   s   r   )r   Z_SubParsersActionr   r   r   r   r   r   <module>   s   /