Ë
    ômxi$3  ã                   óØ  — d dl mZ d dlZd dlZd dlmZmZ d dlZ	d dlm
Z
mZmZmZmZ d dlmZ d dlmZmZmZ d„ Z ej.                  g d¢¬«      d	„ «       Zej.                  d
„ «       Zej4                  j7                  d«      d„ «       Zej4                  j7                  d«      d„ «       Zej4                  j=                  dg d¢«      d„ «       Zej.                  d„ «       Z ej.                  d„ «       Z!ej4                  jD                  ej4                  jB                  ej4                  j7                  d«      ej4                  j7                  d«       G d„ d«      «       «       «       «       Z#y)é    )ÚdedentN)ÚPyperclipExceptionÚPyperclipWindowsException)ÚNAÚ	DataFrameÚSeriesÚ
get_optionÚread_clipboard)ÚCheckedCallÚ_stringifyTextÚinit_qt_clipboardc                 ó2   — i }|dk7  r||d<   | dk7  r| |d<   |S )NÚdefaultÚexcelÚsep© )r   r   Úkwargss      úU/home/htdocs/ttos/venv/lib/python3.12/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           	      ó<  — | j                   }|dk(  rt        ddgddgdœ«      S |dk(  rt        dd	gd
dgdœ«      S |dk(  rt        ddgddgdœ«      S |dk(  rSt        t        j                  t	        d«      D �cg c]  }d|› �‘Œ	 c}«      j                  dd«      t        d«      ¬«      S |dk(  rUt        d«      }t        t        j                  j                  d«      j                  dd|dz   df¬«      t        d«      ¬«      S |dk(  r*t        dj                  «       dj                  «       d œ«      S |d!k(  rat        d"«      dz   }t        t        j                  t	        d«      D �cg c]  }d#|z  ‘Œ	 c}«      j                  dd«      t        d«      ¬«      S |d$k(  r`t        t        j                  d%d&«      d'z   t        j                  dd(«      j                  t        j                  «      t        d)«      d*œ«      S |d+k(  rBt        t        j                  j                  d«      j                  d,«      t        d«      ¬«      S |d-k(  rDt        t        j                  j                  d«      j                  ddd,«      t        d«      ¬«      S t        ‚c c}w c c}w ).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{®Gáz„?é   Ú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   ÚdfrJ   %   st  € ð —‘€Ià�HÒÜ ¨XÐ6¸fÀgÐ=NÑOÓPÐPØ	�fÒ	Ü ¨Ð4¸MÈ:Ð;VÑWÓXÐXØ	�gÒ	ÜØ)Ð+AÐBÈ%ÐQVÈÑXó
ð 	
ð 
�hÒ	ÜÜ�H‰H¬¨b«	Ö2 1˜˜1˜#’hÒ2Ó3×;Ñ;¸A¸qÓAÌ4ÐPUË;ô
ð 	
ð 
�fÒ	ÜÐ0Ó1ˆÜÜ�I‰I×!Ñ! !Ó$×-Ñ-¨a°¸8Àa¹<ÈÐ:KÐ-ÓLÜ˜“Kô
ð 	
ð 
�jÒ	 Ü × 2Ñ 2Ó 4¸M×<OÑ<OÓ<QÑRÓSÐSØ	�jÒ	 ÜÐ/Ó0°1Ñ4ˆÜÜ�H‰H¬¨r«Ö3 A�c˜C“iÒ3Ó4×<Ñ<¸QÀÓBÌDÐQVËKô
ð 	
ð 
�gÒ	Üä—Y‘Y˜s CÓ(¨4Ñ/Ü—Y‘Y˜q !“_×+Ñ+¬B¯H©HÓ5Ü˜'“]ñó
ð 	
ð 
�gÒ	ÜœŸ™×.Ñ.¨qÓ1×8Ñ8¸Ó@Ì$ÈuË+ÔVÐVØ	�eÒ	ÜÜ�I‰I×!Ñ! !Ó$×-Ñ-¨a°°VÓ<ÄdÈ5Ãkô
ð 	
ô Ðùò= 3ùò 4s   Á8JÅ'Jc              #   óŒ   K  — d„ }| j                  «       5 }|j                  d|d¬«       d–— ddd«       y# 1 sw Y   yxY w­w)z<
    Mocks WinError to help with testing the clipboard.
    c                   ó   — y)NzWindow Errorr   r   r   r   Ú_mock_win_errorz$mock_ctypes.<locals>._mock_win_errorg   s   € Ør   zctypes.WinErrorF)ÚraisingN)ÚcontextÚsetattr)ÚmonkeypatchrM   Úms      r   Úmock_ctypesrS   a   sE   è ø€ òð 
