Ë
    «2ÚiÙ(  ã                   óÚ  — d Z ddlmZmZ ddlZddlZddlZddlZddl	m
Z
mZ ddlmZ ej                  j!                  d«      Zej                  j%                  d«      Zd„ Zed„ «       Zeej                  j-                  d	d
dg«      ej                  j-                  dg d¢«      d„ «       «       «       Zd„ Zd„ Zej                  j-                  ddi dgfdddidgfdddgiddgfddgddœdgfddgddœej4                  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ej                  j-                  dg d(¢«      d)„ «       Z ej                  j-                  dg d*¢«      d+„ «       Z!d,„ Z"d-„ Z#ej                  j%                  d.«      ej                  j-                  d/d0d1g«      d2„ «       «       Z$y)3zZ
Tests encoding functionality during parsing
for all of the parsers defined in parsers.py
é    )ÚBytesIOÚTextIOWrapperN)Ú	DataFrameÚread_csvz=ignore:Passing a BlockManager to DataFrame:DeprecationWarningÚpyarrow_skipc                 ó¸   — d}| }t        dj                  |«      «      }|j                  |d|¬«      }t        ddggddg¬	«      }t	        j
                  ||«       y )
NÚcp1255u   ×©×œ×•×�:1234
562:123ú:)ÚsepÚencodingi2  é{   u   ×©×œ×•×�Ú1234©Úcolumns©r   Úencoder   r   ÚtmÚassert_frame_equal)Úall_parsersr   ÚparserÚdataÚresultÚexpecteds         ú[/var/www/html/acx/venv/lib/python3.12/site-packages/pandas/tests/io/parser/test_encoding.pyÚtest_bytes_io_inputr      s]   € Ø€HØ€FäÐ+×2Ñ2°8Ó<Ó=€DØ�_‰_˜T s°Xˆ_Ó>€Fä˜3 ˜*˜°
¸FÐ/CÔD€HÜ×Ñ˜& (Õ+ó    c                 ó¬   — | }t        dj                  «       «      }|j                  |ddd ¬«      }t        ddgg«      }t	        j
                  ||«       y )Nu   Å�aski, Jan;1ú;úutf-8)r   r   Úheaderu   Å�aski, Jané   r   )r   r   r   r   r   s        r   Útest_read_csv_unicoder"   (   sT   € à€FÜÐ&×-Ñ-Ó/Ó0€Dà�_‰_˜T s°WÀTˆ_ÓJ€FÜÐ,¨aÐ0Ð1Ó2€HÜ×Ñ˜& (Õ+r   r   ú,ú	r   )úutf-16zutf-16lezutf-16bec                 ó´  — | }dj                  d|«      }|ddœ}d}|j                  |«      }t        |d«      5 }	|	j                  |«       d d d «       t	        t        |j                  |«      «      |¬«      5 }
 |j                  |fd|i|¤Ž} |j                  |
fd|i|¤Ž}d d d «       t        j                  «       y # 1 sw Y   ŒxxY w# 1 sw Y   Œ,xY w)	Nz)skip this
skip this too
A,B,C
1,2,3
4,5,6r#   é   )r   Úskiprowsr   Úwb©r   r   )	Úreplacer   ÚopenÚwriter   r   r   r   r   )r   r   r   Ú	temp_filer   r   ÚkwargsÚutf8Ú
bytes_dataÚfÚbytes_bufferr   r   s                r   Útest_utf16_bom_skiprowsr4   2   sè   € ð
 €Fð	÷ 
