Ë
    «2Úi;/  ã                   óÔ   — U d Z ddlmZmZ ddlZddlZddlmc m	Z
 ddlmZ ddlmZ ddlmZ ddlmZ ddlmZmZ ddlmZ  e«        e«       d	œZeeef   ed
<    G d„ d«      Zd„ Zy)z\
Tests the TextReader class in parsers.pyx, which
is integral to the C engine in parsers.py
é    )ÚBytesIOÚStringION)Ú
TextReader)ÚParserWarning)Ú	DataFrame)ÚTextFileReaderÚread_csv)Úensure_dtype_objs)Ú	na_valuesÚ
na_fvaluesÚ_na_value_kwargsc                   ó„  — e Zd Zej                  d„ «       Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zej4                  j7                  ddddifdddifdddifdddifdddifd ddifg«      d!„ «       Zd"„ Zej4                  j7                  d# ed$«      «      d%„ «       Zd&„ Z y')(ÚTestTextReaderc                 ó   —  |dddd«      S )NÚioÚdataÚcsvz	test1.csv© )ÚselfÚdatapaths     ú]/var/www/html/acx/venv/lib/python3.12/site-packages/pandas/tests/io/parser/test_textreader.pyÚcsv_pathzTestTextReader.csv_path#   s   € á˜˜f e¨[Ó9Ð9ó    c                 ó†   — t        |d«      5 }t        |fi t        ¤Ž}|j                  «        d d d «       y # 1 sw Y   y xY w)NÚrb©Úopenr   r   Úread©r   r   ÚfÚreaders       r   Útest_file_handlezTestTextReader.test_file_handle'   s<   € Ü�(˜DÓ!ð 	 QÜ Ñ6Ô%5Ñ6ˆFØ�K‰KŒM÷	÷ 	ñ 	ús	   �!7·A c                 óŠ   — t        |d«      5 }t        |fdd it        ¤Ž}|j                  «        d d d «       y # 1 sw Y   y xY w©Nr   Úheaderr   r   s       r   Útest_file_handle_mmapz$TestTextReader.test_file_handle_mmap,   sA   € ä�(˜DÓ!ð 	 QÜ ÑC¨$ÐCÔ2BÑCˆFØ�K‰KŒM÷	÷ 	ñ 	ús	   �#9¹Ac                 óÀ   — t        |d«      5 }|j                  «       }d d d «       t        «      }t        |fdd it        ¤Ž}|j                  «        y # 1 sw Y   Œ7xY wr$   )r   r   r   r   r   )r   r   r    ÚtextÚsrcr!   s         r   Útest_StringIOzTestTextReader.test_StringIO2   sU   € Ü�(˜DÓ!ð 	 QØ—6‘6“8ˆD÷	ä�d‹mˆÜ˜CÑA¨ÐAÔ0@ÑAˆØ�‰�÷		ð 	ús   �AÁAc                 óÆ   — t        |d¬«      5 }d}t        j                  t        |¬«      5  t	        |d¬«       d d d «       d d d «       y # 1 sw Y   ŒxY w# 1 sw Y   y xY w)NzUTF-8)Úencodingz%latin1 is different from the encoding©ÚmatchÚlatin1)r   ÚpytestÚraisesÚ
ValueErrorr	   )r   r   r    Úmsgs       r   Útest_encoding_mismatch_warningz-TestTextReader.test_encoding_mismatch_warning9   sZ   € ä�( WÔ-ð 	/°Ø9ˆCÜ—‘œz°Ô5ñ /Ü˜ XÕ.÷/÷	/ð 	/÷/ð /ú÷	/ð 	/ús!   ŽA¬AºAÁA	ÁAÁA c           	      ó²   — d}t        t        |«      fdd it        ¤Ž}|j                  «       }t	        t        t        t        |d   «      «      «      dk(  sJ ‚y )Nz	a
b
a
b
ar%   r   é   )r   r   r   r   ÚlenÚsetÚmapÚid©r   r   r!   Úresults       r   Útest_string_factorizez$TestTextReader.test_string_factorize@   sN   € àˆÜœH T›NÑL°4ÐLÔ;KÑLˆØ—‘“ˆÜ”3”sœ2˜v a™yÓ)Ó*Ó+¨qÒ0Ð0Ñ0r   c                 óX  — d}t        t        |«      fdd dœt        ¤Ž}|j                  «       }t	        j
                  |d   t        j                  g d¢t        j                  ¬«      «       t	        j
                  |d   t        j                  g d¢t        j                  ¬«      «       y )	Nza,   b
