
    bi3                        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
 ddlZddlm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mZ 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#       Z7	 ddl8m9Z: dd$l8m;Z< d%e	e   d	efd&Z=y# e$ r	 eZeZdZY w xY w# 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Z<Y xw xY w)'z,For compatibility and optional dependencies.    N)AnySequencecast   )_T   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    I/home/cdr/jupyterlab/.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   )	DataFrameSeriesTF)__version__)BaseEstimator)ClassifierMixin)RegressorMixin)StratifiedKFold)Tagsc                       e Zd ZdZy)XGBModelBasez+Dummy class for sklearn.base.BaseEstimator.Nr   r   __qualname____doc__ r   r   r$   r$   F   s    9r   r$   c                       e Zd ZdZy)XGBClassifierBasez-Dummy class for sklearn.base.ClassifierMixin.Nr%   r(   r   r   r*   r*   I   s    ;r   r*   c                       e Zd ZdZy)XGBRegressorBasez,Dummy class for sklearn.base.RegressorMixin.Nr%   r(   r   r   r,   r,   L   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   X   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   f   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;   s   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>   ~   s     ~~	*2r   c                      ddl } | S )z!Import pyarrow with memory cache.r   N)r=   )pas    r   import_pyarrowrA      s     Ir   c                      ddl } | S )z Import polars with memory cache.r   N)polars)pls    r   import_polarsrE      s     Ir   )
csr_matrix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        r)t        | d   t        t        f      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                  |      }|j0                  j2                  }	|	|k(  r5J d        |j                  | d      S t5        dt7        | d                )zConcatenate row-wise.r   )axiscsr)formatcsc)concatzcudf.core.dataframer   zcudf.core.seriesr   r   )_is_cupy_alikeNz*Concatenating arrays on different devices.zUnknown type: )
isinstancenpndarrayr   r   concatenatescipy_sparserF   vstack
csc_matrixspmatrixPANDAS_INSTALLEDr   r   pandasrM   r   r.   datarN   r7   cudaruntime	getDevicedeviceid	TypeErrortype)
rG   	value_arr	pd_concatCUDF_concatrN   r7   dvarrd_vs
             r   rM   rM      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JuQx)V1DE.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   )>r'   	functoolsimportlib.utilr/   loggingsystypestypingr   r   r   numpyrP   _typingr   version_infobytesstrr   boolr   rX   r   r   rW   r2   objectsklearnr   _sklearn_versionsklearn.baser   r$   r   r*   r    r,   sklearn.model_selectionr!   XGBStratifiedKFoldsklearn.cross_validationsklearn.utilsr"   _sklearn_TagsSKLEARN_INSTALLED	getLoggerr   r3   cacher5   r9   
ModuleTyper;   r>   rA   rE   scipy.sparsesparserS   rF   	scipy_csrrM   r(   r   r   <module>r      sb   2    
  & &  
a C!C Cedl s ,c ,3 ,c ,d ,($7:A?SQ7 * '

H
% 
4 
 
 	4 	 	 U%%   d   ((   u''  '4"7(2, "72 "7o  IF  SRS  
  : :< <; ; M!n  LIsx   
E 'F  E' E8 F >F7 E$#E$'E52F 4E55F 8F?F FF +F43F47	GG