Ë
    ÷Q(hb$  ã                   ó  — d Z ddlZddlmZmZmZmZmZ ddlm	Z	 ddl
mZ ddlmZmZmZ dd„Zd„ Zdd	„Zdd„Zd„ Zd„ Zd„ Zddœd„Z ed¬«      d„ «       Z G d„ de«      Z edeg dgd
ddœfedgdgddifedgdgddifedgddd
igddifeddgdgi feg ddd
igdd
dœfedgddd
dœgddifeg ddd
igdd
ifeg dgddifg	«      d „ «       Zd!„ Z edeg dgd
dg i d"œfeg d#gd
ddd$gi d"œfeg d%d&digd
d'g d&did"œfed(gd)d&digd
dd&did*œfg«      d+„ «       Zeg dddigd
ddœfeg dddigd
ddd,œfgZ edeg d-d&digd
dgd&did.œfeg d/gdd$gi d.œfgez   «      d0„ «       Zd1„ Z  ed2ed3fed4fed5fg«      d6„ «       Z!d7„ Z"d8„ Z#d9„ Z$d:d;d<œd=„Z%d>e&d?e&d@dfdA„Z'dB„ Z(dC„ Z) edDe*dEedFdGgfe*dHedFgdGgfe*dIeg gfg«      dJ„ «       Z+dK„ Z,dL„ Z- edMe e. e/dN«      «      gi dOfeg dP¢ddQidRfg«      dS„ «       Z0dT„ Z1edU„ «       Z2dV„ Z3dW„ Z4dX„ Z5y)Yz
Test the func_inspect module.
é    N)Ú_clean_win_charsÚfilter_argsÚformat_signatureÚget_func_codeÚget_func_name)ÚMemory)Ú
with_numpy)ÚfixtureÚparametrizeÚraisesc                  ó   — y ©N© ©ÚxÚys     ú[/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/joblib/test/test_func_inspect.pyÚfr      ó   € Øó    c                  ó   — y r   r   ©r   s    r   Úgr      r   r   c                  ó   — y r   r   )r   r   ÚargsÚkwargss       r   Úhr   !   r   r   é   c                  ó   — y r   r   r   s    r   Úir    %   r   r   c                  ó   — y r   r   )r   r   r   s      r   Újr"   )   r   r   c                   ó   — y r   r   )r   r   s     r   Úkr$   -   r   r   c                 ó   — y r   r   r   s     r   Úm1r&   1   r   r   é   )Úzc                 ó   — y r   r   ©r   r   r(   s      r   Úm2r+   5   r   r   Úmodule)Úscopec                 óv   — | j                  d«      }t        |j                  «      }|j                  d„ «       }|S )NÚjoblib_test_func_inspectc                 ó   — | S r   r   r   s    r   Úcached_func_innerz&cached_func.<locals>.cached_func_innerA   s   € àˆr   )Úmktempr   ÚstrpathÚcache)Útmpdir_factoryÚcachedirÚmemr1   s       r   Úcached_funcr8   9   sC   € ð
 ×$Ñ$Ð%?Ó@€HÜ
�×!Ñ!Ó
"€Cà‡Y�Yñó ðð Ðr   c                   ó   — e Zd Zd„ Zy)ÚKlassc                 ó   — |S r   r   )Úselfr   s     r   r   zKlass.fI   s   € Øˆr   N)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r:   r:   H   s   „ ór   r:   zfunc,args,filtered_args©r   r   r   r   )r   r   é   )rA   c                 ó&   — t        | g|¢­Ž |k(  sJ ‚y r   ©r   ©Úfuncr   Úfiltered_argss      r   Útest_filter_argsrG   Q   s   € ô �tÐ#˜dÒ# }Ò4Ð4Ñ4r   c                  óV   — t        «       } t        | j                  g d«      d| dœk(  sJ ‚y )Nr@   r   )r   r<   ©r:   r   r   )Úobjs    r   Útest_filter_args_methodrK   c   s)   € Ü
‹'€CÜ�s—u‘u˜b $Ó'°¸CÑ+@Ò@Ð@Ñ@r   )r   r   Ú*ú**)r   rA   r'   é   rN   )r   é   ÚeerO   rL   )r   rA   rO   ©r   r   rM   c                 ó&   — t        | g|¢­Ž |k(  sJ ‚y r   rC   rD   s      r   Útest_filter_varargsrS   h   s   € ô �tÐ#˜dÒ# }Ò4Ð4Ñ4r   r*   ©r   rA   ©rL   rM   ©r'   rN   c                 ó&   — t        | g|¢­Ž |k(  sJ ‚y r   rC   rD   s      r   Útest_filter_kwargsrX   {   s   € ô �tÐ#˜dÒ# }Ò4Ð4Ñ4r   c                  óÐ   — t        t        g dddi«      ddddidœk(  sJ ‚t        j                  t        d«      } t        | g d«      dgi dœk(  sJ ‚t        | dgd«      dgi dœk(  sJ ‚y )	NrT   rP   rA   r   rQ   r@   rU   r   )r   r"   Ú	functoolsÚpartialr   ©Úffs    r   Útest_filter_args_2r^   ‡   s{   € Ü”q˜"˜f t¨Q iÓ0¸!À!ÈDÐRSÈ9Ñ4UÒUÐUÐUä	×	Ñ	œ1˜aÓ	 €Bä�r˜2˜tÓ$¨q¨c¸Ñ(<Ò<Ð<Ð<Ü�r˜C˜5 $Ó'°!°¸BÑ+?Ò?Ð?Ñ?r   zfunc,funcnamer   r   r8   c                 ó*   — t        | «      d   |k(  sJ ‚y )Nr   ©r   )rE   Úfuncnames     r   Útest_func_namerb   �   s   € ô ˜Ó˜qÑ! XÒ-Ð-Ñ-r   c                 ó*   — t        | «      d   dk(  sJ ‚y )Nr   r1   r`   )r8   s    r   Útest_func_name_on_inner_funcrd   —   s   € ô ˜Ó% aÑ(Ð,?Ò?Ð?Ñ?r   c                  óT   — d„ } d„ } | «       \  }} |«       \  }}||k(  sJ ‚||k7  sJ ‚y )Nc                  ó   — d„ } t        | «      S )Nc                   ó   — y r   r   r   r   r   Ú
inner_funczEtest_func_name_collision_on_inner_func.<locals>.f.<locals>.inner_func¢   ó   € Ør   r`   ©rh   s    r   r   z1test_func_name_collision_on_inner_func.<locals>.f¡   ó   € ò	ô ˜ZÓ(Ð(r   c                  ó   — d„ } t        | «      S )Nc                   ó   — y r   r   r   r   r   rh   zEtest_func_name_collision_on_inner_func.<locals>.g.<locals>.inner_func¨   ri   r   r`   rj   s    r   r   z1test_func_name_collision_on_inner_func.<locals>.g§   rk   r   r   )r   r   r,   ÚnameÚother_moduleÚ
other_names         r   Ú&test_func_name_collision_on_inner_funcrq   ž   sA   € ò)ò)ñ “3�L€FˆDÙ ›sÑ€L�*à�:ÒÐÐØ�\Ò!Ð!Ñ!r   c                  ó|  — t        dj                  «      d   dk(  sJ ‚t        dj                  «      dd  dk(  sJ ‚d„ } t        | d¬«      d   d	k(  sJ ‚t        | «      d   t        j	                  d
d«      k(  sJ ‚d| _        t        | d¬«      d   d	k(  sJ ‚t        | «      d   t        j	                  d
d«      k(  sJ ‚y )NÚaéÿÿÿÿÚlowerr   )Nrt   c                 ó   — | S r   r   r   s    r   ú<lambda>z*test_func_inspect_errors.<locals>.<lambda>¸   s   € �1€ r   F)Úwin_charactersz<lambda>z.pycz.pyÚ__main__)r   ru   r   Ú__file__Úreplacer>   r\   s    r   Útest_func_inspect_errorsr|   ´   sÆ   € ä˜Ÿ™Ó# BÑ'¨7Ò2Ð2Ð2Ü˜Ÿ™Ó# A BÐ'¨:Ò5Ð5Ð5Ù	€BÜ˜¨EÔ2°2Ñ6¸*ÒDÐDÐDÜ˜Ó˜QÑ¤8×#3Ñ#3°F¸EÓ#BÒBÐBÐBà€B„MÜ˜¨EÔ2°2Ñ6¸*ÒDÐDÐDÜ˜Ó˜QÑ¤8×#3Ñ#3°F¸EÓ#BÒBÐBÑBr   Úkw1Úkw2©r}   r~   c                 ó   — y r   r   ©rs   Úbr}   r~   s       r   Úfunc_with_kwonly_argsrƒ   Á   r   r   rs   r‚   Úreturnc                  ó   — y r   r   ©rs   r‚   s     r   Úfunc_with_signaturer‡   Å   r   r   c                  óD  — t        t        g ddddœ«      dddddœk(  sJ ‚t        t        «      5 } t        t        g dd	di«       d d d «        j	                  d
«       t        t        dd	gddddœ«      dddœk(  sJ ‚t        t
        dgd«      ddik(  sJ ‚y # 1 sw Y   ŒSxY w)NrT   r'   rN   r   r   rA   r�   )r   rA   r'   r~   z?Keyword-only parameter 'kw1' was passed as positional parameterr‚   )rs   r}   rs   )r   rƒ   r   Ú
ValueErrorÚmatchr‡   )Úexcinfos    r   Útest_filter_args_edge_casesrŒ   É   sÍ   € ÜÔ,¨b°&À!ÈAÑ:NÓOØØØØñ	Tò ð ð ô 
”
Ó	ð F˜wÜÔ)¨2¨y¸5À!¸*ÔE÷Fà‡M�MÐSÔTäÜ  U˜|¨V¸QÀqÑ5Ióà˜Ñ	òð ð ô Ô*¨S¨E°6Ó:¸sÀA¸hÒFÐFÑF÷Fð Fús   ¯BÂBc                  óŽ   — t        «       } t        «       }t        | j                  g d«      t        |j                  g d«      k7  sJ ‚y)z�Make sure that calling the same method on two different instances
    of the same class does resolv to different signatures.
    r@   NrI   r†   s     r   Útest_bound_methodsrŽ   Þ   s:   € ô 	‹€AÜ‹€AÜ�q—s‘s˜B Ó%¬°Q·S±S¸"¸dÓ)CÒCÐCÑCr   zexception,regex,func,argsz1ignore_lst must be a list of parameters to ignoreÚbarr   z-Ignore list: argument \'(.*)\' is not definedzWrong number of argumentsc                 ó~   — t        | «      5 }t        |g|¢­Ž  ddd«       j                  |«       y# 1 sw Y   ŒxY w)z\Make sure that filter_args returns decent error messages, for the
    sake of the user.
    N)r   r   rŠ   )Ú	exceptionÚregexrE   r   r‹   s        r   Útest_filter_args_error_msgr“   ç   s<   € ô, 