×	Ñ	Ó	ð  !Ø	�	‰	Ð# _¸eˆ	ÔDÛ÷÷ ñ üs   ‚A–8¯	A¸A½ArS   c                 óÐ   — d„ }| j                  dd„ «       d|j                  › d�}t        j                  t        |¬«      5   t        |«      «        ddd«       y# 1 sw Y   yxY w)z…
    Give CheckCall a function that returns a falsey value and
    mock get_errno so it returns false so an exception is raised.
    c                   ó   — y©NFr   r   r   r   Ú_return_falsez6test_checked_call_with_bad_call.<locals>._return_falsew   s   € Ør   úpandas.io.clipboard.get_errnoc                   ó   — y©NTr   r   r   r   ú<lambda>z1test_checked_call_with_bad_call.<locals>.<lambda>z   ó   � r   zError calling z \(Window Error\)©ÚmatchN)rP   Ú__name__ÚpytestÚraisesr   r   )rQ   rW   Úmsgs      r   Útest_checked_call_with_bad_callrc   p   sa   € òð ×ÑÐ7¹ÔFØ˜=×1Ñ1Ð2Ð2EÐ
F€Cä	�‰Ô0¸Ô	<ñ %Ø"Œ�MÓ"Ô$÷%÷ %ñ %ús   ÁAÁA%c                 ó\   — d„ }| j                  dd„ «       t        |«      } |«       du sJ ‚y)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                   ó   — yrZ   r   r   r   r   Ú_return_truez7test_checked_call_with_valid_call.<locals>._return_true‰   s   € Ør   rX   c                   ó   — yrV   r   r   r   r   r[   z3test_checked_call_with_valid_call.<locals>.<lambda>Œ   r\   r   TN)rP   r   )rQ   rf   Úchecked_calls      r   Ú!test_checked_call_with_valid_callri   �   s6   € òð ×ÑÐ7¹ÔGô ˜|Ó,€LÙ‹>˜TÑ!Ð!Ñ!r   Útext)ÚString_testTr-   r2   y              ð?c                 ó&  — t         t        t        t        f}t	        | |«      rt        | «      }|t        | «      k(  sJ ‚y dt        | «      j                  › �}t        j                  t        |¬«      5  t        | «       d d d «       y # 1 sw Y   y xY w)NzJonly str, int, float, and bool values can be copied to the clipboard, not r]   )Ústrr    r   ÚboolÚ
isinstancer   Útyper_   r`   ra   r   )rj   Úvalid_typesÚresultrb   s       r   Útest_stringify_textrs   “   s†   € ô œœU¤DÐ)€Kä�$˜Ô$Ü Ó%ˆØœ˜T›Ò"Ð"Ñ"ð3Ü37¸³:×3FÑ3FÐ2GðIð 	ô �]‰]Ô-°SÔ9ñ 	!Ü˜4Ô ÷	!÷ 	!ñ 	!ús   Á2BÂBc              #   ó$  K  — t        «       \  }}| j                  «       5 }|j                  t        j                  j
                  d|«       |j                  t        j                  j
                  d|«       d –— d d d «       y # 1 sw Y   y xY w­w)NÚclipboard_setÚclipboard_get)r   rO   rP   ÚpdÚioÚ	clipboard)rQ   Úqt_cutÚqt_pasterR   s       r   Úset_pyqt_clipboardr|   ¬   sh   è ø€ ä(Ó*Ñ€FˆHØ	×	Ñ	Ó	ð  !Ø	�	‰	”"—%‘%—/‘/ ?°FÔ;Ø	�	‰	”"—%‘%—/‘/ ?°HÔ=Û÷÷ ñ üs   ‚B ABÁ;	BÂBÂ	Bc              #   óT   K  — | j                  «       }|–— |j                  «        y ­w)N)ry   Úclear)ÚqappÚclips     r   ry   ry   µ   s    è ø€ à�>‰>Ó€DØ
‚JØ‡J�J…Lùs   ‚&(r|   ry   c                   óÚ  — e Zd Zej                  j                  dg d¢«      ej                  j                  dg d¢«      d„ «       «       Zd„ Zd„ Zd„ Z	ej                  j                  dg d	¢«      ej                  j                  d
g d¢«      d„ «       «       Z
ej                  j                  dddg«      d„ «       Zd„ Zd„ Zej                  j                  ddj                  g d¢«      g d¢g d¢g d¢gfdj                  g d¢«      g d¢g d¢gfg«      d„ «       Zd„ Zej                  j                  dg d¢«      d„ «       Zej                  j                  ddd g«      d!„ «       Zd"„ Zd#„ Zy)$ÚTestClipboardr   )Nú	ú,ú|Úencoding)NzUTF-8zutf-8r   c                 ó|   — |j                  d ||¬«       t        |xs dd|¬«      }t        j                  ||«       y )N)r   r   r†   rƒ   r   )r   Ú	index_colr†   )Úto_clipboardr
   ÚtmÚassert_frame_equal)ÚselfrJ   r   r†   rr   s        r   Útest_round_trip_frame_sepz'TestClipboard.test_round_trip_frame_sepÃ   s8   € ð 	�‰˜d¨°hˆÔ?Ü C¢K¨4¸1ÀxÔPˆÜ
×Ñ˜b &Õ)r   c                 óº   — |j                  dd ¬«       t        «       }|j                  «       |j                  «       k(  sJ ‚|j                  |j                  k(  sJ ‚y )NF©r   r   )r‰   r
   Ú	to_stringÚshape)rŒ   rJ   rr   s      r   Útest_round_trip_frame_stringz*TestClipboard.test_round_trip_frame_stringË   sM   € Ø
�‰˜e¨ˆÔ.ÜÓ!ˆØ�|‰|‹~ ×!1Ñ!1Ó!3Ò3Ð3Ð3Ø�x‰x˜6Ÿ<™<Ò'Ð'Ñ'r   c                 óŒ   — t        j                  t        dd¬«      5  |j                  dd¬«       d d d «       y # 1 sw Y   y xY w)NzAto_clipboard in excel mode requires a single character separator.F)r^   Úcheck_stacklevelTz\tr�   )rŠ   Úassert_produces_warningÚUserWarningr‰   ©rŒ   rJ   s     r   Útest_excel_sep_warningz$TestClipboard.test_excel_sep_warningÓ   s@   € Ü×'Ñ'ÜØUØ"ô
ñ 	3ð
 �O‰O $¨EˆOÔ2÷	3÷ 	3ñ 	3ús	   �:ºAc                 ó|   — t        j                  «       5  |j                  dd¬«       d d d «       y # 1 sw Y   y xY w)NFrƒ   r�   )rŠ   r•   r‰   r—   s     r   Útest_copy_delim_warningz%TestClipboard.test_copy_delim_warningÜ   s3   € Ü×'Ñ'Ó)ñ 	3Ø�O‰O %¨TˆOÔ2÷	3÷ 	3ñ 	3ús   •2²;)rƒ   Nr   r   )TNr   c                 óŠ   — t        ||«      } |j                  di |¤Ž |j                  «       |j                  d¬«      k(  sJ ‚y )Nrƒ   ©r   r   )r   r‰   rj   Úto_csv)rŒ   r   r   rJ   ry   r   s         r   Ú test_clipboard_copy_tabs_defaultz.TestClipboard.test_clipboard_copy_tabs_defaultâ   sA   € ô ˜c 5Ó)ˆØˆ�‰Ñ!˜&Ò!Ø�~‰~Ó 2§9¡9° 9Ó#6Ò6Ð6Ñ6r   Nr   c                 óÔ   — t        |d«      } |j                  di |¤Ž t        d¬«      }|j                  «       |j                  «       k(  sJ ‚|j                  |j                  k(  sJ ‚y )NFz\s+rœ   r   )r   r‰   r
   r�   r‘   )rŒ   r   rJ   r   rr   s        r   Útest_clipboard_copy_stringsz)TestClipboard.test_clipboard_copy_stringsê   s\   € ä˜c 5Ó)ˆØˆ�‰Ñ!˜&Ò!Ü FÔ+ˆØ×ÑÓ! R§\¡\£^Ò3Ð3Ð3Ø�x‰x˜6Ÿ<™<Ò'Ð'Ñ'r   c                 óž  — ddi}t        dj                  «       «      }|j                  |«       t        di |¤Ž}|j                  d   dk(  sJ ‚t        dj                  «       «      }|j                  |«       t        di |¤Ž}t        dj                  «       «      }|j                  |«       t        di |¤Ž}t        j                  ||«       y )	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Œ   ry   Úclip_kwargsrj   rJ   ÚresÚexps          r   Útest_read_clipboard_infer_excelz-TestClipboard.test_read_clipboard_infer_excelò   sÕ   € à Ð*ˆäð÷ ‘“ó
ˆð 	×Ñ˜$ÔÜÑ*˜kÑ*ˆð �w‰w�t‰} Ò.Ð.Ð.ô ð÷ ‘“ó
ˆð 	×Ñ˜$ÔÜÑ+˜{Ñ+ˆäð÷ ‘“ó
ˆð 	×Ñ˜$ÔÜÑ+˜{Ñ+ˆä
×Ñ˜c 3Õ'r   c                 ó�   — d}|j                  |«       t        «       }t        g d¢g d¢dœ¬«      }t        j                  ||«       y )Nzcol1	col2
1	red
	blue
2	green©r-   Nr+   ©ÚredÚblueÚgreen©Úcol1Úcol2)Údata©r¥   r
   r   rŠ   r‹   )rŒ   ry   rj   rJ   Údf_expecteds        r   Útest_infer_excel_with_nullsz)TestClipboard.test_infer_excel_with_nulls  sB   € à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                 óš   — |j                  |d   «       t        «       }t        g d¢g d¢dœ|d   ¬«      }t        j                  ||«       y )Nr   r¬   r­   r±   r-   )r´   Úindexrµ   )rŒ   ry   r¸   rJ   r¶   s        r   Ú test_infer_excel_with_multiindexz.TestClipboard.test_infer_excel_with_multiindex'  sJ   € ð2 	×Ñ˜* Q™-Ô(ÜÓˆÜÚ&Ò0HÑIØ˜Q‘-ô
ˆô 	×Ñ˜b +Õ.r   c                 ó  — d}t        j                  t        |¬«      5  |j                  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   y xY w)Nz&clipboard only supports utf-8 encodingr]   Úascii)r†   )r`   ra   rC   r‰   ÚNotImplementedErrorr
   ©rŒ   rJ   rb   s      r   Útest_invalid_encodingz#TestClipboard.test_invalid_encodingJ  si   € Ø6ˆä�]‰]œ:¨SÔ1ñ 	.Ø�O‰O WˆOÔ-÷	.ä�]‰]Ô.°cÔ:ñ 	-Ü GÕ,÷	-ð 	-÷	.ð 	.ú÷	-ð 	-ús   žA*ÁA6Á*A3Á6A?r´   )u   ðŸ‘�...u   Î©Å“âˆ‘`...zabcd...c                 ó€   — t        d|gi«      }|j                  «        t        «       }t        j                  ||«       y )Nr´   )r   r‰   r
   rŠ   r‹   )rŒ   r´   rJ   rr   s       r   Útest_raw_roundtripz TestClipboard.test_raw_roundtripR  s7   € ô ˜  Ð'Ó(ˆØ