a,   b
a,   b
a,   bT)Úskipinitialspacer%   r   )Úar@   r@   r@   ©Údtypeé   )ÚbrD   rD   rD   ©	r   r   r   r   ÚtmÚassert_numpy_array_equalÚnpÚarrayÚobject_r;   s       r   Útest_skipinitialspacez$TestTextReader.test_skipinitialspaceG   s‡   € Ø/ˆäÜ�T‹Nð
Ø-1¸$ñ
ÜBRñ
ˆð —‘“ˆä
×#Ñ#Ø�1‰I”r—x‘xÒ 4¼B¿J¹JÔGô	
ô 	×#Ñ#Ø�1‰I”r—x‘xÒ 4¼B¿J¹JÔGõ	
r   c                 ó¢   — d}t        t        |«      fdd it        ¤Ž}|j                  «       }|d   j                  t
        j                  k(  sJ ‚y )NzTrue
False
True
Truer%   r   )r   r   r   r   rB   rH   Úbool_r;   s       r   Útest_parse_booleansz"TestTextReader.test_parse_booleansV   sE   € Ø(ˆäœH T›NÑL°4ÐLÔ;KÑLˆØ—‘“ˆà�a‰y�‰¤"§(¡(Ò*Ð*Ñ*r   c                 óX  — d}t        t        |«      fdd dœt        ¤Ž}|j                  «       }t	        j
                  |d   t        j                  g d¢t        j                  ¬«      «       t	        j
                  |d   t        j                  g d¢t        j                  ¬«      «       y )	Nza  b
a		 "b"
"a"	 	 bT)Údelim_whitespacer%   r   )r@   r@   r@   rA   rC   )rD   rD   rD   rE   r;   s       r   Útest_delimit_whitespacez&TestTextReader.test_delimit_whitespace^   s…   € Ø,ˆäÜ�T‹Nð
Ø-1¸$ñ
ÜBRñ
ˆð —‘“ˆä
×#Ñ#Ø�1‰I”r—x‘x¢´r·z±zÔBô	
ô 	×#Ñ#Ø�1‰I”r—x‘x¢´r·z±zÔBõ	
r   c                 óÞ   — d}t        t        |«      fdd it        ¤Ž}|j                  «       }t	        j
                  g d¢t        j                  ¬«      }t        j                  |d   |«       y )Nza
"hello
there"
thisr%   )r@   zhello
thereÚthisrA   r   )	r   r   r   r   rH   rI   rJ   rF   rG   ©r   r   r!   r<   Úexpecteds        r   Útest_embedded_newlinez$TestTextReader.test_embedded_newlinem   sT   € Ø(ˆäœH T›NÑL°4ÐLÔ;KÑLˆØ—‘“ˆä—8‘8Ò9ÄÇÁÔLˆÜ
×#Ñ# F¨1¡I¨xÕ8r   c                 óÂ   — d}t        t        |«      fddd dœt        ¤Ž}|j                  «       }t	        j
                  ddg«      }t        j                  |d   |«       y )Nz12345,67
