Sindbad~EG File Manager

Current Path : /proc/2568807/root/usr/local/lib/python3.12/test/__pycache__/
Upload File :
Current File : //proc/2568807/root/usr/local/lib/python3.12/test/__pycache__/test_argparse.cpython-312.opt-2.pyc

�

&ΜgRB���ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlmZddlmZGd�dej"�ZGd�dej&�ZGd�d	ej&�Zej*Gd
�de��ZGd�d
e�ZGd�de�ZGd�de�Zd�ZGd�dej:�ZGd�de�Z efZ!e de!i�Z"Gd�de"�Z#Gd�de"�Z$Gd�de"�Z%Gd�de"�Z&Gd �d!e"�Z'Gd"�d#e"�Z(Gd$�d%e"�Z)Gd&�d'e"�Z*Gd(�d)e"�Z+Gd*�d+e"�Z,Gd,�d-e"�Z-Gd.�d/e"�Z.Gd0�d1e"�Z/Gd2�d3e"�Z0Gd4�d5e"�Z1Gd6�d7e"�Z2Gd8�d9e"�Z3Gd:�d;e"�Z4Gd<�d=e"�Z5Gd>�d?e"�Z6Gd@�dAe"�Z7GdB�dCe"�Z8GdD�dEe"�Z9GdF�dGe"�Z:GdH�dIe"�Z;GdJ�dKe"�Z<GdL�dMe"�Z=GdN�dOe"�Z>GdP�dQe"�Z?GdR�dSe"�Z@GdT�dUe"�ZAGdV�dWe"�ZBGdX�dYe"�ZCGdZ�d[e"�ZDGd\�d]e"�ZEGd^�d_e"�ZFGd`�dae"�ZGGdb�dce"�ZHGdd�dee"�ZIGdf�dge"�ZJGdh�die"�ZKGdj�dke"�ZLGdl�dme"�ZMGdn�doe"�ZNGdp�dqe"�ZOGdr�dse"�ZPGdt�due"�ZQGdv�dwe"�ZRGdx�dye"�ZSGdz�d{e"�ZTGd|�d}e"�ZUGd~�de"�ZVGd��d�e"�ZWGd��d�e"�ZXGd��d�e"�ZYGd��d�e"�ZZGd��d�e"�Z[Gd��d�e"�Z\Gd��d�e"�Z]Gd��d�e"�Z^Gd��d�e"�Z_Gd��d�e"�Z`Gd��d�e"�ZaGd��d�e"�ZbGd��d�e"�ZcGd��d�e"�ZdGd��d�e"�ZeGd��d�e"�ZfGd��d�e"�ZgGd��d�e"�ZhGd��d�e"�ZiGd��d�e"�ZjGd��d�e"�ZkGd��d�e"�ZlGd��d�e"�ZmGd��d�e"�ZnGd��d�e"�ZoGd��d�e"�ZpGd��d�e"�ZqGd��d�e"�ZrGd��d�e"�ZsGd��d�e"�ZtGd��d�e"�ZuGd��d�e"�ZvGd��d�e"�ZwGd„d�ee"�ZxGdĄd�ee"�ZyGdƄd�e�Zze�Z{e�Z|GdȄdɫZ}e}dʫZ~e}d˫Ze}d̫Z�e}dͫZ�e}dΫZ�e}dϫZ�GdЄd�e�Z�Gd҄d�ee"�Z�GdԄd�ee"�Z�Gdքd�ee"�Z�Gd؄d�e�Z�e�jGdڄd�ee"��Z�e�jGd܄d�ee"��Z�e�jGdބd�ee"��Z�e�jGd�d�e���Z�Gd�d�e�Z�Gd�d�e�Z�Gd�d�e"�Z�Gd�d�e"�Z�Gd�d�e"�Z�Gd�d�e�Z�Gd�d�e"�Z�Gd�d�e�Z�Gd�d�e"�Z�Gd�d�e�Z�Gd��d�e�Z�Gd��d�e�Z�Gd��d�e�Z�Gd��d�e�Z�Gd��d�e�e�Z�G�d��de�e�Z�G�d��de�e�Z�G�d��de�e�Z�G�d��de�e�Z�G�d��d	e�e�Z�G�d
��de�e�Z�G�d��d
e�e�Z�G�d��de�e�Z�G�d��de�e�Z�G�d��de�e�Z�G�d��de�e�Z�G�d��de�Z�G�d��de�e��Z�G�d��de�e��Z�G�d��de�e��Z�G�d��de�e��Z�G�d ��d!e�e��Z�G�d"��d#e�e��Z�G�d$��d%e�e��Z�G�d&��d'e�e��Z�G�d(��d)e�Z�G�d*��d+e�Z�G�d,��d-e�Z�G�d.��d/e�Z�efZ!e��d0e!i�Z�G�d1��d2e��Z�G�d3��d4e��Z�G�d5��d6e��Z�G�d7��d8e��Z�G�d9��d:e��Z�G�d;��d<e��Z�G�d=��d>e��Z�G�d?��d@e��Z�G�dA��dBe��Z�G�dC��dDe��Z�G�dE��dFe��Z�G�dG��dHe��Z�G�dI��dJe��Z�G�dK��dLe��Z�G�dM��dNe��Z�G�dO��dPe��Z�G�dQ��dRe��Z�G�dS��dTe��Z�G�dU��dVe��Z�G�dW��dXe��Z�G�dY��dZe��Z�G�d[��d\e��Z�G�d]��d^e��Z�G�d_��d`e��Z�G�da��dbe��Z�G�dc��dde��Z�G�de��dfe��Z�G�dg��dhe��Z�G�di��dje��Z�G�dk��dle��Z�G�dm��dne��Z�G�do��dpe��Z�G�dq��dre��Z�G�ds��dte��Z�G�du��dve��Z�G�dw��dxe��Z�G�dy��dze��Z�G�d{��d|e��Z�G�d}��d~e�Z�G�d��d�e�Z�G�d���d�e�Z�G�d���d�e�Z�G�d���d�e�Z�G�d���d�e�Z�G�d���d�e�Z�G�d���d�e�Z�G�d���d�e�Z�G�d���d�e�Z�G�d���d�e�Z�G�d���d�e�Z�G�d���d�e�Z�G�d���d�e�Z�G�d���d�e�Z�G�d���d�e�Z�G�d���d�e�Z�G�d���d�e�Z�G�d���d�e�Z�G�d���d�e�Z�G�d���d�e�Z�G�d���d�e�Z�d��Z�e�d�k(re�j��yy(��N)�	os_helper)�mockc�(��eZdZ	d�fd�	Zd�Z�xZS)�StdIOBufferc���|jd�}t�|�	tjtj
|��d|��y)N�utf-8)�newline)�encode�super�__init__�io�BufferedWriter�BytesIO)�self�
initial_valuer	�	__class__s   ��//usr/local/lib/python3.12/test/test_argparse.pyrzStdIOBuffer.__init__s@���%�,�,�W�5�
�
����*�*�2�:�:�m�+D�E� �'�	�	3�c��|j�|jjj�j	d�S)Nr)�flush�buffer�raw�getvalue�decode�rs rrzStdIOBuffer.getvalue#s-���
�
���{�{���'�'�)�0�0��9�9r)��
)�__name__�
__module__�__qualname__rr�
__classcell__�rs@rrrs����3�
:rrc��eZdZd�Zd�Zy)�
StdStreamTestc��tj�}tjd�5t	j
d�5|j
dd��ddd�ddd�y#1swY�xYw#1swYyxYw)N�argparse._sys.exitr�foo)�status�message)�argparse�ArgumentParser�
contextlib�redirect_stderrr�patch�exit�r�parsers  r�test_skip_invalid_stderrz&StdStreamTest.test_skip_invalid_stderr*sX���(�(�*���&�&�t�,��J�J�+�,��K�K�q�%�K�0�
-�
-�,�,�,��
-�,�s#�A1�A%�A1�%A.	�*A1�1A:c�|�tj�}|j|jt	j
|jdg�fD]�}|j|��5tjd�5t�5}tj|�5tjd�5|�|j|j�d�ddd�ddd�ddd�ddd�ddd���y#1swY�,xYw#1swY�0xYw#1swY�4xYw#1swY�8xYw#1swY��xYw)N�-h)�funcr&zusage:)r*r+�print_usage�
print_help�	functools�partial�
parse_args�subTestr,�redirect_stdoutrr-rr.�assertRegexr)rr1r5�
mocked_stderrs    r�test_skip_invalid_stdoutz&StdStreamTest.test_skip_invalid_stdout2s����(�(�*�����������f�/�/�$��8�
�D����$��'��*�*�4�0��
���*�*�=�9��
�
�/�0���� � ��!7�!7�!9�9�E�1�:��1�(�'�

�1�0��:�9���
��1�0��(�'�sl�"D2�8D&�D	�D�/(D
�D�D	�'D&�/D2�D�D�D�D	�D#
�D&�&D/�+D2�2D;	N)rrr r2r?�rrr$r$(s
��1�Frr$c��eZdZd�Zy)�TestCasec�T�|jtj��}d|d<y)N�80�COLUMNS)�enterContextr�EnvironmentVarGuard�r�envs  r�setUpzTestCase.setUpGs&�����	� =� =� ?�@����I�rN)rrr rJr@rrrBrBEs��rrBc�$�eZdZd�Zd�Zd�Zd�Zy)�TempDirMixinc��tj�|_tj�|_tj|j�y�N)�tempfile�mkdtemp�temp_dir�os�getcwd�old_dir�chdirrs rrJzTempDirMixin.setUpRs/�� �(�(�*��
��y�y�{���
������rc�|�tj|j�tj|jd��D]Y\}}}|D]N}tj
tjj|j|�tj��P�[tj|jd�y)NF)�topdownT)rRrUrT�walkrQ�chmod�path�join�stat�S_IWRITE�shutil�rmtree)r�root�dirs�files�names     r�tearDownzTempDirMixin.tearDownWsv��
�������!#�������!F��D�$������������d�m�m�T�:�D�M�M�J��"G�	�
�
�d�m�m�T�*rc���tjj|j|�}t	|dd��5}|j|�ddd�|S#1swY|SxYw)N�wr��encoding)rRrZr[rQ�open�write)r�filename�	file_path�files    r�create_writable_filez!TempDirMixin.create_writable_file^sK���G�G�L�L�����9�	�
�)�S�7�
3�t��J�J�x� �4���4���s�A�Ac�j�tj|j|�tj�yrN)rRrYrnr\�S_IREAD)rrks  r�create_readonly_filez!TempDirMixin.create_readonly_fileds��
����*�*�8�4�d�l�l�CrN)rrr rJrdrnrqr@rrrLrLOs�� �
+��DrrLc��eZdZd�Zy)�Sigc� �||_||_yrN)�args�kwargs�rrurvs   rrzSig.__init__is����	���rN�rrr rr@rrrsrsgs��rrsc��eZdZd�Zd�Zd�Zy)�NSc�:�|jj|�yrN)�__dict__�update)rrvs  rrzNS.__init__ps���
�
���V�$rc���t|jj��}dj|D�cgc]}d|z��	c}�}t	|�j
�d|�d�Scc}w)Nz, z%s=%r�(�))�sortedr|�itemsr[�typer)r�sorted_items�tup�	kwarg_strs    r�__repr__zNS.__repr__ssU���d�m�m�1�1�3�4���I�I��E���w��}��E�F�	���:�.�.�	�:�:��Fs�A!c�0�t|�t|�k(SrN)�vars�r�others  r�__eq__z	NS.__eq__xs���D�z�T�%�[�(�(rN)rrr rr�r�r@rrrzrzns��%�;�
)rrzc��eZdZdd�Zy)�ArgumentParserErrorNc�l�tj||||�||_||_||_||_yrN)�	Exceptionrr)�stdout�stderr�
error_code)rr)r�r�r�s     rrzArgumentParserError.__init__~s2�����4��&�&�9����������$��r)NNNrxr@rrr�r�|s��%rr�c
��ttjt�sttjt�r||i|��Stj}tj}t�t_t�t_		||i|��}tt
|��D]�}t||�}|tjurt|||��/|tjjurt||t|dt���h|tjurt|||���|tjjus��t||t|dt����||t_|t_S#t$r\}|j}	tjj�}
tjj�}td|
||	�d�d}~wwxYw#|t_|t_wxYw)Nr�
SystemExit)�
isinstance�sysr�rr��listr��getattr�setattrr�BIN_STDOUT_SENTINEL�BIN_STDERR_SENTINELr��coderr�)r:rurv�
old_stdout�
old_stderr�result�key�attr�er�r�r�s            r�stderr_to_parser_errorr��s����#�*�*�k�*�j����[�.Q��4�*�6�*�*����J����J���C�J���C�J� �	>���0��0�F��D��L�)���v�s�+���3�:�:�%��F�C��4��S�Z�Z�.�.�.��F�C���X�GZ�)[�\��S�Z�Z�'��F�C��4��S�Z�Z�.�.�.��F�C���X�GZ�)[�\�*�� ��
���
���	>��6�6�D��Z�Z�(�(�*�F��Z�Z�(�(�*�F�%��f�f�d�4�9=�
>��		>�� ��
���
�s,�
CF�F�	G)�
AG$�$G)�)G,�,Hc�2��eZdZ�fd�Z�fd�Z�fd�Z�xZS)�ErrorRaisingArgumentParserc�>��tt|�
}t|g|��i|��SrN)rr�r:r�)rrurvr:rs    �rr:z%ErrorRaisingArgumentParser.parse_args�s%����5�t�G�
�%�j�B�4�B�6�B�Brc�>��tt|�
}t|g|��i|��SrN)rr�r/r�)rrurvr/rs    �rr/zErrorRaisingArgumentParser.exit�s%����/��;��%�d�<�T�<�V�<�<rc�>��tt|�
}t|g|��i|��SrN)rr��errorr�)rrurvr�rs    �rr�z ErrorRaisingArgumentParser.error�s%����0�$�=��%�e�=�d�=�f�=�=r)rrr r:r/r�r!r"s@rr�r��s���C�=�>�>rr�c��eZdZ	d�Zy)�ParserTesterMetaclassc���|dk(ryt|d�st�|_t|d�st|_d�}d�}d�}d�}d�}Gd	�d
t
�}	|||fD]}
||fD]}|	||
|���y)N�ParserTestCase�parser_signature�parser_classc�`�	|D](}|j|ji|j���*yrN)�add_argumentrurv)r1�argument_signatures�sigs   r�	no_groupsz1ParserTesterMetaclass.__init__.<locals>.no_groups�s,��:�*��#��#�#�S�X�X�<����<�+rc��	|jd�}|D](}|j|ji|j���*y)Nr')�add_argument_groupr�rurv)r1r��groupr�s    r�	one_groupz1ParserTesterMetaclass.__init__.<locals>.one_group�s<��F��-�-�e�4�E�*��"��"�"�C�H�H�;��
�
�;�+rc��	t|�D]?\}}|jd|z�}|j|ji|j���Ay)Nzfoo:%i)�	enumerater�r�rurv)r1r��ir�r�s     r�many_groupsz3ParserTesterMetaclass.__init__.<locals>.many_groups�sJ��B�#�$7�8���3��1�1�(�Q�,�?��"��"�"�C�H�H�;��
�
�;�9rc�&�	|j|�SrN)r:)r1rus  r�listargsz0ParserTesterMetaclass.__init__.<locals>.listargs�s��5��$�$�T�*�*rc��	tj}|dg|zt_	|j�|t_S#|t_wxYw)Nr)r��argvr:)r1ru�old_sys_argvs   r�sysargsz/ParserTesterMetaclass.__init__.<locals>.sysargs�sA��:��8�8�L�$�Q��(�4�/�C�H�
(��(�(�*�'����<���s�A�
A
c�$�eZdZd�Zd�Zd�Zd�Zy)�0ParserTesterMetaclass.__init__.<locals>.AddTestsc�H�||_||_|jj}|jj}|j|jfD]>}|j}|||f}dj|�}	|fd�}
	|	|
_t||	|
��@y#t$rY�wxYw)N�_c��||�yrNr@�r�	test_funcs  r�wrapperzJParserTesterMetaclass.__init__.<locals>.AddTests.__init__.<locals>.wrapper�	��!�$�r)�_add_arguments�_parse_argsr�
test_failures�test_successesr[�	TypeErrorr�)r�
tester_cls�
add_argumentsr:�add_arguments_name�parse_args_namer��	func_name�names�	test_namer�s           rrz9ParserTesterMetaclass.__init__.<locals>.AddTests.__init__�s���&3��#�#-�� �%)�%8�%8�%A�%A�"�"&�"2�"2�";�";��"&�"4�"4�d�6I�6I�!J�I� )� 2� 2�I�%�'9�?�J�E� #�����I�09�(��+4��(��J�	�7�;�"K��%����s�>B�	B!� B!c��|jj}|jj}|j|i|��}|j	||j
�|SrN)r�rurvr�r�r�)r�testerrurvr1s     r�_get_parserz<ParserTesterMetaclass.__init__.<locals>.AddTests._get_parsersV���.�.�3�3���0�0�7�7��,��,�,�d�=�f�=���#�#�F�F�,F�,F�G��
rc�0�|j|�}|jD]^}|j�}|j|��5|j	t
|��5|j
|�ddd�ddd��`y#1swY�xYw#1swY�wxYw)N�ru)�msg)r��failures�splitr;�assertRaisesr�r:)rr�r1�args_strrus     rr�z>ParserTesterMetaclass.__init__.<locals>.AddTests.test_failuress}���)�)�&�1�� &���H�#�>�>�+�D����T��2�#�0�0�1D�$�0�O�"�-�-�d�3�P�3�2�!0�P�O��3�2�s$�B�B�-B�B	�B�B	c�$�|j|�}|jD]d\}}t|t�r|j	�}|j|��5|j
||�}|j||�ddd��fy#1swY�qxYw)Nr�)r��	successesr��strr�r;r��assertEqual)rr�r1ru�expected_ns�	result_nss      rr�z?ParserTesterMetaclass.__init__.<locals>.AddTests.test_successess}���)�)�&�1��)/�)9�)9�%�D�+�!�$��,�#�z�z�|�����T��2�$(�$4�$4�V�T�$B�	��*�*�;�	�B�3�2�*:�3�2�s�%B�B	N)rrr rr�r�r�r@rr�AddTestsr��s��
<�&
�
4�
Crr�)�hasattrrsr�r�r��object)�clsrc�bases�bodydictr�r�r�r�r�r�r�r:s            rrzParserTesterMetaclass.__init__�s����#�#���s�.�/�#&�5�C� ��s�N�+�9�C��
	=�
	<�	<�	+�	(�+	C�v�+	C�^(��K�@�M�'��1�
���m�Z�8�2�ArNrxr@rrr�r��s
��
�a9rr�r�c��eZdZ	ed�gZgd�Zded��fded��fded��fd	ed
��fded
��fgZy)�TestOptionalsSingleDash�-x)r��a�--foo�-x --fooz-x -yrN��x�-x ar��-xaz-x -1�-1z-x-1�rrr rsr�r�rzr�r@rrr�r�5sY��;��t�9�+��8�H�	�R�$�Z��	��c���	��S�	��	�"�t�*��	��d����Irr�c�r�eZdZ	edd��eddd��ed�gZgd	�Zd
eddd�
�fdeddd�
�fdeddd�
�fdeddd�
�fdeddd�
�fdeddd�
�fdeddd�
�fdeddd�
�fdeddd�
�fdeddd�
�fdeddd�
�fdeddd�
�fgZy)�TestOptionalsSingleDashCombinedr��
store_true��actionz-yyy�store_const�*�r��const�-z)r�r�r�r�z-x -zz-z -xz-yxz-yz az-yyyxz-yyyzaz-xyzaz-x=rFN)r��yyy�zT�-zar��-z az-xzaz-xz az-x -zaz-x -z a�-yz-x -yyy -zaz-x -yyy -z ar�r@rrr�r�Cs	��;�	�D��&��F�=��3��D�	���
C�H�
�R�%�T�T�
*�+�	
�r�D�d�d�+�,�	��U���,�-�	��e���-�.�	��d���,�-�	�"�t���-�.�	�2��$�#�.�/�	�B��4�3�/�0�	
�r�E�r�T�*�+�	��e��t�,�-�	��T�r�S�1�2�	��d��c�2�3�
�Irr�c��eZdZ	ed�gZgd�Zded��fded��fded	��fd
ed��fded��fgZy)�TestOptionalsSingleDashLong�-foo)rr�r�z
-foo --fooz-foo -y�-fooarN�r'z-foo ar�z-foo -1r�z-fo a�-f ar�r@rrrr]sY��K��v�;�-��G�H�	�R�D�\��	�2�#�;��	�B�4�L�!�	�"��+��	������Irrc���eZdZ	ed�ed�ed�gZgd�Zdeddd��fded	dd��fd
ed	dd��fdeddd��fd
eddd��fdedd	d��fdeddd	��fgZy)�&TestOptionalsSingleDashSubsetAmbiguous�-f�-foobar�-foorab)rr�-fo�-foo bz-foobz-foobaz-foorarN)�f�foobar�foorabrr��-fa�-foa�oar
�ooa�	-foobar a�	-foorab ar�r@rrrrks���G��t�9�c�)�n�c�)�n�E��K�H�	�R�$�t�D�
1�2�	��c�$�t�4�5�	��S��d�3�4�	��d�4��5�6�	�"�u�T�$�7�8�	�b�4��D�9�:�	�b�4��S�9�:��Irrc�X�eZdZ	ed�ed�gZgd�Zdedd��fdedd��fd	edd��fd
edd��fdedd��fdedd��fd
edd��fdedd��fdedd��fdedd��fdedd��fdedd��fdedd��fg
Zy)� TestOptionalsSingleDashAmbiguousrr)	rrrrrrrz-f=az-foo=brN)rrz-foob ar�z-foob=az-foor az-foor=az-fooba az-fooba=az-foora az-foora=arz	-foobar=arz	-foorab=ar�r@rrr!r!{s���A��y�>�3�y�>�:��"�H�
�R�t�D�
)�*�	�B�c�$�/�0�	�B�c�$�/�0�	�B�d�3�/�0�	�B�d�3�/�0�	�R�s�4�0�1�	�R�s�4�0�1�	�R�t�C�0�1�	�R�t�C�0�1�	�b��D�1�2�	�b��D�1�2�	�b��S�1�2�	�b��S�1�2��Irr!c��eZdZ	edd��gZgd�Zded��fded	��fd
ed	��fded��fgZy)
�TestOptionalsNumericr��one��dest)r�r�z-1 --fooz-1 -yz-1 -1z-1 -2rN)r$z-1 ar�z-1az-1-2�-2r�r@rrr#r#�sQ��2��t�%�0�1��A�H�	�R�D�\��	�����	��s���	�����	�Irr#c��eZdZ	ed�gZgd�Zded��fded��fded��fd	ed
��fded
��fgZy)�TestOptionalsDoubleDashr�)r�rrr�z--foo -xz--foo --barrNrz--foo ar�z--foo=az
--foo -2.5z-2.5z
--foo=-2.5r�r@rrr)r)�sY��;��w�<�.��F�H�	�R�D�\��	�B�3�K� �	�B�3�K� �	�r�f�~�&�	�r�f�~�&��Irr)c
���eZdZ	edd��ed�gZgd�Zdedd�	�fd
edd�	�fded
d�	�fded
d�	�fded
d�	�fded
d�	�fgZy)�#TestOptionalsDoubleDashPartialMatch�--badgerr�r�z--bat)�--bar�--b�--ba�--b=2z--ba=4�	--badge 5rFN)�badger�batz--bat X�X�--badT�--badg�--badger�r@rrr+r+�s���A�	�J�|�,��G����H�H�	�R�u�$�
'�(�	�B�e��-�.�	�"�D�d�+�,�	�2�T�t�,�-�	�B�d��-�.�	�R�t��.�/�
�Irr+c���eZdZ	edd��ed�gZgd�Zdedd�	�fd
edd�	�fdedd�	�fd
edd�	�fdedd�	�fdedd�	�fdedd�	�fgZy)�"TestOptionalsDoubleDashPrefixMatchr,r�r�r/)r-r.r/r0r1rFN)r2�baz--ba Xr4z--ba=Xr5Tr6r7r�r@rrr9r9�s���I�	�J�|�,��F����>�H�	�R�u��
&�'�	�2�U�s�+�,�	�2�U�s�+�,�	�"�D�T�*�+�	�2�T�d�+�,�	�B�d�t�,�-�	�R�t��-�.��Irr9c���eZdZ	edd��ed�eddd��gZgd	�Zd
eddd�
�fdeddd�
�fdeddd�
�fdeddd�
�fdeddd�
�fdeddd�
�fgZy)�TestOptionalsSingleDoubleDashrr�r�r-�-bazrrr)r-�-fbarz-fbazz-bazf�-b B�BrFN�r�bar�bazTz--ba Br@z
-f --bar Bz-f -bz-ba -fr�r@rrr<r<�s���F�	�D��&��G���F�=��3���
A�H�	�R�%�T�t�
,�-�	
�r�D�d��-�.�	�2��3�D�1�2�	�r�D�c�t�4�5�	�"�t��2�.�/�	�2��$�B�/�0�
�Irr<c��eZdZ	edd��Zedd��ed�edd	d
��gZgd�Zd
eddd��fdeddd��fdeddd��fdeddd��fdeddd
��fdeddd
��fgZy)�!TestOptionalsAlternatePrefixChars�+:/F��prefix_chars�add_help�+fr�r��::bar�/bazrrr)r-r>r?r@r�--bar Br=r4�--helpz+hz::helpz/helprNrAT�::ba Br@�
+f ::bar B�+f /b�/ba +f�	rrr rsr�r�r�rzr�r@rrrErE�s���C����>���D��&��G���F�=��3���
q�H�	�R�%�T�t�
,�-�	
�r�D�d��-�.�	�2��3�D�1�2�	�r�D�c�t�4�5�	�"�t��2�.�/�	�2��$�B�/�0�
�IrrEc��eZdZ	edd��Zedd��ed�edd	d
��gZgd�Zd
eddd��fdeddd��fdeddd��fdeddd��fdeddd
��fdeddd
��fgZy)�*TestOptionalsAlternatePrefixCharsAddedHelprFTrGrJr�r�rKrLrrr)r-r>r?r@rrMr=rFNrArOr@rPrQrRrSr@rrrUrU�s���+����=���D��&��G���F�=��3���
H�H�	�R�%�T�t�
,�-�	
�r�D�d��-�.�	�2��3�D�1�2�	�r�D�c�t�4�5�	�"�t��2�.�/�	�2��$�B�/�0�
�IrrUc	���eZdZ	edd��Zedd��edd��edd��gZgd	�Zd
eddd��fdeddd��fd
eddd��fdeddd��fgZy)�2TestOptionalsAlternatePrefixCharsMultipleShortArgsz+-FrGr�r�r�z+yz+z)�-wz-xyzz+xr	z+xyzr�r��yrTz+y -xz+yz -xNrSr@rrrWrWs���J���u�=���D��&��D��&��D��&���
�H�
�R�%�5�E�
*�+�	
�r�D�E�U�+�,�	�"�t�t�u�-�.�	�2����-�.�	�IrrWc��eZdZ	eddddd��gZgd�Zded	�
�fded�
�fded�
�fded�
�fded�
�fgZy)
�TestOptionalsShortLong�-v�	--verbose�-nz--noisyr�r�)z
--x --verbosez-Nr�z-v xrF)�verboseTNr�r@rrr\r\&sn��F�	�D�+�t�Y�|�D���4�H�	�R��
��	
�r�$�� �	�b��&�'�	
�r�$�� �	�B�t�$�%��Irr\c��eZdZ	ed�edd��gZdgZdedd�	�fd
edd�	�fded
d�	�fdedd�	�fgZy)�TestOptionalsDestz	--foo-bar�--baz�zabbazr%r�z--foo-bar frN)�foo_barrdz--baz g�gz--foo-bar h --baz i�hr�z--baz j --foo-bar k�k�jr�r@rrrbrb6sf��4��{�+�S��x�-H�I���u�H�	��3�t�4�5�	�B�t�C�0�1�	��3�s� ;�<�	��3�s� ;�<�	�Irrbc�~�eZdZ	ed�edd��gZdgZdedd��fd	ed
d��fdedd��fgZy)
�TestOptionalsDefaultr�r	r��defaultr�rN�r�rZz-xxr�z-yyrZr�r@rrrkrkCsU��4��t�9�c�$��&;�<���u�H�	�R�$�"�
��	��S�B�� �	��T�S�!�"��Irrkc�T�eZdZ	ed�gZddgZded��fded��fgZy)�TestOptionalsNargsDefaultr�r�rNr�r�r�r@rrrprpOs9��A��t�9�+���T�{�H�	�R�$�Z��	��c����Irrpc�Z�eZdZ	edd��gZddgZded��fdedg��fgZy)	�TestOptionalsNargs1r����nargsr�rNr�r�r�r@rrrrrrZs?��0��t�1�-�.���T�{�H�	�R�$�Z��	��s�e����Irrrc�\�eZdZ	edd��gZgd�Zded��fdegd	���fgZy)
�TestOptionalsNargs3r��rt)r�r�r��-x a b�a -x�a -x brNr�z-x a b c�r��b�cr�r@rrrwrwes:��1��t�1�-�.��>�H�	�R�$�Z��	�R�/�*�+��Irrwc�X�eZdZ	edd��eddd��eddd�	�ed
dedd�
�gZdgZdedddd��fdedddd��fdedddd��fdedddd��fdedddd��fdedddd��fdedddd��fd
edddd��fdedddd��fg	Zy)�TestOptionalsNargsOptionalrX�?rtr�r)rurr	�spam�rurmr�42�84)rur�rrm�2rN�T�rfr�rZrz-w 2z-x 2z-y 2z-z 2��	rrr rs�intr�r�rzr�r@rrr�r�ps���:�	�D����D��2�&��D��V�,��D��#�T�4�@�	���u�H�	�R�$�$�&�B�
/�0�	
�r�D�D�F�b�1�2�	��c�T�V�r�2�3�	
�r�D�B�&�B�/�0�	��d�c�V�r�2�3�	
�r�D�D�D�B�/�0�	��d�d�c�R�0�1�	
�r�D�D�F�b�1�2�	��d�d�f��2�3�
�Irr�c���eZdZ	edd��eddd��gZdgZded	d�
�fdegd�
�fdedgd�
�fdedd
gd�
�fded	g�
�fded	dg�
�fded	dd
g�
�fgZy	)�TestOptionalsNargsZeroOrMorer��*rtr	r�r�r�rNrnr�ryr}�-y a�-y a br�r@rrr�r��s���I�	�D����D��V�,����u�H�	�R�$�&�
!�"�	
�r�B�&�!�"�	��s�e�v�&�'�	�2��c�
�f�-�.�	
�r�D�B�� �	��d�s�e�$�%�	�2���c�
�+�,��Irr�c
��eZdZ	edd��eddd��gZgd�Zded	d�
�fdedgd�
�fd
eddgd�
�fded	dg�
�fded	ddg�
�fgZy	)�TestOptionalsNargsOneOrMorer��+rtr	r�r�)r�r�r	rzza -y brNrnr�r�ryr}r�r�r�r@rrr�r��s���H�	�D����D��V�,���3�H�	�R�$�&�
!�"�	��s�e�v�&�'�	�2��c�
�f�-�.�	��d�s�e�$�%�	�2���c�
�+�,��Irr�c
���eZdZ	edd��edeed���gZgd�Zded	d	�
�fdedd	�
�fd
edd	�
�fded	d�
�fded	d�
�fdedd�
�fgZ	y	)�TestOptionalsChoicesr�abc��choicesz-g��r�r�)r�z-f dz-f abz-fadz-gaz-g 6rN)rrfrr�z-f cr~z-g 0rz-g 03rxz-fb -g4r}��
rrr rsr��ranger�r�rzr�r@rrr�r��s���6�	�D�%� ��D�s�E�!�H�-�/��=�H�	�R�$�$�
� �	��c�T�"�#�	��c�T�"�#�	��d�a��!�	�"�t�q�/�"�	�B���N�#�
�Irr�c�Z�eZdZ	eded��gZddgZded��fd	ed
��fgZy)�TestOptionalsRequiredr�T�r��requiredr�r�-x 1rsr�z-x42rNr�r@rrr�r��sE��3�	�D�s�T�*����R�y�H�	��a���	��b����Irr�c�X�eZdZ	edd��gZddgZded��fd	ed
��fgZy)�TestOptionalsActionStorer��storer�r�rzrNr�z-xfoor'r�r@rrr�r��s=��0��t�G�4�5���V�}�H�	�R�$�Z��	�"�u�+���Irr�c�X�eZdZ	edde��gZdgZded��fdee��fgZy)�TestOptionalsActionStoreConstr	rrr�rN�rZ)	rrr rsr�r�r�rzr�r@rrr�r��s=��6��t�M��H�I���u�H�	�R�$�Z��	
�r�F�|���Irr�c�X�eZdZ	edd��gZgd�Zded��fded��fgZy	)
�TestOptionalsActionStoreFalser�store_falser�)r�rrrT)rFNr�r@rrr�r��s9��6��t�M�:�;��#�H�	�R�$�Z��	
�r�E�{���Irr�c�X�eZdZ	edd��gZgd�Zded��fded��fgZy	)
�TestOptionalsActionStoreTruez--appler�r�)r�z	--apple=bz	--apple brF)�appleTNr�r@rrr�r��s9��5��y��>�?��.�H�	�R�e�_��	�B�T�N�#��Irr�c��eZdZ	edej
��gZddgZded��fded��fd	ed
��fded
��fded��fgZ	d
�Z
d�Zy)�TestBooleanOptionalActionr�r��	--foo bar�	--foo=barrNrT�--no-fooFz--foo --no-fooz--no-foo --fooc��tj�}|jt�5}|j	ddtj
��ddd�|j
dtj��y#1swY�/xYw)Nr�T�rr�z*got an unexpected keyword argument 'const')	r*r+r�r�r��BooleanOptionalAction�assertInr��	exception�rr1�cms   r�
test_constz$TestBooleanOptionalAction.test_constsc���(�(�*��
�
�
�y�
)�R�����t�H�<Z�<Z��[�*�	
�
�
�B�C����DU�V�*�
)�s�#A;�;Bc���tj�}|jt�5|j	dtj
d��ddd�|jt�5|j	dtj
t��ddd�|jt�5|j	dtj
d��ddd�|jt�5|j	dtj
d��ddd�|jt�5|j	dtj
d�	�ddd�|jt�5|j	d
tj
d�	�ddd�y#1swY��OxYw#1swY��xYw#1swY��xYw#1swY��xYw#1swY�|xYw#1swYyxYw)N�-a)r�r��-b�-c)r��metavar�-d�d�-e)r�r�rr@)r*r+�assertWarns�DeprecationWarningr�r��boolr0s  r�test_deprecated_init_kwz1TestBooleanOptionalAction.test_deprecated_init_kw	s����(�(�*��
�
�
�0�
1������5�5��
 �
�2��
�
�0�
1������5�5��
 �
�2��
�
�0�
1������5�5��
 �
�2��
�
�0�
1������5�5��
 �
�2��
�
�0�
1������5�5��
 �
�2��
�
�0�
1������5�5��
 �
�2�
1�A2�
1��2�
1��2�
1��2�
1��2�
1��2�
1�sG�#F�*'F'�.#F4�.#G�.#G�.#G�F$�'F1�4F=�G	�G�G!)rrr rsr*r�r�r�rzr�r�r�r@rrr�r��ss��%��w�x�/M�/M�N�O���[�)�H�	�R�D�\��	�"��,��	�R�E�]�#�	�2�%�=�)�	�2�$�<�(��I�W�)rr�c�l�eZdZ	eddej
��gZdgZded��fded��fgZ	y)	�!TestBooleanOptionalActionRequiredr�T)r�r�rrr�FN)
rrr rsr*r�r�r�rzr�r@rrr�r�4sI��.�	�G�d�8�+I�+I�J����t�H�	�"��,��	�R�E�]�#��Irr�c�r�eZdZ	edd��gZgd�Zded��fded	g��fd
ed	dg��fgZy)�TestOptionalsActionAppendrc�appendr��r�rc�a --baz�	--baz a brN�rC�--baz ar��--baz a --baz br}r�r@rrr�r�@sL��1��w�x�8�9��5�H�	�R�D�\��	�B�C�5�M�"�	�B�C��:�.�/��Irr�c�z�eZdZ	edddg��gZgd�Zdedg��fdedd	g��fd
egd���fgZy)
�$TestOptionalsActionAppendWithDefaultrcr�r4�r�rmr�rr�r�r�r�)r4r�r}Nr�r@rrr�r�LsQ��1��w�x�#��G�H��5�H�	�R�S�E�]��	�B�C��:�&�'�	�B�?�3�4��Irr�c���eZdZ	edd��edd��edd��edd��gZgd�Zd	ed
d
d
d
��fded
gd
d
d
��fded
d
gd
d
��fded
d
d
d
��fded
d
d
d
��fgZy
)�!TestConstActionsMissingConstKwargr�append_constr�r�r�rr-)z-f vr�r�rN)rr'r}rBr�r@rrr�r�Xs���G�	�D��(��G�N�+��D��'��G�M�*�	��2�H�	�R�$�D�D�d�
3�4�	
�r�T�F���$�7�8�	�"�t�$��4�T�:�;�	
�r�D�d�d��5�6�	�"�t���4�8�9��Irr�c	��eZdZ	edde��eddd��gZgd�Zd	ed
��fdeeg��fdeed
edg��fgZy
)�TestOptionalsActionAppendConstr�r�rr�r�r}�r�r&�r�r�za -cz-bxz-b xrN�r}�-b -cx -b -cyzr��yz�	rrr rsr�r�r�rzr�r@rrr�r�ksf��7�	�D��y�9��D���,���2�H�	�R�$�Z��	
�r�Y�K� �!�	�2��C��D� A�B�C��Irr�c
��eZdZ	eddedg��eddd��gZgd	�Zd
edg��fdedeg��fdeded
edg��fgZy)�)TestOptionalsActionAppendConstWithDefaultr�r�r4)r�rrmr�r�r}r�r�rr�r�r�r�Nr�r@rrr�r�zsq��7�	�D��y�3�%�H��D���,���2�H�	�R�3�%�[��	
�r�S�)�$�%�&�	�2��i��i�� F�G�H��Irr�c�X�eZdZ	edd��gZgd�Zded��fded��fgZy)	�TestOptionalsActionCountr��countr�)r�r�z-x bz	-x a -x brNr�rsr�r@rrr�r��s8��0��t�G�4�5��1�H�	�R�$�Z��	
�r�A�w���Irr�c���eZdZ	ed�ed�edd��gZddgZded	d	d
��fded
d	d
��fded
d	d
��fded	dd
��fded	dd
��fdedd	d��fgZy	)�"TestOptionalsAllowLongAbbreviationr��--foobaz�--foobler�r�z--foob 5�--foobrNF)r'�foobaz�fooblez--foo 7�7z--foo=7z	--fooba ar�z	--fooba=az--foobl --foo grfTr�r@rrr�r��s���<�	�G���J���J�|�,���
�H�%�H�	�R�D��e�
4�5�	�B�3�t�E�:�;�	�B�3�t�E�:�;�	�b�T�#�e�<�=�	�b�T�#�e�<�=�	�B�3�t�D�A�B�
�Irr�c��eZdZ	ed��Zed�edd��ed�gZgd�Zd	ed
dd
��fded
dd
��fdeddd��fgZy
)�%TestOptionalsDisallowLongAbbreviationF��allow_abbrevr��--foodler�r��--foonly)�-foon 3z--foon 3�--foodz--food --foo 2rN�r'�foodle�foonlyz--foo 3�3z--foonly 7 --foodle --foo 2r�Tr�rSr@rrr�r��sr��;���.���G���J�|�,��J����
C�H�	�R�D��t�
4�5�	�B�3�u�T�:�;�	&��s�4��(L�M��Irr�c��eZdZ	edd��Zed�edd��ed�gZgd	�Zd
eddd��fd
eddd��fdeddd��fgZy)�0TestOptionalsDisallowLongAbbreviationPrefixCharsr�F�rHr�z++fooz++foodler�r�z++foonly)z+foon 3z++foon 3z++foodz++food ++foo 2rNr�z++foo 3r�z++foonly 7 ++foodle ++foo 2r�Tr�rSr@rrr�r��st��L���%�@���G���J�|�,��J����
C�H�	�R�D��t�
4�5�	�B�3�u�T�:�;�	&��s�4��(L�M��Irr�c��eZdZ	ed��Zed�edd��ed�gZgd�Zd	ed
dd
��fded
dd
��fdeddd��fgZy
)�/TestOptionalsDisallowSingleDashLongAbbreviationFr�rz-foodler�r�z-foonly)r�z-foodz-food -foo 2rNr�z-foo 3r�z-foonly 7 -foodle -foo 2r�Tr�rSr@rrr�r��sq��;���.���F���I�l�+��I����
4�H�	�R�D��t�
4�5�	�2�#�e�D�9�:�	#�R�C��S�%I�J��Irr�c
���eZdZ	ed��Zed�edd��gZddgZded	d	�
�fdedd	�
�fd
edd	�
�fded	d�
�fdedd�
�fdedd�
�fgZy	)�/TestDisallowLongAbbreviationAllowsShortGroupingFr�z-rr�r�r�z-c -rrN��rr~z-rar�z-rcc�ccz-ccr�z-cc -raz-ccrccrSr@rrrr�s���;���.���D�	��D��!����g��H�	�R�$�$�
� �	��S�D�!�"�	��d�d�#�$�	��T�Q�� �	�B���N�#�	�2���?�#�
�Irrc
���eZdZ	edd��Zed�edd��gZddgZd	ed
d
��fded
d
��fdedd
��fded
d��fded
d��fdedd��fgZy
)�5TestDisallowLongAbbreviationAllowsShortGroupingPrefixr�Fr�z+rz+cr�r�z+c +rrNrz+rar�z+rccrz+ccr�z+cc +raz+ccrccrSr@rrrr�s���O���%�@���D�	��D��!����g��H�	�R�$�$�
� �	��S�D�!�"�	��d�d�#�$�	��T�Q�� �	�B���N�#�	�2���?�#�
�Irrc�@�eZdZ	ed�gZgd�Zded��fgZy)�TestPositionalsNargsNoner'�rr��a br�rNr�r@rrrrs)��6��u�:�,�� �H�	�b�S�k���Irrc�F�eZdZ	edd��gZgd�Zdedg��fgZy)�TestPositionalsNargs1r'rsrtrr�rNr�r@rrrrs/��8��u�A�.�/�� �H�	�b�c�U�m���Irrc�H�eZdZ	edd��gZgd�Zdeddg��fgZy	)
�TestPositionalsNargs2r'r�rt)rr�r��a b cr	r�r}rNr�r@rrr
r
s2��8��u�A�.�/��'�H�	���S�z�"�#��Irr
c�p�eZdZ	edd��gZdgZdeg��fdedg��fdedd	g��fgZy
)�TestPositionalsNargsZeroOrMorer'r�rtr�rrr�r	r}Nr�r@rrrr"sN��:��u�C�0�1���v�H�	�R�B�Z��	�b�c�U�m��	���S�z�"�#��Irrc�r�eZdZ	eddd��gZdgZded��fdedg��fd	edd
g��fgZy)�%TestPositionalsNargsZeroOrMoreDefaultr'r�rBr�r�rrr�r	r}Nr�r@rrrr.sP��H��u�C��?�@���v�H�	�R�E�]��	�b�c�U�m��	���S�z�"�#��Irrc�^�eZdZ	edd��gZddgZdedg��fdedd	g��fgZy
)�TestPositionalsNargsOneOrMorer'r�rtrr�r�rr	r}Nr�r@rrrr:sD��<��u�C�0�1���D�z�H�	�b�c�U�m��	���S�z�"�#��Irrc�X�eZdZ	edd��gZddgZded��fd	ed	��fgZy)
�TestPositionalsNargsOptionalr'r�rtr�r	rNrr�r�r@rrrrEs=��&��u�C�0�1���e�}�H�	�R�D�\��	�b�S�k���Irrc�Z�eZdZ	eddd��gZddgZded��fd	ed	��fgZy
)�#TestPositionalsNargsOptionalDefaultr'r�rr�r�r	rrr�Nr�r@rrrrPs?��;��u�C��<�=���e�}�H�	�R�B�Z��	�b�S�k���Irrc�\�eZdZ	edded��gZgd�Zded��fd	ed
��fgZy)�,TestPositionalsNargsOptionalConvertedDefaultr'r�r��rur�rm)r�r	�1 2rrr�1rsNr�r@rrrr[sE���
	�E��3��5���$�H�	�R�B�Z��	�b�Q�i���Irrc�P�eZdZ	ed�ed�gZgd�Zdedd��fgZy)	�TestPositionalsNargsNoneNoner'rB)rr�r�rr	r�r}�r'rBNr�r@rrrrjs3��7��u�:�s�5�z�2��'�H�	��s��$�%��Irrc�V�eZdZ	ed�edd��gZgd�Zdeddg�	�fgZy
)�TestPositionalsNargsNone1r'rBrsrt)rr�r�rr	r�r}r Nr�r@rrr"r"ts8��@��u�:�s�5��':�;��*�H�	��s���&�'��Irr"c�X�eZdZ	edd��ed�gZgd�Zdeddgd	�
�fgZy)�TestPositionalsNargs2Noner'r�rtrB�rr�r�r	�a b c drr�r}r~r Nr�r@rrr$r$~s:��B��u�A�.��E�
�;��3�H�	�"�#�s���-�.��Irr$c�l�eZdZ	ed�ed�edd��gZgd�Zdeddg�	�fd
edddg�	�fdedddd
g�	�fdeddg�	�fdeddg�	�fdedddg�	�fdedddg�	�fdedddg�	�fdedddd
g�	�fdedddd
g�	�fdedddd
g�	�fgZy)�"TestPositionalsNargsNoneZeroOrMorer�r'rBr�rt)rr��
a b -x X cr�N�r�r'rBr	r}rr~�-x X ar4�a -x X�-x X a b�a -x X b�a b -x X�
-x X a b c�
a -x X b c�
a b c -x Xr�r@rrr(r(�s��H��t�9�c�%�j�#�e�3�2G�H��*�H�	�b�4�S�b�)�*�	��T�s���.�/�	�"�t��3��*�5�6�	�2���"�-�.�	�2���"�-�.�	�R�#�3�S�E�2�3�	�R�#�3�S�E�2�3�	�R�#�3�S�E�2�3�	�r�C�S�s�C�j�9�:�	�r�C�S�s�C�j�9�:�	�r�C�S�s�C�j�9�:��Irr(c�$�eZdZ	ed�ed�edd��gZgd�Zdedd	d
g��fdedd	d
d
g��fdedd	d
g��fdedd	d
g��fdedd	d
g��fdedd	d
d
g��fdedd	d
d
g��fdedd	d
d
g��fgZy)�!TestPositionalsNargsNoneOneOrMorer�r'rBr�rt�rr�r�r)r	Nr�r}r*rr~r-r4r.r/r0r1r2r�r@rrr4r4�s���J��t�9�c�%�j�#�e�3�2G�H��/�H�	��T�s���.�/�	�"�t��3��*�5�6�	�R�#�3�S�E�2�3�	�R�#�3�S�E�2�3�	�R�#�3�S�E�2�3�	�r�C�S�s�C�j�9�:�	�r�C�S�s�C�j�9�:�	�r�C�S�s�C�j�9�:�	�Irr4c���eZdZ	ed�ed�edd��gZgd�Zdeddd�	�fd
eddd�	�fded
dd�	�fded
dd�	�fded
dd�	�fded
dd�	�fded
dd�	�fgZy)� TestPositionalsNargsNoneOptionalr�r'rBr�rt�rr�rr�Nr*r	r}r+r4r,r-r.r/r�r@rrr7r7�s���J��t�9�c�%�j�#�e�3�2G�H��%�H�	�b�4�S�d�+�,�	��T�s��,�-�	�2���$�/�0�	�2���$�/�0�	�R�#�3�C�0�1�	�R�#�3�C�0�1�	�R�#�3�C�0�1��Irr7c�6�eZdZ	ed�edd��ed�gZgd�Zdedgd�	�fd
eddgd�	�fdedddgd
�	�fdedgd�	�fdedgd�	�fdeddgd�	�fdeddgd�	�fdedddgd
�	�fdedddgd
�	�fg	Zy)�"TestPositionalsNargsZeroOrMoreNoner�r'r�rtrB)rr�r.r1r)r�Nr*r	r}rr~r+r4r,r-r/r0r2r�r@rrr:r:�s���J��t�9�c�%�s�&;�S��Z�H��D�H�	�b�4�R�S�)�*�	��T��u�#�.�/�	�"�t�#�s���5�6�	�2����-�.�	�2����-�.�	�R�#�C�5�c�2�3�	�R�#�C�5�c�2�3�	�r�C�c�3�Z�S�9�:�	�r�C�c�3�Z�S�9�:�
�Irr:c��eZdZ	ed�edd��ed�gZgd�Zdedd	gd
��fdedd	d
gd
��fdedd	gd
��fdedd	gd
��fdedd	gd
��fdedd	d
gd
��fdedd	d
gd
��fgZy)�!TestPositionalsNargsOneOrMoreNoner�r'r�rtrB)rr�r�r1r)r	Nr�r}r*rr~r-r4r.r/r0r2r�r@rrr<r<�s���L��t�9�c�%�s�&;�S��Z�H��=�H�	��T��u�#�.�/�	�"�t�#�s���5�6�	�R�#�C�5�c�2�3�	�R�#�C�5�c�2�3�	�R�#�C�5�c�2�3�	�r�C�c�3�Z�S�9�:�	�r�C�c�3�Z�S�9�:��Irr<c�l�eZdZ	eddd��ed�gZgd�Zdedd��fd	edd
��fgZy)� TestPositionalsNargsOptionalNoner'r�rr�rBr8r�r r	r}Nr�r@rrr>r>�sG��L��u�C��<�c�%�j�I��%�H�	�b�R�S�!�"�	��s��$�%��Irr>c�x�eZdZ	edd��edd��gZgd�Zdedd	gg�
�fdedd	gdg�
�fgZy
)�TestPositionalsNargs2ZeroOrMorer'r�rtrBr��rr�r�r	r�r}r rr~Nr�r@rrr@r@�sR��G��u�A�.��E��0E�F��!�H�	���S�z�r�*�+�	�"�#�s��#��/�0��Irr@c�^�eZdZ	edd��edd��gZgd�Zdedd	gd
g��fgZy)
�TestPositionalsNargs2OneOrMorer'r�rtrBr�)rr�r�r	rr�r}r~r Nr�r@rrrCrC�s?��I��u�A�.��E��0E�F��(�H�	�"�#�s��#��/�0��IrrCc�v�eZdZ	edd��edd��gZgd�Zdedd	gd
��fdedd	gd
��fgZy
)�TestPositionalsNargs2Optionalr'r�rtrBr�)rr�r�r&r	r�r}Nr rr~r�r@rrrErE�sP��A��u�A�.��E��0E�F��,�H�	���S�z�t�,�-�	�"�#�s���-�.��IrrEc��eZdZ	edd��edd��gZddgZdegdg�	�fd
edgdg�	�fdeddgd
g�	�fgZy)�TestPositionalsNargsZeroOrMore1r'r�rtrBrsrr�r�r r	r}rr~Nr�r@rrrGrG
sg��G��u�C�0�#�e�1�2E�F���G��H�	�b�R�c�U�#�$�	���u�3�%�(�)�	�"�#�s��#��/�0��IrrGc�x�eZdZ	edd��edd��gZgd�Zdedgd	g�
�fdedd	gdg�
�fgZy
)�TestPositionalsNargsOneOrMore1r'r�rtrBrsrAr	r�r}r rr~Nr�r@rrrIrIsR��I��u�C�0�#�e�1�2E�F��!�H�	���u�3�%�(�)�	�"�#�s��#��/�0��IrrIc�r�eZdZ	edd��edd��gZgd�Zdeddg�	�fd
eddg�	�fgZy)�TestPositionalsNargsOptional1r'r�rtrBrsr8r�Nr r	r}r�r@rrrKrK!sL��I��u�C�0�#�e�1�2E�F��%�H�	�b�T��u�%�&�	��s���&�'��IrrKc�F�eZdZ	ed�ed�edd��edd��gZgd�Zd	ed
dgdg�
�fded
ddgdg�
�fdeddgdg�
�fdeddgdg�
�fdeddgdg�
�fdedddgdg�
�fdedddgdg�
�fdedddgdg�
�fgZy
)�#TestPositionalsNargsNoneZeroOrMore1r�r'rBr�rtrCrsr5r	Nr�r}�r�r'rBrCrr~r-r4r.r/r0r1r2r�r@rrrMrM,s���G�	�D�	��E�
��E����E���	��0�H�	��T�s����6�7�	�"�t��3�%�c�U�;�<�	�R�#�3�B�S�E�:�;�	�R�#�3�B�S�E�:�;�	�R�#�3�B�S�E�:�;�	�r�C�S�s�e�#��?�@�	�r�C�S�s�e�#��?�@�	�r�C�S�s�e�#��?�@�	�IrrMc�t�eZdZ	ed�ed�edd��edd��gZgd�Zd	ed
ddgd
g��fded
ddd
gdg��fdedddgd
g��fdedddgd
g��fdedddgd
g��fdedddgd
g��fdedddd
gdg��fdedddd
gdg��fdedddd
gdg��fg	Zy
)�"TestPositionalsNargsNoneOneOrMore1r�r'rBr�rtrCrs)rr�r�r}za b -x X c dza b c -x X drNr�r}r~rNr&r�r0r4r1r)r2z-x X a b c dza -x X b c dza b c d -x Xr�r@rrrPrPBs��I�	�D�	��E�
��E����E���	��G�H�	�"�t��3�%�c�U�;�<�	�B��3�S�#�J�S�E�B�C�	�r�C�S�s�e�#��?�@�	�r�C�S�s�e�#��?�@�	�r�C�S�s�e�#��?�@�	�r�C�S�s�e�#��?�@�	��c�s��c�
���F�G�	��c�s��c�
���F�G�	��c�s��c�
���F�G�
�IrrPc�@�eZdZ	ed�ed�eddd��edd�	�gZgd
�Zdedd
ddg��fdedd
ddg��fdedd
ddg��fdedd
ddg��fdedd
ddg��fdedd
ddg��fdedd
ddg��fdedd
ddg��fgZy)�!TestPositionalsNargsNoneOptional1r�r'rBr���?r�rCrsrtr5r	Nr�r}rNrr~r-r4r.r/r0r1r2r�r@rrrRrRYs���E�	�D�	��E�
��E��e�,��E���	��0�H�	��T�s��C�5�9�:�	�"�t��#�C�5�9�:�	�R�#�3�E��u�=�>�	�R�#�3�E��u�=�>�	�R�#�3�E��u�=�>�	�r�C�S�c��u�=�>�	�r�C�S�c��u�=�>�	�r�C�S�c��u�=�>�	�IrrRc��eZdZ	edd��eddd��gZddgZd	ed
d��fdedd��fd
edd��fgZy
)�$TestPositionalsNargsOptionalOptionalr'r�rtrBrr�r�rrNr r�r	r}r�r@rrrUrUose��!�	�E����E��b�)�����!�H�	�R�D�b�
!�"�	�b�S�b�!�"�	��s��$�%��IrrUc	��eZdZ	edd��edd��gZdgZdedg�	�fd
ed
g�	�fded
dg�	�fd
ed
ddg�	�fgZy)�&TestPositionalsNargsOptionalZeroOrMorer'r�rtrBr�r�rNr r�r	r}rr~r�r@rrrWrW~sn��;��u�C�0�#�e�3�2G�H���y�H�	�R�D�b�
!�"�	�b�S�b�!�"�	��s���&�'�	�"��3��*�-�.�	�IrrWc��eZdZ	edd��edd��gZddgZded	dg�
�fdeddg�
�fd
edddg�
�fgZy	)�%TestPositionalsNargsOptionalOneOrMorer'r�rtrBr�rr�r�Nr r	r}rr~r�r@rrrYrY�sc��=��u�C�0�#�e�3�2G�H���G�}�H�	�b�T��u�%�&�	��s���&�'�	�"��3��*�-�.��IrrYc�d�eZdZ	eded���gZgd�Zded��fded��fgZy)	�TestPositionalsChoicesStringr��abcdefgr��rr�rgr��efr��r�rfN)	rrr rs�setr�r�rzr�r@rrr[r[�s=��0��v�s�9�~�>�?��-�H�	�b�c�l��	�b�c�l���Irr[c�f�eZdZ	edeed���gZgd�Zded��fded	��fgZ	y
)�TestPositionalsChoicesIntr��r�r]�4r�r_�15�Nr�r@rrrbrb�s?��'��v�C��r��C�D��-�H�	�b�a�j��	
�r�r�{���Irrbc�`�eZdZ	edd��eddd��gZgd�Zdedd	d
gg��fgZy)
�TestPositionalsActionAppendr�r�r�r�)r�rur%rr�r}r~r_Nr�r@rrrhrh�sI��"�	�F�8�$��F�8�1�-���4�H�	�"�3��c�
�+�,�-��Irrhc��eZdZ	edd��eddd��gZdd	gZd
edd�
�fdedd�
�fdedd�
�fdedd�
�fgZy)�"TestOptionalsNumericAndPositionalsr�r�rtz-4rZr��r&r�r'z-315rNFrnr�Tz-4 ar�r@rrrjrj�ss��E�	�C�s���D�s�<�0����f�~�H�	�R�$�%�
 �!�	�b�3�%� �!�	
�r�D�D�!�"�	��c�T�"�#�	�Irrjc	��eZdZ	edd��eddd��gZdgZd	ed
d��fd
ed
d��fdedd��fded
d��fdedd��fgZy
)�(TestOptionalsAlmostNumericAndPositionalsr�r�rtz-k4rZr�rkz-k3rNFrnr'r�Tz-k4 ar�r@rrrmrm�s���L�	�C�s���E��L�1����w�H�	�R�$�%�
 �!�	
�r�D�E�"�#�	�b�3�%� �!�	��T�T�"�#�	�"�s�d�#�$��Irrmc��eZdZedd��eddd��gZdgZdgedd	�
�fdgedd	�
�fdgedd	�
�fddged	d�
�fddged	d�
�fddged	d�
�fd
ged	d�
�fdged	d�
�fgZy	)�$TestEmptyAndSpaceContainingArgumentsr�r�rtr	z--yyyrZr%rNrnza badgerz	-a badgerz--yyy=a badgerz--yyy=-a badgerr�r@rrroro�s���	�C�s���D�'��$����v�H�
��r�B�$�� �
��r�J�$�/�0�
���[�D�1�2�
���R�$�"�%�&�
�
�	�R�$�*�5�6�
��	�b�4�;�7�8�
�	�R�$�*�5�6�
�	�b�4�;�7�8�	�Irroc��eZdZed��Zedddd��edd	ed
��edd
d��gZddgZdedd
d��fdedd
d��fdedd
d��fdeddd��fdedd
d��fdedd
d��fgZ	y)� TestPrefixCharacterOnlyArgumentsz-+�rH�-r�r�r2)r&rurr�rZr)r&r�rmz-+-rr�rkr	z+ -rNFrYz- Xr4z+ -3���Tz- ===z===)
rrr rsr�r�r�r�rzr�r@rrrqrq�s�����-���C�c��H�5��C�c��R�0��E��L�1���
�e�}�H�	�R�$�"��
&�'�	�b�8�r�U�+�,�	��S�B�%�(�)�	��d�b�E�*�+�	��T�R�4�(�)�	�"�u��e�,�-�
�Irrqc���eZdZ	edd��edd��gZgZdedg��fdegg��fded	gg��fd
ed	gdg��fd	edd	g��fdegd	g��fd
edgd	g��fgZy)�TestNargsZeroOrMorer�r�rtrZrNrnr�r�z	-x a -- br}rzr{r�r@rrrvrvs���I��t�3�/��S��1D�E���H�	�R�$�"�
��	
�r�B�"�~��	��s�e�r�"�#�	�b�C�5�S�E�*�+�	�b�4�C�5�!�"�	��b�S�E�"�#�	�2���#��'�(��Irrvc��eZdZ	ed�edd��ed�gZgd�Zdedgd�	�fd
edgd�	�fdedd
dgd�	�fdedgd�d�	�fdedgd�d�	�fdedgd�d�	�fdedddgd�	�fgZy)�TestNargsRemainderr�rZ�...rtr)rrz-z Zr4NrYz-z Z X�Zz
-z Z X A B�Ar@z
X -z Z A B)rrzr{r@z
X A -z Z B)r{rrzr@�
X A B -z Z)r{r@rrzz	X Y --foo�Yr�r�r@rrrxrxs���<��s�8�S��E�%:�C��I�F��!�H�	�b�3�"��%�&�	�2��r�S�)�*�	�r�C�C��:��5�6�	�r�C�#8�D�A�B�	�r�C�#8�D�A�B�	�r�C�#8�D�A�B�	�b�3�3��.�D�9�:��Irrxc�j�eZdZ	ede��eded��edd��gZgd	�Zd
eddg��fd
eddg��fdedddg��fdeddg��fdeddg��fdeddg��fdedddg��fdedddg��fdedddg��fdedddg��fdedddg��fgZy)�TestOptionLiker��r�z-3rZ)r�r&rr�rt)
r�z-y2.5r�z-x -az-x -3z-x -3.5z-3 -3.5z-x -2.5z	-x -2.5 az-3 -.5za x -1z-x -1 az-3 -1 arNrYz-x 2.5�@z-x 2.5 ar�z-3.5��?z-3-.5g�z-3 .5za -3.5za -x 1g�?z-x 1 az-3 1 a)	rrr rs�floatr�r�rzr�r@rrrr$s��8�	�D�u���D�u�3�'��C�s����
0�H�

�R�$�$�"�
%�&�	�2��t�r�*�+�	�R�#��#��/�0�	��d�c�R�(�)�	�"�t�t�r�*�+�	�"�t�s�b�)�*�	�2����u�-�.�	�b�4�4�C�5�)�*�	�2��t��u�-�.�	�2��t��u�-�.�	�2����u�-�.��Irrc���eZdZ	eddeej��eddeej��eddej��ed	deej��ed
deej��gZgd�Zde	�fd
e	d��fde	ddg��fde	d��fde	dd��fde	ddgd��fd	e	d��fde	d��fd
e	g��fde	ddg��fg
Z
y)�TestDefaultSuppressr'r�rrBr�rcr�r�z--qux�--quux)r�r�z1 arrrsrrr�r Tr�z1 --baz�r'rCz	--baz 1 2�r'rBrCN)�quxz--qux 1)�quuxz
--quux 1 2)rrr rsr�r*�SUPPRESSr�r�rzr�r@rrr�r�?s��/�	�E��3��0A�0A�B��E��3��0A�0A�B��G�L�(�2C�2C�D��G�3�S�(�2C�2C�D��H�C�c�8�3D�3D�E���"�H�	�R�T�
�	�b�Q�i��	��q�q�c�"�#�	�"��,��	�B�1�$�'�(�	�b�Q�Q�C�T�2�3�	�"��,��	�B�1�I��	�2�2�;��	�r��1�v��'��Irr�c��eZdZ	eej
��Zedd��edd��edd�	�gZd
gZde	�fde	d�
�fde	ddg��fde	d��fde	dd��fde	ddgd��fgZ
y)�TestParserDefaultSuppress��argument_defaultr'r�rtrBr�rcr�r�r�rr�rr	r}r Tr�r�r�r�r�N)rrr rsr*r�r�r�r�rzr�r@rrr�r�Xs���>��H�,=�,=�>���E����E����G�L�)���
�v�H�	�R�T�
�	�b�S�k��	��s���&�'�	�"��,��	�B�3�D�)�*�	�b�S�s�e��6�7�
�Irr�c��eZdZ	ed��Zeddd��edd�	�ed
d�	�edd
��gZdgZdedddd��fdedddd��fdeddgdd��fdedddd��fdedddd��fdeddgdd��fgZy)�TestParserDefault42rr��	--version�version�1.0�r�r�r'r�rtrBr�rcr�r�r�r)r'rBrCr�r�r	r}Tr�r�NrSr@rrr�r�ls���8��B�/���K�	�5�9��E����E����G�L�)�	���v�H�	�R�B�B�B��
3�4�	�b�S�b�b�"�5�6�	��s���2�r�:�;�	�"����r�:�;�	�B�3�B�D�"�=�>�	�b�S�s�e��r�B�C�
�Irr�c�
��eZdZ	�fd�Zed��Zed�ed�edd��gZgd	�Zd
ejzZ
dedd
dg��fdedd
ddg��fdede
d
g��fdedd
e
g��fdede
ddg��fdedd
e
dg��fgd�edd
dg��fgZejrPejjd�Zej"e�Zededed
g��fdedd
eg��fgz
Z�xZSdZ�xZS)�TestArgumentsFromFilec���tt|��dtj|j
�dzfddd|jdzfg}|D]+\}}t|d�5}|j|�ddd��-y#1swY�8xYw)N�hello�
)�	recursives-a
A
@hello)�invalids@no-such-path
�undecodable�wb)	rr�rJrR�fsencoder�r�rirj�r�
file_textsrZ�textrmrs     �rrJzTestArgumentsFromFile.setUp�s����
�#�T�0�2�
�b�k�k�$�*�*�-��5�6�
%�
,�
�D�,�,�u�4�5�

�
�%�J�D�$��d�D�!�T��
�
�4� �"�!�%�!�!�s�A<�<B	�@��fromfile_prefix_charsr�r�rZr�rt)rr�r4z@invalidz@missingzhello world!zX YNr4r})r�r�rZz
X -a A Y Zr{rz�@hello XzX @helloz-a B @recursive Y ZzX @recursive Z -a Br@)r�rr4r}r�@z@undecodable XzX @undecodabler)rrr rJrsr�r�r�r�FS_NONASCIIr�rzr��TESTFN_UNDECODABLE�lstripr�rR�fsdecode�decoded_undecodabler!r"s@rr�r��sR���,�!���5���D�	��C���C�s����
7�H��Y�2�2�2�E�	��T�S�S�E�*�+�	�r�C�3�3��*�5�6�	�R�$�%�C�5�1�2�	�R�$�#�%��1�2�	��S�E�c�3�Z� @�A�	��S�C�E�3�<� @�A�	�r�B�#�#��7�8��I��#�#��2�2�9�9�$�?��)�b�k�k�+�6���
�r�D�,?�C�5�I�J�
�r�D�C�4G�3H�I�J�
�	
�	�
�rr�c���eZdZ	�fd�ZGd�de�ZeZed��Zedd��gZ	gZ
d	egd
���fgZ�xZ
S)�TestArgumentsFromFileConverterc���tt|��dg}|D]+\}}t|d�5}|j	|�ddd��-y#1swY�8xYw)N)r�s
hello world!
r�)rr�rJrirjr�s     �rrJz$TestArgumentsFromFileConverter.setUp�sR���
�,�d�9�;�(�
�
�%�J�D�$��d�D�!�T��
�
�4� �"�!�%�!�!�s�A�A	c��eZdZd�Zy)�>TestArgumentsFromFileConverter.FromFileConverterArgumentParserc#�`K�|j�D]}|j�s�|���y�wrN)r��strip)r�arg_line�args   r�convert_arg_line_to_argszWTestArgumentsFromFileConverter.FromFileConverterArgumentParser.convert_arg_line_to_args�s(�����~�~�'���y�y�{���	�(�s�,.N)rrr r�r@rr�FromFileConverterArgumentParserr��s��	rr�r�r�rZr�rtr�)r�zworld!r4r�)rrr rJr�r�r�rsr�r�r�rzr�r!r"s@rr�r��sX���,�!��*D��3�L���5���C�s�����H�	�R�2�3�4��Irr�c�*�eZdZd�Zd�Zd�Zd�Zd�Zy)�TestFileTypeReprc�d�tjd�}|jdt|��y)Nrz
FileType('r')�r*�FileTyper��repr�rr�s  r�test_rzTestFileTypeRepr.test_r�s&��� � ��%������$�t�*�5rc�f�tjdd�}|jdt|��y)Nr�rszFileType('wb', 1)r�r�s  r�	test_wb_1zTestFileTypeRepr.test_wb_1�s)��� � ��q�)�����,�d�4�j�9rc�h�tjdd��}|jdt|��y)Nr�latin_1rgz!FileType('r', encoding='latin_1')r�r�s  r�test_r_latinzTestFileTypeRepr.test_r_latin�s)��� � ��y�9�����<�d�4�j�Irc�j�tjddd��}|jdt|��y)Nrf�big5�ignore)rh�errorsz/FileType('w', encoding='big5', errors='ignore')r�r�s  r�test_w_big5_ignorez#TestFileTypeRepr.test_w_big5_ignore�s.��� � ��v�h�G�����J��d��	%rc�j�tjddd��}|jdt|��y)Nrrs�replace�r�z"FileType('r', 1, errors='replace')r�r�s  r�test_r_1_replacez!TestFileTypeRepr.test_r_1_replace�s+��� � ��a�	�:�����=�t�D�z�JrN)rrr r�r�r�r�r�r@rrr�r��s��6�:�J�%�
Krr�c��eZdZd�Zd�Zy)�StdStreamComparerc��tj|�|_|dk(rt|_y|dk(rt
|_yt
�|_y)N�
stdout.buffer�
stderr.buffer)�operator�
attrgetterr�r��
backupattrr�r�)rr�s  rrzStdStreamComparer.__init__�s=�� �*�*�4�0����?�"�1�D�O�
�_�
$�1�D�O�$�h�D�Orc�p�	||jt�k(S#t$r||jk(cYSwxYwrN)r�r��AttributeErrorr�r�s  rr�zStdStreamComparer.__eq__�s9��	,��D�L�L��-�-�-���	,��D�O�O�+�+�	,�s��5�5N�rrr rr�r@rrr�r��s��'�,rr��stdinr�r�zstdin.bufferr�r�c��eZdZiZd�Zd�Zy)�RFilec��||_yrN�rc�rrcs  rrzRFile.__init__
�	����	rc�&�||jvr|j|}n/|j�x}|j|<|j�t|t�s|jd�}|j|jcxk(xr|k(ScS)N�ascii)�seen�read�closer�r�rrc�rr�r�s   rr�zRFile.__eq__st���D�I�I���9�9�U�#�D�&+�j�j�l�2�D�4�9�9�U�#��K�K�M��$��$��;�;�w�'�D��y�y�E�J�J�.�$�.�.�.�.rN)rrr r�rr�r@rrr�r�
s��
�D��/rr�c�H��eZdZ	�fd�Zedej���edejd���gZgd�Zde	de
d��	�fd
e	e
d�e
d��	�fde	e
d�e
d��	�fd
e	ee�	�fde	de
d��	�fgZ�xZ
S)�
TestFileTypeRc���tt|��dD]R}ttj
j
|j|�dd��5}|j|�ddd��T|jd�y#1swY�pxYw)Nr rfrrg�readonly)
rr�rJrirRrZr[rQrjrq�r�	file_namermrs   �rrJzTestFileTypeR.setUpsp���
�m�T�(�*�'�I��b�g�g�l�l�4�=�=�)�<��G�-�04��
�
�9�%�-�-�(�	
�!�!�*�-�-�-�s�A=�=B	r�r�r�r)r�rznon-existent-file.txtr'N�r�r��
-x foo barrB�
bar -x foo�-x - -r�)rrr rJrsr*r�r�r�rzr��eq_stdinr�r!r"s@rr�r�s����B�.�	�D�(�x�(�(�*�+��F�*��*�*�3�/�0���3�H�	��T��e��-�.�	�r�E�%�L�u�U�|�<�=�	�r�E�%�L�u�U�|�<�=�	�2��x�0�1�	�R�$�U�:�%6�7�8��Irr�c���eZdZ	�fd�Zedejd�d��gZdgZde	e
d��	�fgZ�xZS)
�TestFileTypeDefaultsc����tt|��ttj
j
|jd�dd��}|jd�|j�y)N�goodrfrrg)
rr�rJrirRrZr[rQrjr�)rrmrs  �rrJzTestFileTypeDefaults.setUp5sG���
�"�D�/�1��B�G�G�L�L�����7��w�O���
�
�6���
�
�rr�rzno-file.txt�r�rmrz-c goodr�)r~)
rrr rJrsr*r�r�r�rzr�r�r!r"s@rr�r�3sN���F��	�D�(�x�(�(��-�}�E����t�H��R�%��-�0�1�2�Irr�c	�(��eZdZ	�fd�Zedejd���edejd���gZddgZde	de
d��	�fd
e	e
d�e
d��	�fde	e
d�e
d��	�fd
e	ee�	�fgZ�xZ
S)�TestFileTypeRBc����tt|��dD]R}ttj
j
|j|�dd��5}|j|�ddd��Ty#1swY�_xYw)Nr rfrrg)	rr�rJrirRrZr[rQrjr�s   �rrJzTestFileTypeRB.setUpGs`���
�n�d�)�+�'�I��b�g�g�l�l�4�=�=�)�<��G�-�04��
�
�9�%�-�-�(�-�-�s�A,�,A5	r��rbr�r�rr'Nr�r�rBr�r�)rrr rJrsr*r�r�r�rzr��	eq_bstdinr�r!r"s@rr�r�Ds����B�&�	�D�(�x�(�(��.�/��F�*��*�*�4�0�1����b�z�H�	��T��e��-�.�	�r�E�%�L�u�U�|�<�=�	�r�E�%�L�u�U�|�<�=�	�2�	�	�2�3�	�Irr�c�&�eZdZe�Zd�Zd�Zy)�WFilec��||_yrNr�r�s  rrzWFile.__init__^r�rc�
�||jvr]d}d|jvr|jd�}|j|�|j	�|jj|�|j|jk(S)NzCheck that file is writable.r}r�)r��moder
rjr��addrcr�s   rr�zWFile.__eq__ase����	�	�!�1�D��e�j�j� ��{�{�7�+���K�K����K�K�M��I�I�M�M�%� ��y�y�E�J�J�&�&rN)rrr r`r�rr�r@rrr�r�[s���5�D��'rr�c
�J��eZdZ	�fd�Zedejd���edejd���gZgd�Zde	de
d��	�fd
e	de
d
��	�fde	e
d�e
d��	�fd
e	e
d�e
d��	�fde	ee�	�fgZ�xZ
S)�
TestFileTypeWc�f��t�|��|jd�|jd�y�Nr��writable�rrJrqrn�rrs �rrJzTestFileTypeW.setUpp�(���
��
���!�!�*�-��!�!�*�-rr�rfr�r�)r�rr�r'Nr�rr�rBr�r��rrr rJrsr*r�r�r�rzr��	eq_stdoutr�r!r"s@rrrls����B�.�	�D�(�x�(�(��-�.��F�*��*�*�3�/�0���&�H�	��T��e��-�.�	�R�$�U�:�%6�7�8�	�r�E�%�L�u�U�|�<�=�	�r�E�%�L�u�U�|�<�=�	�2�	�	�2�3��Irrc����eZdZ	�fd�Zedejd���edejd���gZgd�Zde	e
d�e
d	��
�fde	ee�
�fgZ�xZ
S)�
TestFileTypeXc�f��t�|��|jd�|jd�yrrrs �rrJzTestFileTypeX.setUp�rrr�r�r�r�)r�rr�rr�r'rBr�r�r	r"s@rrr�sy���K�.�	�D�(�x�(�(��-�.��F�*��*�*�3�/�0���2�H�	�r�E�%�L�u�U�|�<�=�	�2�	�	�2�3��Irrc	��eZdZ	edej
d���edej
d���gZddgZdede	d���fd	ee	d�e	d
���fdee	d�e	d
���fdee
e
��fgZy)
�TestFileTypeWBr�r�r�r�rr'Nr�r�rBr�r�)rrr rsr*r�r�r�rzr��
eq_bstdoutr�r@rrrr�s���I�	�D�(�x�(�(��.�/��F�*��*�*�4�0�1����b�z�H�	��T��e��-�.�	�r�E�%�L�u�U�|�<�=�	�r�E�%�L�u�U�|�<�=�	�2�
��4�5�	�Irrc��eZdZ	edej
d���edej
d���gZdeed�ed���fd	ee	e	��fgZ
y
)�TestFileTypeXBr��xbr�r�r�r'rBr�r�N)rrr rsr*r�r�rzr�rr�r@rrrr�sn��N�	�D�(�x�(�(��.�/��F�*��*�*�4�0�1���

�r�E�%�L�u�U�|�<�=�	�2�
��4�5��Irrc��eZdZ	d�Zy)�TestFileTypeOpenArgsc
�2�tj}|d�df|dd�df|dd��df|d	d
��df|dd
dd�dfg}tjd�5}|D] \}}|d�|jdg|����"	ddd�y#1swYyxYw)Nr�)r����NNrfrs)rfrsNNr�r�)rfrNr�r�r�rg)r�rr�Nr�l1�strict)rfrrrz
builtins.openr')r*r�rr.�assert_called_with)r�FT�cases�mr�rus      r�test_open_argsz#TestFileTypeOpenArgs.test_open_args�s���
�
�
��
��X�-�.�
��Q�Z�-�.�
��I�
&�(B�C�
��v�
&�(@�A�
��Q��h�
'�)A�B�
���Z�Z��
(�A�#�
��d��U��$��$�$�U�2�T�2�$�)�
(�
(�s�&B
�
BN)rrr rr@rrrr�s
��:�3rrc��eZdZ	d�Zy)�!TestFileTypeMissingInitializationc�.�tj�}|jt�5}|j	dtj
��ddd�|j
tj
�d�tj��y#1swY�@xYw)Nr�r�z: is a FileType class object, instance of it must be passed)	r*r+r��
ValueErrorr�r�r�r�r�r�s   r�testz&TestFileTypeMissingInitialization.test�sq���(�(�*��
�
�
�z�
*�b�����8�+<�+<��=�+�	
���� � �
#������	
�+�
*�s�"B�BN�rrr r#r@rrr r �s���
	
rr c��eZdZ	ede��ede��gZgd�Zdedd��fd	ed
d��fded
d��fgZ	y
)�TestTypeCallablez--eggsr�r�)r��42jz--eggs az	--eggs 2iz--eggs=42 42rgE@)�eggsr�z--eggs 2j -- -1.5y@���z1024.675Ng3333��@)
rrr rs�complexr�r�r�rzr�r@rrr&r&�s^��6�	�H�7�#��F�����5�H�	���$�/�0�	�b�b�t�4�5�	�R�T��1�2��Irr&c��eZdZ	Gd�de�Zede��ede��gZgZdeed�ed��	�fd
eed�ed��	�fgZ	y
)�TestTypeUserDefinedc��eZdZd�Zd�Zy)�TestTypeUserDefined.MyTypec��||_yrN��value�rr1s  rrz#TestTypeUserDefined.MyType.__init__��	���D�Jrc�`�t|�|jft|�|jfk(SrN�r�r1r�s  rr�z!TestTypeUserDefined.MyType.__eq__��'����J��
�
�+��U��U�[�[�/I�I�IrNr�r@rr�MyTyper.��
��	�	Jrr7r�r�r�r{r}r�r��-xf grrfN)
rrr rBr7rsr�r�rzr�r@rrr,r,�sm��2�J��J�	�D�v���F�� ����H�	�2��s��&��+�6�7�	�"�v�c�{����5�6��Irr,c��eZdZ	Gd�d�Zede��ede��gZgZdeed�ed��	�fd
eed�ed��	�fgZy
)�TestTypeClassicClassc��eZdZd�Zd�Zy)�TestTypeClassicClass.Cc��||_yrNr0r2s  rrzTestTypeClassicClass.C.__init__r3rc�`�t|�|jft|�|jfk(SrNr5r�s  rr�zTestTypeClassicClass.C.__eq__r6rNr�r@rr�Cr=r8rr@r�r�r�r{r}r�r�r9rrfN)	rrr r@rsr�r�rzr�r@rrr;r;�sk��#�J�J�	�D�q���F������H�	�2��#��Q�s�V�,�-�	�"�q��v�A�c�F�+�,��Irr;c��eZdZ	d�Zy)�TestTypeRegistrationc��d�}tj�}|jdd|�|jdd��|jdd��|j	|jdj
��tdd�	��|j	|jd
j
��tdd�	��y)Nc��d|zS)Nzmy_type{%s}r@��strings r�get_my_typez.TestTypeRegistration.test.<locals>.get_my_types
�� �6�)�)rr��my_typer�r�rZrz
my_type{1}rnz-x 1 42zmy_type{42})r*r+�registerr�r�r:r�rz)rrGr1s   rr#zTestTypeRegistration.tests���	*��(�(�*������	�;�7����D�y��1����C�i��0�����*�*�3�9�9�;�7��d�l�3�	5�����*�*�9�?�?�+<�=��l�m�<�	>rNr$r@rrrBrBs
��4�
>rrBc��eZdZ	Gd�dej�ZGd�dej�Zeddeed��ed	ee	d
d��gZ
gZd
edd��fdedd��fdedd��fdedd��fgZ
y)�TestActionUserDefinedc��eZdZdd�Zy)�$TestActionUserDefined.OptionalActionNc���	td��}|dvrd|_n|dvrd|_ntd|z��t	|d	|�y#t$r}td|z��d}~wwxYw)
N��?r_)��?rSr�)�@r��	value: %szopt_action failed: %sr�)rzr2�AssertionErrorr�r��rr1�	namespacer1�
option_stringr�r�s       r�__call__z-TestActionUserDefined.OptionalAction.__call__1su��
G�!�d�m���N�*�)*�K�&��e�^�)+�K�&�(��u�)<�=�=�

�I�v�u�-��"�
G�)�*A�A�*E�F�F��
G�s�2A�	A�A�ArN�rrr rWr@rr�OptionalActionrM/s��	.rrYc��eZdZdd�Zy)�&TestActionUserDefined.PositionalActionNc���	td��}|dvrd|_n&|dvrd|_n|dvrd|_ntd	|z��t	|d|�y#t$r}td
|z��d}~wwxYw)Nr��r2)rr�rO)rsrS)r�rPrRzarg_action failed: %sr2)rzr�rSr�r�rTs       rrWz/TestActionUserDefined.PositionalAction.__call__Gs���
G�!��l���H�$�'+�K�$��c�\�',�K�$��c�\�',�K�$�(��u�)<�=�=�

�I�x��/��"�
G�)�*A�A�*E�F�F��
G�s�>A�	A*�A%�%A*rNrXr@rr�PositionalActionr[Es��	0rr^z-sr�rO)r&r�r�rmr2r�r�)r�r�rurmz-s0.125rP)r�r2r�rz
-s 0.625 1rSrsz84 -s2rQr�N)rrr r*�ActionrYr^rsr�r�r�r�rzr�r@rrrKrK,s���4�.����.�,0�8�?�?�0�4	�D�v�n���	&��H�-��C��	,����H�	�B�E�!�,�-�	
�r�t�B�'�(�	�r�u�Q�/�0�	�2�3�r�*�+�	�IrrKc�>�eZdZ	Gd�dej�Zd�Zy)�TestActionRegistrationc��eZdZdd�Zy)�TestActionRegistration.MyActionNc�8�t||jd|z�y)Nzfoo[%s])r�r&)rr1rU�valuesrVs     rrWz(TestActionRegistration.MyAction.__call__rs���I�t�y�y�)�f�*<�=rrNrXr@rr�MyActionrcps��	>rrfc�<�tj�}|jdd|j�|j	dd��|j|j
dg�td���|j|j
dg�td	���y)
Nr��	my_actionr2r�rzfoo[1]r]r�zfoo[42])r*r+rIrfr�r�r:rzr0s  rr#zTestActionRegistration.testus{���(�(�*������+�t�}�}�=����H�[��9�����*�*�C�5�1�2�X�3F�G�����*�*�D�6�2�B�i�4H�IrN)rrr r*r_rfr#r@rrrarams��?�>�8�?�?�>�
Jrrac�F�eZdZeddde��gZdZdegd���fgZy	)
�TestActionExtendr��extendr�)r�rur�r@z--foo f1 --foo f2 f3 f4)�f1�f2�f3�f4rN)	rrr rsr�r�r�rzr�r@rrrjrjs4���G�H�C�c�:����H�	"�B�+C�$D�E��Irrjc����eZdZ	d�Z		dd�Z�fd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z �xZ!S) �TestAddSubparsersc�8�|jtg|��i|��yrN�r�r�rws   r�assertArgumentParserErrorz+TestAddSubparsers.assertArgumentParserError��������-�?��?��?rc�|�|r,tdd|��}|j|ddzdzdd�	�n!tdd�
�}|jddd�	�|jdtd
��ddi}|rd|d<d|d<nd|d<|jd5i|��}|j	t
jd|j�td��}|rd|d<|rddg|d<|jd6i|��}|jdtd��|jd gd!�d"�#�td$��}	|rd%|	d<|jd7i|	��}
|
jd&gd'�d(�#�|
jd)td*d+�,�td-��}|rd.|d<|jd8i|��}|jd/td0��|jd1d2d3�4�|S)9N�PROG�main description)�prog�descriptionrHrr�r'r��foo help�r��help�ryrzr�rB�bar help�r�r}r�F�COMMANDr��commands�title�command helpr}z(cannot have multiple subparser argumentsz
1 description�rzz1 help�1alias1�1alias2�aliasesrXzw helpr�r|�x help�r�r}z
2 descriptionz2 helpr	�rr�r��y helprr�zz help)r�rur}z
3 descriptionz3 help�tzt help�uryzu help�rur}r@�r)r�)r�)r�r�r��add_subparsers�assertRaisesRegexr*�
ArgumentError�dict�
add_parserr�r*)
r�subparser_helprHr�r1�subparsers_kwargs�
subparsers�parser1_kwargs�parser1�parser2_kwargs�parser2�parser3_kwargs�parser3s
             rr�zTestAddSubparsers._get_parser�s���/��);�,�X�F�����Q��!�#�e�+�L�z�
 �
S�0��);�=�F������:�
 �
?������J�	�	0�(��/���+4��i�(�)3��g�&�(6��f�%�*�V�*�*�?�->�?�
����x�5�5�I�%�4�4�	6�
�/�:���%-�N�6�"��)2�I�(>�N�9�%�'�*�'�'�>�~�>�����T��(��;����S�/���I��/�:���%-�N�6�"�'�*�'�'�>�~�>�����T�?���J����S�w�c���I��/�:���%-�N�6�"�'�*�'�'�>�~�>�����S�s���:����S��H��=��
rc�z��t�|��|j�|_|jd��|_y)NT)r�)rrJr�r1�command_help_parserrs �rrJzTestAddSubparsers.setUp�s2���
��
���&�&�(���#'�#3�#3�4�#3�#H�� rc�~�dD]8}|j�}|j|jj|��:y)N)rr�za az0.5 az0.5 1z0.5 1 -yz0.5 2 -w)r�rtr1r:)rr�rus   r�test_parse_args_failuresz*TestAddSubparsers.test_parse_args_failures�s4��1�H��>�>�#�D��*�*�4�;�;�+A�+A�4�H�1rc
�<�|j|jjdj��t	dddd���|j|jjdj��t	dd	d
ddg�
��|j|jjdj��t	dddd���|j|jjdj��t	dddgd����y)N�0.5 1 b -w 7Fr��r}�r'rBrfr�z0.25 --foo 2 -y 2 3j -- -1jTrOr�y@y��)r'rBrZrz--foo 0.125 1 crPr~z-1.5 3 11 -- a --foo 7 -- br)�)r�r�r��--r})r'rBr�r�)r�r1r:r�rzrs r�test_parse_argsz!TestAddSubparsers.test_parse_args�s�������K�K�"�"�>�#7�#7�#9�:��5�c�Q�#�.�	
�	
����K�K�"�"�#@�#F�#F�#H�I��4�T�S�R��I�6�	
�	
����K�K�"�"�#4�#:�#:�#<�=��4�U�d�c�2�	
�	
����K�K�"�"�#@�#F�#F�#H�I��5�d�b�,J�K�	
rc	���|j|jjdj��t	dddd��gf�|j|jjdj��t	dddd��dgf�|j|jjd	j��t	dddd��dgf�|j|jjd
j��t	dddd��ddgf�|j|jjd
j��t	dddd��gd�f�y)Nr�Fr�r�r}r�z0.5 -p 1 b -w 7�-p�0.5 1 b -w 7 -pz0.5 1 b -q -rs -w 7z-qz-rsz0.5 -W 1 b -X Y -w 7 Z)z-Wz-Xr}rz)r�r1�parse_known_argsr�rzrs r�test_parse_known_argsz'TestAddSubparsers.test_parse_known_args�sC������K�K�(�(��)=�)=�)?�@�
�E�s�a�3�
/��4�	
�	
����K�K�(�(�):�)@�)@�)B�C�
�E�s�a�3�
/�$��8�	
�	
����K�K�(�(�):�)@�)@�)B�C�
�E�s�a�3�
/�$��8�	
�	
����K�K�(�(�)>�)D�)D�)F�G�
�E�s�a�3�
/�$���?�	
�	
����K�K�(�(�)A�)G�)G�)I�J�
�E�s�a�3�
/�1G�H�	
rc�t�Gd�d�}|j|jjdj�|��|dgf�|j	|j
d�|j|jd�|j|jd�|j|jd	�y)
Nc��eZdZy)�ETestAddSubparsers.test_parse_known_args_to_class_namespace.<locals>.CN�rrr r@rrr@r�	���rr@r�)rUr�Fr�r�r})	r�r1r�r��assertIsr'rBrfr�)rr@s  r�(test_parse_known_args_to_class_namespacez:TestAddSubparsers.test_parse_known_args_to_class_namespace	s���	�	�����K�K�(�(�):�)@�)@�)B�a�(�P�
���K�	
�	
�
�
�a�e�e�U�#��������$�������a� �������c�"rc	�:�t�}|jd�|jd�|j�}|jd�}|jd�|jd�|j	|jgd��t
dddd���|j	|jgd	��t
dddd���|j|j
gd
��|j	|jgd��t
dddd���|j	|jgd��t
dddd���|j	|jgd
��t
dddd���|j|j
gd��y)Nr�r�rB�--foz--foonew)r�rCrBrC)r�r��fo�foonew)�--foonrCrB)r�rCrB)rBr�rC)rBr�rC)rBr�rC)rBr�rC)r�r�r�r�r�r:rzrt�rr1r�r�s    r�test_abbreviationz#TestAddSubparsers.test_abbreviation	se��+�-�����J�'����J�'��*�*�,�
��'�'��.�����V�$����Z�(�����*�*�+C�D��5��$�t�L�	N�����*�*�+C�D��4��$�t�L�	N��&�&�v�'8�'8�:P�Q�����*�*�+A�B��4���t�L�	N�����*�*�+B�C��4���e�L�	N�����*�*�+C�D��4���e�L�	N��&�&�v�'8�'8�:R�Src���t�}|jdddd��|jdddd��|j|jddg�t	d	d�
�dgf�|j|jddg�t	d	d�
�dgf�|j|jdg�t	d	d�
�dgf�|j|jdg�|j|jd
g�t	dd�
�d
gf�|j|jdg�t	dd�
�dgf�|j|jdg�t	d	d�
�dgf�|j|jdg�|j|jdg�t	d	d�
�dgf�|j|jdg�t	d	d	�
�dgf�|j|jdg�|j|jdg�|j|jdg�|j|jdg�t	d	d	�
�dgf�y)Nz-kz--knownr�rr�r_z--newz-urs)�known�newz-kuz-k=uz-ukz-u=kz	-kunknownz-unknownz
-k=unknownz
-ku=nknownz	-u=nknownz-knewz-ewz-kn=ewz-k-newz-kn-ewz-kne-wz-e-w)r�r�r�r�rzrtr0s  r�-test_parse_known_args_with_single_dash_optionz?TestAddSubparsers.test_parse_known_args_with_single_dash_option"	sR��+�-�����D�)�G�Q��G����D�'�'�1��E�����0�0�$���>��1�!�,�t�f�5�	7�����0�0�$���>��1�!�,�t�f�5�	7�����0�0�%��9��1�!�,�t�f�5�	7��&�&�v�'>�'>���I�����0�0�%��9��1�!�,�u�g�6�	8�����0�0�&��:��1�!�,�v�h�7�	9�����0�0�+��?��1�!�,�z�l�;�	=��&�&�v�'>�'>���O�����0�0�,��@��1�!�,�{�m�<�	>�����0�0�'��;��1�!�,�u�g�6�	8��&�&�v�'>�'>��
�K��&�&�v�'>�'>��
�K��&�&�v�'>�'>��
�K�����0�0�(��<��1�!�,�v�h�7�	9rc��t�}|jdd��|jd��}|jd�}|jd�|j	tddd	�
�|j
dj���y)Nr�r�r�rBr%rrCFr�r�r)r�r�r�r�r�rzr:r�r�s    r�	test_destzTestAddSubparsers.test_dest>	s{��+�-�����G�L��9��*�*��*�6�
��'�'��,�����U�#������3�C�8��*�*�5�;�;�=�9�	;rc��|jdg�}|j|jd�|j|jd�y)N�runr@)r:r��commandrt)rr1�rets   r�_test_required_subparsersz+TestAddSubparsers._test_required_subparsersG	s@�������(��������e�,�	
�&�&�v�'8�'8�"�=rc��t�}|jd��}d|_|jd�|j	|�y)Nr�r%Tr�)r�r�r�r�r��rr1r�s   r�&test_required_subparsers_via_attributez8TestAddSubparsers.test_required_subparsers_via_attributeO	sA��+�-���*�*�	�*�:�
�"�
�����e�$��&�&�v�.rc��t�}|jdd��}|jd�|j|�y)Nr�T�r&r�r�)r�r�r�r�r�s   r�"test_required_subparsers_via_kwargz4TestAddSubparsers.test_required_subparsers_via_kwargV	s;��+�-���*�*�	�D�*�I�
����e�$��&�&�v�.rc��t�}|jd��}|jd�|jd�}|j	|j
�y)Nr�r%r�r@�r�r�r�r:�assertIsNoner��rr1r�r�s    r� test_required_subparsers_defaultz2TestAddSubparsers.test_required_subparsers_default\	sM��+�-���*�*�	�*�:�
����e�$�����#�����#�+�+�&rc�B�t�}|jd��}|jd�|jd�|jt�5}|jd�ddd�|j
jjd�y#1swY�0xYw)NT�r�r'rBr@z8error: the following arguments are required: {foo,bar}
$�	r�r�r�r�r�r:r=r�r��rr1r��excinfos    r�-test_required_subparsers_no_destination_errorz?TestAddSubparsers.test_required_subparsers_no_destination_errord	s���+�-���*�*�D�*�9�
����e�$����e�$�
�
�
�2�
3�w����b�!�4�������$�$�G�	
�4�
3���B�Bc�B�t�}|jd��}|jd�|jd�|jt�5}|jd�ddd�|j
jjd�y#1swY�0xYw)NTr�r'rBr�zPerror: argument {foo,bar}: invalid choice: 'baz' \(choose from 'foo', 'bar'\)\n$r�r�s    r�3test_wrong_argument_subparsers_no_destination_errorzETestAddSubparsers.test_wrong_argument_subparsers_no_destination_errorp	s���+�-���*�*�D�*�9�
����e�$����e�$�
�
�
�2�
3�w����h�'�4�������$�$�_�	
�4�
3�r�c��t�}|jdd��}|jd�|jd�}|j	|j
�y)Nr�Fr�r�r@r�r�s    r�test_optional_subparsersz*TestAddSubparsers.test_optional_subparsers|	sO��+�-���*�*�	�E�*�J�
����e�$�����#�����#�+�+�&rc���|j|jj�d�|j|jj�t	j
d��y)N�)usage: PROG [-h] [--foo] bar {1,2,3} ...
a?            usage: PROG [-h] [--foo] bar {1,2,3} ...

            main description

            positional arguments:
              bar         bar help
              {1,2,3}     command help

            options:
              -h, --help  show this help message and exit
              --foo       foo help
            )r�r1�format_usage�format_help�textwrap�dedentrs r�	test_helpzTestAddSubparsers.test_help�	sQ��������1�1�3�E�	G�������0�0�2�H�O�O�E�5�	rc���|jd��}|j|j�d�|j|j�t	j
d��y)Nz+:-rrz)usage: PROG [-h] [++foo] bar {1,2,3} ...
a?            usage: PROG [-h] [++foo] bar {1,2,3} ...

            main description

            positional arguments:
              bar         bar help
              {1,2,3}     command help

            options:
              -h, --help  show this help message and exit
              ++foo       foo help
            �r�r�r�r�r�r�r0s  r�test_help_extra_prefix_charsz.TestAddSubparsers.test_help_extra_prefix_chars�	s\���!�!�u�!�5������,�,�.�E�	G�����+�+�-�x���@�0�	rc��tdd��}|jddd��|j|j�t	j
d��y)	Nrwrxr~z--non-breakingr�uRhelp message containing non-breaking spaces shall not wrap at non-breaking spacesr|u7            usage: PROG [-h] [--non-breaking]

            main description

            options:
              -h, --help      show this help message and exit
              --non-breaking  help message containing non-breaking spaces shall not
                              wrap at non-breaking spaces
        �r�r�r�r�r�r�r0s  r�test_help_non_breaking_spacesz/TestAddSubparsers.test_help_non_breaking_spaces�	s[��+��%7�9������]�;�	�	<�	
����+�+�-�x���	@�	0
�		rc�R�tdd��}|jdd��|j|j�t	j
d��tdd��}|jdgd�	�|j|j�t	j
d
��y)Nrwrxr~r'z    �r}z�            usage: PROG [-h] foo

            main description

            positional arguments:
              foo         

            options:
              -h, --help  show this help message and exit
        z%(choices)sr�z�            usage: PROG [-h] {}

            main description

            positional arguments:
              {}          

            options:
              -h, --help  show this help message and exit
        r�r0s  r�test_help_blankz!TestAddSubparsers.test_help_blank�	s���+��%7�9�������	�	�	
����+�+�-�x���	@�	0
�		�,��%7�9������2��	�	 �	
����+�+�-�x���	@�	0
�		rc���|jd��}|j|j�d�|j|j�t	j
d��y)NrFrrz)usage: PROG [+h] [++foo] bar {1,2,3} ...
a?            usage: PROG [+h] [++foo] bar {1,2,3} ...

            main description

            positional arguments:
              bar         bar help
              {1,2,3}     command help

            options:
              +h, ++help  show this help message and exit
              ++foo       foo help
            r�r0s  r� test_help_alternate_prefix_charsz2TestAddSubparsers.test_help_alternate_prefix_chars�	s\���!�!�u�!�5������,�,�.�E�	G�����+�+�-�x���@�0�	rc���|j|jj�d�|j|jj�t	j
d��y)Nr�a�            usage: PROG [-h] [--foo] bar {1,2,3} ...

            main description

            positional arguments:
              bar         bar help
              {1,2,3}     command help
                1         1 help
                2         2 help
                3         3 help

            options:
              -h, --help  show this help message and exit
              --foo       foo help
            )r�r�r�r�r�r�rs r�test_parser_command_helpz*TestAddSubparsers.test_parser_command_help�	sU������1�1�>�>�@�E�	G�����1�1�=�=�?�!���*��	rc�~�tdd��}|jddd��|jdd	�
�|jddd
��}|jd�}|jd�}|j	|j�d�|j	|j
�tjd��y)Nrwrxr~r�r�r{r|rBrr��subcommandsr�zadditional text)r�rzr}rr�z'usage: PROG [-h] [--foo] bar {1,2} ...
av            usage: PROG [-h] [--foo] bar {1,2} ...

            main description

            positional arguments:
              bar         bar help

            options:
              -h, --help  show this help message and exit
              --foo       foo help

            subcommands:
              command help

              {1,2}       additional text
            )	r�r�r�r�r�r�r�r�r�)rr1r�r�r�s     r�test_subparser_title_helpz+TestAddSubparsers.test_subparser_title_help
s���+��8J�L�����G�L�z��J����E�
��3��*�*��7E�0A�+�C�
��'�'��,���'�'��,������,�,�.�C�	E�����+�+�-�x���@�0�	rc��|jt�5}|jj|j	��ddd�|j|jj�y#1swY�0xYwrN)r�r�r1r:r�r�r�r�)rr��
expected_helpr�s    r�_test_subparser_helpz&TestAddSubparsers._test_subparser_help!
sT��
�
�
�2�
3�r��K�K�"�"�8�>�>�#3�4�4��������(;�(;�<�4�
3�s�*A/�/A8c�N�|jdtjd��y)Nz5.0 1 -ha            usage: PROG bar 1 [-h] [-w W] {a,b,c}

            1 description

            positional arguments:
              {a,b,c}     x help

            options:
              -h, --help  show this help message and exit
              -w W        w help
            �r�r�r�rs r�test_subparser1_helpz&TestAddSubparsers.test_subparser1_help&
�"���!�!�*�h�o�o�?�/�	rc�N�|jdtjd��y)Nz5.0 2 -ha            usage: PROG bar 2 [-h] [-y {1,2,3}] [z ...]

            2 description

            positional arguments:
              z           z help

            options:
              -h, --help  show this help message and exit
              -y {1,2,3}  y help
            r�rs r�test_subparser2_helpz&TestAddSubparsers.test_subparser2_help4
r�rc	� �|jd��}|j|jdj��t	dddd��gf�|j|jdj��t	dddd��gf�y)	NT�r�z
0.5 1alias1 bFr�r}r�z
0.5 1alias2 b)r�r�r�r�rzr0s  r�test_alias_invocationz'TestAddSubparsers.test_alias_invocationB
s����!�!�$�!�/������#�#�O�$9�$9�$;�<�
�E�s�d�c�
2�B�7�	
�	
����#�#�O�$9�$9�$;�<�
�E�s�d�c�
2�B�7�	
rc�|�|jd��}|j|jdj��y)NTr�z
0.5 1alias3 b)r�rtr:r�r0s  r�test_error_alias_invocationz-TestAddSubparsers.test_error_alias_invocationM
s8���!�!�$�!�/���&�&�v�'8�'8�'6�'<�'<�'>�	@rc��|jdd��}d|_|j|j�t	j
d��y)NT)r�r�a	            usage: PROG [-h] [--foo] bar COMMAND ...

            main description

            positional arguments:
              bar                   bar help

            options:
              -h, --help            show this help message and exit
              --foo                 foo help

            commands:
              COMMAND
                1 (1alias1, 1alias2)
                                    1 help
                2                   2 help
                3                   3 help
            )r��maxDiffr�r�r�r�r0s  r�test_alias_helpz!TestAddSubparsers.test_alias_helpR
sH���!�!�$�t�!�D���������+�+�-�x���@�0�	r)FNF)"rrr rtr�rJr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrr!r"s@rrqrq�s����(�@�>B�!�7�rI�
I�
�&
�,
#�T�,9�8;�>�/�/�'�

�

�'��"�&�$ �D�$�*�<=�
��	
�@�
rrqc� �eZdZ	d�Zd�Zd�Zy)�TestPositionalsGroupsc��t�}|jd�|jd�}|jd�|jd�tddd��}|j	d	j��}|j
||�y)
Nr'rfrBrCrr�r�r��1 2 3)r�r�r�rzr:r�r��rr1r��expectedr�s     r�test_nongroup_firstz)TestPositionalsGroups.test_nongroup_firstp
sx��+�-�����E�"��)�)�#�.��
���5�!����E�"��#�3�C�0���"�"�7�=�=�?�3������6�*rc��t�}|jd�}|jd�|jd�|jd�tddd��}|j	d	j��}|j
||�y)
N�xxxr'rBrCrr�r�r�r	�r�r�r�rzr:r�r�r
s     r�test_group_firstz&TestPositionalsGroups.test_group_firstz
sx��+�-���)�)�%�0��
���5�!����E�"����E�"��#�3�C�0���"�"�7�=�=�?�3������6�*rc�d�t�}|jd�}|jd�|jd�|jd�|jd�}|jd�tddd	d
��}|j	dj��}|j
||�y)
Nrr'rBrCr�frellrr�r�rd)r'rBrCrz1 2 3 4rr
s     r�test_interleaved_groupsz-TestPositionalsGroups.test_interleaved_groups�
s���+�-���)�)�%�0�����E�"�
���5�!����E�"��)�)�%�0��
���7�#��#�3�C�s�;���"�"�9�?�?�#4�5������6�*rN)rrr rrrr@rrrrm
s��J�+�+�
+rrc�t��eZdZ	d�Z�fd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Z�xZS)�TestParentParsersc�8�|jtg|��i|��yrNrsrws   rrtz+TestParentParsers.assertArgumentParserError�
rurc���t�|��td��|_|jj	d�|jjd�}|j	d�|jj	d�td��|_|jj	d�|jj	d�|jjd	�}|j	d
�td��|_|jj	d�td��|_|jj	d�td��|_	|jj�}|j	dd�
�|j	dd�
�tjjtjd�|_y)NF�rIz--wr�r	rr�r�r~z--dr�r�r�r)rrJr��wxyz_parentr�r��abcd_parent�w_parent�z_parent�ab_mutex_parent�add_mutually_exclusive_grouprRrZ�basenamer�r��main_program)r�x_group�c_groupr�rs    �rrJzTestParentParsers.setUp�
sb���
��
��5�u�E������%�%�e�,��"�"�5�5�c�:�����T�"����%�%�c�*�5�u�E������%�%�c�*����%�%�d�+��"�"�5�5�c�:�����U�#�2�E�B��
��
�
�"�"�5�)�2�E�B��
��
�
�"�"�3�'� :�5�I����$�$�A�A�C��
���4���5�
���4���5��G�G�,�,�S�X�X�a�[�9��rc��t|jg��}|j|jdj	��tddd���y)N��parentsz-y 1 2 --w 3r�rr��rfrZr)r�rr�r:r�rzr0s  r�test_single_parentz$TestParentParsers.test_single_parent�
sE��+�T�5E�5E�4F�G������*�*�>�+?�+?�+A�B��c�S�C�0�	2rc��|j|jj�t|jg��}|j|j�y�Nr$)�_test_mutex_abrr:r�r0s  r�test_single_parent_mutexz*TestParentParsers.test_single_parent_mutex�
sC�����D�0�0�;�;�<�+�T�5I�5I�4J�K�����F�-�-�.rc��|jg}td|��}t|g��}|j|j�y)NF)rIr%r$)rr�r*r:�rr%r1s   r�test_single_granparent_mutexz.TestParentParsers.test_single_granparent_mutex�
s<���'�'�(��+�U�G�L��+�V�H�=�����F�-�-�.rc��|j|g�tdd���|j|dg�tdd���|j|dg�tdd���|j|ddg�|j|ddg�|j|dg�|j|ddg�|j|ddg�y)NF�r�r}r�Tr�r�)r�rzrt)rr:s  rr*z TestParentParsers._test_mutex_ab�
s�������B���e�u�)=�>�����T�F�+�R�$�%�-@�A�����T�F�+�R�%�4�-@�A��&�&�z�D�$�<�@��&�&�z�D�$�<�@��&�&�z�D�6�:��&�&�z�D�$�<�@��&�&�z�D�$�<�@rc���|j|jg}t|��}|j|j	dj��t
dddddd���y)Nr$z--d 1 --w 2 3 4r�rr�rd)r�r}r�rfrZr)rrr�r�r:r�rzr-s   r�test_multiple_parentsz'TestParentParsers.test_multiple_parents�
sZ���#�#�T�%5�%5�6��+�G�<������*�*�+<�+B�+B�+D�E��c�T�S�C�4�3�G�	Irc
�n�|j|jg}t|��}|j|j	dj��t
ddddd���|j|jdj��|j|jd	j��y)
Nr$z
-a --w 2 3TFr�r�)r�r}rfrZrz
-a --w 2 3 -bz
-a -b --w 2 3)rrr�r�r:r�rzrtr-s   r�test_multiple_parents_mutexz-TestParentParsers.test_multiple_parents_mutex�
s����'�'��)9�)9�:��+�G�<������*�*�<�+=�+=�+?�@��d�e�s�d�c�B�	D��&�&�����4�4�6�	8��&�&�����4�4�6�	8rc��|jtjtj|j|j
g��yr))r�r*r�r+rrrs r�test_conflicting_parentsz*TestParentParsers.test_conflicting_parents�
s9������"�"��#�#��]�]�D�$4�$4�5�	�	7rc��|jtjtj|j|j
g��yr))r�r*r�r+rrrs r�test_conflicting_parents_mutexz0TestParentParsers.test_conflicting_parents_mutex�
s;������"�"��#�#��%�%�t�';�';�<�	�	>rc���|j|jg}t|��}|j|j	dj��t
ddd���y)Nr$rr�r&)rrr�r�r:r�rzr-s   r�test_same_argument_name_parentsz1TestParentParsers.test_same_argument_name_parents�
sM���#�#�T�]�]�3��+�G�<������*�*�5�;�;�=�9��d�d�c�2�	4rc	��t�}|j�}|jd|jg��}|j	d�|j|j
dj��tdddd�	��y)
NrBr$r�zbar -b 1 --d 2 3 4r�rr�rd)r�r}r�r�)	r�r�r�rr�r�r:r�rz)rr1r��abcde_parsers    r�test_subparser_parentsz(TestParentParsers.test_subparser_parents�
sw��+�-���*�*�,�
�!�,�,�U�T�=M�=M�<N�,�O���!�!�#�&�����*�*�+?�+E�+E�+G�H��c�S�C�3�7�	9rc���t�}|j�}|jg}|jd|��}|j	d�}|jd�|j|jg}|jd|��}|jd�|j|jdj��tdd	d
���|j|jdj��td	dd
ddd
���|j|jdj��|j|jdj��y)Nr'r$r"r~rBr�zfoo -a 4TFrdr|zbar -b  --w 2 3 4r�r�)r�r}rfrZrr�zfoo -a -b 4zbar -b -a 4)r�r�rr�r�r�rr�r:r�rzrt)rr1r�r%�
abc_parserr"�wxyzabe_parsers       r�test_subparser_parents_mutexz.TestParentParsers.test_subparser_parents_mutex�
s>��+�-���*�*�,�
��'�'�(���*�*�5�'�*�B�
��/�/�	�:�����S�!��#�#�T�%9�%9�:��#�.�.�u�g�.�F���#�#�C�(�����*�*�:�+;�+;�+=�>��d�e�s�3�	5�����*�*�+>�+D�+D�+F�G��e�t�s�d�c�S�I�	K��&�&����}�2�2�4�	6��&�&����}�2�2�4�	6rc	��|j|jg}t|��}|j�}|j}|j|t
jdj||rdnd���y)Nr$aG            usage: {}{}[-h] [-b B] [--d D] [--w W] [-y Y] a z

            positional arguments:
              a
              z

            options:
              -h, --help  show this help message and exit
              -b B
              --w W

            c:
              --d D

            x:
              -y Y
        � r)	rrr�r�r r�r�r��format)rr%r1�parser_help�prognames     r�test_parent_helpz"TestParentParsers.test_parent_help
sm���#�#�T�%5�%5�6��+�G�<���(�(�*���$�$������h�o�o�7�"
�F�8�H�S�"�6�#'8�	9rc	���td��}|jdd��}|jd�|jd�|j�}|jd�|jd	�t|g�
�}|j	t
|jgd��|j�}|j}|j|tjdj||rd
nd���y)NFrrf�gd�r�rzrXr�r	rr$)r	r}rrzz�            usage: {}{}[-h] [-w W] [-x X] [-y Y | -z Z]

            options:
              -h, --help  show this help message and exit
              -y Y
              -z Z

            g:
              gd

              -w W
              -x X
        rCr)
r�r�r�rr�r�r:r�r r�r�r�rD)r�parentrfrr1rErFs       r�test_groups_parentsz%TestParentParsers.test_groups_parents%s���+�U�;���%�%�C�T�%�B��	���t��	���t���/�/�1��	���t��	���t��+�V�H�=�����-�v�/@�/@�"�	$��(�(�*���$�$������h�o�o�
7�
�F�8�H�S�"�6�
'8�
	9r)rrr rtrJr'r+r.r*r2r4r6r8r:r=rArGrLr!r"s@rrr�
sT���?�@�:�82�
/�
/�A�I�8�7�>�4�9�6�&9�09rrc�*�eZdZd�Zd�Zd�Zd�Zd�Zy)� TestMutuallyExclusiveGroupErrorsc�b�t�}|j}|t|jd��y)Nr')r�)r�r�r�r)rr1�raisess   r�test_invalid_add_argument_groupz@TestMutuallyExclusiveGroupErrors.test_invalid_add_argument_groupIs'��+�-���"�"���y�&�=�=�U�Krc� �t�}|j�}|j}|j}|t|dd��|t|d�|t|dd��|t|dd��|t|dt
j��y)Nr�Tr�rBr�rtrs)r�rr�r�r"r*�PARSER)rr1r�r�rPs     r�test_invalid_add_argumentz:TestMutuallyExclusiveGroupErrors.test_invalid_add_argumentNsv��+�-���3�3�5���)�)���"�"���z�<��4�@��z�<��/��z�<��c�:��z�<��a�8��z�<��h�o�o�Frc�^�td��}|j�}|jdd��|jdd��|j�}|jdd��|jd	d��d
}|j|j	�tj|��y)Nrw�ryr�r�r�r-r�z--soupz--nutsz�            usage: PROG [-h] [--foo | --bar] [--soup | --nuts]

            options:
              -h, --help  show this help message and exit
              --foo
              --bar
              --soup
              --nuts
              )r�rr�r�r�r�r�)rr1�group1�group2rs     rr�z*TestMutuallyExclusiveGroupErrors.test_helpYs���+��8���4�4�6�����G�L��9����G�M��:��4�4�6�����H�\��:����H�]��;�	��	
����+�+�-�x���x�/H�Irc	���d|_td��}|jdd��}|jd�}|j	�}|jddtj�	�|jd
dtj�	�d}d}|j|�d
|�d|�d|�d|�d�	}|j|j�tj|��y)NrwrVr�r�)r�r&r'r^r�r|z--quietz�--longlonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglongڀLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGz>            usage: PROG foo [-h]
                            [rCzj]

            options:
              -h, --help            show this help message and exit
              z
              )rr�r�r�rr�r*r�r�r�r�r�)rr1r��cmd_foor��longopt�longmetars        r�Ctest_help_subparser_all_mutually_exclusive_group_members_suppressedzdTestMutuallyExclusiveGroupErrors.test_help_subparser_all_mutually_exclusive_group_members_suppressedms������+��8���(�(�z�	�(�J���%�%�e�,���4�4�6��
���;�|�(�BS�BS��T�
���9�\��@Q�@Q��R�"�������W�%��%�Y�a��z�2��i�q��
�#�
��	
����,�,�.�����0I�Jrc���tj�}|j�}|jt�5|jdg�ddd�y#1swYyxYw)Nr4)r*r+rr�r"r:�rr1r�s   r�test_empty_groupz1TestMutuallyExclusiveGroupErrors.test_empty_group�sH���(�(�*���3�3�5��
�
�
�z�
*����t�f�%�+�
*�
*�s�A�AN)rrr rQrTr�r^rar@rrrNrNGs��L�
	G�J�(K�*&rrNc�<�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
y	)
�MEMixinc��|jd��j}t}|jD]>}|j	|��5|j|||j
��ddd��@y#1swY�KxYw�NFr�r���
get_parserr:r�r�r;r�r��rr:r��args_strings    r�test_failures_when_not_requiredz'MEMixin.test_failures_when_not_required�sc���_�_�e�_�4�?�?�
�#���=�=�K����;��/��!�!�%��[�5F�5F�5H�I�0�/�)�/�/�s�"A1�1A:	c��|jd��j}t}|jdgzD]>}|j	|��5|j|||j
��ddd��@y#1swY�KxYw)NTr�rr�rfrhs    r�test_failures_when_requiredz#MEMixin.test_failures_when_required�sj���_�_�d�_�3�>�>�
�#���=�=�B�4�/�K����;��/��!�!�%��[�5F�5F�5H�I�0�/�0�/�/�s�"A5�5A>	c� �|jd��j}|j|jz}|D]H\}}|j	|��5||j��}|j
||�ddd��Jy#1swY�UxYwre)rgr:r��successes_when_not_requiredr;r�r�)rr:r�rir��	actual_nss      r� test_successes_when_not_requiredz(MEMixin.test_successes_when_not_required�s{���_�_�e�_�4�?�?�
��N�N�T�%E�%E�E�	�(1�$�K�����;��/�&�{�'8�'8�':�;�	�� � ��K�8�0�/�)2�/�/�s�)B�B
	c��|jd��j}|jD]H\}}|j|��5||j	��}|j||�ddd��Jy#1swY�UxYw)NTr�r�)rgr:r�r;r�r�)rr:rir�ros     r�test_successes_when_requiredz$MEMixin.test_successes_when_required�sk���_�_�d�_�3�>�>�
�(,���$�K�����;��/�&�{�'8�'8�':�;�	�� � ��K�8�0�/�)7�/�/�s�)A5�5A>	c��|jd��j}|j}|j|�t	j
|��y�NFr�)rgr��usage_when_not_requiredr�r�r��rr��expected_usages   r�test_usage_when_not_requiredz$MEMixin.test_usage_when_not_required�s>�������6�C�C���5�5�����������)H�Irc��|jd��j}|j}|j|�t	j
|��y�NTr�)rgr��usage_when_requiredr�r�r�rvs   r�test_usage_when_requiredz MEMixin.test_usage_when_required�s>�������5�B�B���1�1�����������)H�Irc���|jd��j}|j|jz}|j	|�tj|��yrt)rgr�rur}r�r�r��rr�r}s   r�test_help_when_not_requiredz#MEMixin.test_help_when_not_required�sG���o�o�u�o�5�A�A���+�+�d�i�i�7�����������(=�>rc���|jd��j}|j|jz}|j	|�tj|��yrz)rgr�r{r}r�r�r�r~s   r�test_help_when_requiredzMEMixin.test_help_when_required�sG���o�o�t�o�4�@�@���'�'�$�)�)�3�����������(=�>rN)rrr rjrlrprrrxr|rr�r@rrrcrc�s.��J�J�9�9�J�
J�
?�
?rrcc��eZdZdd�ZddgZdedd��fded	d��fd
edd��fdedd	��fgZd
edd��fgZdZdZ	dZ
y)�TestMutuallyExclusiveSimpleNc��td��}|j|��}|jdd��|jddd	d
��|S)NrwrVr�r-rr�rcr�rz�baz help)rurr}�r�rr��rr�r1r�s    rrgz&TestMutuallyExclusiveSimple.get_parser�sN��+��8���3�3�X�3�F��
���7���4�
���7�#�S�z��J��
r�--bar X --baz Yz
--bar X --baz�--bar Xr4�rBrCz--bar X --bar Zrz�--baz Yr}rcrz;        usage: PROG [-h] [--bar BAR | --baz [BAZ]]
        z;        usage: PROG [-h] (--bar BAR | --baz [BAZ])
        z�
        options:
          -h, --help   show this help message and exit
          --bar BAR    bar help
          --baz [BAZ]  baz help
        rN�rrr rgr�rzr�rnrur{r}r@rrr�r��s����"�?�3�H�	�B�3�D�)�*�	�B�3�D�1�2�	�B�4�S�)�*�	�"��3�'�(�	�I�
�R�D�d�
#�$�#�������Drr�c
��eZdZdd�ZdgZdedddd��fdedddd��fd	edddd��fd
edddd��fgZdedddd��fgZdZd
Z	dZ
y)�TestMutuallyExclusiveLongNc���td��}|jdd��|jdd��|j|��}|jd	d
��|jdd��|S)
NrwrVz--abcdez
abcde helpr�z--fghijz
fghij helpr�z--klmnoz
klmno helpz--pqrstz
pqrst help�r�r�rr�s    rrgz$TestMutuallyExclusiveLong.get_parser�sp��+��8�����I�L��9����I�L��9��3�3�X�3�F��
���9�<��8�
���9�<��8��
rz--klmno X --pqrst Yz	--klmno Xr4)�abcde�fghij�klmno�pqrstz--abcde Y --klmno Xr}z	--pqrst Xz--pqrst X --fghij Yrzi    usage: PROG [-h] [--abcde ABCDE] [--fghij FGHIJ]
                [--klmno KLMNO | --pqrst PQRST]
    zi    usage: PROG [-h] [--abcde ABCDE] [--fghij FGHIJ]
                (--klmno KLMNO | --pqrst PQRST)
    z�
    options:
      -h, --help     show this help message and exit
      --abcde ABCDE  abcde help
      --fghij FGHIJ  fghij help
      --klmno KLMNO  klmno help
      --pqrst PQRST  pqrst help
    rNr�r@rrr�r��s����&�&�H�	�b�t�4�s�$�G�H�	��S��C�t�<�	>�	�b�t�4�t�3�G�H�	��T��D��<�	>��I�
�R�d�$�d�$�
?�@�#�������Drr�c��eZdZd�ZdgZdedd��fdedd��fd	ed
d��fgZded
d��fgZd
ZdZ	dZ
y
)�$TestMutuallyExclusiveFirstSuppressedc��td��}|j|��}|jdtj��|jddd�	�|S)
NrwrVr�r�r�r	r�r�r|�r�rr�r*r�r�s    rrgz/TestMutuallyExclusiveFirstSuppressed.get_parser
sR��+��8���3�3�X�3�F��
���4�h�&7�&7��8�
���4�
�H��E��
rz-x X -yz-x Xr4Trnz	-x X -x Yr}r	NFrz&        usage: PROG [-h] [-y]
        z$        usage: PROG [-h] -y
        zm
        options:
          -h, --help  show this help message and exit
          -y          y help
        r�r@rrr�r�st����{�H�	��c�T�"�#�	�b�3�$�'�(�	
�r�D�E�"�#��I�
�R�$�$�
� �#�������Drr�c	��eZdZd�Zgd�Zdeddd��fdeddd��fd	eddd
��fdeddd��fgZdeddd��fgZd
xZZ	dZ
y)�#TestMutuallyExclusiveManySuppressedc���td��}|j|��}|j}|ddtj��|ddtj��|d	tj�
�|S)NrwrVr��--spamr�r|r,r�z	--bladderr�r�)rr�r1r�rs     rrgz.TestMutuallyExclusiveManySuppressed.get_parser.sc��+��8���3�3�X�3�F��� � ���H�\��0A�0A�B��J�}�8�3D�3D�E��K�h�/�/�0��
r)z--spam --badgerz--badger --bladder Bz--bladder B --spamr�TN)r�r2�bladderr,Fz--bladder Br@z
--spam --spamrz!        usage: PROG [-h]
        �P
        options:
          -h, --help  show this help message and exit
        �rrr rgr�rzr�rnr{rur}r@rrr�r�,s�����H�
�2�4��d�;�<�	�R�U�5�$�?�@�	���d�C�@�A�	�"�$�t�T�B�C�	�I�
�R�U�4��
6�7�#��5���1��Drr�c
��eZdZd�Zgd�Zdeddg��fdedd	g��fd
eddd
g��fdeddgd���fgZd
eddg��fgZdZdZ	dZ
y)�*TestMutuallyExclusiveOptionalAndPositionalc��td��}|j|��}|jddd��|jdd	�
�|jddd
��|S)NrwrVr�r�r��FOOr|r��SPAMr�r2r��BADGERr�r�r�s    rrgz5TestMutuallyExclusiveOptionalAndPositional.get_parserRsa��+��8���3�3�X�3�F��
���7�<�e��D�
���8�&��1�
���8�3�X��>��
r)z--foo --spam Sz
--spam S XzX --foozX Y Z --spam S�	--foo X Yr�TN)r'r�r2z--spam SF�Sr4zX Y Z)r4r}rzrzD        usage: PROG [-h] [--foo | --spam SPAM | badger ...]
        zD        usage: PROG [-h] (--foo | --spam SPAM | badger ...)
        z�
        positional arguments:
          badger       BADGER

        options:
          -h, --help   show this help message and exit
          --foo        FOO
          --spam SPAM  SPAM
        r�r@rrr�r�Ps�����H�
�"��D��4�5�	�R�E��B�7�8�	�b�U��s�e�4�5�	�"��T�/�B�C�	�I�
�R�E��R�
0�1�#������	�Drr�c
�*�eZdZd�Zgd�Zdeddddd��fdeddddd��fdeddddd��fd	eddddd��fd
eddddd��fdeddddd��fgZdeddddd��fd
eddddd��fdeddddd��fgZdxZZ	dZ
y)�#TestMutuallyExclusiveOptionalsMixedc�
�td��}|jddd��|j|��}|jddd	��|jd
dd��|jddd
��|jddd��|S)NrwrVr�r�r�r|r�r��a helpr��b helpr	r�r��c helpr�r�s    rrgz.TestMutuallyExclusiveOptionalsMixed.get_parsers���+��8�����D��H��E��3�3�X�3�F��
���4��8��D�
���4��8��D����D��H��E�
���4��8��D��
r)z-a -b�-b -cz-a -cz-a -b -cr�TF�r�r}r~r�rZr�r�z-a -xz-y -bz-x -y -crr�r	z:        usage: PROG [-h] [-x] [-a] [-b] [-y] [-c]
        z�
        options:
          -h, --help  show this help message and exit
          -x          x help
          -a          a help
          -b          b help
          -y          y help
          -c          c help
        Nr�r@rrr�r�}s����7�H�	
�r�D�E�U�e�u�=�>�	
�r�E�T�U�e�u�=�>�	
�r�E�U�d�e�u�=�>�	�"�t�u����?�@�	�"�u����$�?�@�	�R�%�5�D�D�D�A�B�
�I�
�R�%�5�E�U�e�
<�=�	
�r�E�U�e�t�u�=�>�	
�r�E�U�e�u��=�>�#��5���1�	�Drr�c�r�eZdZdd�ZddgZdedd��fdedd	��fgZd
edd��fgZdZdZ	d
Z
y)�TestMutuallyExclusiveInGroupNc��td��}|jdd��}|j|��}|jdd�	�|jd
d�	�|S)NrwrVzTitled groupzGroup descriptionrJr�r-rr�rcr�)r�r�rr�)rr�r1�titled_group�mutex_groups     rrgz'TestMutuallyExclusiveInGroup.get_parser�sk��+��8���0�0� �.A�1�C��
�5�5�x�5�H�	�� � ��z� �:�� � ��z� �:��
rr�z--baz X --bar Yr�r4r�r�r}rz9        usage: PROG [-h] [--bar BAR | --baz BAZ]
        z9        usage: PROG [-h] (--bar BAR | --baz BAZ)
        z�
        options:
          -h, --help  show this help message and exit

        Titled group:
          Group description

          --bar BAR   bar help
          --baz BAZ   baz help
        rNr�r@rrr�r��si���"�#4�5�H�	�B�3�D�)�*�	�B�4�S�)�*��I�

�R�D�d�
#�$�#������
�Drr�c���eZdZd�Zgd�Zdeddddd��fded	d
ddd��fded	dd
dd��fdeddddd
��fd
ed	d
ddd
��fgZded	dddd��fded	dddd
��fgZdxZZ	dZ
y	)�1TestMutuallyExclusiveOptionalsAndPositionalsMixedc��td��}|jdd��|jddd�	�|j|�
�}|jddd
��|jddd�	�|jddd�	�|S)NrwrVr�r�r�r	r�r�r|r�r�r�r�r�r�r�r�r�r�r�s    rrgz<TestMutuallyExclusiveOptionalsAndPositionalsMixed.get_parser�s���+��8�����C�h��/����D��H��E��3�3�X�3�F��
���3�c���9�
���4��8��D�
���4��8��D��
r)zX A -br�z-c X AzX Ar{Fr4r�zX -bNTzX -czX A -yzX -y -bzX -yz6        usage: PROG [-h] [-y] [-b] [-c] x [a]
        a
        positional arguments:
          x           x help
          a           a help

        options:
          -h, --help  show this help message and exit
          -y          y help
          -b          b help
          -c          c help
        r�r@rrr�r��s����-�H�	��S�E�U�c�U�;�<�	��d�d�e�s�e�<�=�	��d�e�t�s�e�<�=�	�2��u����=�>�	�B����#��>�?��I�

�b�4�5�E�S�E�:�;�	��d�e�u��t�<�=�#��
5���1��Drr�c�.�eZdZd�ZdZdZdZdZdZdZ	dZ
y)�TestMutuallyExclusiveNestedc�b�td��}|j|��}|jd�|jd�tj�5tj
dt�|j|��}ddd�jd�|jd�tj�5tj
dt�|j|��}ddd�jd	�|jd
�|S#1swY��xYw#1swY�9xYw)NrwrVr�r�r�r�r�r�r�r)r�rr��warnings�catch_warnings�simplefilterr�)rr�r1r�rX�group3s      rrgz&TestMutuallyExclusiveNested.get_parser�s���+��8���3�3�X�3�F��
���4� �
���4� �
�
$�
$�
&��!�!�(�,>�?��7�7��7�J�F�'�	���D�!����D�!�
�
$�
$�
&��!�!�(�,>�?��8�8�(�8�K�F�'�	���D�!����D�!��
�'�
&��
'�
&�s�-D�-D%�D"�%D.zO        usage: PROG [-h] [-a A | -b B | [-c C | -d D | [-e E | -f F]]]
        zO        usage: PROG [-h] (-a A | -b B | (-c C | -d D | (-e E | -f F)))
        z�
        options:
          -h, --help  show this help message and exit
          -a A
          -b B
          -c C
          -d D
          -e E
          -f F
        N)rrr rgrur{r}rjrlrprrr@rrr�r��s8���"����
�D�'+�#�"&��'+�$�#'� rr�c��eZdZdd�ZddgZdedd��fdedd��fd	edd��fgZd
edd��fgZdZdZ	d
Z
y)�%TestMutuallyExclusiveOptionalOptionalNc��td��}|j|��}|jd�|jdd��|S)NrwrVr�r�r-r�rtr�r�s    rrgz0TestMutuallyExclusiveOptionalOptional.get_parser+
sE��+��8���3�3�X�3�F��
���7�#�
���7�#��.��
r�--foo X --bar Yz
--foo X --bar�--foo Xr4r r�r-rz;        usage: PROG [-h] (--foo FOO | --bar [BAR])
        z;        usage: PROG [-h] [--foo FOO | --bar [BAR]]
        z{
        options:
          -h, --help   show this help message and exit
          --foo FOO
          --bar [BAR]
        rNr�r@rrr�r�*
s|���	���H�

�B�3�D�)�*�	�B�4�S�)�*�	�"��4�(�)��I�
�R�D�d�
#�$�#�������Drr�c��eZdZdd�ZddgZdedd��fd	edd��fd
edd��fgZdedd��fgZd
ZdZ	dZ
y)�(TestMutuallyExclusiveOptionalWithDefaultNc��td��}|j|��}|jd�|jdtd��|S)NrwrVr�r�r-Tr��r�rr�r�r�s    rrgz3TestMutuallyExclusiveOptionalWithDefault.get_parserN
sG��+��8���3�3�X�3�F��
���7�#�
���7��t��<��
rr�z--foo X --bar=r�r4Tr r�z--bar=Frz9        usage: PROG [-h] (--foo FOO | --bar BAR)
        z9        usage: PROG [-h] [--foo FOO | --bar BAR]
        zx
        options:
          -h, --help  show this help message and exit
          --foo FOO
          --bar BAR
        rNr�r@rrr�r�M
s|���	���H�

�B�3�D�)�*�	�B�4�T�*�+�	�2�$�E�*�+��I�
�R�D�d�
#�$�#�������Drr�c�p�eZdZdd�ZdgZdedd��fdedd��fgZdedd��fgZd	Zd
Z	dZ
y)
�*TestMutuallyExclusivePositionalWithDefaultNc��td��}|j|��}|jd�|jddtd��|S)	NrwrVr�r�rBr�Trr�r�s    rrgz5TestMutuallyExclusivePositionalWithDefault.get_parserq
sI��+��8���3�3�X�3�F��
���7�#�
���5��$���E��
rr�r�r4Tr rz3        usage: PROG [-h] (--foo FOO | bar)
        z3        usage: PROG [-h] [--foo FOO | bar]
        z�
        positional arguments:
          bar

        options:
          -h, --help  show this help message and exit
          --foo FOO
        rNr�r@rrr�r�p
sj���	��H�
�B�3�D�)�*�	�b�T�t�$�%��I�

�R�D�d�
#�$�#�������Drr�c� ��eZdZd�fd�	Z�xZS)�MEPBasec�b��tt|�|��}t|jd|g��}|S)Nr�F)ryrIr%)rr�rgr�ry)rr�rKr1rs    �rrgzMEPBase.get_parser�
s4����w��0�(�0�C��+����u�v�h�@���
rrN)rrr rgr!r"s@rr�r��
s
����rr�c��eZdZy)�&TestMutuallyExclusiveGroupErrorsParentNr�r@rrr�r��
���rr�c��eZdZy)�!TestMutuallyExclusiveSimpleParentNr�r@rrr�r��
r�rr�c��eZdZy)�TestMutuallyExclusiveLongParentNr�r@rrr�r��
r�rr�c��eZdZy)�*TestMutuallyExclusiveFirstSuppressedParentNr�r@rrr�r��
r�rr�c��eZdZy)�)TestMutuallyExclusiveManySuppressedParentNr�r@rrr�r��
r�rr�c��eZdZy)�0TestMutuallyExclusiveOptionalAndPositionalParentNr�r@rrr�r��
r�rr�c��eZdZy)�)TestMutuallyExclusiveOptionalsMixedParentNr�r@rrr�r��
r�rr�c��eZdZy)�7TestMutuallyExclusiveOptionalsAndPositionalsMixedParentNr�r@rrr�r��
r�rr�c�6�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	y)	�TestSetDefaultsc
�
�t�}|jd��|jdd��|jtddd��|j	g��|jtddd��|j	gt���|jtddd��|j	gtd����|jtddd��|j	gtdd�	���y)
Nr'r�rBrs)rZrrYrCr�)r�r�r��set_defaultsr�rzr:r0s  r�test_set_defaults_no_argsz)TestSetDefaults.test_set_defaults_no_args�
s���+�-�����e��$����e�q��)�����e�u��2��*�*�2�.�	0�����e�u��2��*�*�2�r�t�4�	6�����e�u��2��*�*�2�r�E�{�;�	=�����e�u��2��*�*�2�r�E�Q�/?�@�	Brc	��t�}|jdd��|jdd��|jt	dd��|jg��|jt	dd��|jgt	���|jt	dd��|jgt	d����|jt	d	d��|jd
j
���|jt	d	d��|jd
j
�t	���|jt	d	d��|jd
j
�t	d����y)Nr'rBrnr��xfooxrlrCr�rr�)r�r�r�r�rzr:r�r0s  r�test_set_defaults_with_argsz+TestSetDefaults.test_set_defaults_with_args�
s6��+�-�����e�u��-����D�'��2�����g��/��*�*�2�.�	0�����g��/��*�*�2�r�t�4�	6�����e�u�-��*�*�2�r�E�{�;�	=�����c�U�+��*�*�6�<�<�>�:�	<�����c�U�+��*�*�6�<�<�>�2�4�@�	B�����c�U�+��*�*�6�<�<�>�2��;�G�	Irc��t�}|jd��|j�}|jd�}|jd��|j	tdd��|j
dj���y)Nr'r�r�rBr�rn)r�r�r�r�r�rzr:r�)rr1r��parser_as    r�test_set_defaults_subparsersz,TestSetDefaults.test_set_defaults_subparsers�
su��+�-�����e��$��*�*�,�
��(�(��-�������&�����e�u�-��*�*�3�9�9�;�7�	9rc��td��}|jd��t|g��}|jtd��|j	g��y)NFrr'r�r$r�)rrKr1s   r�test_set_defaults_parentsz)TestSetDefaults.test_set_defaults_parents�
sH��+�U�;�����e��$�+�V�H�=������e��f�&7�&7��&;�<rc�
�tj�}|j�jd�}|j	d��|j	d��|jt
d��|jdg��y)Nr4rsrr�)r*r+r�r�r�r�rzr:)rr1�xparsers   r�)test_set_defaults_on_parent_and_subparserz9TestSetDefaults.test_set_defaults_on_parent_and_subparser�
sl���(�(�*���'�'�)�4�4�S�9�������"������#�������F�$5�$5�s�e�$<�=rc��t�}|jdddd��|jd�|jdd�	�|jd
d��|jd
dd��|jt	dddd��|jg��|jdddd��|jt	dddd��|jg��y)N�Wr4r}rzr�rXr��XXrlrZr�rtr�ZZr��WW�YY)r�r�r�r�rzr:r0s  r�&test_set_defaults_same_as_add_argumentz6TestSetDefaults.test_set_defaults_same_as_add_arguments���+�-�����c�S�C�3��7����D�!����D�$��/����C�s��+����C�s�D��9�	
����c�T�S�D�9��*�*�2�.�	0�	���d�c�T�S��9�����d�c�T�S�9��*�*�2�.�	0rc���t�}|jdddd��|jd�}|jd�|jdd	�
�|jdd�
�|jddd��|j	tdd	dd��|j
g��|jdddd��|j	tdddd��|j
g��y)Nr�r4r}rzr�r'rXr�r�rlrZr�rtrr�r�r�r�)r�r�r�r�r�rzr:r`s   r�,test_set_defaults_same_as_add_argument_groupz<TestSetDefaults.test_set_defaults_same_as_add_argument_groups���+�-�����c�S�C�3��7��)�)�%�0��
���4� �
���4���.�
���3�c��*�
���3�c�4��8�	
����c�T�S�D�9��*�*�2�.�	0�	���d�c�T�S��9�����d�c�T�S�9��*�*�2�.�	0rN)
rrr r�r�r�r�r�r�r�r@rrr�r��
s'��B�I�"9�=�>�0�"0rr�c��eZdZd�Zy)�TestGetDefaultc��t�}|j|jd��|j|jd��|jd�|j|jd��|j|jd��|jdtd��|j|jd��|jd|jd��|j
d��|jd|jd��|jd|jd��y)	Nr'rBr�r-rr�r2r)r�r��get_defaultr�r�r�r�r0s  r�test_get_defaultzTestGetDefault.test_get_default*s��+�-�����&�,�,�U�3�4����&�,�,�U�3�4����G�$����&�,�,�U�3�4����&�,�,�U�3�4����G�#�r��:����&�,�,�U�3�4�����V�/�/��6�7������)�����6�#5�#5�e�#<�=�����V�/�/��6�7rN)rrr r�r@rrr�r�(s��8rr�c��eZdZd�Zd�Zy)�TestNamespaceContainsSimplec�t�tj�}|jd|�|jd|�y)Nrr�)r*�	Namespace�assertNotIn�r�nss  r�
test_emptyz&TestNamespaceContainsSimple.test_emptyAs0��
�
�
�
!������R� �����b�!rc���tjdd��}|jd|�|jd|�|jd|�|jd|�|jd|�y)	Nrsr�rnrr�rZ�xxr)r*rrr�rs  r�test_non_emptyz*TestNamespaceContainsSimple.test_non_emptyFs`��
�
�
�!�q�
)������R� ��
�
�c�2���
�
�c�2������r�"�����b�!rN)rrr rrr@rrr�r�?s��"�
"rr�c��eZdZd�Zy)�TestHelpFormattingMetaclassc�V�|dk(ryGd�dt�}dD]\}}||||��y)N�HelpTestCasec�0�eZdZd�Zd�Zd�Zd�Zd�Zd�Zy)�6TestHelpFormattingMetaclass.__init__.<locals>.AddTestsc���||_||_|j|j|jfD]-}|j
�d|��}|fd�}	||_t|||��/y#t$rY�wxYw)Nr�c��||�yrNr@r�s  r�test_wrapperzUTestHelpFormattingMetaclass.__init__.<locals>.AddTests.__init__.<locals>.test_wrappercr�r)�func_suffix�std_name�test_format�
test_print�test_print_filerr�r�)r�
test_classrrr�r�rs       rrz?TestHelpFormattingMetaclass.__init__.<locals>.AddTests.__init__Zs��#.�� � (��
�"&�"2�"2�"&�/�/�"&�"6�"6�"8�I�,5�+=�+=�{� K�I�5>�(��09��-��J�	�<�@�"8��%����s�A#�#	A/�.A/c�\�tj|jji|jj��}t|dg�D](}|j|ji|j���*t|dg�}|D]X\}}|j|ji|j��}|D](}|j|ji|j���*�Zt|dg�}|r=|j�}	|D](}
|	j|
ji|
j���*|S)Nr��argument_group_signatures�subparsers_signatures)
r*r+r�rurvr�r�r�r�r�)rr�r1�argument_sig�
group_sigs�	group_sig�
argument_sigsr��subparsers_sigsr��
subparser_sigs           rr�zBTestHelpFormattingMetaclass.__init__.<locals>.AddTests._get_parserksG��!�0�0��,�,�1�1�6��-�-�4�4�6��%,�F�4I�2�$N�L�'�F�'�'��):�):�?�*6�*=�*=�?�%O�%�V�-H�"�M�
�0:�,�I�}�5�F�5�5�y�~�~�J�8A�8H�8H�J�E�(5��*��*�*�L�,=�,=�B�-9�-@�-@�B�)6�1;�#*�&�2I�2�"N��"�!'�!6�!6�!8�J�)8�
�-�
�-�-�}�/A�/A�G�1>�1E�1E�G�*9��
rc��t||j�}tj|�}d|_|j||�yrN)r�rr�r�rr�)rr��parser_text�
expected_texts    r�_testz<TestHelpFormattingMetaclass.__init__.<locals>.AddTests._test�s9�� '���0@�0@� A�
� (���
� >�
�!%����"�"�=�+�>rc��|j|�}t|d|jz�}|j||��y)Nz	format_%s)r�r�rr$)rr�r1rDs    rrzBTestHelpFormattingMetaclass.__init__.<locals>.AddTests.test_format�s9���)�)�&�1�� ���t�7G�7G�)G�H���
�
�6�6�8�,rc���|j|�}t|d|jz�}tt|j�}tt|jt
��	|�tt|j�j�}tt|j|�|j||�y#tt|j|�wxYw�Nzprint_%s)	r�r�rr�rr�rrr$)rr�r1�print_�
old_streamr"s      rrzATestHelpFormattingMetaclass.__init__.<locals>.AddTests.test_print�s����)�)�&�1�� ���d�6F�6F�)F�G��$�S�$�-�-�8�
���T�]�]�K�M�:�<��H�")�#�t�}�}�"=�"F�"F�"H�K��C����
�;��
�
�6�;�/���C����
�;�s�)/C�C#c��|j|�}t|d|jz�}t�}||�|j	�}|j||�yr')r�r�rrrr$)rr�r1r(�sfiler"s      rrzFTestHelpFormattingMetaclass.__init__.<locals>.AddTests.test_print_file�sQ���)�)�&�1�� ���d�6F�6F�)F�G��#�
���u�
�#�n�n�.���
�
�6�;�/rN)	rrr rr�r$rrrr@rrr�rXs!��
A�"
�,
?�
-�


0�
0rr�))�usager�)r}r�)r�)r�rcr�r�r�rrs       rrz$TestHelpFormattingMetaclass.__init__Ts9���>�!��F	0�v�F	0�R&:�!�K���S�+�x�0�&:rNrxr@rrr
r
Rs��O1rr
rc��eZdZ	eddd��Zedddd�	�ed
dd�
�edd��edd��edd��gZgZdZedzZdZ	y)�TestHelpBiggerOptionalsrw�DESCRIPTION�EPILOG�ryrz�epilogr]r�r��0.1r�r�r��X HELPr|�--y�Y HELPr�r'�FOO HELPrB�BAR HELPz;        usage: PROG [-h] [-v] [-x] [--y Y] foo bar
        aW
        DESCRIPTION

        positional arguments:
          foo            FOO HELP
          bar            BAR HELP

        options:
          -h, --help     show this help message and exit
          -v, --version  show program's version number and exit
          -x             X HELP
          --y Y          Y HELP

        EPILOG
    �        0.1
        N�
rrr rsr�r�rr,r}r�r@rrr.r.�s���E���M�"*�,��	�D�+�i��?��D��H�5��E��!��E�
�#��E�
�#���!#��
�E����D� �Grr.c��eZdZ	d�Zej
ZejZejZdZedzZ	ejZ
y)�TestShortColumnsc�n�|jtj��}|jdd�y)NrEre)rFrrGr`rHs  rrJzTestShortColumns.setUp�s)�����	� =� =� ?�@�����	�4� rz�        usage: PROG
               [-h]
               [-v]
               [-x]
               [--y Y]
               foo
               bar
        a�
        DESCRIPTION

        positional arguments:
          foo
            FOO HELP
          bar
            BAR HELP

        options:
          -h, --help
            show this
            help
            message and
            exit
          -v, --version
            show
            program's
            version
            number and
            exit
          -x
            X HELP
          --y Y
            Y HELP

        EPILOG
    N)rrr rJr.r�r�rr,r}r�r@rrr<r<�sW���
!�#:�"J�"J��"9�"M�"M��"9�"S�"S��
�E����D�:#:�"A�"A�Grr<c���eZdZ	eddd��Zedddd�	�ed
dd�
�edd��edd��edd��gZedd��edd��eddd��gfgZdZedzZd Z	y!)"�TestHelpBiggerOptionalGroupsrwr/r0r1r]r�r�r3r�r�r�r4r|r5r6r�r'r7rBr8zGROUP TITLEzGROUP DESCRIPTIONr�rCzBAZ HELPrr�zZ HELPr�zN        usage: PROG [-h] [-v] [-x] [--y Y] [-z Z [Z ...]] foo bar baz
        a�
        DESCRIPTION

        positional arguments:
          foo            FOO HELP
          bar            BAR HELP

        options:
          -h, --help     show this help message and exit
          -v, --version  show program's version number and exit
          -x             X HELP
          --y Y          Y HELP

        GROUP TITLE:
          GROUP DESCRIPTION

          baz            BAZ HELP
          -z Z [Z ...]   Z HELP

        EPILOG
    r9Nr:r@rrr?r?s���E���M�"*�,��	�D�+�i��?��D��H�5��E��!��E�
�#��E�
�#���

�]�(;�	<���J�'���C�h�/�?1�	2�!��

�E����D�,�Grr?c��eZdZ	edd��Zeddd��edd	�
�edd�
�ed
d�
�gZgZdZedzZdZ	y)�TestHelpBiggerPositionals�USAGEr/�r,rzr�r�r4r|r5r6r��ekiekiekifekangzEKI HELPrBr8�        usage: USAGE
        a
        DESCRIPTION

        positional arguments:
          ekiekiekifekang  EKI HELP
          bar              BAR HELP

        options:
          -h, --help       show this help message and exit
          -x               X HELP
          --y Y            Y HELP
        rNr:r@rrrArA2sl��>���m�D���D��H�5��E��!���J�/��E�
�#�	��!#��
�E����D��GrrAc��eZdZ	edd��Zeddd��edd	d
��gZedd�
�eddd��gfgZdZedzZdZ	y)�TestHelpReformattingrwze   oddly    formatted
description

that is so long that it should go onto multiple lines when wrappedr~r�r�zoddly
    formatted -x help�r�r}rZrz
normal y helpr�z'
    oddly formatted group

descriptionr�r�r�z` oddly 
formatted    -a  help  
    again, so long that it should be wrapped over multiple linesr|�2        usage: PROG [-h] [-x XX] [-a] yyy
        a�
        oddly formatted description that is so long that it should go onto multiple
        lines when wrapped

        positional arguments:
          yyy         normal y help

        options:
          -h, --help  show this help message and exit
          -x XX       oddly formatted -x help

        title:
          oddly formatted group description

          -a          oddly formatted -a help again, so long that it should be wrapped
                      over multiple lines
        rNr:r@rrrGrGQs���H��
�)�*��	�D�$�&=�	>��C��_�5���

�W�#0�
1��d�<�$�%�
&�		'�
!��
�E����D�(�GrrGc��eZdZ	edd��Zeddd��edd	d
��gZed�edd
d��gfgZdZedzZdZ	y)�TestHelpWrappingShortNamesrwzZD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
Dr~r�r�zxXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXrHrZr�dYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YH�ALPHASr�r�zPAHHH HHAAHHH HHAAHHH HHAAHHH HHAAHHH HHAAHHH HHAAHHH HHAAHHH HHAAHHH HHAAHHH HHAr|rIa�
        D DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD
        DD DD DD DD D

        positional arguments:
          yyy         YH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH
                      YHYH YHYH YHYH YHYH YHYH YHYH YHYH YH

        options:
          -h, --help  show this help message and exit
          -x XX       XHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH
                      HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HX

        ALPHAS:
          -a          AHHH HHAAHHH HHAAHHH HHAAHHH HHAAHHH HHAAHHH HHAAHHH HHAAHHH
                      HHAAHHH HHAAHHH HHA
        rNr:r@rrrKrK�sz��H���[�A���D�$�]�3��C��\�2���


�X����\��@�B�	C�!��
�E����D�,�GrrKc��eZdZ	edd��Zedddd��ed	d
d��ed
dd��gZed�eddd��eddd��gfgZdZedzZdZ	y)�TestHelpWrappingLongNamesrBzZD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DrCr]r�r�zZV VV VV VV VV VV VV VV VV VV VV VV VV VV VV VV VV VV VV VV VV VV VV VV VV VV VV VV VV VV Vr�r��XXXXXXXXXXXXXXXXXXXXXXXXXzdXH XHXH XHXH XHXH XHXH XHXH XHXH XHXH XHXH XHXH XHXH XHXH XHXH XHXH XHXH XHXH XHXH XHXH XHXH XHXH XHrHrZ�yyyyyyyyyyyyyyyyyyyyyyyyyrLrMr��AAAAAAAAAAAAAAAAAAAAAAAAAzdAH AHAH AHAH AHAH AHAH AHAH AHAH AHAH AHAH AHAH AHAH AHAH AHAH AHAH AHAH AHAH AHAH AHAH AHAH AHAH AHr�zzzzzzzzzzzzzzzzzzzzzzzzzzdZH ZHZH ZHZH ZHZH ZHZH ZHZH ZHZH ZHZH ZHZH ZHZH ZHZH ZHZH ZHZH ZHZH ZHZH ZHZH ZHZH ZHZH ZHZH ZHZH ZHrEag
        D DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD
        DD DD DD DD D

        positional arguments:
          yyyyyyyyyyyyyyyyyyyyyyyyy
                                YH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH
                                YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YH

        options:
          -h, --help            show this help message and exit
          -v, --version         show program's version number and exit
          -x XXXXXXXXXXXXXXXXXXXXXXXXX
                                XH XHXH XHXH XHXH XHXH XHXH XHXH XHXH XHXH XHXH XHXH
                                XHXH XHXH XHXH XHXH XHXH XHXH XHXH XHXH XHXH XH

        ALPHAS:
          -a AAAAAAAAAAAAAAAAAAAAAAAAA
                                AH AHAH AHAH AHAH AHAH AHAH AHAH AHAH AHAH AHAH AHAH
                                AHAH AHAH AHAH AHAH AHAH AHAH AHAH AHAH AHAH AH
          zzzzzzzzzzzzzzzzzzzzzzzzz
                                ZH ZHZH ZHZH ZHZH ZHZH ZHZH ZHZH ZHZH ZHZH ZHZH ZHZH
                                ZHZH ZHZH ZHZH ZHZH ZHZH ZHZH ZHZH ZHZH ZHZH ZH
        zs        V VV VV VV VV VV VV VV VV VV VV VV VV VV VV VV VV VV VV VV VV VV VV VV VV VV
        VV VV VV VV V
        Nr:r@rrrOrO�s���F���z�B���D�+�i��D��D�(��6��C���5���

�X����h�\�:���X�L�9�;�	<�!��

�E����D�<�GrrOc��eZdZ	ed��Zeddd��eddd	��ed
d
��eddd
��eddd��eddej��edddej��edddej��edejejd��g	Zed�ed dd!��ed"d#d$��ed%d%d��ed&d&d��gfgZ	d'Z
e
d(zZd)Zy*)+�
TestHelpUsagerwrVrXr�rfr�r�r�r�r�r�r}r�)r}rur~r�r�zWhether to foo)r}r�r-zWhether to barT)r}rmr�rz--foobarz--barfoor�z--bazzzBazz!)r�rmr}r�r	rZrrxrr�r�a/        usage: PROG [-h] [-w W [W ...]] [-x [X ...]] [--foo | --no-foo]
                    [--bar | --no-bar]
                    [-f | --foobar | --no-foobar | --barfoo | --no-barfoo]
                    [--bazz | --no-bazz] [-y [Y]] [-z Z Z Z]
                    a b b [c] [d ...] e [e ...]
        az
        positional arguments:
          a                     a
          b                     b
          c                     c

        options:
          -h, --help            show this help message and exit
          -w W [W ...]          w
          -x [X ...]            x
          --foo, --no-foo       Whether to foo
          --bar, --no-bar       Whether to bar
          -f, --foobar, --no-foobar, --barfoo, --no-barfoo
          --bazz, --no-bazz     Bazz!

        group:
          -y [Y]                y
          -z Z Z Z              z
          d                     d
          e                     e
        rN)
rrr rsr�r*r�r�r�rr,r}r�r@rrrUrU�s��#���'���D��#�&��D��#�&��C�c���C�c��#��C�c��%��G�*�8�3Q�3Q�R��G�*�D�$�:�:�	<��D�*�j��1O�1O�P��H�X�;�;�&�/�/�g�	?���

�W����C�c�*���A�C�(���#�S�)���#�S�)�	
�	�!��
�E����D�,�GrrUc�Z�eZdZed��Zedd��eddd��gZd	Zed
zZdZy)
�TestHelpUsageWithParenthesesrwrV�
positionalz(example) positional�r�r�z
--optionalz{1 (option A), 2 (option B)}zX        usage: PROG [-h] [-p {1 (option A), 2 (option B)}] (example) positional
        z�
        positional arguments:
          (example) positional

        options:
          -h, --help            show this help message and exit
          -p {1 (option A), 2 (option B)}, --optional {1 (option A), 2 (option B)}
        rN)	rrr rsr�r�r,r}r�r@rrrWrWsL����'���L�"8�9��D�,�(F�G���

�E����D��GrrWc��eZdZ	edd��ZgZed�edd��edd��gfed	�ed
d
��edd��gfgZd
ZedzZdZ	y)�TestHelpOnlyUserGroupsrwF�ryrI�xxxxr�r�r�r��yyyyr}r	rZz.        usage: PROG [-x X] [-y Y] a b
        zn
        xxxx:
          -x X  x
          a     a

        yyyy:
          b     b
          -y Y  y
        rNr:r@rrr[r[2s���#����7����	�V����3����#��
�	�

�V����#����3��
�	�	!��
�E��	�	�D��Grr[c�z�eZdZ	ed��Zedd��edd��ed�ed	�gZgZd
ZedzZdZ	y
)�TestHelpUsageLongProg�<PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPrVrXr�rYr�r4r�r}zz        usage: PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
               [-h] [-w W] [-x X] a b
        z�
        positional arguments:
          a
          b

        options:
          -h, --help  show this help message and exit
          -w W
          -x X
        rNr:r@rrr`r`Qsa��4���)���D�#���D�#���C���C��	��!#��
�E��
�
�D��Grr`c��eZdZ	ed��Zedd��edd��edd	��ed
d��ed�ed
�gZgZdZedzZdZ	y)� TestHelpUsageLongProgOptionsWraprarVrX�WWWWWWWWWWWWWWWWWWWWWWWWWrYr�rPr	�YYYYYYYYYYYYYYYYYYYYYYYYYr�ZZZZZZZZZZZZZZZZZZZZZZZZZr�r}a        usage: PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
               [-h] [-w WWWWWWWWWWWWWWWWWWWWWWWWW] [-x XXXXXXXXXXXXXXXXXXXXXXXXX]
               [-y YYYYYYYYYYYYYYYYYYYYYYYYY] [-z ZZZZZZZZZZZZZZZZZZZZZZZZZ]
               a b
        a-
        positional arguments:
          a
          b

        options:
          -h, --help            show this help message and exit
          -w WWWWWWWWWWWWWWWWWWWWWWWWW
          -x XXXXXXXXXXXXXXXXXXXXXXXXX
          -y YYYYYYYYYYYYYYYYYYYYYYYYY
          -z ZZZZZZZZZZZZZZZZZZZZZZZZZ
        rNr:r@rrrcrcnsu��K���)���D�(�#��D�(�#��D�(�#��D�(�#��C���C��
��!#��
�E����D��Grrcc�f�eZdZ	edd��Zed�ed�ed�gZgZdZedzZd	Z	y
)�$TestHelpUsageLongProgPositionalsWrapraFr\�aaaaaaaaaaaaaaaaaaaaaaaaa�bbbbbbbbbbbbbbbbbbbbbbbbb�cccccccccccccccccccccccccz�        usage: PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
               aaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbb
               ccccccccccccccccccccccccc
        ��
        positional arguments:
          aaaaaaaaaaaaaaaaaaaaaaaaa
          bbbbbbbbbbbbbbbbbbbbbbbbb
          ccccccccccccccccccccccccc
        rNr:r@rrrhrh�sV��M���5�9���H�
��H�
��H�
���
!#��
�E�
���D��Grrhc	��eZdZ	ed��Zedd��edd��edd	��ed
d��ed�ed
�ed�gZgZdZedzZdZ	y)�TestHelpUsageOptionalsWraprwrVrXrdrYr�rPr	rerrfr�r}r~z�        usage: PROG [-h] [-w WWWWWWWWWWWWWWWWWWWWWWWWW] [-x XXXXXXXXXXXXXXXXXXXXXXXXX]
                    [-y YYYYYYYYYYYYYYYYYYYYYYYYY] [-z ZZZZZZZZZZZZZZZZZZZZZZZZZ]
                    a b c
        a9
        positional arguments:
          a
          b
          c

        options:
          -h, --help            show this help message and exit
          -w WWWWWWWWWWWWWWWWWWWWWWWWW
          -x XXXXXXXXXXXXXXXXXXXXXXXXX
          -y YYYYYYYYYYYYYYYYYYYYYYYYY
          -z ZZZZZZZZZZZZZZZZZZZZZZZZZ
        rNr:r@rrrnrn�s|��6���'���D�(�#��D�(�#��D�(�#��D�(�#��C���C���C����!#��
�E��
�
�D��Grrnc��eZdZ	ed��Zed�ed�ed�ed�ed�ed�gZgZd	Zed
zZdZ	y)
�TestHelpUsagePositionalsWraprwrVr�r	rrirjrkz�        usage: PROG [-h] [-x X] [-y Y] [-z Z]
                    aaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbb
                    ccccccccccccccccccccccccc
        a
        positional arguments:
          aaaaaaaaaaaaaaaaaaaaaaaaa
          bbbbbbbbbbbbbbbbbbbbbbbbb
          ccccccccccccccccccccccccc

        options:
          -h, --help            show this help message and exit
          -x X
          -y Y
          -z Z
        rNr:r@rrrprp�si��8���'���D�	��D�	��D�	��H�
��H�
��H�
�
��!#��
�E�
���D��Grrpc��eZdZ	ed��Zedd��edd��edd	��ed
�ed�ed�gZgZd
ZedzZdZ	y)�%TestHelpUsageOptionalsPositionalsWraprwrVr�rPrYr	rerrfrirjrka        usage: PROG [-h] [-x XXXXXXXXXXXXXXXXXXXXXXXXX] [-y YYYYYYYYYYYYYYYYYYYYYYYYY]
                    [-z ZZZZZZZZZZZZZZZZZZZZZZZZZ]
                    aaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbb
                    ccccccccccccccccccccccccc
        aZ
        positional arguments:
          aaaaaaaaaaaaaaaaaaaaaaaaa
          bbbbbbbbbbbbbbbbbbbbbbbbb
          ccccccccccccccccccccccccc

        options:
          -h, --help            show this help message and exit
          -x XXXXXXXXXXXXXXXXXXXXXXXXX
          -y YYYYYYYYYYYYYYYYYYYYYYYYY
          -z ZZZZZZZZZZZZZZZZZZZZZZZZZ
        rNr:r@rrrrrr�sr��F���'���D�(�#��D�(�#��D�(�#��H�
��H�
��H�
�
��!#��
�E����D��Grrrc�p�eZdZ	ed��Zedd��edd��edd	��gZgZd
ZedzZdZ	y
)�TestHelpUsageOptionalsOnlyWraprwrVr�rPrYr	rerrfz�        usage: PROG [-h] [-x XXXXXXXXXXXXXXXXXXXXXXXXX] [-y YYYYYYYYYYYYYYYYYYYYYYYYY]
                    [-z ZZZZZZZZZZZZZZZZZZZZZZZZZ]
        z�
        options:
          -h, --help            show this help message and exit
          -x XXXXXXXXXXXXXXXXXXXXXXXXX
          -y YYYYYYYYYYYYYYYYYYYYYYYYY
          -z ZZZZZZZZZZZZZZZZZZZZZZZZZ
        rNr:r@rrrtrts]��J���'���D�(�#��D�(�#��D�(�#���
!#��
�E�
���D��Grrtc�f�eZdZ	edd��Zed�ed�ed�gZgZdZedzZd	Z	y
)� TestHelpUsagePositionalsOnlyWraprwFr\rirjrkz~        usage: PROG aaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbb
                    ccccccccccccccccccccccccc
        rlrNr:r@rrrvrv1sV��L����7���H�
��H�
��H�
���
!#��
�E����D��Grrvc
��eZdZ	ed��Zeded��edddd	d
��edgd
�d��eddddgdd��edd��eddd��gZed�edd ��ed!d"d#��gfgZd$Zed%zZ	d&Z
y')(�TestHelpVariableExpansionrwrVr�z"x %(prog)s %(default)s %(type)s %%r�r	rr�XXXz y %(prog)s %(default)s %(const)s)r�rmrr}r�r|z$foo %(prog)s %(default)s %(choices)sr�r-rCrsr��BBBz!bar %(prog)s %(default)s %(dest)s)rmr�r�r}r�zspam %(prog)s %(default)sr�r2r�zbadger %(prog)s %(default)s)rmr}r�r�za %(prog)s %(default)sr�rzb %(prog)s %(default)szw        usage: PROG [-h] [-x X] [-y] [--foo {a,b,c}] [--bar BBB] [-a A] [-b B]
                    spam badger
        a�
        positional arguments:
          spam           spam PROG None
          badger         badger PROG 0.5

        options:
          -h, --help     show this help message and exit
          -x X           x PROG None int %
          -y             y PROG 42 XXX
          --foo {a,b,c}  foo PROG None a, b, c
          --bar BBB      bar PROG baz bar

        group:
          -a A           a PROG None
          -b B           b PROG -1
        rN)rrr rsr�r�r�rr,r}r�r@rrrxrxIs���D���'���D�s�5�	7��D���%�3�	5��G�_�7�	9��G�U�Q��F�E�4�	6��F�4�5��H�c�(E�F���

�W����3�4���b�'?�@�
�	�!���E����D�"�Grrxc�<�eZdZ	edd��ZgZgZdZedzZdZ	y)�&TestHelpVariableExpansionUsageSuppliedrwz%(prog)s FOO�ryr,z         usage: PROG FOO
        r�rNr:r@rrr|r|ws=��J���n�=���� "���E����D�
�Grr|c�6�eZdZ	edd��ZgZgZdZeZdZ	y)�$TestHelpVariableExpansionNoArgumentsrwFr\z        usage: PROG
        rNr:r@rrrr�s1��E����7���� "���E��D��Grrc�n�eZdZ	edej
��Zedd��edd��gZgZdZ	d	Z
d	Zy
)�TestHelpSuppressUsagerwr}r�r{r�r��	spam helpz�        positional arguments:
          spam        spam help

        options:
          -h, --help  show this help message and exit
          --foo FOO   foo help
        rN)rrr rsr*r�r�r�rr}r,r�r@rrr�r��sO��=���h�.?�.?�@���G�*�%��F��%���!#���D�
�E��Grr�c�t�eZdZ	edd��Zedej��edd��gZgZdZ	e	d	zZ
d
Zy)�TestHelpSuppressOptionalrwFr\r�r�r�r�z!        usage: PROG spam
        zA
        positional arguments:
          spam  spam help
        rN�rrr rsr�r*r�r�rr,r}r�r@rrr�r��s[��I����7���G�(�+�+�,��F��%���!#��
�E����D�
�Grr�c��eZdZ	ed��Zedd��edd��gZed�ed	ej��gfgZd
Z	e	dzZ
dZy
)�TestHelpSuppressOptionalGrouprwrVr�r{r�r�r�r�r-�2        usage: PROG [-h] [--foo FOO] spam
        ��
        positional arguments:
          spam        spam help

        options:
          -h, --help  show this help message and exit
          --foo FOO   foo help
        rN)rrr rsr�r�r*r�rr,r}r�r@rrr�r��sq��F���'���G�*�%��F��%���


�W���G�(�*;�*;�<�=�>�!��
�E����D��Grr�c�r�eZdZ	ed��Zedd��edej��gZgZdZ	e	dzZ
d	Zy
)�TestHelpSuppressPositionalrwrVr�r{r�r�z-        usage: PROG [-h] [--foo FOO]
        �o
        options:
          -h, --help  show this help message and exit
          --foo FOO   foo help
        rNr�r@rrr�r��sY��K���'���G�*�%��F��*�*�+���!#��
�E����D��Grr�c�N�eZdZ	ed��Zeddd��gZgZdZedzZd	Z	y
)�TestHelpRequiredOptionalrwrVr�Tr{)r�r}z+        usage: PROG [-h] --foo FOO
        r�rNr:r@rrr�r��sK��8���'���G�d��4���!#��
�E����D��Grr�c�f�eZdZ	eddd��Zeddd��ed	d
d��gZgZd
ZedzZdZ	y)�TestHelpAlternatePrefixCharsrwz^;F)ryrHrIz^^foor�r{r|z;bz;;barrr�z-        usage: PROG [^^foo] [;b BAR]
        zf
        options:
          ^^foo              foo help
          ;b BAR, ;;bar BAR  bar help
        rNr:r@rrr�r�s[��D���T�E�J���G�L�z�:��D�'�
�+���!#��
�E����D��Grr�c�`�eZdZ	edd��Zedd��edd��gZgZd	Zed
zZdZ	y)
�TestHelpNoHelpOptionalrwFr\r�r{r�r�r�z-        usage: PROG [--foo FOO] spam
        zv
        positional arguments:
          spam       spam help

        options:
          --foo FOO  foo help
        rNr:r@rrr�r�sU��G����7���G�*�%��F��%���!#��
�E����D��Grr�c�V�eZdZ	ed��Zed�ed�gZgZdZedzZdZ	y)	�TestHelpNonerwrVr�r�r�z�
        positional arguments:
          spam

        options:
          -h, --help  show this help message and exit
          --foo FOO
        rNr:r@rrr�r�-sM��;���'���G���F����!#��
�E����D��Grr�c	��eZdZ	ed��Zedddd��edd	d
d��edd
dd��edddd��gZgZdZedzZdZ	y)�TestHelpTupleMetavarrwrVrXrfr�)�W1�W2)r}rur�r�r�r�)�X1�X2r	rZrx)�Y1�Y2�Y3rrr�)�Z1z]        usage: PROG [-h] [-w W1 [W2 ...]] [-x [X1 [X2 ...]]] [-y Y1 Y2 Y3] [-z [Z1]]
        z�
        options:
          -h, --help        show this help message and exit
          -w W1 [W2 ...]    w
          -x [X1 [X2 ...]]  x
          -y Y1 Y2 Y3       y
          -z [Z1]           z
        rNr:r@rrr�r�Esx��,���'���D�s�#�|�<��D�s�#�|�<��D�s�!�-?�@��D�s�#�x�8�	��!#��
�E����D��Grr�c��eZdZ	edej
d��Zedd��edd��gZed	d
��edd
��gfgZdZ	e	dzZ
dZy)�TestHelpRawTextrw�7Keep the formatting
    exactly as it is written

here
�ry�formatter_classrzr�z-    foo help should also
appear as given herer�r�r�r��?    This text
  should be indented
    exactly like it is here
r�r-r�>        usage: PROG [-h] [--foo FOO] [--bar BAR] spam
        a�
        Keep the formatting
            exactly as it is written

        here

        positional arguments:
          spam        spam help

        options:
          -h, --help  show this help message and exit
          --foo FOO       foo help should also
                      appear as given here

        title:
              This text
            should be indented
              exactly like it is here

          --bar BAR   bar help
        rN)rrr rsr*�RawTextHelpFormatterr�r�rr,r}r�r@rrr�r�`s���'��
�X�%B�%B����	�G�1�	2��F��%���

�W�#B�
C��g�J�
'�	(�	*�!��
�E����D�,�Grr�c��eZdZ	edej
d��Zedd��edd��gZed	d
��edd
��gfgZdZ	e	dzZ
dZy)�TestHelpRawDescriptionrwr�r�r�z4  foo help should not
    retain this odd formattingr�r�r�r�r�r�r-rr�a�
        Keep the formatting
            exactly as it is written

        here

        positional arguments:
          spam        spam help

        options:
          -h, --help  show this help message and exit
          --foo FOO   foo help should not retain this odd formatting

        title:
              This text
            should be indented
              exactly like it is here

          --bar BAR   bar help
        rN)rrr rsr*�RawDescriptionHelpFormatterr�r�rr,r}r�r@rrr�r��s���'��
�X�%I�%I����	�G�;�	<��F��%���

�W�#B�
C��g�J�
'�	(�	*�!��
�E����D�*�Grr�c�H�eZdZ	edej
d��Zedd��eddd	�
�edejdd
��edejdej��eddd��edd��edddd��gZ	edd��ede
dd� �gfgZd!Zed"zZ
d#Zy$)%�TestHelpArgumentDefaultsrwrzr�r�z)foo help - oh and by the way, %(default)sr�r-r�rr|z--tazzWhether to taz itT)r�r}rmz--corgezWhether to corge itr�zSet the quuxr)r}rmr�r�r2r��woodenzbadger help�rurmr}r�r�rcr�)r�rmr}z�        usage: PROG [-h] [--foo FOO] [--bar] [--taz | --no-taz] [--corge | --no-corge]
                    [--quux QUUX] [--baz BAZ]
                    spam [badger]
        ay
        description

        positional arguments:
          spam                 spam help
          badger               badger help (default: wooden)

        options:
          -h, --help           show this help message and exit
          --foo FOO            foo help - oh and by the way, None
          --bar                bar help (default: False)
          --taz, --no-taz      Whether to taz it (default: True)
          --corge, --no-corge  Whether to corge it
          --quux QUUX          Set the quux (default: 42)

        title:
          description

          --baz BAZ            baz help (default: 42)
        rN)rrr rsr*�ArgumentDefaultsHelpFormatterr�r�r�r�r�rr,r}r�r@rrr�r��s���0��
�X�%K�%K�!�#��
	�G�E�F��G�L�z�:��G�H�:�:�$�d�	4��I�h�<�<�&��0A�0A�	C��H�>�2�6��F��%��H�C��
�F�
��

�W�-�	0�

�g�C��*�
=�	>�	@�!��
�E�
���D�*�Grr�c�R�eZdZ	edd��Zedddd��gZgZd	Zed
zZdZ	y)
�TestHelpVersionActionrwrzr~�-Vr�r�z3.6r�z&        usage: PROG [-h] [-V]
        z�
        description

        options:
          -h, --help     show this help message and exit
          -V, --version  show program's version number and exit
        rNr:r@rrr�r��sK��6���M�B���t�[��E�R�S�� "��
�E����D��Grr�c��eZdZ	ed��Zeddddej��edd	�
�edd�
�gZgZd
Z	e	dzZ
y)�TestHelpVersionActionSuppressrwrVr]r�r�r�)r�r�r}r�r{r�r�r�r�r�N)rrr rsr�r*r�r�rr,r}r@rrr�r�se��M���'���D�+�i���"�"�	$��G�*�%��F��%�	��!#��
�E����Drr�c��eZdZ	edd��Zedddd��gZd	D���cgc]}t|�
���c}}}ZdZedzZd
Z	ycc}}}w)�TestHelpSubparsersOrderingrw�display some subcommandsr~r]r�r�r3r�)r�r}r~r�r�r��6        usage: PROG [-h] [-v] {a,b,c,d,e} ...
        z�
        display some subcommands

        positional arguments:
          {a,b,c,d,e}

        options:
          -h, --help     show this help message and exit
          -v, --version  show program's version number and exit
        r9N)
rrr rsr�r�rr,r}r�)�.0rcrss000rr�r� sv��?���'A�C���t�[��E�R�S��*C�D�)B��!�d�^�)B�D��
�E��
�
�D��G��'Ds�Ar�c
��eZdZ	edd��Zedddd��gZd	ZeD����cgc]\}}t||�
���c}}}}ZdZedzZ	d
Z
ycc}}}}w)�"TestHelpSubparsersWithHelpOrderingrwr�r~r]r�r�r3r�))r�za subcommand help)r}zb subcommand help)r~zc subcommand help)r�zd subcommand help)r�ze subcommand help)rcr}r�a�
        display some subcommands

        positional arguments:
          {a,b,c,d,e}
            a            a subcommand help
            b            b subcommand help
            c            c subcommand help
            d            d subcommand help
            e            e subcommand help

        options:
          -h, --help     show this help message and exit
          -v, --version  show program's version number and exit
        r9N)rrr rsr�r��subcommand_datarr,r}r�)r�rcr}rss0000rr�r�=s���?���'A�C���t�[��E�R�S���O�0?�@�/>���t�!�d��6�/>�@��
�E����D�"�G��1@s�A
r�c��eZdZd�Zeddej��Zede��ede��ede	d	�
�gZ
gZdZedzZ
d
Zy)�TestHelpMetavarTypeFormatterc��|SrNr@rEs r�custom_typez(TestHelpMetavarTypeFormatter.custom_typejs���
rrwrz)ryrzr�r�r�r�r�z
SOME FLOAT)r�r�zF        usage: PROG [-h] [-b custom_type] [-c SOME FLOAT] int
        z�
        description

        positional arguments:
          int

        options:
          -h, --help      show this help message and exit
          -b custom_type
          -c SOME FLOAT
        rN)rrr r�rsr*�MetavarTypeHelpFormatterr�r�r�r�rr,r}r�r@rrr�r�hsr�����M�+3�+L�+L�N���s��-��t�+�6��t�%��F�H��!#��
�E����D��Grr�c��eZdZ	dZd�Zy)�!TestHelpUsageLongSubparserCommandNc�<�d�}tjd|��}|jddd��}|jdd	�
�|jdd�
�|jd
d�
�|j	�}|j|t
jd��y)Nc�0�tj|d��S)N�2)�max_help_position)r*r�rVs r�custom_formatterzLTestHelpUsageLongSubparserCommand.test_parent_help.<locals>.custom_formatter�s���0�0���L�Lrrw)ryr�r��CMDzcommand to use)r�r�r}rz
add somethingr��removezremove somethingza-very-long-commandzcommand that does somethinga}            usage: PROG [-h] CMD ...

            options:
              -h, --help             show this help message and exit

            commands:
              CMD                    command to use
                add                  add something
                remove               remove something
                a-very-long-command  command that does something
        )r*r+r�r�r�r�r�r�)rr��
parent_parser�cmd_subparsersrEs     rrGz2TestHelpUsageLongSubparserCommand.test_parent_help�s���	M�!�/�/�� 0�
�
�
'�5�5�J�>C�;K�6�M��	�!�!�%�'6�	"�	8�	�!�!�(�'9�	"�	;�	�!�!�"7�'D�	"�	F�$�/�/�1������h�o�o�7�'
�	r)rrr rrGr@rrr�r��s��F��G�!rr�c�h�eZdZ	d�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zy)�TestInvalidArgumentConstructorsc�v�tj�}|jt|jg|��i|��yrN)r*r+r�r�r��rrurvr1s    r�assertTypeErrorz/TestInvalidArgumentConstructors.assertTypeError�s:���(�(�*������)�V�%8�%8�	+��	+�#)�	+rc�v�tj�}|jt|jg|��i|��yrN)r*r+r�r"r�r�s    r�assertValueErrorz0TestInvalidArgumentConstructors.assertValueError�s:���(�(�*������*�f�&9�&9�	+��	+�#)�	+rc��|jdd��|jdd��|jdd��|jdi��y)	Nr�)rBr	r')�callbackr@)�
callback_args)�callback_kwargs�r�rs r�test_invalid_keyword_argumentsz>TestInvalidArgumentConstructors.test_invalid_keyword_arguments�sN�����T�t��,����T�E��2����T���4����T�2��6rc�V�|j�dD]}|j|���y)N)r�r�r�r��rr�s  r�test_missing_destinationz8TestInvalidArgumentConstructors.test_missing_destination�s)������)�F�� � �� �/�*rc�H�|jd�|jd�y)Nr�z---�r�rs r�test_invalid_option_stringsz;TestInvalidArgumentConstructors.test_invalid_option_strings�s�����d�#����e�$rc�d�|jdd��|jdttf��y)Nr�r�r�)r�r�r�rs r�test_invalid_typez1TestInvalidArgumentConstructors.test_invalid_type�s,�����g�E��2����g�S�%�L��9rc�b�|jdd��|jdd��|jdd��tj�}|jt�5}|jdd��ddd�|j
dtj��y#1swY�/xYw)	Nr�r'r�rCr��r�r�z
store-truezunknown action)	r�r*r+r�r"r�r�r�r�r�s   r�test_invalid_actionz3TestInvalidArgumentConstructors.test_invalid_action�s������d�5��1����e�E��2����g�.A��B��(�(�*��
�
�
�z�
*�b�������=�+��
�
�&��B�L�L�(9�:�+�
*�s�#B%�%B.c��tj�}|jd��|jt�5}|jdd��ddd�|jdt
j��y#1swY�/xYw)Nr'r%rBrCz+dest supplied twice for positional argument)r*r+r�r�r"r�r�r�r�s   r�test_multiple_destz2TestInvalidArgumentConstructors.test_multiple_dest�sm���(�(�*�������'�
�
�
�z�
*�b�����E��2�+��
�
�C��"�,�,�'�	)�+�
*�s�A>�>Bc��dD]D}tt��td��tddg��fD]}|jd	d|i|����Fy)
N)rr�r�r�r�r�r�rtr�r}r�r�)r�)r�r�r�)rr��attrss   r�test_no_argument_actionsz8TestInvalidArgumentConstructors.test_no_argument_actions�sK��0�F��C�.�$�S�/���S�z�2�4��$��$�$�B�&�B�E�B�4�0rc�b�dD]*}|jdd|��|jdd|���,y)N)r�r�r�r�r'r�r��rur�r�r�s  r�!test_no_argument_no_const_actionszATestInvalidArgumentConstructors.test_no_argument_no_const_actions�s:��<�F�
� � ��U�6� �B�
� � ��S�� �@�
=rc���dD][}|jdd|��|jdd|��dD],}|jdd||��|jdd||���.�]y)	Nr�r�rr�r�)rsr�r�r')rrur�r�)rr�rus   r�#test_more_than_one_argument_actionszCTestInvalidArgumentConstructors.test_more_than_one_argument_actions�s~��)�F�
�!�!�$�a��!�?��!�!�&��&�!�A�'���%�%�d�%�,1�&�&�B��%�%�f�E�,1�&�&�B�'�*rc�:�dD]}|jdd|���y)N)rr�r�r�r�r�r�s  r�test_required_const_actionsz;TestInvalidArgumentConstructors.test_required_const_actionss#��5�F�
� � ��S�� �@�6rc��|jdd��|jddd��|jddtj��y)Nr��parsersr�rw)r�ry)r�r�)r�r*r+rs r�"test_parsers_action_missing_paramszBTestInvalidArgumentConstructors.test_parsers_action_missing_paramssK�����Y�y��9����Y�y�v��F����Y�y�*2�*A�*A�	�	Crc�*�|jdd��y)Nr'Tr�r�rs r�test_required_positionalz8TestInvalidArgumentConstructors.test_required_positional
s�����U�T��2rc����Gd�dt��G�fd�dt�}tj�}|j	�|j
d|����|j	�|j
d|����y)Nc��eZdZy)�ITestInvalidArgumentConstructors.test_user_defined_action.<locals>.SuccessNr�r@rr�Successr�r�rr�c�"��eZdZ	d�fd�	Zd�Zy)�HTestInvalidArgumentConstructors.test_user_defined_action.<locals>.Actionc�2��|dk(r|�ur|�ur���yyy)Nr�r@)r�option_stringsr&rrmr�r�s      �rrzQTestInvalidArgumentConstructors.test_user_defined_action.<locals>.Action.__init__s2����6�>���'�"�g�-�")�)�O�.�(�"rc��yrNr@rws   rrWzQTestInvalidArgumentConstructors.test_user_defined_action.<locals>.Action.__call__"s��rN)F)rrr rrW)r�s�rr_r�s���#(�	
,�
rr_r�)r�rmrr�)r�r�r*r+r�r�)rr_r1r�s   @r�test_user_defined_actionz8TestInvalidArgumentConstructors.test_user_defined_actionsy���	�i�	�	�V�	� �(�(�*�����'�6�#6�#6��!'���	�	I����'�6�#6�#6��!'���	�	IrN)rrr r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r@rrr�r��sV��7�+�
+�
7�0�
%�:�;�)�C�A�B�A�C�3�Irr�c��eZdZd�Zd�Zy)�TestActionsReturnedc�>�tj�}|jd�}|j|jd�|jdd�}|j|jd�|jdd�}|j|jd�y)	Nr�r'r�r-rBr�r	r�)r*r+r�r�r&�rr1r�s   rr�zTestActionsReturned.test_dest1s����(�(�*���$�$�W�-��������e�,��$�$�T�7�3��������e�,��$�$�T�4�0��������c�*rc�8�tj�}|jddddtddgddd	�
�	}|j	|j
d�|j	|jd�|j	|jd�|j	|jt�|j	|jddg�|j	|jd�|j	|jd�|j	|jd	�y)Nr�r�rr�rsr�r��BARrC)rurrmr�r�r}r�r&)
r*r+r�r�r�rurrmr�r�r}r�r&rs   r�	test_misczTestActionsReturned.test_misc:s����(�(�*���$�$�W�C�r�-/�c�A�q�6�*/��U�%�L��	
������s�+�������r�*��������,�������c�*�������!�Q��0�������e�,��������/�������e�,rN)rrr r�rr@rrrr/s��+�-rrc�$�eZdZd�Zd�Zd�Zd�Zy)�TestConflictHandlingc�P�|jttjd��y)Nr')�conflict_handler)r�r"r*r+rs r�
test_bad_typez"TestConflictHandling.test_bad_typeOs"�����*�h�&=�&=�+0�	�	2rc��tj�}|jd�|jtj|jd�|jd�|jtj|jd�y)Nr�r�)r*r+r�r�r�r0s  r�test_conflict_errorz(TestConflictHandling.test_conflict_errorSsn���(�(�*�����D�!����(�0�0� �-�-�t�	5����H�%����(�0�0� �-�-�x�	9rc��tj}|dd��}|jdd��|jdd��|j|j	�tjd��|jd	d
��|jd	d��|j|j	�tjd
��y)Nrw�resolve)ryr	r�zOLD Xr�zNEW Xz�            usage: PROG [-h] [-x X]

            options:
              -h, --help  show this help message and exit
              -x X        NEW X
            r��OLD_SPAMrY�NEW_SPAMz�            usage: PROG [-h] [-x X] [--spam NEW_SPAM]

            options:
              -h, --help       show this help message and exit
              -x X             NEW X
              --spam NEW_SPAM
            )r*r+r�r�r�r�r�)rrgr1s   r�test_resolve_errorz'TestConflictHandling.test_resolve_error\s����,�,�
���)�D�����D�w��/����D�w��/�����+�+�-�x���@�0�	�	���H�j��9����H�j��9�����+�+�-�x���@�0�	rc���tj�}|j�}|jddg��|j	tj
|jd�|j	tj
|jd�|j	tj
|jddg��|j	tj
|jddg��y)N�fullname�aliasr�r�)r*r+r�r�r�r�)rr1�sps   r�test_subparser_conflictz,TestConflictHandling.test_subparser_conflictus����(�(�*��
�
"�
"�
$��
�
�
�j�7�)�
�4����(�0�0��-�-��	5����(�0�0��-�-��	2����(�0�0��-�-��:�,�	�	H����(�0�0��-�-��7�)�	�	ErN)rrr r
rrrr@rrrrMs��2�9��2Errc�D�eZdZ	d�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zy
)�TestOptionalsHelpVersionActionsc��|jt�5}|j|j��ddd�|j	|j�jj�y#1swY�>xYwrN)r�r�r:r�r�r�r�r�)rr1r�r�s    r�assertPrintHelpExitz3TestOptionalsHelpVersionActions.assertPrintHelpExit�sY��
�
�
�2�
3�r����h�n�n�.�/�4�����+�+�-�r�|�|�/B�/B�C�4�
3�s� A3�3A<c�F�|jt|j|�yrN)r�r�r:�rr1rus   rrtz9TestOptionalsHelpVersionActions.assertArgumentParserError�s�����-�v�/@�/@�$�Grc���t�}|jdddd��|j|d�|j|d�|jtt
|d�y)	Nr]r�r�r�r�r4rN�format_version�r�r�rr�r�r�r0s  r�test_versionz,TestOptionalsHelpVersionActions.test_version�sV��+�-�����D�+�i���O�� � ���.�� � ���2����.�'�6�;K�Lrc�
�td��}|jdddd��|jt�5}|j	dg�ddd�|jdjj�y#1swY�0xYw)	N�PPPrVr]r�r�z%(prog)s 3.5r�zPPP 3.5
�r�r�r�r�r:r�r�r�r�s   r�test_version_formatz3TestOptionalsHelpVersionActions.test_version_format�sl��+��7�����D�+�i���X�
�
�
�2�
3�r����t�f�%�4�����b�l�l�&9�&9�:�4�
3�s�A9�9Bc���td��}|jdddd��|j|d�|j|d	�|jtt
|d
�y)NFrr]r�r�r�r�r4rNr)r�r�rtr�r�r�r0s  r�test_version_no_helpz4TestOptionalsHelpVersionActions.test_version_no_help�sX��+�U�;�����D�+�i���O��&�&�v�t�4��&�&�v�x�8����.�'�6�;K�Lrc��td��}|jddd��|jt�5}|j	dg�ddd�|jdjj�y#1swY�0xYw)NryrVr�r�z%(prog)s 3.7r�zXXX 3.7
r#r�s   r�test_version_actionz3TestOptionalsHelpVersionActions.test_version_action�sj��+��7�����D��N��K�
�
�
�2�
3�r����t�f�%�4�����b�l�l�&9�&9�:�4�
3�s�A8�8Bc��td��}|j|d�|j|d�|j|d�|j|d�y)NFrr4rNr]r�)r�rtr0s  r�test_no_helpz,TestOptionalsHelpVersionActions.test_no_help�sL��+�U�;���&�&�v�t�4��&�&�v�x�8��&�&�v�t�4��&�&�v�{�;rc��t�}|jdd��|jdd��|j|d�|j|d�|j|d�|j	t
t|d�y)	Nr�r}r�r	r�r]r�r)r�r�rrtr�r�r�r0s  r�test_alternate_help_versionz;TestOptionalsHelpVersionActions.test_alternate_help_version�su��+�-�����D���0����D���3�� � ���.��&�&�v�t�4��&�&�v�{�;����.�'�6�;K�Lrc�T�t�}|jddd��|jdd��|jd�gd	�}|d
dgz}|D]V}|D]	}|�d|��}�|j|d
z�|j||dz�|jtt
|d��Xy)Nr�r�r�r�r�r�r�rZ)rr�r'z-x barzbaz -xz--bad-optionzfoo bar bazz %s r4rNrr)rr1�valid_prefixes�valid_suffixes�prefix�suffixrDs       r�!test_help_version_extra_argumentszATestOptionalsHelpVersionActions.test_help_version_extra_arguments�s���+�-�����K�	�5��I����D���6����C� �?��'�>�=�*I�I��$�F�(��(.��7��)��$�$�V�V�d�]�;��$�$�V�V�h�->�?����n�g�v�?O�P�%rN)rrr rrtr r$r&r(r*r,r2r@rrrr�s8��+�D�
H�M�;�M�;�<�M�Qrrc�>�eZdZ	d�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
y	)
�TestStringsc�V�ttfD]}|j||�|��yrN)r�r�r�)r�obj�
result_stringr5s    r�assertStringEqualzTestStrings.assertStringEqual�s$���$�K�D����T�#�Y�
�6� rc�p�tjgd�ddddgd�ddd	�
�	}d}|j||�y)N)r�r�r�r}r�r�r�rsr�rxF�HELP�METAVAR�	r�r&r�rurmr�r�r}r�z�Action(option_strings=['--foo', '-a', '-b'], dest='b', nargs='+', const=None, default=42, type='int', choices=[1, 2, 3], required=False, help='HELP', metavar='METAVAR'))r*r_r8)r�optionrFs   r�
test_optionalzTestStrings.test_optional�sH�����0���������	��
Q�	�	
���v�v�.rc��tjgdtddgd�ddd��	}d	tz}|j||�y)
Nr�r�r�)r�g�?r�TzH HH HzMV MV MVr=z�Action(option_strings=[], dest='x', nargs='?', const=None, default=2.5, type=%r, choices=[0.5, 1.5, 2.5], required=True, help='H HH H', metavar='MV MV MV'))r*r_r�r8)r�argumentrFs   r�
test_argumentzTestStrings.test_argument�sQ���?�?������#����	 ��
@�BG�
H�	�	
���x��0rc�Z�tjdd��}d}|j||�y)Nrr�r zNamespace(foo=42, bar='spam')�r*rr8�rrrFs   r�test_namespacezTestStrings.test_namespace�s)��
�
�
�B�F�
3��0�����r�6�*rc�Z�tjdiddi��}d}|j||�y)N�"�quotezNamespace(**{'"': 'quote'})r@rDrEs   r�'test_namespace_starkwargs_notidentifierz3TestStrings.test_namespace_starkwargs_notidentifiers.��
�
�
�
1�3��.�
1��2�����r�6�*rc�^�tjdddiddi��}d}|j||�y)Nr�rsrHrIz Namespace(a=1, **{'"': 'quote'})r@rDrEs   r�2test_namespace_kwargs_and_starkwargs_notidentifierz>TestStrings.test_namespace_kwargs_and_starkwargs_notidentifiers3��
�
�
�
6�!�
6��W�~�
6��7�����r�6�*rc�Z�tjdiddi��}d}|j||�y)N�validTzNamespace(valid=True)r@rDrEs   r�$test_namespace_starkwargs_identifierz0TestStrings.test_namespace_starkwargs_identifiers.��
�
�
�
2�7�D�/�
2��(�����r�6�*rc�z�tjd��}dtjz}|j||�y)NrwrVzvArgumentParser(prog='PROG', usage=None, description=None, formatter_class=%r, conflict_handler='error', add_help=True))r*r+�
HelpFormatterr8)rr1rFs   r�test_parserzTestStrings.test_parsers<���(�(�f�5��
�'�5�5�
6�	�	
���v�v�.rN)rrr r8r?rBrFrJrLrOrRr@rrr4r4�s-��=�7�/�"1�"+�
+�
+�
+�
/rr4c��eZdZd�Zd�Zd�Zy)�
TestNamespacec��tj�}|jtt|d�tjdd��}|j|jd�|j|jd�y)Nr�rr�r0)r*rr�r�r�r�r�r}rs  r�test_constructorzTestNamespace.test_constructors^��
�
�
�
!�����.�'�2�s�;�
�
�
�"��
/��������r�"�������v�&rc��tjdd��}tjdd��}tjd��}tjd��}|j||�|j||�|j||�|j||�|j||�|j	||k7�|j	||k7�|j	||k7�|j	||k7�y)Nrsr�r0)r}r�)r�r�)r*rr��assertNotEqual�
assertTrue)r�ns1�ns2�ns3�ns4s     r�
test_equalityzTestNamespace.test_equality&s���� � �1��*��� � �1��*��� � �1�%��� � �1�%������c�"����C��%����C��%����C��%����C��%�����s�
�#�����s�
�#�����s�
�#�����s�
�#rc���tjdd��}|j|jd�t�|j|jd�t�y)Nrsr�r0)r*rr�r��NotImplemented�__ne__rs  r�$test_equality_returns_notimplementedz2TestNamespace.test_equality_returns_notimplemented6s@��
�
�
�!�q�
)���
�
�b�i�i��o�~�6��
�
�b�i�i��o�~�6rN)rrr rVr^rbr@rrrTrTs��'�$� 7rrTc��eZdZd�Zd�Zd�Zy)�TestEncodingc��tjj|�\}}|dz
}t|dd��5}|j	�ddd�y#1swYyxYw)Nz.pyrrrg)rRrZ�splitextrir�)rrZr�rs    r�_test_module_encodingz"TestEncoding._test_module_encodingCsF���'�'�"�"�4�(���a���
��
�$��g�
.�!�
�F�F�H�/�
.�
.�s�A�Ac�B�|jtj�yrN)rgr*�__file__rs r�test_argparse_module_encodingz*TestEncoding.test_argparse_module_encodingIs���"�"�8�#4�#4�5rc�.�|jt�yrN)rgrirs r�"test_test_argparse_module_encodingz/TestEncoding.test_test_argparse_module_encodingLs���"�"�8�,rN)rrr rgrjrlr@rrrdrdAs���6�-rrdc��eZdZd�Zy)�TestArgumentErrorc�j�d}tjd|�}|jt|�|�y)Nz
my error here)r*r�r�r�)rr�r�s   r�test_argument_errorz%TestArgumentError.test_argument_errorUs-�����&�&�t�S�1������U��S�)rN)rrr rpr@rrrnrnSs��*rrnc��eZdZd�Zy)�TestArgumentTypeErrorc��d�}tdd��}|jd|��|jt�5}|j	dg�ddd�|jdjj�y#1swY�0xYw)	Nc�,�tjd��)N�spam!)r*�ArgumentTypeErrorrEs rr�z<TestArgumentTypeError.test_argument_type_error.<locals>.spambs���,�,�W�5�5rrwFr\r�r�ryz-usage: PROG x
PROG: error: argument x: spam!
)r�r�r�r�r:r�r�r�)rr�r1r�s    r�test_argument_type_errorz.TestArgumentTypeError.test_argument_type_error`su��	6�,��%�H�����C�d��+�
�
�
�2�
3�r����u�g�&�4����J����,�,�	.�4�
3�s�A;�;BN)rrr rwr@rrrrrr^s��
.rrrc��eZdZd�Zd�Zd�Zy)�TestMessageContentErrorc���tdd��}|jdt��|jdtd��|jd	td
��|j	t
�5}|j
g�ddd�tj�}|j|d�|j|d�|j|d	�|j	t
�5}|j
d
g�ddd�t|j�}|j|d�|j|d�|j|d	�|j	t
�5}|j
d
dg�ddd�t|j�}|j|d�|j|d�|j|d	�y#1swY��MxYw#1swY��xYw#1swY�nxYw)Nrwrr}�req_posr��-req_optTr��need_oner�)r�ru�req_opt�myXargumentz
-req_opt=1)
r�r�r�r�r�r�r:r�r=r�rr1r�r�s    r�%test_missing_argument_name_in_messagez=TestMessageContentError.test_missing_argument_name_in_messagers���+��r�B�����I�C��0����J�S�4��@����J�S���<�
�
�
�2�
3�r����b�!�4��"�,�,�������i�(�����i�(�����j�)�
�
�
�2�
3�r����}�o�.�4��"�,�,�������i�(�����i�(�����j�)�
�
�
�2�
3�r����}�l�;�<�4��"�,�,�������i�(�����i�(�����j�)�#4�
3��4�
3��4�
3�s$�*G�$G�G �G�G� G)c���tdd��}|jdt��|jdtd��|jd	td
d��|jt�5}|jg�ddd�tj�}|j|d�|j|d�|j|d
�|jt�5}|jdg�ddd�t|j�}|j|d�|j|d�|j|d
�y#1swY��xYw#1swY�axYw)Nrwrr}r{r�z	--req_optTr�z	--opt_optr�)r�rurmr~�opt_optz--req_opt=1)r�r�r�r�r�r�r�r:r�r=rr�s    r�%test_optional_optional_not_in_messagez=TestMessageContentError.test_optional_optional_not_in_message�s*��+��r�B�����I�C��0����K�c�D��A����K�d�#�$(�	�	*�
�
�
�2�
3�r����b�!�4��"�,�,�������i�(�����i�(�����i�(�
�
�
�2�
3�r����}�o�.�4��"�,�,�������i�(�����i�(�����i�(�4�
3��4�
3�s�+E�%E�E�E!c�P�tdd��}|jd�|jddd��|jt�5}|j	g�ddd�tj�}|j|d�|j|d�y#1swY�CxYw)	Nrwrr}r{�optional_positionalr�r(r�)	r�r�r�r�r:r�r�r=rr�s    r�'test_optional_positional_not_in_messagez?TestMessageContentError.test_optional_positional_not_in_message�s���+��r�B�����I�&����1��f��M�
�
�
�2�
3�r����b�!�4��"�,�,�������i�(�����3�4�	4�
3�s�B�B%N)rrr r�r�r�r@rrryryps��*�2)�&5rryc��eZdZd�Zy)�TestTypeFunctionCallOnlyOncec�����fd�}tj�}|jd|d��|jdj	��}�jt
d��|�y)Nc�*���j|d�y)Nru�
foo_converted�r�)�string_to_convertrs �rr�zLTestTypeFunctionCallOnlyOnce.test_type_function_call_only_once.<locals>.spam�s������.��8�"rr�rBr�z--foo spam!r�r)r*r+r�r:r�r�rz�rr�r1rus`   r�!test_type_function_call_only_oncez>TestTypeFunctionCallOnlyOnce.test_type_function_call_only_once�s[���	#��(�(�*�����G�$���>�� � ��!4�!4�!6�7�������0�$�7rN)rrr r�r@rrr�r��s��8rr�c�$�eZdZd�Zd�Zd�Zd�Zy)�TestTypeFunctionCalledOnDefaultc����fd�}tj�}|jd|d��|jg�}�j	td��|�y)Nc�*���j|d�y)Nrr�r�)�int_to_convertrs �rr�z]TestTypeFunctionCalledOnDefault.test_type_function_call_with_non_string_default.<locals>.spam�s������^�Q�/�"rr�rr�r�r*r+r�r:r�rzr�s`   r�/test_type_function_call_with_non_string_defaultzOTestTypeFunctionCalledOnDefault.test_type_function_call_with_non_string_default�sQ���	#��(�(�*�����G�$���:�� � ��$��������D�)rc��d�}tj�}|jd|d��|jg�}|j	td��|�y)Nc��y)Nr�r@)r�s rr�zYTestTypeFunctionCalledOnDefault.test_type_function_call_with_string_default.<locals>.spam�s��"rr��0r�r�rr�r�s    r�+test_type_function_call_with_string_defaultzKTestTypeFunctionCalledOnDefault.test_type_function_call_with_string_default�sQ��	#��(�(�*�����G�$���<�� � ��$�������0�$�7rc��d�}tj�}|jd|d��|jg�}|j	td��|�y)Nc��|dzS)Nr�r@)�str_to_converts rrkzYTestTypeFunctionCalledOnDefault.test_no_double_type_conversion_of_default.<locals>.extend�s
��!�C�'�'r�--testr�r�z**)r#r�)rrkr1rus    r�)test_no_double_type_conversion_of_defaultzITestTypeFunctionCalledOnDefault.test_no_double_type_conversion_of_default�sR��	(��(�(�*�����H�6�3��?�� � ��$��	
�������-rc��tj�}|jddtgd��|j	g�}|j|jg�y)Nr�r#r�)r&r�rmr�)r*r+r�r�r:r�r#rs   r�test_issue_15906z0TestTypeFunctionCalledOnDefault.test_issue_15906�sT���(�(�*�����H�6��$&�x�	�	9�� � ��$��������B�'rN)rrr r�r�r�r�r@rrr�r��s��	*�8�
.�(rr�c�6�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	y)	�TestParseKnownArgsc�N�tj�}|jd�y)Nr@�r*r+r:r0s  r�test_arguments_tuplez'TestParseKnownArgs.test_arguments_tuple�����(�(�*�����"�rc�N�tj�}|jg�yrNr�r0s  r�test_arguments_listz&TestParseKnownArgs.test_arguments_list�r�rc�p�tj�}|jd�|jd�y)Nr�r��r*r+r�r:r0s  r�test_arguments_tuple_positionalz2TestParseKnownArgs.test_arguments_tuple_positional�s,���(�(�*�����C� ����&�!rc�r�tj�}|jd�|jdg�y)Nr�r�r0s  r�test_arguments_list_positionalz1TestParseKnownArgs.test_arguments_list_positional�s.���(�(�*�����C� ����3�%� rc���tj�}|jd�|jdj	��\}}|jt
d��|�|jddg|�y)Nr�z--foo F --bar --baz�Frr-rc)r*r+r�r�r�r�rz)rr1ru�extrass    r�test_optionalsz!TestParseKnownArgs.test_optionalsse���(�(�*�����G�$��.�.�/D�/J�/J�/L�M���f�������d�+����'�7�+�V�4rc�:�tj�}|jdddt��|jdd��|jd�gd	�}|j	|�\}}|jt
d
dd�
�|�|jgd�|�y)Nr]r�rs)rurr�r�r�r�r2)r@r@r�r]r�rdrxTr@)�vr�r2)r@r�rd)r*r+r�r�r�r�rz)rr1r�rur�s     r�
test_mixedzTestParseKnownArgs.test_mixed	s����(�(�*�����D��1�3��?����H�]��;����H�%�2���.�.�t�4���f�����a�d�3�7��>����,�f�5rc��tj�}|jddd��|jg�}|j	tg��|�y)Nr�r�rn)rur�r�r�rs   r�test_zero_or_more_optionalz-TestParseKnownArgs.test_zero_or_more_optionalsI���(�(�*�����C�s�J��?�� � ��$������b��4�(rN)
rrr r�r�r�r�r�r�r�r@rrr�r��s%����"�
!�
5�	6�)rr�c�0�eZdZd�Zd�Zd�Zd�Zd�Zd�Zy)�TestDoubleDashc�~�tjd��}|jdd�|jdd��|jdg�}|j	td	g�
�|�|j
tjd|jdd	g�|jdg�}|j	td	g�
�|�|j
tjd|jdd	g�|jgd
��}|j	tdddg�
�|�|jgd��}|j	tdddg�
�|�|jgd��}|j	tdgd��
�|�|jgd��}|j	tdgd��
�|�y)NF��
exit_on_errorrr�rBr�rt�--foo=--r�r z(argument -f/--foo: expected one argument�-f--)r�r�r�r}r~r�r}r~)r�r}r�r~)r�r�r}r�r~)r�r�r}r�r~r�r�)r�r}r�r~r�r�)r*r+r�r:r�rzr�r�rs   r�test_single_argument_optionz*TestDoubleDash.test_single_argument_options����(�(�u�=�����D�'�*����E���-�� � �*��.�������"�-�t�4����x�5�5�6�������	0�� � �&��*�������"�-�t�4����x�5�5�6�����d�|�	-�� � �!?�@�������#�s��4�d�;�� � �!9�:�������#�s��4�d�;�� � �!?�@�������*B�C�T�J�� � �!J�K�������*M�N�PT�Urc���tjd��}|jddd��|jdd��|jdg�}|j	td	gg�
�|�|jdd	g�}|j	tgg�
�|�|jdg�}|j	td	gg�
�|�|jdd	g�}|j	tgg�
�|�|jgd��}|j	td
dgddg�
�|�|jgd��}|j	tddgd
dg�
�|�|jgd��}|j	tdgd��
�|�|j
gd��\}}|j	tdgd
dg�
�|�|j	|d	dg�y)NFr�rr�r�rtrBr�r�r r�)r�r�r}r�r~r�r�r}r~r�)r�r}r�r~r�)r�r�r}r�r~r�)r�r}r�r~r�r�)r*r+r�r:r�rzr�)rr1rur�s    r�test_multiple_argument_optionz,TestDoubleDash.test_multiple_argument_option4s����(�(�u�=�����D�'���5����E���-�� � �*��.��������B�/��6�� � �'�4��1��������+�T�2�� � �&��*��������B�/��6�� � �$���.��������+�T�2�� � �!D�E�������c�
��c�
�;�T�B�� � �!>�?�������c�
��c�
�;�T�B�� � �!D�E�������*G�H�$�O��,�,�-P�Q�
��d�������C��:�6��=������c�{�+rc�l�tjd��}|jd�|jdd��|jgd��}|j	tdd	d
g��|�|jgd��}|j	tdd	d
g��|�|jgd
��}|j	tdd	d
g��|�|jgd��}|j	tdgd���|�|jgd��}|j	tdgd���|�y)NFr�r'rBr�rt�r�r�r}r~r�r}r~r �r�r�r}r~�r�r}r�r~�r�r�r}r�r~�r}r�r~)r�r�r�r�r}r~r�r�rs   r�test_multiple_double_dashesz*TestDoubleDash.test_multiple_double_dashesKs	���(�(�u�=�����E�"����E���-�� � �!6�7�������#�s��4�d�;�� � �!6�7�������#�s��4�d�;�� � �!6�7�������#�s��4�d�;�� � �!<�=�������)9�:�D�A�� � �!B�C�������*?�@�$�Grc���tjd��}|jd�|jdd��|jgd��}|j	tdd	d
g��|�|jgd��}|j	tdd	d
g��|�|jgd
��}|j	tdgd���|�|jgd��}|j	tdgd���|�tjd��}|jd�|jdd��|jgd��}|j	tdgd���|�y)NFr�r'rBryrtr�r�r}r~r r�r�r�r�r�)r�r�r�r}r�r~)r�r}r�r~r�rs   r�test_remainderzTestDoubleDash.test_remainder[s7���(�(�u�=�����E�"����E���/�� � �!6�7�������#�s��4�d�;�� � �!6�7�������#�s��4�d�;�� � �!6�7�������)9�:�D�A�� � �!<�=�������)9�:�D�A��(�(�u�=�����G�$����E���/�� � �!E�F�������)?�@�$�Grc�h�tjd��}|jd�|j�}|j	d�}|jd�|jdd��|jgd	��}|j
td
ddd
g��|�|jgd��}|j
td
dgd���|�|jgd��}|j
td
dgd���|�|jgd��}|j
td
dgd���|�|jgd��}|j
td
ddd
g��|�|jgd��}|j
td
ddd
g��|�|jgd��}|j
td
dgd���|�|jgd��}|j
td
dgd���|�|jtjd|j
gd��y)NFr�r'r�rrBr�rt)r�r�r�r}rr~r�r~r�r}�r'rrB)r�r�r�r}r�rr~)r�r}rr~)r�r�r�r�r}rr~)r�r�r�r�r}rr~)r�r�r�r�r}rr~)r�r�r�r�r}rr~)r�r�r�r�r�r})r�r�r})r�r�r�r�r�r�r}�invalid choice: '--')r�r�r�r�r�r}�
r*r+r�r�r�r:r�rzr�r��rr1r�r�rus     r�test_subparserzTestDoubleDash.test_subparseros����(�(�u�=�����E�"��*�*�,�
��'�'��.�����T�"����U�#��.�� � �!B�C�������s��c�
�;�T�B�� � �!H�I�������t�1F�G��N�� � �!H�I�������t�1F�G��N�� � �!H�I�������t�1F�G��N�� � �!H�I�������s��c�
�;�T�B�� � �!H�I�������s��c�
�;�T�B�� � �!C�D�������t�1A�B�D�I�� � �!I�J�������t�1A�B�D�I����x�5�5�"����A�	Crc��tjd��}|jdd��|j�}|j	d�}|jd�|jdd��|jgd	��}|j
td
dgdd
dg��|�|jtjd|j
gd��y)NFr�r�r�rtr�rrB)	r�r�rZr�r�r�r}rr~r�rZr~r�r}r�r�)r�r�r�r�r�r�r}r�r�s     r�-test_subparser_after_multiple_argument_optionz<TestDoubleDash.test_subparser_after_multiple_argument_option�s����(�(�u�=�����G�3��/��*�*�,�
��'�'��.�����T�"����U�#��.�� � �!V�W�������c�
�c��S�z�B�D�I����x�5�5�"����J�	LrN)	rrr r�r�r�r�r�r�r@rrr�r�s%��V�0,�.H� H�(C�8Lrr�c�$�eZdZd�Zd�Zd�Zd�Zy)�TestIntermixedArgsc	��tjd��}|jdd��|jddd�	�}|jd
�|jddt�
�dj	�}|j|�}|j
tdd
dgd���|�|j|�\}}|j
tdd
ddg��|�|j
ddg|�dj	�}|j|�\}}|j
tdd
ddg��|�|j
gd�|�|j|j�|j
|jd�y)NrwrVr�r'r%r-rBTr��cmd�restr�)rur�zcmd --foo x 1 --bar y 2 3rZr�r:)rBr�r'r�rsr�r�z!cmd --foo x 1 --error 2 --bar y 3)z--errorr�r�)
r*r+r�r�r��parse_intermixed_argsr�rzr��parse_known_intermixed_argsr�r,r�)rr1rBr�rur�s      r�
test_basiczTestIntermixedArgs.test_basic�sU���(�(�f�5�����G�%��0��!�!�'���!�E�����E�"����F�#�C��8�*�0�0�2���+�+�D�1��������C�i�H�$�O��.�.�t�4���f�������C�q�c�B�D�I����#�s��V�,�2�8�8�:���9�9�$�?���f�������C�q�c�B�D�I����.��7�	
���&�,�,�'�������t�,rc�f�td��}|jd�|jd�|jdd��dj�}|jt�5}|j|�ddd�|j
tj�d	�y#1swY�/xYw)
NrwrVrr�rZryrtr|z\.\.\.)	r�r�r�r�r�r�r=r�r�)rr1r�r�s    rr�z!TestIntermixedArgs.test_remainder�s���+��8�����D�!����C� ����C�u��-��!�!�#���
�
�y�
)�R��(�(��.�*�����R�\�\�*�I�6�*�
)�s�'B'�'B0c���td��}|jd��}|jddd��|jd	d
��|jdd
dd��|jdj	��}|jt
ddgdd��|�|jt|jdj	��|j|jd�y)NrwrVTr�r�r�r�r|r�r�r�r2r�r4r�r�z	1 --foo 2rr�)r2r'r�r)
r�rr�r�r�r�rzr�r�r�)rr1r�rus    r�test_exclusivez!TestIntermixedArgs.test_exclusive�s���+��8���3�3�T�3�B��
���7�<�e��D�
���8�&��1����H�C��8��L��+�+�K�,=�,=�,?�@������C��:�4�d�C�T�J����-�v�/K�/K�U�[�[�]�[��������.rc�2�td��}|jd��}|jddd��|jd	d
��|jdd
dd��|jt|j
g�|j
|jd�y)NrwrVTr�r�r�r�r|r�r�r�r2r�r4r�r�)r�rr�r�r�r�r�r�r`s   r�test_exclusive_incompatiblez.TestIntermixedArgs.test_exclusive_incompatible�s���+��8���3�3�T�3�B��
���7�<�e��D�
���8�&��1�
���8�3��(��K����)�V�%A�%A�2�F��������.rN)rrr r�r�r�r�r@rrr�r��s��-�67�
/�/rr�c��eZdZd�Zy)�!TestIntermixedMessageContentErrorc�L�tdd��}|jdt��|jdtd��|j	t
�5}|j
g�ddd�tj�}|j|d�|j|d	�|j	t
�5}|jg�ddd�t|j�}|j|d�|j|d	�y#1swY��xYw#1swY�OxYw)
Nrwrr}r{r�r|Tr�r~)r�r�r�r�r�r�r:r�r=r��assertNotRegexr�s    rr�zGTestIntermixedMessageContentError.test_missing_argument_name_in_message�s���+��r�B�����I�C��0����J�S�4��@�
�
�
�2�
3�r����b�!�4��"�,�,�������i�(�����i�(�
�
�
�2�
3�r��(�(��,�4��"�,�,������C��+�����i�(�4�
3��4�
3�s�D�:D�D�D#N)rrr r�r@rrr�r��s��)rr�c�*�eZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z!d �Z"d!�Z#d"�Z$d#�Z%d$�Z&d%�Z'd&�Z(d'�Z)d(�Z*d)�Z+d*�Z,d+�Z-d,�Z.d-�Z/d.�Z0d/�Z1d0�Z2y1)2�TestAddArgumentMetavarz,length of metavar tuple does not match nargsc�T�tj�}|jd||��y)Nr��rur�)r*r+r�)rrur�r1s    r�do_test_no_exceptionz+TestAddArgumentMetavar.do_test_no_exception�s%���(�(�*�����G�5�'��Brc��tj�}|jt�5}|j	d||��ddd�|jjjd|j�y#1swY�=xYw)Nr�r�r)	r*r+r�r"r�r�r�ru�EXPECTED_MESSAGE)rrur�r1r�s     r�do_test_exceptionz(TestAddArgumentMetavar.do_test_exception�sh���(�(�*��
�
�
�z�
*�b�����u�g��F�+�������*�*�1�-�t�/D�/D�E�+�
*�s�A;�;Bc�*�|jdd��y)Nrr��r�rs r�test_nargs_None_metavar_stringz5TestAddArgumentMetavar.test_nargs_None_metavar_strings���!�!��c�!�:rc�:�|jdt���y)Nr��r��tuplers r�test_nargs_None_metavar_length0z6TestAddArgumentMetavar.test_nargs_None_metavar_length0s�����T�5�7��;rc�*�|jdd��y)Nr�r�r�rs r�test_nargs_None_metavar_length1z6TestAddArgumentMetavar.test_nargs_None_metavar_length1s���!�!��f�!�=rc�*�|jdd��y)N�rr�r��r�rs r�test_nargs_None_metavar_length2z6TestAddArgumentMetavar.test_nargs_None_metavar_length2s�����T�:��>rc�*�|jdd��y)Nr�r�r�rs r�test_nargs_None_metavar_length3z6TestAddArgumentMetavar.test_nargs_None_metavar_length3s�����T�?��Crc�*�|jdd��y)Nr�rr�r�rs r�"test_nargs_optional_metavar_stringz9TestAddArgumentMetavar.test_nargs_optional_metavar_string����!�!��S�!�9rc�:�|jdt���y)Nr�r�r�rs r�#test_nargs_optional_metavar_length0z:TestAddArgumentMetavar.test_nargs_optional_metavar_length0������S�%�'��:rc�*�|jdd��y)Nr�r�r�r�rs r�#test_nargs_optional_metavar_length1z:TestAddArgumentMetavar.test_nargs_optional_metavar_length1����!�!��V�!�<rc�*�|jdd��y)Nr�r�r�r�rs r�#test_nargs_optional_metavar_length2z:TestAddArgumentMetavar.test_nargs_optional_metavar_length2s�����S�*��=rc�*�|jdd��y)Nr�r�r�r�rs r�#test_nargs_optional_metavar_length3z:TestAddArgumentMetavar.test_nargs_optional_metavar_length3"������S�/��Brc�*�|jdd��y)Nr�rr�r�rs r�$test_nargs_zeroormore_metavar_stringz;TestAddArgumentMetavar.test_nargs_zeroormore_metavar_string'r�rc�:�|jdt���y)Nr�r�r�rs r�%test_nargs_zeroormore_metavar_length0z<TestAddArgumentMetavar.test_nargs_zeroormore_metavar_length0*rrc�*�|jdd��y)Nr�r�r�r�rs r�%test_nargs_zeroormore_metavar_length1z<TestAddArgumentMetavar.test_nargs_zeroormore_metavar_length1-rrc�*�|jdd��y)Nr�r�r�r�rs r�%test_nargs_zeroormore_metavar_length2z<TestAddArgumentMetavar.test_nargs_zeroormore_metavar_length20����!�!��Z�!�@rc�*�|jdd��y)Nr�r�r�r�rs r�%test_nargs_zeroormore_metavar_length3z<TestAddArgumentMetavar.test_nargs_zeroormore_metavar_length33r	rc�*�|jdd��y)Nr�rr�r�rs r�#test_nargs_oneormore_metavar_stringz:TestAddArgumentMetavar.test_nargs_oneormore_metavar_string8r�rc�:�|jdt���y)Nr�r�r�rs r�$test_nargs_oneormore_metavar_length0z;TestAddArgumentMetavar.test_nargs_oneormore_metavar_length0;rrc�*�|jdd��y)Nr�r�r�r�rs r�$test_nargs_oneormore_metavar_length1z;TestAddArgumentMetavar.test_nargs_oneormore_metavar_length1>s�����S�&��9rc�*�|jdd��y)Nr�r�r�r�rs r�$test_nargs_oneormore_metavar_length2z;TestAddArgumentMetavar.test_nargs_oneormore_metavar_length2Arrc�*�|jdd��y)Nr�r�r�r�rs r�$test_nargs_oneormore_metavar_length3z;TestAddArgumentMetavar.test_nargs_oneormore_metavar_length3Dr	rc�*�|jdd��y)Nryrr�r�rs r�#test_nargs_remainder_metavar_stringz:TestAddArgumentMetavar.test_nargs_remainder_metavar_stringIs���!�!��s�!�;rc�:�|jdt���y)Nryr�)r�r�rs r�$test_nargs_remainder_metavar_length0z;TestAddArgumentMetavar.test_nargs_remainder_metavar_length0Ls���!�!��u�w�!�?rc�*�|jdd��y)Nryr�r�r�rs r�$test_nargs_remainder_metavar_length1z;TestAddArgumentMetavar.test_nargs_remainder_metavar_length1Os���!�!��v�!�>rc�*�|jdd��y)Nryr�r�r�rs r�$test_nargs_remainder_metavar_length2z;TestAddArgumentMetavar.test_nargs_remainder_metavar_length2Rs���!�!��z�!�Brc�*�|jdd��y)Nryr�r�r�rs r�$test_nargs_remainder_metavar_length3z;TestAddArgumentMetavar.test_nargs_remainder_metavar_length3Us���!�!���!�Grc�*�|jdd��y)N�A...rr�r�rs r� test_nargs_parser_metavar_stringz7TestAddArgumentMetavar.test_nargs_parser_metavar_stringZs���!�!���!�<rc�:�|jdt���y)Nr*r�r�rs r�!test_nargs_parser_metavar_length0z8TestAddArgumentMetavar.test_nargs_parser_metavar_length0]s�����V�U�W��=rc�*�|jdd��y)Nr*r�r�r�rs r�!test_nargs_parser_metavar_length1z8TestAddArgumentMetavar.test_nargs_parser_metavar_length1`s���!�!���!�?rc�*�|jdd��y)Nr*r�r�r�rs r�!test_nargs_parser_metavar_length2z8TestAddArgumentMetavar.test_nargs_parser_metavar_length2cs�����V�Z��@rc�*�|jdd��y)Nr*r�r�r�rs r�!test_nargs_parser_metavar_length3z8TestAddArgumentMetavar.test_nargs_parser_metavar_length3fs�����V�_��Erc�*�|jdd��y)Nrsrr�r�rs r�test_nargs_1_metavar_stringz2TestAddArgumentMetavar.test_nargs_1_metavar_stringk����!�!��3�!�7rc�:�|jdt���y)Nrsr�r�rs r�test_nargs_1_metavar_length0z3TestAddArgumentMetavar.test_nargs_1_metavar_length0n������Q����8rc�*�|jdd��y)Nrsr�r�r�rs r�test_nargs_1_metavar_length1z3TestAddArgumentMetavar.test_nargs_1_metavar_length1qs���!�!��6�!�:rc�*�|jdd��y)Nrsr�r�r�rs r�test_nargs_1_metavar_length2z3TestAddArgumentMetavar.test_nargs_1_metavar_length2t������Q�
��;rc�*�|jdd��y)Nrsr�r�r�rs r�test_nargs_1_metavar_length3z3TestAddArgumentMetavar.test_nargs_1_metavar_length3w������Q���@rc�*�|jdd��y)Nr�rr�r�rs r�test_nargs_2_metavar_stringz2TestAddArgumentMetavar.test_nargs_2_metavar_string|r6rc�:�|jdt���y)Nr�r�r�rs r�test_nargs_2_metavar_length0z3TestAddArgumentMetavar.test_nargs_2_metavar_length0r9rc�*�|jdd��y)Nr�r�r�r�rs r�test_nargs_2_metavar_length1z3TestAddArgumentMetavar.test_nargs_2_metavar_length1�������Q���7rc�*�|jdd��y)Nr�r�r�r�rs r�test_nargs_2_metavar_length2z3TestAddArgumentMetavar.test_nargs_2_metavar_length2�s���!�!��:�!�>rc�*�|jdd��y)Nr�r�r�r�rs r�test_nargs_2_metavar_length3z3TestAddArgumentMetavar.test_nargs_2_metavar_length3�rArc�*�|jdd��y)Nrxrr�r�rs r�test_nargs_3_metavar_stringz2TestAddArgumentMetavar.test_nargs_3_metavar_string�r6rc�:�|jdt���y)Nrxr�r�rs r�test_nargs_3_metavar_length0z3TestAddArgumentMetavar.test_nargs_3_metavar_length0�r9rc�*�|jdd��y)Nrxr�r�r�rs r�test_nargs_3_metavar_length1z3TestAddArgumentMetavar.test_nargs_3_metavar_length1�rHrc�*�|jdd��y)Nrxr�r�r�rs r�test_nargs_3_metavar_length2z3TestAddArgumentMetavar.test_nargs_3_metavar_length2�r>rc�*�|jdd��y)Nrxr�r�r�rs r�test_nargs_3_metavar_length3z3TestAddArgumentMetavar.test_nargs_3_metavar_length3�s���!�!��?�!�CrN)3rrr r�r�r�r�r�r�r�r�r�rrrrrr
rrrrrrrrr r"r$r&r(r+r-r/r1r3r5r8r;r=r@rCrErGrJrLrNrPrRrTrVr@rrr�r��s��E��C�F�;�<�>�?�D�
:�;�=�>�C�
:�;�=�A�C�
:�;�:�A�C�
<�@�?�C�H�
=�>�@�A�F�
8�9�;�<�A�
8�9�8�?�A�
8�9�8�<�Drr�c�,�eZdZdZdZd�Zd�Zd�Zd�Zy)�TestInvalidNargszinvalid nargs valuez�nargs for store actions must be != 0; if you have nothing to store, actions such as store true or store const may be more appropriatec��tj�}|jt�5}|j	d|��ddd�|jjjd|j�y#1swY�=xYw�Nr�rtr)	r*r+r�r"r�r�r�ru�EXPECTED_RANGE_MESSAGE�rrur1r�s    r�do_test_range_exceptionz(TestInvalidNargs.do_test_range_exception�sf���(�(�*��
�
�
�z�
*�b�����u��5�+�������*�*�1�-�t�/J�/J�K�+�
*���A:�:Bc��tj�}|jt�5}|j	d|��ddd�|jjjd|j�y#1swY�=xYwrZ)	r*r+r�r"r�r�r�ru�EXPECTED_INVALID_MESSAGEr\s    r�do_test_invalid_exceptionz*TestInvalidNargs.do_test_invalid_exception�sf���(�(�*��
�
�
�z�
*�b�����u��5�+�������*�*�1�-�t�/L�/L�M�+�
*�r^c�L�|jd��|jd��y)Nr�rt�abcd)rars r�test_nargs_alphabeticz&TestInvalidNargs.test_nargs_alphabetic�s$���&�&�S�&�1��&�&�V�&�4rc�(�|jd��y)Nrrt)r]rs r�test_nargs_zeroz TestInvalidNargs.test_nargs_zero�s���$�$�1�$�-rN)	rrr r`r[r]rardrfr@rrrXrX�s'��4��L��L�N�5�.rrXc��eZdZd�Zd�Zy)�TestImportStarc�l�tjD]!}|jtt|���#yrN)r*�__all__rYr�r�s  rr#zTestImportStar.test�s%���$�$�D��O�O�G�H�d�3�4�%rc�(�tt�j�D��cgc]2\}}|jd�s|dk(st	j
|�s|��4}}}|j
t|�ttj��ycc}}w)Nr��ngettext)	r�r*r��
startswith�inspect�ismoduler�r�rj)rrcr1r�s    r�'test_all_exports_everything_but_modulesz6TestImportStar.test_all_exports_everything_but_modules�s|�� $�H�~�3�3�5�
�5���e��O�O�C�(�D�J�,>��#�#�E�*�
�5�	�
�	
�������x�/?�/?�(@�A��

s�7BN)rrr r#rpr@rrrhrh�s
��5�Brrhc�$��eZdZ�fd�Zd�Z�xZS)�TestWrappingMetavarc���t�|��td�|_d}|jj	d|��y)N�9this_is_spammy_prog_with_a_long_name_sorry_about_the_namez<http[s]://example:1234>z--proxyrY)rrJr�r1r�)rr�rs  �rrJzTestWrappingMetavar.setUp�s9���
��
��0�G�
���
-����� � ��G� �<rc��|jj�}|j|tjd��y)Na            usage: this_is_spammy_prog_with_a_long_name_sorry_about_the_name
                   [-h] [--proxy <http[s]://example:1234>]

            options:
              -h, --help            show this help message and exit
              --proxy <http[s]://example:1234>
            )r1r�r�r�r�)r�	help_texts  r�test_help_with_metavarz*TestWrappingMetavar.test_help_with_metavar�s4���K�K�+�+�-�	�����H�O�O�5�%�	r)rrr rJrwr!r"s@rrrrr�s
���=�	rrrc�T�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zy
)�TestExitOnErrorc��tjdd��|_|jjddt��y)NFr�)r�r�z
--integers�N)r�r�)r*r+r1r�r�rs rrJzTestExitOnError.setUp�s3���-�-�E�DG�I������ � ��s�� �Erc��|jjdj��}|j|t	j
d���y)Nz--integers 4r�)�integers)r1r:r�r�r*rrs  r�!test_exit_on_error_with_good_argsz1TestExitOnError.test_exit_on_error_with_good_args�s:��
�[�[�
#�
#�N�$8�$8�$:�
;������X�/�/��;�<rc��|jtj�5|jj	dj��ddd�y#1swYyxYw)Nz--integers a)r�r*r�r1r:r�rs r� test_exit_on_error_with_bad_argsz0TestExitOnError.test_exit_on_error_with_bad_args�s=��
�
�
�x�5�5�
6��K�K�"�"�>�#7�#7�#9�:�7�
6�
6�s�*A�Ac��|jtjd|jjdj��y�Nz!unrecognized arguments: --foo barr�)r�r*r�r1r:r�rs r�test_unrecognized_argsz&TestExitOnError.test_unrecognized_args�s4�����x�5�5�B�#�{�{�5�5�{�7H�7H�7J�	Lrc��|jtjd|jjdj��yr�)r�r*r�r1r�r�rs r�!test_unrecognized_intermixed_argsz1TestExitOnError.test_unrecognized_intermixed_args�s4�����x�5�5�B�#�{�{�@�@�+�BS�BS�BU�	Wrc���|jjd�|jjd�|jtjd|jj
g�y)NrBrCz/the following arguments are required: bar, baz$�r1r�r�r*r�r:rs r�test_required_argsz"TestExitOnError.test_required_args�sN����� � ��'���� � ��'����x�5�5�P�#�{�{�5�5�r�	;rc���|jjd�|jjdd��|jtjd|jj
g�y)NrBrCr�rt�*the following arguments are required: bar$r�rs r�test_required_args_optionalz+TestExitOnError.test_required_args_optional�S����� � ��'���� � ��c� �2����x�5�5�K�#�{�{�5�5�r�	;rc���|jjd�|jjdd��|jtjd|jj
g�y)NrBrCr�rtr�r�rs r�test_required_args_zero_or_morez/TestExitOnError.test_required_args_zero_or_morer�rc���|jjd�|jjdd��|jtjd|jj
g�y)NrBrCryrtr�r�rs r�test_required_args_remainderz,TestExitOnError.test_required_args_remaindersS����� � ��'���� � ��e� �4����x�5�5�K�#�{�{�5�5�r�	;rc���|jjd��}|jd�|jd�|jtj
d|jjg�y)NTr�r-rcz,one of the arguments --bar --baz is required)r1rr�r�r*r�r:)rr�s  r�%test_required_mutually_exclusive_argsz5TestExitOnError.test_required_mutually_exclusive_argss]�����8�8�$�8�G��
���7�#�
���7�#����x�5�5�M�#�{�{�5�5�r�	;rc���|jjd�|jjdd��|jtjd|jj
dg�y)Nr�r�r�r�z7ambiguous option: --foob could match --foobaz, --foobler�r�rs r�test_ambiguous_optionz%TestExitOnError.test_ambiguous_option"sV����� � ��,���� � ��L� �A����x�5�5�X�#�{�{�5�5��z�	Crc��|jjd�|jtjd|jj
dg�y)Nrmz)No such file or directory: 'no-such-file'z
@no-such-filer�rs r�
test_os_errorzTestExitOnError.test_os_error)s@����� � ��(����x�5�5�J�#�{�{�5�5��7H�	JrN)rrr rJr~r�r�r�r�r�r�r�r�r�r�r@rrryry�sC��F�
=�;�L�
W�
;�;�;�;�;�C�Jrryc�@�it_t�t_yrN)r�r�r`r�r@rr�tearDownModuler�0s���E�J���E�Jr�__main__)�r,r8rnr
r�rRr^r\r�r�rO�unittestr*r��test.supportrr�
TextIOWrapperrrBr$�skip_unless_working_chmodr�rLrsrzr�r�r�r+r�r�r�r�r�r�r�rrr!r#r)r+r9r<rErUrWr\rbrkrprrrwr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrr
rrrrrrrr"r$r(r4r7r:r<r>r@rCrErGrIrKrMrPrRrUrWrYr[rbrhrjrmrorqrvrxrr�r�r�r�r�r�r�r�r�r�r
�	eq_stderrr�r�
eq_bstderrr�r�r�r�r��skip_if_dac_overriderrrrrr r&r,r;rBrKrarjrqrrrNrcr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r
rr.r<r?rArGrKrOrUrWr[r`rcrhrnrprrrtrvrxr|rr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrr4rTrdrnrrryr�r�r�r�r�r�r�rXrhrrryr�r�mainr@rr�<module>r�s������	��	�
��
������"��:�"�"�"�:�$F�H�%�%�F�:�x� � ���$�$�D�6�D�%�D�.�&��)��)�%�)�%�# �L>��!8�!8�>�q9�D�q9�f	�	��&�'7���C���n���n��4�.��
�^�
� �~��.
�>�
��n���.��$���&�N��&���(���,���.
�^�
� 
��
�	�>�	�����.���.�����.�>��&�.��"�>��"
�N�
��~���N���N���>��>��>�@
��
�	��	�	�>�	����&�^������~�����&�N��"�~��"�n��"�n��&�N��.�~���N���N��	�^�	�	�N�	��N���>���.���>���>�����������(���"
�~�
� ���$
��
� �~���n���^���N��	�n�	��^���N���.��,���.���,�>��
�^�
�	�N�	��>�����
�.�
� 
��
� �~��"�>��&�~��&
�.�
� 
��
� �^��6�.��2���(�.��**�L�.�*�Z�\�>��DK�x�K�0�h���h��,�,�,�W�%���h�'�	��h�'�	��n�-�	�
��
/�
�
��
/�
�/�F�/�"�L�.��03�<��3�"�\�>��.'�F�'�"����L�.�� ��,����L�.�� ��&���
�\�>�
� �
� ���
�]�
� �
�3�8�3�$
��
�$�~���.��,�>��,>�8�>�.>�N�>�BJ�X�J�$�~��[��[�B!+�H�!+�Nm9��m9�f@&�x�@&�D1?�f�1?�h �'�8� �F(���(�V�7�H��B!�'�8�!�H*��(�*�Z'�'�8�'�T%�7�H�%�P'���'�R/(�'�8�/(�d �G�X� �F �w�� �F ��(� �L�f��	��
-�	�
	��
(�	�
	��
&�	�
	��
1�	�
	��
0�	�
	��
7�	�
	��
0�	�
	��
>�	�X0�h�X0�|8�X�8�.
"�(�
"�&Q1�$�Q1�f	�	��*�>�5�"�E��"�l�"�H3B�|�3B�l,�<�,�^���>1�<�1�h%��%�P3��3�l6�L�6�r�<��,�\��>�L��:!�|�!�H�<��2#��#�L�<��D!�L�!�H�\��4�|��0+��+�\�\��"
�<�
��L��*�|��(�L��4���*�|��(�<��*�\��.�<��0�<��6.�l�.�b-�\�-�`0�|�0�d�L��(�L��2���:'��'�V�<��:%��%�XxI�h�xI�|-�(�-�<3E�8�3E�tEQ�h�EQ�XC/�(�C/�R7�H�7�J-�8�-�$*��*�.�H�.�$65�h�65�z
8�8�
8� +(�h�+(�b*)��*)�Z|L�X�|L�F=/��=/�~)��)�0eD�X�eD�P.�x�.�@
B�X�
B� �(��0HJ�h�HJ�V��z���H�M�M�O�r

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists