Ë
    ¤eh)  ã                   óø  — 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 ddl	m
c mZ ddlZddlmZmZmZmZ ddlmZ ddlmZmZ ej2                  d„ «       Zd„ Zd„ Zd	„ Zd
„ Zd„ Zej@                  jB                  d„ «       Z"ej@                  jB                  d„ «       Z#d„ Z$d„ Z%d„ Z&d„ Z'ej@                  jQ                  d«      d„ «       Z)d„ Z*ej@                  jB                  d„ «       Z+d„ Z,d„ Z- ej2                  dd ej\                  d ej^                  d«      ¬«       ej\                  d ej^                  d«      ¬«      g¬«      d„ «       Z0ej@                  jc                  d d!d"g«      d#„ «       Z2d&d$„Z3d%„ Z4y)'z1
Testing that we work in the downstream packages
é    N)ÚIntCastingNaNError)Ú	DataFrameÚDatetimeIndexÚSeriesÚTimedeltaIndex)ÚDatetimeArrayÚTimedeltaArrayc                  ó    — t        dg d¢i«      S )NÚA©é   é   é   )r   © ó    úZ/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/pandas/tests/test_downstream.pyÚdfr      s   € ä�cš9Ð%Ó&Ð&r   c                 óN  — t        j                  d«      }	 t        j                  d«       t        j                  d«      }|j	                  | d¬«      }|j
                  €J ‚|j                  «       €J ‚	 t        j                  d|«       y # t        j                  d|«       w xY w)Núcompute.use_numexprÚtoolzúdask.dataframer   ©Únpartitions)ÚpdÚ
get_optionÚpytestÚimportorskipÚfrom_pandasr   ÚcomputeÚ
set_option)r   ÚolduseÚddÚddfs       r   Ú	test_daskr$   !   sŠ   € ô �]‰]Ð0Ó1€Fð5Ü×Ñ˜GÔ$Ü× Ñ Ð!1Ó2ˆà�n‰n˜R¨QˆnÓ/ˆØ�u‰uÐ Ð Ð Ø�{‰{‹}Ð(Ð(Ñ(ä
�‰Ð+¨VÕ4øŒ�‰Ð+¨VÕ4ús   —AB ÂB$c                  óº  — t        j                  d«      } 	 t        j                  d«      }t        j                  d«      }t	        g d¢«      }|j                  |d¬«      }|j                  |«      j                  «       }t        j                  |«      }t        j                  ||«       t        j                  d| «       y # t        j                  d| «       w xY w)Nr   ú
dask.arrayr   )g      ø?gffffff@gš™™™™™@g      @r   r   )r   r   r   r   r   r   Úfixr   ÚnpÚtmÚassert_series_equalr    )r!   Údar"   ÚsÚdsÚresultÚexpecteds          r   Útest_dask_ufuncr0   1   s¨   € ô �]‰]Ð0Ó1€Fð5Ü× Ñ  Ó.ˆÜ× Ñ Ð!1Ó2ˆäÒ'Ó(ˆØ�^‰^˜A¨1ˆ^Ó-ˆà—‘˜“×#Ñ#Ó%ˆÜ—6‘6˜!“9ˆÜ
×Ñ˜v xÔ0ä
�‰Ð+¨VÕ4øŒ�‰Ð+¨VÕ4ús   —BC ÃCc                  ór  — t        j                  d«      } t        j                  g d¢«      }| j	                  |«      }t        |«      }t        |«      }t        j                  ||«       d}t        j                  t        |¬«      5  t        |d¬«       d d d «       d}t        j                  |d<   t        j                  t        |¬«      5  t        |d¬«       d d d «       t        j                  t        |¬«      5  t        |d¬«       d d d «       y # 1 sw Y   Œ�xY w# 1 sw Y   ŒGxY w# 1 sw Y   y xY w)	Nr   )r   g      @r   z)Trying to coerce float values to integers©ÚmatchÚi8©Údtypez9Cannot convert non-finite values \(NA or inf\) to integerr   )r   r   r(   ÚarrayÚ
from_arrayr   r)   r*   ÚraisesÚ
ValueErrorÚnanr   )r"   ÚarrÚdarrÚresr/   Úmsgs         r   Ú7test_construct_dask_float_array_int_dtype_match_ndarrayr@   D   sÿ   € ô 
×	Ñ	Ð-Ó	.€Bä
�(‰(’;Ó
€CØ�=‰=˜Ó€Dä
�‹,€CÜ�c‹{€HÜ×Ñ˜3 Ô)ð 6€CÜ	�‰”z¨Ô	-ñ !Üˆt˜4Õ ÷!ð G€CÜ�V‰V€Cˆ�FÜ	�‰Ô)°Ô	5ñ !Üˆt˜4Õ ÷!ô 
�‰Ô)°Ô	5ñ  Üˆs˜$Õ÷ ð  ÷!ð !ú÷
!ð !ú÷ ð  ús$   ÂDÃD!Ã>D-ÄDÄ!D*Ä-D6c                 óR   — t        j                  d«       | j                  «       €J ‚y )NÚxarray)r   r   Ú	to_xarray)r   s    r   Útest_xarrayrD   ^   s"   € Ü
×Ñ˜Ô!à�<‰<‹>Ð%Ð%Ñ%r   c                  óÞ   — t        j                  d«      } t        j                  d«      }|j                  dd¬«      }| j                  ddd«      }|j	                  |gd¬	«      }d}||k(  sJ ‚y )
NÚcftimerB   Ú0001r   )ÚperiodsiÐ  r   Únearest)Úmethod)r   r   Úcftime_rangeÚDatetimeGregorianÚget_indexer)rF   rB   ÚtimesÚkeyr.   r/   s         r   Útest_xarray_cftimeindex_nearestrP   d   su   € ä× Ñ  Ó*€FÜ× Ñ  Ó*€Fà×Ñ °ÐÓ2€EØ
×
"Ñ
" 4¨¨AÓ
.€CØ×Ñ ˜u¨YÐÓ7€FØ€HØ�XÒÐÑr   c                  óR   — t        j                  t        j                  dddg«       y )Nú-OOú-cúimport pandas©Ú
subprocessÚ
check_callÚsysÚ
executabler   r   r   Útest_oo_optimizablerZ   p   s   € ô ×Ñœ3Ÿ>™>¨5°$¸ÐHÕIr   c                  óR   — t        j                  t        j                  dddg«       y )NrR   rS   z_import pandas as pd, pickle; pickle.loads(pickle.dumps(pd.date_range('2021-01-01', periods=1)))rU   r   r   r   Ú)test_oo_optimized_datetime_index_unpickler\   v   s*   € ô ×Ñä�N‰NØØðUð	
õ
r   c                  óÆ   — t        j                  d«      } t        t        d«      t        d«      t        dd«      dœ«      }| j	                  d|¬«      j                  «        y )Nzstatsmodels.formula.apié   éd   éi   )ÚLotteryÚLiteracyÚPop1831z$Lottery ~ Literacy + np.log(Pop1831))Údata)r   r   r   ÚrangeÚolsÚfit)Úsmfr   s     r   Útest_statsmodelsri   †   sQ   € Ü
×
Ñ
Ð7Ó
8€Cä	Ü˜!“H¬%°«(¼uÀSÈ#»ÑOó
€Bð ‡G�GÐ2¸€GÓ<×@Ñ@ÕBr   c                  ó  — t        j                  d«       ddlm} m} | j                  «       }|j                  dd¬«      }|j                  |j                  d d |j                  d d «       |j                  |j                  dd  «       y )NÚsklearnr   )ÚdatasetsÚsvmgü©ñÒMbP?g      Y@)ÚgammaÚCéÿÿÿÿ)r   r   rk   rl   rm   Úload_digitsÚSVCrg   rd   ÚtargetÚpredict)rl   rm   ÚdigitsÚclfs       r   Útest_scikit_learnrw   �   sr   € Ü
×Ñ˜	Ô"÷ð
 ×!Ñ!Ó#€FØ
�'‰'˜ ˆ'Ó
'€CØ‡G�GˆF�K‰K˜˜Ð˜fŸm™m¨C¨RÐ0Ô1Ø‡K�K�—‘˜B˜CÐ Õ!r   c                  ó°   — t        j                  d«      } t        t        j                  ddd¬«      t        d«      dœ«      }| j                  dd|¬	«       y )
NÚseabornÚ2023ÚDr^   )ÚfreqrH   )ÚdayÚ
total_billr}   r~   )ÚxÚyrd   )r   r   r   r   Ú
date_rangere   Ú	stripplot)ry   Útipss     r   Útest_seabornr„   œ   sM   € Ü×!Ñ! )Ó,€GÜÜ—‘˜f¨3¸Ô:Ì%ÐPQË(ÑSó€Dð ×Ñ˜ °DÐÕ9r   c                  ó.   — t        j                  d«       y )NÚpandas_datareader)r   r   r   r   r   Útest_pandas_datareaderr‡   ¤   s   € Ü
×ÑÐ+Õ,r   z0ignore:Passing a BlockManager:DeprecationWarningc                 ó°   — t        j                  d«      }|j                  j                  | «      }|j	                  «       }t        j                  || «       y )NÚpyarrow)r   r   ÚTabler   Ú	to_pandasr)   Úassert_frame_equal)r   r‰   Útabler.   s       r   Útest_pyarrowrŽ   ¨   sB   € ä×!Ñ! )Ó,€GØ�M‰M×%Ñ% bÓ)€EØ�_‰_Ó€FÜ×Ñ˜& "Õ%r   c                 ó  — t        j                  d«      }|j                  | «      }|j                  ||j                  ¬«      }t        j                  | |«       |j                  ||j                  ¬«      }t        j                  | |«       y )NÚyaml)ÚLoader)r   r   ÚdumpÚloadr‘   r)   rŒ   ÚUnsafeLoader)r   r�   ÚdumpedÚloadedÚloaded2s        r   Útest_yaml_dumpr˜   °   sm   € ä×Ñ˜vÓ&€Dà�Y‰Y�r‹]€Fà�Y‰Y�v d§k¡kˆYÓ2€FÜ×Ñ˜"˜fÔ%à�i‰i˜ t×'8Ñ'8ˆiÓ9€GÜ×Ñ˜"˜gÕ&r   c                  óþ  — t         j                  j                  dd«      } | ddg}t        j                  |«      j                  «       }d|v rt        j                  d«       | dddg}d	| › d
�}t        j                  t        j                  |¬«      5 }t        j                  |t        j                  ¬«       d d d «       j                  j                  j                  «       }dD ]  }||v rŒJ ‚ y # 1 sw Y   Œ;xY w)Nú\ú/rS   z$import pandas;print(pandas.__file__)zsite-packagesz pandas installed as site packagez-sSErT   zCommand '\['zD', '-sSE', '-c', 'import pandas'\]' returned non-zero exit status 1.r2   )Ústderr)ÚnumpyÚpytzÚdateutil)rX   rY   ÚreplacerV   Úcheck_outputÚdecoder   Úskipr9   ÚCalledProcessErrorÚSTDOUTÚvalueÚstdout)ÚpyexeÚcallÚoutputr?   ÚexcÚnames         r   Ú test_missing_required_dependencyr­   ½   sû   € ô �N‰N×"Ñ" 4¨Ó-€Eð
 �4Ð?Ð@€DÜ×$Ñ$ TÓ*×1Ñ1Ó3€FØ˜&Ñ Ü�‰Ð6Ô7ð
 �6˜4 Ð1€Dð ˜�wð +ð 	+ð ô
 
�‰”z×4Ñ4¸CÔ	@ð @ÀCÜ×Ñ ¬Z×->Ñ->Õ?÷@ð �Y‰Y×Ñ×$Ñ$Ó&€FØ-ò ˆØ�vŠ~Ðˆ~ñ÷	@ð @ús   Â&C3Ã3C<c                  ó¸  — t        j                  d«      } 	 t        j                  d«      }|j	                  ddg«      }t        dddgi«      }||d<   ||d<   d|j                  d	d
gdf<   |j                  dgd d …f   }t        dgdgdgdœdg¬«      }t        j                  ||«       t        j                  d| «       y # t        j                  d| «       w xY w)Nr   r&   r   r   ÚaÚbÚcr_   FT)r¯   r°   r±   )Úindex)
r   r   r   r   r7   r   Úlocr)   rŒ   r    )r!   r+   Úddar   r.   r/   s         r   Ú*test_frame_setitem_dask_array_into_new_colrµ   â   sÓ   € ô
 �]‰]Ð0Ó1€Fð5Ü× Ñ  Ó.ˆà�h‰h˜˜1�vÓˆÜ˜˜c 3˜ZÐ(Ó)ˆØˆˆ3‰Øˆˆ3‰Ø%(ˆ�‰��tˆ}˜cÐ!Ñ"Ø—‘˜˜šQ˜‘ˆÜ C 5°¨u¸A¸3Ñ?ÈÀsÔKˆÜ
×Ñ˜f hÔ/ä
�‰Ð+¨VÕ4øŒ�‰Ð+¨VÕ4ús   —BC ÃCc                  ó’   —  G d„ d«      }  | «       }t        t        d«      «      }|j                  |«      t        u sJ ‚||z   |u sJ ‚y )Nc                   ó   — e Zd ZdZd„ Zy)ú%test_pandas_priority.<locals>.MyClassiˆ  c                 ó   — | S )Nr   )ÚselfÚothers     r   Ú__radd__z.test_pandas_priority.<locals>.MyClass.__radd__þ   s   € ØˆKr   N)Ú__name__Ú
__module__Ú__qualname__Ú__pandas_priority__r¼   r   r   r   ÚMyClassr¸   û   s   „ Ø"Ðó	r   rÁ   r   )r   re   Ú__add__ÚNotImplemented)rÁ   ÚleftÚrights      r   Útest_pandas_priorityrÆ   ø   sL   € ÷ñ ñ ‹9€DÜ”5˜“8Ó€Eà�=‰=˜Ó¤.Ñ0Ð0Ð0Ø�4‰<˜4ÑÐÑr   Ú
memoryviewr7   Údaskr&   )ÚmarksrB   )Úparamsc                 óZ  — t        j                  g d¢t         j                  ¬«      }| j                  }|dk(  rt	        |«      }||fS |dk(  rt        j                  d|«      }||fS |dk(  r#ddl}|j                  j                  |«      }||fS |d	k(  rddl}|j                  |«      }|fS )
z¢
    Fixture giving a numpy array and a parametrized 'data' object, which can
    be a memoryview, array, dask or xarray object created from the numpy array.
    r   r5   rÇ   r7   ÚirÈ   r   NrB   )r(   r7   Úint64ÚparamrÇ   Ú
dask.arrayrB   Ú	DataArray)Úrequestr<   r¬   rd   rÈ   Úxrs         r   Úarray_likesrÓ     s´   € ô �(‰(’9¤B§H¡HÔ
-€Cà�=‰=€DØˆ|ÒÜ˜#‹ˆð �ˆ9Ðð 
�ŠÜ�{‰{˜3 Ó$ˆð �ˆ9Ðð 
�ŠÛà�z‰z×Ñ Ó$ˆð �ˆ9Ðð 
�Ò	Ûà�|‰|˜CÓ ˆà�ˆ9Ðr   r6   úM8[ns]úm8[ns]c                 óV  — |\  }}t         t        dœ|    }|j                  › d�}t        j                  t
        |¬«      5   ||«      }d d d «       |j                  || ¬«      }t        j                  |«       t        |t        «      s^t        j                  t        j                  dœ|    } ||«      j                  } ||«      j                  }t        j                  ||«       t        t         dœ|    }	 |	|«      } |	|«      }t        j"                  ||«       y # 1 sw Y   Œ×xY w)N)rÔ   rÕ   z.__init__ is deprecatedr2   r5   )r   r	   r½   r)   Úassert_produces_warningÚFutureWarningÚ_from_sequenceÚassert_extension_array_equalÚ
isinstancerÇ   r   Úto_datetimeÚto_timedeltar7   Úassert_equalr   r   Úassert_index_equal)
r6   rÓ   r<   rd   ÚclsÚdepr_msgr/   r.   ÚfuncÚidx_clss
             r   Útest_from_obscure_arrayrä   )  s   € ð �I€Cˆä"¬nÑ
