gL i$3ddlmZddlZddlZddlmZmZddlZ ddlm Z m Z m Z m Z mZddlmZddlmZmZmZdZej.gdd Zej.d Zej4j7d d Zej4j7d d Zej4j=dgddZej.dZ ej.dZ!ej4jDej4jBej4j7dej4j7dGddZ#y))dedentN)PyperclipExceptionPyperclipWindowsException)NA DataFrameSeries get_optionread_clipboard) CheckedCall_stringifyTextinit_qt_clipboardc2i}|dk7r||d<|dk7r||d<|S)Ndefaultexcelsep)rrkwargss d/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/pandas/tests/io/test_clipboard.py build_kwargsrs. F w iu M) delimsutf8utf16stringlongnonasciicolwidthmixedfloatint)paramsc <|j}|dk(rtddgddgdS|dk(rtdd gd d gdS|d k(rtd d gddgdS|dk(rSttjt dDcgc]}d| c}j ddt dS|dk(rUtd}ttjjdjdd|dzdft dS|dk(r*tdjdjd S|d!k(ratd"dz}ttjt dDcgc]}d#|z c}j ddt dS|d$k(r`ttjd%d&d'ztjdd(jtjt d)d*S|d+k(rBttjjdjd,t dS|d-k(rDttjjdjddd,t dStcc}wcc}w).Nrz"a, "b|czd ef`zhi'jzk''lm)abruµasduΩœ∑`u øπ∆˚¬uœ∑`®ru👍👍abcdefrzi-)columnsrzdisplay.max_rowsr )sizerz in Englishu en español)enesrzdisplay.max_colwidthxr?g@g{Gz?abcde)r#r$cr)r(r)r )paramrnparrayrangereshapelistr random default_rngintegerssplitarangeastypeint64 ValueError)request data_typeimax_rows_cw_s rdfrJ%st IH X6fg=NOPP f 4M:;VWXX g )+AB%QV X   h  HHb 211#h2 3 ; ;Aq A4PU;   f 01 II ! !! $ - -a8a<:K - LK   j  2 2 4M._mock_win_errorgsrzctypes.WinErrorF)raisingN)contextsetattr) monkeypatchrMms r mock_ctypesrSasE     ! #_e D sA8 AAArScd}|jddd|jd}tjt|5t |dddy#1swYyxYw)z Give CheckCall a function that returns a falsey value and mock get_errno so it returns false so an exception is raised. cyNFrrrr _return_falsez6test_checked_call_with_bad_call.._return_falsewsrpandas.io.clipboard.get_errnocyNTrrrrz1test_checked_call_with_bad_call..zrzError calling z \(Window Error\)matchN)rP__name__pytestraisesrr )rQrWmsgs rtest_checked_call_with_bad_callrcpsa7F =1122E FC 0 <%" M"$%%%s AA%c\d}|jddt|}|dusJy)z Give CheckCall a function that returns a truthy value and mock get_errno so it returns true so an exception is not raised. The function should return the results from _return_true. cyrZrrrr _return_truez7test_checked_call_with_valid_call.._return_truesrrXcyrVrrrrr[z3test_checked_call_with_valid_call..r\rTN)rPr )rQrf checked_calls r!test_checked_call_with_valid_callris67G|,L >T !! !rtext) String_testTr-r2y?c&ttttf}t ||rt |}|t|k(sJydt |j}tjt|5t |dddy#1swYyxYw)NzJonly str, int, float, and bool values can be copied to the clipboard, not r]) strr rbool isinstancer typer_r`rar)rj valid_typesresultrbs rtest_stringify_textrssUD)K$ $%T""" 337:3F3F2G I ]]-S 9 ! 4  ! ! !s 2 BBc#$Kt\}}|j5}|jtjj d||jtjj d|ddddy#1swYyxYww)N clipboard_set clipboard_get)r rOrPpdio clipboard)rQqt_cutqt_pasterRs rset_pyqt_clipboardr|sh(*FH    ! "%%//?F; "%%//?H= sBAB; BB  Bc#TK|j}||jyw)N)ryclear)qappclips rryrys >> D JJJLs&(r|ryceZdZejj dgdejj dgddZdZdZdZ ejj dgd ejj d gd d Z ejj dd dgdZ dZ dZ ejj ddjgdgdgdgdgfdjgdgdgdgfgdZdZejj dgddZejj ddd gd!Zd"Zd#Zy )$ TestClipboardr)N ,|encoding)NzUTF-8zutf-8rc||jd||t|xsdd|}tj||y)N)rrrrr)r index_colr) to_clipboardr tmassert_frame_equal)selfrJrrrrs rtest_round_trip_frame_sepz'TestClipboard.test_round_trip_frame_seps8 dh?CK41xP b&)rc|jddt}|j|jk(sJ|j|jk(sJy)NFrr)rr to_stringshape)rrJrrs rtest_round_trip_frame_stringz*TestClipboard.test_round_trip_frame_stringsM e.!||~!1!1!3333xx6<<'''rctjtdd5|jdddddy#1swYyxYw)NzAto_clipboard in excel mode requires a single character separator.F)r^check_stacklevelTz\tr)rassert_produces_warning UserWarningrrrJs rtest_excel_sep_warningz$TestClipboard.test_excel_sep_warnings@  ' ' U"  3 OO$EO 2  3 3 3s :Ac|tj5|jdddddy#1swYyxYw)NFrr)rrrrs rtest_copy_delim_warningz%TestClipboard.test_copy_delim_warnings3  ' ' ) 3 OO%TO 2 3 3 3s2;)rNrr)TNrct||}|jdi||j|jdk(sJy)Nrrr)rrrjto_csv)rrrrJryrs r test_clipboard_copy_tabs_defaultz.TestClipboard.test_clipboard_copy_tabs_defaultsAc5)!&!~~2999#6666rNrct|d}|jdi|td}|j|jk(sJ|j|jk(sJy)NFz\s+rr)rrr rr)rrrJrrrs rtest_clipboard_copy_stringsz)TestClipboard.test_clipboard_copy_stringss\c5)!&!F+!R\\^333xx6<<'''rcddi}tdj}|j|tdi|}|jddk(sJtdj}|j|tdi|}tdj}|j|tdi|}t j ||y) Nenginepythonz^ John James Charlie Mingus 1 2 4 Harry Carney )r-r-z Harry Carneyz@ a b 1 2 3 4 z@ a b 1 2 3 4 r)rstripsetTextr ilocrr)rry clip_kwargsrjrJresexps rtest_read_clipboard_infer_excelz-TestClipboard.test_read_clipboard_infer_excels*     $  *k *wwt}...    $+{+    $+{+ c3'rcd}|j|t}tgdgdd}tj||y)Nzcol1 col2 1 red blue 2 greenr-Nr+redbluegreencol1col2)datarr rrr)rryrjrJ df_expecteds rtest_infer_excel_with_nullsz)TestClipboard.test_infer_excel_with_nullssB5$  &0HI b+.r multiindex )z col1 col2zA 0 True 1 redzA 1 True bluezB 0 False 2 green)ArB)rr-r)TTF)z col1 col2z A 0 1 redz A 1 bluez B 0 2 greenc|j|dt}tgdgdd|d}tj||y)Nrrrrr-)rindexr)rryrrJrs r test_infer_excel_with_multiindexz.TestClipboard.test_infer_excel_with_multiindex'sJ2 *Q-(  &0HIQ- b+.rcd}tjt|5|jddddtjt|5t ddddy#1swY:xYw#1swYyxYw)Nz&clipboard only supports utf-8 encodingr]ascii)r)r`rarCrNotImplementedErrorr rrJrbs rtest_invalid_encodingz#TestClipboard.test_invalid_encodingJsi6 ]]:S 1 . OOWO - . ]].c : - G , - - . . - -sA* A6*A36A?r)u👍...u Ωœ∑`...zabcd...ctd|gi}|jt}tj||y)Nr)rrr rr)rrrJrrs rtest_raw_roundtripz TestClipboard.test_raw_roundtripRs7' ( ! b&)rrr5rcf|dk(rgtjd}|dk(r)|dk(r$tj|j }n9tj|j }ntj |}d}|j|tjd|5td||} dddttddg| td d gd td dgd tddg| td tgd td tgd tttgd tddgd tdtgd d } |dk(r`ddl m} t| jD cic]} | | j!| | d!c} } | j!ddg| d<|rC| jj#tj |t$j&| _t)j* | y#1swYixYwcc} w)Npyarrowr5z@a,b,c,d,e,f,g,h,i x,1,4.0,x,2,4.0,,True,False y,2,5.0,,,,,False,zmode.string_storager)r dtype_backendrr1y)dtyper-r+Int64g@g@Float64TFboolean) r#r$r5defghrFr)ArrowExtensionArray) from_pandasr)na_value)r` importorskiprw ArrowDtype large_stringr StringDtyperoption_contextr rrr pandas.arraysrr*r8rAr7nanrr) rrystring_storagerrusing_infer_stringpa string_dtyperjrrexpectedrcols r!test_read_clipboard_dtype_backendz/TestClipboard.test_read_clipboard_dtype_backendZs I %$$Y/B}9!<!}}R__->? !}}RYY[9 >>.9L $   4n E Y#=QWXF YS#Jl;QF'2S#Ji8S$K|<QG73S"IY7RHG4T5M;UBKy9    I % 9  (//,RXXhsmQUX-VWWH 0$0FGHSM '//66~? H  fh/A Y Y(s+H!>$H.!H+cd}tjt|5tddddy#1swYyxYw)NzPdtype_backend numpy is invalid, only 'numpy_nullable' and 'pyarrow' are allowed.r]numpy)r)r`rarCr )rrbs rtest_invalid_dtype_backendz(TestClipboard.test_invalid_dtype_backends9 % ]]:S 1 2  1 2 2 2s 4=ctdgdi}d}tjt|5|j dddddy#1swYyxYw)Nr#)r-r+r)zTStarting with pandas version 3.0 all arguments of to_clipboard will be keyword-only.r]T)rrr FutureWarningrrs r&test_to_clipboard_pos_args_deprecationz4TestClipboard.test_to_clipboard_pos_args_deprecationsP Y' ( %  ' ' S A ( OOD$ ' ( ( (s A  A)r_ __module__ __qualname__r`mark parametrizerrrrrrrrjoinrrrrrrrrrrrs [[U$:; [[Z)IJ*K<* (33  [[U$;< [[W&=>7?=7  [[UT9$56(7(&(P / [[ !)-@A  X!),   , /-, /- [[V%PQ*R* [[XX730830j2(rr)$textwraprrr7r` pandas.errorsrrpandasrwrrrr r pandas._testing_testingrpandas.io.clipboardr r r rfixturerJrSr usefixturesrcrirrsr|ry single_cpurrrrrs{    + +\  ' %( % '"(""   !  ! -.%`(`(&/`(r