Ë
    ®Ó^jæÔ  ã                   ód  — U 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mZmZmZmZmZmZ ddlZddlmZmZmZmZ ddlmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+ ddl,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7 ddl8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZI erddlJZKdd	lLmMZN dd
lLmOZP ddlQmRZRmSZS eej¨                  ee0   ee1   f   ZUeeVd<   dZWddhZXde/dee2   ddfd„ZYde/ddfd„ZZde/de[fd„Z\de/de[de/fd„Z]e.j¼                  dœde/de2de_dee0   dee1   de.deUfd„Z`de/de[fd„Zae.j¼                  dœde/de2de_dee0   dee1   de.deUfd„Zbde/de[fd „Zcde/deejÈ                     fd!„Zede/d"ee3   dejÈ                  fd#„Zfe.j¼                  dœdejÈ                  de2de_dee0   dee1   de.deUfd$„Zgd%d%d%d%d%d%d%d%d&d&d&d'd(œZhd%d%d%d%d%d%d%d%d&d&d'd)œZid%d%d%d%d%d%d%d%d&d&d&d&d'd*œZjehj×                  ei«       ehj×                  ej«       d+Zlde/ddfd,„Zmdd-d.een   dee0   dee1   d/e[deee0   ee1   f   fd0„Zod"e4de[fd1„Zpd"ede[fd2„Zqd"ede[fd3„Zrejæ                  de	e4ge[f   fd4„«       Ztd"e4de[fd5„Zuejæ                  de	e4ge[f   fd6„«       Zvd"e4de[fd7„Zwd8edejÈ                  fd9„Zxejæ                  de[fd:„«       Zyejæ                  dezfd;„«       Z{dd-deeejÈ                  ef      fd<„Z| G d=„ d>e«      Z}	 	 	 d}dd-d/e[dee0   deee1ef      d.een   dee}ee0   ee1   f   fd?„Z~de/d@end"ee3   dAej¨                  ddf
dB„Zdd-de.ddfdC„Z€e.j¼                  dœdd-d/e[de2de_dee0   deee1ef      de.deUfdD„Z�de/d@end"ee3   dAej¨                  ddf
dE„Z‚de/de2de_d/e[dee0   dee1   deUfdF„Zƒ G dG„ dHe«      Z„ddId/e[dee0   deee1ef      dee„ee0   ee1   f   f
dJ„Z…e.j¼                  fde/d/e[de2dKe_dee0   deee1ef      de.deUfdL„Z†ejæ                  de
e/enf   fdM„«       Z‡de/deeen   ef   fdN„Zˆde/d@end"ee3   dAej¨                  ddf
dO„Z‰d~dP„ZŠde/ddfdQ„Z‹de/d/e[dee0   deee1ef      dee„ee0   ee1   f   f
dR„ZŒe.j¼                  fde/d/e[de2dKe_dee0   deee1ef      de.deUfdS„Z�ejæ                  de	ege[f   fdT„«       ZŽejæ                  de	ege[f   fdU„«       Z� G dV„ dWe«      Z�de/dee0   deee1ef      d/e[dee�ee0   ee1   f   f
dX„Z‘de/de2de_dee0   deee1ef      d/e[deUfdY„Z’de/de-fdZ„Z“de/de2de_dee0   dee1   deUfd[„Z”de/de[fd\„Z•de/de[fd]„Z–de/de[fd^„Z—de/de[fd_„Z˜de/de2de_dee0   dee1   deUfd`„Z™de/dee5   fda„Zše.j¼                  fde5dee2   dee0   dee1   de.deUfdb„Z›de/deeœ   fdc„Z�e.j¼                  dœdede2dKe_dee0   dee1   de.deUfdd„Zžde/deez   fde„ZŸe.j¼                  dœdede2dKe_dee0   dee1   de.deUfdf„Z de/de[fdg„Z¡de/de/fdh„Z¢die.j¼                  djœde/de2dke_dee0   deee1ef      d/e[de.deUfdl„Z£de/d@enddfdm„Z¤dejÈ                  dnend"ee3   dAej¨                  ddf
do„Z¥dednend"ee3   dAej¨                  ddf
dp„Z¦dednend"ee3   dAej¨                  ddf
dq„Z§de/dnendAej¨                  ddfdr„Z¨de/dnendAej¨                  ddfds„Z©de/dnendAej¨                  ddfdt„Zª	 ddudvde/d@end"ee3   ddf
dw„Z«de/dee0   dee1   d/e[de6f
dx„Z¬dede[fdy„Z­dzd{de/ddfd|„Z®y)€zData dispatching for DMatrix.é    N)ÚTYPE_CHECKINGÚAnyÚCallableÚDictÚListÚOptionalÚSequenceÚTupleÚ	TypeAliasÚ	TypeGuardÚUnioné   )Ú_LIBÚ_check_callÚc_strÚmake_jcargs)ÚAifTypeÚ
CategoriesÚDfCatAccessorÚTransformedDfÚ_arrow_array_infÚ_ensure_np_dtypeÚ
_is_df_catÚarray_hasobjectÚarray_interfaceÚarray_interface_dictÚarrow_cat_infÚcheck_cudf_metaÚcuda_array_interfaceÚcuda_array_interface_dictÚcudf_cat_infÚget_ref_categoriesÚis_arrow_dictÚ
pd_cat_inf)ÚCupyTÚDataSplitModeÚDataTypeÚFeatureNamesÚFeatureTypesÚFloatCompatibleÚ
NumpyDTypeÚPandasDTypeÚPathLikeÚTransformedDataÚc_bst_ulong)Ú	_is_arrowÚ_is_cudf_dfÚ_is_cudf_pandasÚ_is_cudf_serÚ_is_cupy_alikeÚ_is_modin_dfÚ_is_modin_seriesÚ_is_pandas_dfÚ_is_pandas_seriesÚ
_is_polarsÚ_is_polars_lazyframeÚ_is_polars_seriesÚimport_pandasÚimport_polarsÚimport_pyarrowÚis_pyarrow_availableÚlazy_isinstance)Ú	DataFrame)ÚSeries)ÚDMatrixÚ_ProxyDMatrixÚDispatchedDataBackendReturnTypeÚcÚbase_marginÚlabelÚdataÚmissingÚreturnc                 ó”   — |�Ft        j                  |«      s0t        j                  dt	        t        | «      «      z   t        «       y y y )Nz2`missing` is not used for current input data type:)ÚnpÚisnanÚwarningsÚwarnÚstrÚtypeÚUserWarning)rI   rJ   s     úW/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/xgboost/data.pyÚ_warn_unused_missingrU   b   s:   € ØÐ¤b§h¡h¨wÔ&7Ü�‰Ø@Ä3ÄtÈDÃzÃ?ÑRÜõ	
ð '8Ðó    c                 ód   — t        | d«      r$t        | j                  «      dk7  rt        d«      ‚y y )NÚshapeé   z8Please reshape the input data into 2-dimensional matrix.)ÚhasattrÚlenrX   Ú
ValueError©rI   s    rT   Ú_check_data_shaper^   j   s/   € Üˆt�WÔ¤# d§j¡j£/°QÒ"6ÜÐSÓTÐTð #7ÐrV   c                 óž   — d}d}	 ddl m} t        | |«      }	 ddl m} t        | |«      }|xs |S # t        $ r Y Œ$w xY w# t        $ r Y Œ w xY w)zPredicate for scipy CSR input.Fr   )Ú	csr_array)Ú
csr_matrix)Úscipy.sparser`   Ú
isinstanceÚImportErrorra   )rI   Úis_arrayÚ	is_matrixr`   ra   s        rT   Úis_scipy_csrrg   o   óh   € à€HØ€IðÝ*ä˜d IÓ.ˆðÝ+ä˜t ZÓ0ˆ	ð Ò �yÐ øô ò Ùðûô ò Ùðúó   †1 ™A  ±	=¼=Á 	AÁAÚis_csrc                 ó   — ddl m}m} t        | j                  «      t        | j
                  «      k7  r7t        dt        | j                  «      › dt        | j
                  «      › �«      ‚t        | j                  | j                  j                  «      \  }}t        | j                  | j                  j                  «      \  }}t        | j
                  | j
                  j                  «      \  }}|| j                  us|| j                  us|| j
                  ur2|r ||||f| j                  ¬«      } | S  ||||f| j                  ¬«      } | S )zxEnsure correct data alignment and data type for scipy sparse inputs. Input should
    be either csr or csc matrix.

    r   )Ú
csc_matrixra   zlength mismatch: z vs )rX   )rb   rl   ra   r[   ÚindicesrI   r\   r   ÚindptrÚdtyperX   )rI   rj   rl   ra   rn   Ú_rm   Úvaluess           rT   Útransform_scipy_sparserr   ‚   s  € ÷
 4ä
ˆ4�<‰<ÓœC §	¡	›NÒ*ÜÐ,¬S°·±Ó->Ð,?¸tÄCÈÏ	É	ÃNÐCSÐTÓUÐUä  §¡¨d¯k©k×.?Ñ.?Ó@�I€FˆAÜ! $§,¡,°·±×0BÑ0BÓC�J€GˆQÜ  §¡¨D¯I©I¯O©OÓ<�I€FˆAà�d—k‘kÑ!Ø˜$Ÿ,™,Ñ&Ø˜Ÿ™Ñ"áÙ˜v w°Ð7¸t¿z¹zÔJˆDð €Kñ ˜v w°Ð7¸t¿z¹zÔJˆDØ€KrV   )Údata_split_modeÚnthreadÚfeature_namesÚfeature_typesrs   c                 ó¤  — t        j                  «       }t        | d«      } t        t	        j
                  t        | j                  «      t        | j                  «      t        | j                  «      t        | j                  d   «      t        t        |«      t        |«      t        |«      ¬«      t        j                  |«      «      «       |||fS )z"Initialize data from a CSR matrix.Tr   ©rJ   rt   rs   )ÚctypesÚc_void_prr   r   r   ÚXGDMatrixCreateFromCSRr   rn   rm   rI   r/   rX   r   ÚfloatÚintÚbyref©rI   rJ   rt   ru   rv   rs   Úhandles          rT   Ú_from_scipy_csrr�   ›   s¡   € ô �_‰_Ó€FÜ! $¨Ó-€DÜÜ×#Ñ#Ü˜DŸK™KÓ(Ü˜DŸL™LÓ)Ü˜DŸI™IÓ&Ü˜Ÿ
™
 1™Ó&ÜÜ˜g›Ü˜G›Ü # OÓ 4ôô
 �L‰L˜Ó ó	
ôð �= -Ð/Ð/rV   c                 óž   — d}d}	 ddl m} t        | |«      }	 ddl m} t        | |«      }|xs |S # t        $ r Y Œ$w xY w# t        $ r Y Œ w xY w)zPredicate for scipy CSC input.Fr   )Ú	csc_array)rl   )rb   rƒ   rc   rd   rl   )rI   re   rf   rƒ   rl   s        rT   Úis_scipy_cscr„   ¹   rh   ri   c                 ó¤  — t        j                  «       }t        | d«       t        t	        j
                  t        | j                  «      t        | j                  «      t        | j                  «      t        | j                  d   «      t        t        |«      t        |«      t        |«      ¬«      t        j                  |«      «      «       |||fS )z"Initialize data from a CSC matrix.Fr   rx   )ry   rz   rr   r   r   ÚXGDMatrixCreateFromCSCr   rn   rm   rI   r/   rX   r   r|   r}   r~   r   s          rT   Ú_from_scipy_cscr‡   Ì   sŸ   € ô �_‰_Ó€FÜ˜4 Ô'ÜÜ×#Ñ#Ü˜DŸK™KÓ(Ü˜DŸL™LÓ)Ü˜DŸI™IÓ&Ü˜Ÿ
™
 1™Ó&ÜÜ˜g›Ü˜G›Ü # OÓ 4ôô
 �L‰L˜Ó ó	
ôð �= -Ð/Ð/rV   c                 óž   — d}d}	 ddl m} t        | |«      }	 ddl m} t        | |«      }|xs |S # t        $ r Y Œ$w xY w# t        $ r Y Œ w xY w)zPredicate for scipy COO input.Fr   )Ú	coo_array)Ú
coo_matrix)rb   r‰   rc   rd   rŠ   )rI   re   rf   r‰   rŠ   s        rT   Úis_scipy_coor‹   é   rh   ri   c                 ó   — t        | d«      S )NÚ__array_interface__©rZ   r]   s    rT   Ú_is_np_array_liker�   ü   s   € Ü�4Ð.Ó/Ð/rV   ro   c                 óþ   — 	 | j                   j                  st        j                  | d|¬«      } nt        j                  | |¬«      } t        | |«      \  } }| S # t
        $ r t        j                  | |¬«      } Y Œ3w xY w)zGHandle numpy slice.  This can be removed if we use __array_interface__.T)Úcopyro   ©ro   )ÚflagsÚc_contiguousrM   ÚarrayÚasarrayÚAttributeErrorr   )rI   ro   s     rT   Ú_maybe_np_slicer˜      sn   € ð-Ø�z‰z×&Ò&Ü—8‘8˜D t°5Ô9‰Dä—:‘:˜d¨%Ô0ˆDô # 4¨Ó/�K€Dˆ%Ø€Køô ò -Ü�z‰z˜$ eÔ,Šð-ús   ‚AA Á A<Á;A<c                 óB  — t        | «       t        | | j                  «      \  } }t        j                  «       }t        t        j                  t        | «      t        t        |«      t        |«      t        |«      ¬«      t        j                  |«      «      «       |||fS )z(Initialize data from a 2-D numpy matrix.rx   )r^   r   ro   ry   rz   r   r   ÚXGDMatrixCreateFromDenser   r   r|   r}   r~   )rI   rJ   rt   ru   rv   rs   rp   r€   s           rT   Ú_from_numpy_arrayr›     s…   € ô �dÔÜ˜t T§Z¡ZÓ0�G€Dˆ!Ü�_‰_Ó€FÜÜ×%Ñ%Ü˜DÓ!ÜÜ˜g›Ü˜G›Ü # OÓ 4ôô
 �L‰L˜Ó ó	
ô
ð �= -Ð/Ð/rV   r}   r|   Úi)Úint8Úint16Úint32Úint64Úuint8Úuint16Úuint32Úuint64Úfloat16Úfloat32Úfloat64Úbool)ÚInt8ÚInt16ÚInt32ÚInt64ÚUInt8ÚUInt16ÚUInt32ÚUInt64ÚFloat32ÚFloat64Úboolean)zint8[pyarrow]zint16[pyarrow]zint32[pyarrow]zint64[pyarrow]zuint8[pyarrow]zuint16[pyarrow]zuint32[pyarrow]zuint64[pyarrow]zfloat[pyarrow]zfloat32[pyarrow]zdouble[pyarrow]zfloat64[pyarrow]zbool[pyarrow]zpWhen categorical type is supplied, the experimental DMatrix parameter`enable_categorical` must be set to `True`.c                 óL  — t        | d«      rvt        | j                  d«      r`t        | j                  «      D ��cg c]+  \  }}|j                  t        vr| j
                  |   › d|› �‘Œ- }}}ddj                  |«      z   }nd}d}|› dt        › d|› �}t        |«      ‚c c}}w )	NÚdtypesÚ__iter__z: z Invalid columns:z, Ú z?DataFrame.dtypes for data must be int, float, bool or category.ú )	rZ   rµ   Ú	enumerateÚnameÚ_pandas_dtype_mapperÚcolumnsÚjoinÚ_ENABLE_CAT_ERRr\   )rI   rœ   ro   Ú
bad_fieldsÚerrÚtype_errÚmsgs          rT   Ú_invalid_dataframe_dtyperÃ   `  s­   € ô ˆt�XÔ¤7¨4¯;©;¸
Ô#Cô & d§k¡kÓ2÷
á��5Ø�z‰zÔ!5Ñ5ð �|‰|˜A‰Ð˜r % Ò)ð
ˆ
ñ 
ð
 " D§I¡I¨jÓ$9Ñ9‰àˆàP€HØˆj˜œ/Ð*¨!¨C¨5Ð
3€CÜ
�S‹/Ðùó
s   »0B ÚPdDataFrameÚmetaÚenable_categoricalc                 ó   — t        «       }|€Œ|€Št        | j                  |j                  «      rB| j                  D ��cg c]*  }dj	                  |D �cg c]  }t        |«      ‘Œ c}«      ‘Œ, }}}n(t        | j                  j                  t
        «      «      }g }d}	| j                  D ]¥  }
t        |
«      rG|j                  t        |
j                  j                     «       |	sŒ=t        j                  d«       d}	ŒUt!        |
«      st#        |
«      r|r|j                  t$        «       Œƒ	 |j                  t        |
j                     «       Œ§ |€|€|}||fS c c}w c c}}w # t&        $ r t)        | «       Y ŒÓw xY w)z)Handle feature info for pandas dataframe.r¸   Tz3Sparse arrays from pandas are converted into dense.F)r<   rc   r¼   Ú
MultiIndexr½   rQ   ÚlistÚmaprµ   Úis_pd_sparse_dtypeÚappendr»   Úsubtyperº   rO   rP   Úis_pd_cat_dtypeÚis_pa_ext_categorical_dtypeÚCAT_TÚKeyErrorrÃ   )rI   rÅ   ru   rv   rÆ   Úpdrœ   ÚxÚnew_feature_typesÚneed_sparse_extension_warnro   s              rT   Úpandas_feature_inforÖ   r  sI  € ô 
‹€Bð Ð  Ü�d—l‘l B§M¡MÔ2ØDHÇLÁL×Q¸q˜SŸX™X°qÖ&9°!¤s¨1¥vÒ&9Õ:ÐQˆMÒQä  §¡×!1Ñ!1´#Ó!6Ó7ˆMð ÐØ!%ÐØ—‘ò /ˆÜ˜eÔ$Ø×$Ñ$Ô%9¸%¿-¹-×:LÑ:LÑ%MÔNÚ)Ü—‘ÐSÔTØ-2Ñ*ä˜EÔ"Ô&AÀ%Ô&HÙ Ø×$Ñ$¤UÕ+ð/Ø!×(Ñ(Ô)=¸e¿j¹jÑ)IÕJð/ð  Ð  Ø)ˆà˜-Ð'Ð'ùò5 ':ùÓQøô( ò /Ü(¨Ö.ð/ús)   ¾E ÁEÁ$	E Ä-"E&ÅE Å&E=Å<E=c                 ó  — ddl m} t        | |«      syddlm}m}m}  || «      xr | j                  t        v } || «      xr | j                  dk(  } || «      xr | j                  t        v }|xs |xs |xs t        | «      S )z(Whether dtype is a pandas nullable type.r   )ÚExtensionDtypeF)Úis_bool_dtypeÚis_float_dtypeÚis_integer_dtyper³   )
Úpandas.api.extensionsrØ   rc   Úpandas.api.typesrÙ   rÚ   rÛ   rº   Úpandas_nullable_mapperrÎ   )ro   rØ   rÙ   rÚ   rÛ   Úis_intÚis_boolÚis_floats           rT   Úis_nullable_dtyperâ   œ  s~   € õ 5ä�e˜^Ô,ØçPÑPá˜eÓ$ÒM¨¯©Ô7MÐ)M€Fá˜EÓ"Ò> u§z¡z°YÑ'>€GÙ˜eÓ$ÒM¨¯©Ô7MÐ)M€HØÒB�WÒB ÒB¬O¸EÓ,BÐBrV   c                 ó   — t        | d«      S )z;Return whether dtype is a pyarrow extension type for pandasÚpyarrow_dtyperŽ   r’   s    rT   Úis_pa_ext_dtyperå   ­  s   € ä�5˜/Ó*Ð*rV   c                 ó2   — t        t        | dd«      dd«      S )z)Check whether dtype is a dictionary type.rä   Nzpyarrow.libÚDictionaryType)r@   Úgetattrr’   s    rT   rÏ   rÏ   ²  s    € äÜ��¨Ó-¨}Ð>Nóð rV   c                  ó>  ‡— t        «       } t        | j                  d«      rut        | j                  j                  d«      rU| j                  j                  j                  } || j
                  «       |d«      k\  rddlmŠ dt        dt        fˆfd„}|S dd	l
m} |S )
NÚversionÚVersionú2.1.0r   ©ÚCategoricalDtypero   rK   c                 ó   •— t        | ‰«      S ©N©rc   ©ro   rî   s    €rT   Úpd_is_cat_210z+_lazy_load_pd_is_cat.<locals>.pd_is_cat_210Â  s   ø€ Ü! %Ð)9Ó:Ð:rV   ©Úis_categorical_dtype)r<   rZ   Úutilrê   rë   Ú__version__Úpandasrî   r,   r¨   rÝ   rõ   )rÒ   rë   ró   rõ   rî   s       @rT   Ú_lazy_load_pd_is_catrù   ¹  sy   ø€ ä	‹€Bäˆr�w‰w˜	Ô"¤w¨r¯w©w¯©À	Ô'JØ—'‘'—/‘/×)Ñ)ˆÙ�2—>‘>Ó"¡g¨gÓ&6Ò6Ý/ð;¤[ð ;´Tõ ;ð !Ð Ý5àÐrV   c                 ó&   — t        «       } || «      S )z)Wrapper for testing pandas category type.)rù   )ro   Úis_cats     rT   rÎ   rÎ   Ë  s   € ä!Ó#€FÙ�%‹=ÐrV   c                  ó>  ‡— t        «       } t        | j                  d«      rut        | j                  j                  d«      rU| j                  j                  j                  } || j
                  «       |d«      k\  rddlmŠ dt        dt        fˆfd„}|S dd	l
m} |S )
Nrê   rë   rì   r   )ÚSparseDtypero   rK   c                 ó   •— t        | ‰«      S rð   rñ   )ro   rý   s    €rT   Úpd_is_sparse_210z1_lazy_load_pd_is_sparse.<locals>.pd_is_sparse_210Ú  s   ø€ Ü! %¨Ó5Ð5rV   )Ú	is_sparse)r<   rZ   rö   rê   rë   r÷   rø   rý   r,   r¨   rÝ   r   )rÒ   rë   rÿ   r   rý   s       @rT   Ú_lazy_load_pd_is_sparser  Ñ  sy   ø€ ä	‹€Bäˆr�w‰w˜	Ô"¤w¨r¯w©w¯©À	Ô'JØ—'‘'—/‘/×)Ñ)ˆÙ�2—>‘>Ó"¡g¨gÓ&6Ò6Ý*ð6¬ð 6¼õ 6ð $Ð#å*àÐrV   c                 ó&   — t        «       } || «      S )z'Wrapper for testing pandas sparse type.)r  )ro   r   s     rT   rË   rË   ä  s   € ä'Ó)€Iá�UÓÐrV   Úserc                 ób  — t        «       }t        rddl}n
t        «       }| j                  }|j                  «       }|j                  «       }|j                  dk(  xr& |j                  j                  |j                  «       }|j                  |d¬«      }t        ||j                  «      \  }}|S )z Handle pandas pyarrow extention.r   NF)Úzero_copy_onlyÚwritable)r<   r   Úpyarrowr>   r•   Ú__arrow_array__Úcombine_chunksÚ
null_countÚtypesÚ
is_booleanrR   Úto_numpyr   ro   )	r  rÒ   ÚpaÚd_arrayÚaaÚchunkÚ	zero_copyÚarrrp   s	            rT   Úpandas_pa_typer  ë  s˜   € ä	‹€BåÜäÓˆð
 .1¯Y©Y€Gð $×3Ñ3Ó5€Bà×)Ñ)Ó+€Eà× Ñ  AÑ%ÒM¨b¯h©h×.AÑ.AÀ%Ç*Á*Ó.MÐ*M€Ið —n‘n°IÈ�nÓN€CÜ˜c 3§9¡9Ó-�F€CˆØ€JrV   c                  óœ   — t         j                  j                  t         j                  «      t         j                  j                  d«      kD  S )Nz1.25.0)rM   ÚlibÚNumpyVersionr÷   © rV   rT   Ú_lazy_has_npdtypesr  
  s/   € ä�6‰6×ÑœrŸ~™~Ó.´·±×1DÑ1DÀXÓ1NÑNÐNrV   c                  ó   — ddl m} m} | |fS )Nr   ©ÚFloat32DtypeÚFloat64Dtype)rø   r  r  r  s     rT   Ú_lazy_load_pd_floatsr    s   € ç1à˜Ð%Ð%rV   c                 ó  ‡‡	‡
‡— t        «       \  ŠŠ	g }t        «       Šdddt        fd„}dddt        j                  fˆˆ	ˆ
fd„}dddt        j                  fˆ
ˆfd„}t        | j                  | j                  «      D �]  \  }Š
t        ‰
«      rt        d«      ‚t        ‰
«      r|j                   || |   «      «       ŒCt        ‰
«      r|j                  t        | |   «      «       Œlt        ‰
«      r|j                   || |   «      «       Œ’t        ‰
«      rU| |   j                   }|j#                  «       }t%        |«      rt'        ||j(                  «      \  }}|j                  |«       Œò|j                   || |   «      «       �Œ |S )z9Handle categorical dtype and extension types from pandas.r  ÚPdSeriesrK   c                 ó   — | j                   S rð   )Úcat)r  s    rT   Ú	cat_codesz(pandas_transform_data.<locals>.cat_codes  s   € Ø�w‰wˆrV   c                 óô   •— t        ‰‰«      rt        j                  }n-t        ‰‰«      rt        j                  }nt        j                  }t	        | j                  |t        j                  ¬«      |«      d   S ©N)ro   Úna_valuer   )rc   rM   r¦   r§   r   r  Únan)r  Ú	res_dtyper  r  ro   s     €€€rT   Únu_typez&pandas_transform_data.<locals>.nu_type"  s]   ø€ ä�e˜\Ô*Ü$&§J¡J‰IÜ˜˜|Ô,ÜŸ
™
‰IäŸ
™
ˆIÜØ�L‰L˜y´2·6±6ˆLÓ:¸Ió
à
ñð 	rV   c                 ó–  •— ‰xrH t        | j                  t        j                  j                  t        j                  j
                  f«      }|s"‰t        j                  t        j                  hv r| j                  «       }n/| j                  t        j                  t        j                  ¬«      }t        ||j                  «      d   S r%  )rc   ro   rM   rµ   ÚFloat32DTypeÚFloat64DTyper¦   r§   r  r'  r   )r  Únpdtypesr•   ro   Ú	np_dtypess      €€rT   Úoth_typez'pandas_transform_data.<locals>.oth_type.  s’   ø€ àò 
¤Ø�I‰Iô —	‘	×&Ñ&ä—	‘	×&Ñ&ð	ó"
ˆñ �u¤§¡¬R¯Z©ZÐ 8Ñ8Ø—L‘L“N‰Eð —L‘L¤r§z¡z¼B¿F¹F�LÓCˆEÜ  u§{¡{Ó3°AÑ6Ð6rV   zFpyarrow dictionary type is not supported. Use pandas category instead.)r  r  r   rM   ÚndarrayÚzipr¼   rµ   rÏ   r\   rÎ   rÌ   rå   r  râ   rË   rq   Úto_denser�   r   ro   )rI   Úresultr#  r)  r/  Úcolr  rp   r  r  ro   r.  s           @@@@rT   Úpandas_transform_datar5    s[  û€ ô "6Ó!7Ñ€L�,à57€FÜ"Ó$€Ið�zð ¤mó ð
�Zð 
¤B§J¡J÷ 
ð7�jð 7¤R§Z¡Zö 7ô( ˜$Ÿ,™,¨¯©Ó4ó /‰
ˆˆUÜ& uÔ-ÜØXóð ô ˜5Ô!Ø�M‰M™) D¨¡IÓ.Õ/Ü˜UÔ#Ø�M‰Mœ.¨¨c©Ó3Õ4Ü˜uÔ%Ø�M‰M™' $ s¡)Ó,Õ-Ü Ô&Ø�s‘)×"Ñ"ˆCØ—,‘,“.ˆCÜ  Ô%Ü)¨#¨s¯y©yÓ9‘��QØ�M‰M˜#Õà�M‰M™( 4¨¡9Ó-Ö.ð%/ð. €MrV   c                   óz   ‡ — e Zd ZdZdeeej                  ef      de	e
   ddfˆ fd„Zedeeef   fd„«       Zˆ xZS )ÚPandasTransformedz1A storage class for transformed pandas DataFrame.r¼   Úref_categoriesrK   Nc                 óz  •— || _         g }g }| j                   D ]Ž  }t        |«      rIt        |j                  |j                  «      \  }}}|j                  |«       |j                  ||f«       ŒWt        |t        j                  «      sJ ‚t        |«      }	|j                  |	«       Œ� t        ‰
| �-  |||¬«       y )N©r8  ÚaitfsÚtemporary_buffers)r¼   r   r$   Ú
categoriesÚcodesrÌ   rc   rM   r0  r   ÚsuperÚ__init__)Úselfr¼   r8  r;  r<  r4  ÚjnamesÚjcodesÚbufÚinfÚ	__class__s             €rT   r@  zPandasTransformed.__init___  s´   ø€ ð
 ˆŒàˆØÐð —<‘<ò 
	"ˆCÜ˜#Œä&0°·±ÀÇÁÓ&KÑ#�˜ Ø!×(Ñ(¨Ô-Ø—‘˜f fÐ-Õ.ä! #¤r§z¡zÔ2Ð2Ð2Ü*¨3Ó/�à—‘˜SÕ!ð
	"ô 	‰ÑØ)ØØ/ð 	õ 	
rV   c                 ó\  — t        | j                  d   «      r#t        | j                  d   j                  «      }n[t	        | j                  d   «      r'| j                  d   j
                  j                  d   }n| j                  d   j                  d   }|t        | j                  «      fS ©z*Return shape of the transformed DataFrame.r   )r#   r¼   r[   rm   r   r>  rX   ©rA  Ú	n_sampless     rT   rX   zPandasTransformed.shape|  sˆ   € ô ˜Ÿ™ a™Ô)ä˜DŸL™L¨™O×3Ñ3Ó4‰IÜ˜Ÿ™ Q™Ô(àŸ™ Q™×-Ñ-×3Ñ3°AÑ6‰Ið Ÿ™ Q™×-Ñ-¨aÑ0ˆIØœ#˜dŸl™lÓ+Ð+Ð+rV   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   rM   r0  r   r   r   r@  Úpropertyr
   r}   rX   Ú__classcell__©rF  s   @rT   r7  r7  \  sb   ø„ Ù;ð
à�e˜BŸJ™J¨Ð5Ñ6Ñ7ð
ð ! Ñ,ð
ð 
õ	
ð: ð,�u˜S #˜X‘ò ,ó ô,rV   r7  c                 ó¨  — |r/t        | j                  «      dkD  r|t        vrt        d|› d�«      ‚| j                  j                  rQ| j                  | j                  j                  «          j                  «       j                  «       }t        d|› �«      ‚t        |«      \  }}t        | ||||«      \  }}t        | «      }t        ||¬«      ||fS )Nr   zDataFrame for z cannot have multiple columnsz<Duplicate column names are not supported. Duplicates found: ©r8  )r[   r¼   Ú_matrix_metar\   Úhas_duplicatesÚ
duplicatedÚuniqueÚtolistr"   rÖ   r5  r7  )rI   rÆ   ru   rv   rÅ   Ú
duplicatesr8  Úarrayss           rT   Ú_transform_pandas_dfr[  ‹  sÖ   € ñ ”�D—L‘LÓ! AÒ%¨$´lÑ*BÜ˜>¨$¨Ð/LÐMÓNÐNØ‡|�|×"Ò"Ø—\‘\ $§,¡,×"9Ñ"9Ó";Ñ<×CÑCÓE×LÑLÓNˆ
ÜØJÈ:È,ÐWó
ð 	
ô %7°}Ó$EÑ!€M�>Ü#6Øˆd�M =Ð2Dó$Ñ €M�=ô # 4Ó(€Fä˜&°Ô@ØØðð rV   rº   r€   c                 ó  — t        | d|¬«      \  } }}t        | j                  «      dk(  r| j                  d   }n)t        j                  | j                  «      j
                  }t        ||«      \  }}t        ||||«       y )NF)rÅ   r   r   )r[  r[   r¼   rM   ÚstackÚTr   Ú_meta_from_numpy)rI   rº   ro   r€   rp   r•   s         rT   Ú_meta_from_pandas_dfr`  §  sl   € ô & d¨E¸Ô=�J€Dˆ!ˆQÜ
ˆ4�<‰<Ó˜AÒØ—‘˜Q‘‰ä—‘˜Ÿ™Ó&×(Ñ(ˆä# E¨5Ó1�L€Eˆ5Ü�U˜D %¨Õ0rV   c                 ó¨   — |t         j                  k7  ryt        | j                  | j                  «      D ]  \  }}t        |«      sŒt        d«      ‚ y)zDSparse pandas columns are not supported with column-wise data split.Nz2Column split does not support pandas sparse array.)r&   ÚCOLr1  r¼   rµ   rË   r\   )rI   rs   rp   ro   s       rT   Ú_reject_pd_sparse_col_splitrc  ·  sM   € ð œ-×+Ñ+Ò+ØÜ˜Ÿ™ d§k¡kÓ2ò S‰ˆˆ5Ü˜eÕ$ÜÐQÓRÐRñSrV   c           
      ó
  — t        | |«       t        | |||«      \  }}}t        j                  «       }t	        t        j                  |j                  «       t        |||¬«      t        j                  |«      «      «       |||fS ©N)rt   rJ   rs   )
rc  r[  ry   rz   r   r   ÚXGDMatrixCreateFromColumnarr   r   r~   )	rI   rÆ   rJ   rt   ru   rv   rs   Údfr€   s	            rT   Ú_from_pandas_dfrh  Â  s…   € ô    oÔ6Ü';ØÐ  -°ó(Ñ$€Bˆ�}ô �_‰_Ó€FÜÜ×(Ñ(Ø×ÑÓ ÜØ¨À/ôô �L‰L˜Ó ó	
ôð �= -Ð/Ð/rV   c                 ó"  — t        | j                  «      r8| j                  j                  «       j	                  t
        j                  «      } nPt        | j                  «      rt        | «      } n/| j                  t
        j                  t
        j                  ¬«      } t        t        | d| «      «      r| j                  «       } t        | j                  «      dk(  s&| j                  d   dk(  s| j                  d   dk(  sJ ‚t        | |||«       y)z6Help transform pandas series for meta data like labels)r&  ro   r   r   N)rË   ro   rq   r2  ÚastyperM   r¦   rå   r  r  r'  rè   r[   rX   r_  )rI   rº   ro   r€   s       rT   Ú_meta_from_pandas_seriesrk  Þ  s¿   € ô ˜$Ÿ*™*Ô%Ø�{‰{×#Ñ#Ó%×,Ñ,¬R¯Z©ZÓ8‰Ü	˜Ÿ™Ô	$Ü˜dÓ#‰à�}‰}œRŸZ™Z´"·&±&ˆ}Ó9ˆäœ' $¨°Ó6Ô7Ø�}‰}‹ˆÜˆt�z‰z‹?˜aÒ 4§:¡:¨a¡=°AÒ#5¸¿¹ÀA¹È!Ò9KÐKÐKÜ�T˜4 ¨Õ/rV   c                 ód  — | j                   j                  t        vr"t        | j                   «      r|st	        | «       |r+t        | j                   «      r| j
                  j                  } t        | j                  j                  | j                  d   d«      j                  d«      ||||¬«      S )Nr   r   r|   ©rI   rJ   rt   ru   rv   )ro   rº   r»   rÎ   rÃ   r"  r>  r›   rq   ÚreshaperX   rj  )rI   rJ   rt   rÆ   ru   rv   s         rT   Ú_from_pandas_seriesro  ï  s‡   € ð 	�
‰
�‰Ô3Ñ3Ü˜Ÿ
™
Ô#Ñ(:ä  Ô&Ùœo¨d¯j©jÔ9Ø�x‰x�~‰~ˆÜØ�[‰[× Ñ  §¡¨A¡°Ó2×9Ñ9¸'ÓBØØØ#Ø#ôð rV   c                   óf   ‡ — e Zd ZdZ	 d	deed      dee   ddfˆ fd„Ze	de
eef   fd„«       Zˆ xZS )
ÚArrowTransformedz,A storage class for transformed arrow table.Nr¼   ©zpa.NumericArrayzpa.DictionaryArrayr8  rK   c                 óÈ   •‡‡‡— || _         t        rdd lŠn
t        «       Šg Šg Šdt        d   dd fˆˆˆfd„}| j                   D ]
  } ||«       Œ t
        ‰| �  |‰‰¬«       y )Nr   r4  rr  rK   c                 ó^  •— t        | ‰j                  «      rz| j                  }| j                  }t        |‰j                  ‰j
                  f«      st        d«      ‚t        ||«      \  }}}‰	j                  |«       ‰j                  ||f«       y t        | «      }‰j                  |«       y )Nz;Only string-based categorical index is supported for arrow.)
rc   ÚDictionaryArrayÚ
dictionaryrm   ÚStringArrayÚLargeStringArrayÚ	TypeErrorr   rÌ   r   )
r4  Úcatsr>  rB  rC  rD  Újdatar;  r  r<  s
          €€€rT   Úpush_seriesz.ArrowTransformed.__init__.<locals>.push_series  s˜   ø€ Ü˜#˜r×1Ñ1Ô2Ø—~‘~�ØŸ™�Ü! $¨¯©¸×9LÑ9LÐ(MÔNÜ#ØUóð ô '4°D¸%Ó&@Ñ#�˜ Ø!×(Ñ(¨Ô-Ø—‘˜f fÐ-Õ.ä(¨Ó-�Ø—‘˜UÕ#rV   r:  )r¼   r   r  r>   r   r?  r@  )	rA  r¼   r8  r|  r4  r;  r  r<  rF  s	        @@@€rT   r@  zArrowTransformed.__init__
  sy   û€ ð
 ˆŒåÜ äÓ!ˆBàˆØÐð	$œUÐ#JÑKð 	$ÐPT÷ 	$ð —<‘<ò 	ˆCÙ˜Õð	ô 	‰ÑØ)ØØ/ð 	õ 	
rV   c                 ó\   — t        | j                  d   «      t        | j                  «      fS rH  )r[   r¼   )rA  s    rT   rX   zArrowTransformed.shape1  s%   € ô �4—<‘< ‘?Ó#¤S¨¯©Ó%6Ð6Ð6rV   rð   )rK  rL  rM  rN  r   r   r   r   r@  rO  r
   r}   rX   rP  rQ  s   @rT   rq  rq    s`   ø„ Ù6ð
 04ñ%
à�eÐCÑDÑEð%
ð ! Ñ,ð%
ð 
õ	%
ðN ð7�u˜S #˜X‘ò 7ó ô7rV   rq  zpa.Tablec                 óª  — t         rdd l}n
t        «       }t        | «      \  }}t	        |«      \  }}|€|}|€|}g }|D ]‚  }	| j                  |	«      }
|
j                  «       }t        ||j                  «      r |j                   |j                  «       «      }t        |«      r|st        d «       |j                  |«       Œ„ t        ||¬«      }|||fS )Nr   rS  )r   r  r>   Ú_arrow_feature_infor"   Úcolumnr	  rc   ÚBooleanArrayÚcastr�   r#   rÃ   rÌ   rq  )rI   rÆ   ru   rv   r  Út_namesÚt_typesr8  r¼   ÚcnameÚcol0r4  Údf_ts                rT   Ú_transform_arrow_tablerˆ  7  sÖ   € õ ÜäÓˆä*¨4Ó0Ñ€GˆWÜ$6°}Ó$EÑ!€M�>àÐØˆØÐØˆà€GØò 	ˆØ�{‰{˜5Ó!ˆØ>B×>QÑ>QÓ>SˆÜ�c˜2Ÿ?™?Ô+Ø—(‘(˜7˜2Ÿ7™7›9Ó%ˆCÜ˜ÔÑ&8ô % TÔ*Ø�‰�sÕð	ô ˜G°NÔC€DØ� Ð-Ð-rV   Ú	n_threadsc           
      óò   — t        | |||«      \  }}}t        j                  «       }t        t	        j
                  |j                  «       t        |||¬«      t        j                  |«      «      «       |||fS re  )	rˆ  ry   rz   r   r   rf  r   r   r~   ©	rI   rÆ   rJ   r‰  ru   rv   rs   r‡  r€   s	            rT   Ú_from_arrow_tablerŒ  Z  s|   € ô *@ØÐ  -°ó*Ñ&€Dˆ-˜ô �_‰_Ó€FÜÜ×(Ñ(Ø× Ñ Ó"ÜØ!¨7ÀOôô �L‰L˜Ó ó	
ôð �= -Ð/Ð/rV   c                  óª  — dd l }  | j                  «       d | j                  «       d | j                  «       d | j                  «       d | j
                  «       d | j                  «       d | j                  «       d | j                  «       d | j                  «       d | j                  «       d | j                  «       d | j                  «       di}|S )Nr   r}   r|   rœ   )r  r�   rž   rŸ   r    r¡   r¢   r£   r¤   r¥   r¦   r§   Úbool_)r  Úmappings     rT   Ú_arrow_dtyper�  s  s±   € ãð 	ˆ�‰‹	�5Øˆ�‰‹
�EØˆ�‰‹
�EØˆ�‰‹
�EØˆ�‰‹
�EØˆ�	‰	‹�UØˆ�	‰	‹�UØˆ�	‰	‹�UØˆ�
‰
‹�gØˆ�
‰
‹�gØˆ�
‰
‹�gØˆ�‰‹
�Cð€Gð €NrV   c                 ó¤   ‡‡— t         rdd lŠn
t        «       Š| Š‰j                  }dt        dt        fˆˆfd„}t        t        ||«      «      }||fS )Nr   rº   rK   c                 ó    •— ‰j                  | «      }t        |j                  ‰j                  «      rt        S t        «       |j                     S rð   )r€  rc   rR   rç   rÐ   r�  )rº   r4  r  Útables     €€rT   Úmap_typez%_arrow_feature_info.<locals>.map_type’  s;   ø€ Ø�l‰l˜4Ó ˆÜ�c—h‘h × 1Ñ 1Ô2ÜˆLä‹~˜cŸh™hÑ'Ð'rV   )r   r  r>   Úcolumn_namesrQ   rÉ   rÊ   )rI   Únamesr”  r  r  r“  s       @@rT   r  r  ‰  sQ   ù€ ÝÜäÓˆà€EØ×Ñ€Eð(”sð (œsö (ô ”�X˜uÓ%Ó&€EØ�%ˆ<ÐrV   c                 óB   — | }t        |j                  «       |||¬«       y )N)rº   ro   r€   )r`  Ú	to_pandas)rI   rº   ro   r€   r“  s        rT   Ú_meta_from_arrow_tabler™  �  s   € ð €EÜ˜Ÿ™Ó*°¸UÈ6ÖRrV   c                  ó.   — t        «       st        d«      ‚y )Nz!`pyarrow` is required for polars.)r?   rd   r  rV   rT   Ú_check_pyarrow_for_polarsr›  §  s   € ÜÔ!ÜÐ=Ó>Ð>ð "rV   c                 ó°   — t        «       }t        | j                  | j                  «      D ])  \  }}t	        ||j
                  «      sŒt        d|› �«      ‚ y )Nz}XGBoost does not support `polars.Categorical` because its encoding can be sparse. Use `polars.Enum` instead. Invalid column: )r=   r1  r¼   rµ   rc   ÚCategoricalr\   )rI   Úplrº   ro   s       rT   Ú_reject_polars_categoricalrŸ  ¬  sU   € Ü	‹€Bä˜4Ÿ<™<¨¯©Ó5ò ‰ˆˆeÜ�e˜RŸ^™^Õ,Üð#à#' &ð*óð ñrV   c                 óØ   — t        | «      r+| j                  «       }t        j                  dt        «       n| }t        «        t        |«       |j                  «       }t        ||||«      S )Nz}Using the default parameters for the polars `LazyFrame.collect`. Consider passing a realized `DataFrame` or `Series` instead.)	r:   ÚcollectrO   rP   rS   r›  rŸ  Úto_arrowrˆ  )rI   rÆ   ru   rv   rg  r“  s         rT   Ú_transform_polars_dfr£  ¸  sc   € ô ˜DÔ!Ø�\‰\‹^ˆÜ�‰ðCäõ	
ð ˆäÔÜ˜rÔ"Ø�K‰K‹M€EÜ!ØÐ! =°-óð rV   c           
      óò   — t        | |||«      \  }}}t        j                  «       }t        t	        j
                  |j                  «       t        |||¬«      t        j                  |«      «      «       |||fS re  )	r£  ry   rz   r   r   rf  r   r   r~   r‹  s	            rT   Ú_from_polars_dfr¥  Ð  s{   € ô *>ØÐ  -°ó*Ñ&€Dˆ-˜ô �_‰_Ó€FÜÜ×(Ñ(Ø× Ñ Ó"ÜØ!¨7ÀOôô �L‰L˜Ó ó	
ôð �= -Ð/Ð/rV   c                  ó–   ‡— 	 ddl mŠ dt        dt        fˆfd„} | S # t        $ r" 	 ddlm}  Y | S # t        $ r ddlm}  Y Y | S w xY ww xY w)Nr   rí   ro   rK   c                 ó   •— t        | ‰«      S rð   rñ   rò   s    €rT   rõ   z4_lazy_load_cudf_is_cat.<locals>.is_categorical_dtypeî  s   ø€ Ü˜eÐ%5Ó6Ð6rV   rô   )Úcudfrî   r   r¨   rd   Úcudf.api.typesrõ   Úcudf.utils.dtypes)rõ   rî   s    @rT   Ú_lazy_load_cudf_is_catr«  é  sg   ø€ ðÝ)ð	7¬ð 	7´õ 	7ð  Ðøô ò ð	öð  Ðøô ò 	÷ð  Ðð	úðús#   ƒ �	A§0°A¿AÁAÁAc                  ó   — ddl m}  | S )Nr   ©rÙ   )r©  rÙ   r­  s    rT   Ú_lazy_load_cudf_is_boolr®  þ  s   € å,àÐrV   c                   óf   ‡ — e Zd ZdZdeedef      dee   ddfˆ fd„Z	e
deeef   fd„«       Zˆ xZS )	ÚCudfTransformedz/A storage class for transformed cuDF dataframe.r¼   r   r8  rK   Nc                 ó”   •‡‡— || _         g Šg Šdt        dd fˆˆfd„}| j                   D ]
  } ||«       Œ t        ‰| �  |‰‰¬«       y )Nr  rK   c                 óî   •— t        | «      rM| j                  | j                  }}t        ||«      \  }}}‰j	                  |«       ‰j	                  ||f«       y t        | «      }‰j	                  |«       y rð   )r   r=  r>  r!   rÌ   r    )	r  rz  r>  Ú	cats_ainfÚ
codes_ainfrD  Úainfr;  r<  s	          €€rT   r|  z-CudfTransformed.__init__.<locals>.push_series  se   ø€ Ü˜#ŒØ!Ÿn™n¨c¯i©i�e�Ü-9¸$ÀÓ-FÑ*�	˜: sØ!×(Ñ(¨Ô-Ø—‘˜i¨Ð4Õ5ô 1°Ó5�Ø—‘˜TÕ"rV   r:  )r¼   r   r?  r@  )rA  r¼   r8  r|  r4  r;  r<  rF  s        @@€rT   r@  zCudfTransformed.__init__  sf   ú€ ð
 ˆŒð ˆØÐð		#œSð 		# Tö 		#ð —<‘<ò 	ˆCÙ˜Õð	ô 	‰ÑØ)ØØ/ð 	õ 	
rV   c                 óæ   — t        | j                  d   «      r'| j                  d   j                  j                  d   }n| j                  d   j                  d   }|t	        | j                  «      fS rH  )r   r¼   r>  rX   r[   rI  s     rT   rX   zCudfTransformed.shape(  s^   € ô �d—l‘l 1‘oÔ&ØŸ™ Q™×-Ñ-×3Ñ3°AÑ6‰IàŸ™ Q™×-Ñ-¨aÑ0ˆIØœ#˜dŸl™lÓ+Ð+Ð+rV   )rK  rL  rM  rN  r   r   r   r   r   r@  rO  r
   r}   rX   rP  rQ  s   @rT   r°  r°    s_   ø„ Ù9ð
à�e˜J¨Ð5Ñ6Ñ7ð
ð ! Ñ,ð
ð 
õ	
ð@ ð,�u˜S #˜X‘ò ,ó ô,rV   r°  c                 óž  ‡‡— t        «       }t        «       Št        | «      r? || j                  «      r| j	                  t
        j                  «      } | j                  g}nJ| j	                  | j                  d¬«      D �ci c]  }|t
        j                  “Œ c}«      } | j                  }t        ˆˆfd„|D «       «      st        | «       |€št        | «      r| j                  g}n�t        | j                  dd«      rB| j                  D ��cg c]*  }dj                  |D �cg c]  }t        |«      ‘Œ c}«      ‘Œ, }}}n(t!        | j                  j#                  t        «      «      }t%        |«      \  }}	|€Kg }|D ]D  }
 ‰|
«      r‰r|j'                  t(        «       Œ#|j'                  t*        |
j                     «       ŒF g }t        | «      re ‰| j                  «      r‰r|j'                  | j,                  «       n° ‰| j                  «      r‰st/        t0        «      ‚|j'                  | «       n{t3        | j                  | j                  «      D ]X  \  }}
| |   } ‰|
«      r‰r|j'                  |j,                  «       Œ1 ‰|
«      rt/        t0        «      ‚|j'                  |«       ŒZ t5        ||	¬«      ||fS c c}w c c}w c c}}w )Nr¨   )Úincludec              3   ó^   •K  — | ]$  }|j                   t        v xs  ‰|«      xr ‰–— Œ& y ­wrð   )rº   r»   )Ú.0ro   rÆ   rõ   s     €€rT   ú	<genexpr>z%_transform_cudf_df.<locals>.<genexpr>J  s?   øè ø€ ò ð ð 	�
‰
Ô*Ð*ò 	@Ù  Ó'Ò>Ð,>ó	@ñùs   ƒ*-zcudf.core.multiindexrÈ   r¸   rS  )r®  r«  r3   ro   rj  rM   r¡   Úselect_dtypesrµ   ÚallrÃ   rº   r@   r¼   r½   rQ   rÉ   rÊ   r"   rÌ   rÐ   r»   r"  r\   r¾   r1  r°  )rI   ru   rv   rÆ   rÙ   rµ   r4  rœ   rÓ   r8  ro   r3  Úseriesrõ   s      `         @rT   Ú_transform_cudf_dfr¿  2  s[  ù€ ô ,Ó-€Mä1Ó3Ðä�DÔÙ˜Ÿ™Ô$Ø—;‘;œrŸx™xÓ(ˆDØ—*‘*�‰à�{‰{Ø&*×&8Ñ&8ÀÐ&8Ó&HÖI˜sˆS”"—(‘(‰]ÒIó
ˆð —‘ˆäô ð ôô ô
 	! Ô&ð ÐÜ˜ÔØ!ŸY™Y˜K‰MÜ˜TŸ\™\Ð+AÀ<ÔPØDHÇLÁL×Q¸q˜SŸX™X°qÖ&9°!¤s¨1¥vÒ&9Õ:ÐQˆMÒQä  §¡×!1Ñ!1´#Ó!6Ó7ˆMô %7°}Ó$EÑ!€M�>ØÐØˆØò 	GˆEÙ# EÔ*Ñ/AØ×$Ñ$¤UÕ+à×$Ñ$Ô%9¸%¿*¹*Ñ%EÕFð		Gð €FÜ�DÔá §
¡
Ô+Ñ0BØ�M‰M˜$Ÿ(™(Õ#Ù! $§*¡*Ô-Ñ6HÜœ_Ó-Ð-à�M‰M˜$Õä˜dŸl™l¨D¯K©KÓ8ò 	&‰JˆC�Ø˜#‘YˆFÙ# EÔ*Ñ/AØ—‘˜fŸj™jÕ)Ù% eÔ,Ü ¤Ó1Ð1à—‘˜fÕ%ð	&ô 	˜¨~Ô>ØØðð ùòe Jùò  ':ùÓQs   Â J?ÄK	Ä KÄ2	K	ËK	c           	      óð   — t        | |||«      \  }}}t        j                  «       }t        t	        j
                  |j                  «       t        ||¬«      t        j                  |«      «      «       |||fS )N)rt   rJ   )	r¿  ry   rz   r   r   ÚXGDMatrixCreateFromCudaColumnarr   r   r~   )rI   rJ   rt   ru   rv   rÆ   rg  r€   s           rT   Ú_from_cudf_dfrÂ    st   € ô (:Øˆm˜]Ð,>ó(Ñ$€Bˆ�}ô �_‰_Ó€FÜÜ×,Ñ,Ø×ÑÓ Ü °Ô9Ü�L‰L˜Ó ó	
ôð �= -Ð/Ð/rV   c                 óæ   — dd l }t        | d«      st        | d«      r|j                  | d¬«      } t        | «      s| j                  |j
                  fv r| j                  |j                  d¬«      } | S )Nr   Ú__cuda_array_interface__Ú	__array__F)r‘   )ÚcupyrZ   r•   r   ro   rŽ  rj  r¦   )rI   rÆ  s     rT   Ú_transform_cupy_arrayrÇ  –  s_   € Ûä�4Ð3Ô4¼ÀÀ{Ô9SØ�z‰z˜$ UˆzÓ+ˆÜ�tÔ §
¡
¨t¯z©z¨lÑ :Ø�{‰{˜4Ÿ<™<¨eˆ{Ó4ˆØ€KrV   c           	      ó
  — t        | «      } t        | «      }t        j                  «       }t	        t        j                  ||dœ«      d«      }t        t        j                  ||t        j                  |«      «      «       |||fS )z%Initialize DMatrix from cupy ndarray.)rJ   rt   zutf-8)rÇ  r   ry   rz   ÚbytesÚjsonÚdumpsr   r   Ú%XGDMatrixCreateFromCudaArrayInterfacer~   )rI   rJ   rt   ru   rv   Úinterface_strr€   Úconfigs           rT   Ú_from_cupy_arrayrÏ     ss   € ô ! Ó&€DÜ(¨Ó.€MÜ�_‰_Ó€FÜ”4—:‘:¨'¸gÑFÓGÈÓQ€FÜÜ×2Ñ2Ø˜6¤6§<¡<°Ó#7ó	
ôð
 �= -Ð/Ð/rV   c                 ó~   — 	 dd l }t        | |j                  j                  j
                  «      S # t        $ r Y yw xY w©Nr   F)Úcupyxrd   rc   ÚscipyÚsparsera   ©rI   rÒ  s     rT   Ú_is_cupy_csrrÖ  ´  ó=   € ðÛô �d˜EŸK™K×.Ñ.×9Ñ9Ó:Ð:øô ò Ùðúó   ‚0 °	<»<c                 ó~   — 	 dd l }t        | |j                  j                  j
                  «      S # t        $ r Y yw xY wrÑ  )rÒ  rd   rc   rÓ  rÔ  rl   rÕ  s     rT   Ú_is_cupy_cscrÚ  ¼  r×  rØ  c                 óL   — dt        t        | «      «      v xr dt        | «      v S )NÚ	PyCapsuleÚdltensor)rQ   rR   r]   s    rT   Ú