345,678ú:ú,)Ú	delimiterÚdecimalr%   g)\�ÂÕÈ@g+‡Ùšu@r   )r   r   r   r   rH   rI   rF   Úassert_almost_equalrT   s        r   Útest_euro_decimalz TestTextReader.test_euro_decimalv   s`   € Ø"ˆäÜ�T‹Nð
Ø&)°3¸tñ
ÜGWñ
ˆð —‘“ˆä—8‘8˜X wÐ/Ó0ˆÜ
×Ñ˜v a™y¨(Õ3r   c                 óâ   — d}t        t        |«      fddd dœt        ¤Ž}|j                  «       }t	        j
                  ddgt        j                  ¬«      }t        j                  |d   |«       y )	Nz123,456
12,500rX   rY   ©rZ   Ú	thousandsr%   é@â éÔ0  rA   r   )	r   r   r   r   rH   rI   Úint64rF   r\   rT   s        r   Útest_integer_thousandsz%TestTextReader.test_integer_thousands�   si   € Ø ˆäÜ�T‹Nð
àØØñ	
ô
 ñ
ˆð —‘“ˆä—8‘8˜V U˜O´2·8±8Ô<ˆÜ
×Ñ˜v a™y¨(Õ3r   c                 óž   — d}t        t        |«      ddd ¬«      }|j                  «       }t        ddg«      }t	        j
                  ||«       y )Nz123.456
12.500rX   ú.r_   ra   rb   )r   r   r   r   rF   Úassert_frame_equalrT   s        r   Útest_integer_thousands_altz)TestTextReader.test_integer_thousands_alt�   sI   € Ø ˆäÜ�T‹N c°SÀô
ˆð —‘“ˆä˜f e˜_Ó-ˆÜ
×Ñ˜f hÕ/r   c                 ó²  — d}t        t        |«      fdd dœt        ¤Ž}d}t        j                  t
        j                  |¬«      5  |j                  «        d d d «       t        t        |«      fdd ddœt        ¤Ž}|j                  «       }t        j                  g d¢t        ¬	«      t        j                  g d
¢t        ¬	«      t        j                  g d¢t        ¬	«      dœ}t        ||«       t        j                  t        d¬«      5  t        t        |«      fdd ddœt        ¤Ž}|j                  «        d d d «       y # 1 sw Y   ŒëxY w# 1 sw Y   y xY w)Nz'a:b:c
d:e:f
g:h:i
j:k:l:m
l:m:n
o:p:q:rrX   ©rZ   r%   zCError tokenizing data\. C error: Expected 3 fields in line 4, saw 4r-   r6   )rZ   r%   Úon_bad_lines)r@   ÚdÚgÚlrA   )rD   ÚeÚhÚm)Úcr    ÚiÚn©r   rC   r6   zSkipping linerC   )r   r   r   r0   r1   ÚparserÚParserErrorr   rH   rI   ÚobjectÚassert_array_dicts_equalrF   Úassert_produces_warningr   )r   r   r!   r3   r<   rU   s         r   Útest_skip_bad_linesz"TestTextReader.test_skip_bad_lines›   s:  € à=ˆäÜ�T‹Nð
Ø&)°$ñ
Ü:Jñ
ˆð UˆÜ�]‰]œ6×-Ñ-°SÔ9ñ 	Ø�K‰KŒM÷	ô Ü�T‹Nð
àØØñ	
ô
 ñ
ˆð —‘“ˆä�x‰xÒ,´FÔ;Ü�x‰xÒ,´FÔ;Ü�x‰xÒ,´FÔ;ñ
ˆô
 	! ¨Ô2ä×'Ñ'¬¸_ÔMñ 	ÜÜ˜“ðàØØñ	ô
 #ñˆFð �K‰KŒM÷	ð 	÷%	ð 	ú÷$	ð 	ús   ÁEÄ
.EÅE
ÅEc                 ó’  — d}t        t        |«      fdddœt        ¤Ž}|j                  }g d¢g}||k(  sJ ‚|j	                  «       }t        j                  ddgt
        j                  ¬«      t        j                  dd	gt
        j                  ¬«      t        j                  d
dgt
        j                  ¬«      dœ}t        ||«       y )Nz%skip this
skip this
a,b,c
1,2,3
4,5,6rY   r6   rj   ©r@   rD   rr   rC   é   rA   é   é   é   ru   )	r   r   r   r%   r   rH   rI   rc   ry   )r   r   r!   r%   rU   Úrecss         r   Útest_header_not_enough_linesz+TestTextReader.test_header_not_enough_lines¿   s¡   € Ø:ˆäœH T›NÐX°cÀ!ÑXÔGWÑXˆØ—‘ˆÚ#Ð$ˆØ˜Ò!Ð!Ð!à�{‰{‹}ˆä�x‰x˜˜A˜¤b§h¡hÔ/Ü�x‰x˜˜A˜¤b§h¡hÔ/Ü�x‰x˜˜A˜¤b§h¡hÔ/ñ
ˆô
 	!  xÕ0r   c                 ó¼   — d}t        t        |«      fdd ddœt        ¤Ž}|j                  «       }dt	        j
                  dgdz  t        ¬«      i}t        ||«       y )	Nz,\"hello world"
\"hello world"
\"hello world"rY   ú\)rZ   r%   Ú
escapecharr   z"hello world"r€   rA   )r   r   r   r   rH   rI   rx   ry   rT   s        r   Útest_escapecharzTestTextReader.test_escapecharÏ   sd   € ØBˆäÜ�T‹Nð
àØØñ	
ô
 ñ
ˆð —‘“ˆØ”r—x‘x Ð 1°AÑ 5¼VÔDÐEˆÜ  ¨Õ2r   c                  ó   — y ©Nr   ©r   s    r   Útest_eof_has_eolzTestTextReader.test_eof_has_eolÝ   s   € àr   c                  ó   — y r‰   r   rŠ   s    r   Útest_na_substitutionz#TestTextReader.test_na_substitutioná   s   € Ør   c                 óÜ  ‡— dŠˆfd„} |d¬«      }|j                  «       }|d   j                  dk(  sJ ‚t        j                  g d¢d¬«      }|d   |k(  j	                  «       sJ ‚|d   j                  d	k(  sJ ‚ |d
¬«      }|j                  «       }|d   j                  d
k(  sJ ‚t        j                  g d¢d
¬«      }|d   |k(  j	                  «       sJ ‚|d   j                  d
k(  sJ ‚y )Nza,1
aa,2
aaa,3
aaaa,4
aaaaa,5c                  ój   •— d| v rt        | d   «      | d<   t        t        ‰«      fdd dœ| ¤t        ¤ŽS )NrB   rY   rj   ©r
   r   r   r   ©Úkwdsr   s    €r   Ú_make_readerz<TestTextReader.test_numpy_string_dtype.<locals>._make_readerì   sJ   ø€ Ø˜$‰Ü 1°$°w±-Ó @��W‘ÜÜ˜“ðØ*-°dñØ>BðÜFVñð r   zS5,i4rA   r   ÚS5)r@   ÚaaÚaaaÚaaaaÚaaaaarC   Úi4ÚS4)r@   r•   r–   r—   r—   )r   rB   rH   rI   Úall)r   r“   r!   r<   Ú	ex_valuesr   s        @r   Útest_numpy_string_dtypez&TestTextReader.test_numpy_string_dtypeä   së   ø€ ðˆô	ñ  GÔ,ˆØ—‘“ˆà�a‰y�‰ $Ò&Ð&Ð&ä—H‘HÒ@ÈÔMˆ	Ø�q‘	˜YÑ&×+Ñ+Ô-Ð-Ð-Ø�a‰y�‰ $Ò&Ð&Ð&á DÔ)ˆØ—‘“ˆØ�a‰y�‰ $Ò&Ð&Ð&Ü—H‘HÒ?ÀtÔLˆ	Ø�q‘	˜YÑ&×+Ñ+Ô-Ð-Ð-Ø�a‰y�‰ $Ò&Ð&Ñ&r   c                 ó  ‡— dŠˆfd„} |dddœ¬«      }|j                  «       }|d   j                  dk(  sJ ‚|d   j                  dk(  sJ ‚ |t        j                  t        dœ¬«      }|j                  «       }|d   j                  dk(  sJ ‚|d   j                  d	k(  sJ ‚ |t        j                  d«      t        j                  d	«      dœ¬«      }|j                  «       }|d   j                  dk(  sJ ‚|d   j                  d	k(  sJ ‚y )
Nzone,two
1,a
2,b
3,c
4,dc                  óh   •— d| v rt        | d   «      | d<   t        t        ‰«      fddi| ¤t        ¤ŽS )NrB   rZ   rY   r�   r‘   s    €r   r“   z4TestTextReader.test_pass_dtype.<locals>._make_reader  s;   ø€ Ø˜$‰Ü 1°$°w±-Ó @��W‘Üœh t›nÑX¸ÐX¸tÐXÔGWÑXÐXr   Úu1ÚS1)ÚonerC   rA   r   rC   ÚO)r   rB   rH   Úuint8rx   )r   r“   r!   r<   r   s       @r   Útest_pass_dtypezTestTextReader.test_pass_dtype  sø   ø€ ðˆô	Yñ
 ¨D°TÑ$:Ô;ˆØ—‘“ˆØ�a‰y�‰ $Ò&Ð&Ð&Ø�a‰y�‰ $Ò&Ð&Ð&á¬B¯H©H¼Ñ$@ÔAˆØ—‘“ˆØ�a‰y�‰ $Ò&Ð&Ð&Ø�a‰y�‰ #Ò%Ð%Ð%á¬B¯H©H°T«N¼r¿x¹xÈ»}Ñ$MÔNˆØ—‘“ˆØ�a‰y�‰ $Ò&Ð&Ð&Ø�a‰y�‰ #Ò%Ð%Ñ%r   c                 óü   ‡— dŠˆfd„} |d¬«      }|j                  «       } |«       j                  «       }t        |«      dk(  sJ ‚|d   |d   k(  j                  «       sJ ‚|d   |d   k(  j                  «       sJ ‚y )Nz a,b,c
1,2,3
4,5,6
7,8,9
10,11,12c                  ó>   •— t        t        ‰«      fddi| ¤t        ¤ŽS )NrZ   rY   )r   r   r   r‘   s    €r   r“   z1TestTextReader.test_usecols.<locals>._make_reader'  s"   ø€ Üœh t›nÑX¸ÐX¸tÐXÔGWÑXÐXr   )rC   r6   )Úusecolsr6   rC   )r   r7   r›   )r   r“   r!   r<   Úexpr   s        @r   Útest_usecolszTestTextReader.test_usecols  s‡   ø€ ðˆô	Yñ  fÔ-ˆØ—‘“ˆá‹n×!Ñ!Ó#ˆÜ�6‹{˜aÒÐÐØ�q‘	˜S ™VÑ#×(Ñ(Ô*Ð*Ð*Ø�q‘	˜S ™VÑ#×(Ñ(Ô*Ð*Ñ*r   ztext, kwargsz a,b,c1,2,34,5,67,8,910,11,12rZ   rY   z*a  b  c1  2  34  5  67  8  910  11  12rP   Tz a,b,c1,2,34,5,6,88,910,11,12zdA,B,C,D,E,F,G,H,I,J,K,L,M,N,OAAAAA,BBBBB,0,0,0,0,0,0,0,0,0,0,0,0,0,BBBBB,0,0,0,0,0,0,0,0,0,0,0,0,0zA  B  C  2  34  5  6zA B C2 34 5 6c                 óä   — |j                  dd«      }t        t        |«      fi |¤t        ¤Žj	                  «       }t        t        |«      fi |¤t        ¤Žj	                  «       }t        ||«       y )Núz
)Úreplacer   r   r   r   ry   )r   r(   ÚkwargsÚ	nice_textr<   rU   s         r   Útest_cr_delimitedz TestTextReader.test_cr_delimited2  sc   € ð, —L‘L  vÓ.ˆ	ÜœH T›NÑI¨fÐIÔ8HÑI×NÑNÓPˆÜœh yÓ1ÑP°VÐPÔ?OÑP×UÑUÓWˆÜ  ¨Õ2r   c                 ó4  — d}t        t        |«      fddit        ¤Žj                  «       }t	        j
                  ddgt        j                  ¬«      t	        j
                  ddgt        ¬«      t	        j
                  d	dgt        ¬«      d
œ}t        ||«       y )Nza,b,c
1,2,3
4,,rZ   rY   rC   r~   rA   Ú2Ú Ú3ru   )	r   r   r   r   rH   rI   rc   rx   ry   )r   r   r<   rU   s       r   Útest_empty_field_eofz#TestTextReader.test_empty_field_eofM  sx   € Ø"ˆäœH T›NÑN°cÐNÔ=MÑN×SÑSÓUˆô �x‰x˜˜A˜¤b§h¡hÔ/Ü�x‰x˜˜b˜	¬Ô0Ü�x‰x˜˜b˜	¬Ô0ñ
ˆô
 	! ¨Õ2r   Úrepeaté
   c           	      óœ  — t        dgt        j                  ggdgddg¬«      }t        g d¢g d¢gt        d«      ddg¬«      }t        g d¢d	t        j                  t        j                  t        j                  gg d
¢ddt        j                  t        j                  ggt        d«      g d¢¬«      }t	        t        d«      ddgd¬«      }t        j                  ||«       t	        t        d«      t        d«      d¬«      }t        j                  ||«       t	        t        d«      t        d«      d¬«      }t        j                  ||«       y )NrD   r@   rr   )ÚcolumnsÚindex)rC   rC   rC   r   ÚabcdrC   )rC   r6   r€   r~   r�   )é   é	   r·   é   é   é   )r   r   é   é   za,b
c
r   )ÚskiprowsÚnamesÚenginez1,1,1,1,0
1,1,1,1,0


)rÄ   rÅ   z"0,1,2,3,4
5,6
7,8,9,10,11
12,13,14)r   rH   ÚnanÚlistr	   r   rF   rg   )r   r¶   r@   rD   rr   Údfs         r   Ú#test_empty_field_eof_mem_access_bugz2TestTextReader.test_empty_field_eof_mem_access_bugY  s  € ô ˜�uœrŸv™v˜hÐ'°#°¸sÀC¸jÔIˆÜ’|¢\Ð2¼DÀ»LÐQRÐTUÐPVÔWˆÜâØ”B—F‘FœBŸF™F¤B§F¡FÐ+ÚØ�RœŸ™¤§¡Ð(ð	ô ˜“LÚô	
ˆô ”h˜zÓ*°Q¸s¸eÈCÔPˆÜ
×Ñ˜b !Ô$äÜÐ1Ó2¼$¸v»,Èsô
ˆô 	×Ñ˜b !Ô$äÜÐ<Ó=Ü�v“,Øô
ˆô
 	×Ñ˜b !Õ$r   c                 ó†   — t        t        «       dd g d¢¬«      5 }t        |t        «      sJ ‚	 d d d «       y # 1 sw Y   y xY w)Né   r}   )Ú	chunksizer%   rÄ   )r	   r   Ú
isinstancer   )r   rÈ   s     r   Útest_empty_csv_inputz#TestTextReader.test_empty_csv_inputx  s=   € äÜ‹J "¨Tºô
ð 	2àÜ˜b¤.Ô1Ð1Ñ1÷	2÷ 	2ñ 	2ús	   š7·A N)!Ú__name__Ú
__module__Ú__qualname__r0   Úfixturer   r"   r&   r*   r4   r=   rK   rN   rQ   rV   r]   rd   rh   r{   rƒ   r‡   r‹   r�   r�   r¥   rª   ÚmarkÚparametrizer°   rµ   ÚrangerÉ   rÎ   r   r   r   r   r   "   s9  „ Ø‡^�^ñ:ó ð:òò
òò/ò1ò
ò+ò
ò9ò	4ò4ò	0ò"òH1ò 3òòò'ò>&ò8+ð& ‡[�[×ÑØà3°kÀ3Ð5GÐHà@Ø# TÐ*ðð 4°kÀ3Ð5GÐHð7ð ˜cÐ"ðð (Ð*<¸dÐ)CÐDØ Ð#5°tÐ"<Ð=ð!	
óñ*3ó+ð*3ò
3ð ‡[�[×Ñ˜X¡u¨R£yÓ1ñ%ó 2ð%ó<2r   r   c                 ó²   — | j                  «       D ]D  \  }}t        j                  t        j                  |«      t        j                  ||   «      «       ŒF y r‰   )ÚitemsrF   rG   rH   Úasarray)ÚleftÚrightÚkÚvs       r   ry   ry   €  sB   € Ø—
‘
“ò I‰ˆˆ1Ü
×#Ñ#¤B§J¡J¨q£M´2·:±:¸eÀA¹hÓ3GÕHñIr   )Ú__doc__r   r   r   ÚnumpyrH   r0   Úpandas._libs.parsersÚ_libsÚparsersrv   r   Úpandas.errorsr   Úpandasr   Úpandas._testingÚ_testingrF   Úpandas.io.parsersr   r	   Ú"pandas.io.parsers.c_parser_wrapperr
   r8   r   ÚdictÚstrÚ__annotations__r   ry   r   r   r   ú<module>rë      se   ðò÷
ó
 Û ç %Ð %Ý +Ý 'å Ý ÷õ Añ 25³ÁcÃeÑ#LÐ �$�s˜C�x‘.Ó L÷[2ñ [2ó|
Ir   