gL ih* dZddlZddlZddlZddlZddlZddlmZddl m cm Z ddl Zddl mZmZmZmZddlmZddlmZmZddlmZej6dZdZd Zd Zd Z d Z!ejDjFd Z$ejDjFdZ%dZ&dZ'dZ(dZ)ejDjUddZ+dZ,ejDjFdZ-dZ.dZ/ej6ddej`de jbdej`de jbdgd Z2ejDjgd!d"d#gd$Z4d'd%Z5d&Z6y)(z1 Testing that we work in the downstream packages N)IntCastingNaNError) DataFrame DatetimeIndexSeriesTimedeltaIndex) DatetimeArrayTimedeltaArray)Versionc tdgdiS)NA)rb/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/pandas/tests/test_downstream.pydfrs c9% &&rcNtjd} tjdtjd}|j |d}|j J|j J tjd|y#tjd|wxYw)Ncompute.use_numexprtoolzdask.dataframer npartitions)pd get_optionpytest importorskip from_pandasr compute set_option)rolduseddddfs r test_daskr%"s]]0 1F5G$  !1 2nnRQn/uu   {{}((( +V4 +V4s AB B$ctjd} tjd}tjd}t gd}|j |d}|j |j}tj |}tj||tjd|y#tjd|wxYw)Nr dask.arrayr)g?gffffff@g @g@rr) rrrrrrfixr nptmassert_series_equalr!)r"dar#sdsresultexpecteds rtest_dask_ufuncr12s]]0 1F 5   .  !1 2 ' ( ^^A1^ -##%66!9 vx0 +V4 +V4s BCCcrtjd}tjgd}|j |}t |}t |}t j||d}tjt|5t |ddddd}tj|d<tjt|5t |ddddtjt|5t |ddddy#1swYxYw#1swYGxYw#1swYyxYw) Nr)rg@rz)Trying to coerce float values to integersmatchi8dtypez9Cannot convert non-finite values \(NA or inf\) to integerr) rrr)array from_arrayrr*r+raises ValueErrornanr)r#arrdarrresr0msgs r7test_construct_dask_float_array_int_dtype_match_ndarrayrAEs   - .B ((; C == D ,Cc{H3) 6C z -!t4 ! GC VVCF ) 5!t4 ! ) 5 s$  !! !!  s$D D!>D-D!D*-D6cRtjd|jJy)Nxarray)rr to_xarray)rs r test_xarrayrE_s" ! <<> %% %rctjd}tjd}|jdd}|jddd}|j |gd }d}||k(sJy) NcftimerC0001r)periodsirnearest)method)rr cftime_rangeDatetimeGregorian get_indexer)rGrCtimeskeyr/r0s rtest_xarray_cftimeindex_nearestrQesu   *F   *F     2E  " "4A .C   uY  7FH X  rcRtjtjdddgy)N-OO-c import pandas subprocess check_callsys executablerrrtest_oo_optimizabler[qs3>>5$HIrcRtjtjdddgy)NrSrTz_import pandas as pd, pickle; pickle.loads(pickle.dumps(pd.date_range('2021-01-01', periods=1)))rVrrr)test_oo_optimized_datetime_index_unpickler]ws* NN  U   rctjd}ttdtdtddd}|j d|j y)Nzstatsmodels.formula.apidi)LotteryLiteracyPop1831z$Lottery ~ Literacy + np.log(Pop1831))data)rrrrangeolsfit)smfrs rtest_statsmodelsrjsQ   7 8C !H%(uS#O BGG 2G<@@Brctjdddlm}m}|j }|j dd}|j|jdd|jdd|j|jddy)Nsklearnr)datasetssvmgMbP?gY@)gammaC) rrrlrmrn load_digitsSVCrhretargetpredict)rmrndigitsclfs rtest_scikit_learnrxsr  "  ! ! #F ''' 'CGGFKK fmmCR01KK BC !rctjd}ttjdddt dd}|j dd| y) Nseaborn2023Dr_)freqrI)day total_billr~r)xyre)rrrr date_rangerf stripplot)rztipss r test_seabornrsM!!),G  f3:%PQ(S D D9rc.tjdy)Npandas_datareader)rrrrrtest_pandas_datareaderrs +,rz0ignore:Passing a BlockManager:DeprecationWarningctjd}|jj|}|j }t j ||y)Npyarrow)rrTabler to_pandasr*assert_frame_equal)rrtabler/s r test_pyarrowrsB!!),G MM % %b )E __ F&"%rctjd}|j|}|j||j}t j |||j||j}t j ||y)Nyaml)Loader)rrdumploadrr*r UnsafeLoader)rrdumpedloadedloaded2s rtest_yaml_dumprsm   v &D YYr]F YYvdkkY 2F"f%iit'8'8i9G"g&rctjjdd}|ddg}tj|j }d|vrt jd|dddg}d |d }t jtj| 5}tj|tj dddjjj }d D]}||vrJy#1swY;xYw)N\/rTz$import pandas;print(pandas.__file__)z site-packagesz pandas installed as site packagez-sSErUz Command '\['zD', '-sSE', '-c', 'import pandas'\]' returned non-zero exit status 1.r3)stderr)numpypytzdateutil) rYrZreplacerW check_outputdecoderskipr:CalledProcessErrorSTDOUTvaluestdout)pyexecalloutputr@excnames r test_missing_required_dependencyrs NN " "4 -E 4? @D  $ $T * 1 1 3F&  67 64 1D w+ + z44C @@CZ->->?@YY   $ $ &F-v~~ @@s &C33C<ctjd} tjd}tjd}t |j t dkrTt t j t dk\r/|jtjjd|jdd g}td d d gi}||d <||d <d |jddgd f<|jdgddf}td gd gd gddg}tj||tjd|y#tjd|wxYw)Nrdaskr'z2025.1.0z2.1z,loc.__setitem__ incorrectly mutated column c)reasonrrabcr`FT)rrr)index)rrrrr __version__r) applymarkermarkxfailr8rlocr*rr!)requestr"rr,ddarr/r0s r*test_frame_setitem_dask_array_into_new_colrs? ]]0 1F5""6*   . 4## $ (; ; NNA U^A    !!)W!X hh1v c3Z( )33%(t}c!"QC5uA3?sK fh/ +V4 +V4s DE E#cGdd}|}ttd}|j|tusJ||z|usJy)NceZdZdZdZy)%test_pandas_priority..MyClassic|S)Nr)selfothers r__radd__z.test_pandas_priority..MyClass.__radd__sKrN)__name__ __module__ __qualname____pandas_priority__rrrrMyClassrs " rrr)rrf__add__NotImplemented)rleftrights rtest_pandas_priorityrsL 9D 58 E == . 00 0 4<4  r memoryviewr8rr')marksrC)paramscZtjgdtj}|j}|dk(rt |}||fS|dk(rtjd|}||fS|dk(r#ddl}|jj|}||fS|d k(rddl}|j|}|fS) 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 r6rr8irrNrC)r)r8int64paramr dask.arrayrC DataArray)rr=rrerxrs r array_likesrs ((9BHH -C ==D |# 9 {{3$ 9 zz$ 9  ||C  9rr7M8[ns]m8[ns]cV|\}}ttd|}|jd}tjt |5||}ddd|j ||}tj|t|ts^tjtjd|}||j}||j}tj||tt d|} | |}| |}tj"||y#1swYxYw)N)rrz.__init__ is deprecatedr3r6)rr rr*assert_produces_warning FutureWarning_from_sequenceassert_extension_array_equal isinstancerr to_datetime to_timedeltar8 assert_equalrrassert_index_equal) r7rr=reclsdepr_msgr0r/funcidx_clss rtest_from_obscure_arrayr1s IC"n =e DC,,67H # #M Bs8   E  2F##FH5 dJ '..BOODUKc:## )'.A%HG S\Ft}H&(+#s DD(ctjdtgdgdd}|j}|j }ddg}||k(sJt gdd}|j }|jdk(sJy) 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_)rrrr)rN)rrr!__dataframe_consortium_standard__get_column_namesr__column_consortium_standard__r)df_pdrresult_1 expected_1sercols rtest_dataframe_consortiumrPs ./ II6 7E  0 0 2B""$HsJ z !! !  %C , , .C 88s??rctjd}|jgd}tj|d}t gddd}t j||y)NrCr ns)unit)z1970-01-01 00:00:00.000000001z1970-01-01 00:00:00.000000002z1970-01-01 00:00:00.000000003zdatetime64[ns])r7r})rrrrrrr*r)rr=r/r0s rtest_xarray_coerce_unitrcsY   X &B ,,y !C ^^Cd +F  H&(+r)returnN)7__doc__r8rWrYrr)r pandas.errorsrpandas.util._test_decoratorsutil_test_decoratorstdpandasrrrrrpandas._testing_testingr*pandas.core.arraysrr pandas.util.versionr fixturerr%r1rArErQr single_cpur[r]rjrxrrfilterwarningsrrrrrr skip_if_nor parametrizerrrrrrr s   ,)) ('' 5 5& 4& JJ   C ":-NO&P& '!!H5:   V=2==#>? X]R]]8%<=  28X"67,8,<&,r