�‰ÔÜÓ!ˆÜ
×Ñ˜b &Õ)r   r¢   r5   r£   c                 óf  — |dk(  rgt        j                  d«      }|dk(  r)|dk(  r$t        j                  |j	                  «       «      }n9t        j                  |j                  «       «      }nt        j                  |«      }d}|j                  |«       t        j                  d|«      5  t        d||¬«      }	d d d «       t        t        ddg|¬	«      t        d
dgd¬	«      t        ddgd¬	«      t        dd g|¬	«      t        dt        gd¬	«      t        dt        gd¬	«      t        t        t        gd¬	«      t        ddgd¬	«      t        dt        gd¬	«      dœ	«      }
|dk(  r`ddlm} t        |
j                  D �ci c]  }| |j!                  |
|   d¬«      «      “Œ! c}«      }
 |j!                  d d g«      «      |
d<   |rC|
j                  j#                  t        j                  |t$        j&                  ¬«      «      |
_        t)        j*                  	|
«       y # 1 sw Y   �ŒixY wc c}w )NÚpyarrowr5   z@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¢   r1   Úy)Údtyper-   r+   ÚInt64g      @g      @ÚFloat64TFÚboolean)	r#   r$   r5   ÚdÚeÚfÚgÚhrF   r   )ÚArrowExtensionArray)Úfrom_pandasrÑ   )Úna_value)r`   Úimportorskiprw   Ú
ArrowDtypeÚlarge_stringr   ÚStringDtyper¥   Úoption_contextr
   r   r   r   Úpandas.arraysrÓ   r*   r8   rA   r7   ÚnanrŠ   r‹   )rŒ   ry   Ústring_storagerÈ   r¢   Úusing_infer_stringÚpaÚstring_dtyperj   rr   ÚexpectedrÓ   Úcols                r   Ú!test_read_clipboard_dtype_backendz/TestClipboard.test_read_clipboard_dtype_backendZ  sô  € ð
 ˜IÒ%Ü×$Ñ$ YÓ/ˆBØ˜Š} °9Ò!<ä!Ÿ}™}¨R¯_©_Ó->Ó?‘ä!Ÿ}™}¨R¯Y©Y«[Ó9‘äŸ>™>¨.Ó9ˆLðˆð 	×Ñ˜$Ôä×ÑÐ4°nÓEñ 	YÜ#¨¸=ÐQWÔXˆF÷	Yô ä˜S #˜J¨lÔ;Ü˜Q ˜F¨'Ô2Ü˜S #˜J¨iÔ8Ü˜S $˜K¨|Ô<Ü˜Q¤˜G¨7Ô3Ü˜S¤"˜I¨YÔ7ÜœR¤˜H¨GÔ4Ü˜T 5˜M°Ô;Ü˜U¤B˜K¨yÔ9ñ
ó
ˆð ˜IÒ%Ý9ä ð  (×/Ñ/öàð Ñ,¨R¯X©X°h¸s±mÐQU¨XÓ-VÓWÑWòóˆHñ 0°·±¸$À¸Ó0FÓGˆH�S‰MáØ'×/Ñ/×6Ñ6Ü—‘˜~¼¿¹Ô?ó ˆHÔô 	×Ñ˜f hÕ/÷A	Yñ 	Yüò(s   Â+H!Å>$H.È!H+c                 ó€   — d}t        j                  t        |¬«      5  t        d¬«       d d d «       y # 1 sw Y   y xY w)NzPdtype_backend numpy is invalid, only 'numpy_nullable' and 'pyarrow' are allowed.r]   Únumpy)rÈ   )r`   ra   rC   r
   )rŒ   rb   s     r   Útest_invalid_dtype_backendz(TestClipboard.test_invalid_dtype_backend�  s9   € ð%ð 	ô �]‰]œ:¨SÔ1ñ 	2Ü¨Õ1÷	2÷ 	2ñ 	2ús   ž4´=c                 óª   — t        dg d¢i«      }d}t        j                  t        |¬«      5  |j	                  dd «       d d d «       y # 1 sw Y   y xY w)Nr#   )r-   r+   r)   zTStarting with pandas version 3.0 all arguments of to_clipboard will be keyword-only.r]   T)r   rŠ   r•   ÚFutureWarningr‰   rÂ   s      r   Ú&test_to_clipboard_pos_args_deprecationz4TestClipboard.test_to_clipboard_pos_args_deprecation˜  sP   € ä˜šYÐ'Ó(ˆð%ð 	ô ×'Ñ'¬¸SÔAñ 	(Ø�O‰O˜D $Ô'÷	(÷ 	(ñ 	(ús   ­A	Á	A)r_   Ú