‰��cÓ	ð	 	ð
  aÑ(€FØ€Dà—‘˜XÓ&€Jä	ˆi˜Ó	ð  !Ø	�‰�
Ô÷ô 
”w˜tŸ{™{¨4Ó0Ó1¸DÔ	Að JÀ\Ø �—‘ ÑH°XÐHÀÑHˆØ"�6—?‘? <ÑI¸$ÐIÀ&ÑIˆ÷Jô ×Ñ˜& (Õ+÷ð ú÷Jð Jús   ¹CÁ8+CÃCÃCc                 ó�   — t         j                  j                  |d«      }| }|j                  |dd¬«      }t	        |«      dk(  sJ ‚y )Nzutf16_ex.txtr%   r$   )r   r   é2   )ÚosÚpathÚjoinr   Úlen)r   Úcsv_dir_pathr8   r   r   s        r   Útest_utf16_exampler<   K   sA   € Ü�7‰7�<‰<˜ nÓ5€DØ€FØ�_‰_˜T¨H¸$ˆ_Ó?€FÜˆv‹;˜"ÒÐÑr   c                 ó´   — t         j                  j                  |d«      }| }|j                  |d d¬«      }|j	                  d«      }|d   d   }d}||k(  sJ ‚y )Núunicode_series.csvúlatin-1)r    r   r   r!   i`  u$   Ã� kÃ¶ldum klaka (Cold Fever) (1994))r7   r8   r9   r   Ú	set_index)r   r;   r8   r   r   Úgotr   s          r   Útest_unicode_encodingrB   R   s^   € Ü�7‰7�<‰<˜Ð&:Ó;€DØ€Fà�_‰_˜T¨$¸ˆ_ÓC€FØ×Ñ˜aÓ €FØ
�‰)�D‰/€Cà9€HØ�(Š?Ð‰?r   zdata,kwargs,expectedza
1r!   z"a"
1Ú	quotecharú"zb
1ÚnamesÚaÚbÚ1ú
1T)rE   Úskip_blank_linesFc                 ó  ‡‡— | }dŠdŠˆˆfd„}|j                   dk(  r-|dk(  r(|j                  dd«      rt        j                  d¬	«        |j                   ||«      fd
‰i|¤Ž}t        d|i«      }t        j                  ||«       y )Nu   ï»¿r   c                 óB   •— ‰| z   j                  ‰«      }t        |«      S )N)r   r   )Ú_dataÚbom_dataÚbomr0   s     €€r   Ú_encode_data_with_bomz,test_utf8_bom.<locals>._encode_data_with_bomw   s"   ø€ Ø˜%‘K×'Ñ'¨Ó-ˆÜ�xÓ Ð r   ÚpyarrowrI   rJ   Tz,https://github.com/apache/arrow/issues/38676)Úreasonr   rF   )ÚengineÚgetÚpytestÚskipr   r   r   r   )	r   r   r/   r   r   rP   r   rO   r0   s	          @@r   Útest_utf8_bomrW   ^   sŠ   ù€ ð* €FØ
€CØ€Dõ!ð
 	�‰˜Ò"Ø�EŠMØ�J‰JÐ)¨4Ô0ô 	�‰ÐIÕJàˆV�_‰_Ñ2°4Ó8ÑRÀ4ÐRÈ6ÑR€FÜ˜#˜x˜Ó)€HÜ×Ñ˜& (Õ+r   c                 óÐ   — t        dgdgdœ«      }| }|j                  |«      }dj                  |«      }|j                  t	        |«      |¬«      }t        j                  ||«       y )Ng333333@Útest)Úmb_numÚ	multibytezmb_num,multibyte
4.8,testr*   )r   Úformatr   r   r   r   r   )r   Ú	utf_valueÚencoding_fmtr   r   r   r   r   s           r   Útest_read_csv_utf_aliasesr_   ˆ   s`   € ä S E¸¸ÑAÓB€HØ€Fà×"Ñ" 9Ó-€HØ'×.Ñ.¨xÓ8€Dà�_‰_œW T›]°Xˆ_Ó>€FÜ×Ñ˜& (Õ+r   zfile_path,encoding)))Úior   Úcsvz	test1.csvr   ))r`   r   r   r>   r?   ))r`   r   r   zsauron.SHIFT_JIS.csvÚshiftjisc                 óR  — | } ||Ž }|j                  ||¬«      }t        ||¬«      5 }|j                  |«      }|j                  rJ ‚	 d d d «       t        j                  |«       t        |d¬«      5 }	|j                  |	|¬«      }|	j                  rJ ‚	 d d d «       t        j                  ||«       t        |dd¬«      5 }	|j                  |	|¬«      }|	j                  rJ ‚	 d d d «       t        j                  ||«       y # 1 sw Y   Œ½xY w# 1 sw Y   Œ{xY w# 1 sw Y   Œ8xY w)Nr*   Úrb)Úmoder   )re   Ú	buffering)r   r,   Úclosedr   r   )
r   Ú	file_pathr   Údatapathr   Úfpathr   Úfar   Úfbs
             r   Útest_binary_mode_file_buffersrm   ”   s  € ð €Fá�iÐ €EØ�‰˜u¨xˆÓ8€Hä	ˆe˜hÔ	'ð ¨2Ø—‘ Ó$ˆØ—9’9Ðˆ}�9÷ô ×Ñ˜( FÔ+ä	ˆe˜$Ô	ð  2Ø—‘ ¨h�Ó7ˆØ—9’9Ðˆ}�9÷ô ×Ñ˜( FÔ+ä	ˆe˜$¨!Ô	,ð °Ø—‘ ¨h�Ó7ˆØ—9’9Ðˆ}�9÷ô ×Ñ˜( FÕ+÷ð ú÷
