
    ^j)                     b   d 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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jZ                  e.      Z/ej`                  defd       Z1ej`                  defd       Z2ej`                  dejf                  fd       Z4ej`                  defd       Z5ej`                  dejf                  fd       Z6ej`                  dejf                  fd        Z7ej`                  dejf                  fd!       Z8ej`                  defd"       Z9	 ddl:m;Z< dd#l:m=Z> d$edefd%Z?d$edefd&Z@d$edefd'ZAd$ede
d(   fd)ZBd$edefd*ZCd$edefd+ZDd$edefd,ZEd$ede
d-   fd.ZFd$ede
d/   fd0ZGd$edefd1ZHd$edefd2ZId$edefd3ZJd$edefd4ZKd5e	e   defd6ZLy# e*$ r e+Z)Y xw 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+Z>Y w xY w)7z,For compatibility and optional dependencies.    N)TYPE_CHECKINGAnySequence	TypeGuardcast   )_TDataTypexreturnc                 ,    | J | j                  d      S )z&convert c string back to python stringzutf-8)decode)r   s    Y/var/www/ramen.bs-engineer-server.com/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$   9   s    9r   r$   c                       e Zd ZdZy)XGBClassifierBasez-Dummy class for sklearn.base.ClassifierMixin.Nr%   r(   r   r   r*   r*   <   s    ;r   r*   c                       e Zd ZdZy)XGBRegressorBasez,Dummy class for sklearn.base.RegressorMixin.Nr%   r(   r   r   r,   r,   ?   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_availabler5   K   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)r/   r0   r1   r7   r2   r7   s    r   is_cupy_availabler9   Y   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)r9   r2   r7   r8   s    r   import_cupyr;   f   s     HIIKr   c                  D    t         j                  j                  d      yy)z&Check pyarrow package available or notpyarrowFTr/   r0   r1   r(   r   r   is_pyarrow_availabler?   q   s     ~~	*2r   c                      ddl } | S )z!Import pyarrow with memory cache.r   N)r=   )pas    r   import_pyarrowrB   y   s     Ir   c                      ddl } | S )z Import pandas with memory cache.r   N)pandas)pds    r   import_pandasrF           Ir   c                      ddl } | S )z Import polars with memory cache.r   N)polars)pls    r   import_polarsrK      rG   r   c                  D    t         j                  j                  d      yy)z-Check the pandas package is available or not.rD   FTr>   r(   r   r   is_pandas_availablerM      s     ~~)1r   )
csr_matrixdatac                     t        | dd      S )Nzpolars.lazyframe.frame	LazyFramer   rO   s    r   _is_polars_lazyframerT          4!9;GGr   c                     t        | dd      S )Nzpolars.series.seriesSeriesrR   rS   s    r   _is_polars_seriesrX      s    4!7BBr   c                 >    t        |       }t        | dd      }|xs |S )Nzpolars.dataframe.frame	DataFrame)rT   r   )rO   lfdfs      r   
_is_polarsr]      s$    	d	#B	7	EB8Or   zpa.Tablec                     t        | dd      S )Nzpyarrow.libTablerR   rS   s    r   	_is_arrowr`      s    488r   c                     t        | dd      S )Ncudf.core.dataframerZ   rR   rS   s    r   _is_cudf_dfrc      s    4!6DDr   c                     t        | dd      S )Ncudf.core.seriesrW   rR   rS   s    r   _is_cudf_serrf      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   typerS   s    r   _is_cudf_pandasrl      s4    $:#4T#: T
13GA r   zpd.DataFramec                 :    t        | dd      xs t        | dd      S )Nzpandas.core.framerZ   rD   rR   rS   s    r   ri   ri      s(    4!4kB ohG r   z	pd.Seriesc                 :    t        | dd      xs t        | dd      S )Nzpandas.core.seriesrW   rD   rR   rS   s    r   rj   rj      s(    4!5x@ OhE r   c                     t        | dd      S )Nzmodin.pandas.dataframerZ   rR   rS   s    r   _is_modin_dfrp      rU   r   c                     t        | dd      S )Nzmodin.pandas.seriesrW   rR   rS   s    r   _is_modin_seriesrr      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prO   s     r   	<genexpr>zis_dataframe.<locals>.<genexpr>   s       	
$s   )anyr]   rX   r`   rc   rf   rl   ri   rj   rp   rr   rS   s   `r   is_dataframery      sA       
  r   c                     t        | d      S )N__cuda_array_interface__)hasattrrS   s    r   _is_cupy_aliker}      s    4344r   valuec                     t        | d   t        j                        rFt        t        t        j                     |       }t        t
        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 t%        | 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)concatrb   rZ   re   rW   Nz*Concatenating arrays on different devices.zUnknown type: )
isinstancenpndarrayr   r   r	   concatenatescipy_sparserN   vstack
csc_matrixspmatrixri   rj   rD   r   r   r.   r}   r7   cudaruntime	getDevicedeviceid	TypeErrorrk   )	r~   	value_arr	pd_concatCUDF_concatr7   dvarrd_vs	            r   r   r      s   %(BJJ'"**-u5	Byq9::
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   )Mr'   	functoolsimportlib.utilr/   loggingtypestypingr   r   r   r   r   numpyr   _typingr	   r
   rD   rE   r=   rA   bytesstrr   boolr   sklearnr   _sklearn_versionsklearn.baser   r$   r   r*   r    r,   sklearn.model_selectionr!   XGBStratifiedKFoldsklearn.utilsr"   _sklearn_Tagsr2   objectSKLEARN_INSTALLED	getLoggerr   r3   cacher5   r9   
ModuleTyper;   r?   rB   rF   rK   rM   scipy.sparsesparser   rN   	scipy_csrrT   rX   r]   r`   rc   rf   rl   ri   rj   rp   rr   ry   r}   r   r(   r   r   <module>r      sY   2     @ @  !edl s ,c ,3 ,c ,d , 7:A?M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  Y~%> H ;)? Hx HD HB8 B Bx D :5 5d 5 7(2,  72  7O  
  : :< <; ; M!N  LIsH   G0 .G" 4G0 H" "G-)G0 ,G--G0 0+HH"	H.-H.