
    daf                     P    d dl Z d dlZddlmZ d Z G d de j
                        Zy)    N   )always_iterablec                       fd}|S )zg
    Decorate a test method to run it as a set of subtests.

    Modeled after pytest.parametrize.
    c                 H     t        j                          fd       }|S )Nc                     D ]g  }t        t        j                  t        |            }t	        t        t              |            } | j                  di |5   | fi | d d d        i y # 1 sw Y   txY w)N )mapInvokedevalr   dictzipsubTest)selfvaluesresolvedparamsfuncnamesvalue_groupss       ?/root/Python-3.12.4/Lib/test/test_zipfile/_path/_test_params.pywrappedz0parameterize.<locals>.decorator.<locals>.wrapped   su    & )w||_V-DEc/%"8(CD!T\\+F+ )(() ))) )s   
A//A8	)	functoolswraps)r   r   r   r   s   ` r   	decoratorzparameterize.<locals>.decorator   s%    			) 
	)     r   )r   r   r   s   `` r   parameterizer      s    	 r   c                   0    e Zd ZdZed        Zed        Zy)r
   z7
    Wrap a function to be invoked for each usage.
    c                      | |      S )N)r   r   )clsr   s     r   wrapzInvoked.wrap!   s    ~r   c                 >    t        ||       r|j                         S |S )N)
isinstancer   )r   cands     r   r   zInvoked.eval%   s    (s3tyy{==r   N)__name__
__module____qualname____doc__classmethodr    r   r   r   r   r
   r
      s/       > >r   r
   )typesr   
_itertoolsr   r   SimpleNamespacer
   r   r   r   <module>r,      s%      '*>e## >r   