L ib$dZddlZddlmZmZmZmZmZddlm Z ddl m Z ddl m Z mZmZddZdZdd Zdd Zd Zd ZdZdddZe ddZGddeZedegdgd ddfedgdgddifedgdgddifedgddd igddifeddgdgifegddd igdd dfedgddd dgddifegddd igdd ifegdgddifg d Zd!Zedegdgd dgid"fegd#gd ddd$gid"fegd%d&digd d'gd&did"fed(gd)d&digd dd&did*fgd+Zegdddigd ddfegdddigd ddd,fgZedegd-d&digd dgd&did.fegd/gdd$gid.fgezd0Zd1Z ed2ed3fed4fed5fgd6Z!d7Z"d8Z#d9Z$d:d;d<d=Z%d>e&d?e&d@dfdAZ'dBZ(dCZ)edDe*dEedFdGgfe*dHedFgdGgfe*dIeggfgdJZ+dKZ,dLZ-edMee.e/dNgidOfegdPddQidRfgdSZ0dTZ1e dUZ2dVZ3dWZ4dXZ5y)Yz Test the func_inspect module. N)_clean_win_chars filter_argsformat_signature get_func_code get_func_name)Memory) with_numpy)fixture parametrizeraisescyNxys c/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/joblib/test/test_func_inspect.pyfrcyrrrs rgrrrcyrr)rrargskwargss rhr!rrcyrrrs rir %rrc yrr)rrrs rjr")rrcyrr)rrs rkr$-rrcyrrrs rm1r&1rr)zcyrrrrr(s rm2r+5rrmodule)scopecv|jd}t|j}|jd}|S)Njoblib_test_func_inspectc|Srrrs rcached_func_innerz&cached_func..cached_func_innerAsr)mktemprstrpathcache)tmpdir_factorycachedirmemr1s r cached_funcr89sC $$%?@H !! "CYY rceZdZdZy)Klassc|Srr)selfrs rrzKlass.fIsrN)__name__ __module__ __qualname__rrrrr:r:Hsrr:zfunc,args,filtered_argsrrrr)rr)rAc&t|g||k(sJyrrfuncr filtered_argss rtest_filter_argsrGQs t #d #} 44 4rcVt}t|jgdd|dk(sJy)Nr@r)rr<r:rr)objs rtest_filter_args_methodrKcs) 'C suub$ 'C+@ @@ @r)rr***)rrAr'rN)reerOrL)rrArOrrrMc&t|g||k(sJyrrCrDs rtest_filter_varargsrShs t #d #} 44 4rr*rrArLrMr'rNc&t|g||k(sJyrrCrDs rtest_filter_kwargsrX{s t #d #} 44 4rcttgdddiddddidk(sJtjtd}t|gddgidk(sJt|dgddgidk(sJy) NrTrPrArrQr@rUr)rr" functoolspartialrffs rtest_filter_args_2r^s{ q"ftQi 0!!DRS94U UU U   1a B r2t $qc(< << < rC5$ '!B+? ?? ?rz func,funcnamerrr8c*t|d|k(sJy)Nrr)rEfuncnames rtest_func_namerbs  q !X -- -rc*t|ddk(sJy)Nrr1r`)r8s rtest_func_name_on_inner_funcrds  %a (,? ?? ?rcTd}d}|\}}|\}}||k(sJ||k7sJy)Ncd}t|S)Ncyrrrrr inner_funczEtest_func_name_collision_on_inner_func..f..inner_func rr`rhs rrz1test_func_name_collision_on_inner_func..f Z((rcd}t|S)NcyrrrrrrhzEtest_func_name_collision_on_inner_func..g..inner_funcrirr`rjs rrz1test_func_name_collision_on_inner_func..grkrr)rrr,name other_module other_names r&test_func_name_collision_on_inner_funcrqsA) ) 3LFD sL* :   \ !! !rc|tdjddk(sJtdjdddk(sJd}t|ddd k(sJt|dtj d d k(sJd |_t|ddd k(sJt|dtj d d k(sJy) Nalowerr)Nrtc|Srrrs rz*test_func_inspect_errors..s1rF)win_characterszz.pycz.py__main__)rrur__file__replacer>r\s rtest_func_inspect_errorsr|s  #B '7 22 2  #AB ': 55 5 B E 22 6* DD D  Q 8#3#3FE#B BB BBM E 22 6* DD D  Q 8#3#3FE#B BB Brkw1kw2r}r~cyrrrsbr}r~s rfunc_with_kwonly_argsrrrrsrreturncyrrrsrs rfunc_with_signaturerrrcDttgdddddddddk(sJtt5}ttgdd didddj d ttd d gddddddd k(sJtt d gdd dik(sJy#1swYSxYw)NrTr'rNrrrAr)rrAr'r~z?Keyword-only parameter 'kw1' was passed as positional parameterr)rsr}rs)rrr ValueErrormatchr)excinfos rtest_filter_args_edge_casesrs ,b&!A:N O   T    Fw)2y5!*EF MMST U|VQq5I     *SE6 :sAh FF FFFs BBct}t}t|jgdt|jgdk7sJy)zMake sure that calling the same method on two different instances of the same class does resolv to different signatures. r@NrIrs rtest_bound_methodsrs: A A qssB %QSS"d)C CC Crzexception,regex,func,argsz1ignore_lst must be a list of parameters to ignorebarrz-Ignore list: argument \'(.*)\' is not definedzWrong number of argumentsc~t|5}t|g|dddj|y#1swYxYw)z\Make sure that filter_args returns decent error messages, for the sake of the user. N)r rr) exceptionregexrErrs rtest_filter_args_error_msgrs<,  !gD 4 ! MM%!!s 3<cBddi}ttgg||ddik(sJy)zNone-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. rrN)rr)rs r#test_filter_args_no_kwargs_mutationrs-1XF2r6" c1X  rc8d}t|}dD]}||vrJy)NzC:\foo\bar\main.py)\:<>!)r)stringmangled_stringchars rtest_clean_win_charsrs. "F%f-N**>)))*rzfunc,args,kwargs,sgn_expectedzg([0, 1, 2, 3, 4]))rrArVTzk(1, 2, (3, 4), y=True)c6t|g|i|\}}||k(sJyr)r)rErr sgn_expectedpath sgn_results rtest_format_signaturers+(>t>v>D*  %% %rcd}d}d|z}tt|\}}t||ksJd}t|Dcgc]}|}}ttg|\}}t|||zksJt |Dcic]\}}t ||}}}ttfi|\}}t|||zksJttg|i|\}}t||dz|zksJycc}wcc}}w)NiirsrrA)rrlenrange enumeratestr) shortening_thresholdshortening_targetarg_ signaturenb_argsrr rs r$test_format_signature_long_argumentsr"s! $ $C#As+LAy y>- -- -Gw (AC (D (#A--LAy y>-7 77 7(1$ 8fac!fck 8F 8#A00LAy y>-7 77 7#A777LAy y>-1G; ;; ; )9s C';C,cy)z0Test the format signature formatting with numpy.Nrrrrtest_format_signature_numpyr:srcTddlm}t|\}}}|dk(sJd|vsJd|vsJy)Nrbig5_frz def big5_f():"test_func_inspect_special_encoding.joblib.test.test_func_inspect_special_encodingrr)r func_code source_file first_lines rtest_special_source_encodingr?s>E)6v)>&I{J ?? i '' ' /; >> >rc*ddlm}t|dS)Nrrrrs r _get_coderHsE   ##rcddlm}m|dfdtdD}t t |dk(sJy)Nr)ParalleldelayedrA)n_jobsc3@K|]}tywr)r).0rrs r z-test_func_code_consistency..QsF1wy13Fsrr)joblib.parallelrrrrset)rcodesrs @rtest_func_code_consistencyrNs71 HA FU1XF FE s5z?a  r)6__doc__rZjoblib.func_inspectrrrrr joblib.memoryrjoblib.test.commonr joblib.testingr r r rrrr r"r$r&r+r8objectr:rGrKrStest_filter_kwargs_extra_paramsrXr^rbrdrqr|rintrrrrrrrlistrrrrrrrrrrrs!)77          x  F  RJaa() cUDMC8$ cUDMC8$ cUD3( #c1X. c3Z # RQx "23 cUBaa( )C84 Rc1X a) RJa!  5 5A   RJaab;< R aaq!fB GH R4) $ABRay&QR cUJq *!!D!9,MN 55 "dS!H QQ/0"dS!H QQQ78#   R$ #Aq6$%CD RLAb12& &55@ _3x!SK3OPQ.R. @", C(-%  3 3 4 G*D   ? G     < Wg   0!bT:$%$ * # T%(^ b"67 NS$K)BC&& <0 ; ;?$  r