
    Mh3                        S SK Jr  S SKrS SKrS SKJrJr  S SKr	S SKJ
r
JrJrJrJr  S SKJr  S SKJrJr  S SKJrJrJr  S r\R4                  " / SQS	9S
 5       r\R4                  S 5       r\R:                  R=                  S5      S 5       r\R:                  R=                  S5      S 5       r \R:                  RC                  S/ SQ5      S 5       r"\R4                  S 5       r#\R4                  S 5       r$\R:                  RJ                  \R:                  RH                  \R:                  R=                  S5      \R:                  R=                  S5       " S S5      5       5       5       5       r&g)    )dedentN)PyperclipExceptionPyperclipWindowsException)NA	DataFrameSeries
get_optionread_clipboard)ArrowStringArrayStringArray)CheckedCall_stringifyTextinit_qt_clipboardc                 2    0 nUS:w  a  XS'   U S:w  a  XS'   U$ )Ndefaultexcelsep )r   r   kwargss      P/var/www/html/env/lib/python3.13/site-packages/pandas/tests/io/test_clipboard.pybuild_kwargsr       s*    F	w
iuM    )
delimsutf8utf16stringlongnonasciicolwidthmixedfloatint)paramsc           	      @   U R                   nUS:X  a  [        SS/SS/S.5      $ US:X  a  [        SS	/S
S/S.5      $ US:X  a  [        SS/SS/S.5      $ US:X  aT  [        [        R                  " [	        S5       Vs/ s H  nSU 3PM
     sn5      R                  SS5      [        S5      S9$ US:X  aO  [        S5      n[        [        R                  R                  S5      R                  SSUS-   S4S9[        S5      S9$ US:X  a*  [        SR                  5       SR                  5       S .5      $ US!:X  ab  [        S"5      S-   n[        [        R                  " [	        S5       Vs/ s H  nS#U-  PM
     sn5      R                  SS5      [        S5      S9$ US$:X  ab  [        [        R                  " S%S&5      S'-   [        R                  " SS(5      R                  [        R                  5      [        S)5      S*.5      $ US+:X  a?  [        [        R                  R                  S5      R                  S,5      [        S5      S9$ US-:X  aA  [        [        R                  R                  S5      R                  SSS,5      [        S5      S9$ [        es  snf s  snf ).Nr   z"a,	"b|czd	ef`zhi'jzk''lm)abr   u   µasdu   Ωœ∑`u   øπ∆˚¬u   œ∑`®r   u   👍👍abcdefr      zi-      )columnsr   zdisplay.max_rows   r   
      )sizer   z
in Englishu   en español)enesr   zdisplay.max_colwidthxr          ?g      @g{Gz?   abcde)r%   r&   cr!   )r*   r+   r"   )paramr   nparrayrangereshapelistr	   randomdefault_rngintegerssplitarangeastypeint64
ValueError)request	data_typeimax_rows_cw_s         r   dfrL   )   s|    IHX6fg=NOPP	f	4M:;VWXX	g	)+AB%QVX
 	
 
h	HHb	2	11#h	23;;AqA4PU;
 	
 
f	01II!!!$--a8a<:K-LK
 	
 
j	  2 2 4M<O<O<QRSS	j	 /014HHr3AcCi34<<QBDQVK
 	
 
g	YYsC(4/YYq!_++BHH5']
 	
 
g	..q188@$u+VV	e	II!!!$--aV<d5k
 	
 = 3 4s   =J*Jc              #      #    S nU R                  5        nUR                  SUSS9  Sv   SSS5        g! , (       d  f       g= f7f)z4
Mocks WinError to help with testing the clipboard.
c                      g)NzWindow Errorr   r   r   r   _mock_win_error$mock_ctypes.<locals>._mock_win_errork   s    r   zctypes.WinErrorF)raisingN)contextsetattr)monkeypatchrO   ms      r   mock_ctypesrV   e   s;      
			!			#_e	D 
		s   A5	A
AArV   c                     S nU R                  SS 5        SUR                   S3n[        R                  " [        US9   [        U5      " 5         SSS5        g! , (       d  f       g= f)zy
Give CheckCall a function that returns a falsey value and
mock get_errno so it returns false so an exception is raised.
c                      gNFr   r   r   r   _return_false6test_checked_call_with_bad_call.<locals>._return_false{   s    r   pandas.io.clipboard.get_errnoc                      gNTr   r   r   r   <lambda>1test_checked_call_with_bad_call.<locals>.<lambda>~   s    r   zError calling z \(Window Error\)matchN)rS   __name__pytestraisesr   r   )rT   rZ   msgs      r   test_checked_call_with_bad_callrg   t   sV     7F=1122E
FC	0	<M"$ 
=	<	<s    A
A(c                 ^    S nU R                  SS 5        [        U5      nU" 5       SL d   eg)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.
c                      gr^   r   r   r   r   _return_true7test_checked_call_with_valid_call.<locals>._return_true   s    r   r\   c                      grY   r   r   r   r   r_   3test_checked_call_with_valid_call.<locals>.<lambda>   s    r   TN)rS   r   )rT   rj   checked_calls      r   !test_checked_call_with_valid_callro      s6     7G |,L>T!!!r   text)String_testTr/   r4   y              ?c                 6   [         [        [        [        4n[	        X5      (       a  [        U 5      nU[        U 5      :X  d   eg S[        U 5      R                   3n[        R                  " [        US9   [        U 5        S S S 5        g ! , (       d  f       g = f)NzJonly str, int, float, and bool values can be copied to the clipboard, not ra   )strr"   r!   bool
isinstancer   typerc   rd   re   r   )rp   valid_typesresultrf   s       r   test_stringify_textry      s~     UD)K$$$%T"""337:3F3F2GI 	 ]]-S94  :99s   5B


Bc              #   ,  #    [        5       u  pU R                  5        nUR                  [        R                  R
                  SU5        UR                  [        R                  R
                  SU5        S v   S S S 5        g ! , (       d  f       g = f7f)Nclipboard_setclipboard_get)r   rR   rS   pdio	clipboard)rT   qt_cutqt_pasterU   s       r   set_pyqt_clipboardr      s\     (*F				!			"%%//?F;			"%%//?H= 
		s   BAB:	B
BBc              #   T   #    U R                  5       nUv   UR                  5         g 7f)N)r   clear)qappclips     r   r   r      s     >>D
JJJLs   &(r   r   c                      \ rS rSr\R
                  R                  S/ SQ5      \R
                  R                  S/ SQ5      S 5       5       rS rS r	S	 r
\R
                  R                  S/ S
Q5      \R
                  R                  S/ SQ5      S 5       5       r\R
                  R                  SSS/5      S 5       rS rS r\R
                  R                  SSR                  / SQ5      / SQ/ SQ/ SQ/4SR                  / SQ5      / SQ/ SQ/4/5      S 5       rS r\R
                  R                  S/ SQ5      S 5       r\R
                  R                  SS S!/5      S" 5       rS# rS$ rS%rg)&TestClipboard   r   )N	,|encoding)NzUTF-8zutf-8r   c                 x    UR                  S X#S9  [        U=(       d    SSUS9n[        R                  " X5        g )N)r   r   r   r   r   )r   	index_colr   )to_clipboardr
   tmassert_frame_equal)selfrL   r   r   rx   s        r   test_round_trip_frame_sep'TestClipboard.test_round_trip_frame_sep   s4     	d?CK41xP
b)r   c                     UR                  SS S9  [        5       nUR                  5       UR                  5       :X  d   eUR                  UR                  :X  d   eg )NFr   r   )r   r
   	to_stringshape)r   rL   rx   s      r   test_round_trip_frame_string*TestClipboard.test_round_trip_frame_string   sM    
e.!||~!1!1!3333xx6<<'''r   c                     [         R                  " [        SSS9   UR                  SSS9  S S S 5        g ! , (       d  f       g = f)NzAto_clipboard in excel mode requires a single character separator.F)rb   check_stacklevelTz\tr   )r   assert_produces_warningUserWarningr   r   rL   s     r   test_excel_sep_warning$TestClipboard.test_excel_sep_warning   s;    ''U"

 OO$EO2
 
 
s	   5
Ac                     [         R                  " 5          UR                  SSS9  S S S 5        g ! , (       d  f       g = f)NFr   r   )r   r   r   r   s     r   test_copy_delim_warning%TestClipboard.test_copy_delim_warning   s*    '')OO%TO2 *))s   0
>)r   Nr   r   )TNr   c                     [        X5      nUR                  " S0 UD6  UR                  5       UR                  SS9:X  d   eg )Nr   r   r   )r   r   rp   to_csv)r   r   r   rL   r   r   s         r    test_clipboard_copy_tabs_default.TestClipboard.test_clipboard_copy_tabs_default   s=     c)
!&!~~2999#6666r   Nr   c                     [        US5      nUR                  " S0 UD6  [        SS9nUR                  5       UR                  5       :X  d   eUR                  UR                  :X  d   eg )NFz\s+r   r   )r   r   r
   r   r   )r   r   rL   r   rx   s        r   test_clipboard_copy_strings)TestClipboard.test_clipboard_copy_strings   sZ    c5)
!&!F+!R\\^333xx6<<'''r   c                    SS0n[        SR                  5       5      nUR                  U5        [        S0 UD6nUR                  S   S:X  d   e[        SR                  5       5      nUR                  U5        [        S0 UD6n[        SR                  5       5      nUR                  U5        [        S0 UD6n[
        R                  " XV5        g )	Nenginepythonz^
            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   )r   stripsetTextr
   ilocr   r   )r   r   clip_kwargsrp   rL   resexps          r   test_read_clipboard_infer_excel-TestClipboard.test_read_clipboard_infer_excel   s    * 
 	$*k* wwt}...  
 	$+{+ 
 	$+{+
c'r   c                     SnUR                  U5        [        5       n[        / SQ/ SQS.S9n[        R                  " X45        g )Nzcol1	col2
1	red
	blue
2	greenr/   Nr-   redbluegreencol1col2)datar   r
   r   r   r   )r   r   rp   rL   df_expecteds        r   test_infer_excel_with_nulls)TestClipboard.test_infer_excel_with_nulls  s@    5$&0HI

 	b.r   
multiindex
)z			col1	col2zA	0	True	1	redzA	1	True		bluezB	0	False	2	green)Ar   B)r   r/   r   )TTF)z		col1	col2z	A	0	1	redz	A	1		bluezB	0	2	greenc                     UR                  US   5        [        5       n[        / SQ/ SQS.US   S9n[        R                  " X45        g )Nr   r   r   r   r/   )r   indexr   )r   r   r   rL   r   s        r    test_infer_excel_with_multiindex.TestClipboard.test_infer_excel_with_multiindex+  sH    2 	*Q-(&0HIQ-
 	b.r   c                    Sn[         R                  " [        US9   UR                  SS9  S S S 5        [         R                  " [        US9   [        SS9  S S S 5        g ! , (       d  f       N:= f! , (       d  f       g = f)Nz&clipboard only supports utf-8 encodingra   ascii)r   )rd   re   rE   r   NotImplementedErrorr
   r   rL   rf   s      r   test_invalid_encoding#TestClipboard.test_invalid_encodingN  sW    6]]:S1OOWO- 2]].c:G, ;: 21::s   A 
A1 
A.1
A?r   )u   👍...u   Ωœ∑`...zabcd...c                     [        SU/05      nUR                  5         [        5       n[        R                  " X#5        g )Nr   )r   r   r
   r   r   )r   r   rL   rx   s       r   test_raw_roundtrip TestClipboard.test_raw_roundtripV  s5     '(
!
b)r   r   r7   r   c                    US:X  d  US:X  a  [         R                  " S5      nUS:X  aa  [        [        R                  " SS/[        R
                  S95      n[        [        R                  " S[        /[        R
                  S95      nOUS:X  aU  US:w  aO  [         R                  " S5      nSSKJn  U" UR	                  SS/5      5      nU" UR	                  SS /5      5      nO8[        WR	                  SS/5      5      n[        UR	                  SS /5      5      nS	n	UR                  U	5        [        R                  " S
U5         [        SX4S9n
S S S 5        [        U[        SS/SS9[        SS/SS9U[        S[        /SS9[        S[        /SS9[        [        [        /SS9[        SS/SS9[        S[        /SS9S.	5      nUS:X  a^  SSKJn  [        UR                    Vs0 s H  nX" WR	                  X   SS95      _M     sn5      nU" WR	                  S S /5      5      US'   ["        R$                  " W
U5        g ! , (       d  f       N= fs  snf )Npyarrowr   r3   y)dtyper7   r   )ArrowExtensionArrayz@a,b,c,d,e,f,g,h,i
x,1,4.0,x,2,4.0,,True,False
y,2,5.0,,,,,False,zmode.string_storager   )r   dtype_backendr   r/   r-   Int64g      @g      @Float64TFboolean)	r%   r&   r7   defghrH   )from_pandasr   )rd   importorskipr   r9   r:   object_r   pandas.arraysr   r   r   r}   option_contextr
   r   r   r,   r   r   )r   r   string_storager   r   pastring_arraystring_array_nar   rp   rx   expectedcols                r   !test_read_clipboard_dtype_backend/TestClipboard.test_read_clipboard_dtype_backend^  s'   
 Y&-9*D$$Y/BX%&rxxc
"**'MNL)"((C9BJJ*OPOi'FcM$$Y/B9.rxxc
/CDL1"((C;2GHO ,BHHc3Z,@AL.rxxd/DEO 	$4nE#=XF F !QF'2S#Ji8$QG73S"IY7RHG4T5M;UBKy9

 I%9   (/// ,RXXhmQUX-VWW/H 0$0FGHSM
fh/7 FE(s   I("I
Ic                     Sn[         R                  " [        US9   [        SS9  S S S 5        g ! , (       d  f       g = f)NzPdtype_backend numpy is invalid, only 'numpy_nullable' and 'pyarrow' are allowed.ra   numpy)r   )rd   re   rE   r
   )r   rf   s     r   test_invalid_dtype_backend(TestClipboard.test_invalid_dtype_backend  s0    % 	 ]]:S11 211s   
/
=c                     [        S/ SQ05      nSn[        R                  " [        US9   UR	                  SS 5        S S S 5        g ! , (       d  f       g = f)Nr%   )r/   r-   r+   zTStarting with pandas version 3.0 all arguments of to_clipboard will be keyword-only.ra   T)r   r   r   FutureWarningr   r   s      r   &test_to_clipboard_pos_args_deprecation4TestClipboard.test_to_clipboard_pos_args_deprecation  sH    Y'(% 	 ''SAOOD$' BAAs   A
Ar   )rc   
__module____qualname____firstlineno__rd   markparametrizer   r   r   r   r   r   r   r   joinr   r   r   r   r   r   __static_attributes__r   r   r   r   r      s    [[U$:;[[Z)IJ* K <*(33 [[U$;<[[W&=>7 ? =7 [[UT9$56( 7(&(P/ [[ 		 !)-@A
 		X !),		
,/-,/- [[V%PQ* R* [[XX760 860p2(r   r   )'textwrapr   r   r9   rd   pandas.errorsr   r   pandasr}   r   r   r   r	   r
   pandas._testing_testingr   pandas.core.arraysr   r   pandas.io.clipboardr   r   r   r   fixturerL   rV   r   usefixturesrg   ro   r   ry   r   r   
single_cpur   r   r   r   <module>r     s~     
   
  ++\   '% (%  '" ("" 
	!	!     -.%c( c( & /  c(r   