
    rii2                        d Z ddlZddlZddlZddlZddlZddlmZm	Z	m
Z
mZmZ ddlZddlmZmZ erddlZddlZej        d         dk    s
J d            dedz  d	efd
Zde	deded	efdZ	 ddlmZ ddlm Z! ddlm"Z# ddlm$Z% 	 ddl&m'Z( n# e)$ r	 ddl*m'Z( Y nw xY w	 ddl+m,Z- n# e)$ r e.Z-Y nw xY wdZ/n:# e)$ r2 dZ/ G d d          Z! G d d          Z# G d d          Z%dZ(e.Z-e.ZY nw xY w ej0        e1          Z2ej3        d	efd            Z4ej3        d	efd            Z5ej3        d	ej6        fd            Z7ej3        d	efd             Z8ej3        d	ej6        fd!            Z9ej3        d	ej6        fd"            Z:ej3        d	ej6        fd#            Z;ej3        d	efd$            Z<	 ddl=m>Z? dd%l=m@ZA n# e)$ r dZ?e.ZAY nw xY wd&ed	efd'ZBd&ed	efd(ZCd&ed	efd)ZDd&ed	ed*         fd+ZEd&ed	efd,ZFd&ed	efd-ZGd&ed	efd.ZHd&ed	ed/         fd0ZId&ed	ed1         fd2ZJd&ed	efd3ZKd&ed	efd4ZLd&ed	efd5ZMd6e
e         d	efd7ZNdS )8z,For compatibility and optional dependencies.    N)TYPE_CHECKINGAnySequence	TypeGuardcast   )_TDataType   z Python 2 is no longer supported.xreturnc                 4    | J |                      d          S )z&convert c string back to python stringNzutf-8)decode)r   s    T/var/www/html/bet.cuttalo.com/ml/venv/lib/python3.11/site-packages/xgboost/compat.pypy_strr      s    ===88G    instancemodulenamec                 D    | j         }|j        |k    }|j        |k    }|o|S )z-Use string representation to identify a type.)	__class__
__module____name__)r   r   r   clsis_same_modulehas_same_names         r   lazy_isinstancer      s/    
 
C^v-NLD(M+m+r   )__version__)BaseEstimator)ClassifierMixin)RegressorMixin)StratifiedKFold)TagsTFc                       e Zd ZdZdS )XGBModelBasez+Dummy class for sklearn.base.BaseEstimator.Nr   r   __qualname____doc__ r   r   r%   r%   ?   s        9999r   r%   c                       e Zd ZdZdS )XGBClassifierBasez-Dummy class for sklearn.base.ClassifierMixin.Nr&   r)   r   r   r+   r+   B   s        ;;;;r   r+   c                       e Zd ZdZdS )XGBRegressorBasez,Dummy class for sklearn.base.RegressorMixin.Nr&   r)   r   r   r-   r-   E   s        ::::r   r-   c                      t           j                            d          dS 	 ddl} dS # t          $ r t
                              d           Y dS w xY w)z#Check cuDF package available or notcudfNFr   Tz1Importing cuDF failed, use DMatrix instead of QDM)	importlibutil	find_specr/   ImportError_logger	exception)r/   s    r   is_cudf_availabler6   Q   si     ~''/ut   MNNNuus   ) $AAc                  t    t           j                            d          dS 	 ddl} dS # t          $ r Y dS w xY w)z#Check cupy package available or notcupyNFr   T)r0   r1   r2   r8   r3   r8   s    r   is_cupy_availabler:   _   sT     ~''/ut   uus   ) 
77c                  H    t                      st          d          ddl} | S )zImport cupy.z,`cupy` is required for handling CUDA buffer.r   N)r:   r3   r8   r9   s    r   import_cupyr<   l   s0      JHIIIKKKKr   c                  H    t           j                            d          dS dS )z&Check pyarrow package available or notpyarrowNFTr0   r1   r2   r)   r   r   is_pyarrow_availabler@   w   s$     ~	**2u4r   c                      ddl } | S )z!Import pyarrow with memory cache.r   N)r>   )pas    r   import_pyarrowrC      s     Ir   c                      ddl } | S )z Import pandas with memory cache.r   N)pandas)pds    r   import_pandasrG           Ir   c                      ddl } | S )z Import polars with memory cache.r   N)polars)pls    r   import_polarsrL      rH   r   c                  H    t           j                            d          dS dS )z-Check the pandas package is available or not.rE   NFTr?   r)   r   r   is_pandas_availablerN      s$     ~))1u4r   )
csr_matrixdatac                 $    t          | dd          S )Nzpolars.lazyframe.frame	LazyFramer   rP   s    r   _is_polars_lazyframerU          4!9;GGGr   c                 $    t          | dd          S )Nzpolars.series.seriesSeriesrS   rT   s    r   _is_polars_seriesrY      s    4!7BBBr   c                 J    t          |           }t          | dd          }|p|S )Nzpolars.dataframe.frame	DataFrame)rU   r   )rP   lfdfs      r   
_is_polarsr^      s*    	d	#	#B	7	E	EB8Or   zpa.Tablec                 $    t          | dd          S )Nzpyarrow.libTablerS   rT   s    r   	_is_arrowra      s    4888r   c                 $    t          | dd          S )Ncudf.core.dataframer[   rS   rT   s    r   _is_cudf_dfrd      s    4!6DDDr   c                 $    t          | dd          S )Ncudf.core.seriesrX   rS   rT   s    r   _is_cudf_serrg      s    4!3X>>>r   c                 z    t          |           st          |           ot          t          |           dd          S )z+Must go before both pandas and cudf checks.zcudf.pandas.fast_slow_proxy_FastSlowProxyMeta)_is_pandas_df_is_pandas_seriesr   typerT   s    r   _is_cudf_pandasrm      sB    $:#4T#:#: T

