
    ^i2                        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( 	 ddl+m,Z- dZ/ ej`                  e1      Z2ejf                  d	efd       Z4ejf                  d	efd       Z5ejf                  d	ejl                  fd       Z7ejf                  d	efd        Z8ejf                  d	ejl                  fd!       Z9ejf                  d	ejl                  fd"       Z:ejf                  d	ejl                  fd#       Z;ejf                  d	efd$       Z<	 ddl=m>Z? dd%l=m@ZA 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ZNy# e)$ r
 ddl*m'Z( Y {w xY w# e)$ r e.Z-Y w xY w# e)$ r* dZ/ G d d      Z! G d d      Z# G d d      Z%dZ(e.Z-e.ZY w xY w# e)$ r dZ?e.ZAY w xY w)8z,For compatibility and optional dependencies.    N)TYPE_CHECKINGAnySequence	TypeGuardcast   )_TDataType   z Python 2 is no longer supported.xreturnc                 ,    | J | j                  d      S )z&convert c string back to python stringzutf-8)decode)r   s    O/var/www/html/hubwallet-dev/venv/lib/python3.12/site-packages/xgboost/compat.pypy_strr      s    ==88G    instancemodulenamec                 b    | j                   }|j                  |k(  }|j                  |k(  }|xr |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      s6    
 

C^^v-NLLD(M+m+r   )__version__)BaseEstimator)ClassifierMixin)RegressorMixin)StratifiedKFold)TagsTFc                       e Zd ZdZy)XGBModelBasez+Dummy class for sklearn.base.BaseEstimator.Nr   r   __qualname____doc__ r   r   r%   r%   ?   s    9r   r%   c                       e Zd ZdZy)XGBClassifierBasez-Dummy class for sklearn.base.ClassifierMixin.Nr&   r)   r   r   r+   r+   B   s    ;r   r+   c                       e Zd ZdZy)XGBRegressorBasez,Dummy class for sklearn.base.RegressorMixin.Nr&   r)   r   r   r-   r-   E   s    :r   r-   c                      t         j                  j                  d      y	 ddl} y# t        $ r t
        j                  d       Y y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   sH     ~~'/ MNs   ' AAc                  l    t         j                  j                  d      y	 ddl} y# t        $ r Y yw xY w)z#Check cupy package available or notcupyNFr   T)r0   r1   r2   r8   r3   r8   s    r   is_cupy_availabler:   _   s9     ~~'/ s   ' 	33c                  8    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   s     HIIKr   c                  D    t         j                  j                  d      yy)z&Check pyarrow package available or notpyarrowFTr0   r1   r2   r)   r   r   is_pyarrow_availabler@   w   s     ~~	*2r   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                  D    t         j                  j                  d      yy)z-Check the pandas package is available or not.rE   FTr?   r)   r   r   is_pandas_availablerN      s     ~~)1r   )
csr_matrixdatac                     t        | dd      S )Nzpolars.lazyframe.frame	LazyFramer   rP   s    r   _is_polars_lazyframerU          4!9;GGr   c                     t        | dd      S )Nzpolars.series.seriesSeriesrS   rT   s    r   _is_polars_seriesrY      s    4!7BBr   c                 >    t        |       }t        | dd      }|xs |S )Nzpolars.dataframe.frame	DataFrame)rU   r   )rP   lfdfs      r   
_is_polarsr^      s$    	d	#B	7	EB8Or   zpa.Tablec                     t        | dd      S )Nzpyarrow.libTablerS   rT   s    r   	_is_arrowra      s    488r   c                     t        | dd      S )Ncudf.core.dataframer[   rS   rT   s    r   _is_cudf_dfrd      s    4!6DDr   c                     t        | dd      S )Ncudf.core.seriesrX   rS   rT   s    r   _is_cudf_serrg      s    4!3X>>r   c                 b    t        |       xs t        |       xr 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      s4    $:#4T#: T
13GA r   zpd.DataFramec                     t        | dd      S )Nzpandas.core.framer[   rS   rT   s    r   rj   rj      s    4!4k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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   | ]  } |        y w)Nr)   ).0prP   s     r   	<genexpr>zis_dataframe.<locals>.<genexpr>   s       	
$s   )anyr^   rY   ra   rd   rg   rm   rj   rk   rq   rs   rT   s   `r   is_dataframerz      sA       
  r   valuec                 
   t        | d   t        j                        r8t        t        t        j                     |       }t        j
                  |d      S t        r4t        | d   t        j                        rt        j                  | d      S t        r4t        | d   t        j                        rt        j                  | d      S t        r4t        | 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         rzddl}|j(                  j*                  j-                         }| D ]:  }t        |j                  |      }|j.                  j0                  }	|	|k(  r5J d        |j                  | 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   %(BJJ'"**-u5	~~ia00
58\-D-DE""577
58\-D-DE""577
58\-B-BC""577U1X"3E!H"=.Q''uQx!6Da$hI 	/5q))$eAh II'') 	JAt||Q'C**--C!8III8	J A..
nT%(^$45
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    
  @ @  !
a C!C Cedl s ,c ,3 ,c ,d ,$7:A?SQ7 * '

H
% 
4 
 
 	4 	 	 U%%   d   ((   u''   u''   T  '4Hx HD HCH C CX $ 9H 9:!6 9Eh E4 E?x ?D ?( t C CY~%> CAH A;)? AHx HD HB8 B Bx D :"7(2, "72 "7M  SRRS  
  : :< <; ; M!N  LIsf   ,H G8 H
 H 7I
 8HH HH 
HH HH +II
	II