_is_dlpackrÞ  Ä  s#   € Øœ#œd 4›j›/Ð)ÒE¨j¼CÀ»IÐ.EÐErV   c                 ó@   — ddl m} dt        | «      vsJ ‚ || «      } | S )Nr   )Úfrom_dlpackÚused_dltensor)rÆ  rà  rQ   )rI   rà  s     rT   Ú_transform_dlpackrâ  È  s&   € Ý à¤# d£)Ñ+Ð+Ð+Ù�tÓ€DØ€KrV   c                 ó6   — t        | «      } t        | ||||«      S rð   )râ  rÏ  rm  s        rT   Ú_from_dlpackrä  Ð  s!   € ô ˜TÓ"€DÜ˜D '¨7°MÀ=ÓQÐQrV   c                 óB   — t        | t        t        j                  f«      S rð   )rc   rQ   Úosr-   r]   s    rT   Ú_is_urirç  Û  s   € Ü�dœS¤"§+¡+Ð.Ó/Ð/rV   c                 óR  — t        | |«       t        j                  «       }t        j                  t        j
                  j                  | «      «      } t        t        | «      t        |«      ¬«      }t        t        j                  |t        j                  |«      «      «       |||fS )N)Úurirs   )rU   ry   rz   ræ  ÚfspathÚpathÚ
expanduserr   rQ   r}   r   r   ÚXGDMatrixCreateFromURIr~   )rI   rJ   ru   rv   rs   r€   rÎ  s          rT   Ú	_from_urirî  ß  sw   € ô ˜˜wÔ'Ü�_‰_Ó€FÜ�9‰9”R—W‘W×'Ñ'¨Ó-Ó.€DÜœS ›Y¼¸OÓ8LÔM€FÜ”×+Ñ+¨F´F·L±LÀÓ4HÓIÔJØ�= -Ð/Ð/rV   c                 ó"   — t        | t        «      S rð   )rc   rÉ   r]   s    rT   Ú_is_listrð  î  s   € Ü�dœDÓ!Ð!rV   c                 ód   — t        j                  | «      }t        | «       t        ||||||¬«      S )N©rI   rJ   rt   ru   rv   rs   )rM   r•   r^   r›   )rI   rJ   r‰  ru   rv   rs   r•   s          rT   Ú
_from_listró  ò  s8   € ô �H‰H�T‹N€EÜ�dÔÜØØØØ#Ø#Ø'ôð rV   c                 ó"   — t        | t        «      S rð   )rc   Útupler]   s    rT   Ú	_is_tuplerö    s   € Ü�dœEÓ"Ð"rV   c                 ó$   — t        | |||||¬«      S )N©rI   rJ   r‰  ru   rv   rs   )ró  rø  s         rT   Ú_from_tuplerù    s#   € ô ØØØØ#Ø#Ø'ôð rV   c                 ó   — t        | d«      S )NrÅ  rŽ   r]   s    rT   Ú_has_array_protocolrû    s   € Ü�4˜Ó%Ð%rV   c                 óÒ   — t        j                  dt        | «      › d�t        «       	 dd l}	 |j                  j                  | «      } | S # t
        $ r Y y w xY w# t        $ r Y y w xY w)NzUnknown data type: z$, trying to convert it to csr_matrixr   )	rO   rP   rR   rS   rb   rd   rÔ  ra   Ú	Exception)rI   rÓ  s     rT   Ú_convert_unknown_datarþ  "  sq   € Ü‡M�MØ
œd 4›j˜\Ð)MÐNÜôðÛðØ�|‰|×&Ñ& tÓ,ˆð €Køô ò Ùðûô
 ò Ùðús"   ©A ®A Á	AÁAÁ	A&Á%A&F)rÆ   rs   Úthreadsc           	      ó2  — dt         t        t        t        f      dt        t         t              fd„}t        | «      s!t        | «      st        | «      st        | «       t        | «      r ||«      sJ ‚t        | |||||¬«      S t        | «      r ||«      sJ ‚t        | |||||¬«      S t        | «      r) ||«      sJ ‚t        | j                  «       |||||¬«      S t        | «      r ||«      sJ ‚t!        | |||||¬«      S t#        | «      r ||«      sJ ‚t%        | ||||«      S t'        | «      r ||«      sJ ‚t)        | |||||¬«      S t+        | «      r ||«      sJ ‚t-        | |||||¬«      S t        | «      r't/        «       }|j1                  | j2                  | i«      } t5        | «      rt7        | ||||||¬«      S t9        | «      rt;        | ||||||¬«      S t=        | «      r| j>                  } t        | «      rtA        «       }	|	j1                  | «      } tC        | «      rtE        | ||||||¬«      S tG        | «      st        | «      rtI        | |||||¬«      S tK        | «      r ||«      sJ ‚tM        | ||||«      S tO        | «      rtQ        d	«      ‚tS        | «      rtQ        d
