Ë
    ¤eh°)  ã                   ó    — 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  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_objsc                   ó~  — 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ej2                  j5                  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j2                  j5                  d" ed#«      «      d$„ «       Zd%„ Zy&)'ÚTestTextReaderc                 ó   —  |dddd«      S )NÚioÚdataÚcsvz	test1.csv© )ÚselfÚdatapaths     úd/var/www/skyplay_api_hub/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        |«      }|j                  «        d d d «       y # 1 sw Y   y xY w)NÚrb©Úopenr   Úread©r   r   ÚfÚreaders       r   Útest_file_handlezTestTextReader.test_file_handle    s5   € Ü�(˜DÓ!ð 	 QÜ “]ˆFØ�K‰KŒM÷	÷ 	ñ 	ús   �2²;c                 ó€   — t        |d«      5 }t        |d ¬«      }|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%   s8   € ä�(˜DÓ!ð 	 QÜ ¨$Ô/ˆFØ�K‰KŒM÷	÷ 	ñ 	ús   �4´=c                 ó¶   — t        |d«      5 }|j                  «       }d d d «       t        «      }t        |d ¬«      }|j                  «        y # 1 sw Y   Œ2xY wr!   )r   r   r   r   )r   r   r   ÚtextÚsrcr   s         r   Útest_StringIOzTestTextReader.test_StringIO+   sL   € Ü�(˜DÓ!ð 	 QØ—6‘6“8ˆD÷	ä�d‹mˆÜ˜C¨Ô-ˆØ�‰�÷		ð 	ús   �AÁAc           	      ó¨   — d}t        t        |«      d ¬«      }|j                  «       }t        t	        t        t        |d   «      «      «      dk(  sJ ‚y )Nz	a
b
a
b
ar"   r   é   )r   r   r   ÚlenÚsetÚmapÚid©r   r   r   Úresults       r   Útest_string_factorizez$TestTextReader.test_string_factorize2   sE   € àˆÜœH T›N°4Ô8ˆØ—‘“ˆÜ”3”sœ2˜v a™yÓ)Ó*Ó+¨qÒ0Ð0Ñ0r   c                 óN  — d}t        t        |«      dd ¬«      }|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   )Úar4   r4   r4   ©Údtypeé   )Úbr8   r8   r8   ©r   r   r   ÚtmÚassert_numpy_array_equalÚnpÚarrayÚobject_r/   s       r   Útest_skipinitialspacez$TestTextReader.test_skipinitialspace9   st   € Ø/ˆäœH T›N¸TÈ$ÔOˆØ—‘“ˆä
×#Ñ#Ø�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        |«      d ¬«      }|j                  «       }|d   j                  t        j
                  k(  sJ ‚y )NzTrue
False
True
Truer"   r   )r   r   r   r6   r<   Úbool_r/   s       r   Útest_parse_booleansz"TestTextReader.test_parse_booleansF   s<   € Ø(ˆäœH T›N°4Ô8ˆØ—‘“ˆà�a‰y�‰¤"§(¡(Ò*Ð*Ñ*r   c                 óN  — d}t        t        |«      dd ¬«      }|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   )r4   r4   r4   r5   r7   )r8   r8   r8   r9   r/   s       r   Útest_delimit_whitespacez&TestTextReader.test_delimit_whitespaceN   sr   € Ø,ˆäœH T›N¸TÈ$ÔOˆØ—‘“ˆä
×#Ñ#Ø�1‰I”r—x‘x¢´r·z±zÔBô	
ô 	×#Ñ#Ø�1‰I”r—x‘x¢´r·z±zÔBõ	
r   c                 óÔ   — d}t        t        |«      d ¬«      }|j                  «       }t        j                  g d¢t        j
                  ¬«      }t        j                  |d   |«       y )Nza
"hello
there"
thisr"   )r4   zhello
thereÚthisr5   r   )r   r   r   r<   r=   r>   r:   r;   ©r   r   r   r0   Úexpecteds        r   Útest_embedded_newlinez$TestTextReader.test_embedded_newline[   sK   € Ø(ˆäœH T›N°4Ô8ˆØ—‘“ˆä—8‘8Ò9ÄÇÁÔLˆÜ
×#Ñ# F¨1¡I¨xÕ8r   c                 ó¸   — d}t        t        |«      ddd ¬«      }|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<   r=   r:   Úassert_almost_equalrH   s        r   Útest_euro_decimalz TestTextReader.test_euro_decimald   sM   € Ø"ˆäœH T›N°cÀ3ÈtÔTˆØ—‘“ˆä—8‘8˜X wÐ/Ó0ˆÜ
×Ñ˜v a™y¨(Õ3r   c                 óØ   — d}t        t        |«      ddd ¬«      }|j                  «       }t        j                  ddgt        j
                  ¬«      }t        j                  |d   |«       y )	Nz123,456