�	Ó	ð !˜gÜ�DÐ ˜4Ó ÷!à‡M�M�%Õ÷!ð !ús   Œ3³<c                  óB   — ddi} t        t        g g | «       | ddik(  sJ ‚y)z®None-regression test against 0.12.0 changes.

    https://github.com/joblib/joblib/pull/75

    Make sure filter args doesn't mutate the kwargs dict that gets passed in.
    r   r   N)r   r   )r   s    r   Ú#test_filter_args_no_kwargs_mutationr•     s-   € ð �1ˆX€FÜ”�2�r˜6Ô"Ø�c˜1�XÒÐÑr   c                  ó8   — d} t        | «      }dD ]  }||vrŒJ ‚ y )NzC:\foo\bar\main.py)ú\ú:ú<ú>ú!)r   )ÚstringÚmangled_stringÚchars      r   Útest_clean_win_charsrŸ     s.   € Ø"€FÜ% fÓ-€NØ*ò *ˆØ˜>Ò)Ð)Ð)ñ*r   zfunc,args,kwargs,sgn_expectedé   zg([0, 1, 2, 3, 4]))r   rA   rV   Tzk(1, 2, (3, 4), y=True)c                 ó6   — t        | g|¢­i |¤Ž\  }}||k(  sJ ‚y r   )r   )rE   r   r   Úsgn_expectedÚpathÚ
