Ë
    ¤eh*  ã                   ó2  — 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	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  eddgi«      fdddi eddgi«      fdddgi edddgi«      fddgddœ eddgi«      fddgddœ edej6                  dgi«      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         úb/var/www/skyplay_api_hub/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                 ó8  — | }dj                  d|«      }dt        j                  «       › d�}|ddœ}d}t        j                  |«      5 }|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                  «       d d d «       y # 1 sw Y   Œ€xY w# 1 sw Y   Œ4xY w# 1 sw Y   y xY w)Nz)skip this
skip this too
A,B,C
1,2,3
4,5,6r#   Ú__z__.csvé   )r   Úskiprowsr   Úwb©r   r   )ÚreplaceÚuuidÚuuid4r   Úensure_cleanr   ÚopenÚwriter   r   r   r   )r   r   r   r   r   ÚpathÚkwargsÚutf8Ú
bytes_dataÚfÚbytes_bufferr   r   s                r   Útest_utf16_bom_skiprowsr8   2   s'  € ð
 €Fð	÷ 
‰ØˆSó
ð	 	ð ”—
‘
“ˆ~˜VÐ$€DØ aÑ(€FØ€Dä	�‰˜Ó	ð 	0 $Ø—[‘[ Ó*ˆ
ä�$˜Óð 	  Ø�G‰G�JÔ÷	 ô œ7 4§;¡;¨tÓ#4Ó5ÀÔEð 	NÈØ$�V—_‘_ TÑG°HÐGÀÑGˆFØ&�v—‘ |ÑM¸dÐMÀfÑMˆH÷	Nô 	×Ñ˜f hÔ/÷	0ð 	0÷	 ð 	 ú÷	Nð 	Nú÷	0ð 	0ús<   Á	DÁ'C8Á9-DÂ&+DÃDÃ8D	Ã=DÄD	Ä	DÄDc                 ó�   — t         j                  j                  |d«      }| }|j                  |dd¬«      }t	        |«      dk(  sJ ‚y )Nzutf16_ex.txtr%   r$   )r   r   é2   )Úosr2   Újoinr   Úlen)r   Úcsv_dir_pathr2   r   r   s        r   Útest_utf16_exampler?   O   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))r;   r2   r<   r   Ú	set_index)r   r>   r2   r   r   Úgotr   s          r   Útest_unicode_encodingrE   V   s^   € Ü�7‰7�<‰<˜Ð&:Ó;€DØ€Fà�_‰_˜T¨$¸ˆ_ÓC€FØ×Ñ˜aÓ €FØ
�‰)�D‰/€Cà9€HØ�(Š?Ð‰?r   zdata,kwargs,expectedza
1Úar!   z"a"
1Ú	quotecharú"zb
1ÚnamesÚbÚ1ú
1T)rI   Ú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        j                  ||«       y )Nu   ï»¿r   c                 óB   •— ‰| z   j                  ‰«      }t        |«      S )N)r   r   )Ú_dataÚbom_dataÚbomr4   s     €€r   Ú_encode_data_with_bomz,test_utf8_bom.<locals>._encode_data_with_bom{   s"   ø€ Ø˜%‘K×'Ñ'¨Ó-ˆÜ�xÓ Ð r   ÚpyarrowrL   rM   Tz,https://github.com/apache/arrow/issues/38676)Úreasonr   )ÚengineÚgetÚpytestÚskipr   r   r   )
r   r   r3   r   Úrequestr   rS   r   rR   r4   s
           @@r   Útest_utf8_bomr[   b   s|   ù€ ð* €FØ
€CØ€Dõ!ð
 	�‰˜Ò"Ø�EŠMØ�J‰JÐ)¨4Ô0ô 	�‰ÐIÕJàˆV�_‰_Ñ2°4Ó8ÑRÀ4ÐRÈ6ÑR€FÜ×Ñ˜& (Õ+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_aliasesrc   ‹   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   ))rd   r   r   rA   rB   ))rd   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   )ri   Ú	buffering)r   r0   Úclosedr   r   )
r   Ú	file_pathr   Údatapathr   Úfpathr   Úfar   Úfbs
             r   Útest_binary_mode_file_buffersrq   —   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«      }t        j                  d|d¬«      5 }|j                  d	«       |j                  d