12,500rL   rM   ©rN   Ú	thousandsr#   é@â éÔ0  r5   r   )r   r   r   r<   r=   Úint64r:   rP   rH   s        r   Útest_integer_thousandsz%TestTextReader.test_integer_thousandsm   sS   € Ø ˆäœH T›N°cÀSÐQUÔVˆØ—‘“ˆä—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.500rL   ú.rS   rU   rV   )r   r   r   r   r:   Úassert_frame_equalrH   s        r   Útest_integer_thousands_altz)TestTextReader.test_integer_thousands_altv   sI   € Ø ˆäÜ�T‹N c°SÀô
ˆð —‘“ˆä˜f e˜_Ó-ˆÜ
×Ñ˜f hÕ/r   c                 ó”  — d}t        t        |«      dd ¬«      }d}t        j                  t        j
                  |¬«      5  |j                  «        d d d «       t        t        |«      dd d¬«      }|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        |«      dd d¬«      }|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:rrL   ©rN   r#   zCError tokenizing data\. C error: Expected 3 fields in line 4, saw 4)Úmatchr*   )rN   r#   Úon_bad_lines)r4   ÚdÚgÚlr5   )r8   ÚeÚhÚm)Úcr   ÚiÚn©r   r7   r*   zSkipping liner7   )r   r   ÚpytestÚraisesÚparserÚParserErrorr   r<   r=   ÚobjectÚassert_array_dicts_equalr:   Úassert_produces_warningr   )r   r   r   Úmsgr0   rI   s         r   Útest_skip_bad_linesz"TestTextReader.test_skip_bad_lines�   s  € à=ˆäœH T›N°cÀ$ÔGˆØTˆÜ�]‰]œ6×-Ñ-°SÔ9ñ 	Ø�K‰KŒM÷	ô Ü�T‹N c°$ÀQô
ˆð —‘“ˆä�x‰xÒ,´FÔ;Ü�x‰xÒ,´FÔ;Ü�x‰xÒ,´FÔ;ñ
ˆô
 	! ¨Ô2ä×'Ñ'¬¸_ÔMñ 	ÜÜ˜“¨#°dÈôˆFð �K‰KŒM÷		ð 	÷	ð 	ú÷	ð 	ús   ÁD2Ä )D>Ä2D;Ä>Ec                 óˆ  — d}t        t        |«      dd¬«      }|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,6rM   r*   r^   ©r4   r8   rg   r7   é   r5   é   é   é   rj   )r   r   r#   r   r<   r=   rW   rp   )r   r   r   r#   rI   Úrecss         r   Útest_header_not_enough_linesz+TestTextReader.test_header_not_enough_lines›   s˜   € Ø:ˆäœH T›N°cÀ!ÔDˆØ—‘ˆÚ#Ð$ˆØ˜Ò!Ð!Ð!à�{‰{‹}ˆä�x‰x˜˜A˜¤b§h¡hÔ/Ü�x‰x˜˜A˜¤b§h¡hÔ/Ü�x‰x˜˜A˜¤b§h¡hÔ/ñ
ˆô
 	!  xÕ0r   c                 ó²   — d}t        t        |«      dd d¬«      }|j                  «       }dt        j                  dgdz  t
        ¬«      i}t        ||«       y )	Nz,\"hello world"