__module__Ú__qualname__r`   ÚmarkÚparametrizer�   r’   r˜   rš   rž   r    rª   r·   Újoinr¾   rÃ   rÅ   rã   ræ   ré   r   r   r   r‚   r‚   ¼   s—  „ ð ‡[�[×Ñ˜UÒ$:Ó;Ø‡[�[×Ñ˜ZÒ)IÓJñ*ó Kó <ð*ò(ò3ò3ð ‡[�[×Ñ˜UÒ$;Ó<Ø‡[�[×Ñ˜WÒ&=Ó>ñ7ó ?ó =ð7ð ‡[�[×Ñ˜U T¨9Ð$5Ó6ñ(ó 7ð(ò&(òP/ð ‡[�[×ÑØð —	‘	òóò !¢)Ò-@ÐAð
ð —	‘	ÚXóò !¢)Ð,ð	ð	
óñ,/ó-ð,/ò-ð ‡[�[×Ñ˜VÒ%PÓQñ*ó Rð*ð ‡[�[×Ñ˜X¨¨X Ó7ñ30ó 8ð30òj2ó(r   r‚   )$Útextwrapr   rå   r7   r`   Úpandas.errorsr   r   Úpandasrw   r   r   r   r	   r
   Úpandas._testingÚ_testingrŠ   Úpandas.io.clipboardr   r   r   r   ÚfixturerJ   rS   rì   Úusefixturesrc   ri   rí   rs   r|   ry   Ú
single_cpur‚   r   r   r   ú<module>rø      s{  ðÝ ã Û ÷ó
 ÷õ õ ÷ñ òð €‡�òôñ+óð+ð\ ‡�ñó ðð ‡�×Ñ˜Ó'ñ%ó (ð%ð  ‡�×Ñ˜Ó'ñ"ó (ð"ð" ‡�×ÑØ
òó	ñ!ó	ð!ð ‡�ñó ðð ‡�ñó ðð ‡�×ÑØ‡�×ÑØ‡�×ÑÐ-Ó.Ø‡�×Ñ˜Ó%÷`(ð `(ó &ó /ó ó ñ`(r   