«       |j                  ||r|nd ¬«      }t        j                  ||«       d d d «       y # 1 sw Y   y xY w)NrT   T)é   é    zThese cases freezeÚfooÚbarzw+)ri   r   Úreturn_filelikezfoo
barr   r+   )r`   rV   rX   rY   r   r   r/   r1   Úseekr   r   )	r   ra   rb   rr   r   r   r   r6   r   s	            r   Útest_encoding_temp_filerz   ·   s¶   € ð €FØ×"Ñ" 9Ó-€Hà‡}�}˜	Ò! m°tÑ&;À	ÈXÑ@Uä�‰Ð(Ô)ä˜% % Ð)Ó*€Hä	�‰˜d¨XÀtÔ	Lð 0ÐPQØ	�‰�
ÔØ	�‰ˆ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ÚNamedTemporaryFiler1   r   ry   r   r   r   rk   )r   r   r   Útitler   r   r6   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   rw   r!   Úbazr(   rF   rJ   )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	   rB   c                 ó¾  — | }t        g d¢g d¢g d¢dœ«      }t        j                  «       5 }|j                  |d|¬«       |j                  dk(  rDd}t        j                  t        |¬	«      5  |j                  ||d
¬«       d d d «       	 d d d «       y |j                  ||d
¬«      }d d d «       t        j                  |«       y # 1 sw Y   ŒFxY w# 1 sw Y   Œ,xY w)N)ÚRaphaelÚ	DonatellozMiguel AngelÚLeonardo)ÚredÚpurpleÚorangeÚblue)Úsaizbo staffÚnunchunkÚkatana)ÚnameÚmaskÚweaponF)Úindexr   rT   úBThe 'memory_map' option is not supported with the 'pyarrow' engine©ÚmatchT)r   Ú
memory_map)
r   r   r/   Úto_csvrV   rX   ÚraisesÚ
ValueErrorr   r   )r   r   r   r   ÚfileÚmsgÚdfs          r   Útest_encoding_memory_maprŸ   ð   sÛ   € ð €FÜâHÚ7Ú?ñ	
ó€Hô 
�‰Ó	ð 	G˜dØ�‰˜ E°HˆÔ=à�=‰=˜IÒ%ØVˆCÜ—‘œz°Ô5ñ JØ—‘ ¨xÀD�ÔI÷Jà÷	Gð 	Gð �_‰_˜T¨HÀˆ_ÓFˆ÷	Gô ×Ñ˜"˜hÕ'÷Jð Jú÷	Gð 	Gús*   ¬ACÁ-CÂ	CÂCÃC	ÃCÃCc                 óÖ  — | }t        dgdz  ¬«      }d|j                  d<   t        j                  d«      5 }|j	                  |ddd¬	«       |j
                  d
k(  rDd}t        j                  t        |¬«      5  |j                  |dd¬«       ddd«       	 ddd«       y|j                  |dd¬«      }ddd«       t        j                  |«       y# 1 sw Y   ŒFxY w# 1 sw Y   Œ,xY w)zO
    Chunk splits a multibyte character with memory_map=True

    GH 43540
    Úaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaai   )r   u�   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaÄ…iÿ  zbug-gh43540.csvFr   ©r”   r    r   rT   r•   r–   NT)r    r˜   )r   Úilocr   r/   r™   rV   rX   rš   r›   r   r   )r   r   rž   Úfnamer�   Údfrs         r   Ú test_chunk_splits_multibyte_charr¦     sæ   € ð €Fä	˜˜ dÑ*Ô	+€Bð %€B‡G�GˆD�MÜ	�‰Ð*Ó	+ð 	C¨uØ
�	‰	�%˜u¨U¸Wˆ	ÔEà�=‰=˜IÒ%ØVˆCÜ—‘œz°Ô5ñ EØ—‘ ¨d¸t�ÔD÷Eà÷	Cð 	Cð �o‰o˜e¨D¸TˆoÓBˆ÷	Cô ×Ñ˜#˜rÕ"÷Eð Eú÷	Cð 	Cús*   ·ACÁ9CÂ	CÂ CÃC	ÃCÃC(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        |«      }	t        j                  d«      5 }
|	j                  |
ddd¬	«       |j                  d
k(  rEd}t        j                  t        |¬«      5  |j                  |
ddd¬«       ddd«       	 ddd«       y|j                  |
ddd¬«      }ddd«       t        j                   |	«       yc c}w # t
        $ r Y �Œ1w xY w# 1 sw Y   Œ\xY w# 1 sw Y   ŒAxY w)zg
    GH 43787

    Test correct handling of UTF-8 chars when memory_map=True and encoding is UTF-8
    é€   ú u   ð�‚€Ú r|   r   zutf8test.csvFr¢   rT   r•   r–   NT)r    r˜   r   )ÚrangeÚordr<   Úchrr   ÚUnicodeEncodeErrorÚappendr   r   r/   r™   rV   rX   rš   r›   r   r   )r   ÚlinesÚline_lengthÚ
start_charÚend_charÚlnumÚcÚliner   rž   r¤   r�   r¥   s                r   Útest_readcsv_memmap_utf8r·   "  sq  € ð €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Ü	�‰˜Ó	(ð 	U¨EØ
�	‰	�%˜u¨U¸Wˆ	ÔEà�=‰=˜IÒ%ØVˆCÜ—‘œz°Ô5ñ WØ—‘ ¨d¸tÈg�ÔV÷Wà÷	Uð 	Uð �o‰o˜e¨D¸TÈGˆoÓTˆ÷	Uô ×Ñ˜"˜cÕ"ùò% Bøô "ò 	Úð	ú÷Wð Wú÷	Uð 	UúsC   ÁE
Á$EÂ*AE)Ã,EÄ	E)ÄE)Å	EÅEÅE&	Å"E)Å)E2Úpyarrow_xfailri   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   )ri   r   r   r   )r}   ÚSpooledTemporaryFiler1   ry   r   r   r   r   )r   ri   r   ÚcontentÚhandlerž   r   s          r   Útest_not_readabler¿   D  s†   € ð €FØ€GØ
ˆd�{ØˆÜ	×	&Ñ	&¨D¸7Ô	Cð %ÀvØ�‰�WÔØ�‰�AŒØ�_‰_˜VÓ$ˆ÷%ô ˜ f XÔ.€HÜ×Ñ˜"˜hÕ'÷%ð %ús   ¢4BÂB)&Ú__doc__rd   r   r   r;   r}   r-   ÚnumpyÚnprX   Úpandasr   r   Úpandas._testingÚ_testingr   ÚmarkÚfilterwarningsÚ
pytestmarkÚusefixturesÚskip_pyarrowr   r"   Úparametrizer8   r?   rE   Únanr[   rc   rq   rz   r€   r…   rŸ   r¦   r·   r¿   © r   r   ú<module>rÎ      s  ðñ÷ó 
Û Û ã Û ÷õ à�[‰[×'Ñ'ØCó€
ð �{‰{×&Ñ& ~Ó6€ò,ð ñ,ó ð,ð Ø‡�×Ñ˜  d Ó,Ø‡�×Ñ˜Ò%GÓHñ0ó Ió -ó ð0ò4ò	ð ‡�×ÑØð 
�‘Y  a S˜zÓ*Ð+à	�K Ð%¡y°#¸°s°Ó'<Ð=à	�'˜C˜5Ð!¡9¨c°C¸°:Ð->Ó#?Ð@à	˜3˜%°TÑ:¹IÀsÈQÈCÀjÓ<QÐRð Ø�e°Ñ7Ù�s˜RŸV™V Q˜KÐ(Ó)ð	
ðóñ&,ó'ð&,ò,	,ð ‡�×ÑØòóñ,óð,ð0 ‡�×Ñ˜¨4°¨-Ó8ñ0ó 9ð0ò&ð( ‡�×ÑØÒGóñ,óð,ð ‡�×Ñ˜Ò%SÓTñ(ó Uð(ò.#ò4#ðD ‡�×Ñ˜Ó)Ø‡�×Ñ˜ %¨ Ó0ñ(ó 1ó *ñ(r   