13GA A r   zpd.DataFramec                 $    t          | dd          S )Nzpandas.core.framer[   rS   rT   s    r   rj   rj      s    4!4kBBBr   z	pd.Seriesc                 $    t          | dd          S )Nzpandas.core.seriesrX   rS   rT   s    r   rk   rk      s    4!5x@@@r   c                 $    t          | dd          S )Nzmodin.pandas.dataframer[   rS   rT   s    r   _is_modin_dfrq      rV   r   c                 $    t          | dd          S )Nzmodin.pandas.seriesrX   rS   rT   s    r   _is_modin_seriesrs      s    4!6AAAr   c                      t           fdt          t          t          t          t
          t          t          t          t          t          f
D                       S )zWhether the input is a dataframe. Currently supported dataframes:

    - pandas
    - cudf
    - cudf.pandas
    - polars
    - pyarrow
    - modin


    c              3   .   K   | ]} |          V  d S )Nr)   ).0prP   s     r   	<genexpr>zis_dataframe.<locals>.<genexpr>   s?         	
$     r   )anyr^   rY   ra   rd   rg   rm   rj   rk   rq   rs   rT   s   `r   is_dataframerz      s_          
     r   valuec                 x   t          | d         t          j                  r;t          t          t          j                 |           }t          j        |d          S t          r6t          | d         t          j                  rt          j        | d          S t          r6t          | d         t          j	                  rt          j        | d          S t          r6t          | d         t          j
                  rt          j        | d          S t          | d                   st          | d                   rddlm}  || d          S t          | d         dd          st          | d         d	d
          rddlm}  || d          S ddlm}  || d                   roddl}|j        j                                        }| D ]3}t          |j        |          }|j        j        }	|	|k    s
J d            4|                    | d          S t3          dt5          | d                              )zConcatenate row-wise.r   )axiscsr)formatcsc)concatrc   r[   rf   rX   r   )_is_cupy_alikeNz*Concatenating arrays on different devices.zUnknown type: )
isinstancenpndarrayr   r   concatenatescipy_sparserO   vstack
csc_matrixspmatrixrj   rk   rE   r   r   r/   rP   r   r8   cudaruntime	getDevicedeviceid	TypeErrorrl   )
r{   	value_arr	pd_concatCUDF_concatr   r8   dvarrd_vs
             r   r   r      s[   %(BJ'' 1"*-u55	~ia0000 8
58\-DEE 8"57777 8
58\-DEE 8"57777 8
58\-BCC 8"57777U1X ("3E!H"="= (......yQ''''uQx!6DD *a$hI I * 	/.....{5q))))$$$$$$~eAh 	/ I'')) 	J 	JAt|Q''C*-C!888I8888A...
5T%(^^55
6
66r   )Or(   	functoolsimportlib.utilr0   loggingsystypestypingr   r   r   r   r   numpyr   _typingr	   r
   rE   rF   r>   rB   version_infobytesstrr   boolr   sklearnr   _sklearn_versionsklearn.baser   r%   r    r+   r!   r-   sklearn.model_selectionr"   XGBStratifiedKFoldr3   sklearn.cross_validationsklearn.utilsr#   _sklearn_TagsobjectSKLEARN_INSTALLED	getLoggerr   r4   cacher6   r:   
ModuleTyper<   r@   rC   rG   rL   rN   scipy.sparsesparser   rO   	scipy_csrrU   rY   r^   ra   rd   rg   rm   rj   rk   rq   rs   rz   r   r)   r   r   <module>r      s|   2 2          



  @ @ @ @ @ @ @ @ @ @ @ @ @ @     ! ! ! ! ! ! ! ! 
a!Cedl s    ,c ,3 ,c ,d , , , ,$777777::::::AAAAAA??????SQQQQQQQ S S SRRRRRRRRS
7777777       : : : : : : : :< < < < < < < <; ; ; ; ; ; ; ; M!& '
H
%
% 
4 
 
 
 
 	4 	 	 	 	 U%     d     (     u'     u'     T    ''''''4444444   LIII
Hx HD H H H HCH C C C C CX $    9H 9:!6 9 9 9 9Eh E4 E E E E?x ?D ? ? ? ?( t    C CY~%> C C C CAH A;)? A A A AHx HD H H H HB8 B B B B Bx D    :"7(2, "72 "7 "7 "7 "7 "7 "7sl   .B7 B B7 BB7 BB7  B' &B7 'B1.B7 0B11B7 74C.-C..F; ;	GG