\"hello world"
\"hello world"rM   ú\)rN   r#   Ú
escapecharr   z"hello world"rx   r5   )r   r   r   r<   r=   ro   rp   rH   s        r   Útest_escapecharzTestTextReader.test_escapechar«   sN   € ØBˆäœH T›N°cÀ$ÐSWÔXˆØ—‘“ˆØ”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                  ó^   •— d| v rt        | d   «      | d<   t        t        ‰«      fdd dœ| ¤ŽS )Nr6   rM   r^   ©r
   r   r   ©Úkwdsr   s    €r   Ú_make_readerz<TestTextReader.test_numpy_string_dtype.<locals>._make_readerÂ   s7   ø€ Ø˜$‰Ü 1°$°w±-Ó @��W‘Üœh t›nÐQ¸ÀDÑQÈDÑQÐQr   zS5,i4r5   r   ÚS5)r4   ÚaaÚaaaÚaaaaÚaaaaar7   Úi4ÚS4)r4   r�   rŽ   r�   r�   )r   r6   r<   r=   Úall)r   r‹   r   r0   Ú	ex_valuesr   s        @r   Útest_numpy_string_dtypez&TestTextReader.test_numpy_string_dtypeº   sì   ø€ ðˆô	Rñ
  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                  ó\   •— d| v rt        | d   «      | d<   t        t        ‰«      fddi| ¤ŽS )Nr6   rN   rM   rˆ   r‰   s    €r   r‹   z4TestTextReader.test_pass_dtype.<locals>._make_readerß   s5   ø€ Ø˜$‰Ü 1°$°w±-Ó @��W‘Üœh t›nÑD¸ÐD¸tÑDÐDr   Úu1ÚS1)Úoner7   r5   r   r7   ÚO)r   r6   r<   Úuint8ro   )r   r‹   r   r0   r   s       @r   Útest_pass_dtypezTestTextReader.test_pass_dtype×   sø   ø€ ðˆô	Eñ
 ¨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                  ó2   •— t        t        ‰«      fddi| ¤ŽS )NrN   rM   )r   r   r‰   s    €r   r‹   z1TestTextReader.test_usecols.<locals>._make_readerû   s   ø€ Üœh t›nÑD¸ÐD¸tÑDÐDr   )r7   r*   )Úusecolsr*   r7   )r   r+   r“   )r   r‹   r   r0   Úexpr   s        @r   Útest_usecolszTestTextReader.test_usecolsó   s‡   ø€ ðˆô	Eñ  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,12rN   rM   z*a  b  c1  2  34  5  67  8  910  11  12rD   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 |¤Žj                  «       }t        t        |«      fi |¤Žj                  «       }t	        ||«       y )Núz
)Úreplacer   r   r   rp   )r   r&   ÚkwargsÚ	nice_textr0   rI   s         r   Útest_cr_delimitedz TestTextReader.test_cr_delimited  sW   € ð, —L‘L  vÓ.ˆ	ÜœH T›NÑ5¨fÑ5×:Ñ:Ó<ˆÜœh yÓ1Ñ<°VÑ<×AÑAÓCˆÜ  ¨Õ2r   c                 ó*  — d}t        t        |«      d¬«      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,,rM   )rN   r7   rv   r5   Ú2Ú Ú3rj   )r   r   r   r<   r=   rW   ro   rp   )r   r   r0   rI   s       r   Útest_empty_field_eofz#TestTextReader.test_empty_field_eof!  so   € Ø"ˆäœH T›N°cÔ:×?Ñ?ÓAˆô �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 )Nr8   r4   rg   )ÚcolumnsÚindex)r7   r7   r7   r   Úabcdr7   )r7   r*   rx   rv   ry   )é   é	   r¯   é   é   é   )r   rw   é   é   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   r<   ÚnanÚlistr	   r   r:   r[   )r   r®   r4   r8   rg   Údfs         r   Ú#test_empty_field_eof_mem_access_bugz2TestTextReader.test_empty_field_eof_mem_access_bug-  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é   ru   )Ú	chunksizer#   r¼   )r	   r   Ú
isinstancer   )r   rÀ   s     r   Útest_empty_csv_inputz#TestTextReader.test_empty_csv_inputL  s=   € äÜ‹J "¨Tºô
ð 	2àÜ˜b¤.Ô1Ð1Ñ1÷	2÷ 	2ñ 	2ús	   š7·A N) Ú__name__Ú
__module__Ú__qualname__rk   Úfixturer   r   r$   r(   r1   r?   rB   rE   rJ   rQ   rX   r\   rs   r{   r   rƒ   r…   r•   r�   r¢   ÚmarkÚparametrizer¨   r­   ÚrangerÁ   rÆ   r   r   r   r   r      s3  „ Ø‡^�^ñ:ó ð:òò
òò1ò
ò+ò
ò9ò4ò4ò	0òò4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�   )Úitemsr:   r;   r<   Úasarray)ÚleftÚrightÚkÚvs       r   rp   rp   T  sB   € Ø—
‘
“ò I‰ˆˆ1Ü
×#Ñ#¤B§J¡J¨q£M´2·:±:¸eÀA¹hÓ3GÕHñIr   )Ú__doc__r   r   r   Únumpyr<   rk   Úpandas._libs.parsersÚ_libsÚparsersrm   r   Úpandas.errorsr   Úpandasr   Úpandas._testingÚ_testingr:   Úpandas.io.parsersr   r	   Ú"pandas.io.parsers.c_parser_wrapperr
   r   rp   r   r   r   ú<module>rà      sG   ðñ÷ó
 Û ç %Ð %Ý +Ý 'å Ý ÷õ A÷v2ñ v2ór	Ir   