«      ‚tU        | «      r ||«      sJ ‚tW        | ||||«      S tY        | «      rtA        «       }	|	j1                  | «      } t[        | «      rtE        | |||||¬«      S t]        | «      r/ ||«      sJ ‚t_        j`                  | «      }
t!        |
||||¬«      S tc        | «      }|� ||«      sJ ‚t        |||||¬«      S tQ        dte        tg        | «      «      z   «      ‚)zDispatch data for DMatrix.rv   rK   c                 ó:   — t        | t        «      rt        d«      ‚y)Nz9Reference category is only supported by DataFrame inputs.T)rc   r   r\   )rv   s    rT   Ú
check_catsz)dispatch_data_backend.<locals>.check_cats@  s#   € ô �m¤ZÔ0ÜØKóð ð rV   rò  rø  )rJ   r‰  ru   rv   rs   )rI   rÆ   rJ   rt   ru   rv   rs   )rI   rJ   rt   ru   rv   rÆ   zcupyx CSR is not supported yet.zcupyx CSC is not supported yet.)rI   rÆ   rJ   rt   ru   rv   rm  zNot supported type for data.)4r   r   r)   r   r   r3   r8   r;   r^   rg   r�   r„   r‡   r‹   Útocsrr�   r›   rç  rî  rð  ró  rö  rù  r=   rA   rº   r9   r¥  r0   rŒ  r2   Ú_fsproxy_fastr<   r7   rh  r1   rÂ  r4   rÏ  rÖ  ry  rÚ  rÞ  rä  r6   r5   rû  rM   r–   rþ  rQ   rR   )rI   rJ   rÿ  ru   rv   rÆ   rs   r  rž  rÒ   r•   Ú	converteds               rT   Údispatch_data_backendr  4  s(  € ðÜ¤¤l´JÐ&>Ñ ?Ñ@ðä	”8œLÑ)Ñ	*óô ˜ÔÜ! $Ô'Ü! $Ô'ä˜$ÔÜ�DÔÙ˜-Ô(Ð(Ð(ÜØØØØ'Ø'Ø+ô
ð 	
ô �DÔÙ˜-Ô(Ð(Ð(ÜØØØØ'Ø'Ø+ô
ð 	
ô �DÔÙ˜-Ô(Ð(Ð(ÜØ—‘“ØØØ'Ø'Ø+ô
ð 	
ô ˜ÔÙ˜-Ô(Ð(Ð(Ü ØØØØ'Ø'Ø+ô
ð 	
ô ˆt„}Ù˜-Ô(Ð(Ð(Ü˜˜w¨°}ÀoÓVÐVÜ�„~Ù˜-Ô(Ð(Ð(ÜØØØØ'Ø'Ø+ô
ð 	
ô �„Ù˜-Ô(Ð(Ð(ÜØØØØ'Ø'Ø+ô
ð 	
ô ˜ÔÜ‹_ˆà�|‰|˜TŸY™Y¨Ð-Ó.ˆÜ�$ÔÜØØØØØ'Ø'Ø+ô
ð 	
ô �„Ü ØØØØØ'Ø'Ø+ô
ð 	
ô �tÔØ×!Ñ!ˆÜ˜ÔÜ‹_ˆà�|‰|˜DÓ!ˆÜ�TÔÜØØ1ØØØ'Ø'Ø+ô
ð 	
ô �4ÔœL¨Ô.ÜØØØØ'Ø'Ø1ô
ð 	
ô �dÔÙ˜-Ô(Ð(Ð(Ü  g¨w¸À}ÓUÐUÜ�DÔÜÐ9Ó:Ð:Ü�DÔÜÐ9Ó:Ð:Ü�$ÔÙ˜-Ô(Ð(Ð(Ü˜D '¨7°MÀ=ÓQÐQÜ˜ÔÜ‹_ˆà�|‰|˜DÓ!ˆÜ�DÔÜØØ1ØØØ'Ø'ô
ð 	
ô ˜4Ô Ù˜-Ô(Ð(Ð(Ü—
‘
˜4Ó ˆÜ ØØØØ'Ø'ô
ð 	
ô & dÓ+€IØÐÙ˜-Ô(Ð(Ð(ÜØØØØ'Ø'ô
ð 	
ô Ð2´S¼¸d»³_ÑDÓ
EÐErV   c                 ó|  — t        | d«      r°d| j                  › d|› �}|t        v r$t        | j                  «      dkD  rt	        |«      ‚y t        | j                  «      dkD  s<t        | j                  «      dk(  rA| j                  d   dk7  r.| j                  d   dk7  rt	        d| j                  › d|› �«      ‚y y y y )NrX   zInvalid shape: z for rY   r   r   )rZ   rX   rT  r[   r\   )rI   rº   rÂ   s      rT   Ú_validate_meta_shaper  ð  s²   € Üˆt�WÔØ §
¡
˜|¨5°°Ð7ˆØ”<ÑÜ�4—:‘:‹ Ò"Ü  “oÐ%Øäˆt�z‰z‹?˜QÒÜ�—
‘
‹O˜qÒ  d§j¡j°¡m°qÒ&8¸T¿Z¹ZÈ¹]ÈaÒ=Oä˜¨t¯z©z¨l¸%À¸vÐFÓGÐGð >PÐ&8Ð ð rV   Úfieldc                 óÜ   — t        | |«      \  } }| j                  }|j                  dd «      �t        d«      ‚t	        | «      }t        t        j                  |t        |«      |«      «       y )NÚmaskzMasked array is not supported.)	r   r�   Úgetr\   r   r   r   ÚXGDMatrixSetInfoFromInterfacer   )rI   r	  ro   r€   Ú	interfacerÍ  s         rT   r_  r_  þ  sa   € ô # 4¨Ó/�K€Dˆ%Ø×(Ñ(€IØ‡}�}�V˜TÓ"Ð.ÜÐ9Ó:Ð:Ü# DÓ)€MÜ”×2Ñ2°6¼5À»<ÈÓWÕXrV   c                 óJ   — t        j                  | «      }t        ||||«       y rð   )rM   r•   r_  )rI   r	  ro   r€   Údata_nps        rT   Ú_meta_from_listr    s   € ô �h‰h�t‹n€GÜ�W˜e U¨FÕ3rV   c                 ó   — t        | |||«      S rð   )r  )rI   r	  ro   r€   s       rT   Ú_meta_from_tupler    s   € ô ˜4 ¨¨vÓ6Ð6rV   c                 óÒ   — |t         vrt        | j                  d d …df   ||«       y | j                  } t	        | «      }t        t        j                  |t        |«      |«      «       y )Nr   )	rT  Ú_meta_from_cudf_seriesÚilocrq   r   r   r   r  r   )rI   r	  r€   r  s       rT   Ú_meta_from_cudf_dfr    sP   € Ø”LÑ Ü˜tŸy™yª¨A¨™°°vÕ>à�{‰{ˆÜ(¨Ó.ˆ	Ü”D×6Ñ6°v¼uÀU»|ÈYÓWÕXrV   c                 ó„   — t        | |«       t        | «      }t        t        j                  |t        |«      |«      «       y rð   )r   r   r   r   r  r   ©rI   r	  r€   rE  s       rT   r  r  "  s1   € Ü�D˜%Ô Ü
˜tÓ
$€CÜ”×2Ñ2°6¼5À»<ÈÓMÕNrV   c                 ó‚   — t        | «      } t        | «      }t        t        j                  |t        |«      |«      «       y rð   )rÇ  r   r   r   r  r   r  s       rT   Ú_meta_from_cupy_arrayr  (  s1   € Ü  Ó&€DÜ
˜tÓ
$€CÜ”×2Ñ2°6¼5À»<ÈÓMÕNrV   ÚmatrixrC   c                 óÜ  — | j                   }|€J ‚t        ||«       |€yt        |«      rt        ||||«       yt	        |«      rt        ||||«       yt        |«      rt        ||||«       yt        |«      rt        ||||«       yt        |«      r|j                  }t        |«      rBt        |«      r|j                  «       }t        «        t        |j!                  «       |||«       yt#        |«      rt%        ||||¬«       yt'        |«      rt)        ||||«       yt+        |«      rt-        |«      }t/        |||«       yt1        |«      rt3        |||«       yt5        |«      rt7        |||«       yt9        |«      rt/        |||«       yt;        |«      rt%        ||||¬«       yt=        |«      rh|j>                  jA                  d«      }tC        |jD                  «      dk(  s&|jD                  d   dk(  s|jD                  d   dk(  sJ ‚t        ||||«       ytG        |«      r$tI        jJ                  |«      }t        ||||«       ytM        d|z   tO        tQ        |«      «      «      ‚)zDispatch for meta info.N)ro   r€   r|   r   r   zUnsupported type for ))r€   r  rð  r  rö  r  r�   r_  r0   r™  r2   r  r9   r:   r¡  r›  r¢  r7   r`  r8   rk  rÞ  râ  r  r3   r  r1   r  r4   r5   r6   rq   rj  r[   rX   rû  rM   r–   ry  rQ   rR   )r  rI   rº   ro   r€   r•   s         rT   Údispatch_meta_backendr  .  s+  € ð �]‰]€FØÐÐÐÜ˜˜tÔ$Ø€|ØÜ�„~Ü˜˜d E¨6Ô2ØÜ�„Ü˜˜t U¨FÔ3ØÜ˜ÔÜ˜˜t U¨FÔ3ØÜ�„Ü˜t T¨5°&Ô9ØÜ�tÔØ×!Ñ!ˆÜ�$ÔÜ Ô%Ø—<‘<“>ˆDÜ!Ô#Ü˜tŸ}™}›°°e¸VÔDØÜ�TÔÜ˜T 4¨u¸VÕDØÜ˜ÔÜ   t¨U°FÔ;ØÜ�$ÔÜ  Ó&ˆÜ˜d D¨&Ô1ØÜ�DÔÜ˜t T¨6Ô2ØÜ�4ÔÜ˜4  vÔ.ØÜ�dÔÜ˜d D¨&Ô1ØÜ�DÔÜ˜T 4¨u¸VÕDØÜ˜ÔØ�{‰{×!Ñ! 'Ó*ˆÜ�4—:‘:‹ !Ò# t§z¡z°!¡}¸Ò'9¸T¿Z¹ZÈ¹]ÈaÒ=OÐOÐOÜ˜˜t U¨FÔ3ØÜ˜4Ô ä—
‘
˜4Ó ˆÜ˜  e¨VÔ4ØÜ
Ð+¨dÑ2´C¼¸T»
³OÓ
DÐDrV   c                 óÀ  — t        | «      r| j                  } t        | «      st        | «      rt	        | |||«      S t        | «      rt        | «      } | ||fS t        | «      rt        | «      ||fS t        | «      st        | «      rt        j                  | «      } t        | «      rt        | | j                  «      \  } }| ||fS t!        | «      rt#        | d«      } | ||fS t%        | «      rt#        | j'                  «       d«      } | ||fS t)        | «      rt#        | j'                  «       d«      } | ||fS t+        | «      rt-        | |||«      \  }}}|||fS t/        | «      rt1        «       }|j3                  | «      } t5        | «      rt7        | |||«      \  }}}|||fS t9        | «      rt;        | |||«      \  }}}|||fS t=        dt?        tA        | «      «      z   «      ‚)NTú.Value type is not supported for data iterator:)!r2   r  r1   r3   r¿  r4   rÇ  rÞ  râ  rð  rö  rM   r•   r�   r   ro   rg   rr   r„   r  r‹   r9   r£  r8   r<   rA   r0   rˆ  r7   r[  ry  rQ   rR   )	rI   ru   rv   rÆ   rp   Údf_plrÒ   Údf_parg  s	            rT   Ú_proxy_transformr#  n  sö  € ô �tÔØ×!Ñ!ˆÜ�4ÔœL¨Ô.Ü!Ø�- Ð0Bó
ð 	
ô �dÔÜ$ TÓ*ˆØ�] MÐ1Ð1Ü�$ÔÜ  Ó&¨°}ÐDÐDÜ�„~œ 4œÜ�x‰x˜‹~ˆÜ˜ÔÜ" 4¨¯©Ó4‰ˆˆaØ�] MÐ1Ð1Ü�DÔÜ% d¨DÓ1ˆØ�] MÐ1Ð1Ü�DÔÜ% d§j¡j£l°DÓ9ˆØ�] MÐ1Ð1Ü�DÔÜ% d§j¡j£l°DÓ9ˆØ�] MÐ1Ð1Ü�$ÔÜ.BØÐ$ m°]ó/
Ñ+ˆˆ}˜mð �m ]Ð2Ð2Ü˜ÔÜ‹_ˆà�|‰|˜DÓ!ˆÜ�„Ü.DØÐ$ m°]ó/
Ñ+ˆˆ}˜mð �m ]Ð2Ð2Ü�TÔÜ+?ØÐ$ m°]ó,
Ñ(ˆˆM˜=ð �= -Ð/Ð/Ü
ÐDÄsÌ4ÐPTË:ÃÑVÓ
WÐWrV   c                 ó^   ‡ — t        ˆ fd„t        t        t        t        t
        fD «       «      S )z0Whether the data is a CUDA-based data structure.c              3   ó.   •K  — | ]  } |‰«      –— Œ y ­wrð   r  )rº  ÚprI   s     €rT   r»  zis_on_cuda.<locals>.<genexpr>¥  s   øè ø€ ò 	àñ 	
