
    Mpji                        S SK r S SKJr  S SKJr  S SKrS SKJr  S SKJ	r	J
r
  S SKJrJrJr  \R                  " S5      rS rS	 rS!S
 jrS"S\\   S\4S jjr\R,                  R/                  S\" 5       5      S 5       r\R,                  R2                  \R,                  R/                  S\" 5       5      S 5       5       r\S:X  Ga
  S SKrS SKr\R<                  " SS9r\RA                  SSS9  \RC                  5       r"\RG                  \"RH                  5      r%\"RH                  RM                  S5      r'\(" \'5      S:  a!  \ RR                  " S\'S   5      (       a  \'S   r*OSr*\+" \" \%S   \*5      5      \%S'   \%S   (       a,  \" \%\"RH                  S9r,\-" \,5        \R\                  " S5        g\-" S R_                  \"RH                  5      5        gg)#    N)	signature)Optional)_BaseCallback)enable_halving_search_cvenable_iterative_imputer)all_displaysall_estimatorsall_functionsznumpydoc.validatec               #     #    [        5       n [        5       nX-    H  u  p#UR                  S5      (       a  M  / n[        U5       H|  nUR                  S5      (       a  M  [	        U[
        5      (       a  US;   a  M8  [        X25      n[        US5      (       d  [	        U[        5      (       d  Mk  UR                  U5        M~     UR                  S 5        [        U[        S9 H  nX64v   M
     M     g 7f)N_)setupteardownon_fit_task_beginon_fit_task_end__call__)key)r	   r   
startswithdir
isinstancer   getattrhasattrpropertyappendsortedstr)
estimatorsdisplaysnameKlassmethods
method_objmethods          Y/var/www/html/pdf-tiff/venv/lib/python3.13/site-packages/sklearn/tests/test_docstrings.pyget_all_methodsr$      s     !J~H!,??3JDs##
 %//D = 5  -Jz:..*Z2R2Rt$! " 	tW#.F- /1 -s   B*C50AC5c               #      #    [        5       n U  H4  u  pSUR                  ;  d  M  UR                   SUR                   3v   M6     g 7f)Nzutils.fixes.)r
   
__module____name__)	functionsr   funcs      r#   get_all_functions_namesr+   2   s>     I/__%Qt}}o66 s
    A"Ac              #      #    U  HK  u  p4US;   a  M  US;   a(  Ub%  Ub"  [        X!5      n[        U[        5      (       a  M;  Ub  US;   a  MF  X44v   MM     g7f)zY
Ignore some errors based on the method type.

These rules are specific for scikit-learn.)RT02GL01GL02)PR02GL08N)EX01SA01ES01)r   r   r   )errorsr"   r   codemessager!   s         r#   filter_errorsr8   :   sl     
   ++ ##(9f>P /J*h// $*B"BmK  s   AAr"   returnc                 z   Uc(  [        US5      (       a  SnOUc  [        S5      e[        eUb3  [        X5      n [	        [        U5      5      nUR                  S-   U-   nOSnUnSSR                  [	        U S   5      XT-   U S   S	S
R                  S U S    5       5      /5      -   nU$ ! [         a    Sn Njf = f)aJ  Pretty print original docstring and the obtained errors

Parameters
----------
res : dict
    result of numpydoc.validate.validate
Klass : {Estimator, Display, None}
    estimator object or None
method : str
    if estimator is not None, either the method name or None.

Returns
-------
str
   String representation of the error.
__init__z0At least one of Klass, method should be providedzM
Parsing of the method signature failed, possibly because this is a property.r&    z

file	docstringz# Errors
c              3   H   #    U  H  u  pS R                  X5      v   M     g7f)z	 - {}: {}N)format).0r6   r7   s      r#   	<genexpr>repr_errors.<locals>.<genexpr>   s#      GTmd""411}s    "r5   )	r   
ValueErrorNotImplementedErrorr   r   r   	TypeErrorr(   join)resr   r"   objobj_signatureobj_namemsgs          r#   repr_errorsrN   g   s    " ~5*%%F]OPP%%e$		#/M >>C'&0
6;;F$II GJ8} 	

 
C J/  	7 	s   B+ +B:9B:function_namec                     [         R                  U 5      n[        [        US   SS95      US'   US   (       a  [	        USU  3S9n[        U5      eg)z)Check function docstrings using numpydoc.r5   functionr"   zTested function: N)numpydoc_validationvalidatelistr8   rN   rE   )rO   requestrI   rM   s       r#   test_function_docstringrW      sW     
&
&}
5Cs8}ZHICM
8}#(9-&IJo     zKlass, methodc                    U R                   nX0R                  /nUb  UR                  U5        SR                  U5      n[        R                  U5      n[        [        US   XS95      US'   US   (       a  [        XPU5      n[        U5      eg )Nr&   r5   )r   )
r'   r(   r   rH   rS   rT   rU   r8   rN   rE   )r   r"   rV   base_import_pathimport_pathrI   rM   s          r#   test_docstringr\      s     ''#^^4K6"((;'K

&
&{
3Cs8}fJKCM
8}#f-o rX   __main__z!Validate docstring with numpydoc.)descriptionr[   zImport path to validate)helpr&      z(?:[A-Z][a-z]*)+r5   rR      z#All docstring checks passed for {}!)N)NN)0reinspectr   typingr   pytestsklearn.callback._baser   sklearn.experimentalr   r   sklearn.utils.discoveryr   r	   r
   importorskiprS   r$   r+   r8   r   rN   markparametrizerW   no_check_spmatrixr\   r(   argparsesysArgumentParserparseradd_argument
parse_argsargsrT   r[   rI   splitimport_path_sectionslenmatchr"   rU   rM   printexitrA    rX   r#   <module>r}      s   	    0 P O))*=>  >7*Z4# 4# 4n *A*CD	 E	 /*;< = $ z$$1TUF
,EFD

&
&t'7'7
8C++11#6
  A%"((1"5+ + &b)s8}f=>CM
8}#d&6&67c
3::4;K;KLM? rX   