
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!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   /