sgn_results         r   Útest_format_signaturer¥     s+   € ô (¨Ð>¨tÒ>°vÑ>Ñ€Dˆ*Ø˜Ò%Ð%Ñ%r   c                  óä  — d} d}d| z  }t        t        |«      \  }}t        |«      |k  sJ ‚d}t        |«      D �cg c]  }|‘Œ }}t        t        g|¢­Ž \  }}t        |«      ||z  k  sJ ‚t	        |«      D ��ci c]  \  }}t        |«      |“Œ }}}t        t        fi |¤Ž\  }}t        |«      ||z  k  sJ ‚t        t        g|¢­i |¤Ž\  }}t        |«      |dz  |z  k  sJ ‚y c c}w c c}}w )NiÜ  iÆ  rs   r    rA   )r   r   ÚlenÚrangeÚ	enumerateÚstr)	Úshortening_thresholdÚshortening_targetÚargÚ_Ú	signatureÚnb_argsr   r    r   s	            r   Ú$test_format_signature_long_argumentsr±   "  s  € ØÐð !Ðà
Ð$Ñ
$€CÜ#¤A sÓ+�L€A€yÜˆy‹>Ð-Ò-Ð-Ð-à€GÜ˜w›Ö(�AŠCÐ(€DÐ(Ü#¤AÐ-¨Ò-�L€A€yÜˆy‹>Ð-°Ñ7Ò7Ð7Ð7ä(1°$«×8™f˜a Œc�!‹f�c‰kÐ8€FÑ8Ü#¤AÑ0¨Ñ0�L€A€yÜˆy‹>Ð-°Ñ7Ò7Ð7Ð7ä#¤AÐ7¨Ò7°Ñ7�L€A€yÜˆy‹>Ð-°Ñ1°GÑ;Ò;Ð;Ñ;ùò )ùó 9s   ¼	C'Á;C,c                   ó   — y)z0Test the format signature formatting with numpy.Nr   r   r   r   Útest_format_signature_numpyr³   :  s   � r   c                  óT   — ddl m}  t        | «      \  }}}|dk(  sJ ‚d|v sJ ‚d|v sJ ‚y )Nr   ©Úbig5_fr    zdef big5_f():Ú"test_func_inspect_special_encoding©Ú.joblib.test.test_func_inspect_special_encodingr¶   r   )r¶   Ú	func_codeÚsource_fileÚ
first_lines       r   Útest_special_source_encodingr½   ?  s>   € ÝEä)6°vÓ)>Ñ&€Iˆ{˜JØ˜Š?Ðˆ?Ø˜iÑ'Ð'Ð'Ø/°;Ñ>Ð>Ñ>r   c                  ó*   — ddl m}  t        | «      d   S )Nr   rµ   r¸   rµ   s    r   Ú	_get_coder¿   H  s   € ÝEä˜Ó  Ñ#Ð#r   c                  óŠ   ‡— ddl m} mŠ   | d¬«      ˆfd„t        d«      D «       «      }t	        t        |«      «      dk(  sJ ‚y )Nr   )ÚParallelÚdelayedrA   )Ún_jobsc              3   ó@   •K  — | ]  }  ‰t         «      «       –— Œ y ­wr   )r¿   )Ú.0r®   rÂ   s     €r   ú	<genexpr>z-test_func_code_consistency.<locals>.<genexpr>Q  s   øè ø€ ÒF¸Ð1™w¤yÓ1×3ÑFùs   ƒr    r   )Újoblib.parallelrÁ   rÂ   r¨   r§   Úset)rÁ   ÚcodesrÂ   s     @r   Útest_func_code_consistencyrÊ   N  s7   ø€ ß1à‰H˜AÔÓF¼UÀ1»XÔFÓF€EÜŒs�5‹z‹?˜aÒÐÑr   )6Ú__doc__rZ   Újoblib.func_inspectr   r   r   r   r   Újoblib.memoryr   Újoblib.test.commonr	   Újoblib.testingr
   r   r   r   r   r   r    r"   r$   r&   r+   r8   Úobjectr:   rG   rK   rS   Útest_filter_kwargs_extra_paramsrX   r^   rb   rd   rq   r|   rƒ   Úintr‡   rŒ   rŽ   r‰   r“   r•   rŸ   Úlistr¨   r¥   r±   r³   r½   r¿   rÊ   r   r   r   ú<module>rÔ      sÿ  ðñó ÷õ õ !Ý )ß 7Ñ 7ó
	ò	ó	ó	ò	ò	ò	ð ô 	ñ 	ˆxÔñó ðôˆFô ñ Øà	
ˆR�ˆJ˜a aÑ(Ð)Ø	
ˆcˆU�DˆM˜C ˜8Ð$Ø	
ˆcˆU�DˆM˜C ˜8Ð$Ø	
ˆcˆU�D˜3 ˜(Ð# c¨1 XÐ.Ø	
ˆc�3ˆZ˜Ð Ð#Ø	
ˆR�˜˜Q�xÐ ¨°Ñ"2Ð3Ø	
ˆcˆU�B˜a aÑ(Ð)¨C°¨8Ð4Ø	
ˆR��c˜1�XÐ  a Ð)Ø	
ˆR�ˆJ˜˜a˜Ð!ð
óñ5óð5òAñ
 Øà	
ˆR�ˆJ˜a a¨b¸Ñ;Ð<Ø	
ˆR�Ð a¨a°q¸!°fÀBÑ GÐHØ	
ˆR�˜4 ˜)Ð$¨A°B¸RÈÈaÀyÑ&QÐRØ	
ˆcˆU�J  q 	Ð*°!¸!ÀDÈ!À9Ñ,MÐNð	óñ5óð5ð
 ˆ"ˆd�S˜!�HÐ	 Q¨QÑ/Ð0Øˆ"ˆd�S˜!�HÐ	 Q¨Q°QÑ7Ð8ð#Ð ñ Øà	
ˆR�˜$ ˜Ð#¨A¨q¨6¸$À¸Ñ%CÐDØ	
ˆR�ˆL  A ¨bÑ1Ð2ðð &ñ	&óñ5óð5ò@ñ ˆ_  3˜x¨!¨S¨°KÀÐ3OÐPÓQñ.ó Rð.ò@ò"ò,
Cð (-°%ô 	ð	˜3ð 	 3ð 	¨4ó 	òGò*Dñ Øð Ø?ØØ�GÐð		
ð Ø<ØØˆW�gÐð		
ð 
Ð0°!°b°TÐ:ðóñ$ó%ð$ò	ò*ñ Ø#à	
‰T‘%˜“(‹^Ð˜bÐ"6Ð7Ø	
ŠN˜S $˜KÐ)BÐCðóñ&óð&ò<ð0 ñ;ó ð;ò?ò$ó r   