=¸eÑ
D€Cà—,‘,�Ð6Ð7€HÜ	×	#Ñ	#¤M¸Ô	Bñ Ù�s“8ˆ÷à×Ñ ¨EÐÓ2€FÜ×#Ñ# F¨HÔ5ä�dœJÔ'ô Ÿ.™.´B·O±OÑDÀUÑKˆÙ�c“—‘ˆÙ˜“:×#Ñ#ˆÜ
�‰˜ Ô)ô '´.ÑAÀ%ÑH€GÙ�S‹\€FÙ�t‹}€HÜ×Ñ˜& (Õ+÷#ð ús   Á 	DÄD(c                  ó  — t        j                  d«       t        g d¢g d¢dœ«      } | j                  «       }|j	                  «       }ddg}||k(  sJ ‚t        g d¢d¬«      }|j                  «       }|j                  dk(  sJ ‚y)	zÙ
    Test some basic methods of the dataframe consortium standard.

    Full testing is done at https://github.com/data-apis/dataframe-api-compat,
    this is just to check that the entry point works as expected.
    Údataframe_api_compatr   )é   r^   é   )r¯   r°   r¯   r°   )r¬   N)r   r   r   Ú!__dataframe_consortium_standard__Úget_column_namesr   Ú__column_consortium_standard__r¬   )Údf_pdr   Úresult_1Ú
expected_1ÚserÚcols         r   Útest_dataframe_consortiumrñ   H  s   € ô ×ÑÐ.Ô/ÜšIªIÑ6Ó7€EØ	×	0Ñ	0Ó	2€BØ×"Ñ"Ó$€HØ�s�€JØ�zÒ!Ð!Ð!ä
’ Ô
%€CØ
×
,Ñ
,Ó
.€CØ�8‰8�sŠ?Ð‰?r   c                  óÎ   — t        j                  d«      } | j                  g d¢«      }t        j                  |d¬«      }t        g d¢dd ¬«      }t        j                  ||«       y )NrB   r   Úns)Úunit)z1970-01-01 00:00:00.000000001z1970-01-01 00:00:00.000000002z1970-01-01 00:00:00.000000003zdatetime64[ns])r6   r|   )r   r   rÐ   r   rÜ   r   r)   rß   )rÒ   r<   r.   r/   s       r   Útest_xarray_coerce_unitrõ   [  sY   € ä	×	Ñ	˜XÓ	&€Bà
�,‰,’yÓ
!€CÜ�^‰^˜C dÔ+€FÜò	
ð
 Øô€Hô ×Ñ˜& (Õ+r   )ÚreturnN)5Ú__doc__r7   rV   rX   r�   r(   r   Úpandas.errorsr   Úpandas.util._test_decoratorsÚutilÚ_test_decoratorsÚtdÚpandasr   r   r   r   r   Úpandas._testingÚ_testingr)   Úpandas.core.arraysr   r	   Úfixturer   r$   r0   r@   rD   rP   ÚmarkÚ
single_cpurZ   r\   ri   rw   r„   r‡   ÚfilterwarningsrŽ   r˜   r­   rµ   rÆ   rÎ   Ú
skip_if_norÓ   Úparametrizerä   rñ   rõ   r   r   r   ú<module>r     s¦  ðñó Û Û 
ã Û å ,ß )Ð )ã ÷ó õ ÷ð ‡�ñ'ó ð'ò5ò 5ò& ò4&ò	ð ‡�×ÑñJó ðJð
 ‡�×Ññó ðòCò
"ò:ò-ð ‡�×ÑÐNÓOñ&ó Pð&ò
'ð ‡�×Ññ!ó ð!òH5ò, ð  €‡�àØØˆ�‰�V = 2§=¡=°Ó#>Ô?Øˆ�‰�X ] R§]¡]°8Ó%<Ô=ð	ôñóðð2 ‡�×Ñ˜ 8¨XÐ"6Ó7ñ,ó 8ð,ó<ó&,r   