ð ú÷
ð ús#   ¨ DÁ4"DÃ"DÄDÄDÄD&Úpass_encodingc                 óŒ  — | }|j                  |«      }|j                  dk(  r|du r|dv rt        j                  d«       t	        ddgi«      }|j                  d|¬«      5 }|j                  d	«       |j                  d
«       |j                  ||r|nd ¬«      }	t        j                  |	|«       d d d «       y # 1 sw Y   y xY w)NrQ   T)é   é    zThese cases freezeÚfooÚbarzw+©re   r   zfoo
barr   r*   )r\   rS   rU   rV   r   r,   r-   Úseekr   r   r   )
r   r]   r^   rn   r.   r   r   r   r2   r   s
             r   Útest_encoding_temp_filerv   ´   sµ   € ð
 €FØ×"Ñ" 9Ó-€Hà‡}�}˜	Ò! m°tÑ&;À	ÈXÑ@Uä�‰Ð(Ô)ä˜% % Ð)Ó*€Hà	�‰˜T¨HˆÓ	5ð 0¸Ø	�‰�
ÔØ	�‰ˆqŒ	à—‘ ¹©XÈD�ÓQˆÜ
×Ñ˜f hÔ/÷0÷ 0ñ 0ús   Á!AB:Â:Cc                 ó^  — | }d}d}d}t        ||gi«      }t        j                  «       5 }|j                  |› d|› �j	                  |«      «       |j                  d«       |j                  ||¬«      }t        j                  ||«       |j                  rJ ‚	 d d d «       y # 1 sw Y   y xY w)Nz	shift-jisu	   ã�¦ã�™ã�¨u   ã�“ã‚€ú
r   r*   )
r   ÚtempfileÚNamedTemporaryFiler-   r   ru   r   r   r   rg   )r   r   r   Útitler   r   r2   r   s           r   Útest_encoding_named_temp_filer|   Ê   s¦   € à€FØ€Hà€EØ€Dä˜% $ ˜Ó)€Hä	×	$Ñ	$Ó	&ð ¨!Ø	�‰�5�'˜˜D˜6Ð"×)Ñ)¨(Ó3Ô4à	�‰ˆqŒ	à—‘ ¨X�Ó6ˆÜ
×Ñ˜f hÔ/Ø—8’8Ðˆ|�8÷÷ ñ ús   «A.B#Â#B,)r   r%   z	utf-16-bez	utf-16-lezutf-32c                 ó´   — d}t        |j                  | «      «      }t        |d| ¬«      }t        ddgddgdd	ggd
dg¬«      }t	        j
                  ||«       y )Nu   a	b
