Ë
    ômxih*  ã                   ó  — 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 ddlmZ ej6                  d„ «       Zd„ Zd	„ Zd
„ Zd„ Z d„ Z!ejD                  jF                  d„ «       Z$ejD                  jF                  d„ «       Z%d„ Z&d„ Z'd„ Z(d„ Z)ejD                  jU                  d«      d„ «       Z+d„ Z,ejD                  jF                  d„ «       Z-d„ Z.d„ Z/ ej6                  dd ej`                  d ejb                  d«      ¬«       ej`                  d ejb                  d«      ¬«      g¬«      d „ «       Z2ejD                  jg                  d!d"d#g«      d$„ «       Z4d'd%„Z5d&„ Z6y)(z1
Testing that we work in the downstream packages
é    N)ÚIntCastingNaNError)Ú	DataFrameÚDatetimeIndexÚSeriesÚTimedeltaIndex)ÚDatetimeArrayÚTimedeltaArray)ÚVersionc                  ó    — t        dg d¢i«      S )NÚA©é   é   é   )r   © ó    úS/home/htdocs/ttos/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_ufuncr1   2   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Úresr0   Úmsgs         r   Ú7test_construct_dask_float_array_int_dtype_match_ndarrayrA   E   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_xarrayrE   _   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ÚcftimerC   Ú0001r   )ÚperiodsiÐ  r   Únearest)Úmethod)r   r   Úcftime_rangeÚDatetimeGregorianÚget_indexer)rG   rC   ÚtimesÚkeyr/   r0   s         r   Útest_xarray_cftimeindex_nearestrQ   e   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_optimizabler[   q   s   € ô ×Ñœ3Ÿ>™>¨5°$¸ÐHÕIr   c                  óR   — t        j                  t        j                  dddg«       y )NrS   rT   z_import pandas as pd, pickle; pickle.loads(pickle.dumps(pd.date_range('2021-01-01', periods=1)))rV   r   r   r   Ú)test_oo_optimized_datetime_index_unpickler]   w   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_statsmodelsrj   ‡   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   rl   rm   rn   Úload_digitsÚSVCrh   re   ÚtargetÚpredict)rm   rn   ÚdigitsÚclfs       r   Útest_scikit_learnrx   �   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_   )ÚfreqrI   )ÚdayÚ
total_billr~   r   )ÚxÚyre   )r   r   r   r   Ú
date_rangerf   Ú	stripplot)rz   Ú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ú\ú/rT   z$import pandas;print(pandas.__file__)zsite-packagesz pandas installed as site packagez-sSErU   zCommand '\['zD', '-sSE', '-c', 'import pandas'\]' returned non-zero exit status 1.r3   )Ústderr)ÚnumpyÚpytzÚdateutil)rY   rZ   ÚreplacerW   Úcheck_outputÚdecoder   Úskipr:   Ú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«      }t        j                  d«      }t	        |j
                  «      t	        d«      k  rTt	        t        j
                  «      t	        d«      k\  r/| j                  t        j                  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   Údaskr'   z2025.1.0z2.1z,loc.__setitem__ incorrectly mutated column c)Úreasonr   r   ÚaÚbÚcr`   FT)r²   r³   r´   )Úindex)r   r   r   r   r
   Ú__version__r)   ÚapplymarkerÚmarkÚxfailr8   r   Úlocr*   r�   r!   )Úrequestr"   r°   r,   Úddar   r/   r0   s           r   Ú*test_frame_setitem_dask_array_into_new_colr½   ã   s?  € ô
 �]‰]Ð0Ó1€Fð5Ü×"Ñ" 6Ó*ˆÜ× Ñ  Ó.ˆÜ�4×#Ñ#Ó$¬°
Ó(;Ò;ÄÜ�N‰NóA
ä�U‹^òAð ×ÑÜ—‘×!Ñ!Ð)WÐ!ÓXôð �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   —DE ÅE#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   rf   Ú__add__ÚNotImplemented)rÉ   ÚleftÚrights      r   Útest_pandas_priorityrÎ      sL   € ÷ñ ñ ‹9€DÜ”5˜“8Ó€Eà�=‰=˜Ó¤.Ñ0Ð0Ð0Ø�4‰<˜4ÑÐÑr   Ú
memoryviewr8   r°   r'   )ÚmarksrC   )Ú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   r6   rÏ   r8   Úir°   r   NrC   )r)   r8   Úint64ÚparamrÏ   Ú
dask.arrayrC   Ú	DataArray)r»   r=   r­   re   r°   Úxrs         r   Úarray_likesrÙ     s´   € ô �(‰(’9¤B§H¡HÔ
-€Cà�=‰=€DØˆ|ÒÜ˜#‹ˆð �ˆ9Ðð 
�ŠÜ�{‰{˜3 Ó$ˆð �ˆ9Ðð 
�ŠÛà�z‰z×Ñ Ó$ˆð �ˆ9Ðð 
�Ò	Ûà�|‰|˜CÓ ˆà�ˆ9Ðr   r7   ú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 deprecatedr3   r6   )r   r	   rÅ   r*   Úassert_produces_warningÚFutureWarningÚ_from_sequenceÚassert_extension_array_equalÚ
isinstancerÏ   r   Úto_datetimeÚto_timedeltar8   Úassert_equalr   r   Úassert_index_equal)
r7   rÙ   r=   re   ÚclsÚdepr_msgr0   r/   ÚfuncÚidx_clss
             r   Útest_from_obscure_arrayrê   1  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÷   P  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 )NrC   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])r7   r}   )r   r   r×   r   râ   r   r*   rå   )rØ   r=   r/   r0   s       r   Útest_xarray_coerce_unitrû   c  sY   € ä	×	Ñ	˜XÓ	&€Bà
�,‰,’yÓ
!€CÜ�^‰^˜C dÔ+€FÜò	
ð
 Øô€Hô ×Ñ˜& (Õ+r   )ÚreturnN)7Ú__doc__r8   rW   rY   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	   Úpandas.util.versionr
   Úfixturer   r%   r1   rA   rE   rQ   r¸   Ú
single_cpur[   r]   rj   rx   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   