a
    nÝEbC&  ã                   @   s¸   d dl mZ d dlZd dlZd dlmZmZmZ d dl	m
Z d dlmZmZ dd„ Zejg d¢d�d	d
„ ƒZejdd„ ƒZejjdd„ ƒZejjejjej d¡G dd„ dƒƒƒƒZdS )é    )ÚdedentN)Ú	DataFrameÚ
get_optionÚread_clipboard)Úclipboard_getÚclipboard_setc                 C   s(   i }|dkr||d< | dkr$| |d< |S )NÚdefaultÚexcelÚsep© )r
   r	   Úkwargsr   r   ú^/home/ja/django-apps/lartica_env/lib/python3.9/site-packages/pandas/tests/io/test_clipboard.pyÚbuild_kwargs   s    r   )
ÚdelimsÚutf8Úutf16ÚstringÚlongÚnonasciiÚcolwidthÚmixedÚfloatÚint)Úparamsc              	      s¤  | j }|dkr$tddgddgdœƒS |dkrBtdd	gd
dgdœƒS |dkr`tddgddgdœƒS |dkr‚tjddddd gd gd�S |dkr¶tdƒ}tj|d ddd„ ddd gd gd�S |dkrÔtd ¡ d ¡ dœƒS |d k�rtd!ƒd ‰ tjdd‡ fd"d„ddd gd gd�S |d#k�rHtt d$d%¡d& t dd'¡ tj	¡t
d(ƒd)œƒS |d*k�rrtjddd+d„ ddd gd gd�S |d,k�rœtjddd-d„ ddd gd gd�S t‚d S ).Nr   z"a,	"b|cu   d	efÂ´zhi'jzk''lm)ÚaÚbr   u   Âµasdu	   Î©Å“âˆ‘Â´u   Ã¸Ï€âˆ†ËšÂ¬u	   Å“âˆ‘Â´Â®r   u   ðŸ‘�ðŸ‘�ÚabcÚdefr   é   é   ÚsÚi)Ú
c_idx_typeÚ
r_idx_typeÚc_idx_namesÚr_idx_namesr   zdisplay.max_rowsé   c                  W   s   t j d¡S ©Né   ©ÚnpÚrandomÚrandint©Úargsr   r   r   Ú<lambda>>   ó    zdf.<locals>.<lambda>)Z
data_gen_fr"   r#   r$   r%   r   z
in Englishu   en espaÃ±ol)ÚenÚesr   zdisplay.max_colwidthc                     s   dˆ  S )NÚxr   r-   ©Z_cwr   r   r/   K   r0   r   g      ð?g      @ç{®Gáz„?é   Zabcde)r   r   Úcr   c                 S   s   t | ƒd S )Nr5   )r   )Úrr7   r   r   r   r/   ]   r0   r   c                  W   s   t j d¡S r'   r)   r-   r   r   r   r/   g   r0   )Úparamr   ÚtmZmakeCustomDataframer   Úsplitr*   ZarangeZastypeZint64ÚlistÚ
ValueError)ÚrequestZ	data_typeZmax_rowsr   r4   r   Údf   s‚    ÿÿù	

ù	
ýÿ
ù	
ù
r?   c                 #   sB   i ‰ ‡ ‡fdd„}‡ ‡fdd„}|   d|¡ |   d|¡ ˆ V  dS )aM  Fixture mocking clipboard IO.

    This mocks pandas.io.clipboard.clipboard_get and
    pandas.io.clipboard.clipboard_set.

    This uses a local dict for storing data. The dictionary
    key used is the test ID, available with ``request.node.name``.

    This returns the local dictionary, for direct manipulation by
    tests.
    c                    s   | ˆ ˆj j< d S ©N©ÚnodeÚname©Údata©Z
_mock_datar>   r   r   Ú	_mock_set�   s    z!mock_clipboard.<locals>._mock_setc                      s   ˆ ˆj j S r@   rA   r   rF   r   r   Ú	_mock_get„   s    z!mock_clipboard.<locals>._mock_getz!pandas.io.clipboard.clipboard_setz!pandas.io.clipboard.clipboard_getN)Úsetattr)Zmonkeypatchr>   rG   rH   r   rF   r   Úmock_clipboardq   s    rJ   c                 C   sF   dd l }|jj d¡ dt|  ¡ ƒv s*J ‚|jj ¡ }|dksBJ ‚d S )Nr   r   )Úpandas.io.clipboardÚioÚ	clipboardr   ÚsetÚvaluesr   )rJ   ÚpandasÚresultr   r   r   Útest_mock_clipboard�   s
    rR   c                   @   sX  e Zd Zd2dd„Zdd„ Zej dg d¢¡dd	„ ƒZd
d„ Z	dd„ Z
dd„ Zej dg d¢¡ej dg d¢¡dd„ ƒƒZej dddg¡ej ddg¡dd„ ƒƒZdd„ Zdd„ Zej dd g d¢¡g d ¢g d!¢g d"¢gfd g d#¢¡g d ¢g d!¢gfg¡d$d%„ ƒZd&d'„ Zej d(g d)¢¡d*d+„ ƒZej d,g d-¢¡ejjd.edd/�d0d1„ ƒƒZdS )3ÚTestClipboardNc                 C   s2   |j |||d� t|pdd|d�}t ||¡ d S )N)r	   r
   Úencodingú	r   )r
   Z	index_colrT   )Úto_clipboardr   r:   Úassert_frame_equal)ÚselfrE   r	   r
   rT   rQ   r   r   r   Úcheck_round_trip_frame›   s    z$TestClipboard.check_round_trip_framec                 C   s   |   |¡ d S r@   ©rY   ©rX   r?   r   r   r   Útest_round_trip_frame¡   s    z#TestClipboard.test_round_trip_framer
   )rU   ú,ú|c                 C   s   | j ||d� d S )N©r
   rZ   )rX   r?   r
   r   r   r   Útest_round_trip_frame_sep¥   s    z'TestClipboard.test_round_trip_frame_sepc                 C   s<   |j dd d� tƒ }| ¡ | ¡ ks(J ‚|j|jks8J ‚d S )NF©r	   r
   )rV   r   Ú	to_stringÚshape)rX   r?   rQ   r   r   r   Útest_round_trip_frame_stringª   s    z*TestClipboard.test_round_trip_frame_stringc                 C   s:   t  ¡ � |jddd� W d   ƒ n1 s,0    Y  d S )NTz\tra   ©r:   Zassert_produces_warningrV   r[   r   r   r   Útest_excel_sep_warning²   s    
z$TestClipboard.test_excel_sep_warningc                 C   s:   t  ¡ � |jddd� W d   ƒ n1 s,0    Y  d S )NFrU   ra   re   r[   r   r   r   Útest_copy_delim_warning·   s    
z%TestClipboard.test_copy_delim_warning)rU   Nr   r	   )TNr   c                 C   s:   t ||ƒ}|jf i |¤Ž ||jj |jdd�ks6J ‚d S )NrU   r_   )r   rV   rB   rC   Zto_csv)rX   r
   r	   r?   r>   rJ   r   r   r   r   Ú test_clipboard_copy_tabs_default½   s    
z.TestClipboard.test_clipboard_copy_tabs_defaultr   Fc                 C   sL   t ||ƒ}|jf i |¤Ž tdd�}| ¡ | ¡ ks8J ‚|j|jksHJ ‚d S )Nz\s+r_   )r   rV   r   rb   rc   )rX   r
   r	   r?   r   rQ   r   r   r   Útest_clipboard_copy_stringsÅ   s
    

z)TestClipboard.test_clipboard_copy_stringsc                 C   s    ddi}t d ¡ ƒ}|||jj< tf i |¤Ž}|jd d dksDJ ‚t d ¡ ƒ}|||jj< tf i |¤Ž}t d ¡ ƒ}|||jj< tf i |¤Ž}t ||¡ d S )NZengineÚpythonz^
            John James	Charlie Mingus
            1	2
            4	Harry Carney
            r&   zHarry Carneyz@
            a	 b
            1  2
            3  4
            z@
            a  b
            1  2
            3  4
            )r   ÚstriprB   rC   r   Zilocr:   rW   )rX   r>   rJ   Zclip_kwargsÚtextr?   ÚresÚexpr   r   r   Útest_read_clipboard_infer_excelÎ   s$    ÿÿÿz-TestClipboard.test_read_clipboard_infer_excelc                 C   s>   d}|||j j< tƒ }tg d¢g d¢dœd�}t ||¡ d S )Nzcol1	col2
1	red
	blue
2	green©r&   Nr(   ©ÚredÚblueÚgreen©Zcol1Zcol2rD   ©rB   rC   r   r   r:   rW   )rX   r>   rJ   rl   r?   Údf_expectedr   r   r   Útest_infer_excel_with_nullsö   s    ÿz)TestClipboard.test_infer_excel_with_nullsÚ
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                 C   sD   |d ||j j< tƒ }tg d¢g d¢dœ|d d�}t ||¡ d S )Nr   rp   rq   ru   r&   )rE   Úindexrv   )rX   r>   rJ   ry   r?   rw   r   r   r   Ú test_infer_excel_with_multiindex  s    þz.TestClipboard.test_infer_excel_with_multiindexc                 C   sz   d}t jt|d�� |jdd� W d   ƒ n1 s40    Y  t jt|d�� tdd� W d   ƒ n1 sl0    Y  d S )Nz&clipboard only supports utf-8 encoding)ÚmatchÚascii©rT   )ÚpytestÚraisesr=   rV   ÚNotImplementedErrorr   )rX   r?   Úmsgr   r   r   Útest_invalid_encoding&  s
    *z#TestClipboard.test_invalid_encodingÚenc)zUTF-8zutf-8r   c                 C   s   | j ||d� d S )Nr�   rZ   )rX   r‡   r?   r   r   r   Útest_round_trip_valid_encodings.  s    z-TestClipboard.test_round_trip_valid_encodingsrE   )u   ðŸ‘�...u   Î©Å“âˆ‘Â´...zabcd...z4Flaky test in multi-process CI environment: GH 44584)Úreasonrƒ   Ústrictc                 C   s   t |ƒ |tƒ ksJ ‚d S r@   )r   r   )rX   rE   r   r   r   Útest_raw_roundtrip2  s    z TestClipboard.test_raw_roundtrip)NNN)Ú__name__Ú
__module__Ú__qualname__rY   r\   r‚   ÚmarkZparametrizer`   rd   rf   rg   rh   ri   ro   rx   Újoinr~   r†   rˆ   ZxfailÚAssertionErrorr‹   r   r   r   r   rS   —   sP   

(ÿ÷ÿüôþ

ýrS   )Útextwrapr   Únumpyr*   r‚   rP   r   r   r   Zpandas._testingZ_testingr:   rK   r   r   r   Zfixturer?   rJ   r�   rM   rR   ÚsingleZusefixturesrS   r   r   r   r   Ú<module>   s$   	ÿ
G

	