ï¼šfoo	0
bar	1
baz	2r$   )Ú	delimiterr   u   ï¼šfoor   rs   r!   Úbazr'   rF   rG   )r   r   r   )r   r   Úencoded_datar   r   s        r   Ú%test_parse_encoded_special_charactersr�   Þ   sc   € ð -€DÜ˜4Ÿ;™; xÓ0Ó1€LÜ�l¨d¸XÔF€FäØ˜ˆm˜e Q˜Z¨%°¨Ð4Ø�c�
ô€Hô ×Ñ˜& (Õ+r   )r   Nr%   r	   r?   c                 óZ  — | }t        g d¢g d¢g d¢dœ«      }|j                  |d|¬«       |j                  dk(  r;d}t        j                  t
        |¬	«      5  |j                  ||d
¬«       d d d «       y |j                  ||d
¬«      }t        j                  ||«       y # 1 sw Y   y xY w)N)ÚRaphaelÚ	DonatellozMiguel AngelÚLeonardo)ÚredÚpurpleÚorangeÚblue)Úsaizbo staffÚnunchunkÚkatana)ÚnameÚmaskÚweaponF)Úindexr   rQ   úBThe 'memory_map' option is not supported with the 'pyarrow' engine©ÚmatchT)r   Ú
memory_map)	r   Úto_csvrS   rU   ÚraisesÚ
ValueErrorr   r   r   )r   r   r.   r   r   ÚmsgÚdfs          r   Útest_encoding_memory_maprš   ï   s£   € ð €FÜâHÚ7Ú?ñ	
ó€Hð ‡O�O�I U°X€OÔ>à‡}�}˜	Ò!ØRˆÜ�]‰]œ:¨SÔ1ñ 	KØ�O‰O˜I°ÀTˆOÔJ÷	Kàà	�‰˜¨XÀ$ˆÓ	G€BÜ×Ñ˜"˜hÕ'÷	Kàús   ÁB!Â!B*c                 óp  — | }t        dgdz  ¬«      }d|j                  d<   |j                  |ddd¬«       |j                  d	k(  r;d
}t	        j
                  t        |¬«      5  |j                  |dd¬«       ddd«       y|j                  |dd¬«      }t        j                  ||«       y# 1 sw Y   yxY w)zO
    Chunk splits a multibyte character with memory_map=True

    GH 43540
    Úaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaai   )r   u�   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaÄ…iÿ  Fr   ©r�   r    r   rQ   r‘   r’   NT)r    r”   )
r   Úilocr•   rS   rU   r–   r—   r   r   r   )r   r.   r   r™   r˜   Údfrs         r   Ú test_chunk_splits_multibyte_charr      s«   € ð €Fä	˜˜ dÑ*Ô	+€Bð %€B‡G�GˆD�MØ‡I�Iˆi˜u¨U¸W€IÔEà‡}�}˜	Ò!ØRˆÜ�]‰]œ:¨SÔ1ñ 	EØ�O‰O˜I¨d¸tˆOÔD÷	Eàà
�/‰/˜)¨D¸Tˆ/Ó
B€CÜ×Ñ˜#˜rÕ"÷	Eàús   Á#B,Â,B5c           	      ó„  — g }d}d}d}t        t        |«      t        |«      |«      D ]]  }dj                  t        ||dz   «      D �cg c]  }t        |«      ‘Œ c}«      dz   }	 |j	                  d«       |j                  |«       Œ_ | }	t        |«      }
|
j                  |ddd¬«       |	j                  d	k(  r<d
}t        j                  t        |¬«      5  |	j                  |ddd¬«       ddd«       y|	j                  |ddd¬«      }t        j                  |
|«       yc c}w # t
        $ r Y �Œ