ˆ$�ñ	ùs   ƒ)Úanyr1   r3   r2   r4   rÞ  r]   s   `rT   Ú
is_on_cudar(  £  s0   ø€ äó 	ô ÜÜÜÜð
ô	ó 	ð 	rV   ÚproxyrD   c                 óF  — t        |«      s!t        |«      st        |«      st        |«       t	        |t
        «      r| j                  |«       yt        |«      r| j                  |«       yt        |«      rt        |«      }| j                  |«       yt	        |t        t        f«      r| j                  |«       yt        |«      rt        |«       | j                  |«       yt!        |«      r| j#                  |«       yt%        dt'        t)        |«      «      z   «      }|‚)zDispatch for QuantileDMatrix.Nr   )r3   r8   r;   r^   rc   r°  Ú_ref_data_from_cuda_columnarr4   Ú_ref_data_from_cuda_interfacerÞ  râ  rq  r7  Ú_ref_data_from_columnarr�   Ú_ref_data_from_arrayrg   Ú_ref_data_from_csrry  rQ   rR   )r)  rI   rÀ   s      rT   Údispatch_proxy_set_datar0  ±  sõ   € ô ˜ÔÜ! $Ô'Ü! $Ô'ä˜$Ôä�$œÔ(à×*Ñ*¨4Ô0ØÜ�dÔØ×+Ñ+¨DÔ1ØÜ�$ÔÜ  Ó&ˆØ×+Ñ+¨DÔ1Øä�$Ô)Ô+<Ð=Ô>Ø×%Ñ% dÔ+ØÜ˜ÔÜ˜$ÔØ×"Ñ" 4Ô(ØÜ�DÔØ× Ñ  Ô&Øä
ÐDÄsÌ4ÐPTË:ÃÑVÓ
W€CØ
€IrV   )NNN)rK   Nrð   )¯rN  ry   Ú	functoolsrÊ  ræ  rO   Útypingr   r   r   r   r   r   r	   r
   r   r   r   ÚnumpyrM   Ú_c_apir   r   r   r   Ú_data_utilsr   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   Ú_typingr%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   Úcompatr0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   r  r  rø   rA   rÄ   rB   r   ÚcorerC   rD   rz   rE   Ú__annotations__rÐ   rT  rU   r^   r¨   rg   rr   ÚROWr}   r�   r„   r‡   r‹   r0  r�   r˜   r›   r»   rÞ   Úpandas_pyarrow_mapperÚupdater¾   rÃ   rQ   rÖ   râ   rå   rÏ   Úcacherù   rÎ   r  rË   r  r  rõ  r  r5  r7  r[  r`  rc  rh  rk  ro  rq  rˆ  rŒ  r�  r  r™  r›  rŸ  r£  r¥  r«  r®  r°  r¿  rÂ  rÇ  rÏ  rÖ  rÚ  rÞ  râ  rä  rç  rî  rÉ   rð  ró  rö  rù  rû  rþ  r  r  r_  r  r  r  r  r  r  r#  r(  r0  r  rV   rT   ú<module>r>     sn  ðò $ã Û Û Û 	Û ÷÷ ÷ ñ ó ç 9Ó 9÷÷ ÷ ÷ ÷ ÷(÷ ÷ ñ ÷÷ ÷ ÷ õ ñ( ÛÝ/Ý)ç,ð .3Ø
‡O�O�X˜lÑ+¨X°lÑ-CÐCñ.Ð  ó ð 	€ð ˜wÐ'€ð
˜xð 
°(¸?Ñ2Kð 
ÐPTó 
ðU˜Hð U¨ó Uð
!�xð ! Dó !ð& ð °4ð ¸Hó ð@ &3×%6Ñ%6ò0à
ð0ð ð0ð ð	0ð
 ˜LÑ)ð0ð ˜LÑ)ð0ð #ð0ð %ó0ð<!�xð ! Dó !ð4 &3×%6Ñ%6ò0à
ð0ð ð0ð ð	0ð
 ˜LÑ)ð0ð ˜LÑ)ð0ð #ð0ð %ó0ð:!�xð ! Dó !ð&0˜Hð 0¨°2·:±:Ñ)>ó 0ð
˜(ð 
¨8°JÑ+?ð 
ÀBÇJÁJó 
ð( &3×%6Ñ%6ò0à
�*‰*ð0ð ð0ð ð	0ð
 ˜LÑ)ð0ð ˜LÑ)ð0ð #ð0ð %ó0ð8 ØØØØØØØØØØØñÐ ð" ØØØØØØØØØØñÐ ð ØØØØØØØØØØØØñÐ ð  × Ñ Ð2Ô 3Ø × Ñ Ð1Ô 2ð2ð ð 8ð °ó ð$'(Ø
ð'(à
�3‰-ð'(ð ˜LÑ)ð'(ð ˜LÑ)ð	'(ð
 ð'(ð ˆ8�LÑ! 8¨LÑ#9Ð9Ñ:ó'(ðTC˜[ð C¨Tó Cð"+˜3ð + 4ó +ð
 sð ¨tó ð ‡�ð ˜h¨ }°dÐ':Ñ;ò  ó ð ð"˜;ð ¨4ó ð ‡�ð ¨;¨-¸Ð*=Ñ!>ò ó ðð$˜kð ¨dó ð˜ð  §
¡
ó ð> ‡�ðO˜Dò Oó ðOð ‡�ð&˜eò &ó ð&ðCØ
ðCà	ˆ%�—
‘
˜MÐ)Ñ
*Ñ+óCôL,,˜ô ,,ðd -1Ø?CØñØ
ðàðð ˜LÑ)ðð ˜E ,°
Ð":Ñ;Ñ<ð	ð
 �3‰-ðð Ð˜h |Ñ4°h¸|Ñ6LÐLÑMóð81Ø
ð1à
ð1ð �JÑð1ð �O‰Oð	1ð
 
ó1ð SØ
ðSØ*7ðSà	óSð& &3×%6Ñ%6ò0à
ð0ð ð0ð ð	0ð
 ð0ð ˜LÑ)ð0ð ˜E ,°
Ð":Ñ;Ñ<ð0ð #ð0ð %ó0ð80Ø
ð0Øð0Ø&.¨zÑ&:ð0ØDJÇOÁOð0à	ó0ð"à
ðð ðð ð	ð
 ðð ˜LÑ)ðð ˜LÑ)ðð %óô0-7�}ô -7ð` .Ø
ð .àð .ð ˜LÑ)ð .ð ˜E ,°
Ð":Ñ;Ñ<ð	 .ð
 Ð˜X lÑ3°X¸lÑ5KÐKÑLó .ðT &3×%6Ñ%6ñ0Ø
ð0àð0ð ð0ð ð	0ð
 ˜LÑ)ð0ð ˜E ,°
Ð":Ñ;Ñ<ð0ð #ð0ð %ó0ð2 ‡�ð�d˜8 S˜=Ñ)ò ó ðð*˜hð ¨5°°c±¸D°Ñ+Aó ð(SØ
ðSà
ðSð �JÑðSð �O‰Oð	Sð
 
óSó?ð
	 Xð 	°$ó 	ðØ
ðàðð ˜LÑ)ðð ˜E ,°
Ð":Ñ;Ñ<ð	ð
 Ð˜X lÑ3°X¸lÑ5KÐKÑLóð> &3×%6Ñ%6ñ0Ø
ð0àð0ð ð0ð ð	0ð
 ˜LÑ)ð0ð ˜E ,°
Ð":Ñ;Ñ<ð0ð #ð0ð %ó0ð2 ‡�ð  ¨#¨°¨Ñ 5ò  ó ð ð( ‡�ð ¨3¨%°¨+Ñ!6ò ó ðô*,�mô *,ðZJØ
ðJà˜LÑ)ðJð ˜E ,°
Ð":Ñ;Ñ<ðJð ð	Jð
 ØØˆ\ÑØˆ\ÑðñóJðZ0à
ð0ð ð0ð ð	0ð
 ˜LÑ)ð0ð ˜E ,°
Ð":Ñ;Ñ<ð0ð ð0ð %ó0ð. ð ¨Uó ð0Ø
ð0àð0ð ð0ð ˜LÑ)ð	0ð
 ˜LÑ)ð0ð %ó0ð(;�xð ; Dó ;ð;�xð ; Dó ;ðF�Xð F $ó Fð˜Hð ¨ó ðRØ
ðRàðRð ðRð ˜LÑ)ð	Rð
 ˜LÑ)ðRð %óRð0�(ð 0˜y¨Ñ2ó 0ð &3×%6Ñ%6ñ0Ø
ð0à�oÑ&ð0ð ˜LÑ)ð0ð ˜LÑ)ð	0ð
 #ð0ð %ó0ð"�8ð " 	¨$¡ó "ð &3×%6Ñ%6òà
ðð ðð ð	ð
 ˜LÑ)ðð ˜LÑ)ðð #ðð %óð*#�Hð # ¨5Ñ!1ó #ð &3×%6Ñ%6òà
ðð ðð ð	ð
 ˜LÑ)ðð ˜LÑ)ðð #ðð %óð&&˜hð &¨4ó &ð ð ¨Xó ð2  %Ø%2×%6Ñ%6òyFà
ðyFð ðyFð ð	yFð
 ˜LÑ)ðyFð ˜E ,°
Ð":Ñ;Ñ<ðyFð ðyFð #ðyFð %óyFðxH˜xð H¨sð H°tó HðYØ
�*‰*ðYàðYð �JÑðYð �O‰Oð	Yð
 
óYð4Ø
ð4Øð4Ø'/°
Ñ';ð4ØEKÇ_Á_ð4à	ó4ð7Ø
ð7Øð7Ø'/°
Ñ';ð7ØEKÇ_Á_ð7à	ó7ðY˜Xð Y¨cð Y¸6¿?¹?ð YÈtó YðO ð O°#ð O¸v¿¹ð OÐSWó OðO ð O°ð O¸f¿o¹oð OÐRVó Oð QUñ=EØð=EØ%ð=EØ-0ð=EØ9AÀ*Ñ9Mð=Eà	ó=Eð@2XØ
ð2Xà˜LÑ)ð2Xð ˜LÑ)ð2Xð ð	2Xð
 ó2Xðj�Sð ˜Tó ð$Øð$à
ð$ð 
ô$rV   