w xY w# 1 sw Y   yxY w)zg
    GH 43787

    Test correct handling of UTF-8 chars when memory_map=True and encoding is UTF-8
    é€   ú u   ð�‚€Ú rx   r   Fr�   rQ   r‘   r’   NT)r    r”   r   )ÚrangeÚordr9   Úchrr   ÚUnicodeEncodeErrorÚappendr   r•   rS   rU   r–   r—   r   r   r   )r   r.   ÚlinesÚline_lengthÚ
start_charÚend_charÚlnumÚcÚliner   r™   r˜   rŸ   s                r   Útest_readcsv_memmap_utf8r±     s7  € ð €EØ€KØ€JØ€Hô ”c˜*“o¤s¨8£}°kÓBò ˆØ�w‰w¬¨d°D¸4±KÓ(@ÖA 1œ˜A�ÒAÓBÀTÑIˆð	Ø�K‰K˜Ô ð 	�‰�TÕðð €FÜ	�5Ó	€BØ‡I�Iˆi˜u¨U¸W€IÔEà‡}�}˜	Ò!ØRˆÜ�]‰]œ:¨SÔ1ñ 	WØ�O‰O˜I¨d¸tÈgˆOÔV÷	Wàà
�/‰/˜)¨D¸TÈGˆ/Ó
T€CÜ×Ñ˜"˜cÕ"ùò# Bøô "ò 	Úð	ú÷	Wàús$   ÁD!
Á$D&ÃD6Ä&	D3Ä2D3Ä6D?Úpyarrow_xfailre   zw+bzw+tc                 ó  — | }d}d|v rd}t        j                  |d¬«      5 }|j                  |«       |j                  d«       |j	                  |«      }d d d «       t        g dg¬«      }t        j                  |«       y # 1 sw Y   Œ.xY w)Ns   abcdÚtÚabcdr   rt   r   r   )ry   ÚSpooledTemporaryFiler-   ru   r   r   r   r   )r   re   r   ÚcontentÚhandler™   r   s          r   Útest_not_readabler¹   @  s†   € ð €FØ€GØ
ˆd�{ØˆÜ	×	&Ñ	&¨D¸7Ô	Cð %ÀvØ�‰�WÔØ�‰�AŒØ�_‰_˜VÓ$ˆ÷%ô ˜ f XÔ.€HÜ×Ñ˜"˜hÕ'÷%ð %ús   ¢4BÂB)%Ú__doc__r`   r   r   r7   ry   ÚnumpyÚnprU   Úpandasr   r   Úpandas._testingÚ_testingr   ÚmarkÚfilterwarningsÚ
pytestmarkÚusefixturesÚskip_pyarrowr   r"   Úparametrizer4   r<   rB   ÚnanrW   r_   rm   rv   r|   r�   rš   r    r±   r¹   © r   r   ú<module>rÈ      sM  ðñ÷
ó 
Û ã Û ÷õ à�[‰[×'Ñ'ØCó€
ð �{‰{×&Ñ& ~Ó6€ò,ð ñ,ó ð,ð Ø‡�×Ñ˜  d Ó,Ø‡�×Ñ˜Ò%GÓHñ,ó Ió -ó ð,ò,ò	ð ‡�×ÑØð 
��a�SÐà	�K Ð%¨ sÐ+à	�'˜C˜5Ð! C¨ :Ð.à	˜3˜%°TÑ:¸Q¸CÐ@ð Ø�e°Ñ7Ø�V‰V�QˆKð	
ðóñ&,ó'ð&,ò.	,ð ‡�×ÑØòóñ,óð,ð0 ‡�×Ñ˜¨4°¨-Ó8ñ0ó 9ð0ò*ð( ‡�×ÑØÒGóñ,óð,ð ‡�×Ñ˜Ò%SÓTñ(ó Uð(ò,#ò2#ðB ‡�×Ñ˜Ó)Ø‡�×Ñ˜ %¨ Ó0ñ(ó 1ó *ñ(r   